From 392885c1a8d50369708bbe5e6b44033ed8b8ba51 Mon Sep 17 00:00:00 2001 From: jfa Date: Fri, 13 Feb 2009 12:16:39 +0000 Subject: [PATCH] Update from BR_V5_DEV 13Feb2009 --- GEOM_version.h.in | 36 +- Makefile.am | 27 +- adm_local/Makefile.am | 41 +- adm_local/unix/Makefile.am | 40 +- adm_local/unix/config_files/Makefile.am | 44 +- adm_local/unix/config_files/README | 3 - adm_local/unix/config_files/check_GEOM.m4 | 21 + adm_local/unix/make_common_starter.am | 68 +- bin/Makefile.am | 53 +- build_cmake | 31 + build_cmake.bat | 2 + build_configure | 29 +- clean_configure | 35 + configure.ac | 59 +- doc/Makefile.am | 21 +- doc/salome/Makefile.am | 16 +- doc/salome/gui/GEOM/Makefile.am | 75 + doc/salome/gui/GEOM/doxyfile.in | 31 +- doc/salome/gui/GEOM/doxyfile_py.in | 49 +- doc/salome/gui/GEOM/doxyfile_tui.in | 72 + .../gui/GEOM/files/introduction_to_geom.htm | 143 - ...salome2_sp3_basicgui_functions_image27.gif | Bin 880 -> 0 bytes ...salome2_sp3_basicgui_functions_image29.gif | Bin 945 -> 0 bytes ...salome2_sp3_basicgui_functions_image30.gif | Bin 932 -> 0 bytes ...salome2_sp3_basicgui_functions_image31.gif | Bin 938 -> 0 bytes ...salome2_sp3_basicgui_functions_image32.gif | Bin 900 -> 0 bytes ...salome2_sp3_basicgui_functions_image33.gif | Bin 918 -> 0 bytes ...salome2_sp3_basicgui_functions_image34.gif | Bin 929 -> 0 bytes .../salome2_sp3_booleangui_functions.htm | 159 - ...alome2_sp3_booleangui_functions_image1.gif | Bin 943 -> 0 bytes ...alome2_sp3_booleangui_functions_image2.gif | Bin 952 -> 0 bytes ...alome2_sp3_booleangui_functions_image3.gif | Bin 952 -> 0 bytes ...alome2_sp3_booleangui_functions_image4.gif | Bin 942 -> 0 bytes ...e2_sp3_generationgui_functions_image56.gif | Bin 961 -> 0 bytes ...e2_sp3_generationgui_functions_image57.gif | Bin 981 -> 0 bytes ...e2_sp3_generationgui_functions_image58.gif | Bin 965 -> 0 bytes ...e2_sp3_generationgui_functions_image59.gif | Bin 963 -> 0 bytes .../salome2_sp3_geomtoolsgui_functions.htm | 146 - .../salome2_sp3_measuregui_functions.htm | 483 - ...lome2_sp3_measuregui_functions_image71.gif | Bin 934 -> 0 bytes ...lome2_sp3_measuregui_functions_image72.gif | Bin 962 -> 0 bytes ...lome2_sp3_measuregui_functions_image73.gif | Bin 960 -> 0 bytes ...lome2_sp3_measuregui_functions_image74.gif | Bin 982 -> 0 bytes ...lome2_sp3_measuregui_functions_image75.gif | Bin 938 -> 0 bytes ...lome2_sp3_measuregui_functions_image76.gif | Bin 949 -> 0 bytes ...lome2_sp3_measuregui_functions_image77.gif | Bin 941 -> 0 bytes ...lome2_sp3_measuregui_functions_image78.gif | Bin 1005 -> 0 bytes ...me2_sp3_operationgui_functions_image87.gif | Bin 967 -> 0 bytes ...me2_sp3_operationgui_functions_image88.gif | Bin 955 -> 0 bytes ...me2_sp3_operationgui_functions_image89.gif | Bin 937 -> 0 bytes ...me2_sp3_operationgui_functions_image90.gif | Bin 927 -> 0 bytes ...e2_sp3_primitivegui_functions_image100.gif | Bin 945 -> 0 bytes ...e2_sp3_primitivegui_functions_image101.gif | Bin 967 -> 0 bytes ...e2_sp3_primitivegui_functions_image102.gif | Bin 974 -> 0 bytes ...e2_sp3_primitivegui_functions_image103.gif | Bin 953 -> 0 bytes ...me2_sp3_primitivegui_functions_image99.gif | Bin 960 -> 0 bytes ...lome2_sp3_repairgui_functions_image119.gif | Bin 970 -> 0 bytes ...lome2_sp3_repairgui_functions_image121.gif | Bin 972 -> 0 bytes ...lome2_sp3_repairgui_functions_image122.gif | Bin 971 -> 0 bytes ...3_transformationgui_functions_image128.gif | Bin 929 -> 0 bytes ...3_transformationgui_functions_image129.gif | Bin 956 -> 0 bytes ...3_transformationgui_functions_image131.gif | Bin 945 -> 0 bytes ...3_transformationgui_functions_image132.gif | Bin 949 -> 0 bytes ...3_transformationgui_functions_image133.gif | Bin 977 -> 0 bytes .../geompy_doc/classgeompyDC_1_1geompyDC.html | 9410 ----------------- ...ssgeompyDC_1_1geompyDC__inherit__graph.jpg | Bin 5663 -> 0 bytes .../geompy_doc/classgeompyDC_1_1info.html | 77 - doc/salome/gui/GEOM/geompy_doc/doxygen.css | 218 - .../gui/GEOM/geompy_doc/namespacegeompy.html | 49 - .../GEOM/geompy_doc/namespacegeompyDC.html | 65 - doc/salome/gui/GEOM/images/3dsketch1.png | Bin 0 -> 4079 bytes doc/salome/gui/GEOM/images/3dsketch2.png | Bin 0 -> 23548 bytes doc/salome/gui/GEOM/images/3dsketch3.png | Bin 0 -> 23948 bytes doc/salome/gui/GEOM/images/angle.png | Bin 14153 -> 16214 bytes doc/salome/gui/GEOM/images/arc.png | Bin 11731 -> 18635 bytes doc/salome/gui/GEOM/images/arc2.png | Bin 16382 -> 19986 bytes doc/salome/gui/GEOM/images/archimede.png | Bin 15311 -> 21428 bytes doc/salome/gui/GEOM/images/arcofellipse1.png | Bin 0 -> 2429 bytes doc/salome/gui/GEOM/images/arcofellipse2.png | Bin 0 -> 18834 bytes doc/salome/gui/GEOM/images/block1.png | Bin 15732 -> 21979 bytes doc/salome/gui/GEOM/images/block2.png | Bin 14326 -> 17695 bytes doc/salome/gui/GEOM/images/block3.png | Bin 15635 -> 21373 bytes doc/salome/gui/GEOM/images/block4.png | Bin 13453 -> 17384 bytes doc/salome/gui/GEOM/images/block5.png | Bin 16710 -> 24439 bytes doc/salome/gui/GEOM/images/bool1.png | Bin 12677 -> 20303 bytes doc/salome/gui/GEOM/images/bool2.png | Bin 13285 -> 20978 bytes doc/salome/gui/GEOM/images/bool3.png | Bin 13184 -> 20914 bytes doc/salome/gui/GEOM/images/box1.png | Bin 11772 -> 15576 bytes doc/salome/gui/GEOM/images/box2.png | Bin 12087 -> 16919 bytes doc/salome/gui/GEOM/images/box3.png | Bin 0 -> 19396 bytes doc/salome/gui/GEOM/images/chamfer1.png | Bin 14849 -> 17750 bytes doc/salome/gui/GEOM/images/chamfer2.png | Bin 20370 -> 26171 bytes doc/salome/gui/GEOM/images/chamfer3.png | Bin 19509 -> 23909 bytes doc/salome/gui/GEOM/images/chamfer4.png | Bin 19576 -> 24254 bytes .../gui/GEOM/images/changeorientation.png | Bin 15333 -> 16652 bytes doc/salome/gui/GEOM/images/circle1.png | Bin 16232 -> 21607 bytes doc/salome/gui/GEOM/images/circle2.png | Bin 16343 -> 19811 bytes doc/salome/gui/GEOM/images/circle3.png | Bin 15049 -> 20572 bytes doc/salome/gui/GEOM/images/cone1.png | Bin 14640 -> 20868 bytes doc/salome/gui/GEOM/images/cone2.png | Bin 13421 -> 17404 bytes doc/salome/gui/GEOM/images/creategroup.png | Bin 0 -> 29215 bytes doc/salome/gui/GEOM/images/curve.png | Bin 11543 -> 14943 bytes doc/salome/gui/GEOM/images/cylinder1.png | Bin 14719 -> 20223 bytes doc/salome/gui/GEOM/images/cylinder2.png | Bin 13539 -> 16758 bytes doc/salome/gui/GEOM/images/dialog.png | Bin 9626 -> 13630 bytes doc/salome/gui/GEOM/images/disk1.png | Bin 0 -> 16567 bytes doc/salome/gui/GEOM/images/disk2.png | Bin 0 -> 17811 bytes doc/salome/gui/GEOM/images/disk3.png | Bin 0 -> 17483 bytes doc/salome/gui/GEOM/images/disks.png | Bin 0 -> 3574 bytes doc/salome/gui/GEOM/images/distance.png | Bin 17080 -> 16262 bytes doc/salome/gui/GEOM/images/editgroup.png | Bin 15719 -> 28850 bytes doc/salome/gui/GEOM/images/ellipse.png | Bin 13550 -> 21752 bytes doc/salome/gui/GEOM/images/explode.png | Bin 0 -> 2460 bytes doc/salome/gui/GEOM/images/extrusion1.png | Bin 17119 -> 22336 bytes doc/salome/gui/GEOM/images/extrusion2.png | Bin 16332 -> 22779 bytes doc/salome/gui/GEOM/images/extrusion3.png | Bin 0 -> 22148 bytes doc/salome/gui/GEOM/images/face1.png | Bin 0 -> 17260 bytes doc/salome/gui/GEOM/images/face2.png | Bin 0 -> 18664 bytes doc/salome/gui/GEOM/images/faces.png | Bin 0 -> 4956 bytes doc/salome/gui/GEOM/images/fillet1.png | Bin 12606 -> 16718 bytes doc/salome/gui/GEOM/images/fillet2.png | Bin 17408 -> 22418 bytes doc/salome/gui/GEOM/images/fillet2d_1.png | Bin 0 -> 1593 bytes doc/salome/gui/GEOM/images/fillet2d_2.png | Bin 0 -> 16404 bytes doc/salome/gui/GEOM/images/fillet3.png | Bin 17283 -> 22209 bytes doc/salome/gui/GEOM/images/filling.png | Bin 17640 -> 22661 bytes .../gui/GEOM/images/geomcreategroup.png | Bin 16179 -> 29175 bytes doc/salome/gui/GEOM/images/geomeimport.png | Bin 0 -> 27725 bytes doc/salome/gui/GEOM/images/geomexport.png | Bin 15829 -> 29200 bytes doc/salome/gui/GEOM/images/geomimport.png | Bin 15403 -> 22327 bytes .../gui/GEOM/images/geomimport_reopen.png | Bin 0 -> 11051 bytes doc/salome/gui/GEOM/images/geomscreen.png | Bin 0 -> 64074 bytes doc/salome/gui/GEOM/images/glue1.png | Bin 13644 -> 20568 bytes doc/salome/gui/GEOM/images/glue2.png | Bin 16254 -> 24621 bytes doc/salome/gui/GEOM/images/glue3.png | Bin 10790 -> 10539 bytes doc/salome/gui/GEOM/images/image18.gif | Bin 1053 -> 0 bytes doc/salome/gui/GEOM/images/image18.png | Bin 0 -> 1028 bytes doc/salome/gui/GEOM/images/image2.jpg | Bin 13387 -> 48558 bytes doc/salome/gui/GEOM/images/image2.png | Bin 0 -> 98070 bytes doc/salome/gui/GEOM/images/image26.gif | Bin 1056 -> 0 bytes doc/salome/gui/GEOM/images/image26.png | Bin 0 -> 1019 bytes doc/salome/gui/GEOM/images/image33.gif | Bin 1001 -> 0 bytes doc/salome/gui/GEOM/images/image33.png | Bin 0 -> 654 bytes doc/salome/gui/GEOM/images/image56.gif | Bin 979 -> 0 bytes doc/salome/gui/GEOM/images/image56.png | Bin 0 -> 1214 bytes doc/salome/gui/GEOM/images/image57.gif | Bin 990 -> 0 bytes doc/salome/gui/GEOM/images/image57.png | Bin 0 -> 1377 bytes doc/salome/gui/GEOM/images/line1.png | Bin 13886 -> 15858 bytes doc/salome/gui/GEOM/images/line2.png | Bin 13762 -> 15543 bytes doc/salome/gui/GEOM/images/measures1.png | Bin 10455 -> 9960 bytes doc/salome/gui/GEOM/images/measures10.png | Bin 14601 -> 24172 bytes doc/salome/gui/GEOM/images/measures3.png | Bin 14450 -> 18434 bytes doc/salome/gui/GEOM/images/measures4.png | Bin 17751 -> 20700 bytes doc/salome/gui/GEOM/images/measures5.png | Bin 14641 -> 14644 bytes doc/salome/gui/GEOM/images/measures8.png | Bin 16541 -> 22117 bytes doc/salome/gui/GEOM/images/measures8a.png | Bin 0 -> 8660 bytes doc/salome/gui/GEOM/images/measures9.png | Bin 14542 -> 16618 bytes doc/salome/gui/GEOM/images/mtrans1.png | Bin 15971 -> 22166 bytes doc/salome/gui/GEOM/images/mtrans2.png | Bin 19494 -> 28612 bytes doc/salome/gui/GEOM/images/mtransf1.png | Bin 17130 -> 22996 bytes doc/salome/gui/GEOM/images/mtransf2.png | Bin 20345 -> 28974 bytes doc/salome/gui/GEOM/images/mtransf3.png | Bin 13844 -> 19866 bytes doc/salome/gui/GEOM/images/mtransf4.png | Bin 9687 -> 11361 bytes doc/salome/gui/GEOM/images/neo-basicprop.png | Bin 14586 -> 16322 bytes doc/salome/gui/GEOM/images/neo-detect2.png | Bin 8014 -> 9935 bytes doc/salome/gui/GEOM/images/neo-isos.png | Bin 7042 -> 6558 bytes doc/salome/gui/GEOM/images/neo-localcs1.png | Bin 17595 -> 20989 bytes doc/salome/gui/GEOM/images/neo-localcs2.png | Bin 13085 -> 15997 bytes doc/salome/gui/GEOM/images/neo-localcs3.png | Bin 15322 -> 20892 bytes doc/salome/gui/GEOM/images/neo-mrot1.png | Bin 14401 -> 18880 bytes doc/salome/gui/GEOM/images/neo-mrot2.png | Bin 17583 -> 24501 bytes doc/salome/gui/GEOM/images/neo-obj1.png | Bin 13245 -> 15918 bytes doc/salome/gui/GEOM/images/neo-obj2.png | Bin 11136 -> 14299 bytes doc/salome/gui/GEOM/images/neo-obj3.png | Bin 11942 -> 14430 bytes doc/salome/gui/GEOM/images/neo-obj4.png | Bin 14060 -> 15528 bytes doc/salome/gui/GEOM/images/neo-obj5.png | Bin 11148 -> 14538 bytes doc/salome/gui/GEOM/images/neo-obj6.png | Bin 12508 -> 15148 bytes doc/salome/gui/GEOM/images/neo-obj7.png | Bin 11911 -> 18609 bytes doc/salome/gui/GEOM/images/neo-point2.png | Bin 15656 -> 22962 bytes doc/salome/gui/GEOM/images/neo-scetcher1.png | Bin 16921 -> 23570 bytes doc/salome/gui/GEOM/images/neo-scetcher2.png | Bin 21323 -> 26003 bytes doc/salome/gui/GEOM/images/neo-section.png | Bin 13547 -> 22052 bytes doc/salome/gui/GEOM/images/neo-tolerance.png | Bin 0 -> 16290 bytes .../gui/GEOM/images/neo-transparency.png | Bin 6912 -> 6412 bytes doc/salome/gui/GEOM/images/new-tolerance.png | Bin 14146 -> 16319 bytes doc/salome/gui/GEOM/images/normaletoface.png | Bin 13984 -> 17389 bytes doc/salome/gui/GEOM/images/partition1.png | Bin 17101 -> 26300 bytes doc/salome/gui/GEOM/images/partition2.png | Bin 15170 -> 22877 bytes doc/salome/gui/GEOM/images/pipe.png | Bin 12462 -> 17835 bytes doc/salome/gui/GEOM/images/pipe2.png | Bin 0 -> 646292 bytes .../gui/GEOM/images/pipe_wire_edgesn.png | Bin 2000 -> 427113 bytes doc/salome/gui/GEOM/images/pipebinormalsn.png | Bin 0 -> 742069 bytes doc/salome/gui/GEOM/images/pipesn.png | Bin 11225 -> 0 bytes doc/salome/gui/GEOM/images/plane1.png | Bin 13114 -> 17501 bytes doc/salome/gui/GEOM/images/plane2.png | Bin 13745 -> 19021 bytes doc/salome/gui/GEOM/images/plane3.png | Bin 14227 -> 17937 bytes doc/salome/gui/GEOM/images/point1.png | Bin 16967 -> 16243 bytes doc/salome/gui/GEOM/images/point2.png | Bin 18460 -> 23893 bytes doc/salome/gui/GEOM/images/point3.png | Bin 17319 -> 21850 bytes doc/salome/gui/GEOM/images/point4.png | Bin 14530 -> 17493 bytes doc/salome/gui/GEOM/images/point5.png | Bin 0 -> 23302 bytes .../gui/GEOM/images/remove_extra_edges.png | Bin 5918 -> 22294 bytes doc/salome/gui/GEOM/images/repair1.png | Bin 21190 -> 30260 bytes doc/salome/gui/GEOM/images/repair10.png | Bin 7422 -> 6999 bytes doc/salome/gui/GEOM/images/repair2.png | Bin 12670 -> 16315 bytes doc/salome/gui/GEOM/images/repair3.png | Bin 15621 -> 20505 bytes doc/salome/gui/GEOM/images/repair4.png | Bin 15084 -> 20102 bytes doc/salome/gui/GEOM/images/repair5.png | Bin 14981 -> 20102 bytes doc/salome/gui/GEOM/images/repair6.png | Bin 15032 -> 18833 bytes doc/salome/gui/GEOM/images/repair7.png | Bin 12358 -> 20695 bytes doc/salome/gui/GEOM/images/repair8.png | Bin 14096 -> 17969 bytes doc/salome/gui/GEOM/images/repair9.png | Bin 9956 -> 9949 bytes .../gui/GEOM/images/restore-ss-OB-cut.png | Bin 0 -> 3571 bytes doc/salome/gui/GEOM/images/restore-ss-OB.png | Bin 0 -> 6393 bytes doc/salome/gui/GEOM/images/restore-ss-cut.png | Bin 0 -> 21972 bytes .../gui/GEOM/images/restore-ss-dialog.png | Bin 0 -> 20816 bytes .../GEOM/images/restore-ss-viewer-after.png | Bin 0 -> 2275 bytes .../GEOM/images/restore-ss-viewer-before.png | Bin 0 -> 4187 bytes .../gui/GEOM/images/restore-ss-viewer-cut.png | Bin 0 -> 3364 bytes doc/salome/gui/GEOM/images/revolution.png | Bin 16962 -> 20074 bytes .../gui/GEOM/images/scale_transformsn3.png | Bin 0 -> 14058 bytes .../gui/GEOM/images/scale_transformsn4.png | Bin 0 -> 11835 bytes doc/salome/gui/GEOM/images/selectcolor.png | Bin 26899 -> 24044 bytes doc/salome/gui/GEOM/images/shapesonshape.png | Bin 0 -> 21578 bytes doc/salome/gui/GEOM/images/shonshex1.png | Bin 0 -> 4354 bytes doc/salome/gui/GEOM/images/shonshex2.png | Bin 0 -> 4534 bytes doc/salome/gui/GEOM/images/sphere1.png | Bin 12869 -> 16799 bytes doc/salome/gui/GEOM/images/sphere2.png | Bin 12115 -> 14356 bytes doc/salome/gui/GEOM/images/torus1.png | Bin 13801 -> 19269 bytes doc/salome/gui/GEOM/images/torus2.png | Bin 12610 -> 15803 bytes .../gui/GEOM/images/transformation1.png | Bin 14766 -> 25473 bytes .../gui/GEOM/images/transformation10.png | Bin 13674 -> 23030 bytes .../gui/GEOM/images/transformation10a.png | Bin 0 -> 26996 bytes .../gui/GEOM/images/transformation11.png | Bin 12912 -> 20224 bytes .../gui/GEOM/images/transformation12.png | Bin 0 -> 7522 bytes .../gui/GEOM/images/transformation13.png | Bin 0 -> 29512 bytes .../gui/GEOM/images/transformation14.png | Bin 0 -> 3544 bytes .../gui/GEOM/images/transformation2.png | Bin 14864 -> 25272 bytes .../gui/GEOM/images/transformation3.png | Bin 14406 -> 26802 bytes .../gui/GEOM/images/transformation4.png | Bin 17189 -> 24062 bytes .../gui/GEOM/images/transformation4a.png | Bin 19586 -> 25763 bytes .../gui/GEOM/images/transformation5.png | Bin 14553 -> 22783 bytes .../gui/GEOM/images/transformation6.png | Bin 15455 -> 24458 bytes .../gui/GEOM/images/transformation7.png | Bin 13562 -> 21736 bytes .../gui/GEOM/images/transformation8.png | Bin 13701 -> 21901 bytes .../gui/GEOM/images/transformation9.png | Bin 13736 -> 21900 bytes doc/salome/gui/GEOM/images/translation3.png | Bin 0 -> 25931 bytes doc/salome/gui/GEOM/images/vector1.png | Bin 11853 -> 15229 bytes doc/salome/gui/GEOM/images/vector2.png | Bin 13267 -> 17225 bytes doc/salome/gui/GEOM/images/workplane4.png | Bin 13415 -> 19041 bytes doc/salome/gui/GEOM/images/workplane5.png | Bin 14474 -> 20985 bytes doc/salome/gui/GEOM/images/workplane6.png | Bin 14331 -> 19151 bytes .../input/add_point_on_edge_operation.doc | 4 +- doc/salome/gui/GEOM/input/archimede.doc | 6 +- .../gui/GEOM/input/basic_operations.doc | 10 - .../gui/GEOM/input/blocks_operations.doc | 11 +- .../gui/GEOM/input/boolean_operations.doc | 13 - .../gui/GEOM/input/building_by_blocks.doc | 5 +- .../gui/GEOM/input/chamfer_operation.doc | 8 +- .../input/check_free_boundaries_operation.doc | 29 - .../GEOM/input/check_free_faces_operation.doc | 27 - .../gui/GEOM/input/common_operation.doc | 6 +- .../gui/GEOM/input/creating_3dsketcher.doc | 31 + .../gui/GEOM/input/creating_adv_obj.doc | 4 +- doc/salome/gui/GEOM/input/creating_arc.doc | 17 + .../gui/GEOM/input/creating_basic_go.doc | 3 + doc/salome/gui/GEOM/input/creating_box.doc | 6 +- doc/salome/gui/GEOM/input/creating_circle.doc | 10 +- .../gui/GEOM/input/creating_complex_obj.doc | 16 +- .../gui/GEOM/input/creating_compound.doc | 6 +- doc/salome/gui/GEOM/input/creating_cone.doc | 2 +- .../gui/GEOM/input/creating_cylinder.doc | 2 +- doc/salome/gui/GEOM/input/creating_disk.doc | 44 + doc/salome/gui/GEOM/input/creating_edge.doc | 2 +- .../gui/GEOM/input/creating_ellipse.doc | 8 +- .../gui/GEOM/input/creating_explode.doc | 6 +- .../gui/GEOM/input/creating_extrusion.doc | 10 + .../input/creating_extrusion_alongpath.doc | 33 +- doc/salome/gui/GEOM/input/creating_face.doc | 4 +- .../gui/GEOM/input/creating_filling.doc | 25 +- .../gui/GEOM/input/creating_geom_objects.doc | 60 +- doc/salome/gui/GEOM/input/creating_lcs.doc | 2 +- doc/salome/gui/GEOM/input/creating_line.doc | 2 +- doc/salome/gui/GEOM/input/creating_plane.doc | 3 +- doc/salome/gui/GEOM/input/creating_point.doc | 17 +- .../gui/GEOM/input/creating_primitives.doc | 5 + .../gui/GEOM/input/creating_revolution.doc | 2 +- doc/salome/gui/GEOM/input/creating_shell.doc | 6 +- .../gui/GEOM/input/creating_sketcher.doc | 9 +- doc/salome/gui/GEOM/input/creating_solid.doc | 2 +- doc/salome/gui/GEOM/input/creating_sphere.doc | 2 +- .../gui/GEOM/input/creating_squareface.doc | 43 + doc/salome/gui/GEOM/input/creating_torus.doc | 2 +- doc/salome/gui/GEOM/input/creating_vector.doc | 2 +- doc/salome/gui/GEOM/input/creating_wire.doc | 2 +- doc/salome/gui/GEOM/input/cut_operation.doc | 6 +- .../input/explode_on_blocks_operation.doc | 2 +- .../gui/GEOM/input/fillet2d_operation.doc | 27 + doc/salome/gui/GEOM/input/fuse_operation.doc | 8 +- doc/salome/gui/GEOM/input/geompy.doc | 41 +- .../gui/GEOM/input/glue_faces_operation.doc | 11 +- doc/salome/gui/GEOM/input/import_export.doc | 8 + doc/salome/gui/GEOM/input/index.doc | 149 +- doc/salome/gui/GEOM/input/introduction.doc | 26 - .../gui/GEOM/input/mirror_operation.doc | 18 +- .../GEOM/input/modify_location_operation.doc | 25 +- .../GEOM/input/multi_rotation_operation.doc | 8 +- .../input/multi_transformation_operation.doc | 4 +- .../input/multi_translation_operation.doc | 8 +- .../gui/GEOM/input/offset_operation.doc | 4 +- doc/salome/gui/GEOM/input/partition.doc | 16 +- .../gui/GEOM/input/propagate_operation.doc | 4 +- .../input/remove_extra_edges_operation.doc | 4 +- .../gui/GEOM/input/repairing_operations.doc | 30 +- .../input/restore_presentation_parameters.doc | 57 + .../gui/GEOM/input/rotation_operation.doc | 8 +- doc/salome/gui/GEOM/input/scale_operation.doc | 34 +- .../gui/GEOM/input/section_operation.doc | 6 +- .../gui/GEOM/input/sewing_operation.doc | 4 +- doc/salome/gui/GEOM/input/shapesonshape.doc | 35 + .../GEOM/input/suppress_faces_operation.doc | 4 +- .../GEOM/input/suppress_holes_operation.doc | 4 +- .../suppress_internal_wires_operation.doc | 4 +- .../GEOM/input/transformation_operations.doc | 30 +- .../gui/GEOM/input/transforming_geom_objs.doc | 72 +- .../gui/GEOM/input/translation_operation.doc | 14 +- doc/salome/gui/GEOM/input/transparency.doc | 4 +- doc/salome/gui/GEOM/input/tui_3dsketcher.doc | 20 + .../gui/GEOM/input/tui_basic_geom_objs.doc | 33 + .../gui/GEOM/input/tui_basic_operations.doc | 60 +- .../gui/GEOM/input/tui_boolean_operations.doc | 16 +- .../gui/GEOM/input/tui_complex_objs.doc | 439 +- .../gui/GEOM/input/tui_measurement_tools.doc | 32 +- doc/salome/gui/GEOM/input/tui_primitives.doc | 88 +- doc/salome/gui/GEOM/input/tui_scripts.doc | 28 - .../gui/GEOM/input/tui_swig_examples.doc | 11 + doc/salome/gui/GEOM/input/tui_test_all.doc | 75 + doc/salome/gui/GEOM/input/tui_test_others.doc | 159 + .../gui/GEOM/input/tui_test_spanner.doc | 41 + .../input/tui_transformation_operations.doc | 35 +- .../GEOM/input/using_boolean_operations.doc | 10 +- .../GEOM/input/using_measurement_tools.doc | 461 +- .../GEOM/input/using_notebook_geom_page.doc | 18 + .../gui/GEOM/input/viewing_geom_obj.doc | 18 +- .../GEOM/input/viewing_geom_obj_chapter.doc | 13 - .../gui/GEOM/input/working_with_groups.doc | 56 +- doc/salome/gui/GEOM/pics/angle.png | Bin 14153 -> 0 bytes doc/salome/gui/GEOM/pics/arc.png | Bin 11731 -> 0 bytes doc/salome/gui/GEOM/pics/arc2.png | Bin 16382 -> 0 bytes doc/salome/gui/GEOM/pics/archimede.png | Bin 15311 -> 0 bytes doc/salome/gui/GEOM/pics/archimedesn1.png | Bin 3678 -> 0 bytes doc/salome/gui/GEOM/pics/archimedesn2.png | Bin 4140 -> 0 bytes doc/salome/gui/GEOM/pics/archimedesn3.png | Bin 1841 -> 0 bytes doc/salome/gui/GEOM/pics/arcsn.png | Bin 1672 -> 0 bytes doc/salome/gui/GEOM/pics/arcsn1.png | Bin 2245 -> 0 bytes doc/salome/gui/GEOM/pics/arcsn2.png | Bin 2415 -> 0 bytes doc/salome/gui/GEOM/pics/bezier.png | Bin 2442 -> 0 bytes doc/salome/gui/GEOM/pics/block1.png | Bin 15732 -> 0 bytes doc/salome/gui/GEOM/pics/block2.png | Bin 14326 -> 0 bytes doc/salome/gui/GEOM/pics/block3.png | Bin 15635 -> 0 bytes doc/salome/gui/GEOM/pics/block4.png | Bin 13453 -> 0 bytes doc/salome/gui/GEOM/pics/block5.png | Bin 16710 -> 0 bytes doc/salome/gui/GEOM/pics/block_explodesn.png | Bin 17436 -> 0 bytes doc/salome/gui/GEOM/pics/bool1.png | Bin 12677 -> 0 bytes doc/salome/gui/GEOM/pics/bool2.png | Bin 13285 -> 0 bytes doc/salome/gui/GEOM/pics/bool3.png | Bin 13184 -> 0 bytes doc/salome/gui/GEOM/pics/box1.png | Bin 11772 -> 0 bytes doc/salome/gui/GEOM/pics/box2.png | Bin 12087 -> 0 bytes doc/salome/gui/GEOM/pics/boxes.png | Bin 7689 -> 0 bytes doc/salome/gui/GEOM/pics/chamfer1.png | Bin 14849 -> 0 bytes doc/salome/gui/GEOM/pics/chamfer2.png | Bin 20370 -> 0 bytes doc/salome/gui/GEOM/pics/chamfer3.png | Bin 19509 -> 0 bytes doc/salome/gui/GEOM/pics/chamfer4.png | Bin 19576 -> 0 bytes doc/salome/gui/GEOM/pics/chamfer_all.png | Bin 11172 -> 0 bytes doc/salome/gui/GEOM/pics/chamfer_edge.png | Bin 9146 -> 0 bytes doc/salome/gui/GEOM/pics/chamfer_faces.png | Bin 10302 -> 0 bytes .../gui/GEOM/pics/changeorientation.png | Bin 15333 -> 0 bytes doc/salome/gui/GEOM/pics/circle1.png | Bin 12982 -> 0 bytes doc/salome/gui/GEOM/pics/circle2.png | Bin 12343 -> 0 bytes doc/salome/gui/GEOM/pics/circle3.png | Bin 15049 -> 0 bytes doc/salome/gui/GEOM/pics/circles.png | Bin 3217 -> 0 bytes doc/salome/gui/GEOM/pics/colorsn.png | Bin 23078 -> 0 bytes doc/salome/gui/GEOM/pics/commonsn.png | Bin 3754 -> 0 bytes doc/salome/gui/GEOM/pics/compoundsn.png | Bin 1653 -> 0 bytes doc/salome/gui/GEOM/pics/cone1.png | Bin 14640 -> 0 bytes doc/salome/gui/GEOM/pics/cone2.png | Bin 13421 -> 0 bytes doc/salome/gui/GEOM/pics/cones.png | Bin 10676 -> 0 bytes doc/salome/gui/GEOM/pics/curve.png | Bin 11543 -> 0 bytes doc/salome/gui/GEOM/pics/cutsn.png | Bin 4941 -> 0 bytes doc/salome/gui/GEOM/pics/cylinder1.png | Bin 14719 -> 0 bytes doc/salome/gui/GEOM/pics/cylinder2.png | Bin 13539 -> 0 bytes doc/salome/gui/GEOM/pics/cylinders.png | Bin 12964 -> 0 bytes doc/salome/gui/GEOM/pics/dialog.png | Bin 9626 -> 0 bytes doc/salome/gui/GEOM/pics/disp_mode1sn.png | Bin 8130 -> 0 bytes doc/salome/gui/GEOM/pics/disp_mode2sn.png | Bin 20528 -> 0 bytes doc/salome/gui/GEOM/pics/distance.png | Bin 17080 -> 0 bytes doc/salome/gui/GEOM/pics/edgesn.png | Bin 1592 -> 0 bytes doc/salome/gui/GEOM/pics/editgroup.png | Bin 15719 -> 0 bytes doc/salome/gui/GEOM/pics/ellipse.png | Bin 13550 -> 0 bytes doc/salome/gui/GEOM/pics/ellipsesn.png | Bin 2931 -> 0 bytes doc/salome/gui/GEOM/pics/extrusion1.png | Bin 15672 -> 0 bytes doc/salome/gui/GEOM/pics/extrusion2.png | Bin 14907 -> 0 bytes doc/salome/gui/GEOM/pics/facesn1.png | Bin 3142 -> 0 bytes doc/salome/gui/GEOM/pics/facesn2.png | Bin 2964 -> 0 bytes doc/salome/gui/GEOM/pics/facesn3.png | Bin 2187 -> 0 bytes doc/salome/gui/GEOM/pics/fillet1.png | Bin 12606 -> 0 bytes doc/salome/gui/GEOM/pics/fillet2.png | Bin 17408 -> 0 bytes doc/salome/gui/GEOM/pics/fillet3.png | Bin 17283 -> 0 bytes doc/salome/gui/GEOM/pics/fillet_all.png | Bin 12664 -> 0 bytes doc/salome/gui/GEOM/pics/fillet_edge.png | Bin 10707 -> 0 bytes doc/salome/gui/GEOM/pics/fillet_prism.png | Bin 8424 -> 0 bytes doc/salome/gui/GEOM/pics/filling.png | Bin 17649 -> 0 bytes .../gui/GEOM/pics/filling_compoundsn.png | Bin 2507 -> 0 bytes doc/salome/gui/GEOM/pics/fillingsn.png | Bin 9402 -> 0 bytes doc/salome/gui/GEOM/pics/free_boudaries1.png | Bin 12909 -> 0 bytes doc/salome/gui/GEOM/pics/free_boudaries2.png | Bin 13074 -> 0 bytes doc/salome/gui/GEOM/pics/free_faces1.png | Bin 19590 -> 0 bytes doc/salome/gui/GEOM/pics/free_faces2.png | Bin 22272 -> 0 bytes doc/salome/gui/GEOM/pics/fusesn1.png | Bin 14030 -> 0 bytes doc/salome/gui/GEOM/pics/fusesn2.png | Bin 16678 -> 0 bytes doc/salome/gui/GEOM/pics/geomcreategroup.png | Bin 16179 -> 0 bytes doc/salome/gui/GEOM/pics/geomexport.png | Bin 15829 -> 0 bytes doc/salome/gui/GEOM/pics/geomimport.png | Bin 15403 -> 0 bytes doc/salome/gui/GEOM/pics/glue_faces1.png | Bin 9842 -> 0 bytes doc/salome/gui/GEOM/pics/glue_faces2.png | Bin 9914 -> 0 bytes doc/salome/gui/GEOM/pics/interpol.png | Bin 2888 -> 0 bytes doc/salome/gui/GEOM/pics/isos_u12_v12sn.png | Bin 37129 -> 0 bytes doc/salome/gui/GEOM/pics/line.png | Bin 10742 -> 0 bytes doc/salome/gui/GEOM/pics/lines.png | Bin 2403 -> 0 bytes doc/salome/gui/GEOM/pics/measures1.png | Bin 10455 -> 0 bytes doc/salome/gui/GEOM/pics/measures10.png | Bin 14601 -> 0 bytes doc/salome/gui/GEOM/pics/measures3.png | Bin 14450 -> 0 bytes doc/salome/gui/GEOM/pics/measures4.png | Bin 17751 -> 0 bytes doc/salome/gui/GEOM/pics/measures5.png | Bin 14641 -> 0 bytes doc/salome/gui/GEOM/pics/measures8.png | Bin 16541 -> 0 bytes doc/salome/gui/GEOM/pics/measures9.png | Bin 14542 -> 0 bytes doc/salome/gui/GEOM/pics/mirror_axissn1.png | Bin 2248 -> 0 bytes doc/salome/gui/GEOM/pics/mirror_axissn2.png | Bin 3543 -> 0 bytes doc/salome/gui/GEOM/pics/mirror_planesn1.png | Bin 4646 -> 0 bytes doc/salome/gui/GEOM/pics/mirror_planesn2.png | Bin 5798 -> 0 bytes doc/salome/gui/GEOM/pics/mirror_pointsn1.png | Bin 2304 -> 0 bytes doc/salome/gui/GEOM/pics/mirror_pointsn2.png | Bin 3739 -> 0 bytes doc/salome/gui/GEOM/pics/mtrans1.png | Bin 15971 -> 0 bytes doc/salome/gui/GEOM/pics/mtrans2.png | Bin 19494 -> 0 bytes doc/salome/gui/GEOM/pics/mtransf1.png | Bin 17130 -> 0 bytes doc/salome/gui/GEOM/pics/mtransf2.png | Bin 20345 -> 0 bytes doc/salome/gui/GEOM/pics/mtransf3.png | Bin 13844 -> 0 bytes doc/salome/gui/GEOM/pics/mtransf4.png | Bin 9687 -> 0 bytes .../gui/GEOM/pics/multi_rotation1d1.png | Bin 4300 -> 0 bytes .../gui/GEOM/pics/multi_rotation1d2.png | Bin 8111 -> 0 bytes .../gui/GEOM/pics/multi_rotation2d1.png | Bin 3139 -> 0 bytes .../gui/GEOM/pics/multi_rotation2d2.png | Bin 16745 -> 0 bytes .../GEOM/pics/multi_transformationsn1d.png | Bin 11030 -> 0 bytes .../GEOM/pics/multi_transformationsn2d.png | Bin 11515 -> 0 bytes .../gui/GEOM/pics/multi_translation1dsn.png | Bin 3938 -> 0 bytes .../gui/GEOM/pics/multi_translation2dsn.png | Bin 7838 -> 0 bytes .../GEOM/pics/multi_translation_initialsn.png | Bin 2158 -> 0 bytes doc/salome/gui/GEOM/pics/neo-basicprop.png | Bin 14586 -> 0 bytes doc/salome/gui/GEOM/pics/neo-detect2.png | Bin 8014 -> 0 bytes doc/salome/gui/GEOM/pics/neo-isos.png | Bin 7042 -> 0 bytes doc/salome/gui/GEOM/pics/neo-localcs1.png | Bin 17595 -> 0 bytes doc/salome/gui/GEOM/pics/neo-localcs2.png | Bin 13085 -> 0 bytes doc/salome/gui/GEOM/pics/neo-localcs3.png | Bin 15322 -> 0 bytes doc/salome/gui/GEOM/pics/neo-materials.png | Bin 12972 -> 0 bytes doc/salome/gui/GEOM/pics/neo-mrot1.png | Bin 14401 -> 0 bytes doc/salome/gui/GEOM/pics/neo-mrot2.png | Bin 17583 -> 0 bytes doc/salome/gui/GEOM/pics/neo-obj1.png | Bin 13245 -> 0 bytes doc/salome/gui/GEOM/pics/neo-obj2.png | Bin 11136 -> 0 bytes doc/salome/gui/GEOM/pics/neo-obj3.png | Bin 11942 -> 0 bytes doc/salome/gui/GEOM/pics/neo-obj4.png | Bin 12077 -> 0 bytes doc/salome/gui/GEOM/pics/neo-obj5.png | Bin 11148 -> 0 bytes doc/salome/gui/GEOM/pics/neo-obj6.png | Bin 12508 -> 0 bytes doc/salome/gui/GEOM/pics/neo-obj7.png | Bin 11911 -> 0 bytes doc/salome/gui/GEOM/pics/neo-point2.png | Bin 15656 -> 0 bytes doc/salome/gui/GEOM/pics/neo-scetcher1.png | Bin 16921 -> 0 bytes doc/salome/gui/GEOM/pics/neo-scetcher2.png | Bin 21323 -> 0 bytes doc/salome/gui/GEOM/pics/neo-section.png | Bin 13547 -> 0 bytes doc/salome/gui/GEOM/pics/neo-transparency.png | Bin 6912 -> 0 bytes doc/salome/gui/GEOM/pics/new-tolerance.png | Bin 14146 -> 0 bytes doc/salome/gui/GEOM/pics/normaletoface.png | Bin 14994 -> 0 bytes doc/salome/gui/GEOM/pics/offsetsn.png | Bin 12215 -> 0 bytes doc/salome/gui/GEOM/pics/partition1.png | Bin 16738 -> 0 bytes doc/salome/gui/GEOM/pics/partition2.png | Bin 15170 -> 0 bytes doc/salome/gui/GEOM/pics/partitionsn1.png | Bin 5814 -> 0 bytes doc/salome/gui/GEOM/pics/partitionsn2.png | Bin 4535 -> 0 bytes doc/salome/gui/GEOM/pics/pipe.png | Bin 12462 -> 0 bytes doc/salome/gui/GEOM/pics/pipe_wire_edgesn.png | Bin 2000 -> 0 bytes doc/salome/gui/GEOM/pics/pipesn.png | Bin 11225 -> 0 bytes doc/salome/gui/GEOM/pics/plane1.png | Bin 13114 -> 0 bytes doc/salome/gui/GEOM/pics/plane2.png | Bin 13745 -> 0 bytes doc/salome/gui/GEOM/pics/plane3.png | Bin 14227 -> 0 bytes doc/salome/gui/GEOM/pics/plane_on_face.png | Bin 2595 -> 0 bytes doc/salome/gui/GEOM/pics/planes1.png | Bin 4168 -> 0 bytes doc/salome/gui/GEOM/pics/point1.png | Bin 12028 -> 0 bytes doc/salome/gui/GEOM/pics/point3.png | Bin 14515 -> 0 bytes doc/salome/gui/GEOM/pics/points.png | Bin 2941 -> 0 bytes doc/salome/gui/GEOM/pics/polyline.png | Bin 2813 -> 0 bytes doc/salome/gui/GEOM/pics/prisms_basessn.png | Bin 2654 -> 0 bytes doc/salome/gui/GEOM/pics/prismssn.png | Bin 7628 -> 0 bytes doc/salome/gui/GEOM/pics/repair1.png | Bin 21190 -> 0 bytes doc/salome/gui/GEOM/pics/repair10.png | Bin 7422 -> 0 bytes doc/salome/gui/GEOM/pics/repair2.png | Bin 12670 -> 0 bytes doc/salome/gui/GEOM/pics/repair3.png | Bin 15621 -> 0 bytes doc/salome/gui/GEOM/pics/repair4.png | Bin 15084 -> 0 bytes doc/salome/gui/GEOM/pics/repair5.png | Bin 14981 -> 0 bytes doc/salome/gui/GEOM/pics/repair6.png | Bin 15032 -> 0 bytes doc/salome/gui/GEOM/pics/repair7.png | Bin 12358 -> 0 bytes doc/salome/gui/GEOM/pics/repair8.png | Bin 14096 -> 0 bytes doc/salome/gui/GEOM/pics/repair9.png | Bin 9956 -> 0 bytes doc/salome/gui/GEOM/pics/revolution.png | Bin 14251 -> 0 bytes doc/salome/gui/GEOM/pics/revolutionsn.png | Bin 8811 -> 0 bytes doc/salome/gui/GEOM/pics/rotationsn1.png | Bin 7114 -> 0 bytes doc/salome/gui/GEOM/pics/rotationsn2.png | Bin 10612 -> 0 bytes .../gui/GEOM/pics/scale_transformsn1.png | Bin 4218 -> 0 bytes .../gui/GEOM/pics/scale_transformsn2.png | Bin 6158 -> 0 bytes doc/salome/gui/GEOM/pics/sectionsn.png | Bin 1911 -> 0 bytes doc/salome/gui/GEOM/pics/shellsn.png | Bin 2772 -> 0 bytes doc/salome/gui/GEOM/pics/solidsn.png | Bin 4965 -> 0 bytes doc/salome/gui/GEOM/pics/sphere1.png | Bin 12869 -> 0 bytes doc/salome/gui/GEOM/pics/sphere2.png | Bin 12115 -> 0 bytes doc/salome/gui/GEOM/pics/spheres.png | Bin 17852 -> 0 bytes doc/salome/gui/GEOM/pics/supp_int_wires1.png | Bin 13116 -> 0 bytes doc/salome/gui/GEOM/pics/supp_int_wires2.png | Bin 8364 -> 0 bytes doc/salome/gui/GEOM/pics/suppress_faces1.png | Bin 6169 -> 0 bytes doc/salome/gui/GEOM/pics/suppress_faces2.png | Bin 6653 -> 0 bytes doc/salome/gui/GEOM/pics/torus1.png | Bin 13801 -> 0 bytes doc/salome/gui/GEOM/pics/torus2.png | Bin 12610 -> 0 bytes doc/salome/gui/GEOM/pics/toruses.png | Bin 22148 -> 0 bytes doc/salome/gui/GEOM/pics/transformation1.png | Bin 14766 -> 0 bytes doc/salome/gui/GEOM/pics/transformation10.png | Bin 13674 -> 0 bytes doc/salome/gui/GEOM/pics/transformation11.png | Bin 12912 -> 0 bytes doc/salome/gui/GEOM/pics/transformation2.png | Bin 14864 -> 0 bytes doc/salome/gui/GEOM/pics/transformation3.png | Bin 14406 -> 0 bytes doc/salome/gui/GEOM/pics/transformation4.png | Bin 17189 -> 0 bytes doc/salome/gui/GEOM/pics/transformation4a.png | Bin 19586 -> 0 bytes doc/salome/gui/GEOM/pics/transformation5.png | Bin 14553 -> 0 bytes doc/salome/gui/GEOM/pics/transformation6.png | Bin 15455 -> 0 bytes doc/salome/gui/GEOM/pics/transformation7.png | Bin 13562 -> 0 bytes doc/salome/gui/GEOM/pics/transformation8.png | Bin 13701 -> 0 bytes doc/salome/gui/GEOM/pics/transformation9.png | Bin 13736 -> 0 bytes doc/salome/gui/GEOM/pics/translationsn1.png | Bin 6613 -> 0 bytes doc/salome/gui/GEOM/pics/translationsn2.png | Bin 11303 -> 0 bytes doc/salome/gui/GEOM/pics/transparencysn.png | Bin 28364 -> 0 bytes doc/salome/gui/GEOM/pics/vector1.png | Bin 11853 -> 0 bytes doc/salome/gui/GEOM/pics/vector2.png | Bin 13267 -> 0 bytes doc/salome/gui/GEOM/pics/vectors.png | Bin 2404 -> 0 bytes doc/salome/gui/GEOM/pics/wiresn.png | Bin 1956 -> 0 bytes doc/salome/gui/GEOM/pics/workplane4.png | Bin 13415 -> 0 bytes doc/salome/gui/GEOM/pics/workplane5.png | Bin 14474 -> 0 bytes doc/salome/gui/GEOM/pics/workplane6.png | Bin 14331 -> 0 bytes doc/salome/gui/GEOM/static/footer.html | 2 +- doc/salome/gui/GEOM/whdata/whftdata.js | 25 - doc/salome/gui/GEOM/whdata/whftdata0.htm | 102 - doc/salome/gui/GEOM/whdata/whfts.htm | 18 - doc/salome/gui/GEOM/whdata/whfts.js | 40 - doc/salome/gui/GEOM/whdata/whfwdata.js | 37 - doc/salome/gui/GEOM/whdata/whfwdata0.htm | 1379 --- doc/salome/gui/GEOM/whdata/whgdata.js | 26 - doc/salome/gui/GEOM/whdata/whgdata0.htm | 33 - doc/salome/gui/GEOM/whdata/whglo.htm | 16 - doc/salome/gui/GEOM/whdata/whglo.js | 34 - doc/salome/gui/GEOM/whdata/whidata.js | 89 - doc/salome/gui/GEOM/whdata/whidx.htm | 15 - doc/salome/gui/GEOM/whdata/whidx.js | 34 - doc/salome/gui/GEOM/whdata/whtdata.js | 64 - doc/salome/gui/GEOM/whdata/whtdata0.htm | 114 - doc/salome/gui/GEOM/whdata/whtoc.htm | 16 - doc/salome/gui/GEOM/whdata/whtoc.js | 31 - doc/salome/gui/GEOM/whgdata/whexpbar.gif | Bin 67 -> 0 bytes doc/salome/gui/GEOM/whgdata/whlstf0.htm | 46 - doc/salome/gui/GEOM/whgdata/whlstf1.htm | 43 - doc/salome/gui/GEOM/whgdata/whlstf10.htm | 43 - doc/salome/gui/GEOM/whgdata/whlstf11.htm | 43 - doc/salome/gui/GEOM/whgdata/whlstf12.htm | 47 - doc/salome/gui/GEOM/whgdata/whlstf13.htm | 46 - doc/salome/gui/GEOM/whgdata/whlstf2.htm | 43 - doc/salome/gui/GEOM/whgdata/whlstf3.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstf4.htm | 43 - doc/salome/gui/GEOM/whgdata/whlstf5.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstf6.htm | 49 - doc/salome/gui/GEOM/whgdata/whlstf7.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstf8.htm | 43 - doc/salome/gui/GEOM/whgdata/whlstf9.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl0.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl1.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl10.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl11.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl12.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl13.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl14.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl15.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl16.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl17.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl18.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl19.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl2.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl20.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl21.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl22.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl23.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl24.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl25.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl26.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl3.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl4.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl5.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl6.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl7.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl8.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstfl9.htm | 45 - doc/salome/gui/GEOM/whgdata/whlstg0.htm | 75 - doc/salome/gui/GEOM/whgdata/whlsti0.htm | 39 - doc/salome/gui/GEOM/whgdata/whlstt0.htm | 51 - doc/salome/gui/GEOM/whgdata/whlstt1.htm | 58 - doc/salome/gui/GEOM/whgdata/whlstt10.htm | 68 - doc/salome/gui/GEOM/whgdata/whlstt11.htm | 73 - doc/salome/gui/GEOM/whgdata/whlstt12.htm | 66 - doc/salome/gui/GEOM/whgdata/whlstt13.htm | 73 - doc/salome/gui/GEOM/whgdata/whlstt14.htm | 63 - doc/salome/gui/GEOM/whgdata/whlstt15.htm | 69 - doc/salome/gui/GEOM/whgdata/whlstt16.htm | 67 - doc/salome/gui/GEOM/whgdata/whlstt2.htm | 65 - doc/salome/gui/GEOM/whgdata/whlstt3.htm | 75 - doc/salome/gui/GEOM/whgdata/whlstt4.htm | 70 - doc/salome/gui/GEOM/whgdata/whlstt5.htm | 69 - doc/salome/gui/GEOM/whgdata/whlstt6.htm | 72 - doc/salome/gui/GEOM/whgdata/whlstt7.htm | 64 - doc/salome/gui/GEOM/whgdata/whlstt8.htm | 63 - doc/salome/gui/GEOM/whgdata/whlstt9.htm | 65 - doc/salome/gui/GEOM/whgdata/whnvf30.htm | 13 - doc/salome/gui/GEOM/whgdata/whnvf31.htm | 15 - doc/salome/gui/GEOM/whgdata/whnvf32.htm | 15 - doc/salome/gui/GEOM/whgdata/whnvf33.htm | 15 - doc/salome/gui/GEOM/whgdata/whnvl31.htm | 43 - doc/salome/gui/GEOM/whgdata/whnvl32.htm | 72 - doc/salome/gui/GEOM/whgdata/whnvl33.htm | 72 - doc/salome/gui/GEOM/whgdata/whnvp30.htm | 16 - doc/salome/gui/GEOM/whgdata/whnvp31.htm | 16 - doc/salome/gui/GEOM/whgdata/whnvp32.htm | 16 - doc/salome/gui/GEOM/whgdata/whnvp33.htm | 16 - doc/salome/gui/GEOM/whgdata/whnvt30.htm | 47 - doc/salome/gui/GEOM/whgdata/whnvt31.htm | 45 - doc/salome/gui/GEOM/whgdata/whnvt32.htm | 45 - doc/salome/gui/GEOM/whgdata/whnvt33.htm | 45 - doc/salome/gui/GEOM/whxdata/whftdata0.xml | 88 - doc/salome/gui/GEOM/whxdata/whfts.xml | 7 - doc/salome/gui/GEOM/whxdata/whfwdata0.xml | 1365 --- doc/salome/gui/GEOM/whxdata/whgdata0.xml | 22 - doc/salome/gui/GEOM/whxdata/whglo.xml | 5 - doc/salome/gui/GEOM/whxdata/whidx.xml | 4 - doc/salome/gui/GEOM/whxdata/whtdata0.xml | 120 - doc/salome/gui/GEOM/whxdata/whtoc.xml | 4 - doc/salome/gui/Makefile.am | 60 +- doc/salome/tui/GEOM/HTML/GEOM_Gen.html | 802 -- doc/salome/tui/GEOM/HTML/GEOM_Shape.html | 18 - doc/salome/tui/GEOM/doxyfile_py.in | 242 - .../tui/GEOM/sources/Application-About.png | Bin 19226 -> 0 bytes .../tui/GEOM/sources/Application-About1.jpg | Bin 14327 -> 0 bytes doc/salome/tui/GEOM/sources/application.gif | Bin 2602 -> 0 bytes doc/salome/tui/GEOM/sources/application.jpg | Bin 792 -> 0 bytes doc/salome/tui/GEOM/sources/bg_salome.gif | Bin 17293 -> 0 bytes doc/salome/tui/GEOM/sources/logocorp.gif | Bin 1792 -> 0 bytes doc/salome/tui/GEOM/sources/myheader_py2.html | 24 - doc/salome/tui/GEOM/sources/static/page2.html | 43 - doc/salome/tui/GEOM/sources/static/tree.js.in | 59 - .../tui/GEOM/sources/static/treeview.js | 505 - doc/salome/tui/Makefile.am | 60 +- doc/salome/tui/{GEOM => }/doxyfile.in | 55 +- .../tui/{GEOM/sources => images}/occ.gif | Bin .../tui/{GEOM/sources => }/static/doxygen.css | 0 .../tui/{GEOM/sources => static}/footer.html | 0 .../{GEOM/sources => static}/myheader.html | 0 idl/GEOM_Gen.idl | 415 +- idl/GEOM_Superv.idl | 90 +- idl/Makefile.am | 78 +- resources/3dsketch.png | Bin 0 -> 685 bytes resources/GEOMCatalog.xml.in | 55 + resources/GEOM_en.xml | 28 + resources/GEOM_fr.xml | 28 + resources/Makefile.am | 371 +- resources/ModuleGeom.png | Bin 1879 -> 2647 bytes resources/SalomeApp.xml | 23 + resources/angle.png | Bin 252 -> 1185 bytes resources/arc.png | Bin 397 -> 527 bytes resources/arccenter.png | Bin 485 -> 501 bytes resources/archimede.png | Bin 325 -> 849 bytes resources/arcofellipse.png | Bin 0 -> 513 bytes resources/axisinertia.png | Bin 414 -> 916 bytes resources/basicproperties.png | Bin 260 -> 809 bytes resources/bezier.png | Bin 250 -> 403 bytes resources/block_2f.png | Bin 424 -> 883 bytes resources/block_6f.png | Bin 368 -> 860 bytes resources/block_face_2e.png | Bin 425 -> 752 bytes resources/block_face_4e.png | Bin 459 -> 759 bytes resources/block_face_4v.png | Bin 362 -> 778 bytes resources/block_multitrsf_double.png | Bin 604 -> 636 bytes resources/block_multitrsf_simple.png | Bin 587 -> 581 bytes resources/bounding.png | Bin 444 -> 1061 bytes resources/box.png | Bin 310 -> 931 bytes resources/box2points.png | Bin 330 -> 988 bytes resources/boxdxyz.png | Bin 364 -> 996 bytes resources/build_compound.png | Bin 385 -> 1004 bytes resources/build_edge.png | Bin 214 -> 352 bytes resources/build_face.png | Bin 225 -> 682 bytes resources/build_shell.png | Bin 298 -> 953 bytes resources/build_solid.png | Bin 295 -> 931 bytes resources/build_wire.png | Bin 340 -> 562 bytes resources/centergravity.png | Bin 328 -> 772 bytes resources/chamfer.png | Bin 283 -> 1105 bytes resources/chamferall.png | Bin 471 -> 1031 bytes resources/chamferedge.png | Bin 480 -> 971 bytes resources/chamferedgefromface.png | Bin 492 -> 940 bytes resources/chamferface.png | Bin 495 -> 929 bytes resources/change_orientation.png | Bin 509 -> 712 bytes resources/check.png | Bin 606 -> 593 bytes resources/check_blocks_compound.png | Bin 636 -> 1018 bytes resources/circle.png | Bin 399 -> 565 bytes resources/circle3points.png | Bin 439 -> 497 bytes resources/circlecenter2pnts.png | Bin 711 -> 536 bytes resources/circlepointvector.png | Bin 346 -> 483 bytes resources/closecontour.png | Bin 368 -> 761 bytes resources/common.png | Bin 267 -> 788 bytes resources/cone.png | Bin 406 -> 830 bytes resources/conedxyz.png | Bin 438 -> 861 bytes resources/conepointvector.png | Bin 433 -> 863 bytes resources/coordsys.png | Bin 1179 -> 637 bytes resources/cut.png | Bin 283 -> 862 bytes resources/cylinder.png | Bin 330 -> 968 bytes resources/cylinderdxyz.png | Bin 389 -> 1005 bytes resources/cylinderpointvector.png | Bin 384 -> 1015 bytes resources/delete.png | Bin 943 -> 1136 bytes resources/disk.png | Bin 0 -> 744 bytes resources/disk3points.png | Bin 0 -> 856 bytes resources/disk_pntvecr.png | Bin 0 -> 811 bytes resources/disk_r.png | Bin 0 -> 886 bytes resources/display.png | Bin 247 -> 632 bytes resources/displayall.png | Bin 247 -> 781 bytes resources/displayonly.png | Bin 247 -> 614 bytes resources/ellipse.png | Bin 337 -> 535 bytes resources/ellipsepointvector.png | Bin 337 -> 535 bytes resources/erase.png | Bin 311 -> 1028 bytes resources/eraseall.png | Bin 323 -> 1019 bytes resources/face_hw.png | Bin 0 -> 734 bytes resources/face_vechw.png | Bin 0 -> 692 bytes resources/fillet.png | Bin 293 -> 1014 bytes resources/fillet2d.png | Bin 0 -> 980 bytes resources/filletall.png | Bin 288 -> 1031 bytes resources/filletedge.png | Bin 307 -> 971 bytes resources/filletface.png | Bin 297 -> 929 bytes resources/filling.png | Bin 450 -> 892 bytes resources/free_bound.png | Bin 432 -> 828 bytes resources/free_faces.png | Bin 464 -> 1054 bytes resources/fuse.png | Bin 286 -> 890 bytes resources/geometry.png | Bin 238 -> 794 bytes resources/glue.png | Bin 408 -> 947 bytes resources/glue2.png | Bin 410 -> 931 bytes resources/group_edit.png | Bin 758 -> 1377 bytes resources/group_new.png | Bin 718 -> 1214 bytes resources/interpol.png | Bin 254 -> 511 bytes resources/line.png | Bin 259 -> 448 bytes resources/line2points.png | Bin 259 -> 448 bytes resources/lineedge.png | Bin 938 -> 0 bytes resources/linepointvector.png | Bin 255 -> 0 bytes resources/marker.png | Bin 285 -> 521 bytes resources/marker2.png | Bin 309 -> 657 bytes resources/marker3.png | Bin 289 -> 521 bytes resources/mindist.png | Bin 252 -> 1071 bytes resources/mirrorAxe.png | Bin 436 -> 747 bytes resources/mirrorPlane.png | Bin 336 -> 751 bytes resources/mirrorPoint.png | Bin 427 -> 729 bytes resources/multirotation.png | Bin 446 -> 941 bytes resources/multirotationdouble.png | Bin 604 -> 693 bytes resources/multirotationsimple.png | Bin 587 -> 592 bytes resources/multitranslation.png | Bin 325 -> 813 bytes resources/multitranslationdouble.png | Bin 395 -> 864 bytes resources/multitranslationsimple.png | Bin 284 -> 570 bytes resources/normale.png | Bin 260 -> 655 bytes resources/offset.png | Bin 696 -> 1006 bytes resources/orientation.png | Bin 362 -> 0 bytes resources/partition.png | Bin 335 -> 987 bytes resources/partitionkeep.png | Bin 412 -> 987 bytes resources/partitionplane.png | Bin 493 -> 899 bytes resources/pipe.png | Bin 392 -> 993 bytes resources/pipebinormal.png | Bin 0 -> 1728 bytes resources/plane.png | Bin 241 -> 625 bytes resources/plane3points.png | Bin 336 -> 605 bytes resources/planeWorking.png | Bin 268 -> 706 bytes resources/planedxyz.png | Bin 315 -> 0 bytes resources/planeface.png | Bin 368 -> 852 bytes resources/planepointvector.png | Bin 260 -> 652 bytes resources/planeworkingface.png | Bin 378 -> 940 bytes resources/planeworkingorigin.png | Bin 270 -> 886 bytes resources/planeworkingvector.png | Bin 259 -> 754 bytes resources/point2.png | Bin 192 -> 298 bytes resources/point3.png | Bin 335 -> 363 bytes resources/point_coord.png | Bin 192 -> 349 bytes resources/point_line_intersection.png | Bin 572 -> 564 bytes resources/pointonedge.png | Bin 255 -> 578 bytes resources/pointonface.png | Bin 0 -> 616 bytes resources/polyline.png | Bin 547 -> 419 bytes resources/position.png | Bin 303 -> 858 bytes resources/position2.png | Bin 306 -> 894 bytes resources/position3.png | Bin 0 -> 891 bytes resources/prism.png | Bin 315 -> 877 bytes resources/prism2.png | Bin 602 -> 873 bytes resources/prism3.png | Bin 0 -> 958 bytes resources/propagate.png | Bin 409 -> 1098 bytes resources/redo.png | Bin 211 -> 885 bytes resources/remove_extra_edges.png | Bin 443 -> 845 bytes resources/revol.png | Bin 488 -> 1075 bytes resources/rotate.png | Bin 425 -> 811 bytes resources/rotatepnt.png | Bin 337 -> 901 bytes resources/scale.png | Bin 302 -> 885 bytes resources/scale_along_axes.png | Bin 0 -> 874 bytes resources/section.png | Bin 276 -> 764 bytes resources/select1.png | Bin 975 -> 1143 bytes resources/sewing.png | Bin 396 -> 1001 bytes resources/shading.png | Bin 357 -> 997 bytes resources/shapeprocess.png | Bin 362 -> 1217 bytes resources/shapesonshape.png | Bin 0 -> 1230 bytes resources/sketch.png | Bin 398 -> 596 bytes resources/sphere.png | Bin 445 -> 1048 bytes resources/spheredxyz.png | Bin 511 -> 1059 bytes resources/spherepoint.png | Bin 451 -> 1071 bytes resources/spline.png | Bin 254 -> 511 bytes resources/subblock.png | Bin 461 -> 1084 bytes resources/subshape.png | Bin 461 -> 1084 bytes resources/suppressintwires.png | Bin 368 -> 971 bytes resources/supressHolesOnFaceShell.png | Bin 253 -> 849 bytes resources/supressface.png | Bin 368 -> 958 bytes resources/supresshole.png | Bin 363 -> 1015 bytes resources/tolerance.png | Bin 387 -> 734 bytes resources/torus.png | Bin 448 -> 1149 bytes resources/torusdxyz.png | Bin 504 -> 1176 bytes resources/toruspointvector.png | Bin 493 -> 1165 bytes resources/translation.png | Bin 285 -> 790 bytes resources/translationDxyz.png | Bin 416 -> 861 bytes resources/translationPoints.png | Bin 399 -> 768 bytes resources/translationVector.png | Bin 285 -> 782 bytes resources/tree_block.png | Bin 156 -> 539 bytes resources/tree_compound.png | Bin 189 -> 617 bytes resources/tree_compsolid.png | Bin 908 -> 449 bytes resources/tree_edge.png | Bin 132 -> 226 bytes resources/tree_face.png | Bin 119 -> 447 bytes resources/tree_group_edge.png | Bin 257 -> 294 bytes resources/tree_group_face.png | Bin 258 -> 630 bytes resources/tree_group_solid.png | Bin 260 -> 588 bytes resources/tree_group_vertex.png | Bin 248 -> 429 bytes resources/tree_lcs.png | Bin 277 -> 345 bytes resources/tree_shape.png | Bin 909 -> 275 bytes resources/tree_shell.png | Bin 149 -> 530 bytes resources/tree_solid.png | Bin 156 -> 539 bytes resources/tree_vertex.png | Bin 119 -> 208 bytes resources/tree_wire.png | Bin 145 -> 233 bytes resources/undo.png | Bin 210 -> 873 bytes resources/vector.png | Bin 269 -> 438 bytes resources/vector2points.png | Bin 277 -> 419 bytes resources/vectordxyz.png | Bin 290 -> 469 bytes resources/whatis.png | Bin 414 -> 1080 bytes src/ARCHIMEDE/ARCHIMEDE.pro | 58 + src/ARCHIMEDE/Archimede_VolumeSection.cxx | 51 +- src/ARCHIMEDE/Archimede_VolumeSection.hxx | 48 +- src/ARCHIMEDE/Makefile.am | 64 +- src/BREPExport/BREPExport.cxx | 36 +- src/BREPExport/BREPExport.pro | 49 + src/BREPExport/Makefile.am | 52 +- src/BREPImport/BREPImport.cxx | 36 +- src/BREPImport/BREPImport.pro | 49 + src/BREPImport/Makefile.am | 52 +- src/BasicGUI/BasicGUI.cxx | 175 +- src/BasicGUI/BasicGUI.h | 31 +- src/BasicGUI/BasicGUI.pro | 75 + src/BasicGUI/BasicGUI_ArcDlg.cxx | 673 +- src/BasicGUI/BasicGUI_ArcDlg.h | 108 +- src/BasicGUI/BasicGUI_CircleDlg.cxx | 585 +- src/BasicGUI/BasicGUI_CircleDlg.h | 118 +- src/BasicGUI/BasicGUI_CurveDlg.cxx | 334 +- src/BasicGUI/BasicGUI_CurveDlg.h | 114 +- src/BasicGUI/BasicGUI_EllipseDlg.cxx | 354 +- src/BasicGUI/BasicGUI_EllipseDlg.h | 116 +- src/BasicGUI/BasicGUI_LineDlg.cxx | 429 +- src/BasicGUI/BasicGUI_LineDlg.h | 120 +- src/BasicGUI/BasicGUI_MarkerDlg.cxx | 646 +- src/BasicGUI/BasicGUI_MarkerDlg.h | 90 +- src/BasicGUI/BasicGUI_PlaneDlg.cxx | 567 +- src/BasicGUI/BasicGUI_PlaneDlg.h | 126 +- src/BasicGUI/BasicGUI_PointDlg.cxx | 715 +- src/BasicGUI/BasicGUI_PointDlg.h | 151 +- src/BasicGUI/BasicGUI_VectorDlg.cxx | 402 +- src/BasicGUI/BasicGUI_VectorDlg.h | 121 +- src/BasicGUI/BasicGUI_WorkingPlaneDlg.cxx | 500 +- src/BasicGUI/BasicGUI_WorkingPlaneDlg.h | 132 +- src/BasicGUI/GEOM_BasicGUI.hxx | 47 - src/BasicGUI/Makefile.am | 159 +- src/BlocksGUI/BlocksGUI.cxx | 59 +- src/BlocksGUI/BlocksGUI.h | 29 +- src/BlocksGUI/BlocksGUI_BlockDlg.cxx | 396 +- src/BlocksGUI/BlocksGUI_BlockDlg.h | 66 +- src/BlocksGUI/BlocksGUI_ExplodeDlg.cxx | 402 +- src/BlocksGUI/BlocksGUI_ExplodeDlg.h | 91 +- src/BlocksGUI/BlocksGUI_PropagateDlg.cxx | 143 +- src/BlocksGUI/BlocksGUI_PropagateDlg.h | 68 +- src/BlocksGUI/BlocksGUI_QuadFaceDlg.cxx | 477 +- src/BlocksGUI/BlocksGUI_QuadFaceDlg.h | 84 +- src/BlocksGUI/BlocksGUI_TrsfDlg.cxx | 516 +- src/BlocksGUI/BlocksGUI_TrsfDlg.h | 82 +- src/BlocksGUI/GEOM_BlocksGUI.hxx | 47 - src/BlocksGUI/Makefile.am | 132 +- src/BooleanGUI/BooleanGUI.cxx | 64 +- src/BooleanGUI/BooleanGUI.h | 72 +- src/BooleanGUI/BooleanGUI.pro | 61 + src/BooleanGUI/BooleanGUI_Dialog.cxx | 336 +- src/BooleanGUI/BooleanGUI_Dialog.h | 108 +- src/BooleanGUI/Makefile.am | 106 +- src/BuildGUI/BuildGUI.cxx | 90 +- src/BuildGUI/BuildGUI.h | 56 +- src/BuildGUI/BuildGUI.pro | 66 + src/BuildGUI/BuildGUI_CompoundDlg.cxx | 141 +- src/BuildGUI/BuildGUI_CompoundDlg.h | 98 +- src/BuildGUI/BuildGUI_EdgeDlg.cxx | 279 +- src/BuildGUI/BuildGUI_EdgeDlg.h | 101 +- src/BuildGUI/BuildGUI_FaceDlg.cxx | 155 +- src/BuildGUI/BuildGUI_FaceDlg.h | 97 +- src/BuildGUI/BuildGUI_ShellDlg.cxx | 158 +- src/BuildGUI/BuildGUI_ShellDlg.h | 95 +- src/BuildGUI/BuildGUI_SolidDlg.cxx | 205 +- src/BuildGUI/BuildGUI_SolidDlg.h | 98 +- src/BuildGUI/BuildGUI_WireDlg.cxx | 152 +- src/BuildGUI/BuildGUI_WireDlg.h | 95 +- src/BuildGUI/GEOM_BuildGUI.hxx | 47 - src/BuildGUI/Makefile.am | 131 +- src/DisplayGUI/DisplayGUI.cxx | 62 +- src/DisplayGUI/DisplayGUI.h | 76 +- src/DisplayGUI/DisplayGUI.pro | 68 + src/DisplayGUI/Makefile.am | 100 +- src/DlgRef/DlgRef.cxx | 790 ++ src/DlgRef/DlgRef.h | 823 ++ src/DlgRef/DlgRef.pro | 136 + src/DlgRef/DlgRef_1List1Spin1Btn_QTD.cxx | 92 - src/DlgRef/DlgRef_1List1Spin1Btn_QTD.h | 65 - src/DlgRef/DlgRef_1List1Spin1Btn_QTD.ui | 87 + src/DlgRef/DlgRef_1Sel1Check1List_QTD.cxx | 110 - src/DlgRef/DlgRef_1Sel1Check1List_QTD.h | 68 - src/DlgRef/DlgRef_1Sel1Check1List_QTD.ui | 122 + src/DlgRef/DlgRef_1Sel1Check1Sel_QTD.ui | 148 + src/DlgRef/DlgRef_1Sel1Check_QTD.cxx | 102 - src/DlgRef/DlgRef_1Sel1Check_QTD.h | 65 - src/DlgRef/DlgRef_1Sel1Check_QTD.ui | 91 + src/DlgRef/DlgRef_1Sel1List1Check3Btn_QTD.ui | 140 + src/DlgRef/DlgRef_1Sel1Spin.cxx | 54 - src/DlgRef/DlgRef_1Sel1Spin.h | 49 - src/DlgRef/DlgRef_1Sel1Spin1Check.cxx | 54 - src/DlgRef/DlgRef_1Sel1Spin1Check.h | 49 - src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.cxx | 114 - src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.h | 69 - src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.ui | 138 + src/DlgRef/DlgRef_1Sel1Spin_QTD.cxx | 108 - src/DlgRef/DlgRef_1Sel1Spin_QTD.h | 67 - src/DlgRef/DlgRef_1Sel1Spin_QTD.ui | 130 + src/DlgRef/DlgRef_1Sel2Spin.cxx | 60 - src/DlgRef/DlgRef_1Sel2Spin.h | 50 - src/DlgRef/DlgRef_1Sel2Spin1View1Check_QTD.ui | 146 + src/DlgRef/DlgRef_1Sel2Spin_QTD.cxx | 119 - src/DlgRef/DlgRef_1Sel2Spin_QTD.h | 69 - src/DlgRef/DlgRef_1Sel2Spin_QTD.ui | 150 + src/DlgRef/DlgRef_1Sel3Check_QTD.cxx | 114 - src/DlgRef/DlgRef_1Sel3Check_QTD.h | 67 - src/DlgRef/DlgRef_1Sel3Check_QTD.ui | 107 + src/DlgRef/DlgRef_1Sel3Spin.cxx | 63 - src/DlgRef/DlgRef_1Sel3Spin.h | 51 - src/DlgRef/DlgRef_1Sel3Spin1Check_QTD.ui | 177 + src/DlgRef/DlgRef_1Sel3Spin_QTD.cxx | 130 - src/DlgRef/DlgRef_1Sel3Spin_QTD.h | 71 - src/DlgRef/DlgRef_1Sel3Spin_QTD.ui | 170 + src/DlgRef/DlgRef_1Sel4Spin.cxx | 67 - src/DlgRef/DlgRef_1Sel4Spin.h | 53 - src/DlgRef/DlgRef_1Sel4Spin_QTD.cxx | 151 - src/DlgRef/DlgRef_1Sel4Spin_QTD.h | 76 - src/DlgRef/DlgRef_1Sel4Spin_QTD.ui | 214 + src/DlgRef/DlgRef_1Sel5Spin.cxx | 71 - src/DlgRef/DlgRef_1Sel5Spin.h | 53 - src/DlgRef/DlgRef_1Sel5Spin1Check.cxx | 71 - src/DlgRef/DlgRef_1Sel5Spin1Check.h | 53 - src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.cxx | 150 - src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.h | 63 - src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.ui | 196 + src/DlgRef/DlgRef_1Sel5Spin_QTD.cxx | 152 - src/DlgRef/DlgRef_1Sel5Spin_QTD.h | 75 - src/DlgRef/DlgRef_1Sel5Spin_QTD.ui | 232 + src/DlgRef/DlgRef_1SelExt_QTD.ui | 94 + src/DlgRef/DlgRef_1Sel_QTD.cxx | 93 - src/DlgRef/DlgRef_1Sel_QTD.h | 63 - src/DlgRef/DlgRef_1Sel_QTD.ui | 91 + src/DlgRef/DlgRef_1Spin.cxx | 56 - src/DlgRef/DlgRef_1Spin.h | 49 - src/DlgRef/DlgRef_1Spin_QTD.cxx | 87 - src/DlgRef/DlgRef_1Spin_QTD.h | 61 - src/DlgRef/DlgRef_1Spin_QTD.ui | 93 + src/DlgRef/DlgRef_2Sel1List1Check_QTD.cxx | 130 - src/DlgRef/DlgRef_2Sel1List1Check_QTD.h | 70 - src/DlgRef/DlgRef_2Sel1List1Check_QTD.ui | 153 + src/DlgRef/DlgRef_2Sel1List_QTD.cxx | 125 - src/DlgRef/DlgRef_2Sel1List_QTD.h | 69 - src/DlgRef/DlgRef_2Sel1List_QTD.ui | 152 + src/DlgRef/DlgRef_2Sel1Spin.cxx | 59 - src/DlgRef/DlgRef_2Sel1Spin.h | 49 - src/DlgRef/DlgRef_2Sel1Spin2Check.cxx | 54 - src/DlgRef/DlgRef_2Sel1Spin2Check.h | 49 - src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.cxx | 139 - src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.h | 72 - src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.ui | 193 + src/DlgRef/DlgRef_2Sel1Spin_QTD.cxx | 132 - src/DlgRef/DlgRef_2Sel1Spin_QTD.h | 70 - src/DlgRef/DlgRef_2Sel1Spin_QTD.ui | 169 + src/DlgRef/DlgRef_2Sel2List_QTD.ui | 166 + src/DlgRef/DlgRef_2Sel2Spin.cxx | 57 - src/DlgRef/DlgRef_2Sel2Spin.h | 50 - src/DlgRef/DlgRef_2Sel2Spin1Check.cxx | 62 - src/DlgRef/DlgRef_2Sel2Spin1Check.h | 50 - src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.cxx | 149 - src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.h | 74 - src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.ui | 192 + src/DlgRef/DlgRef_2Sel2Spin_QTD.cxx | 135 - src/DlgRef/DlgRef_2Sel2Spin_QTD.h | 72 - src/DlgRef/DlgRef_2Sel2Spin_QTD.ui | 184 + src/DlgRef/DlgRef_2Sel3Spin.cxx | 60 - src/DlgRef/DlgRef_2Sel3Spin.h | 51 - src/DlgRef/DlgRef_2Sel3Spin2Rb.cxx | 41 - src/DlgRef/DlgRef_2Sel3Spin2Rb.h | 34 - src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.cxx | 129 - src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.h | 60 - src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.ui | 211 + src/DlgRef/DlgRef_2Sel3Spin_QTD.cxx | 146 - src/DlgRef/DlgRef_2Sel3Spin_QTD.h | 74 - src/DlgRef/DlgRef_2Sel3Spin_QTD.ui | 204 + src/DlgRef/DlgRef_2Sel4Spin1Check.cxx | 68 - src/DlgRef/DlgRef_2Sel4Spin1Check.h | 53 - src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.cxx | 177 - src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.h | 79 - src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.ui | 232 + src/DlgRef/DlgRef_2SelExt_QTD.ui | 132 + src/DlgRef/DlgRef_2Sel_QTD.cxx | 109 - src/DlgRef/DlgRef_2Sel_QTD.h | 66 - src/DlgRef/DlgRef_2Sel_QTD.ui | 129 + src/DlgRef/DlgRef_2Spin.cxx | 60 - src/DlgRef/DlgRef_2Spin.h | 50 - src/DlgRef/DlgRef_2Spin_QTD.cxx | 98 - src/DlgRef/DlgRef_2Spin_QTD.h | 63 - src/DlgRef/DlgRef_2Spin_QTD.ui | 112 + src/DlgRef/DlgRef_3Check_QTD.cxx | 94 - src/DlgRef/DlgRef_3Check_QTD.h | 61 - src/DlgRef/DlgRef_3Check_QTD.ui | 69 + src/DlgRef/DlgRef_3Radio1Sel1Spin_QTD.ui | 150 + src/DlgRef/DlgRef_3Radio_QTD.ui | 75 + src/DlgRef/DlgRef_3Sel1Check_QTD.cxx | 127 - src/DlgRef/DlgRef_3Sel1Check_QTD.h | 58 - src/DlgRef/DlgRef_3Sel1Check_QTD.ui | 182 + src/DlgRef/DlgRef_3Sel1Spin.cxx | 55 - src/DlgRef/DlgRef_3Sel1Spin.h | 58 - src/DlgRef/DlgRef_3Sel1Spin_QTD.ui | 210 + src/DlgRef/DlgRef_3Sel3Spin1Check.cxx | 114 - src/DlgRef/DlgRef_3Sel3Spin1Check.h | 53 - src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.cxx | 177 - src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.h | 78 - src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.ui | 258 + src/DlgRef/DlgRef_3Sel3Spin2Check_QTD.ui | 230 + src/DlgRef/DlgRef_3Sel4Spin2Check.cxx | 69 - src/DlgRef/DlgRef_3Sel4Spin2Check.h | 52 - src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.cxx | 201 - src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.h | 83 - src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.ui | 274 + src/DlgRef/DlgRef_3Sel_QTD.cxx | 125 - src/DlgRef/DlgRef_3Sel_QTD.h | 69 - src/DlgRef/DlgRef_3Sel_QTD.ui | 167 + src/DlgRef/DlgRef_3Spin.cxx | 63 - src/DlgRef/DlgRef_3Spin.h | 51 - src/DlgRef/DlgRef_3Spin1Check.cxx | 63 - src/DlgRef/DlgRef_3Spin1Check.h | 51 - src/DlgRef/DlgRef_3Spin1Check_QTD.cxx | 115 - src/DlgRef/DlgRef_3Spin1Check_QTD.h | 67 - src/DlgRef/DlgRef_3Spin1Check_QTD.ui | 144 + src/DlgRef/DlgRef_3Spin_QTD.cxx | 109 - src/DlgRef/DlgRef_3Spin_QTD.h | 65 - src/DlgRef/DlgRef_3Spin_QTD.ui | 136 + src/DlgRef/DlgRef_4Sel1List1Check_QTD.cxx | 195 - src/DlgRef/DlgRef_4Sel1List1Check_QTD.h | 81 - src/DlgRef/DlgRef_4Sel1List1Check_QTD.ui | 244 + src/DlgRef/DlgRef_4Sel1List_QTD.cxx | 171 - src/DlgRef/DlgRef_4Sel1List_QTD.h | 78 - src/DlgRef/DlgRef_4Sel1List_QTD.ui | 228 + src/DlgRef/DlgRef_4Sel1Spin2Check.cxx | 106 - src/DlgRef/DlgRef_4Sel1Spin2Check.h | 51 - src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.cxx | 158 - src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.h | 65 - src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.ui | 252 + src/DlgRef/DlgRef_4Sel1Spin3Check_QTD.ui | 265 + src/DlgRef/DlgRef_6Sel_QTD.cxx | 171 - src/DlgRef/DlgRef_6Sel_QTD.h | 78 - src/DlgRef/DlgRef_6Sel_QTD.ui | 281 + src/DlgRef/DlgRef_Skeleton_QTD.cxx | 154 - src/DlgRef/DlgRef_Skeleton_QTD.h | 86 - src/DlgRef/DlgRef_Skeleton_QTD.ui | 226 + src/DlgRef/DlgRef_SpinBox.cxx | 129 - src/DlgRef/DlgRef_SpinBox.h | 65 - src/DlgRef/GEOM_DlgRef.hxx | 47 - src/DlgRef/Makefile.am | 305 +- .../UIFiles/DlgRef_1List1Spin1Btn_QTD.ui | 93 - .../UIFiles/DlgRef_1Sel1Check1List_QTD.ui | 157 - src/DlgRef/UIFiles/DlgRef_1Sel1Check_QTD.ui | 133 - .../UIFiles/DlgRef_1Sel1Spin1Check_QTD.ui | 179 - src/DlgRef/UIFiles/DlgRef_1Sel1Spin_QTD.ui | 165 - src/DlgRef/UIFiles/DlgRef_1Sel2Spin_QTD.ui | 194 - src/DlgRef/UIFiles/DlgRef_1Sel3Check_QTD.ui | 151 - src/DlgRef/UIFiles/DlgRef_1Sel3Spin_QTD.ui | 223 - src/DlgRef/UIFiles/DlgRef_1Sel4Spin_QTD.ui | 292 - .../UIFiles/DlgRef_1Sel5Spin1Check_QTD.ui | 290 - src/DlgRef/UIFiles/DlgRef_1Sel5Spin_QTD.ui | 281 - src/DlgRef/UIFiles/DlgRef_1Sel_QTD.ui | 128 - src/DlgRef/UIFiles/DlgRef_1Spin_QTD.ui | 112 - .../UIFiles/DlgRef_2Sel1Spin2Check_QTD.ui | 211 - src/DlgRef/UIFiles/DlgRef_2Sel1Spin_QTD.ui | 215 - .../UIFiles/DlgRef_2Sel2Spin1Check_QTD.ui | 248 - src/DlgRef/UIFiles/DlgRef_2Sel2Spin_QTD.ui | 231 - src/DlgRef/UIFiles/DlgRef_2Sel3Spin2Rb_QTD.ui | 279 - src/DlgRef/UIFiles/DlgRef_2Sel3Spin_QTD.ui | 260 - .../UIFiles/DlgRef_2Sel4Spin1Check_QTD.ui | 324 - src/DlgRef/UIFiles/DlgRef_2Sel_QTD.ui | 165 - src/DlgRef/UIFiles/DlgRef_2Spin_QTD.ui | 141 - src/DlgRef/UIFiles/DlgRef_3Check_QTD.ui | 112 - src/DlgRef/UIFiles/DlgRef_3Sel1Check_QTD.ui | 210 - .../UIFiles/DlgRef_3Sel3Spin1Check_QTD.ui | 317 - .../UIFiles/DlgRef_3Sel4Spin2Check_QTD.ui | 372 - src/DlgRef/UIFiles/DlgRef_3Sel_QTD.ui | 202 - src/DlgRef/UIFiles/DlgRef_3Spin1Check_QTD.ui | 178 - src/DlgRef/UIFiles/DlgRef_3Spin_QTD.ui | 170 - src/DlgRef/UIFiles/DlgRef_4Sel1List_QTD.ui | 260 - .../UIFiles/DlgRef_4Sel1Spin2Check_QTD.ui | 264 - src/DlgRef/UIFiles/DlgRef_6Sel_QTD.ui | 296 - src/DlgRef/UIFiles/DlgRef_Skeleton_QTD.ui | 234 - src/DlgRef/UIFiles/ui_to_cxx | 118 - src/EntityGUI/EntityGUI.cxx | 191 +- src/EntityGUI/EntityGUI.h | 68 +- src/EntityGUI/EntityGUI.pro | 72 + src/EntityGUI/EntityGUI_1Sel_QTD.cxx | 122 - src/EntityGUI/EntityGUI_1Sel_QTD.h | 69 - src/EntityGUI/EntityGUI_1Sel_QTD.ui | 126 + src/EntityGUI/EntityGUI_1Spin.cxx | 56 - src/EntityGUI/EntityGUI_1Spin.h | 49 - src/EntityGUI/EntityGUI_1Spin_QTD.cxx | 116 - src/EntityGUI/EntityGUI_1Spin_QTD.h | 68 - src/EntityGUI/EntityGUI_1Spin_QTD.ui | 108 + src/EntityGUI/EntityGUI_2Spin.cxx | 60 - src/EntityGUI/EntityGUI_2Spin.h | 50 - src/EntityGUI/EntityGUI_2Spin_QTD.cxx | 127 - src/EntityGUI/EntityGUI_2Spin_QTD.h | 70 - src/EntityGUI/EntityGUI_2Spin_QTD.ui | 130 + src/EntityGUI/EntityGUI_3DSketcherDlg.cxx | 629 ++ src/EntityGUI/EntityGUI_3DSketcherDlg.h | 111 + src/EntityGUI/EntityGUI_3Spin.cxx | 63 - src/EntityGUI/EntityGUI_3Spin.h | 51 - src/EntityGUI/EntityGUI_3Spin_QTD.cxx | 138 - src/EntityGUI/EntityGUI_3Spin_QTD.h | 72 - src/EntityGUI/EntityGUI_3Spin_QTD.ui | 152 + src/EntityGUI/EntityGUI_4Spin.cxx | 67 - src/EntityGUI/EntityGUI_4Spin.h | 52 - src/EntityGUI/EntityGUI_4Spin_QTD.cxx | 149 - src/EntityGUI/EntityGUI_4Spin_QTD.h | 74 - src/EntityGUI/EntityGUI_4Spin_QTD.ui | 174 + src/EntityGUI/EntityGUI_Dir1_QTD.cxx | 99 - src/EntityGUI/EntityGUI_Dir1_QTD.h | 62 - src/EntityGUI/EntityGUI_Dir1_QTD.ui | 85 + src/EntityGUI/EntityGUI_Dir2_QTD.cxx | 95 - src/EntityGUI/EntityGUI_Dir2_QTD.h | 61 - src/EntityGUI/EntityGUI_Dir2_QTD.ui | 77 + src/EntityGUI/EntityGUI_Point_QTD.cxx | 93 - src/EntityGUI/EntityGUI_Point_QTD.h | 61 - src/EntityGUI/EntityGUI_Point_QTD.ui | 77 + src/EntityGUI/EntityGUI_Skeleton_QTD.cxx | 169 - src/EntityGUI/EntityGUI_Skeleton_QTD.h | 85 - src/EntityGUI/EntityGUI_Skeleton_QTD.ui | 249 + src/EntityGUI/EntityGUI_SketcherDlg.cxx | 1537 ++- src/EntityGUI/EntityGUI_SketcherDlg.h | 223 +- src/EntityGUI/EntityGUI_SubShapeDlg.cxx | 430 +- src/EntityGUI/EntityGUI_SubShapeDlg.h | 128 +- src/EntityGUI/EntityGUI_Widgets.cxx | 173 + src/EntityGUI/EntityGUI_Widgets.h | 182 + src/EntityGUI/GEOM_EntityGUI.hxx | 47 - src/EntityGUI/Makefile.am | 162 +- src/EntityGUI/UIFiles/EntityGUI_1Sel_QTD.ui | 218 - src/EntityGUI/UIFiles/EntityGUI_1Spin_QTD.ui | 201 - src/EntityGUI/UIFiles/EntityGUI_2Spin_QTD.ui | 230 - src/EntityGUI/UIFiles/EntityGUI_3Spin_QTD.ui | 259 - src/EntityGUI/UIFiles/EntityGUI_4Spin_QTD.ui | 288 - src/EntityGUI/UIFiles/EntityGUI_Dir1_QTD.ui | 112 - src/EntityGUI/UIFiles/EntityGUI_Dir2_QTD.ui | 120 - src/EntityGUI/UIFiles/EntityGUI_Point_QTD.ui | 103 - .../UIFiles/EntityGUI_Skeleton_QTD.ui | 278 - src/EntityGUI/UIFiles/ui_to_cxx | 47 - src/GEOM/GEOM.pro | 82 + src/GEOM/GEOM_Application.cxx | 35 +- src/GEOM/GEOM_Application.hxx | 36 +- src/GEOM/GEOM_Application.ixx | 36 +- src/GEOM/GEOM_Application.jxx | 36 +- ...teratorOfDataMapOfAsciiStringTransient.hxx | 35 +- ...ratorOfDataMapOfAsciiStringTransient_0.cxx | 35 +- ...MapNodeOfDataMapOfAsciiStringTransient.hxx | 35 +- ...pNodeOfDataMapOfAsciiStringTransient_0.cxx | 35 +- .../GEOM_DataMapOfAsciiStringTransient.hxx | 35 +- .../GEOM_DataMapOfAsciiStringTransient_0.cxx | 35 +- src/GEOM/GEOM_Engine.cxx | 525 +- src/GEOM/GEOM_Engine.hxx | 72 +- src/GEOM/GEOM_Function.cxx | 31 +- src/GEOM/GEOM_Function.hxx | 35 +- src/GEOM/GEOM_Gen_i.cc | 5467 ---------- src/GEOM/GEOM_IOperations.cxx | 34 +- src/GEOM/GEOM_IOperations.hxx | 37 +- src/GEOM/GEOM_ISubShape.hxx | 37 +- src/GEOM/GEOM_Object.cxx | 59 +- src/GEOM/GEOM_Object.hxx | 37 +- src/GEOM/GEOM_PythonDump.cxx | 42 +- src/GEOM/GEOM_PythonDump.hxx | 40 +- src/GEOM/GEOM_Solver.cxx | 35 +- src/GEOM/GEOM_Solver.hxx | 35 +- src/GEOM/GEOM_SubShapeDriver.cxx | 35 +- src/GEOM/GEOM_SubShapeDriver.hxx | 36 +- src/GEOM/Handle_GEOM_Application.hxx | 36 +- ...MapNodeOfDataMapOfAsciiStringTransient.hxx | 36 +- src/GEOM/Makefile.am | 94 +- src/GEOM/geom.cxx | 88 - src/GEOMAlgo/BlockFix.cdl | 48 +- src/GEOMAlgo/BlockFix.cxx | 37 +- src/GEOMAlgo/BlockFix.hxx | 36 +- src/GEOMAlgo/BlockFix.ixx | 35 +- src/GEOMAlgo/BlockFix.jxx | 34 +- src/GEOMAlgo/BlockFix_BlockFixAPI.cdl | 48 +- src/GEOMAlgo/BlockFix_BlockFixAPI.cxx | 38 +- src/GEOMAlgo/BlockFix_BlockFixAPI.hxx | 36 +- src/GEOMAlgo/BlockFix_BlockFixAPI.ixx | 36 +- src/GEOMAlgo/BlockFix_BlockFixAPI.jxx | 34 +- src/GEOMAlgo/BlockFix_BlockFixAPI.lxx | 34 +- src/GEOMAlgo/BlockFix_CheckTool.cdl | 48 +- src/GEOMAlgo/BlockFix_CheckTool.cxx | 37 +- src/GEOMAlgo/BlockFix_CheckTool.hxx | 36 +- src/GEOMAlgo/BlockFix_CheckTool.ixx | 36 +- src/GEOMAlgo/BlockFix_CheckTool.jxx | 34 +- .../BlockFix_PeriodicSurfaceModifier.cdl | 47 +- .../BlockFix_PeriodicSurfaceModifier.cxx | 37 +- .../BlockFix_PeriodicSurfaceModifier.hxx | 36 +- .../BlockFix_PeriodicSurfaceModifier.ixx | 36 +- .../BlockFix_PeriodicSurfaceModifier.jxx | 34 +- src/GEOMAlgo/BlockFix_SphereSpaceModifier.cdl | 48 +- src/GEOMAlgo/BlockFix_SphereSpaceModifier.cxx | 37 +- src/GEOMAlgo/BlockFix_SphereSpaceModifier.hxx | 36 +- src/GEOMAlgo/BlockFix_SphereSpaceModifier.ixx | 36 +- src/GEOMAlgo/BlockFix_SphereSpaceModifier.jxx | 34 +- src/GEOMAlgo/BlockFix_UnionEdges.cdl | 47 +- src/GEOMAlgo/BlockFix_UnionEdges.cxx | 89 +- src/GEOMAlgo/BlockFix_UnionEdges.hxx | 36 +- src/GEOMAlgo/BlockFix_UnionEdges.ixx | 36 +- src/GEOMAlgo/BlockFix_UnionEdges.jxx | 34 +- src/GEOMAlgo/BlockFix_UnionFaces.cdl | 48 +- src/GEOMAlgo/BlockFix_UnionFaces.cxx | 201 +- src/GEOMAlgo/BlockFix_UnionFaces.hxx | 36 +- src/GEOMAlgo/BlockFix_UnionFaces.ixx | 36 +- src/GEOMAlgo/BlockFix_UnionFaces.jxx | 34 +- src/GEOMAlgo/GEOMAlgo.cdl | 36 +- src/GEOMAlgo/GEOMAlgo.pro | 249 + src/GEOMAlgo/GEOMAlgo_Algo.cdl | 37 +- src/GEOMAlgo/GEOMAlgo_Algo.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_Algo.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_Algo.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_Algo.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_Builder.cdl | 39 +- src/GEOMAlgo/GEOMAlgo_Builder.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_Builder.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_Builder.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_Builder.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderArea.cdl | 38 +- src/GEOMAlgo/GEOMAlgo_BuilderArea.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_BuilderArea.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderArea.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderArea.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderFace.cdl | 40 +- src/GEOMAlgo/GEOMAlgo_BuilderFace.cxx | 70 +- src/GEOMAlgo/GEOMAlgo_BuilderFace.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderFace.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderFace.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderShape.cdl | 40 +- src/GEOMAlgo/GEOMAlgo_BuilderShape.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_BuilderShape.hxx | 38 +- src/GEOMAlgo/GEOMAlgo_BuilderShape.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderShape.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderSolid.cdl | 38 +- src/GEOMAlgo/GEOMAlgo_BuilderSolid.cxx | 158 +- src/GEOMAlgo/GEOMAlgo_BuilderSolid.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderSolid.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderSolid.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderTools.cdl | 39 +- src/GEOMAlgo/GEOMAlgo_BuilderTools.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_BuilderTools.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderTools.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_BuilderTools.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_Builder_0.cxx | 32 +- src/GEOMAlgo/GEOMAlgo_Builder_1.cxx | 36 +- src/GEOMAlgo/GEOMAlgo_Builder_2.cxx | 56 +- src/GEOMAlgo/GEOMAlgo_Builder_3.cxx | 36 +- src/GEOMAlgo/GEOMAlgo_Builder_4.cxx | 36 +- src/GEOMAlgo/GEOMAlgo_Clsf.cdl | 37 +- src/GEOMAlgo/GEOMAlgo_Clsf.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_Clsf.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_Clsf.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_Clsf.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_ClsfBox.cdl | 39 +- src/GEOMAlgo/GEOMAlgo_ClsfBox.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_ClsfBox.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_ClsfBox.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_ClsfBox.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_ClsfSolid.cdl | 39 +- src/GEOMAlgo/GEOMAlgo_ClsfSolid.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_ClsfSolid.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_ClsfSolid.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_ClsfSolid.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_ClsfSurf.cdl | 39 +- src/GEOMAlgo/GEOMAlgo_ClsfSurf.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_ClsfSurf.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_ClsfSurf.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_ClsfSurf.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.cdl | 45 +- src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.jxx | 32 +- ...taMapIteratorOfDataMapOfPassKeyInteger.hxx | 32 +- ...MapIteratorOfDataMapOfPassKeyInteger_0.cxx | 32 +- ...apIteratorOfDataMapOfPassKeyShapeShape.hxx | 32 +- ...IteratorOfDataMapOfPassKeyShapeShape_0.cxx | 32 +- ...aMapIteratorOfDataMapOfRealListOfShape.hxx | 32 +- ...apIteratorOfDataMapOfRealListOfShape_0.cxx | 32 +- ...go_DataMapIteratorOfDataMapOfShapeReal.hxx | 32 +- ..._DataMapIteratorOfDataMapOfShapeReal_0.cxx | 32 +- ...ataMapIteratorOfDataMapOfShapeShapeSet.hxx | 32 +- ...aMapIteratorOfDataMapOfShapeShapeSet_0.cxx | 32 +- ...o_DataMapNodeOfDataMapOfPassKeyInteger.hxx | 32 +- ...DataMapNodeOfDataMapOfPassKeyInteger_0.cxx | 32 +- ...ataMapNodeOfDataMapOfPassKeyShapeShape.hxx | 32 +- ...aMapNodeOfDataMapOfPassKeyShapeShape_0.cxx | 32 +- ..._DataMapNodeOfDataMapOfRealListOfShape.hxx | 32 +- ...ataMapNodeOfDataMapOfRealListOfShape_0.cxx | 32 +- ...OMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx | 32 +- ...Algo_DataMapNodeOfDataMapOfShapeReal_0.cxx | 32 +- ...go_DataMapNodeOfDataMapOfShapeShapeSet.hxx | 32 +- ..._DataMapNodeOfDataMapOfShapeShapeSet_0.cxx | 32 +- .../GEOMAlgo_DataMapOfPassKeyInteger.hxx | 32 +- .../GEOMAlgo_DataMapOfPassKeyInteger_0.cxx | 32 +- .../GEOMAlgo_DataMapOfPassKeyShapeShape.hxx | 32 +- .../GEOMAlgo_DataMapOfPassKeyShapeShape_0.cxx | 32 +- .../GEOMAlgo_DataMapOfRealListOfShape.hxx | 32 +- .../GEOMAlgo_DataMapOfRealListOfShape_0.cxx | 32 +- src/GEOMAlgo/GEOMAlgo_DataMapOfShapeReal.hxx | 32 +- .../GEOMAlgo_DataMapOfShapeReal_0.cxx | 32 +- .../GEOMAlgo_DataMapOfShapeShapeSet.hxx | 32 +- .../GEOMAlgo_DataMapOfShapeShapeSet_0.cxx | 32 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cdl | 45 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cdl | 45 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cxx | 39 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cdl | 37 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cxx | 39 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOnQuad.cxx | 10 +- src/GEOMAlgo/GEOMAlgo_FinderShapeOnQuad.hxx | 14 +- src/GEOMAlgo/GEOMAlgo_GlueAnalyser.cdl | 37 +- src/GEOMAlgo/GEOMAlgo_GlueAnalyser.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_GlueAnalyser.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_GlueAnalyser.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_GlueAnalyser.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_Gluer.cdl | 37 +- src/GEOMAlgo/GEOMAlgo_Gluer.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_Gluer.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_Gluer.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_Gluer.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_Gluer1.cdl | 39 +- src/GEOMAlgo/GEOMAlgo_Gluer1.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_Gluer1.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_Gluer1.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_Gluer1.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_HAlgo.cdl | 37 +- src/GEOMAlgo/GEOMAlgo_HAlgo.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_HAlgo.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_HAlgo.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_HAlgo.jxx | 32 +- ...aMapNodeOfIndexedDataMapOfIntegerShape.hxx | 32 +- ...apNodeOfIndexedDataMapOfIntegerShape_0.cxx | 32 +- ...deOfIndexedDataMapOfPassKeyListOfShape.hxx | 36 +- ...OfIndexedDataMapOfPassKeyListOfShape_0.cxx | 36 +- ...ndexedDataMapOfPassKeyShapeListOfShape.hxx | 32 +- ...exedDataMapOfPassKeyShapeListOfShape_0.cxx | 32 +- ...dDataMapNodeOfIndexedDataMapOfShapeBox.hxx | 32 +- ...ataMapNodeOfIndexedDataMapOfShapeBox_0.cxx | 32 +- ...apNodeOfIndexedDataMapOfShapeShapeInfo.hxx | 37 +- ...NodeOfIndexedDataMapOfShapeShapeInfo_0.cxx | 38 +- ...ataMapNodeOfIndexedDataMapOfShapeState.hxx | 32 +- ...aMapNodeOfIndexedDataMapOfShapeState_0.cxx | 32 +- .../GEOMAlgo_IndexedDataMapOfIntegerShape.hxx | 32 +- ...EOMAlgo_IndexedDataMapOfIntegerShape_0.cxx | 32 +- ...lgo_IndexedDataMapOfPassKeyListOfShape.hxx | 36 +- ...o_IndexedDataMapOfPassKeyListOfShape_0.cxx | 36 +- ...ndexedDataMapOfPassKeyShapeListOfShape.hxx | 32 +- ...exedDataMapOfPassKeyShapeListOfShape_0.cxx | 32 +- .../GEOMAlgo_IndexedDataMapOfShapeBox.hxx | 32 +- .../GEOMAlgo_IndexedDataMapOfShapeBox_0.cxx | 32 +- ...EOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx | 38 +- ...MAlgo_IndexedDataMapOfShapeShapeInfo_0.cxx | 38 +- .../GEOMAlgo_IndexedDataMapOfShapeState.hxx | 32 +- .../GEOMAlgo_IndexedDataMapOfShapeState_0.cxx | 32 +- src/GEOMAlgo/GEOMAlgo_KindOfBounds.hxx | 38 +- src/GEOMAlgo/GEOMAlgo_KindOfClosed.hxx | 38 +- src/GEOMAlgo/GEOMAlgo_KindOfName.hxx | 38 +- src/GEOMAlgo/GEOMAlgo_KindOfShape.hxx | 38 +- ...lgo_ListIteratorOfListOfCoupleOfShapes.hxx | 32 +- ...o_ListIteratorOfListOfCoupleOfShapes_0.cxx | 32 +- .../GEOMAlgo_ListIteratorOfListOfPnt.hxx | 32 +- .../GEOMAlgo_ListIteratorOfListOfPnt_0.cxx | 32 +- ...EOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx | 32 +- ...MAlgo_ListNodeOfListOfCoupleOfShapes_0.cxx | 32 +- src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfPnt.hxx | 32 +- .../GEOMAlgo_ListNodeOfListOfPnt_0.cxx | 32 +- .../GEOMAlgo_ListOfCoupleOfShapes.hxx | 32 +- .../GEOMAlgo_ListOfCoupleOfShapes_0.cxx | 32 +- src/GEOMAlgo/GEOMAlgo_ListOfPnt.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_ListOfPnt_0.cxx | 32 +- src/GEOMAlgo/GEOMAlgo_PWireEdgeSet.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_PassKey.cdl | 39 +- src/GEOMAlgo/GEOMAlgo_PassKey.cxx | 36 +- src/GEOMAlgo/GEOMAlgo_PassKey.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_PassKey.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_PassKey.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.cdl | 37 +- src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_PassKeyShape.cdl | 37 +- src/GEOMAlgo/GEOMAlgo_PassKeyShape.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_PassKeyShape.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_PassKeyShape.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_PassKeyShape.jxx | 32 +- .../GEOMAlgo_PassKeyShapeMapHasher.cdl | 37 +- .../GEOMAlgo_PassKeyShapeMapHasher.cxx | 37 +- .../GEOMAlgo_PassKeyShapeMapHasher.hxx | 32 +- .../GEOMAlgo_PassKeyShapeMapHasher.ixx | 32 +- .../GEOMAlgo_PassKeyShapeMapHasher.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_ShapeAlgo.cdl | 45 +- src/GEOMAlgo/GEOMAlgo_ShapeAlgo.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_ShapeAlgo.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_ShapeAlgo.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_ShapeAlgo.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_ShapeInfo.cdl | 32 +- src/GEOMAlgo/GEOMAlgo_ShapeInfo.cxx | 21 + src/GEOMAlgo/GEOMAlgo_ShapeInfo.hxx | 38 +- src/GEOMAlgo/GEOMAlgo_ShapeInfo.ixx | 38 +- src/GEOMAlgo/GEOMAlgo_ShapeInfo.jxx | 21 + src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cdl | 32 +- src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cxx | 21 + src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.hxx | 38 +- src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.ixx | 38 +- src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.jxx | 21 + src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller_1.cxx | 21 + src/GEOMAlgo/GEOMAlgo_ShapeSet.cdl | 38 +- src/GEOMAlgo/GEOMAlgo_ShapeSet.cxx | 38 +- src/GEOMAlgo/GEOMAlgo_ShapeSet.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_ShapeSet.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_ShapeSet.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_ShapeSolid.cdl | 45 +- src/GEOMAlgo/GEOMAlgo_ShapeSolid.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_ShapeSolid.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_ShapeSolid.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_ShapeSolid.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_ShellSolid.cdl | 45 +- src/GEOMAlgo/GEOMAlgo_ShellSolid.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_ShellSolid.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_ShellSolid.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_ShellSolid.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_SolidSolid.cdl | 45 +- src/GEOMAlgo/GEOMAlgo_SolidSolid.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_SolidSolid.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_SolidSolid.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_SolidSolid.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_Splitter.cdl | 46 +- src/GEOMAlgo/GEOMAlgo_Splitter.cxx | 36 +- src/GEOMAlgo/GEOMAlgo_Splitter.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_Splitter.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_Splitter.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_State.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_StateCollector.cdl | 45 +- src/GEOMAlgo/GEOMAlgo_StateCollector.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_StateCollector.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_StateCollector.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_StateCollector.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_SurfaceTools.cdl | 45 +- src/GEOMAlgo/GEOMAlgo_SurfaceTools.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_SurfaceTools.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_SurfaceTools.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_SurfaceTools.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_Tools.cdl | 38 +- src/GEOMAlgo/GEOMAlgo_Tools.cxx | 36 +- src/GEOMAlgo/GEOMAlgo_Tools.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_Tools.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_Tools.jxx | 30 +- src/GEOMAlgo/GEOMAlgo_Tools3D.cdl | 38 +- src/GEOMAlgo/GEOMAlgo_Tools3D.cxx | 36 +- src/GEOMAlgo/GEOMAlgo_Tools3D.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_Tools3D.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_Tools3D.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_VertexSolid.cdl | 45 +- src/GEOMAlgo/GEOMAlgo_VertexSolid.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_VertexSolid.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_VertexSolid.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_VertexSolid.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_WESCorrector.cdl | 39 +- src/GEOMAlgo/GEOMAlgo_WESCorrector.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_WESCorrector.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_WESCorrector.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_WESCorrector.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_WireEdgeSet.cdl | 39 +- src/GEOMAlgo/GEOMAlgo_WireEdgeSet.cxx | 36 +- src/GEOMAlgo/GEOMAlgo_WireEdgeSet.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_WireEdgeSet.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_WireEdgeSet.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_WireSolid.cdl | 43 +- src/GEOMAlgo/GEOMAlgo_WireSolid.cxx | 37 +- src/GEOMAlgo/GEOMAlgo_WireSolid.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_WireSolid.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_WireSolid.jxx | 32 +- src/GEOMAlgo/GEOMAlgo_WireSplitter.cdl | 39 +- src/GEOMAlgo/GEOMAlgo_WireSplitter.cxx | 85 +- src/GEOMAlgo/GEOMAlgo_WireSplitter.hxx | 32 +- src/GEOMAlgo/GEOMAlgo_WireSplitter.ixx | 32 +- src/GEOMAlgo/GEOMAlgo_WireSplitter.jxx | 32 +- src/GEOMAlgo/Handle_BlockFix_BlockFixAPI.hxx | 36 +- ...andle_BlockFix_PeriodicSurfaceModifier.hxx | 36 +- .../Handle_BlockFix_SphereSpaceModifier.hxx | 36 +- src/GEOMAlgo/Handle_GEOMAlgo_Clsf.hxx | 32 +- src/GEOMAlgo/Handle_GEOMAlgo_ClsfBox.hxx | 32 +- src/GEOMAlgo/Handle_GEOMAlgo_ClsfSolid.hxx | 32 +- src/GEOMAlgo/Handle_GEOMAlgo_ClsfSurf.hxx | 32 +- ...o_DataMapNodeOfDataMapOfPassKeyInteger.hxx | 32 +- ...ataMapNodeOfDataMapOfPassKeyShapeShape.hxx | 32 +- ..._DataMapNodeOfDataMapOfRealListOfShape.hxx | 32 +- ...OMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx | 32 +- ...go_DataMapNodeOfDataMapOfShapeShapeSet.hxx | 32 +- src/GEOMAlgo/Handle_GEOMAlgo_HAlgo.hxx | 32 +- ...aMapNodeOfIndexedDataMapOfIntegerShape.hxx | 32 +- ...deOfIndexedDataMapOfPassKeyListOfShape.hxx | 36 +- ...ndexedDataMapOfPassKeyShapeListOfShape.hxx | 32 +- ...dDataMapNodeOfIndexedDataMapOfShapeBox.hxx | 32 +- ...apNodeOfIndexedDataMapOfShapeShapeInfo.hxx | 38 +- ...ataMapNodeOfIndexedDataMapOfShapeState.hxx | 32 +- ...EOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx | 32 +- .../Handle_GEOMAlgo_ListNodeOfListOfPnt.hxx | 32 +- src/GEOMAlgo/Makefile.am | 603 +- src/GEOMBase/GEOMBase.cxx | 206 +- src/GEOMBase/GEOMBase.h | 57 +- src/GEOMBase/GEOMBase.pro | 76 + src/GEOMBase/GEOMBase_Helper.cxx | 203 +- src/GEOMBase/GEOMBase_Helper.h | 81 +- src/GEOMBase/GEOMBase_Skeleton.cxx | 327 +- src/GEOMBase/GEOMBase_Skeleton.h | 130 +- src/GEOMBase/GEOMBase_aParameterDlg.cxx | 159 - src/GEOMBase/GEOMBase_aParameterDlg.h | 61 - src/GEOMBase/GEOMBase_aWarningDlg.cxx | 126 - src/GEOMBase/GEOMBase_aWarningDlg.h | 56 - src/GEOMBase/GEOM_GEOMBase.hxx | 71 +- src/GEOMBase/GEOM_Operation.cxx | 55 +- src/GEOMBase/GEOM_Operation.h | 60 +- src/GEOMBase/Makefile.am | 132 +- src/GEOMClient/GEOMClient.pro | 60 + src/GEOMClient/GEOM_Client.cxx | 53 +- src/GEOMClient/GEOM_Client.hxx | 45 +- src/GEOMClient/Makefile.am | 83 +- src/GEOMDS/GEOMDS_Commands.cxx | 45 +- src/GEOMDS/GEOMDS_Commands.jxx | 45 +- .../GEOMFiltersSelection.pro | 74 + .../GEOM_CompoundFilter.cxx | 135 + .../GEOM_CompoundFilter.h | 48 + src/GEOMFiltersSelection/GEOM_EdgeFilter.cxx | 34 +- src/GEOMFiltersSelection/GEOM_EdgeFilter.h | 34 +- src/GEOMFiltersSelection/GEOM_EdgeFilter.hxx | 108 - src/GEOMFiltersSelection/GEOM_EdgeFilter.ixx | 83 - src/GEOMFiltersSelection/GEOM_EdgeFilter.jxx | 29 - src/GEOMFiltersSelection/GEOM_FaceFilter.cxx | 34 +- src/GEOMFiltersSelection/GEOM_FaceFilter.h | 34 +- src/GEOMFiltersSelection/GEOM_FaceFilter.hxx | 110 - src/GEOMFiltersSelection/GEOM_FaceFilter.ixx | 83 - src/GEOMFiltersSelection/GEOM_FaceFilter.jxx | 29 - .../GEOM_LogicalFilter.cxx | 46 +- src/GEOMFiltersSelection/GEOM_LogicalFilter.h | 46 +- .../GEOM_LogicalFilter.hxx | 103 - src/GEOMFiltersSelection/GEOM_OCCFilter.cxx | 34 +- src/GEOMFiltersSelection/GEOM_OCCFilter.h | 34 +- .../GEOM_PreviewFilter.cxx | 36 +- src/GEOMFiltersSelection/GEOM_PreviewFilter.h | 34 +- .../GEOM_PreviewFilter.hxx | 102 - .../GEOM_PreviewFilter.ixx | 83 - .../GEOM_PreviewFilter.jxx | 29 - .../GEOM_SelectionFilter.cxx | 41 +- .../GEOM_SelectionFilter.h | 38 +- .../GEOM_ShapeTypeFilter.cxx | 168 - .../GEOM_ShapeTypeFilter.hxx | 110 - .../GEOM_ShapeTypeFilter.ixx | 83 - .../GEOM_ShapeTypeFilter.jxx | 29 - src/GEOMFiltersSelection/GEOM_TypeFilter.cxx | 34 +- src/GEOMFiltersSelection/GEOM_TypeFilter.h | 34 +- src/GEOMFiltersSelection/GEOM_TypeFilter.hxx | 90 - .../Handle_GEOM_EdgeFilter.hxx | 100 - .../Handle_GEOM_FaceFilter.hxx | 100 - .../Handle_GEOM_PreviewFilter.hxx | 100 - .../Handle_GEOM_ShapeTypeFilter.hxx | 100 - src/GEOMFiltersSelection/Makefile.am | 109 +- src/GEOMGUI/GEOMGUI.cxx | 52 +- src/GEOMGUI/GEOMGUI.h | 53 +- src/GEOMGUI/GEOMGUI.pro | 85 + src/GEOMGUI/GEOMGUI_OCCSelector.cxx | 52 +- src/GEOMGUI/GEOMGUI_OCCSelector.h | 40 +- src/GEOMGUI/GEOMGUI_Selection.cxx | 76 +- src/GEOMGUI/GEOMGUI_Selection.h | 26 +- src/GEOMGUI/GEOM_Displayer.cxx | 114 +- src/GEOMGUI/GEOM_Displayer.h | 44 +- src/GEOMGUI/GEOM_GEOMGUI.hxx | 71 +- src/GEOMGUI/GEOM_images.po | 7 +- src/GEOMGUI/GEOM_images.ts | 1009 ++ src/GEOMGUI/GEOM_msg_en.po | 102 +- src/GEOMGUI/GEOM_msg_en.ts | 4141 ++++++++ src/GEOMGUI/GEOM_msg_fr.po | 7 +- src/GEOMGUI/GEOM_msg_fr.ts | 1445 +++ src/GEOMGUI/GeometryGUI.cxx | 1130 +- src/GEOMGUI/GeometryGUI.h | 42 +- src/GEOMGUI/GeometryGUI_Swig.cxx | 25 +- src/GEOMGUI/GeometryGUI_Swig.hxx | 54 +- src/GEOMGUI/GeometryGUI_Swig.i | 13 +- src/GEOMGUI/Makefile.am | 137 +- src/GEOMImpl/GEOMImpl.pro | 127 + ...late.cxx => GEOMImpl_3DSketcherDriver.cxx} | 100 +- src/GEOMImpl/GEOMImpl_3DSketcherDriver.hxx | 158 + src/GEOMImpl/GEOMImpl_ArcDriver.cxx | 67 +- src/GEOMImpl/GEOMImpl_ArcDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_ArchimedeDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_ArchimedeDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_Block6Explorer.cxx | 34 +- src/GEOMImpl/GEOMImpl_Block6Explorer.hxx | 36 +- src/GEOMImpl/GEOMImpl_BlockDriver.cxx | 63 +- src/GEOMImpl/GEOMImpl_BlockDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_BooleanDriver.cxx | 53 +- src/GEOMImpl/GEOMImpl_BooleanDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_BoxDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_BoxDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_ChamferDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_ChamferDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_CircleDriver.cxx | 159 +- src/GEOMImpl/GEOMImpl_CircleDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_ConeDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_ConeDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_CopyDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_CopyDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_CylinderDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_CylinderDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_DiskDriver.cxx | 205 + src/GEOMImpl/GEOMImpl_DiskDriver.hxx | 160 + src/GEOMImpl/GEOMImpl_EllipseDriver.cxx | 77 +- src/GEOMImpl/GEOMImpl_EllipseDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_ExportDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_ExportDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_FaceDriver.cxx | 169 + src/GEOMImpl/GEOMImpl_FaceDriver.hxx | 160 + src/GEOMImpl/GEOMImpl_Fillet2dDriver.cxx | 152 + ...mplate.hxx => GEOMImpl_Fillet2dDriver.hxx} | 46 +- src/GEOMImpl/GEOMImpl_FilletDriver.cxx | 49 +- src/GEOMImpl/GEOMImpl_FilletDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_FillingDriver.cxx | 163 +- src/GEOMImpl/GEOMImpl_FillingDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_Gen.cxx | 42 +- src/GEOMImpl/GEOMImpl_Gen.hxx | 35 +- src/GEOMImpl/GEOMImpl_GlueDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_GlueDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_HealingDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_HealingDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_I3DPrimOperations.cxx | 490 +- src/GEOMImpl/GEOMImpl_I3DPrimOperations.hxx | 58 +- .../GEOMImpl_I3DSketcher.hxx} | 40 +- src/GEOMImpl/GEOMImpl_IArc.hxx | 37 +- src/GEOMImpl/GEOMImpl_IArchimede.hxx | 37 +- src/GEOMImpl/GEOMImpl_IBasicOperations.cxx | 92 +- src/GEOMImpl/GEOMImpl_IBasicOperations.hxx | 39 +- src/GEOMImpl/GEOMImpl_IBlockTrsf.hxx | 37 +- src/GEOMImpl/GEOMImpl_IBlocks.hxx | 37 +- src/GEOMImpl/GEOMImpl_IBlocksOperations.cxx | 48 +- src/GEOMImpl/GEOMImpl_IBlocksOperations.hxx | 45 +- src/GEOMImpl/GEOMImpl_IBoolean.hxx | 37 +- src/GEOMImpl/GEOMImpl_IBooleanOperations.cxx | 31 +- src/GEOMImpl/GEOMImpl_IBooleanOperations.hxx | 35 +- src/GEOMImpl/GEOMImpl_IBox.hxx | 37 +- src/GEOMImpl/GEOMImpl_IChamfer.hxx | 37 +- src/GEOMImpl/GEOMImpl_ICircle.hxx | 37 +- src/GEOMImpl/GEOMImpl_ICone.hxx | 37 +- src/GEOMImpl/GEOMImpl_ICopy.hxx | 37 +- src/GEOMImpl/GEOMImpl_ICurvesOperations.cxx | 226 +- src/GEOMImpl/GEOMImpl_ICurvesOperations.hxx | 43 +- src/GEOMImpl/GEOMImpl_ICylinder.hxx | 37 +- src/GEOMImpl/GEOMImpl_IDisk.hxx | 65 + src/GEOMImpl/GEOMImpl_IEllipse.hxx | 37 +- src/GEOMImpl/GEOMImpl_IFace.hxx | 54 + src/GEOMImpl/GEOMImpl_IFillet.hxx | 37 +- src/GEOMImpl/GEOMImpl_IFillet2d.hxx | 51 + src/GEOMImpl/GEOMImpl_IFilling.hxx | 37 +- src/GEOMImpl/GEOMImpl_IGlue.hxx | 37 +- src/GEOMImpl/GEOMImpl_IGroupOperations.cxx | 31 +- src/GEOMImpl/GEOMImpl_IGroupOperations.hxx | 35 +- src/GEOMImpl/GEOMImpl_IHealing.hxx | 37 +- src/GEOMImpl/GEOMImpl_IHealingOperations.cxx | 61 +- src/GEOMImpl/GEOMImpl_IHealingOperations.hxx | 51 +- src/GEOMImpl/GEOMImpl_IImportExport.hxx | 37 +- src/GEOMImpl/GEOMImpl_IInsertOperations.cxx | 36 +- src/GEOMImpl/GEOMImpl_IInsertOperations.hxx | 35 +- src/GEOMImpl/GEOMImpl_ILine.hxx | 37 +- src/GEOMImpl/GEOMImpl_ILocalOperations.cxx | 152 +- src/GEOMImpl/GEOMImpl_ILocalOperations.hxx | 77 +- src/GEOMImpl/GEOMImpl_IMarker.hxx | 37 +- src/GEOMImpl/GEOMImpl_IMeasure.hxx | 37 +- src/GEOMImpl/GEOMImpl_IMeasureOperations.cxx | 673 +- src/GEOMImpl/GEOMImpl_IMeasureOperations.hxx | 59 +- src/GEOMImpl/GEOMImpl_IMirror.hxx | 37 +- src/GEOMImpl/GEOMImpl_IOffset.hxx | 37 +- src/GEOMImpl/GEOMImpl_IPartition.hxx | 37 +- src/GEOMImpl/GEOMImpl_IPipe.hxx | 36 +- src/GEOMImpl/GEOMImpl_IPipeBiNormal.hxx | 49 + src/GEOMImpl/GEOMImpl_IPipeDiffSect.hxx | 36 +- src/GEOMImpl/GEOMImpl_IPipeShellSect.hxx | 36 +- src/GEOMImpl/GEOMImpl_IPlane.hxx | 37 +- src/GEOMImpl/GEOMImpl_IPoint.hxx | 44 +- src/GEOMImpl/GEOMImpl_IPolyline.hxx | 37 +- src/GEOMImpl/GEOMImpl_IPosition.hxx | 55 +- src/GEOMImpl/GEOMImpl_IPrism.hxx | 48 +- src/GEOMImpl/GEOMImpl_IRevolution.hxx | 37 +- src/GEOMImpl/GEOMImpl_IRotate.hxx | 37 +- src/GEOMImpl/GEOMImpl_IScale.hxx | 47 +- src/GEOMImpl/GEOMImpl_IShapes.hxx | 37 +- src/GEOMImpl/GEOMImpl_IShapesOperations.cxx | 451 +- src/GEOMImpl/GEOMImpl_IShapesOperations.hxx | 185 +- src/GEOMImpl/GEOMImpl_ISketcher.hxx | 37 +- src/GEOMImpl/GEOMImpl_ISphere.hxx | 37 +- src/GEOMImpl/GEOMImpl_ISpline.hxx | 37 +- src/GEOMImpl/GEOMImpl_IThruSections.hxx | 37 +- src/GEOMImpl/GEOMImpl_ITorus.hxx | 37 +- .../GEOMImpl_ITransformOperations.cxx | 273 +- .../GEOMImpl_ITransformOperations.hxx | 160 +- src/GEOMImpl/GEOMImpl_ITranslate.hxx | 44 +- src/GEOMImpl/GEOMImpl_IVector.hxx | 37 +- src/GEOMImpl/GEOMImpl_ImportDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_ImportDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_LineDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_LineDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_MarkerDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_MarkerDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_MeasureDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_MeasureDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_MirrorDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_MirrorDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_OffsetDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_OffsetDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_PartitionDriver.cxx | 44 +- src/GEOMImpl/GEOMImpl_PartitionDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_PipeDriver.cxx | 159 +- src/GEOMImpl/GEOMImpl_PipeDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_PlaneDriver.cxx | 31 +- src/GEOMImpl/GEOMImpl_PlaneDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_PointDriver.cxx | 67 +- src/GEOMImpl/GEOMImpl_PointDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_PolylineDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_PolylineDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_PositionDriver.cxx | 224 +- src/GEOMImpl/GEOMImpl_PositionDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_PrismDriver.cxx | 51 +- src/GEOMImpl/GEOMImpl_PrismDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_RevolutionDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_RevolutionDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_RotateDriver.cxx | 97 +- src/GEOMImpl/GEOMImpl_RotateDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_ScaleDriver.cxx | 131 +- src/GEOMImpl/GEOMImpl_ScaleDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_ShapeDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_ShapeDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_SketcherDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_SketcherDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_SphereDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_SphereDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_SplineDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_SplineDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_ThruSectionsDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_ThruSectionsDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_TorusDriver.cxx | 35 +- src/GEOMImpl/GEOMImpl_TorusDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_TranslateDriver.cxx | 83 +- src/GEOMImpl/GEOMImpl_TranslateDriver.hxx | 36 +- src/GEOMImpl/GEOMImpl_Types.hxx | 73 +- src/GEOMImpl/GEOMImpl_VectorDriver.cxx | 34 +- src/GEOMImpl/GEOMImpl_VectorDriver.hxx | 36 +- src/GEOMImpl/GEOM_GEOMImpl.hxx | 38 +- src/GEOMImpl/Makefile.am | 327 +- src/GEOMToolsGUI/GEOMToolsGUI.cxx | 791 +- src/GEOMToolsGUI/GEOMToolsGUI.h | 81 +- src/GEOMToolsGUI/GEOMToolsGUI.pro | 65 + src/GEOMToolsGUI/GEOMToolsGUI_1.cxx | 223 +- src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.cxx | 132 + src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.h | 43 + src/GEOMToolsGUI/GEOMToolsGUI_NameDlg.h | 48 - src/GEOMToolsGUI/GEOMToolsGUI_NbIsosDlg.cxx | 119 +- src/GEOMToolsGUI/GEOMToolsGUI_NbIsosDlg.h | 76 +- .../GEOMToolsGUI_TransparencyDlg.cxx | 217 +- .../GEOMToolsGUI_TransparencyDlg.h | 70 +- src/GEOMToolsGUI/GEOM_ToolsGUI.hxx | 38 +- src/GEOMToolsGUI/Makefile.am | 120 +- src/GEOM_I/GEOM_DumpPython.cc | 77 +- src/GEOM_I/GEOM_GEOM_I.hxx | 38 +- src/GEOM_I/GEOM_Gen_i.cc | 601 +- src/GEOM_I/GEOM_Gen_i.hh | 72 +- src/GEOM_I/GEOM_I.pro | 94 + src/GEOM_I/GEOM_I3DPrimOperations_i.cc | 283 +- src/GEOM_I/GEOM_I3DPrimOperations_i.hh | 67 +- src/GEOM_I/GEOM_IBasicOperations_i.cc | 68 +- src/GEOM_I/GEOM_IBasicOperations_i.hh | 39 +- src/GEOM_I/GEOM_IBlocksOperations_i.cc | 34 +- src/GEOM_I/GEOM_IBlocksOperations_i.hh | 35 +- src/GEOM_I/GEOM_IBooleanOperations_i.cc | 31 +- src/GEOM_I/GEOM_IBooleanOperations_i.hh | 35 +- src/GEOM_I/GEOM_ICurvesOperations_i.cc | 146 +- src/GEOM_I/GEOM_ICurvesOperations_i.hh | 41 +- src/GEOM_I/GEOM_IGroupOperations_i.cc | 34 +- src/GEOM_I/GEOM_IGroupOperations_i.hh | 35 +- src/GEOM_I/GEOM_IHealingOperations_i.cc | 34 +- src/GEOM_I/GEOM_IHealingOperations_i.hh | 35 +- src/GEOM_I/GEOM_IInsertOperations_i.cc | 34 +- src/GEOM_I/GEOM_IInsertOperations_i.hh | 35 +- src/GEOM_I/GEOM_ILocalOperations_i.cc | 69 +- src/GEOM_I/GEOM_ILocalOperations_i.hh | 38 +- src/GEOM_I/GEOM_IMeasureOperations_i.cc | 179 +- src/GEOM_I/GEOM_IMeasureOperations_i.hh | 57 +- src/GEOM_I/GEOM_IOperations_i.cc | 34 +- src/GEOM_I/GEOM_IOperations_i.hh | 35 +- src/GEOM_I/GEOM_IShapesOperations_i.cc | 161 +- src/GEOM_I/GEOM_IShapesOperations_i.hh | 51 +- src/GEOM_I/GEOM_ITransformOperations_i.cc | 485 +- src/GEOM_I/GEOM_ITransformOperations_i.hh | 61 +- src/GEOM_I/GEOM_Object_i.cc | 45 +- src/GEOM_I/GEOM_Object_i.hh | 39 +- src/GEOM_I/Makefile.am | 160 +- src/GEOM_I_Superv/GEOM_List_i.hh | 34 +- src/GEOM_I_Superv/GEOM_Superv_i.cc | 323 +- src/GEOM_I_Superv/GEOM_Superv_i.hh | 96 +- src/GEOM_I_Superv/Makefile.am | 89 +- src/GEOM_SWIG/GEOM_Nut.py | 8 +- src/GEOM_SWIG/GEOM_ObjectInfo.py | 60 + src/GEOM_SWIG/GEOM_Partition1.py | 10 +- src/GEOM_SWIG/GEOM_Partition2.py | 11 +- src/GEOM_SWIG/GEOM_Partition3.py | 10 +- src/GEOM_SWIG/GEOM_Partition4.py | 10 +- src/GEOM_SWIG/GEOM_Partition5.py | 10 +- src/GEOM_SWIG/GEOM_Sketcher.py | 45 +- src/GEOM_SWIG/GEOM_Spanner.py | 27 +- src/GEOM_SWIG/GEOM_TestAll.py | 126 +- src/GEOM_SWIG/GEOM_TestHealing.py | 11 +- src/GEOM_SWIG/GEOM_TestMeasures.py | 13 +- src/GEOM_SWIG/GEOM_TestOthers.py | 252 +- src/GEOM_SWIG/GEOM_blocks.py | 12 +- src/GEOM_SWIG/GEOM_cyl2complementary.py | 9 +- src/GEOM_SWIG/GEOM_example.py | 45 +- src/GEOM_SWIG/GEOM_example2.py | 45 +- src/GEOM_SWIG/GEOM_example3.py | 45 +- src/GEOM_SWIG/GEOM_example4.py | 45 +- src/GEOM_SWIG/GEOM_example5.py | 45 +- src/GEOM_SWIG/GEOM_example6.py | 44 +- src/GEOM_SWIG/GEOM_moteur.py | 11 +- src/GEOM_SWIG/GEOM_shared_modules.py | 6 +- src/GEOM_SWIG/GEOM_shellSolid.py | 9 +- src/GEOM_SWIG/GEOM_tube_geom.py | 7 +- src/GEOM_SWIG/GEOM_tube_geom_gg2.py | 8 +- src/GEOM_SWIG/GEOM_usinggeom.py | 11 +- src/GEOM_SWIG/Makefile.am | 84 +- src/GEOM_SWIG/PAL_MESH_019_020_geometry.py | 8 +- src/GEOM_SWIG/PAL_MESH_028_geometry.py | 8 +- src/GEOM_SWIG/PAL_MESH_030_geometry.py | 8 +- src/GEOM_SWIG/PAL_MESH_033_geometry.py | 8 +- src/GEOM_SWIG/PAL_MESH_035_geometry.py | 8 +- src/GEOM_SWIG/batchmode_geompy.py | 1278 +-- src/GEOM_SWIG/geompy.py | 11 +- src/GEOM_SWIG/geompyDC.py | 2246 ++-- src/GEOM_SWIG_WITHIHM/Makefile.am | 97 +- src/GEOM_SWIG_WITHIHM/libGEOM_Swig.i | 37 +- src/GenerationGUI/GenerationGUI.cxx | 79 +- src/GenerationGUI/GenerationGUI.h | 62 +- src/GenerationGUI/GenerationGUI.pro | 66 + .../GenerationGUI_FillingDlg.cxx | 252 +- src/GenerationGUI/GenerationGUI_FillingDlg.h | 114 +- src/GenerationGUI/GenerationGUI_PipeDlg.cxx | 499 +- src/GenerationGUI/GenerationGUI_PipeDlg.h | 111 +- src/GenerationGUI/GenerationGUI_PrismDlg.cxx | 728 +- src/GenerationGUI/GenerationGUI_PrismDlg.h | 144 +- src/GenerationGUI/GenerationGUI_RevolDlg.cxx | 394 +- src/GenerationGUI/GenerationGUI_RevolDlg.h | 122 +- src/GenerationGUI/Makefile.am | 129 +- src/GroupGUI/GroupGUI.cxx | 105 +- src/GroupGUI/GroupGUI.h | 52 +- src/GroupGUI/GroupGUI_GroupDlg.cxx | 681 +- src/GroupGUI/GroupGUI_GroupDlg.h | 152 +- src/GroupGUI/Makefile.am | 112 +- src/IGESExport/IGESExport.cxx | 36 +- src/IGESExport/IGESExport.pro | 49 + src/IGESExport/Makefile.am | 52 +- src/IGESImport/IGESImport.cxx | 36 +- src/IGESImport/IGESImport.pro | 49 + src/IGESImport/Makefile.am | 52 +- src/Makefile.am | 69 +- src/MeasureGUI/GEOM_MeasureGUI.hxx | 47 - src/MeasureGUI/Makefile.am | 189 +- src/MeasureGUI/MeasureGUI.cxx | 122 +- src/MeasureGUI/MeasureGUI.h | 56 +- .../MeasureGUI_1Sel12LineEdit_QTD.cxx | 169 - .../MeasureGUI_1Sel12LineEdit_QTD.h | 80 - .../MeasureGUI_1Sel12LineEdit_QTD.ui | 197 + .../MeasureGUI_1Sel1TextView1Check_QTD.ui | 92 + .../MeasureGUI_1Sel1TextView2ListBox_QTD.ui | 123 + .../MeasureGUI_1Sel1TextView_QTD.cxx | 96 - src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.h | 65 - .../MeasureGUI_1Sel1TextView_QTD.ui | 103 + .../MeasureGUI_1Sel3LineEdit_QTD.cxx | 123 - src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.h | 69 - .../MeasureGUI_1Sel3LineEdit_QTD.ui | 132 + .../MeasureGUI_1Sel6LineEdit_QTD.cxx | 151 - src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.h | 75 - .../MeasureGUI_1Sel6LineEdit_QTD.ui | 180 + .../MeasureGUI_2Sel1LineEdit_QTD.cxx | 104 - src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.h | 56 - .../MeasureGUI_2Sel1LineEdit_QTD.ui | 142 + .../MeasureGUI_2Sel4LineEdit_QTD.cxx | 131 - src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.h | 62 - .../MeasureGUI_2Sel4LineEdit_QTD.ui | 189 + src/MeasureGUI/MeasureGUI_AngleDlg.cxx | 205 +- src/MeasureGUI/MeasureGUI_AngleDlg.h | 64 +- src/MeasureGUI/MeasureGUI_BndBoxDlg.cxx | 183 +- src/MeasureGUI/MeasureGUI_BndBoxDlg.h | 79 +- src/MeasureGUI/MeasureGUI_CenterMassDlg.cxx | 129 +- src/MeasureGUI/MeasureGUI_CenterMassDlg.h | 71 +- .../MeasureGUI_CheckCompoundOfBlocksDlg.cxx | 277 +- .../MeasureGUI_CheckCompoundOfBlocksDlg.h | 90 +- src/MeasureGUI/MeasureGUI_CheckShapeDlg.cxx | 110 +- src/MeasureGUI/MeasureGUI_CheckShapeDlg.h | 56 +- src/MeasureGUI/MeasureGUI_DistanceDlg.cxx | 329 +- src/MeasureGUI/MeasureGUI_DistanceDlg.h | 106 +- src/MeasureGUI/MeasureGUI_InertiaDlg.cxx | 122 +- src/MeasureGUI/MeasureGUI_InertiaDlg.h | 91 +- src/MeasureGUI/MeasureGUI_MaxToleranceDlg.cxx | 110 +- src/MeasureGUI/MeasureGUI_MaxToleranceDlg.h | 87 +- src/MeasureGUI/MeasureGUI_NormaleDlg.cxx | 239 +- src/MeasureGUI/MeasureGUI_NormaleDlg.h | 63 +- src/MeasureGUI/MeasureGUI_PointDlg.cxx | 176 +- src/MeasureGUI/MeasureGUI_PointDlg.h | 81 +- src/MeasureGUI/MeasureGUI_PropertiesDlg.cxx | 124 +- src/MeasureGUI/MeasureGUI_PropertiesDlg.h | 101 +- src/MeasureGUI/MeasureGUI_Skeleton.cxx | 267 +- src/MeasureGUI/MeasureGUI_Skeleton.h | 145 +- src/MeasureGUI/MeasureGUI_SkeletonBox_QTD.ui | 93 + src/MeasureGUI/MeasureGUI_Skeleton_QTD.cxx | 120 - src/MeasureGUI/MeasureGUI_Skeleton_QTD.h | 74 - src/MeasureGUI/MeasureGUI_WhatisDlg.cxx | 603 +- src/MeasureGUI/MeasureGUI_WhatisDlg.h | 89 +- src/MeasureGUI/MeasureGUI_Widgets.cxx | 152 + src/MeasureGUI/MeasureGUI_Widgets.h | 172 + .../UIFiles/MeasureGUI_1Sel12LineEdit_QTD.ui | 268 - .../UIFiles/MeasureGUI_1Sel1TextView_QTD.ui | 116 - .../UIFiles/MeasureGUI_1Sel3LineEdit_QTD.ui | 191 - .../UIFiles/MeasureGUI_1Sel6LineEdit_QTD.ui | 254 - .../UIFiles/MeasureGUI_2Sel1LineEdit_QTD.ui | 165 - .../UIFiles/MeasureGUI_2Sel4LineEdit_QTD.ui | 219 - .../UIFiles/MeasureGUI_Skeleton_QTD.ui | 167 - src/MeasureGUI/UIFiles/ui_to_cxx | 41 - src/NMTAlgo/Makefile.am | 104 +- src/NMTAlgo/NMTAlgo.cdl | 48 +- src/NMTAlgo/NMTAlgo.pro | 66 + src/NMTAlgo/NMTAlgo_Algo.cdl | 48 +- src/NMTAlgo/NMTAlgo_Algo.cxx | 37 +- src/NMTAlgo/NMTAlgo_Algo.hxx | 36 +- src/NMTAlgo/NMTAlgo_Algo.ixx | 36 +- src/NMTAlgo/NMTAlgo_Algo.jxx | 34 +- src/NMTAlgo/NMTAlgo_Builder.cdl | 48 +- src/NMTAlgo/NMTAlgo_Builder.cxx | 37 +- src/NMTAlgo/NMTAlgo_Builder.hxx | 36 +- src/NMTAlgo/NMTAlgo_Builder.ixx | 36 +- src/NMTAlgo/NMTAlgo_Builder.jxx | 34 +- src/NMTAlgo/NMTAlgo_Loop3d.cdl | 40 +- src/NMTAlgo/NMTAlgo_Loop3d.cxx | 37 +- src/NMTAlgo/NMTAlgo_Loop3d.hxx | 36 +- src/NMTAlgo/NMTAlgo_Loop3d.ixx | 36 +- src/NMTAlgo/NMTAlgo_Loop3d.jxx | 34 +- src/NMTAlgo/NMTAlgo_Splitter.cdl | 42 +- src/NMTAlgo/NMTAlgo_Splitter.cxx | 37 +- src/NMTAlgo/NMTAlgo_Splitter.hxx | 36 +- src/NMTAlgo/NMTAlgo_Splitter.ixx | 36 +- src/NMTAlgo/NMTAlgo_Splitter.jxx | 34 +- src/NMTAlgo/NMTAlgo_Splitter1.cdl | 48 +- src/NMTAlgo/NMTAlgo_Splitter1.cxx | 37 +- src/NMTAlgo/NMTAlgo_Splitter1.hxx | 36 +- src/NMTAlgo/NMTAlgo_Splitter1.ixx | 36 +- src/NMTAlgo/NMTAlgo_Splitter1.jxx | 34 +- src/NMTAlgo/NMTAlgo_Splitter_1.cxx | 37 +- src/NMTAlgo/NMTAlgo_Splitter_2.cxx | 37 +- src/NMTAlgo/NMTAlgo_Tools.cdl | 48 +- src/NMTAlgo/NMTAlgo_Tools.cxx | 37 +- src/NMTAlgo/NMTAlgo_Tools.hxx | 36 +- src/NMTAlgo/NMTAlgo_Tools.ixx | 36 +- src/NMTAlgo/NMTAlgo_Tools.jxx | 34 +- ...aMapNodeOfDataMapOfIntegerMapOfInteger.hxx | 32 +- ...pOfIntegerIndexedDataMapOfShapeInteger.hxx | 32 +- ...aMapNodeOfIndexedDataMapOfIntegerShape.hxx | 32 +- ...dDataMapNodeOfIndexedDataMapOfShapeBox.hxx | 32 +- ...dexedDataMapOfShapeAncestorsSuccessors.hxx | 32 +- .../Handle_NMTDS_ListNodeOfListOfPassKey.hxx | 32 +- ...e_NMTDS_ListNodeOfListOfPassKeyBoolean.hxx | 32 +- .../Handle_NMTDS_StdMapNodeOfMapOfPassKey.hxx | 32 +- ..._NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx | 32 +- src/NMTDS/Makefile.am | 94 +- src/NMTDS/NMTDS.cdl | 46 +- src/NMTDS/NMTDS.pro | 119 + src/NMTDS/NMTDS_BoxBndTree.cxx | 37 +- src/NMTDS/NMTDS_BoxBndTree.hxx | 37 +- src/NMTDS/NMTDS_CArray1OfIndexRange.hxx | 32 +- src/NMTDS/NMTDS_CArray1OfIndexRange_0.cxx | 32 +- ...IteratorOfDataMapOfIntegerMapOfInteger.hxx | 32 +- ...eratorOfDataMapOfIntegerMapOfInteger_0.cxx | 32 +- ...aMapNodeOfDataMapOfIntegerMapOfInteger.hxx | 32 +- ...apNodeOfDataMapOfIntegerMapOfInteger_0.cxx | 32 +- .../NMTDS_DataMapOfIntegerMapOfInteger.hxx | 32 +- .../NMTDS_DataMapOfIntegerMapOfInteger_0.cxx | 32 +- src/NMTDS/NMTDS_IndexRange.cdl | 45 +- src/NMTDS/NMTDS_IndexRange.cxx | 37 +- src/NMTDS/NMTDS_IndexRange.hxx | 32 +- src/NMTDS/NMTDS_IndexRange.ixx | 32 +- src/NMTDS/NMTDS_IndexRange.jxx | 32 +- ...pOfIntegerIndexedDataMapOfShapeInteger.hxx | 32 +- ...fIntegerIndexedDataMapOfShapeInteger_0.cxx | 32 +- ...aMapNodeOfIndexedDataMapOfIntegerShape.hxx | 32 +- ...apNodeOfIndexedDataMapOfIntegerShape_0.cxx | 32 +- ...dDataMapNodeOfIndexedDataMapOfShapeBox.hxx | 32 +- ...ataMapNodeOfIndexedDataMapOfShapeBox_0.cxx | 32 +- ...pOfIntegerIndexedDataMapOfShapeInteger.hxx | 32 +- ...fIntegerIndexedDataMapOfShapeInteger_0.cxx | 32 +- .../NMTDS_IndexedDataMapOfIntegerShape.hxx | 32 +- .../NMTDS_IndexedDataMapOfIntegerShape_0.cxx | 32 +- src/NMTDS/NMTDS_IndexedDataMapOfShapeBox.hxx | 32 +- .../NMTDS_IndexedDataMapOfShapeBox_0.cxx | 32 +- src/NMTDS/NMTDS_InterfPool.cdl | 47 +- src/NMTDS/NMTDS_InterfPool.cxx | 37 +- src/NMTDS/NMTDS_InterfPool.hxx | 32 +- src/NMTDS/NMTDS_InterfPool.ixx | 32 +- src/NMTDS/NMTDS_InterfPool.jxx | 32 +- src/NMTDS/NMTDS_InterfType.hxx | 32 +- src/NMTDS/NMTDS_Iterator.cdl | 46 +- src/NMTDS/NMTDS_Iterator.cxx | 37 +- src/NMTDS/NMTDS_Iterator.hxx | 32 +- src/NMTDS/NMTDS_Iterator.ixx | 32 +- src/NMTDS/NMTDS_Iterator.jxx | 32 +- src/NMTDS/NMTDS_IteratorCheckerSI.cdl | 44 +- src/NMTDS/NMTDS_IteratorCheckerSI.cxx | 36 +- src/NMTDS/NMTDS_IteratorCheckerSI.hxx | 32 +- src/NMTDS/NMTDS_IteratorCheckerSI.ixx | 32 +- src/NMTDS/NMTDS_IteratorCheckerSI.jxx | 32 +- ...dexedDataMapOfShapeAncestorsSuccessors.hxx | 32 +- ...xedDataMapOfShapeAncestorsSuccessors_0.cxx | 32 +- .../NMTDS_ListIteratorOfListOfPassKey.hxx | 32 +- ...TDS_ListIteratorOfListOfPassKeyBoolean.hxx | 32 +- ...S_ListIteratorOfListOfPassKeyBoolean_0.cxx | 32 +- .../NMTDS_ListIteratorOfListOfPassKey_0.cxx | 32 +- ...dexedDataMapOfShapeAncestorsSuccessors.hxx | 32 +- ...xedDataMapOfShapeAncestorsSuccessors_0.cxx | 32 +- src/NMTDS/NMTDS_ListNodeOfListOfPassKey.hxx | 32 +- .../NMTDS_ListNodeOfListOfPassKeyBoolean.hxx | 32 +- ...NMTDS_ListNodeOfListOfPassKeyBoolean_0.cxx | 32 +- src/NMTDS/NMTDS_ListNodeOfListOfPassKey_0.cxx | 32 +- ...dexedDataMapOfShapeAncestorsSuccessors.hxx | 32 +- ...xedDataMapOfShapeAncestorsSuccessors_0.cxx | 32 +- src/NMTDS/NMTDS_ListOfPassKey.hxx | 32 +- src/NMTDS/NMTDS_ListOfPassKeyBoolean.hxx | 32 +- src/NMTDS/NMTDS_ListOfPassKeyBoolean_0.cxx | 32 +- src/NMTDS/NMTDS_ListOfPassKey_0.cxx | 32 +- src/NMTDS/NMTDS_MapIteratorOfMapOfPassKey.hxx | 32 +- ...NMTDS_MapIteratorOfMapOfPassKeyBoolean.hxx | 32 +- ...TDS_MapIteratorOfMapOfPassKeyBoolean_0.cxx | 32 +- .../NMTDS_MapIteratorOfMapOfPassKey_0.cxx | 32 +- src/NMTDS/NMTDS_MapOfPassKey.hxx | 32 +- src/NMTDS/NMTDS_MapOfPassKeyBoolean.hxx | 32 +- src/NMTDS/NMTDS_MapOfPassKeyBoolean_0.cxx | 32 +- src/NMTDS/NMTDS_MapOfPassKey_0.cxx | 32 +- src/NMTDS/NMTDS_PInterfPool.hxx | 32 +- src/NMTDS/NMTDS_PIterator.hxx | 32 +- src/NMTDS/NMTDS_PShapesDataStructure.hxx | 32 +- src/NMTDS/NMTDS_PassKey.cdl | 46 +- src/NMTDS/NMTDS_PassKey.cxx | 36 +- src/NMTDS/NMTDS_PassKey.hxx | 32 +- src/NMTDS/NMTDS_PassKey.ixx | 32 +- src/NMTDS/NMTDS_PassKey.jxx | 32 +- src/NMTDS/NMTDS_PassKeyBoolean.cdl | 45 +- src/NMTDS/NMTDS_PassKeyBoolean.cxx | 36 +- src/NMTDS/NMTDS_PassKeyBoolean.hxx | 32 +- src/NMTDS/NMTDS_PassKeyBoolean.ixx | 32 +- src/NMTDS/NMTDS_PassKeyBoolean.jxx | 32 +- src/NMTDS/NMTDS_PassKeyMapHasher.cdl | 44 +- src/NMTDS/NMTDS_PassKeyMapHasher.cxx | 37 +- src/NMTDS/NMTDS_PassKeyMapHasher.hxx | 32 +- src/NMTDS/NMTDS_PassKeyMapHasher.ixx | 32 +- src/NMTDS/NMTDS_PassKeyMapHasher.jxx | 32 +- src/NMTDS/NMTDS_PassKeyShape.cdl | 44 +- src/NMTDS/NMTDS_PassKeyShape.cxx | 37 +- src/NMTDS/NMTDS_PassKeyShape.hxx | 32 +- src/NMTDS/NMTDS_PassKeyShape.ixx | 32 +- src/NMTDS/NMTDS_PassKeyShape.jxx | 32 +- src/NMTDS/NMTDS_PassKeyShapeMapHasher.cdl | 44 +- src/NMTDS/NMTDS_PassKeyShapeMapHasher.cxx | 37 +- src/NMTDS/NMTDS_PassKeyShapeMapHasher.hxx | 32 +- src/NMTDS/NMTDS_PassKeyShapeMapHasher.ixx | 32 +- src/NMTDS/NMTDS_PassKeyShapeMapHasher.jxx | 32 +- src/NMTDS/NMTDS_ShapesDataStructure.cdl | 45 +- src/NMTDS/NMTDS_ShapesDataStructure.cxx | 37 +- src/NMTDS/NMTDS_ShapesDataStructure.hxx | 32 +- src/NMTDS/NMTDS_ShapesDataStructure.ixx | 32 +- src/NMTDS/NMTDS_ShapesDataStructure.jxx | 32 +- src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKey.hxx | 32 +- .../NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx | 32 +- ...MTDS_StdMapNodeOfMapOfPassKeyBoolean_0.cxx | 32 +- .../NMTDS_StdMapNodeOfMapOfPassKey_0.cxx | 32 +- src/NMTDS/NMTDS_Tools.cdl | 47 +- src/NMTDS/NMTDS_Tools.cxx | 37 +- src/NMTDS/NMTDS_Tools.hxx | 32 +- src/NMTDS/NMTDS_Tools.ixx | 32 +- src/NMTDS/NMTDS_Tools.jxx | 32 +- ...pOfIntegerIndexedDataMapOfShapeInteger.hxx | 32 +- ...dexedDataMapOfShapeAncestorsSuccessors.hxx | 32 +- ...pNodeOfDataMapOfIntegerListOfPaveBlock.hxx | 32 +- ...eOfIndexedDataMapOfIndexedMapOfInteger.hxx | 32 +- ...IndexedDataMapOfShapeIndexedMapOfShape.hxx | 32 +- ...apNodeOfIndexedDataMapOfShapePaveBlock.hxx | 32 +- ...e_NMTTools_ListNodeOfListOfCommonBlock.hxx | 32 +- ...NMTTools_ListNodeOfListOfCoupleOfShape.hxx | 32 +- ...le_NMTTools_StdMapNodeOfMapOfPaveBlock.hxx | 32 +- src/NMTTools/Makefile.am | 105 +- src/NMTTools/NMTTools.cdl | 39 +- src/NMTTools/NMTTools.pro | 131 + src/NMTTools/NMTTools_CheckerSI.cdl | 44 +- src/NMTTools/NMTTools_CheckerSI.cxx | 43 +- src/NMTTools/NMTTools_CheckerSI.hxx | 32 +- src/NMTTools/NMTTools_CheckerSI.ixx | 32 +- src/NMTTools/NMTTools_CheckerSI.jxx | 32 +- src/NMTTools/NMTTools_CheckerSI_1.cxx | 37 +- src/NMTTools/NMTTools_CommonBlock.cdl | 40 +- src/NMTTools/NMTTools_CommonBlock.cxx | 37 +- src/NMTTools/NMTTools_CommonBlock.hxx | 32 +- src/NMTTools/NMTTools_CommonBlock.ixx | 32 +- src/NMTTools/NMTTools_CommonBlock.jxx | 32 +- src/NMTTools/NMTTools_CommonBlockAPI.cdl | 39 +- src/NMTTools/NMTTools_CommonBlockAPI.cxx | 37 +- src/NMTTools/NMTTools_CommonBlockAPI.hxx | 32 +- src/NMTTools/NMTTools_CommonBlockAPI.ixx | 32 +- src/NMTTools/NMTTools_CommonBlockAPI.jxx | 32 +- src/NMTTools/NMTTools_CommonBlockPool.hxx | 32 +- src/NMTTools/NMTTools_CommonBlockPool_0.cxx | 32 +- src/NMTTools/NMTTools_CoupleOfShape.cdl | 39 +- src/NMTTools/NMTTools_CoupleOfShape.cxx | 36 +- src/NMTTools/NMTTools_CoupleOfShape.hxx | 32 +- src/NMTTools/NMTTools_CoupleOfShape.ixx | 32 +- src/NMTTools/NMTTools_CoupleOfShape.jxx | 32 +- src/NMTTools/NMTTools_DEProcessor.cdl | 37 +- src/NMTTools/NMTTools_DEProcessor.cxx | 181 +- src/NMTTools/NMTTools_DEProcessor.hxx | 32 +- src/NMTTools/NMTTools_DEProcessor.ixx | 32 +- src/NMTTools/NMTTools_DEProcessor.jxx | 32 +- src/NMTTools/NMTTools_DSFiller.cdl | 39 +- src/NMTTools/NMTTools_DSFiller.cxx | 37 +- src/NMTTools/NMTTools_DSFiller.hxx | 32 +- src/NMTTools/NMTTools_DSFiller.ixx | 32 +- src/NMTTools/NMTTools_DSFiller.jxx | 32 +- ...ratorOfDataMapOfIntegerListOfPaveBlock.hxx | 32 +- ...torOfDataMapOfIntegerListOfPaveBlock_0.cxx | 32 +- ...pNodeOfDataMapOfIntegerListOfPaveBlock.hxx | 32 +- ...odeOfDataMapOfIntegerListOfPaveBlock_0.cxx | 32 +- ...TTools_DataMapOfIntegerListOfPaveBlock.hxx | 32 +- ...ools_DataMapOfIntegerListOfPaveBlock_0.cxx | 32 +- ...eOfIndexedDataMapOfIndexedMapOfInteger.hxx | 32 +- ...fIndexedDataMapOfIndexedMapOfInteger_0.cxx | 32 +- ...IndexedDataMapOfShapeIndexedMapOfShape.hxx | 32 +- ...dexedDataMapOfShapeIndexedMapOfShape_0.cxx | 32 +- ...apNodeOfIndexedDataMapOfShapePaveBlock.hxx | 32 +- ...NodeOfIndexedDataMapOfShapePaveBlock_0.cxx | 32 +- ...ls_IndexedDataMapOfIndexedMapOfInteger.hxx | 32 +- ..._IndexedDataMapOfIndexedMapOfInteger_0.cxx | 32 +- ...IndexedDataMapOfShapeIndexedMapOfShape.hxx | 32 +- ...dexedDataMapOfShapeIndexedMapOfShape_0.cxx | 32 +- ...MTTools_IndexedDataMapOfShapePaveBlock.hxx | 32 +- ...Tools_IndexedDataMapOfShapePaveBlock_0.cxx | 32 +- .../NMTTools_IteratorOfCoupleOfShape.cdl | 39 +- .../NMTTools_IteratorOfCoupleOfShape.cxx | 37 +- .../NMTTools_IteratorOfCoupleOfShape.hxx | 32 +- .../NMTTools_IteratorOfCoupleOfShape.ixx | 32 +- .../NMTTools_IteratorOfCoupleOfShape.jxx | 32 +- ...TTools_ListIteratorOfListOfCommonBlock.hxx | 32 +- ...ools_ListIteratorOfListOfCommonBlock_0.cxx | 32 +- ...ools_ListIteratorOfListOfCoupleOfShape.hxx | 32 +- ...ls_ListIteratorOfListOfCoupleOfShape_0.cxx | 32 +- .../NMTTools_ListNodeOfListOfCommonBlock.hxx | 32 +- ...NMTTools_ListNodeOfListOfCommonBlock_0.cxx | 32 +- ...NMTTools_ListNodeOfListOfCoupleOfShape.hxx | 32 +- ...TTools_ListNodeOfListOfCoupleOfShape_0.cxx | 32 +- src/NMTTools/NMTTools_ListOfCommonBlock.hxx | 32 +- src/NMTTools/NMTTools_ListOfCommonBlock_0.cxx | 32 +- src/NMTTools/NMTTools_ListOfCoupleOfShape.hxx | 32 +- .../NMTTools_ListOfCoupleOfShape_0.cxx | 32 +- .../NMTTools_MapIteratorOfMapOfPaveBlock.hxx | 32 +- ...NMTTools_MapIteratorOfMapOfPaveBlock_0.cxx | 32 +- src/NMTTools/NMTTools_MapOfPaveBlock.hxx | 32 +- src/NMTTools/NMTTools_MapOfPaveBlock_0.cxx | 32 +- src/NMTTools/NMTTools_PCurveMaker.cdl | 38 +- src/NMTTools/NMTTools_PCurveMaker.cxx | 37 +- src/NMTTools/NMTTools_PCurveMaker.hxx | 32 +- src/NMTTools/NMTTools_PCurveMaker.ixx | 32 +- src/NMTTools/NMTTools_PCurveMaker.jxx | 32 +- src/NMTTools/NMTTools_PDSFiller.hxx | 32 +- src/NMTTools/NMTTools_PPaveFiller.hxx | 32 +- src/NMTTools/NMTTools_PaveFiller.cdl | 39 +- src/NMTTools/NMTTools_PaveFiller.cxx | 34 +- src/NMTTools/NMTTools_PaveFiller.hxx | 38 +- src/NMTTools/NMTTools_PaveFiller.ixx | 32 +- src/NMTTools/NMTTools_PaveFiller.jxx | 32 +- src/NMTTools/NMTTools_PaveFiller_0.cxx | 37 +- src/NMTTools/NMTTools_PaveFiller_1.cxx | 36 +- src/NMTTools/NMTTools_PaveFiller_2.cxx | 37 +- src/NMTTools/NMTTools_PaveFiller_3.cxx | 37 +- src/NMTTools/NMTTools_PaveFiller_4.cxx | 37 +- src/NMTTools/NMTTools_PaveFiller_5.cxx | 181 +- src/NMTTools/NMTTools_PaveFiller_6.cxx | 234 +- src/NMTTools/NMTTools_PaveFiller_7.cxx | 37 +- src/NMTTools/NMTTools_PaveFiller_8.cxx | 37 +- src/NMTTools/NMTTools_PaveFiller_9.cxx | 36 +- .../NMTTools_StdMapNodeOfMapOfPaveBlock.hxx | 32 +- .../NMTTools_StdMapNodeOfMapOfPaveBlock_0.cxx | 32 +- src/NMTTools/NMTTools_Tools.cdl | 40 +- src/NMTTools/NMTTools_Tools.cxx | 37 +- src/NMTTools/NMTTools_Tools.hxx | 36 +- src/NMTTools/NMTTools_Tools.ixx | 32 +- src/NMTTools/NMTTools_Tools.jxx | 32 +- src/OBJECT/GEOM_AISShape.cxx | 51 +- src/OBJECT/GEOM_AISShape.hxx | 45 +- src/OBJECT/GEOM_AISShape.ixx | 45 +- src/OBJECT/GEOM_AISShape.jxx | 45 +- src/OBJECT/GEOM_AISTrihedron.cxx | 11 +- src/OBJECT/GEOM_AISTrihedron.hxx | 11 +- src/OBJECT/GEOM_AISVector.cxx | 46 +- src/OBJECT/GEOM_AISVector.hxx | 45 +- src/OBJECT/GEOM_Actor.cxx | 113 +- src/OBJECT/GEOM_Actor.h | 54 +- src/OBJECT/GEOM_AssemblyBuilder.cxx | 51 +- src/OBJECT/GEOM_AssemblyBuilder.h | 51 +- src/OBJECT/GEOM_DeviceActor.cxx | 23 +- src/OBJECT/GEOM_DeviceActor.h | 21 + src/OBJECT/GEOM_EdgeSource.cxx | 21 + src/OBJECT/GEOM_EdgeSource.h | 21 + src/OBJECT/GEOM_FaceSource.cxx | 21 + src/OBJECT/GEOM_FaceSource.h | 21 + src/OBJECT/GEOM_InteractiveObject.cxx | 45 +- src/OBJECT/GEOM_InteractiveObject.hxx | 47 +- src/OBJECT/GEOM_InteractiveObject.ixx | 45 +- src/OBJECT/GEOM_InteractiveObject.jxx | 45 +- src/OBJECT/GEOM_OBJECT_defs.hxx | 60 +- src/OBJECT/GEOM_OCCReader.cxx | 78 +- src/OBJECT/GEOM_OCCReader.h | 47 +- src/OBJECT/GEOM_ShadingFace.cxx | 23 +- src/OBJECT/GEOM_ShadingFace.h | 21 + src/OBJECT/GEOM_SmartPtr.h | 21 + src/OBJECT/GEOM_VTKTrihedron.cxx | 58 +- src/OBJECT/GEOM_VTKTrihedron.hxx | 46 +- src/OBJECT/GEOM_VertexSource.cxx | 21 + src/OBJECT/GEOM_VertexSource.h | 21 + src/OBJECT/GEOM_WireframeFace.cxx | 67 +- src/OBJECT/GEOM_WireframeFace.h | 41 +- src/OBJECT/Handle_GEOM_AISShape.hxx | 45 +- src/OBJECT/Handle_GEOM_InteractiveObject.hxx | 45 +- src/OBJECT/Makefile.am | 133 +- src/OBJECT/OBJECT.pro | 80 + src/OperationGUI/Makefile.am | 137 +- src/OperationGUI/OperationGUI.cxx | 88 +- src/OperationGUI/OperationGUI.h | 53 +- .../OperationGUI_ArchimedeDlg.cxx | 194 +- src/OperationGUI/OperationGUI_ArchimedeDlg.h | 89 +- src/OperationGUI/OperationGUI_ChamferDlg.cxx | 1174 +- src/OperationGUI/OperationGUI_ChamferDlg.h | 141 +- src/OperationGUI/OperationGUI_ClippingDlg.cxx | 444 +- src/OperationGUI/OperationGUI_ClippingDlg.h | 98 +- src/OperationGUI/OperationGUI_Fillet2dDlg.cxx | 400 + src/OperationGUI/OperationGUI_Fillet2dDlg.h | 75 + src/OperationGUI/OperationGUI_FilletDlg.cxx | 817 +- src/OperationGUI/OperationGUI_FilletDlg.h | 123 +- .../OperationGUI_GetShapesOnShapeDlg.cxx | 353 + .../OperationGUI_GetShapesOnShapeDlg.h | 74 + src/OperationGUI/OperationGUI_MaterialDlg.cxx | 198 +- src/OperationGUI/OperationGUI_MaterialDlg.h | 94 +- .../OperationGUI_PartitionDlg.cxx | 351 +- src/OperationGUI/OperationGUI_PartitionDlg.h | 114 +- src/PARTITION/Makefile.in | 45 +- src/PARTITION/Partition.cdl | 55 +- src/PARTITION/Partition_Inter2d.cdl | 55 +- src/PARTITION/Partition_Inter2d.cxx | 13 +- src/PARTITION/Partition_Inter2d.hxx | 45 +- src/PARTITION/Partition_Inter2d.ixx | 45 +- src/PARTITION/Partition_Inter2d.jxx | 45 +- src/PARTITION/Partition_Inter3d.cdl | 55 +- src/PARTITION/Partition_Inter3d.cxx | 45 +- src/PARTITION/Partition_Inter3d.hxx | 45 +- src/PARTITION/Partition_Inter3d.ixx | 45 +- src/PARTITION/Partition_Inter3d.jxx | 45 +- src/PARTITION/Partition_Loop.cdl | 55 +- src/PARTITION/Partition_Loop.cxx | 45 +- src/PARTITION/Partition_Loop.hxx | 45 +- src/PARTITION/Partition_Loop.ixx | 45 +- src/PARTITION/Partition_Loop.jxx | 45 +- src/PARTITION/Partition_Loop2d.cdl | 38 +- src/PARTITION/Partition_Loop2d.cxx | 37 +- src/PARTITION/Partition_Loop2d.hxx | 37 +- src/PARTITION/Partition_Loop2d.ixx | 36 +- src/PARTITION/Partition_Loop2d.jxx | 36 +- src/PARTITION/Partition_Loop3d.cdl | 38 +- src/PARTITION/Partition_Loop3d.cxx | 37 +- src/PARTITION/Partition_Loop3d.hxx | 37 +- src/PARTITION/Partition_Loop3d.ixx | 36 +- src/PARTITION/Partition_Loop3d.jxx | 36 +- src/PARTITION/Partition_Spliter.cdl | 55 +- src/PARTITION/Partition_Spliter.cxx | 45 +- src/PARTITION/Partition_Spliter.hxx | 37 +- src/PARTITION/Partition_Spliter.ixx | 45 +- src/PARTITION/Partition_Spliter.jxx | 45 +- src/PrimitiveGUI/Makefile.am | 141 +- src/PrimitiveGUI/PrimitiveGUI.cxx | 118 +- src/PrimitiveGUI/PrimitiveGUI.h | 51 +- src/PrimitiveGUI/PrimitiveGUI.pro | 65 + src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx | 477 +- src/PrimitiveGUI/PrimitiveGUI_BoxDlg.h | 114 +- src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx | 553 +- src/PrimitiveGUI/PrimitiveGUI_ConeDlg.h | 116 +- src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx | 510 +- src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.h | 113 +- src/PrimitiveGUI/PrimitiveGUI_DiskDlg.cxx | 645 ++ src/PrimitiveGUI/PrimitiveGUI_DiskDlg.h | 89 + src/PrimitiveGUI/PrimitiveGUI_FaceDlg.cxx | 547 + src/PrimitiveGUI/PrimitiveGUI_FaceDlg.h | 86 + src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx | 372 +- src/PrimitiveGUI/PrimitiveGUI_SphereDlg.h | 109 +- src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx | 460 +- src/PrimitiveGUI/PrimitiveGUI_TorusDlg.h | 116 +- src/RepairGUI/Makefile.am | 171 +- src/RepairGUI/RepairGUI.cxx | 93 +- src/RepairGUI/RepairGUI.h | 53 +- .../RepairGUI_ChangeOrientationDlg.cxx | 183 +- .../RepairGUI_ChangeOrientationDlg.h | 108 +- src/RepairGUI/RepairGUI_CloseContourDlg.cxx | 360 +- src/RepairGUI/RepairGUI_CloseContourDlg.h | 121 +- src/RepairGUI/RepairGUI_DivideEdgeDlg.cxx | 278 +- src/RepairGUI/RepairGUI_DivideEdgeDlg.h | 93 +- src/RepairGUI/RepairGUI_FreeBoundDlg.cxx | 193 +- src/RepairGUI/RepairGUI_FreeBoundDlg.h | 69 +- src/RepairGUI/RepairGUI_FreeFacesDlg.cxx | 198 +- src/RepairGUI/RepairGUI_FreeFacesDlg.h | 79 +- src/RepairGUI/RepairGUI_GlueDlg.cxx | 544 +- src/RepairGUI/RepairGUI_GlueDlg.h | 117 +- .../RepairGUI_RemoveExtraEdgesDlg.cxx | 166 +- src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.h | 97 +- src/RepairGUI/RepairGUI_RemoveHolesDlg.cxx | 411 +- src/RepairGUI/RepairGUI_RemoveHolesDlg.h | 122 +- src/RepairGUI/RepairGUI_RemoveIntWiresDlg.cxx | 377 +- src/RepairGUI/RepairGUI_RemoveIntWiresDlg.h | 121 +- src/RepairGUI/RepairGUI_SewingDlg.cxx | 167 +- src/RepairGUI/RepairGUI_SewingDlg.h | 94 +- src/RepairGUI/RepairGUI_ShapeProcessDlg.cxx | 810 +- src/RepairGUI/RepairGUI_ShapeProcessDlg.h | 221 +- src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx | 174 +- src/RepairGUI/RepairGUI_SuppressFacesDlg.h | 120 +- src/SKETCHER/Makefile.am | 65 +- src/SKETCHER/SKETCHER.pro | 58 + src/SKETCHER/Sketcher_Profile.cxx | 11 +- src/SKETCHER/Sketcher_Profile.hxx | 45 +- src/STEPExport/Makefile.am | 52 +- src/STEPExport/STEPExport.cxx | 36 +- src/STEPExport/STEPExport.pro | 49 + src/STEPImport/Makefile.am | 52 +- src/STEPImport/STEPImport.cxx | 36 +- src/STEPImport/STEPImport.pro | 49 + src/STLExport/Makefile.am | 53 +- src/STLExport/STLExport.cxx | 48 +- src/STLExport/STLExport.pro | 49 + src/ShHealOper/Makefile.am | 107 +- src/ShHealOper/ShHealOper.pro | 81 + .../ShHealOper_ChangeOrientation.cxx | 36 +- .../ShHealOper_ChangeOrientation.hxx | 36 +- src/ShHealOper/ShHealOper_CloseContour.cxx | 37 +- src/ShHealOper/ShHealOper_CloseContour.hxx | 36 +- src/ShHealOper/ShHealOper_EdgeDivide.cxx | 35 +- src/ShHealOper/ShHealOper_EdgeDivide.hxx | 36 +- src/ShHealOper/ShHealOper_FillHoles.cxx | 36 +- src/ShHealOper/ShHealOper_FillHoles.hxx | 36 +- src/ShHealOper/ShHealOper_RemoveFace.cxx | 35 +- src/ShHealOper/ShHealOper_RemoveFace.hxx | 36 +- .../ShHealOper_RemoveInternalWires.cxx | 36 +- .../ShHealOper_RemoveInternalWires.hxx | 36 +- src/ShHealOper/ShHealOper_Sewing.cxx | 36 +- src/ShHealOper/ShHealOper_Sewing.hxx | 36 +- src/ShHealOper/ShHealOper_ShapeProcess.cxx | 35 +- src/ShHealOper/ShHealOper_ShapeProcess.hxx | 36 +- src/ShHealOper/ShHealOper_SpiltCurve2d.hxx | 36 +- src/ShHealOper/ShHealOper_SplitCurve2d.cxx | 36 +- src/ShHealOper/ShHealOper_SplitCurve2d.hxx | 36 +- src/ShHealOper/ShHealOper_SplitCurve3d.cxx | 36 +- src/ShHealOper/ShHealOper_SplitCurve3d.hxx | 36 +- src/ShHealOper/ShHealOper_Tool.cxx | 36 +- src/ShHealOper/ShHealOper_Tool.hxx | 36 +- src/TransformationGUI/Makefile.am | 151 +- src/TransformationGUI/TransformationGUI.cxx | 137 +- src/TransformationGUI/TransformationGUI.h | 53 +- src/TransformationGUI/TransformationGUI.pro | 68 + .../TransformationGUI_MirrorDlg.cxx | 660 +- .../TransformationGUI_MirrorDlg.h | 110 +- .../TransformationGUI_MultiRotationDlg.cxx | 605 +- .../TransformationGUI_MultiRotationDlg.h | 123 +- .../TransformationGUI_MultiTranslationDlg.cxx | 736 +- .../TransformationGUI_MultiTranslationDlg.h | 125 +- .../TransformationGUI_OffsetDlg.cxx | 270 +- .../TransformationGUI_OffsetDlg.h | 102 +- .../TransformationGUI_PositionDlg.cxx | 758 +- .../TransformationGUI_PositionDlg.h | 115 +- .../TransformationGUI_RotationDlg.cxx | 715 +- .../TransformationGUI_RotationDlg.h | 113 +- .../TransformationGUI_ScaleDlg.cxx | 643 +- .../TransformationGUI_ScaleDlg.h | 129 +- .../TransformationGUI_TranslationDlg.cxx | 811 +- .../TransformationGUI_TranslationDlg.h | 112 +- src/src.pro | 63 + 2455 files changed, 83314 insertions(+), 95555 deletions(-) delete mode 100644 adm_local/unix/config_files/README create mode 100755 build_cmake create mode 100644 build_cmake.bat create mode 100755 clean_configure create mode 100755 doc/salome/gui/GEOM/Makefile.am create mode 100755 doc/salome/gui/GEOM/doxyfile_tui.in delete mode 100755 doc/salome/gui/GEOM/files/introduction_to_geom.htm delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image27.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image29.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image30.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image31.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image32.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image33.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image34.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions.htm delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image1.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image2.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image3.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image4.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image56.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image57.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image58.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image59.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_geomtoolsgui_functions.htm delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions.htm delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image71.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image72.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image73.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image74.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image75.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image76.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image77.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image78.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image87.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image88.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image89.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image90.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image100.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image101.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image102.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image103.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image99.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image119.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image121.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image122.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image128.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image129.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image131.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image132.gif delete mode 100755 doc/salome/gui/GEOM/files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image133.gif delete mode 100644 doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1geompyDC.html delete mode 100644 doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1geompyDC__inherit__graph.jpg delete mode 100644 doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1info.html delete mode 100644 doc/salome/gui/GEOM/geompy_doc/doxygen.css delete mode 100644 doc/salome/gui/GEOM/geompy_doc/namespacegeompy.html delete mode 100644 doc/salome/gui/GEOM/geompy_doc/namespacegeompyDC.html create mode 100755 doc/salome/gui/GEOM/images/3dsketch1.png create mode 100755 doc/salome/gui/GEOM/images/3dsketch2.png create mode 100755 doc/salome/gui/GEOM/images/3dsketch3.png create mode 100644 doc/salome/gui/GEOM/images/arcofellipse1.png create mode 100644 doc/salome/gui/GEOM/images/arcofellipse2.png create mode 100755 doc/salome/gui/GEOM/images/box3.png create mode 100755 doc/salome/gui/GEOM/images/creategroup.png create mode 100644 doc/salome/gui/GEOM/images/disk1.png create mode 100644 doc/salome/gui/GEOM/images/disk2.png create mode 100644 doc/salome/gui/GEOM/images/disk3.png create mode 100644 doc/salome/gui/GEOM/images/disks.png create mode 100755 doc/salome/gui/GEOM/images/explode.png create mode 100644 doc/salome/gui/GEOM/images/extrusion3.png create mode 100644 doc/salome/gui/GEOM/images/face1.png create mode 100644 doc/salome/gui/GEOM/images/face2.png create mode 100644 doc/salome/gui/GEOM/images/faces.png create mode 100755 doc/salome/gui/GEOM/images/fillet2d_1.png create mode 100755 doc/salome/gui/GEOM/images/fillet2d_2.png create mode 100755 doc/salome/gui/GEOM/images/geomeimport.png create mode 100644 doc/salome/gui/GEOM/images/geomimport_reopen.png create mode 100755 doc/salome/gui/GEOM/images/geomscreen.png delete mode 100755 doc/salome/gui/GEOM/images/image18.gif create mode 100755 doc/salome/gui/GEOM/images/image18.png create mode 100755 doc/salome/gui/GEOM/images/image2.png delete mode 100755 doc/salome/gui/GEOM/images/image26.gif create mode 100755 doc/salome/gui/GEOM/images/image26.png delete mode 100755 doc/salome/gui/GEOM/images/image33.gif create mode 100755 doc/salome/gui/GEOM/images/image33.png delete mode 100755 doc/salome/gui/GEOM/images/image56.gif create mode 100755 doc/salome/gui/GEOM/images/image56.png delete mode 100755 doc/salome/gui/GEOM/images/image57.gif create mode 100755 doc/salome/gui/GEOM/images/image57.png create mode 100644 doc/salome/gui/GEOM/images/measures8a.png create mode 100755 doc/salome/gui/GEOM/images/neo-tolerance.png create mode 100755 doc/salome/gui/GEOM/images/pipe2.png create mode 100644 doc/salome/gui/GEOM/images/pipebinormalsn.png delete mode 100755 doc/salome/gui/GEOM/images/pipesn.png create mode 100755 doc/salome/gui/GEOM/images/point5.png create mode 100644 doc/salome/gui/GEOM/images/restore-ss-OB-cut.png create mode 100644 doc/salome/gui/GEOM/images/restore-ss-OB.png create mode 100644 doc/salome/gui/GEOM/images/restore-ss-cut.png create mode 100644 doc/salome/gui/GEOM/images/restore-ss-dialog.png create mode 100644 doc/salome/gui/GEOM/images/restore-ss-viewer-after.png create mode 100644 doc/salome/gui/GEOM/images/restore-ss-viewer-before.png create mode 100644 doc/salome/gui/GEOM/images/restore-ss-viewer-cut.png create mode 100644 doc/salome/gui/GEOM/images/scale_transformsn3.png create mode 100644 doc/salome/gui/GEOM/images/scale_transformsn4.png create mode 100755 doc/salome/gui/GEOM/images/shapesonshape.png create mode 100755 doc/salome/gui/GEOM/images/shonshex1.png create mode 100755 doc/salome/gui/GEOM/images/shonshex2.png create mode 100644 doc/salome/gui/GEOM/images/transformation10a.png create mode 100644 doc/salome/gui/GEOM/images/transformation12.png create mode 100644 doc/salome/gui/GEOM/images/transformation13.png create mode 100644 doc/salome/gui/GEOM/images/transformation14.png create mode 100644 doc/salome/gui/GEOM/images/translation3.png delete mode 100644 doc/salome/gui/GEOM/input/basic_operations.doc delete mode 100644 doc/salome/gui/GEOM/input/boolean_operations.doc delete mode 100644 doc/salome/gui/GEOM/input/check_free_boundaries_operation.doc delete mode 100644 doc/salome/gui/GEOM/input/check_free_faces_operation.doc create mode 100755 doc/salome/gui/GEOM/input/creating_3dsketcher.doc create mode 100755 doc/salome/gui/GEOM/input/creating_disk.doc create mode 100755 doc/salome/gui/GEOM/input/creating_squareface.doc create mode 100755 doc/salome/gui/GEOM/input/fillet2d_operation.doc delete mode 100644 doc/salome/gui/GEOM/input/introduction.doc create mode 100644 doc/salome/gui/GEOM/input/restore_presentation_parameters.doc create mode 100755 doc/salome/gui/GEOM/input/shapesonshape.doc create mode 100755 doc/salome/gui/GEOM/input/tui_3dsketcher.doc delete mode 100644 doc/salome/gui/GEOM/input/tui_scripts.doc create mode 100644 doc/salome/gui/GEOM/input/tui_swig_examples.doc create mode 100644 doc/salome/gui/GEOM/input/tui_test_all.doc create mode 100644 doc/salome/gui/GEOM/input/tui_test_others.doc create mode 100644 doc/salome/gui/GEOM/input/tui_test_spanner.doc create mode 100644 doc/salome/gui/GEOM/input/using_notebook_geom_page.doc delete mode 100644 doc/salome/gui/GEOM/input/viewing_geom_obj_chapter.doc delete mode 100755 doc/salome/gui/GEOM/pics/angle.png delete mode 100755 doc/salome/gui/GEOM/pics/arc.png delete mode 100644 doc/salome/gui/GEOM/pics/arc2.png delete mode 100755 doc/salome/gui/GEOM/pics/archimede.png delete mode 100755 doc/salome/gui/GEOM/pics/archimedesn1.png delete mode 100755 doc/salome/gui/GEOM/pics/archimedesn2.png delete mode 100755 doc/salome/gui/GEOM/pics/archimedesn3.png delete mode 100755 doc/salome/gui/GEOM/pics/arcsn.png delete mode 100644 doc/salome/gui/GEOM/pics/arcsn1.png delete mode 100644 doc/salome/gui/GEOM/pics/arcsn2.png delete mode 100755 doc/salome/gui/GEOM/pics/bezier.png delete mode 100755 doc/salome/gui/GEOM/pics/block1.png delete mode 100755 doc/salome/gui/GEOM/pics/block2.png delete mode 100755 doc/salome/gui/GEOM/pics/block3.png delete mode 100755 doc/salome/gui/GEOM/pics/block4.png delete mode 100755 doc/salome/gui/GEOM/pics/block5.png delete mode 100755 doc/salome/gui/GEOM/pics/block_explodesn.png delete mode 100755 doc/salome/gui/GEOM/pics/bool1.png delete mode 100755 doc/salome/gui/GEOM/pics/bool2.png delete mode 100755 doc/salome/gui/GEOM/pics/bool3.png delete mode 100755 doc/salome/gui/GEOM/pics/box1.png delete mode 100755 doc/salome/gui/GEOM/pics/box2.png delete mode 100755 doc/salome/gui/GEOM/pics/boxes.png delete mode 100755 doc/salome/gui/GEOM/pics/chamfer1.png delete mode 100755 doc/salome/gui/GEOM/pics/chamfer2.png delete mode 100755 doc/salome/gui/GEOM/pics/chamfer3.png delete mode 100755 doc/salome/gui/GEOM/pics/chamfer4.png delete mode 100755 doc/salome/gui/GEOM/pics/chamfer_all.png delete mode 100755 doc/salome/gui/GEOM/pics/chamfer_edge.png delete mode 100755 doc/salome/gui/GEOM/pics/chamfer_faces.png delete mode 100755 doc/salome/gui/GEOM/pics/changeorientation.png delete mode 100755 doc/salome/gui/GEOM/pics/circle1.png delete mode 100755 doc/salome/gui/GEOM/pics/circle2.png delete mode 100755 doc/salome/gui/GEOM/pics/circle3.png delete mode 100755 doc/salome/gui/GEOM/pics/circles.png delete mode 100755 doc/salome/gui/GEOM/pics/colorsn.png delete mode 100755 doc/salome/gui/GEOM/pics/commonsn.png delete mode 100755 doc/salome/gui/GEOM/pics/compoundsn.png delete mode 100755 doc/salome/gui/GEOM/pics/cone1.png delete mode 100755 doc/salome/gui/GEOM/pics/cone2.png delete mode 100755 doc/salome/gui/GEOM/pics/cones.png delete mode 100755 doc/salome/gui/GEOM/pics/curve.png delete mode 100755 doc/salome/gui/GEOM/pics/cutsn.png delete mode 100755 doc/salome/gui/GEOM/pics/cylinder1.png delete mode 100755 doc/salome/gui/GEOM/pics/cylinder2.png delete mode 100755 doc/salome/gui/GEOM/pics/cylinders.png delete mode 100755 doc/salome/gui/GEOM/pics/dialog.png delete mode 100755 doc/salome/gui/GEOM/pics/disp_mode1sn.png delete mode 100755 doc/salome/gui/GEOM/pics/disp_mode2sn.png delete mode 100755 doc/salome/gui/GEOM/pics/distance.png delete mode 100755 doc/salome/gui/GEOM/pics/edgesn.png delete mode 100755 doc/salome/gui/GEOM/pics/editgroup.png delete mode 100755 doc/salome/gui/GEOM/pics/ellipse.png delete mode 100755 doc/salome/gui/GEOM/pics/ellipsesn.png delete mode 100755 doc/salome/gui/GEOM/pics/extrusion1.png delete mode 100755 doc/salome/gui/GEOM/pics/extrusion2.png delete mode 100755 doc/salome/gui/GEOM/pics/facesn1.png delete mode 100755 doc/salome/gui/GEOM/pics/facesn2.png delete mode 100755 doc/salome/gui/GEOM/pics/facesn3.png delete mode 100755 doc/salome/gui/GEOM/pics/fillet1.png delete mode 100755 doc/salome/gui/GEOM/pics/fillet2.png delete mode 100755 doc/salome/gui/GEOM/pics/fillet3.png delete mode 100755 doc/salome/gui/GEOM/pics/fillet_all.png delete mode 100755 doc/salome/gui/GEOM/pics/fillet_edge.png delete mode 100755 doc/salome/gui/GEOM/pics/fillet_prism.png delete mode 100755 doc/salome/gui/GEOM/pics/filling.png delete mode 100755 doc/salome/gui/GEOM/pics/filling_compoundsn.png delete mode 100755 doc/salome/gui/GEOM/pics/fillingsn.png delete mode 100755 doc/salome/gui/GEOM/pics/free_boudaries1.png delete mode 100755 doc/salome/gui/GEOM/pics/free_boudaries2.png delete mode 100755 doc/salome/gui/GEOM/pics/free_faces1.png delete mode 100755 doc/salome/gui/GEOM/pics/free_faces2.png delete mode 100755 doc/salome/gui/GEOM/pics/fusesn1.png delete mode 100755 doc/salome/gui/GEOM/pics/fusesn2.png delete mode 100755 doc/salome/gui/GEOM/pics/geomcreategroup.png delete mode 100755 doc/salome/gui/GEOM/pics/geomexport.png delete mode 100755 doc/salome/gui/GEOM/pics/geomimport.png delete mode 100755 doc/salome/gui/GEOM/pics/glue_faces1.png delete mode 100755 doc/salome/gui/GEOM/pics/glue_faces2.png delete mode 100755 doc/salome/gui/GEOM/pics/interpol.png delete mode 100755 doc/salome/gui/GEOM/pics/isos_u12_v12sn.png delete mode 100755 doc/salome/gui/GEOM/pics/line.png delete mode 100755 doc/salome/gui/GEOM/pics/lines.png delete mode 100755 doc/salome/gui/GEOM/pics/measures1.png delete mode 100755 doc/salome/gui/GEOM/pics/measures10.png delete mode 100755 doc/salome/gui/GEOM/pics/measures3.png delete mode 100755 doc/salome/gui/GEOM/pics/measures4.png delete mode 100755 doc/salome/gui/GEOM/pics/measures5.png delete mode 100755 doc/salome/gui/GEOM/pics/measures8.png delete mode 100755 doc/salome/gui/GEOM/pics/measures9.png delete mode 100755 doc/salome/gui/GEOM/pics/mirror_axissn1.png delete mode 100755 doc/salome/gui/GEOM/pics/mirror_axissn2.png delete mode 100755 doc/salome/gui/GEOM/pics/mirror_planesn1.png delete mode 100755 doc/salome/gui/GEOM/pics/mirror_planesn2.png delete mode 100755 doc/salome/gui/GEOM/pics/mirror_pointsn1.png delete mode 100755 doc/salome/gui/GEOM/pics/mirror_pointsn2.png delete mode 100755 doc/salome/gui/GEOM/pics/mtrans1.png delete mode 100755 doc/salome/gui/GEOM/pics/mtrans2.png delete mode 100755 doc/salome/gui/GEOM/pics/mtransf1.png delete mode 100755 doc/salome/gui/GEOM/pics/mtransf2.png delete mode 100755 doc/salome/gui/GEOM/pics/mtransf3.png delete mode 100755 doc/salome/gui/GEOM/pics/mtransf4.png delete mode 100755 doc/salome/gui/GEOM/pics/multi_rotation1d1.png delete mode 100755 doc/salome/gui/GEOM/pics/multi_rotation1d2.png delete mode 100755 doc/salome/gui/GEOM/pics/multi_rotation2d1.png delete mode 100755 doc/salome/gui/GEOM/pics/multi_rotation2d2.png delete mode 100755 doc/salome/gui/GEOM/pics/multi_transformationsn1d.png delete mode 100755 doc/salome/gui/GEOM/pics/multi_transformationsn2d.png delete mode 100755 doc/salome/gui/GEOM/pics/multi_translation1dsn.png delete mode 100755 doc/salome/gui/GEOM/pics/multi_translation2dsn.png delete mode 100755 doc/salome/gui/GEOM/pics/multi_translation_initialsn.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-basicprop.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-detect2.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-isos.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-localcs1.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-localcs2.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-localcs3.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-materials.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-mrot1.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-mrot2.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-obj1.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-obj2.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-obj3.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-obj4.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-obj5.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-obj6.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-obj7.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-point2.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-scetcher1.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-scetcher2.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-section.png delete mode 100755 doc/salome/gui/GEOM/pics/neo-transparency.png delete mode 100755 doc/salome/gui/GEOM/pics/new-tolerance.png delete mode 100755 doc/salome/gui/GEOM/pics/normaletoface.png delete mode 100755 doc/salome/gui/GEOM/pics/offsetsn.png delete mode 100755 doc/salome/gui/GEOM/pics/partition1.png delete mode 100755 doc/salome/gui/GEOM/pics/partition2.png delete mode 100755 doc/salome/gui/GEOM/pics/partitionsn1.png delete mode 100755 doc/salome/gui/GEOM/pics/partitionsn2.png delete mode 100755 doc/salome/gui/GEOM/pics/pipe.png delete mode 100755 doc/salome/gui/GEOM/pics/pipe_wire_edgesn.png delete mode 100755 doc/salome/gui/GEOM/pics/pipesn.png delete mode 100755 doc/salome/gui/GEOM/pics/plane1.png delete mode 100755 doc/salome/gui/GEOM/pics/plane2.png delete mode 100755 doc/salome/gui/GEOM/pics/plane3.png delete mode 100755 doc/salome/gui/GEOM/pics/plane_on_face.png delete mode 100755 doc/salome/gui/GEOM/pics/planes1.png delete mode 100755 doc/salome/gui/GEOM/pics/point1.png delete mode 100755 doc/salome/gui/GEOM/pics/point3.png delete mode 100755 doc/salome/gui/GEOM/pics/points.png delete mode 100755 doc/salome/gui/GEOM/pics/polyline.png delete mode 100755 doc/salome/gui/GEOM/pics/prisms_basessn.png delete mode 100755 doc/salome/gui/GEOM/pics/prismssn.png delete mode 100755 doc/salome/gui/GEOM/pics/repair1.png delete mode 100755 doc/salome/gui/GEOM/pics/repair10.png delete mode 100755 doc/salome/gui/GEOM/pics/repair2.png delete mode 100755 doc/salome/gui/GEOM/pics/repair3.png delete mode 100755 doc/salome/gui/GEOM/pics/repair4.png delete mode 100755 doc/salome/gui/GEOM/pics/repair5.png delete mode 100755 doc/salome/gui/GEOM/pics/repair6.png delete mode 100755 doc/salome/gui/GEOM/pics/repair7.png delete mode 100755 doc/salome/gui/GEOM/pics/repair8.png delete mode 100755 doc/salome/gui/GEOM/pics/repair9.png delete mode 100755 doc/salome/gui/GEOM/pics/revolution.png delete mode 100755 doc/salome/gui/GEOM/pics/revolutionsn.png delete mode 100755 doc/salome/gui/GEOM/pics/rotationsn1.png delete mode 100755 doc/salome/gui/GEOM/pics/rotationsn2.png delete mode 100755 doc/salome/gui/GEOM/pics/scale_transformsn1.png delete mode 100755 doc/salome/gui/GEOM/pics/scale_transformsn2.png delete mode 100755 doc/salome/gui/GEOM/pics/sectionsn.png delete mode 100755 doc/salome/gui/GEOM/pics/shellsn.png delete mode 100755 doc/salome/gui/GEOM/pics/solidsn.png delete mode 100755 doc/salome/gui/GEOM/pics/sphere1.png delete mode 100755 doc/salome/gui/GEOM/pics/sphere2.png delete mode 100755 doc/salome/gui/GEOM/pics/spheres.png delete mode 100755 doc/salome/gui/GEOM/pics/supp_int_wires1.png delete mode 100755 doc/salome/gui/GEOM/pics/supp_int_wires2.png delete mode 100755 doc/salome/gui/GEOM/pics/suppress_faces1.png delete mode 100755 doc/salome/gui/GEOM/pics/suppress_faces2.png delete mode 100755 doc/salome/gui/GEOM/pics/torus1.png delete mode 100755 doc/salome/gui/GEOM/pics/torus2.png delete mode 100755 doc/salome/gui/GEOM/pics/toruses.png delete mode 100755 doc/salome/gui/GEOM/pics/transformation1.png delete mode 100755 doc/salome/gui/GEOM/pics/transformation10.png delete mode 100755 doc/salome/gui/GEOM/pics/transformation11.png delete mode 100755 doc/salome/gui/GEOM/pics/transformation2.png delete mode 100755 doc/salome/gui/GEOM/pics/transformation3.png delete mode 100755 doc/salome/gui/GEOM/pics/transformation4.png delete mode 100644 doc/salome/gui/GEOM/pics/transformation4a.png delete mode 100755 doc/salome/gui/GEOM/pics/transformation5.png delete mode 100755 doc/salome/gui/GEOM/pics/transformation6.png delete mode 100755 doc/salome/gui/GEOM/pics/transformation7.png delete mode 100755 doc/salome/gui/GEOM/pics/transformation8.png delete mode 100755 doc/salome/gui/GEOM/pics/transformation9.png delete mode 100755 doc/salome/gui/GEOM/pics/translationsn1.png delete mode 100755 doc/salome/gui/GEOM/pics/translationsn2.png delete mode 100755 doc/salome/gui/GEOM/pics/transparencysn.png delete mode 100755 doc/salome/gui/GEOM/pics/vector1.png delete mode 100755 doc/salome/gui/GEOM/pics/vector2.png delete mode 100755 doc/salome/gui/GEOM/pics/vectors.png delete mode 100755 doc/salome/gui/GEOM/pics/wiresn.png delete mode 100755 doc/salome/gui/GEOM/pics/workplane4.png delete mode 100755 doc/salome/gui/GEOM/pics/workplane5.png delete mode 100755 doc/salome/gui/GEOM/pics/workplane6.png delete mode 100755 doc/salome/gui/GEOM/whdata/whftdata.js delete mode 100755 doc/salome/gui/GEOM/whdata/whftdata0.htm delete mode 100755 doc/salome/gui/GEOM/whdata/whfts.htm delete mode 100755 doc/salome/gui/GEOM/whdata/whfts.js delete mode 100755 doc/salome/gui/GEOM/whdata/whfwdata.js delete mode 100755 doc/salome/gui/GEOM/whdata/whfwdata0.htm delete mode 100755 doc/salome/gui/GEOM/whdata/whgdata.js delete mode 100755 doc/salome/gui/GEOM/whdata/whgdata0.htm delete mode 100755 doc/salome/gui/GEOM/whdata/whglo.htm delete mode 100755 doc/salome/gui/GEOM/whdata/whglo.js delete mode 100755 doc/salome/gui/GEOM/whdata/whidata.js delete mode 100755 doc/salome/gui/GEOM/whdata/whidx.htm delete mode 100755 doc/salome/gui/GEOM/whdata/whidx.js delete mode 100755 doc/salome/gui/GEOM/whdata/whtdata.js delete mode 100755 doc/salome/gui/GEOM/whdata/whtdata0.htm delete mode 100755 doc/salome/gui/GEOM/whdata/whtoc.htm delete mode 100755 doc/salome/gui/GEOM/whdata/whtoc.js delete mode 100755 doc/salome/gui/GEOM/whgdata/whexpbar.gif delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf0.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf1.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf10.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf11.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf12.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf13.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf2.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf3.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf4.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf5.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf6.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf7.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf8.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstf9.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl0.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl1.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl10.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl11.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl12.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl13.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl14.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl15.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl16.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl17.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl18.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl19.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl2.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl20.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl21.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl22.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl23.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl24.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl25.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl26.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl3.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl4.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl5.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl6.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl7.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl8.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstfl9.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstg0.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlsti0.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt0.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt1.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt10.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt11.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt12.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt13.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt14.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt15.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt16.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt2.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt3.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt4.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt5.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt6.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt7.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt8.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whlstt9.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvf30.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvf31.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvf32.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvf33.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvl31.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvl32.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvl33.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvp30.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvp31.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvp32.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvp33.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvt30.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvt31.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvt32.htm delete mode 100755 doc/salome/gui/GEOM/whgdata/whnvt33.htm delete mode 100755 doc/salome/gui/GEOM/whxdata/whftdata0.xml delete mode 100755 doc/salome/gui/GEOM/whxdata/whfts.xml delete mode 100755 doc/salome/gui/GEOM/whxdata/whfwdata0.xml delete mode 100755 doc/salome/gui/GEOM/whxdata/whgdata0.xml delete mode 100755 doc/salome/gui/GEOM/whxdata/whglo.xml delete mode 100755 doc/salome/gui/GEOM/whxdata/whidx.xml delete mode 100755 doc/salome/gui/GEOM/whxdata/whtdata0.xml delete mode 100755 doc/salome/gui/GEOM/whxdata/whtoc.xml delete mode 100644 doc/salome/tui/GEOM/HTML/GEOM_Gen.html delete mode 100644 doc/salome/tui/GEOM/HTML/GEOM_Shape.html delete mode 100755 doc/salome/tui/GEOM/doxyfile_py.in delete mode 100755 doc/salome/tui/GEOM/sources/Application-About.png delete mode 100755 doc/salome/tui/GEOM/sources/Application-About1.jpg delete mode 100644 doc/salome/tui/GEOM/sources/application.gif delete mode 100755 doc/salome/tui/GEOM/sources/application.jpg delete mode 100755 doc/salome/tui/GEOM/sources/bg_salome.gif delete mode 100755 doc/salome/tui/GEOM/sources/logocorp.gif delete mode 100755 doc/salome/tui/GEOM/sources/myheader_py2.html delete mode 100755 doc/salome/tui/GEOM/sources/static/page2.html delete mode 100755 doc/salome/tui/GEOM/sources/static/tree.js.in delete mode 100644 doc/salome/tui/GEOM/sources/static/treeview.js rename doc/salome/tui/{GEOM => }/doxyfile.in (81%) rename doc/salome/tui/{GEOM/sources => images}/occ.gif (100%) rename doc/salome/tui/{GEOM/sources => }/static/doxygen.css (100%) rename doc/salome/tui/{GEOM/sources => static}/footer.html (100%) rename doc/salome/tui/{GEOM/sources => static}/myheader.html (100%) create mode 100755 resources/3dsketch.png create mode 100755 resources/arcofellipse.png create mode 100644 resources/disk.png create mode 100644 resources/disk3points.png create mode 100644 resources/disk_pntvecr.png create mode 100644 resources/disk_r.png create mode 100644 resources/face_hw.png create mode 100644 resources/face_vechw.png create mode 100755 resources/fillet2d.png delete mode 100644 resources/lineedge.png delete mode 100644 resources/linepointvector.png delete mode 100644 resources/orientation.png create mode 100644 resources/pipebinormal.png delete mode 100644 resources/planedxyz.png create mode 100755 resources/pointonface.png create mode 100644 resources/position3.png create mode 100644 resources/prism3.png create mode 100644 resources/scale_along_axes.png create mode 100755 resources/shapesonshape.png create mode 100644 src/ARCHIMEDE/ARCHIMEDE.pro create mode 100644 src/BREPExport/BREPExport.pro create mode 100644 src/BREPImport/BREPImport.pro create mode 100644 src/BasicGUI/BasicGUI.pro delete mode 100755 src/BasicGUI/GEOM_BasicGUI.hxx delete mode 100755 src/BlocksGUI/GEOM_BlocksGUI.hxx create mode 100644 src/BooleanGUI/BooleanGUI.pro create mode 100644 src/BuildGUI/BuildGUI.pro delete mode 100755 src/BuildGUI/GEOM_BuildGUI.hxx create mode 100644 src/DisplayGUI/DisplayGUI.pro create mode 100644 src/DlgRef/DlgRef.cxx create mode 100644 src/DlgRef/DlgRef.h create mode 100644 src/DlgRef/DlgRef.pro delete mode 100644 src/DlgRef/DlgRef_1List1Spin1Btn_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1List1Spin1Btn_QTD.h create mode 100644 src/DlgRef/DlgRef_1List1Spin1Btn_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel1Check1List_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel1Check1List_QTD.h create mode 100644 src/DlgRef/DlgRef_1Sel1Check1List_QTD.ui create mode 100644 src/DlgRef/DlgRef_1Sel1Check1Sel_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel1Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel1Check_QTD.h create mode 100644 src/DlgRef/DlgRef_1Sel1Check_QTD.ui create mode 100644 src/DlgRef/DlgRef_1Sel1List1Check3Btn_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel1Spin.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel1Spin.h delete mode 100644 src/DlgRef/DlgRef_1Sel1Spin1Check.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel1Spin1Check.h delete mode 100644 src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.h create mode 100644 src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel1Spin_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel1Spin_QTD.h create mode 100644 src/DlgRef/DlgRef_1Sel1Spin_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel2Spin.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel2Spin.h create mode 100644 src/DlgRef/DlgRef_1Sel2Spin1View1Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel2Spin_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel2Spin_QTD.h create mode 100644 src/DlgRef/DlgRef_1Sel2Spin_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel3Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel3Check_QTD.h create mode 100644 src/DlgRef/DlgRef_1Sel3Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel3Spin.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel3Spin.h create mode 100644 src/DlgRef/DlgRef_1Sel3Spin1Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel3Spin_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel3Spin_QTD.h create mode 100644 src/DlgRef/DlgRef_1Sel3Spin_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel4Spin.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel4Spin.h delete mode 100644 src/DlgRef/DlgRef_1Sel4Spin_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel4Spin_QTD.h create mode 100644 src/DlgRef/DlgRef_1Sel4Spin_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel5Spin.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel5Spin.h delete mode 100644 src/DlgRef/DlgRef_1Sel5Spin1Check.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel5Spin1Check.h delete mode 100644 src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.h create mode 100644 src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel5Spin_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel5Spin_QTD.h create mode 100644 src/DlgRef/DlgRef_1Sel5Spin_QTD.ui create mode 100644 src/DlgRef/DlgRef_1SelExt_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Sel_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Sel_QTD.h create mode 100644 src/DlgRef/DlgRef_1Sel_QTD.ui delete mode 100644 src/DlgRef/DlgRef_1Spin.cxx delete mode 100644 src/DlgRef/DlgRef_1Spin.h delete mode 100644 src/DlgRef/DlgRef_1Spin_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_1Spin_QTD.h create mode 100644 src/DlgRef/DlgRef_1Spin_QTD.ui delete mode 100644 src/DlgRef/DlgRef_2Sel1List1Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel1List1Check_QTD.h create mode 100644 src/DlgRef/DlgRef_2Sel1List1Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_2Sel1List_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel1List_QTD.h create mode 100644 src/DlgRef/DlgRef_2Sel1List_QTD.ui delete mode 100644 src/DlgRef/DlgRef_2Sel1Spin.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel1Spin.h delete mode 100644 src/DlgRef/DlgRef_2Sel1Spin2Check.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel1Spin2Check.h delete mode 100644 src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.h create mode 100644 src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_2Sel1Spin_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel1Spin_QTD.h create mode 100644 src/DlgRef/DlgRef_2Sel1Spin_QTD.ui create mode 100644 src/DlgRef/DlgRef_2Sel2List_QTD.ui delete mode 100644 src/DlgRef/DlgRef_2Sel2Spin.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel2Spin.h delete mode 100644 src/DlgRef/DlgRef_2Sel2Spin1Check.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel2Spin1Check.h delete mode 100644 src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.h create mode 100644 src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_2Sel2Spin_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel2Spin_QTD.h create mode 100644 src/DlgRef/DlgRef_2Sel2Spin_QTD.ui delete mode 100644 src/DlgRef/DlgRef_2Sel3Spin.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel3Spin.h delete mode 100755 src/DlgRef/DlgRef_2Sel3Spin2Rb.cxx delete mode 100755 src/DlgRef/DlgRef_2Sel3Spin2Rb.h delete mode 100755 src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.cxx delete mode 100755 src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.h create mode 100644 src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.ui delete mode 100644 src/DlgRef/DlgRef_2Sel3Spin_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel3Spin_QTD.h create mode 100644 src/DlgRef/DlgRef_2Sel3Spin_QTD.ui delete mode 100644 src/DlgRef/DlgRef_2Sel4Spin1Check.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel4Spin1Check.h delete mode 100644 src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.h create mode 100644 src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.ui create mode 100644 src/DlgRef/DlgRef_2SelExt_QTD.ui delete mode 100644 src/DlgRef/DlgRef_2Sel_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_2Sel_QTD.h create mode 100644 src/DlgRef/DlgRef_2Sel_QTD.ui delete mode 100644 src/DlgRef/DlgRef_2Spin.cxx delete mode 100644 src/DlgRef/DlgRef_2Spin.h delete mode 100644 src/DlgRef/DlgRef_2Spin_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_2Spin_QTD.h create mode 100644 src/DlgRef/DlgRef_2Spin_QTD.ui delete mode 100644 src/DlgRef/DlgRef_3Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_3Check_QTD.h create mode 100644 src/DlgRef/DlgRef_3Check_QTD.ui create mode 100644 src/DlgRef/DlgRef_3Radio1Sel1Spin_QTD.ui create mode 100644 src/DlgRef/DlgRef_3Radio_QTD.ui delete mode 100644 src/DlgRef/DlgRef_3Sel1Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_3Sel1Check_QTD.h create mode 100644 src/DlgRef/DlgRef_3Sel1Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_3Sel1Spin.cxx delete mode 100644 src/DlgRef/DlgRef_3Sel1Spin.h create mode 100644 src/DlgRef/DlgRef_3Sel1Spin_QTD.ui delete mode 100644 src/DlgRef/DlgRef_3Sel3Spin1Check.cxx delete mode 100644 src/DlgRef/DlgRef_3Sel3Spin1Check.h delete mode 100644 src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.h create mode 100644 src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.ui create mode 100644 src/DlgRef/DlgRef_3Sel3Spin2Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_3Sel4Spin2Check.cxx delete mode 100644 src/DlgRef/DlgRef_3Sel4Spin2Check.h delete mode 100644 src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.h create mode 100644 src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_3Sel_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_3Sel_QTD.h create mode 100644 src/DlgRef/DlgRef_3Sel_QTD.ui delete mode 100644 src/DlgRef/DlgRef_3Spin.cxx delete mode 100644 src/DlgRef/DlgRef_3Spin.h delete mode 100644 src/DlgRef/DlgRef_3Spin1Check.cxx delete mode 100644 src/DlgRef/DlgRef_3Spin1Check.h delete mode 100644 src/DlgRef/DlgRef_3Spin1Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_3Spin1Check_QTD.h create mode 100644 src/DlgRef/DlgRef_3Spin1Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_3Spin_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_3Spin_QTD.h create mode 100644 src/DlgRef/DlgRef_3Spin_QTD.ui delete mode 100644 src/DlgRef/DlgRef_4Sel1List1Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_4Sel1List1Check_QTD.h create mode 100644 src/DlgRef/DlgRef_4Sel1List1Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_4Sel1List_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_4Sel1List_QTD.h create mode 100644 src/DlgRef/DlgRef_4Sel1List_QTD.ui delete mode 100644 src/DlgRef/DlgRef_4Sel1Spin2Check.cxx delete mode 100644 src/DlgRef/DlgRef_4Sel1Spin2Check.h delete mode 100644 src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.h create mode 100644 src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.ui create mode 100755 src/DlgRef/DlgRef_4Sel1Spin3Check_QTD.ui delete mode 100644 src/DlgRef/DlgRef_6Sel_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_6Sel_QTD.h create mode 100644 src/DlgRef/DlgRef_6Sel_QTD.ui delete mode 100644 src/DlgRef/DlgRef_Skeleton_QTD.cxx delete mode 100644 src/DlgRef/DlgRef_Skeleton_QTD.h create mode 100644 src/DlgRef/DlgRef_Skeleton_QTD.ui delete mode 100644 src/DlgRef/DlgRef_SpinBox.cxx delete mode 100644 src/DlgRef/DlgRef_SpinBox.h delete mode 100755 src/DlgRef/GEOM_DlgRef.hxx delete mode 100644 src/DlgRef/UIFiles/DlgRef_1List1Spin1Btn_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel1Check1List_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel1Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel1Spin1Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel1Spin_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel2Spin_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel3Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel3Spin_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel4Spin_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel5Spin1Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel5Spin_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Sel_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_1Spin_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_2Sel1Spin2Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_2Sel1Spin_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_2Sel2Spin1Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_2Sel2Spin_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_2Sel3Spin2Rb_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_2Sel3Spin_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_2Sel4Spin1Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_2Sel_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_2Spin_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_3Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_3Sel1Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_3Sel3Spin1Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_3Sel4Spin2Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_3Sel_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_3Spin1Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_3Spin_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_4Sel1List_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_4Sel1Spin2Check_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_6Sel_QTD.ui delete mode 100644 src/DlgRef/UIFiles/DlgRef_Skeleton_QTD.ui delete mode 100755 src/DlgRef/UIFiles/ui_to_cxx create mode 100644 src/EntityGUI/EntityGUI.pro delete mode 100644 src/EntityGUI/EntityGUI_1Sel_QTD.cxx delete mode 100644 src/EntityGUI/EntityGUI_1Sel_QTD.h create mode 100644 src/EntityGUI/EntityGUI_1Sel_QTD.ui delete mode 100644 src/EntityGUI/EntityGUI_1Spin.cxx delete mode 100644 src/EntityGUI/EntityGUI_1Spin.h delete mode 100644 src/EntityGUI/EntityGUI_1Spin_QTD.cxx delete mode 100644 src/EntityGUI/EntityGUI_1Spin_QTD.h create mode 100644 src/EntityGUI/EntityGUI_1Spin_QTD.ui delete mode 100644 src/EntityGUI/EntityGUI_2Spin.cxx delete mode 100644 src/EntityGUI/EntityGUI_2Spin.h delete mode 100644 src/EntityGUI/EntityGUI_2Spin_QTD.cxx delete mode 100644 src/EntityGUI/EntityGUI_2Spin_QTD.h create mode 100644 src/EntityGUI/EntityGUI_2Spin_QTD.ui create mode 100755 src/EntityGUI/EntityGUI_3DSketcherDlg.cxx create mode 100755 src/EntityGUI/EntityGUI_3DSketcherDlg.h delete mode 100644 src/EntityGUI/EntityGUI_3Spin.cxx delete mode 100644 src/EntityGUI/EntityGUI_3Spin.h delete mode 100644 src/EntityGUI/EntityGUI_3Spin_QTD.cxx delete mode 100644 src/EntityGUI/EntityGUI_3Spin_QTD.h create mode 100644 src/EntityGUI/EntityGUI_3Spin_QTD.ui delete mode 100644 src/EntityGUI/EntityGUI_4Spin.cxx delete mode 100644 src/EntityGUI/EntityGUI_4Spin.h delete mode 100644 src/EntityGUI/EntityGUI_4Spin_QTD.cxx delete mode 100644 src/EntityGUI/EntityGUI_4Spin_QTD.h create mode 100644 src/EntityGUI/EntityGUI_4Spin_QTD.ui delete mode 100644 src/EntityGUI/EntityGUI_Dir1_QTD.cxx delete mode 100644 src/EntityGUI/EntityGUI_Dir1_QTD.h create mode 100644 src/EntityGUI/EntityGUI_Dir1_QTD.ui delete mode 100644 src/EntityGUI/EntityGUI_Dir2_QTD.cxx delete mode 100644 src/EntityGUI/EntityGUI_Dir2_QTD.h create mode 100644 src/EntityGUI/EntityGUI_Dir2_QTD.ui delete mode 100644 src/EntityGUI/EntityGUI_Point_QTD.cxx delete mode 100644 src/EntityGUI/EntityGUI_Point_QTD.h create mode 100644 src/EntityGUI/EntityGUI_Point_QTD.ui delete mode 100644 src/EntityGUI/EntityGUI_Skeleton_QTD.cxx delete mode 100644 src/EntityGUI/EntityGUI_Skeleton_QTD.h create mode 100644 src/EntityGUI/EntityGUI_Skeleton_QTD.ui create mode 100644 src/EntityGUI/EntityGUI_Widgets.cxx create mode 100644 src/EntityGUI/EntityGUI_Widgets.h delete mode 100755 src/EntityGUI/GEOM_EntityGUI.hxx delete mode 100644 src/EntityGUI/UIFiles/EntityGUI_1Sel_QTD.ui delete mode 100644 src/EntityGUI/UIFiles/EntityGUI_1Spin_QTD.ui delete mode 100644 src/EntityGUI/UIFiles/EntityGUI_2Spin_QTD.ui delete mode 100644 src/EntityGUI/UIFiles/EntityGUI_3Spin_QTD.ui delete mode 100644 src/EntityGUI/UIFiles/EntityGUI_4Spin_QTD.ui delete mode 100644 src/EntityGUI/UIFiles/EntityGUI_Dir1_QTD.ui delete mode 100644 src/EntityGUI/UIFiles/EntityGUI_Dir2_QTD.ui delete mode 100644 src/EntityGUI/UIFiles/EntityGUI_Point_QTD.ui delete mode 100644 src/EntityGUI/UIFiles/EntityGUI_Skeleton_QTD.ui delete mode 100755 src/EntityGUI/UIFiles/ui_to_cxx create mode 100644 src/GEOM/GEOM.pro delete mode 100644 src/GEOM/GEOM_Gen_i.cc delete mode 100644 src/GEOM/geom.cxx create mode 100644 src/GEOMAlgo/GEOMAlgo.pro create mode 100644 src/GEOMBase/GEOMBase.pro delete mode 100644 src/GEOMBase/GEOMBase_aParameterDlg.cxx delete mode 100644 src/GEOMBase/GEOMBase_aParameterDlg.h delete mode 100644 src/GEOMBase/GEOMBase_aWarningDlg.cxx delete mode 100644 src/GEOMBase/GEOMBase_aWarningDlg.h create mode 100644 src/GEOMClient/GEOMClient.pro create mode 100644 src/GEOMFiltersSelection/GEOMFiltersSelection.pro create mode 100644 src/GEOMFiltersSelection/GEOM_CompoundFilter.cxx create mode 100644 src/GEOMFiltersSelection/GEOM_CompoundFilter.h delete mode 100644 src/GEOMFiltersSelection/GEOM_EdgeFilter.hxx delete mode 100644 src/GEOMFiltersSelection/GEOM_EdgeFilter.ixx delete mode 100644 src/GEOMFiltersSelection/GEOM_EdgeFilter.jxx delete mode 100644 src/GEOMFiltersSelection/GEOM_FaceFilter.hxx delete mode 100644 src/GEOMFiltersSelection/GEOM_FaceFilter.ixx delete mode 100644 src/GEOMFiltersSelection/GEOM_FaceFilter.jxx delete mode 100644 src/GEOMFiltersSelection/GEOM_LogicalFilter.hxx delete mode 100644 src/GEOMFiltersSelection/GEOM_PreviewFilter.hxx delete mode 100644 src/GEOMFiltersSelection/GEOM_PreviewFilter.ixx delete mode 100644 src/GEOMFiltersSelection/GEOM_PreviewFilter.jxx delete mode 100644 src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.cxx delete mode 100644 src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.hxx delete mode 100644 src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.ixx delete mode 100644 src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.jxx delete mode 100644 src/GEOMFiltersSelection/GEOM_TypeFilter.hxx delete mode 100644 src/GEOMFiltersSelection/Handle_GEOM_EdgeFilter.hxx delete mode 100644 src/GEOMFiltersSelection/Handle_GEOM_FaceFilter.hxx delete mode 100644 src/GEOMFiltersSelection/Handle_GEOM_PreviewFilter.hxx delete mode 100644 src/GEOMFiltersSelection/Handle_GEOM_ShapeTypeFilter.hxx create mode 100644 src/GEOMGUI/GEOMGUI.pro create mode 100644 src/GEOMGUI/GEOM_images.ts create mode 100644 src/GEOMGUI/GEOM_msg_en.ts create mode 100644 src/GEOMGUI/GEOM_msg_fr.ts create mode 100644 src/GEOMImpl/GEOMImpl.pro rename src/GEOMImpl/{GEOMImpl_Template.cxx => GEOMImpl_3DSketcherDriver.cxx} (54%) mode change 100644 => 100755 create mode 100755 src/GEOMImpl/GEOMImpl_3DSketcherDriver.hxx create mode 100755 src/GEOMImpl/GEOMImpl_DiskDriver.cxx create mode 100755 src/GEOMImpl/GEOMImpl_DiskDriver.hxx create mode 100755 src/GEOMImpl/GEOMImpl_FaceDriver.cxx create mode 100755 src/GEOMImpl/GEOMImpl_FaceDriver.hxx create mode 100755 src/GEOMImpl/GEOMImpl_Fillet2dDriver.cxx rename src/GEOMImpl/{GEOMImpl_Template.hxx => GEOMImpl_Fillet2dDriver.hxx} (67%) mode change 100644 => 100755 rename src/{DlgRef/DlgRef_1Sel_Ext.h => GEOMImpl/GEOMImpl_I3DSketcher.hxx} (52%) mode change 100644 => 100755 create mode 100755 src/GEOMImpl/GEOMImpl_IDisk.hxx create mode 100755 src/GEOMImpl/GEOMImpl_IFace.hxx create mode 100755 src/GEOMImpl/GEOMImpl_IFillet2d.hxx create mode 100644 src/GEOMImpl/GEOMImpl_IPipeBiNormal.hxx create mode 100644 src/GEOMToolsGUI/GEOMToolsGUI.pro create mode 100644 src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.cxx create mode 100644 src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.h delete mode 100644 src/GEOMToolsGUI/GEOMToolsGUI_NameDlg.h create mode 100644 src/GEOM_I/GEOM_I.pro create mode 100644 src/GEOM_SWIG/GEOM_ObjectInfo.py create mode 100644 src/GenerationGUI/GenerationGUI.pro create mode 100644 src/IGESExport/IGESExport.pro create mode 100644 src/IGESImport/IGESImport.pro delete mode 100755 src/MeasureGUI/GEOM_MeasureGUI.hxx delete mode 100644 src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.cxx delete mode 100644 src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.h create mode 100644 src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.ui create mode 100644 src/MeasureGUI/MeasureGUI_1Sel1TextView1Check_QTD.ui create mode 100644 src/MeasureGUI/MeasureGUI_1Sel1TextView2ListBox_QTD.ui delete mode 100644 src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.cxx delete mode 100644 src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.h create mode 100644 src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.ui delete mode 100644 src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.cxx delete mode 100644 src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.h create mode 100644 src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.ui delete mode 100644 src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.cxx delete mode 100644 src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.h create mode 100644 src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.ui delete mode 100644 src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.cxx delete mode 100644 src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.h create mode 100644 src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.ui delete mode 100644 src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.cxx delete mode 100644 src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.h create mode 100644 src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.ui create mode 100644 src/MeasureGUI/MeasureGUI_SkeletonBox_QTD.ui delete mode 100644 src/MeasureGUI/MeasureGUI_Skeleton_QTD.cxx delete mode 100644 src/MeasureGUI/MeasureGUI_Skeleton_QTD.h create mode 100644 src/MeasureGUI/MeasureGUI_Widgets.cxx create mode 100644 src/MeasureGUI/MeasureGUI_Widgets.h delete mode 100644 src/MeasureGUI/UIFiles/MeasureGUI_1Sel12LineEdit_QTD.ui delete mode 100644 src/MeasureGUI/UIFiles/MeasureGUI_1Sel1TextView_QTD.ui delete mode 100644 src/MeasureGUI/UIFiles/MeasureGUI_1Sel3LineEdit_QTD.ui delete mode 100644 src/MeasureGUI/UIFiles/MeasureGUI_1Sel6LineEdit_QTD.ui delete mode 100644 src/MeasureGUI/UIFiles/MeasureGUI_2Sel1LineEdit_QTD.ui delete mode 100644 src/MeasureGUI/UIFiles/MeasureGUI_2Sel4LineEdit_QTD.ui delete mode 100644 src/MeasureGUI/UIFiles/MeasureGUI_Skeleton_QTD.ui delete mode 100755 src/MeasureGUI/UIFiles/ui_to_cxx create mode 100644 src/NMTAlgo/NMTAlgo.pro create mode 100644 src/NMTDS/NMTDS.pro create mode 100644 src/NMTTools/NMTTools.pro create mode 100644 src/OBJECT/OBJECT.pro create mode 100755 src/OperationGUI/OperationGUI_Fillet2dDlg.cxx create mode 100755 src/OperationGUI/OperationGUI_Fillet2dDlg.h create mode 100644 src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.cxx create mode 100644 src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.h create mode 100644 src/PrimitiveGUI/PrimitiveGUI.pro create mode 100755 src/PrimitiveGUI/PrimitiveGUI_DiskDlg.cxx create mode 100755 src/PrimitiveGUI/PrimitiveGUI_DiskDlg.h create mode 100755 src/PrimitiveGUI/PrimitiveGUI_FaceDlg.cxx create mode 100755 src/PrimitiveGUI/PrimitiveGUI_FaceDlg.h create mode 100644 src/SKETCHER/SKETCHER.pro create mode 100644 src/STEPExport/STEPExport.pro create mode 100644 src/STEPImport/STEPImport.pro create mode 100644 src/STLExport/STLExport.pro create mode 100644 src/ShHealOper/ShHealOper.pro create mode 100644 src/TransformationGUI/TransformationGUI.pro create mode 100644 src/src.pro diff --git a/GEOM_version.h.in b/GEOM_version.h.in index 4be8dc3e8..e511ffbba 100644 --- a/GEOM_version.h.in +++ b/GEOM_version.h.in @@ -1,26 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOM_version.h // Author : Vadim SANDLER // Module : SALOME - +// #if !defined(__GEOM_VERSION_H__) #define __GEOM_VERSION_H__ diff --git a/Makefile.am b/Makefile.am index b92e7ddb0..5242cf83f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,28 +17,35 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- -# # Author : Patrick GOLDBRONN (CEA) # Date : 28/06/2001 # Modified by : Alexander BORODIN (OCN) - autotools usage # - include $(top_srcdir)/adm_local/unix/make_common_starter.am +if GEOM_ENABLE_GUI + ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \ + -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \ + -I ${GUI_ROOT_DIR}/adm_local/unix/config_files +else !GEOM_ENABLE_GUI + ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \ + -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files +endif + SUBDIRS = idl adm_local resources src doc bin DIST_SUBDIRS = idl adm_local resources src doc bin DISTCLEANFILES = a.out aclocal.m4 configure -salomeinclude_DATA=GEOM_version.h +salomeinclude_DATA = GEOM_version.h -EXTRA_DIST+= \ - build_configure \ - clean_configure \ +EXTRA_DIST += \ + build_configure \ + clean_configure \ LICENCE dist-hook: @@ -45,7 +54,7 @@ dist-hook: usr_docs: (cd doc && $(MAKE) $(AM_MAKEFLAGS) usr_docs) -docs:usr_docs +docs: usr_docs dev_docs: (cd doc && $(MAKE) $(AM_MAKEFLAGS) dev_docs) diff --git a/adm_local/Makefile.am b/adm_local/Makefile.am index 7ae83a6fc..f35273fac 100644 --- a/adm_local/Makefile.am +++ b/adm_local/Makefile.am @@ -1,19 +1,24 @@ -# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG -# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + SUBDIRS = unix diff --git a/adm_local/unix/Makefile.am b/adm_local/unix/Makefile.am index facd4e6f4..5f6d5f753 100644 --- a/adm_local/unix/Makefile.am +++ b/adm_local/unix/Makefile.am @@ -1,22 +1,24 @@ -# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG -# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# - +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# include $(top_srcdir)/adm_local/unix/make_common_starter.am SUBDIRS = config_files diff --git a/adm_local/unix/config_files/Makefile.am b/adm_local/unix/config_files/Makefile.am index 5dd0b63ae..706857c88 100644 --- a/adm_local/unix/config_files/Makefile.am +++ b/adm_local/unix/config_files/Makefile.am @@ -1,23 +1,25 @@ -# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG -# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# include $(top_srcdir)/adm_local/unix/make_common_starter.am -dist_admlocalm4_DATA=\ -check_GEOM.m4\ -README +dist_admlocalm4_DATA = \ +check_GEOM.m4 diff --git a/adm_local/unix/config_files/README b/adm_local/unix/config_files/README deleted file mode 100644 index feb997b16..000000000 --- a/adm_local/unix/config_files/README +++ /dev/null @@ -1,3 +0,0 @@ -This file is only here for CVS: -CVS does not always create empty directory, and adm_local/unix/config_file -is needed by build_configure. diff --git a/adm_local/unix/config_files/check_GEOM.m4 b/adm_local/unix/config_files/check_GEOM.m4 index 1c4b2df93..dd30f1b07 100644 --- a/adm_local/unix/config_files/check_GEOM.m4 +++ b/adm_local/unix/config_files/check_GEOM.m4 @@ -1,3 +1,24 @@ +dnl Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl # Check availability of Geom binary distribution # # Author : Nicolas REJNERI (OPEN CASCADE, 2003) diff --git a/adm_local/unix/make_common_starter.am b/adm_local/unix/make_common_starter.am index 533941331..36ad8c3a7 100644 --- a/adm_local/unix/make_common_starter.am +++ b/adm_local/unix/make_common_starter.am @@ -1,49 +1,83 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # ============================================================ # This file defines the common definitions used in several # Makefile. This file must be included, if needed, by the file # Makefile.am. # ============================================================ -# - # Standard directory for installation -salomeincludedir = $(includedir)/@PACKAGE@ -libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/@PACKAGE@ -bindir = $(prefix)/bin/@PACKAGE@ +# +salomeincludedir = $(includedir)/salome +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +bindir = $(prefix)/bin/salome salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome # Directory for installing idl files -salomeidldir = $(prefix)/idl/@PACKAGE@ +salomeidldir = $(prefix)/idl/salome # Directory for installing resource files -salomeresdir = $(prefix)/share/@PACKAGE@/resources/@MODULE_NAME@ +salomeresdir = $(prefix)/share/salome/resources/@MODULE_NAME@ # Directories for installing admin files -admlocaldir = $(prefix)/adm_local -admlocalunixdir = $(admlocaldir)/unix -admlocalm4dir = $(admlocaldir)/unix/config_files +admlocaldir = $(prefix)/adm_local +admlocalunixdir = $(admlocaldir)/unix +admlocalm4dir = $(admlocaldir)/unix/config_files # Shared modules installation directory -sharedpkgpythondir =$(pkgpythondir)/shared_modules +sharedpkgpythondir = $(salomepythondir)/shared_modules # Documentation directory -docdir = $(datadir)/doc/@PACKAGE@ +docdir = $(datadir)/doc/salome # common rules -# moc-files generation +# meta object implementation files generation (moc) %_moc.cxx: %.h $(MOC) $< -o $@ -# qm-files generation -%.qm: %.po - $(MSG2QM) $< $@ +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ -EXTRA_DIST=$(MOC_FILES:%_moc.cxx=%.h) $(nodist_salomeres_DATA:%.qm=%.po) +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + +# customize clean operation mostlyclean-local: rm -f @builddir@/*_moc.cxx rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx # tests tests: unittest diff --git a/bin/Makefile.am b/bin/Makefile.am index e7f7da1ce..5cc39861e 100644 --- a/bin/Makefile.am +++ b/bin/Makefile.am @@ -1,35 +1,32 @@ -# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG -# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -* Makefile *- +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# -* Makefile *- # Author : Guillaume Boulant (CSSI) # Module : GEOM # - include $(top_srcdir)/adm_local/unix/make_common_starter.am -# -# =============================================================== -# Files to be installed -# =============================================================== -# +# non-distributed files +nodist_salomescript_DATA = VERSION -# These files are data, module or lib files -nodist_salomescript_DATA= VERSION - -EXTRA_DIST+= VERSION.in +# distributed files +dist_salomescript_SCRIPTS = diff --git a/build_cmake b/build_cmake new file mode 100755 index 000000000..e2f5b160c --- /dev/null +++ b/build_cmake @@ -0,0 +1,31 @@ +#!/bin/sh +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + + +CURRENT_DIR=`pwd` +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} +python $KERNEL_ROOT_DIR/salome_adm/cmake_files/am2cmake.py --geom +status=$? +cd ${CURRENT_DIR} +exit $status diff --git a/build_cmake.bat b/build_cmake.bat new file mode 100644 index 000000000..772c3da37 --- /dev/null +++ b/build_cmake.bat @@ -0,0 +1,2 @@ + +%PYTHONBIN% %KERNEL_ROOT_DIR%\salome_adm\cmake_files\am2cmake.py --geom diff --git a/build_configure b/build_configure index 27672f14d..d8b893183 100755 --- a/build_configure +++ b/build_configure @@ -1,17 +1,34 @@ #!/bin/bash - +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Tool for updating list of .in file for the SALOME project # and regenerating configure script -# # Author : Marc Tajchman - CEA # Date : 10/10/2002 # Modified by : Alexander BORODIN (OCN) - autotools usage # $Header$ -# # 13/03/2007: Alexander BORODIN - OCN # Reorganization for usage of autotools - +# ORIG_DIR=`pwd` CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` GEOM_WITH_GUI="yes" @@ -33,10 +50,10 @@ fi for option do case $option in - -with-ihm | --with-ihm) + -with-gui | --with-gui) GEOM_WITH_GUI="yes" break;; - -without-ihm | --without-ihm | -with-ihm=no | --with-ihm=no) + -without-gui | --without-gui | -with-gui=no | --with-gui=no) GEOM_WITH_GUI="no" break;; esac diff --git a/clean_configure b/clean_configure new file mode 100755 index 000000000..f57f7b3bf --- /dev/null +++ b/clean_configure @@ -0,0 +1,35 @@ +#!/bin/sh +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +rm -rf autom4te.cache aclocal.m4 configure make_config +find . -name "*~" -print -exec rm {} \; +find . -name "*.pyc" -print -exec rm {} \; +#exit +# ==================== ON SORT AVANT + +find bin -name Makefile.in | xargs rm -f +find doc -name Makefile.in | xargs rm -f +find idl -name Makefile.in | xargs rm -f +find resources -name Makefile.in | xargs rm -f +find salome_adm -name Makefile.in | xargs rm -f +find src -name Makefile.in | xargs rm -f +rm -f Makefile.in diff --git a/configure.ac b/configure.ac index 45f01b5c8..9df51f5f8 100644 --- a/configure.ac +++ b/configure.ac @@ -1,19 +1,37 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # Author : Marc Tajchman (CEA) # Date : 28/06/2001 # Modified by : Patrick GOLDBRONN (CEA) # Modified by : Marc Tajchman (CEA) # Modified by : Alexander BORODIN (OCN) - autotools usage -# # Created from configure.in.base # - - -AC_INIT([Salome2 Project GEOM module], [4.1.1], [webmaster.salome@opencascade.com], [salome]) +AC_INIT([Salome2 Project GEOM module], [5.1.0], [webmaster.salome@opencascade.com], [SalomeGEOM]) AC_CONFIG_AUX_DIR(salome_adm/unix/config_files) AC_CANONICAL_HOST AC_CANONICAL_TARGET -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([tar-pax]) + XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'` AC_SUBST(XVERSION) @@ -69,7 +87,7 @@ dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairie echo echo --------------------------------------------- -echo Coniguring production +echo Configuring production echo --------------------------------------------- echo AC_ENABLE_DEBUG(yes) @@ -219,14 +237,6 @@ GEOM_WITH_GUI=yes AM_CONDITIONAL(GEOM_ENABLE_GUI, [test "${GEOM_WITH_GUI}" = "yes"]) if test "${GEOM_WITH_GUI}" = "yes"; then - echo - echo --------------------------------------------- - echo testing msg2qm - echo --------------------------------------------- - echo - - CHECK_MSG2QM - echo echo --------------------------------------------- echo testing openGL @@ -321,7 +331,7 @@ echo echo Configure if test "${GEOM_WITH_GUI}" = "yes"; then -variables="cc_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok boost_ok occ_ok doxygen_ok graphviz_ok Kernel_ok" +variables="cc_ok lex_yacc_ok python_ok swig_ok threads_ok OpenGL_ok qt_ok vtk_ok hdf5_ok omniORB_ok boost_ok occ_ok doxygen_ok graphviz_ok Kernel_ok SalomeGUI_ok" fi if test "${GEOM_WITH_GUI}" = "no"; then variables="cc_ok lex_yacc_ok python_ok swig_ok threads_ok hdf5_ok omniORB_ok boost_ok occ_ok doxygen_ok graphviz_ok Kernel_ok" @@ -338,27 +348,22 @@ echo "Default ORB : $DEFAULT_ORB" echo dnl We don t need to say when we re entering directories if we re using -dnl GNU make becuase make does it for us. +dnl GNU make because make does it for us. if test "X$GMAKE" = "Xyes"; then AC_SUBST(SETX) SETX=":" else AC_SUBST(SETX) SETX="set -x" fi -dnl copy shells and utilities contained in the bin directory -dnl excluding .in files (treated in AC-OUTPUT below) and CVS -dnl directory - - echo echo --------------------------------------------- echo generating Makefiles and configure files echo --------------------------------------------- echo -AC_OUTPUT_COMMANDS([ \ - chmod +x ./bin/*; \ -]) +#AC_OUTPUT_COMMANDS([ \ +# chmod +x ./bin/*; \ +#]) # This list is initiated using autoscan and must be updated manually # when adding a new file .in to manage. When you execute @@ -375,11 +380,12 @@ AC_OUTPUT([ \ ./doc/Makefile \ ./doc/salome/Makefile \ ./doc/salome/gui/Makefile \ + ./doc/salome/gui/GEOM/Makefile \ ./doc/salome/gui/GEOM/doxyfile \ ./doc/salome/gui/GEOM/doxyfile_py \ + ./doc/salome/gui/GEOM/doxyfile_tui \ ./doc/salome/tui/Makefile \ - ./doc/salome/tui/GEOM/doxyfile \ - ./doc/salome/tui/GEOM/sources/static/tree.js \ + ./doc/salome/tui/doxyfile \ ./src/Makefile \ ./src/ARCHIMEDE/Makefile \ ./src/BREPExport/Makefile \ @@ -408,7 +414,6 @@ AC_OUTPUT([ \ ./src/IGESExport/Makefile \ ./src/IGESImport/Makefile \ ./src/MeasureGUI/Makefile \ - ./src/NMTAlgo/Makefile \ ./src/NMTDS/Makefile \ ./src/NMTTools/Makefile \ ./src/OBJECT/Makefile \ diff --git a/doc/Makefile.am b/doc/Makefile.am index dcbc00f24..1902d9d21 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,16 +17,21 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # - # -* Makefile *- -# # Author : Patrick GOLDBRONN (CEA) # Date : 30/11/2001 -# Modified by : Alexander BORODIN (OCN) - autotools usage +# Modified by : Alexander BORODIN (OCN) - autotools usage # $Header$ -# # source path +# +SUBDIRS = salome -SUBDIRS= salome +usr_docs: + (cd salome && $(MAKE) $(AM_MAKEFLAGS) usr_docs) + +docs: usr_docs + +dev_docs: + (cd salome && $(MAKE) $(AM_MAKEFLAGS) dev_docs) diff --git a/doc/salome/Makefile.am b/doc/salome/Makefile.am index 43c97dd62..5a92861e5 100644 --- a/doc/salome/Makefile.am +++ b/doc/salome/Makefile.am @@ -1,4 +1,7 @@ -# Copyright (C) 2005 CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -14,20 +17,17 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # - # -* Makefile *- -# # Author : Patrick GOLDBRONN (CEA) # Date : 30/11/2001 # Modified by : Alexander BORODIN (OCN) - autotools usage # $Header: # - -SUBDIRS= tui gui -SUBDIRSTUI= tui -SUBDIRSGUI= gui +SUBDIRS = tui gui +SUBDIRSTUI = tui +SUBDIRSGUI = gui usr_docs: @@SETX@; for d in $(SUBDIRSGUI); do \ diff --git a/doc/salome/gui/GEOM/Makefile.am b/doc/salome/gui/GEOM/Makefile.am new file mode 100755 index 000000000..88bb9710f --- /dev/null +++ b/doc/salome/gui/GEOM/Makefile.am @@ -0,0 +1,75 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# File : Makefile.in +# Author : Vasily Rusyaev (Open Cascade NN) +# Modified by : Alexander BORODIN (OCN) - autotools usage +# Module : doc +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +EXTRA_DIST += images input static + +usr_docs: doxyfile_tui doxyfile_py doxyfile + echo "===========================================" ; \ + echo "Replacing geompyDC by geompy" ; \ + echo "===========================================" ; \ + sed -e "/class geompyDC/d" -e "s/^ *#/#/g" -e "s/^ *def /def /g" \ + -e "s/geompyDC/geompy/g" $(top_srcdir)/src/GEOM_SWIG/geompyDC.py > \ + $(top_builddir)/src/GEOM_SWIG/geompy.py ; \ + echo "===========================================" ; \ + echo "Generating examples documentation" ; \ + echo "===========================================" ; \ + $(DOXYGEN) doxyfile_tui ; \ + echo "===========================================" ; \ + echo "Generating Python interface documentation"; \ + echo "===========================================" ; \ + $(DOXYGEN) doxyfile_py ; \ + echo "===========================================" ; \ + echo "Generating GUI documentation" ; \ + echo "===========================================" ; \ + $(DOXYGEN) doxyfile ; \ + rm -f $(top_builddir)/src/GEOM_SWIG/geompy.py + +docs: usr_docs + +clean-local: + @for filen in `find . -maxdepth 1` ; do \ + case $${filen} in \ + ./Makefile | ./doxyfile | ./doxyfile_py | ./doxyfile_tui ) ;; \ + . | .. ) ;; \ + *) echo "Removing $${filen}" ; rm -rf $${filen} ;; \ + esac ; \ + done ; + +install-data-local: usr_docs + $(INSTALL) -d $(DESTDIR)$(docdir)/gui/GEOM + @for filen in `find . -maxdepth 1` ; do \ + case $${filen} in \ + ./Makefile | ./doxyfile | ./doxyfile_py | ./doxyfile_tui ) ;; \ + ./doxyfile.bak | ./doxyfile_py.bak | ./doxyfile_tui.bak ) ;; \ + . | .. ) ;; \ + *) echo "Installing $${filen}" ; cp -rp $${filen} $(DESTDIR)$(docdir)/gui/GEOM ;; \ + esac ; \ + done ; + +uninstall-local: + rm -rf $(DESTDIR)$(docdir)/gui/GEOM diff --git a/doc/salome/gui/GEOM/doxyfile.in b/doc/salome/gui/GEOM/doxyfile.in index 75b0c99aa..cc7de8625 100755 --- a/doc/salome/gui/GEOM/doxyfile.in +++ b/doc/salome/gui/GEOM/doxyfile.in @@ -1,8 +1,30 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = "Geometry Module Reference Manual v.@VERSION@" -OUTPUT_DIRECTORY = ./ +OUTPUT_DIRECTORY = . CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English TAB_SIZE = 5 @@ -18,13 +40,15 @@ WARNINGS = YES #--------------------------------------------------------------------------- INPUT = @srcdir@/input FILE_PATTERNS = *.doc +EXCLUDE = IMAGE_PATH = @srcdir@/images +EXAMPLE_PATH = @top_srcdir@/src/GEOM_SWIG #--------------------------------------------------------------------------- #HTML related options #--------------------------------------------------------------------------- GENERATE_HTML = YES -HTML_OUTPUT = ./ +HTML_OUTPUT = . HTML_HEADER = @srcdir@/static/header.html HTML_FOOTER = @srcdir@/static/footer.html #HTML_STYLESHEET = @srcdir@/static/doxygen.css @@ -46,4 +70,5 @@ GENERATE_RTF = NO #--------------------------------------------------------------------------- #External reference options #--------------------------------------------------------------------------- -TAGFILES = geompy_doc.tag=./geompy_doc \ No newline at end of file +TAGFILES = geompy_doc.tag=geompy_doc +ALLEXTERNALS = NO diff --git a/doc/salome/gui/GEOM/doxyfile_py.in b/doc/salome/gui/GEOM/doxyfile_py.in index 88df45eb8..efa355dfc 100755 --- a/doc/salome/gui/GEOM/doxyfile_py.in +++ b/doc/salome/gui/GEOM/doxyfile_py.in @@ -1,10 +1,32 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- -PROJECT_NAME = "Geometry Module Reference Manual v.@VERSION@" -OUTPUT_DIRECTORY = ./ -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English +PROJECT_NAME = "Geometry Module Reference Manual v.@VERSION@" +OUTPUT_DIRECTORY = . +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = NO @@ -66,8 +88,8 @@ VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES +QUIET = NO +WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO @@ -77,16 +99,17 @@ EXAMPLE_RECURSIVE = NO #--------------------------------------------------------------------------- #Input related options #--------------------------------------------------------------------------- -INPUT = @top_srcdir@/src/GEOM_SWIG -FILE_PATTERNS = geompyDC.py +INPUT = @top_builddir@/src/GEOM_SWIG +FILE_PATTERNS = geompy.py IMAGE_PATH = @srcdir@/images +EXAMPLE_PATH = @top_srcdir@/src/GEOM_SWIG RECURSIVE = NO #--------------------------------------------------------------------------- #HTML related options #--------------------------------------------------------------------------- GENERATE_HTML = YES -HTML_OUTPUT = ./geompy_doc +HTML_OUTPUT = geompy_doc HTML_HEADER = @srcdir@/static/header.html HTML_FOOTER = @srcdir@/static/footer.html #HTML_STYLESHEET = @srcdir@/static/doxygen.css @@ -107,24 +130,17 @@ GENERATE_RTF = NO #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- -#CLASS_DIAGRAMS = YES CLASS_DIAGRAMS = NO HIDE_UNDOC_RELATIONS = NO -#HAVE_DOT = YES HAVE_DOT = NO -#CLASS_GRAPH = YES CLASS_GRAPH = NO COLLABORATION_GRAPH = NO GROUP_GRAPHS = NO UML_LOOK = NO -#TEMPLATE_RELATIONS = YES -#INCLUDE_GRAPH = YES TEMPLATE_RELATIONS = NO INCLUDE_GRAPH = NO INCLUDED_BY_GRAPH = NO CALL_GRAPH = NO -#GRAPHICAL_HIERARCHY = YES -#DIRECTORY_GRAPH = YES GRAPHICAL_HIERARCHY = NO DIRECTORY_GRAPH = NO DOT_IMAGE_FORMAT = jpg @@ -142,3 +158,4 @@ DOT_CLEANUP = YES #External reference options #--------------------------------------------------------------------------- GENERATE_TAGFILE = geompy_doc.tag +TAGFILES = tui_examples.tag=.. diff --git a/doc/salome/gui/GEOM/doxyfile_tui.in b/doc/salome/gui/GEOM/doxyfile_tui.in new file mode 100755 index 000000000..e324105c0 --- /dev/null +++ b/doc/salome/gui/GEOM/doxyfile_tui.in @@ -0,0 +1,72 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = "Geometry Module Reference Manual v.@VERSION@" +OUTPUT_DIRECTORY = . +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +TAB_SIZE = 5 + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES + +#--------------------------------------------------------------------------- +#Input related options +#--------------------------------------------------------------------------- +INPUT = @srcdir@/input +FILE_PATTERNS = tui_*.doc +IMAGE_PATH = @srcdir@/images +EXAMPLE_PATH = @top_srcdir@/src/GEOM_SWIG + +#--------------------------------------------------------------------------- +#HTML related options +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = . +HTML_HEADER = @srcdir@/static/header.html +HTML_FOOTER = @srcdir@/static/footer.html +#HTML_STYLESHEET = @srcdir@/static/doxygen.css +TOC_EXPAND = YES +DISABLE_INDEX = NO +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 300 + +#--------------------------------------------------------------------------- +#LaTeX related option +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO + +#--------------------------------------------------------------------------- +#RTF related options +#--------------------------------------------------------------------------- +GENERATE_RTF = NO + +#--------------------------------------------------------------------------- +#External reference options +#--------------------------------------------------------------------------- +GENERATE_TAGFILE = tui_examples.tag diff --git a/doc/salome/gui/GEOM/files/introduction_to_geom.htm b/doc/salome/gui/GEOM/files/introduction_to_geom.htm deleted file mode 100755 index d39bc391f..000000000 --- a/doc/salome/gui/GEOM/files/introduction_to_geom.htm +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -Introduction to GEOM - - - - - - - - - - - - -

Introduction to Geometry

- -

Geometry module - of SALOME is destined for:

- -

 

- - - -

 

- - --- - - - -
-
    - -
  • Creation of basic geometrical objects

  • - -
  • Construction of primitives

  • - -
  • Building shapes

  • - -
  • Generation of complex shapes

  • - -
  • Working with groups

  • - -
  • Geometrical repairing of objects

  • - -
  • Geometrical boolean operations

  • - -
  • Geometrical transformations

  • - -
  • Building by blocks

  • -
-

 

-

- -

 

- - - - diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image27.gif b/doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image27.gif deleted file mode 100755 index 216da7531c545cbe281a379c8d97b8b634be793c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmZ?wbhEHb6k!ly_|Cw<@SkDnqNQust=+n5>)u^^o2Oj@ij9KN5Euy|z{tR;_>+YZ zlnHb|{srX;2M%9`|C}-&8x|aF{?Ek|(XnCS;dTK|A&CHm23JOA4wpL_8yMUhg|*|( t>?nNL(614^D(2?IhSMFaNvFO@7%n-=AYtkzazJ>g_gtN3E*=gBYXJ3LFE{`I diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image29.gif b/doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image29.gif deleted file mode 100755 index 5ee22f3911cb80db08055f610f07a5f8c747cddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 945 zcmZ?wbhEHb6k!ly_|5e857#SE9f3h$# zF#KoG0r?b^CmcBX82)q0cx+g3u%4BJL%_g6fuWgIOh~~ap`n3E!cc0(j)DU&O{`{7 zF&>*5+&j4Wxp+K3CAjryv8%~c1|=NrFcsWZ(qXjJca9!!&mWIMm6Lrg$y%)vlO7*! z(V8t~TV<&3v{2~3?GlcXrvVHJ2bBOU&+obuqrR999d-%}ekT$xN% tja(!?CtaCk9{g{&q~X&`(*@aiWE>_wxV(Wcm2Iu%7ljMkn3$OutO3SGKf?e3 diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image31.gif b/doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image31.gif deleted file mode 100755 index 82a696852cdd68c3b12720ff131f533098596202..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 938 zcmZ?wbhEHb6k!ly_|5{%EDt2A<%HNo<+h>CqhB7v6aEf%7mj~ zAww6FvXP6X0E2gng!rsEkqHM*Ofz!d^<+h%LgRc5?vyD%f*!bcns;lt-njVa+ycXN zqct;4o(3+lV|UqN8Ia-Mr6p?>D|zL~0mh7lvua-&C7xTvu&yZdSK+(;4Gh)*NyJ5) diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image32.gif b/doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image32.gif deleted file mode 100755 index f74b5f0365cf714c4bcbbcdaf66b556ab9be0f06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 900 zcmZ?wbhEHb6k!ly_|5!z)HckOMSb_pUmN{)uWa18+_ z1}4RyEQ|~c{~2^Zegx$S2aZIB|C}-&8x|aFW)}Qo?BH;qfr*V##vtIp0mc>yl5LP_~RkK;5Au+|AdI==4EFms^n_97&J66PSEEJx$|TF;-iyY WgE!f5ELeGQsieBxUQQzg25SJ!^*QqZ diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image33.gif b/doc/salome/gui/GEOM/files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image33.gif deleted file mode 100755 index 72dd5f5ccf968cfa7fb6c383c5d7193ff2cddddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 918 zcmZ?wbhEHb6k!ly_|5}TQNdvWJvu{u+qcC(zy v&7c(r7P$pWm2w!TotSRK`e(MJuySa-DZhh>!-Cb<*T-?^_+%L - - - - -Using Boolean Operations - - - - - - - - - - - - - -

Using Boolean Operations

- -

 

- -

You can use the following - boolean operations for construction of more complex geometrical objects - (2D & 3D elements) :

- -

 

- - - - - -

 

- -

There is a general TUI command covering - all these operations, which can be used alongside with separate commands - for each operation.

- -

geompy.MakeBoolean(Shape1, - Shape2, Operation), where Shape1 is the first argument and Shape2 - is the second argument of Boolean operation, Operation is a type of the - Boolean operation (1 – Common, 2 – Cut, 3 – Fuse, 4 – Section).

- -

 

- -

Our TUI - Scripts provide you with useful examples of the use of Boolean - Operations.

- -

 

- - - - diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image1.gif b/doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image1.gif deleted file mode 100755 index 129d17d63ccf1d079c34488723707ab81cdd51b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 943 zcmZ?wbhEHb6k!ly_|5Yy-L!S@uD#9EEg^_{bKZ6d)kDxr^z|q6-pHs$T!vaSJW=4gG69SA*jSMV20u=`w8r#`~z5cWt zD!X^GawLV^D0q0HSJs$GBjG{Ai568~wUm>BX=f%2{}+`|PXvE`M=Y*lxswVZ~_oO^}ctB#($_$p`v6R&{8gUty?=5U_XV)Y7m O+pxRhvlA}|gEatE4oYwU diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image2.gif b/doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image2.gif deleted file mode 100755 index 56ec71d4086319d7ec4d432a6365709d32408c6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 952 zcmZ?wbhEHb6k!ly_|5(*}Fv~};Uz0K1uLF7lt(GVDx zA;84Ir1+DCk%8eqgAT}ppgiHgF_qyzr;Nvj1&$1yLQDof{0}%VFmrIY6dX9<)W)y; z&w0j%#m89$I3*NL2&y=@Gdbt|IU&^0$jsqUwkJa1>9OhBqVvvZe4Nk7#GH{768YhI z!(xxgSu6*(th~I8$9q$V$ASZlGr8txEsYF%;V_$F)iaY!fj5_CS_kWuYAslMdz%fb coQA`J*N(j^+wG2e7w9$aZ(t7R(*}Fv~};Uz0K1uLF7lt(GVDx zA;8GMsQ8nGk%8eqgAT}ppgiHgF_qyzr;Nvj1&$1yLR=mv0u-GYm^nCH3Jx$FYLgIl zm{MW*_;3dsM_J5_iA#=k{I{yQlJS6nX(ErWnF;5D)KfF$G8g?xZ#cj(RnA=Mjpc$B z7Z+Yy-L!S@uD#9EE zKbf&fT3SqG=0;`rc2*u4hM5J5C#R^fcByy>Ejqx&%#yPwVv~X&qeC;-R?Y=0E-rQx ze-~oa(7-s&NYG<$7lY=pX>6Wmy(cfIx-E)uue(|?MeFKDCSC!F4PO@cPVjjAO=U${ N!`+YZlm&D^9s}hG2ab6R|2btmHY_+;&&b9Up;6G_)X2agz;a;0 zqN82hoB|pN3XF#sIQjKtP6i}6F|e`oEXXi?bZ|Pmvy_XaU<2di{~oWFa0Whdp31DZ zsb|N=1SV#w$!bq$Bru*?&XVdR%dzQ|&pZKJB^{5VB)|EJ8~+v02v)qYiB*<~Vb>=e q|7|=G$F5o!zHsd+Hoq6Lqj-tiGCxi&hlB+i9v)(!#l^$HU=0AaSyhYx diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image57.gif b/doc/salome/gui/GEOM/files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image57.gif deleted file mode 100755 index 4f79860421f20bff5bd4ec16348fb7be64a7b79f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 981 zcmZ?wbhEHb6k!ly_|5@tK~Eef$y(nNi8NF_+{abS zg|YXU}&5nC@!tgu+hMAg#fpc K?*vN)25SI;0bLUS diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image58.gif b/doc/salome/gui/GEOM/files/salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image58.gif deleted file mode 100755 index 178eb64031e4f2d70e095cd00ca938a0efcdf257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 965 zcmZ?wbhEHb6k!ly_|5Cdn9ES-LY7}aAE=vgMvrGr=UkOXI&5mFqn;?2phLub$CFtqA3mph tZRN8R^PMHAeymqkQ_UjaK(5y`HX)HU5~k}euVEJ7l6ul`!^s8)YXHGHRfx#L84f#{# diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_geomtoolsgui_functions.htm b/doc/salome/gui/GEOM/files/salome2_sp3_geomtoolsgui_functions.htm deleted file mode 100755 index de5df125d..000000000 --- a/doc/salome/gui/GEOM/files/salome2_sp3_geomtoolsgui_functions.htm +++ /dev/null @@ -1,146 +0,0 @@ - - - - - -Importing and exporting geometrical objects - - - - - - - - - - - - -

Importing/exporting geometrical objects

- -

In Geometry module you - can import and export geometrical objects from/into BREP, IGES, STEP files. The mechanisms of import and export - are implemented via plug-ins, which gives you the opportunity to expand - the range of available formats by adding more plug-ins (for example, CATIA - 5).  

- -  - -

To import geometrical objects from a BREP, IGES, STEP file:

- -

 

- -

From the File - menu choose Import. In - the opening dialog box Import - select the required format of the file for importation and search for - a *.brep, *.iges or *.step  file. -

- -

 

- -

- -

 

- -

Select the required file and click Open. Your file will be imported in - the module and its contents (geometrical object) will be displayed in - the Object Browser.

- -

 

- -

 

- -

To export geometrical objects into a BREP, IGES, STEP file:

- -

 

- -

Select the object you wish to export, then - from the File menu choose Export. In the opening dialog box Export define the required format, - the name and the location of the file for exportation. -

- -

 

- -

- -

 

- -

Click Save - to confirm your exportation.  

- - - - diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions.htm b/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions.htm deleted file mode 100755 index acb24e686..000000000 --- a/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions.htm +++ /dev/null @@ -1,483 +0,0 @@ - - - - - -Using Measurement Tools - - - - - - - - - - - - - -

Using measurement tools

- -

Measurement tools in GEOM are necessary for getting different - data concerning created or imported geometrical objects. They are:

- -

 

- - - -

 

- -

Our TUI Scripts - show how to use Measurement Tools - with  TUI - commands.

- -

 

- -

To use measurement tools:

- -

 

- -

In the main menu select Measures - submenu.

- -

 

- -

 

- -

  Point coordinates

- -

 

- -

Returns the - coordinates of a point.

- -

 

- -

Result: Point - coordinates (X, Y, Z) in 3D space in the form of Python Tuple.

- -

TUI command: - geompy.PointCoordinates(Point), - where Point is a point whose coordinates are inquired.

- -

 

- -

- -

 

- -

 

- -

Basic properties -

- -

 

- -

Returns the properties (Length, Surface & - Volume) for the selected geometrical object.

- -

 

- -

Result: Display - Length, Surface & Volume in the form of Python Tuple.

- -

TUI command: - geompy.BasicProperties(Shape), - where Shape is a shape whose properties are inquired.

- -

 

- -

- -

 

- -

 

- -

- Center of mass

- -

 

- -

Calculates and returns the coordinates of the - gravity center for the selected geometrical object.

- -

 

- -

Result: GEOM_Object - (vertex).

- -

TUI Command: - geompy.MakeCDG(Shape), where - Shape is the shape for which a center of gravity is computed.

- -

 

- -

- -

 

- -

 

- -

Inertia -

- -

 

- -

Returns the axis of inertia for the selected - geometrical object.

- -

 

- -

Result: Displays - the matrix and moments of inertia in the form of Python Tuple (I11, I12, - I13,

- -

 I21, - I22, I23,

- -

 I31, - I32, I33,

- -

 Ix, - Iy, Iz).

- -

 

- -

TUI command: - geompy.Inertia(Shape), where - Shape is a shape for which a matrix of inertia and moment of inertia are - returned.

- -

 

- -

- -

 

- -

 

- -

Bounding - box

- -

 

- -

Returns the dimensions of the bounding box - for the selected geometrical object.

- -

 

- -

Result: Displays - the dimensions of the bounding box of a geometrical object in the form - of Python Tuple (Xmin, Xmax, Ymin, Ymax, Zmin, Zmax).

- -

TUI command: geompy.BoundingBox(Shape), where Shape is a shape for which a bounding - box is computed.

- -

 

- -

- -

 

- -

 

- -

Min. distance

- -

 

- -

Returns the minimum distance between two geometrical - objects.

- -

 

- -

TUI command: geompy.MinDistance(Shape1, - Shape2), where Shape1 and Shape2 - are shapes between which the minimal distance computed.

- -

 

- -

- -

 

- -

 

- -

- Tolerance

- -

 

- -

Returns the maximum and the minimum tolerance - for the selected geometrical object.

- -

 

- -

Result: Displays - the tolerance values (FaceMinTol, FaceMaxTol, EgdeMinTol, EgdeMaxTol, - VertexMinTol, VertexMaxTol).

- -

TUI command: geompy.Tolerance(Shape), where Shape is a shape for which minimal - and maximal tolerances are returned.

- -

 

- -

- -

 

- -

 

- -

WhatIs -

- -

 

- -

Displays types and quantities of all elements - composing the selected geometrical object.

- -

 

- -

TUI command: - geompy.WhatIs(Shape), where Shape - is a shape from which a description is returned.

- -

 

- -

- -

 

- -

 

- -

Check -

- -

 

- -

Checks the topology of the selected geometrical - object and returns True if it is valid. Check - also geometry checkbox allows to test the geometry as well.

- -

 

- -

Result: Boolean.

- -

TUI Command: - geompy.(theShape, theIsCheckGeom - = 0), where is shape which is checked for validity.

- -

 

- -

- -

 

- -

 

- -

Check compound - of blocks

- -

 

- -

Checks whether a shape is a compound of glued - blocks. To be considered as a compound of blocks, the given shape must - satisfy the following conditions:

- -
    - -
  •  Each - element of the compound should be a Block (6 faces and 12 edges);

  • - -
  •  A - connection between two Blocks should be an entire quadrangle face or an - entire edge;

  • - -
  •  The - compound should be connected;

  • - -
  •  Two - quadrangle faces should be glued.

  • -
- -

 

- -

Informs of the following possible errors:

- -
    - -
  • not a block,

  • - -
  • not glued,

  • - -
  • not connected,

  • - -
  • extra - or degenerated edge.

  • -
- -

 

- -

Result: Boolean; - highlight in the viewer.

- -

TUI Command: - geompy.CheckCompoundOfBlocks(Compound). - Checks if the shape is - a valid compound of blocks. If it is true, then the validity flag is returned, - and encountered errors are printed in the python console.

- -

 

- -

- -

 

- - - - diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image71.gif b/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image71.gif deleted file mode 100755 index 02e4c8ff85be6be18b96850984173e3537617f66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 934 zcmZ?wbhEHb6k!ly_|5Yy-L!S@uDvbOu0bS6$g^_{bKZ6d)kDxr^z|qX`pHs$T!ve=f20lI(g#?GjCI%(1IT9NmIyVXP8W_vLNLjxnSo2f;(}qyiHTy?S}i99lN~2=B#W6iBs83#@4zV$;9;nIaiW}~ zl8i!#THsvn^h-LO2Abzu16H3?c^Q%%wj_H0KWzhthMSu+vW09C7Bt-6UJ%a3!@*z; E0G3rm$^ZZW diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image72.gif b/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image72.gif deleted file mode 100755 index 1aebb4f080981edfb2ef0b00d1444427eb20e2b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 962 zcmZ?wbhEHb6k!ly_|5FMj4Gi%P$MN5}1Te^1L+O3Liu51U%}*+m=- z1R9QZOEB_CI3z4;YLb$*+R~wL(7lCAva4l9;iH4o^^H%3+?b?vs+F7N#S+ipMQ7_d zL)Z1Zn4HkW%sNRcG>hS&=ZpaUQ)e_pm!D|o=a%sZFnk(1%{70O$OVBl-W$12e(I?Z s%Q)3rz@9NhT5QFIsl}WU53B?n8+SBVTj{P)U~D?vAvjw`LV&><0GCWzB>(^b diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image73.gif b/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image73.gif deleted file mode 100755 index f11323ae39d49a13ed1daebb5022391bfc9a004a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 960 zcmZ?wbhEHb6k!ly_|5FMj4Gi%P$MN8MNTf24B*1fy-woJPQQ8G%7 zhQRO(0Y(N!#h)yU3=IDnbU?lXfa^*Rf zj!(}|b+8M|7$_`gxXi@HHzmiiKqIt8L0ZWpL3E-2LFMj4GHJ@3S#y>yTDo@K+O3Q&oh6TyT8JSrG1R5L|9a}Vb)eJfXA3Jpjure@s1|@hm%31S;RD4$T zX*c3k*uk0Lcziwsiv+J_$O5J|du6#jGmM^|nrjxDbTsP1va^f%t>eDD63PmhsoLqr zYW0yJaI<|Xlf+C0<&ede)_M~xCa2uoDwuw$R8xU5qFt7iXF+w*f@93A91Srs8=hR7 P%O#|6qoy?7fx#L8t-f0> diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image75.gif b/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image75.gif deleted file mode 100755 index 1c8dd915f67df189f05cfea3e0ccf185f30dc767..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 938 zcmZ?wbhEHb6k!ly_|5@d$EKqD{<7D7bNN{-I+`;>w z^Tvsdi`|<9SYxJm2tIV}U>4R2shqIXaXOQ;6-&YchNjm4eoi)?o09x`94h_3tTbMH zXfcbqT<9;Mw4mh{(NZi9p(>#atdVh3e+n=(GO>%j+M~54#cxwc`8$~`L5*XZT<)$a MJ@HNbLIZ;}0A+7WTL1t6 diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image76.gif b/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image76.gif deleted file mode 100755 index 7968c6143466a08126d2bb9d949485375c7f844e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 949 zcmZ?wbhEHb6k!ly_|5UAA=Xy0u$3ZQZ+TFGPNn91VeC z83IfUOo~5Q7#SG;Gw6Uk2+9)<9FrLSbIN!GC^R&)ax2+zEMRDAzH#FE*>4 zp5`$*Yl`K^7nkNa${&-76w+v5R1juUWiVE{KG!C_%Elrjp=mQ)^}jh82@dBrWp*F> YGkrnQFMj4GHJ@3S#y>yTDo-E(zWZ>Zr!wX@2gd4?N2v%xX&a}ub^rhiK=T^StxRO&3)XuD9;mNuBL*)6D4avMg ZDHaV37q>_{3iZyIl6iRvJ2Ml5H2?|5O!xo* diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image78.gif b/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image78.gif deleted file mode 100755 index 8de970b298e57460f8abd44b479e4f02b9b303c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1005 zcmZ?wbhEHb6k!ly_|CwBaD$fq`LZOIu4%U(b|DQ|8Q?vvkqYrOTGCUAK1Y zrmcH-?QNNMZRzRv#||Gm_xe8&09B8I(GVEwA;84Ir1+DCkpYhB=U}#|F;8Tg%z`)SN!Yr<`V@1N_qpUo9NUkbY!icmMMlELrH7|VbFxG@2skh?v+}4^NEkLcGYJTCl&o+#$jrbZBBN2j z(0IL5k<%z5Ae8aM?2OB+j!HT{KfJ+Sd=~F-{sZS28MqW81Qb?>v+$|&l|&>wWL(3! zOK*qQ0qsNVT(g2$YlL38^^~66w&&LN*T$YhORw<|X`E^uz+WmE}Z5K{DM<5TpCsWg6eviHA` zL`9|X!efkboLUYE3swd%XSb94qi*!ragjl&i9IhLL4uE&l7_mwP~Y7u8<7@lopWMr@g0HLl~{{R30 diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image88.gif b/doc/salome/gui/GEOM/files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image88.gif deleted file mode 100755 index e38dcabd8320e670296bdb0abe2e835f99194647..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 955 zcmZ?wbhEHb6k!ly_|5Mmabj5cI&3Cdw1<^nRX4L zYLpxefngQ`ObkqlKUo+V82&TpfV>9E6Am0R82)q0cx*^G$i&Q`6LDg~LMH}hHW3Gd zfQExz|8=BT4s2ZP-pZ}u_a}V8l9Q9wc{u_K1XG;b83a@kIvE;IPgfN0TGH`h@%auG zwM`-`J}x@8NR(A0_SBao$NBQnk4hvq9cW}>%JsXtGFa(6lX-m89Z#c&*Cq(C3m7zr lCLY;daDSbv!IourcUK52sJ=2$zTZ^MsrAKv{O6SM*pT4J#=*!EabkjE12d->kBi5~ zMNSMNj64Pt9>_QJE7(h!L|jZd+{$3l7h}0;$)PrRRXLv@AD0|v;z*fh(m9Edfr(w@ z&+W{MkB;@}OxE(<^?A{WsW!Px0Sdti9<$ZuxkPV#QT166-TCVb7sGOwjmgXjUn)y9 RZf)hfz36LZNU8&aH2{&^Pt^bb diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image90.gif b/doc/salome/gui/GEOM/files/salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image90.gif deleted file mode 100755 index 716e51b9f87a00850665e06230bad4a0a489952e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 927 zcmZ?wbhEHb6k!ly_|59#A;Jza#KBRa}Q;l{~@eoY&W@X@zaQLu3?QFM%X;Fyh7LCC9 zVuA}qJU1=$ZkA6z6{EFb<(1{O^>M5l3>TemF)!pg`%5(a=*Cpxd3S&4D==6C00hZL A&Hw-a diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image100.gif b/doc/salome/gui/GEOM/files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image100.gif deleted file mode 100755 index 871c6f09bf2a4ceb70dd224813f112d1aeab7dcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 945 zcmZ?wbhEHb6k!ly_|5gdEz_<+l#G(2 zAu#+xfQf-g@h1x-1H*p?9gy!pdBTCCkKsS3jK_ur2OAkgG-7rL9B5!-=Tl;E*tqC0 zBMXm$!Hfxt&J65AGCmp$mUuF9$vD~kIG^M?jU#xM4~N3zV@&Tj9gCmlh{8#cz4#>H5EabRR( WesoN=Ks1esh5ggBUM~X$25SJs=uLV6 diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image101.gif b/doc/salome/gui/GEOM/files/salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image101.gif deleted file mode 100755 index ffdbac7e8012062f024914322f7676c04fe66c4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 967 zcmZ?wbhEHb6k!ly_|5X4GRv|Ge~g=Tv)Ks zxs``e#9>3jgC-U>hKwr~3zQj|Ikkj*etb}5U{!LT7Q?wf`9!m{sa(j;ODZR(Fi2#q zSsD1eVLFregeNx(lTI~qizrwmEO^PtqLJ=3x2qt-xz|1O+8(K(*N4_~%Q9IkNO*8= zZ8)QVg7$+|!0?|z2jn$So^aq;&G4U7#$&^RgY^t791#-&7CJF-%ZWKG zNLawc!p6aHW5>mZ3`}eqa!+=Ad~l$RJE+JHfdk<0AXnwxX4GRu7GDsOjoS5Lq z%)luo6Eop~10xf&QJPA?1BWBcOu|eN3W6zz*ffGyxo|cdU}RNDK4vphDCuMqg9L}b z2BD{ZY-XHV3=YAn7kl;9wLA_?S=lt(Xz{rzU7Me|&vaeu)W2(3|`8> pz;-0Mmabj5cI&3Cdw1<^o^}bM zYLpxefngQ`j0}v5KUo+V82&TpfV>9E6Am168UAz1cx+hU*vKHJBd}n@!=@H~b`b{y zfrg{q5{x_&4hf5zniwRkaxw%RoBBCKyGl3$A0KHpNKBiv@`CEoDctUMYcxMT+ux!c z>GsCc;9w(@$7D6r2gb`THyax}on2|H*ucat6cQ3S^||*P$Ly-FoQ7}Cb;Q@N5;?Ff p*Mread)C^O6BjeCWfl~15W8VBOZcTb19N}X*Pp^b y8)8MLwMv@k9qG<${M^boZO+@AZo>ZZ7?=YO!GAhG13>iT%7B4Aube+YZlm&D^9s}hG2ac5t|2btmHY{*#WRPHyIIv)$6C0Eq{dEUPI6=Ya82>%VphHy*%=2Ijvwx@Rr9bcXl!DcpzQ8uX`sMh4FH|} BSvLRx diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image122.gif b/doc/salome/gui/GEOM/files/salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image122.gif deleted file mode 100755 index 3917bf3e26d4317b74e3449002c8b6d407c27efc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 971 zcmZ?wbhEHb6k!ly_|5+YZlm&D^9s}hG2aXjC|2btmHY{*#WRNgmI51)1p%!jV2@it} z3thWeI7DXbSfJ3r$mQIYGQ+{qy@i{dC1Hb+q6>qNrrey$4~x#W8)`3$xml!muG5M= zrbfc>xdST)k4EgSFAYAk0@82oiI~jjG0}xl!eN2K^3XMQ%1o}D2}=(#=+)bma$d@b z+L$fQCgC8yHei>*@qfQLzA5_jvhU*aNl;k)@UXP-9GM*sj!nlWD9)CV5MZzd0Gt6> A*Z=?k diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image128.gif b/doc/salome/gui/GEOM/files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image128.gif deleted file mode 100755 index 7a140ed931bf6dd7cc61f0a7d974995dd151cade..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 929 zcmZ?wbhEHb6k!ly_|5|vf=!EAfPWM@t%m+=O-taIJ9QXy=na9 l?1K2iOa=xUo-?j@=}x*LVY=-84C%#M4hahi9yTyo0|1U4RK5TJ diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image131.gif b/doc/salome/gui/GEOM/files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image131.gif deleted file mode 100755 index 2059e9d9dbbba89b372320b13675053772a69ec5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 945 zcmZ?wbhEHb6k!ly_|5|(Oof=Uc5YX4O&0v4>j&1B6e VVDMne>YIzb0yiCbZKS|p4FJFxOkn^3 diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image132.gif b/doc/salome/gui/GEOM/files/salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image132.gif deleted file mode 100755 index 29aaddb0a936b2e945e0a950e0f6d37e66e4bc2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 949 zcmZ?wbhEHb6k!ly_|5||%x8p}(O2b4IUo{C1;nbs(*}S8UtSEeJ-^C;A zG(}_LQ-`?>VM-Y%zbG@zVT*s}!x@_5y+ondsrJ;?SAnZIL{uyS7Oe4|%))a|AD;!3@vRfJ$*e>CQX?$YtGU|OP4NNx^~^# zt(&&)-L - - - - - Main Page - - - - -  - - - - -

geompyDC.geompyDC Class Reference

Inheritance diagram for geompyDC.geompyDC:

Inheritance graph
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

def __init__
def init_geom
def SubShapeName
 Get name for sub-shape aSubObj of shape aMainObj.
def addToStudy
 Publish in study aShape with name aName.
def addToStudyInFather
 Publish in study aShape with name aName as sub-object of previously published aFather.
def MakeVertex
 Create point by three coordinates.
def MakeVertexWithRef
 Create a point, distant from the referenced point on the given distances along the coordinate axes.
def MakeVertexOnCurve
 Create a point, corresponding to the given parameter on the given curve.
def MakeTangentOnCurve
 Create a tangent, corresponding to the given parameter on the given curve.
def MakeVectorDXDYDZ
 Create a vector with the given components.
def MakeVector
 Create a vector between two points.
def MakeLine
 Create a line, passing through the given point and parrallel to the given direction.
def MakeLineTwoPnt
 Create a line, passing through the given points.
def MakePlane
 Create a plane, passing through the given point and normal to the given vector.
def MakePlaneThreePnt
 Create a plane, passing through the three given points.
def MakePlaneFace
 Create a plane, similar to the existing one, but with another size of representing face.
def MakeMarker
 Create a local coordinate system.
def MakeMarkerPntTwoVec
 Create a local coordinate system.
def MakeArc
 Create an arc of circle, passing through three given points.
def MakeArcCenter
 Create an arc of circle from a center and 2 points.
def MakeCircle
 Create a circle with given center, normal vector and radius.
def MakeCircleThreePnt
 Create a circle, passing through three given points.
def MakeEllipse
 Create an ellipse with given center, normal vector and radiuses.
def MakePolyline
 Create a polyline on the set of points.
def MakeBezier
 Create bezier curve on the set of points.
def MakeInterpol
 Create B-Spline curve on the set of points.
def MakeSketcher
 Create a sketcher (wire or face), following the textual description, passed through theCommand argument.
def MakeSketcherOnPlane
 Create a sketcher (wire or face), following the textual description, passed through theCommand argument.
def MakeBox
 Create a box by coordinates of two opposite vertices.
def MakeBoxDXDYDZ
 Create a box with specified dimensions along the coordinate axes and with edges, parallel to the coordinate axes.
def MakeBoxTwoPnt
 Create a box with two specified opposite vertices, and with edges, parallel to the coordinate axes.
def MakeCylinder
 Create a cylinder with given base point, axis, radius and height.
def MakeCylinderRH
 Create a cylinder with given radius and height at the origin of coordinate system.
def MakeSpherePntR
 Create a sphere with given center and radius.
def MakeSphere
 Create a sphere with given center and radius.
def MakeSphereR
 Create a sphere with given radius at the origin of coordinate system.
def MakeCone
 Create a cone with given base point, axis, height and radiuses.
def MakeConeR1R2H
 Create a cone with given height and radiuses at the origin of coordinate system.
def MakeTorus
 Create a torus with given center, normal vector and radiuses.
def MakeTorusRR
 Create a torus with given radiuses at the origin of coordinate system.
def MakePrism
 Create a shape by extrusion of the base shape along a vector, defined by two points.
def MakePrismVecH
 Create a shape by extrusion of the base shape along the vector, i.e.
def MakePipe
 Create a shape by extrusion of the base shape along the path shape.
def MakeRevolution
 Create a shape by revolution of the base shape around the axis on the given angle, i.e.
def MakeThruSections
 Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
def MakePipeWithDifferentSections
 Create a shape by extrusion of the profile shape along the path shape.
def MakePipeWithShellSections
 Create a shape by extrusion of the profile shape along the path shape.
def MakeEdge
 Create a linear edge with specified ends.
def MakeWire
 Create a wire from the set of edges and wires.
def MakeFace
 Create a face on the given wire.
def MakeFaceWires
 Create a face on the given wires set.
def MakeFaces
 Shortcut to MakeFaceWires().
def MakeShell
 Create a shell from the set of faces and shells.
def MakeSolid
 Create a solid, bounded by the given shells.
def MakeCompound
 Create a compound of the given shapes.
def NumberOfFaces
 Gives quantity of faces in the given shape.
def NumberOfEdges
 Gives quantity of edges in the given shape.
def ChangeOrientation
 Reverses an orientation the given shape.
def OrientationChange
 Shortcut to ChangeOrientation().
def GetFreeFacesIDs
 Retrieve all free faces from the given shape.
def GetSharedShapes
 Get all sub-shapes of theShape1 of the given type, shared with theShape2.
def GetShapesOnPlane
 Find in theShape all sub-shapes of type theShapeType, situated relatively the specified plane by the certain way, defined through theState parameter.
def GetShapesOnPlaneIDs
 Works like the above method, but returns list of sub-shapes indices.
def GetShapesOnPlaneWithLocation
 Find in theShape all sub-shapes of type theShapeType, situated relatively the specified plane by the certain way, defined through theState parameter.
def GetShapesOnPlaneWithLocationIDs
 Works like the above method, but returns list of sub-shapes indices.
def GetShapesOnCylinder
 Find in theShape all sub-shapes of type theShapeType, situated relatively the specified cylinder by the certain way, defined through theState parameter.
def GetShapesOnCylinderIDs
 Works like the above method, but returns list of sub-shapes indices.
def GetShapesOnSphere
 Find in theShape all sub-shapes of type theShapeType, situated relatively the specified sphere by the certain way, defined through theState parameter.
def GetShapesOnSphereIDs
 Works like the above method, but returns list of sub-shapes indices.
def GetShapesOnQuadrangle
 Find in theShape all sub-shapes of type theShapeType, situated relatively the specified quadrangle by the certain way, defined through theState parameter.
def GetShapesOnQuadrangleIDs
 Works like the above method, but returns list of sub-shapes indices.
def GetShapesOnBox
 Find in theShape all sub-shapes of type theShapeType, situated relatively the specified theBox by the certain way, defined through theState parameter.
def GetShapesOnBoxIDs
 Works like the above method, but returns list of sub-shapes indices.
def GetInPlace
 Get sub-shape(s) of theShapeWhere, which are coincident with theShapeWhat or could be a part of it.
def GetSame
 Get sub-shape of theShapeWhere, which is equal to theShapeWhat.
def GetSubShape
 Obtain a composite sub-shape of <aShape>, composed from sub-shapes of <aShape>, selected by their unique IDs inside <aShape>.
def GetSubShapeID
 Obtain unique ID of sub-shape <aSubShape> inside <aShape>.
def SubShapeAll
 Explode a shape on subshapes of a given type.
def SubShapeAllIDs
 Explode a shape on subshapes of a given type.
def SubShapeAllSorted
 Explode a shape on subshapes of a given type.
def SubShapeAllSortedIDs
 Explode a shape on subshapes of a given type.
def SubShape
 Obtain a compound of sub-shapes of <aShape>, selected by they indices in list of all sub-shapes of type <aType>.
def SubShapeSorted
 Obtain a compound of sub-shapes of <aShape>, selected by they indices in sorted list of all sub-shapes of type <aType>.
def ProcessShape
 Apply a sequence of Shape Healing operators to the given object.
def SuppressFaces
 Remove faces from the given object (shape).
def MakeSewing
 Sewing of some shapes into single shape.
def Sew
 Sewing of the given object.
def SuppressInternalWires
 Remove internal wires and edges from the given object (face).
def SuppressHoles
 Remove internal closed contours (holes) from the given object.
def CloseContour
 Close an open wire.
def DivideEdge
 Addition of a point to a given edge object.
def ChangeOrientationShell
 Change orientation of the given object.
def ChangeOrientationShellCopy
 Change orientation of the given object.
def GetFreeBoundary
 Get a list of wires (wrapped in GEOM_Object-s), that constitute a free boundary of the given shape.
def MakeCopy
 Create a copy of the given object.
def MakeFilling
 Create a filling from the given compound of contours.
def MakeGlueFaces
 Replace coincident faces in theShape by one face.
def GetGlueFaces
 Find coincident faces in theShape for possible gluing.
def MakeGlueFacesByList
 Replace coincident faces in theShape by one face in compliance with given list of faces.
def MakeBoolean
 Perform one of boolean operations on two given shapes.
def MakeCommon
 Shortcut to MakeBoolean(s1, s2, 1).
def MakeCut
 Shortcut to MakeBoolean(s1, s2, 2).
def MakeFuse
 Shortcut to MakeBoolean(s1, s2, 3).
def MakeSection
 Shortcut to MakeBoolean(s1, s2, 4).
def MakePartition
 Perform partition operation.
def MakePartitionNonSelfIntersectedShape
 Perform partition operation.
def Partition
 Shortcut to MakePartition().
def MakeHalfPartition
 Perform partition of the Shape with the Plane.
def MakeTranslationTwoPoints
 Translate the given object along the vector, specified by its end points, creating its copy before the translation.
def MakeTranslation
 Translate the given object along the vector, specified by its components, creating its copy before the translation.
def MakeTranslationVector
 Translate the given object along the given vector, creating its copy before the translation.
def MakeRotation
 Rotate the given object around the given axis on the given angle, creating its copy before the rotatation.
def MakeRotationThreePoints
 Rotate given object around vector perpendicular to plane containing three points, creating its copy before the rotatation.
def MakeScaleTransform
 Scale the given object by the factor, creating its copy before the scaling.
def MakeMirrorByPlane
 Create an object, symmetrical to the given one relatively the given plane.
def MakeMirrorByAxis
 Create an object, symmetrical to the given one relatively the given axis.
def MakeMirrorByPoint
 Create an object, symmetrical to the given one relatively the given point.
def MakePosition
 Modify the Location of the given object by LCS, creating its copy before the setting.
def MakeOffset
 Create new object as offset of the given one.
def MakeMultiTranslation1D
 Translate the given object along the given vector a given number times.
def MakeMultiTranslation2D
 Conseqently apply two specified translations to theObject specified number of times.
def MultiRotate1D
 Rotate the given object around the given axis a given number times.
def MultiRotate2D
 Rotate the given object around the given axis on the given angle a given number times and multi-translate each rotation result.
def MakeMultiRotation1D
 The same, as MultiRotate1D(), but axis is given by direction and point.
def MakeMultiRotation2D
 The same, as MultiRotate2D(), but axis is given by direction and point.
def MakeFilletAll
 Perform a fillet on all edges of the given shape.
def MakeFillet
 Perform a fillet on the specified edges/faces of the given shape.
def MakeChamferAll
 Perform a symmetric chamfer on all edges of the given shape.
def MakeChamferEdge
 Perform a chamfer on edges, common to the specified faces, with distance D1 on the Face1.
def MakeChamferFaces
 Perform a chamfer on all edges of the specified faces, with distance D1 on the first specified face (if several for one edge).
def MakeChamfer
 Shortcut to MakeChamferEdge() and MakeChamferFaces().
def Archimede
 Perform an Archimde operation on the given shape with given parameters.
def PointCoordinates
 Get point coordinates.
def BasicProperties
 Get summarized length of all wires, area of surface and volume of the given shape.
def BoundingBox
 Get parameters of bounding box of the given shape.
def Inertia
 Get inertia matrix and moments of inertia of theShape.
def MinDistance
 Get minimal distance between the given shapes.
def Tolerance
 Get min and max tolerances of sub-shapes of theShape.
def WhatIs
 Obtain description of the given shape (number of sub-shapes of each type).
def MakeCDG
 Get a point, situated at the centre of mass of theShape.
def CheckShape
 Check a topology of the given shape.
def GetPosition
 Get position (LCS) of theShape.
def KindOfShape
 Get kind of theShape.
def Import
 Import a shape from the BREP or IGES or STEP file (depends on given format) with given name.
def ImportBREP
 Shortcut to Import() for BREP format.
def ImportIGES
 Shortcut to Import() for IGES format.
def ImportSTEP
 Shortcut to Import() for STEP format.
def Export
 Export the given shape into a file with given name.
def ExportBREP
 Shortcut to Export() for BREP format.
def ExportIGES
 Shortcut to Export() for IGES format.
def ExportSTEP
 Shortcut to Export() for STEP format.
def MakeQuad
 Create a quadrangle face from four edges.
def MakeQuad2Edges
 Create a quadrangle face on two edges.
def MakeQuad4Vertices
 Create a quadrangle face with specified corners.
def MakeHexa
 Create a hexahedral solid, bounded by the six given faces.
def MakeHexa2Faces
 Create a hexahedral solid between two given faces.
def GetPoint
 Get a vertex, found in the given shape by its coordinates.
def GetEdge
 Get an edge, found in the given shape by two given vertices.
def GetEdgeNearPoint
 Find an edge of the given shape, which has minimal distance to the given point.
def GetFaceByPoints
 Returns a face, found in the given shape by four given corner vertices.
def GetFaceByEdges
 Get a face of block, found in the given shape by two given edges.
def GetOppositeFace
 Find a face, opposite to the given one in the given block.
def GetFaceNearPoint
 Find a face of the given shape, which has minimal distance to the given point.
def GetFaceByNormale
 Find a face of block, whose outside normale has minimal angle with the given vector.
def CheckCompoundOfBlocks
 Check, if the compound of blocks is given.
def RemoveExtraEdges
 Remove all seam and degenerated edges from theShape.
def CheckAndImprove
 Check, if the given shape is a blocks compound.
def MakeBlockExplode
 Get all the blocks, contained in the given compound.
def GetBlockNearPoint
 Find block, containing the given point inside its volume or on boundary.
def GetBlockByParts
 Find block, containing all the elements, passed as the parts, or maximum quantity of them.
def GetBlocksByParts
 Return all blocks, containing all the elements, passed as the parts.
def MakeMultiTransformation1D
 Multi-transformate block and glue the result.
def MakeMultiTransformation2D
 Multi-transformate block and glue the result.
def Propagate
 Build all possible propagation groups.
def CreateGroup
 Creates a new group which will store sub shapes of theMainShape.
def AddObject
 Adds a sub object with ID theSubShapeId to the group.
def RemoveObject
 Removes a sub object with ID theSubShapeId from the group.
def UnionList
 Adds to the group all the given shapes.
def UnionIDs
 Works like the above method, but argument theSubShapes here is a list of sub-shapes indices.
def DifferenceList
 Removes from the group all the given shapes.
def DifferenceIDs
 Works like the above method, but argument theSubShapes here is a list of sub-shapes indices.
def GetObjectIDs
 Returns a list of sub objects ID stored in the group.
def GetType
 Returns a type of sub objects stored in the group.
def GetMainShape
 Returns a main shape associated with the group.
def GetEdgesByLength
 Create group of edges of theShape, whose length is in range [min_length, max_length].
def SelectEdges
 Create group of edges of selected shape, whose length is in range [min_length, max_length].
def addPath
 Add Path to load python scripts from.

Data Fields

 myBuilder
 myStudyId
 father
 BasicOp
 CurvesOp
 PrimOp
 ShapesOp
 HealOp
 InsertOp
 BoolOp
 TrsfOp
 LocalOp
 MeasuOp
 BlocksOp
 GroupOp
 myStudy
-

Member Function Documentation

- -
-
- - - - - - - - - -
def geompyDC.geompyDC.__init__ (  self  ) 
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.init_geom (  self,
  theStudy 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.SubShapeName (  self,
  aSubObj,
  aMainObj 
)
-
-
- -

-Example: see GEOM_TestAll.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.addToStudy (  self,
  aShape,
  aName 
)
-
-
- -

-Example: see GEOM_TestAll.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.addToStudyInFather (  self,
  aFather,
  aShape,
  aName 
)
-
-
- -

-Example: see GEOM_TestAll.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeVertex (  self,
  theX,
  theY,
  theZ 
)
-
-
- -

-

Parameters:
- - - - -
theX The X coordinate of the point.
theY The Y coordinate of the point.
theZ The Z coordinate of the point.
-
-
Returns:
New GEOM_Object, containing the created point.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeVertexWithRef (  self,
  theReference,
  theX,
  theY,
  theZ 
)
-
-
- -

-

Parameters:
- - - - - -
theReference The referenced point.
theX Displacement from the referenced point along OX axis.
theY Displacement from the referenced point along OY axis.
theZ Displacement from the referenced point along OZ axis.
-
-
Returns:
New GEOM_Object, containing the created point.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeVertexOnCurve (  self,
  theRefCurve,
  theParameter 
)
-
-
- -

-

Parameters:
- - - -
theRefCurve The referenced curve.
theParameter Value of parameter on the referenced curve.
-
-
Returns:
New GEOM_Object, containing the created point.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeTangentOnCurve (  self,
  theRefCurve,
  theParameter 
)
-
-
- -

-

Parameters:
- - - -
theRefCurve The referenced curve.
theParameter Value of parameter on the referenced curve.
-
-
Returns:
New GEOM_Object, containing the created tangent.
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeVectorDXDYDZ (  self,
  theDX,
  theDY,
  theDZ 
)
-
-
- -

-

Parameters:
- - - - -
theDX X component of the vector.
theDY Y component of the vector.
theDZ Z component of the vector.
-
-
Returns:
New GEOM_Object, containing the created vector.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeVector (  self,
  thePnt1,
  thePnt2 
)
-
-
- -

-

Parameters:
- - - -
thePnt1 Start point for the vector.
thePnt2 End point for the vector.
-
-
Returns:
New GEOM_Object, containing the created vector.
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeLine (  self,
  thePnt,
  theDir 
)
-
-
- -

-

Parameters:
- - - -
thePnt Point. The resulting line will pass through it.
theDir Direction. The resulting line will be parallel to it.
-
-
Returns:
New GEOM_Object, containing the created line.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeLineTwoPnt (  self,
  thePnt1,
  thePnt2 
)
-
-
- -

-

Parameters:
- - - -
thePnt1 First of two points, defining the line.
thePnt2 Second of two points, defining the line.
-
-
Returns:
New GEOM_Object, containing the created line.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePlane (  self,
  thePnt,
  theVec,
  theTrimSize 
)
-
-
- -

-

Parameters:
- - - - -
thePnt Point, the plane has to pass through.
theVec Vector, defining the plane normal direction.
theTrimSize Half size of a side of quadrangle face, representing the plane.
-
-
Returns:
New GEOM_Object, containing the created plane.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePlaneThreePnt (  self,
  thePnt1,
  thePnt2,
  thePnt3,
  theTrimSize 
)
-
-
- -

-

Parameters:
- - - - - -
thePnt1 First of three points, defining the plane.
thePnt2 Second of three points, defining the plane.
thePnt3 Fird of three points, defining the plane.
theTrimSize Half size of a side of quadrangle face, representing the plane.
-
-
Returns:
New GEOM_Object, containing the created plane.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePlaneFace (  self,
  theFace,
  theTrimSize 
)
-
-
- -

-

Parameters:
- - - -
theFace Referenced plane or LCS(Marker).
theTrimSize New half size of a side of quadrangle face, representing the plane.
-
-
Returns:
New GEOM_Object, containing the created plane.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeMarker (  self,
  OX,
  OY,
  OZ,
  XDX,
  XDY,
  XDZ,
  YDX,
  YDY,
  YDZ 
)
-
-
- -

-

Parameters:
- - - - -
OX,OY,OZ Three coordinates of coordinate system origin.
XDX,XDY,XDZ Three components of OX direction
YDX,YDY,YDZ Three components of OY direction
-
-
Returns:
New GEOM_Object, containing the created coordinate system.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeMarkerPntTwoVec (  self,
  theOrigin,
  theXVec,
  theYVec 
)
-
-
- -

-

Parameters:
- - - - -
theOrigin Point of coordinate system origin.
theXVec Vector of X direction
theYVec Vector of Y direction
-
-
Returns:
New GEOM_Object, containing the created coordinate system.
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeArc (  self,
  thePnt1,
  thePnt2,
  thePnt3 
)
-
-
- -

-

Parameters:
- - - - -
thePnt1 Start point of the arc.
thePnt2 Middle point of the arc.
thePnt3 End point of the arc.
-
-
Returns:
New GEOM_Object, containing the created arc.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeArcCenter (  self,
  thePnt1,
  thePnt2,
  thePnt3,
  theSense 
)
-
-
- -

-

Parameters:
- - - - -
thePnt1 Center of the arc
thePnt2 Start point of the arc. (Gives also the radius of the arc)
thePnt3 End point of the arc (Gives also a direction)
-
-
Returns:
New GEOM_Object, containing the created arc.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeCircle (  self,
  thePnt,
  theVec,
  theR 
)
-
-
- -

-

Parameters:
- - - - -
thePnt Circle center.
theVec Vector, normal to the plane of the circle.
theR Circle radius.
-
-
Returns:
New GEOM_Object, containing the created circle.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeCircleThreePnt (  self,
  thePnt1,
  thePnt2,
  thePnt3 
)
-
-
- -

-

Parameters:
- - -
thePnt1,thePnt2,thePnt3 Points, defining the circle.
-
-
Returns:
New GEOM_Object, containing the created circle.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeEllipse (  self,
  thePnt,
  theVec,
  theRMajor,
  theRMinor 
)
-
-
- -

-

Parameters:
- - - - - -
thePnt Ellipse center.
theVec Vector, normal to the plane of the ellipse.
theRMajor Major ellipse radius.
theRMinor Minor ellipse radius.
-
-
Returns:
New GEOM_Object, containing the created ellipse.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePolyline (  self,
  thePoints 
)
-
-
- -

-

Parameters:
- - -
thePoints Sequence of points for the polyline.
-
-
Returns:
New GEOM_Object, containing the created polyline.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeBezier (  self,
  thePoints 
)
-
-
- -

-

Parameters:
- - -
thePoints Sequence of points for the bezier curve.
-
-
Returns:
New GEOM_Object, containing the created bezier curve.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeInterpol (  self,
  thePoints 
)
-
-
- -

-

Parameters:
- - -
thePoints Sequence of points for the B-Spline curve.
-
-
Returns:
New GEOM_Object, containing the created B-Spline curve.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeSketcher (  self,
  theCommand,
  theWorkingPlane = [0 
)
-
-
- -

-
- Edges of the resulting wire or face will be arcs of circles and/or linear segments.
- Format of the description string have to be the following:

-"Sketcher[:F x1 y1]:CMD[:CMD[:CMD...]]"

-Where:

    -
  • x1, y1 are coordinates of the first sketcher point (zero by default),
  • CMD is one of
      -
    • "R angle" : Set the direction by angle
    • "D dx dy" : Set the direction by DX & DY
    -
    -
      -
    • "TT x y" : Create segment by point at X & Y
    • "T dx dy" : Create segment by point with DX & DY
    • "L length" : Create segment by direction & Length
    • "IX x" : Create segment by direction & Intersect. X
    • "IY y" : Create segment by direction & Intersect. Y
    -
    -
      -
    • "C radius length" : Create arc by direction, radius and length(in degree)
    -
    -
      -
    • "WW" : Close Wire (to finish)
    • "WF" : Close Wire and build face (to finish)
    -
-

-

Parameters:
- - - -
theCommand String, defining the sketcher in local coordinates of the working plane.
theWorkingPlane Nine double values, defining origin, OZ and OX directions of the working plane.
-
-
Returns:
New GEOM_Object, containing the created wire.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeSketcherOnPlane (  self,
  theCommand,
  theWorkingPlane 
)
-
-
- -

-
- For format of the description string see the previous method.
-

Parameters:
- - - -
theCommand String, defining the sketcher in local coordinates of the working plane.
theWorkingPlane Planar Face or LCS(Marker) of the working plane.
-
-
Returns:
New GEOM_Object, containing the created wire.
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeBox (  self,
  x1,
  y1,
  z1,
  x2,
  y2,
  z2 
)
-
-
- -

-Example: see GEOM_TestAll.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeBoxDXDYDZ (  self,
  theDX,
  theDY,
  theDZ 
)
-
-
- -

-Center of the box will be at point (DX/2, DY/2, DZ/2).

Parameters:
- - - - -
theDX Length of Box edges, parallel to OX axis.
theDY Length of Box edges, parallel to OY axis.
theDZ Length of Box edges, parallel to OZ axis.
-
-
Returns:
New GEOM_Object, containing the created box.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeBoxTwoPnt (  self,
  thePnt1,
  thePnt2 
)
-
-
- -

-

Parameters:
- - - -
thePnt1 First of two opposite vertices.
thePnt2 Second of two opposite vertices.
-
-
Returns:
New GEOM_Object, containing the created box.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeCylinder (  self,
  thePnt,
  theAxis,
  theR,
  theH 
)
-
-
- -

-

Parameters:
- - - - - -
thePnt Central point of cylinder base.
theAxis Cylinder axis.
theR Cylinder radius.
theH Cylinder height.
-
-
Returns:
New GEOM_Object, containing the created cylinder.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeCylinderRH (  self,
  theR,
  theH 
)
-
-
- -

-Axis of the cylinder will be collinear to the OZ axis of the coordinate system.

Parameters:
- - - -
theR Cylinder radius.
theH Cylinder height.
-
-
Returns:
New GEOM_Object, containing the created cylinder.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeSpherePntR (  self,
  thePnt,
  theR 
)
-
-
- -

-

Parameters:
- - - -
thePnt Sphere center.
theR Sphere radius.
-
-
Returns:
New GEOM_Object, containing the created sphere.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeSphere (  self,
  x,
  y,
  z,
  theR 
)
-
-
- -

-

Parameters:
- - - -
x,y,z Coordinates of sphere center.
theR Sphere radius.
-
-
Returns:
New GEOM_Object, containing the created sphere.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeSphereR (  self,
  theR 
)
-
-
- -

-

Parameters:
- - -
theR Sphere radius.
-
-
Returns:
New GEOM_Object, containing the created sphere.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeCone (  self,
  thePnt,
  theAxis,
  theR1,
  theR2,
  theH 
)
-
-
- -

-

Parameters:
- - - - - -
thePnt Central point of the first cone base.
theAxis Cone axis.
theR1 Radius of the first cone base.
theR2 Radius of the second cone base.
-
-
Note:
If both radiuses are non-zero, the cone will be truncated.

-If the radiuses are equal, a cylinder will be created instead.

-
Parameters:
- - -
theH Cone height.
-
-
Returns:
New GEOM_Object, containing the created cone.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeConeR1R2H (  self,
  theR1,
  theR2,
  theH 
)
-
-
- -

-Axis of the cone will be collinear to the OZ axis of the coordinate system.

Parameters:
- - - -
theR1 Radius of the first cone base.
theR2 Radius of the second cone base.
-
-
Note:
If both radiuses are non-zero, the cone will be truncated.

-If the radiuses are equal, a cylinder will be created instead.

-
Parameters:
- - -
theH Cone height.
-
-
Returns:
New GEOM_Object, containing the created cone.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeTorus (  self,
  thePnt,
  theVec,
  theRMajor,
  theRMinor 
)
-
-
- -

-

Parameters:
- - - - - -
thePnt Torus central point.
theVec Torus axis of symmetry.
theRMajor Torus major radius.
theRMinor Torus minor radius.
-
-
Returns:
New GEOM_Object, containing the created torus.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeTorusRR (  self,
  theRMajor,
  theRMinor 
)
-
-
- -

-

Parameters:
- - - -
theRMajor Torus major radius.
theRMinor Torus minor radius.
-
-
Returns:
New GEOM_Object, containing the created torus.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePrism (  self,
  theBase,
  thePoint1,
  thePoint2 
)
-
-
- -

-

Parameters:
- - - - -
theBase Base shape to be extruded.
thePoint1 First end of extrusion vector.
thePoint2 Second end of extrusion vector.
-
-
Returns:
New GEOM_Object, containing the created prism.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePrismVecH (  self,
  theBase,
  theVec,
  theH 
)
-
-
- -

-all the space, transfixed by the base shape during its translation along the vector on the given distance.

Parameters:
- - - - -
theBase Base shape to be extruded.
theVec Direction of extrusion.
theH Prism dimension along theVec.
-
-
Returns:
New GEOM_Object, containing the created prism.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePipe (  self,
  theBase,
  thePath 
)
-
-
- -

-The path shape can be a wire or an edge.

Parameters:
- - - -
theBase Base shape to be extruded.
thePath Path shape to extrude the base shape along it.
-
-
Returns:
New GEOM_Object, containing the created pipe.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeRevolution (  self,
  theBase,
  theAxis,
  theAngle 
)
-
-
- -

-all the space, transfixed by the base shape during its rotation around the axis on the given angle.

Parameters:
- - - - -
theBase Base shape to be rotated.
theAxis Rotation axis.
theAngle Rotation angle in radians.
-
-
Returns:
New GEOM_Object, containing the created revolution.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeThruSections (  self,
  theSeqSections,
  theModeSolid,
  thePreci,
  theRuled 
)
-
-
- -

-

Parameters:
- - - - - -
theSeqSections - set of specified sections.
theModeSolid - mode defining building solid or shell
thePreci - precision 3D used for smoothing by default 1.e-6
theRuled - mode defining type of the result surfaces (ruled or smoothed).
-
-
Returns:
New GEOM_Object, containing the created shell or solid.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePipeWithDifferentSections (  self,
  theSeqBases,
  theLocations,
  thePath,
  theWithContact,
  theWithCorrection 
)
-
-
- -

-The path shape can be a wire or an edge. the several profiles can be specified in the several locations of path.

Parameters:
- - - - - - -
theSeqBases - list of Bases shape to be extruded.
theLocations - list of locations on the path corresponding specified list of the Bases shapes. Number of locations should be equal to number of bases or list of locations can be empty.
thePath - Path shape to extrude the base shape along it.
theWithContact - the mode defining that the section is translated to be in contact with the spine.
- WithCorrection - defining that the section is rotated to be orthogonal to the spine tangent in the correspondent point
-
-
Returns:
New GEOM_Object, containing the created pipe.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePipeWithShellSections (  self,
  theSeqBases,
  theSeqSubBases,
  theLocations,
  thePath,
  theWithContact,
  theWithCorrection 
)
-
-
- -

-The path shape can be a shell or a face. the several profiles can be specified in the several locations of path.

Parameters:
- - - - - - - -
theSeqBases - list of Bases shape to be extruded.
theSeqSubBases - list of corresponding subshapes of section shapes.
theLocations - list of locations on the path corresponding specified list of the Bases shapes. Number of locations should be equal to number of bases or list of locations can be empty.
thePath - Path shape to extrude the base shape along it.
theWithContact - the mode defining that the section is translated to be in contact with the spine.
- WithCorrection - defining that the section is rotated to be orthogonal to the spine tangent in the correspondent point
-
-
Returns:
New GEOM_Object, containing the created solids.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeEdge (  self,
  thePnt1,
  thePnt2 
)
-
-
- -

-

Parameters:
- - - -
thePnt1 Point for the first end of edge.
thePnt2 Point for the second end of edge.
-
-
Returns:
New GEOM_Object, containing the created edge.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeWire (  self,
  theEdgesAndWires 
)
-
-
- -

-

Parameters:
- - -
theEdgesAndWires List of edges and/or wires.
-
-
Returns:
New GEOM_Object, containing the created wire.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeFace (  self,
  theWire,
  isPlanarWanted 
)
-
-
- -

-

Parameters:
- - - -
theWire closed Wire or Edge to build the face on.
isPlanarWanted If TRUE, only planar face will be built. If impossible, NULL object will be returned.
-
-
Returns:
New GEOM_Object, containing the created face.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeFaceWires (  self,
  theWires,
  isPlanarWanted 
)
-
-
- -

-

Parameters:
- - - -
theWires List of closed wires or edges to build the face on.
isPlanarWanted If TRUE, only planar face will be built. If impossible, NULL object will be returned.
-
-
Returns:
New GEOM_Object, containing the created face.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeFaces (  self,
  theWires,
  isPlanarWanted 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeShell (  self,
  theFacesAndShells 
)
-
-
- -

-

Parameters:
- - -
theFacesAndShells List of faces and/or shells.
-
-
Returns:
New GEOM_Object, containing the created shell.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeSolid (  self,
  theShells 
)
-
-
- -

-

Parameters:
- - -
theShells Sequence of bounding shells.
-
-
Returns:
New GEOM_Object, containing the created solid.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeCompound (  self,
  theShapes 
)
-
-
- -

-

Parameters:
- - -
theShapes List of shapes to put in compound.
-
-
Returns:
New GEOM_Object, containing the created compound.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.NumberOfFaces (  self,
  theShape 
)
-
-
- -

-

Parameters:
- - -
theShape Shape to count faces of.
-
-
Returns:
Quantity of faces.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.NumberOfEdges (  self,
  theShape 
)
-
-
- -

-

Parameters:
- - -
theShape Shape to count edges of.
-
-
Returns:
Quantity of edges.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.ChangeOrientation (  self,
  theShape 
)
-
-
- -

-

Parameters:
- - -
theShape Shape to be reversed.
-
-
Returns:
The reversed copy of theShape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.OrientationChange (  self,
  theShape 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetFreeFacesIDs (  self,
  theShape 
)
-
-
- -

-Free face is a face, which is not shared between two shells of the shape.

Parameters:
- - -
theShape Shape to find free faces in.
-
-
Returns:
List of IDs of all free faces, contained in theShape.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetSharedShapes (  self,
  theShape1,
  theShape2,
  theShapeType 
)
-
-
- -

-

Parameters:
- - - - -
theShape1 Shape to find sub-shapes in.
theShape2 Shape to find shared sub-shapes with.
theShapeType Type of sub-shapes to be retrieved.
-
-
Returns:
List of sub-shapes of theShape1, shared with theShape2.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnPlane (  self,
  theShape,
  theShapeType,
  theAx1,
  theState 
)
-
-
- -

-

Parameters:
- - - - - -
theShape Shape to find sub-shapes of.
theShapeType Type of sub-shapes to be retrieved.
theAx1 Vector (or line, or linear edge), specifying normal direction and location of the plane to find shapes on.
theState The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
-
-
Returns:
List of all found sub-shapes.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnPlaneIDs (  self,
  theShape,
  theShapeType,
  theAx1,
  theState 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnPlaneWithLocation (  self,
  theShape,
  theShapeType,
  theAx1,
  thePnt,
  theState 
)
-
-
- -

-

Parameters:
- - - - - - -
theShape Shape to find sub-shapes of.
theShapeType Type of sub-shapes to be retrieved.
theAx1 Vector (or line, or linear edge), specifying normal direction of the plane to find shapes on.
thePnt Point specifying location of the plane to find shapes on.
theState The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
-
-
Returns:
List of all found sub-shapes.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnPlaneWithLocationIDs (  self,
  theShape,
  theShapeType,
  theAx1,
  thePnt,
  theState 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnCylinder (  self,
  theShape,
  theShapeType,
  theAxis,
  theRadius,
  theState 
)
-
-
- -

-

Parameters:
- - - - - - -
theShape Shape to find sub-shapes of.
theShapeType Type of sub-shapes to be retrieved.
theAxis Vector (or line, or linear edge), specifying axis of the cylinder to find shapes on.
theRadius Radius of the cylinder to find shapes on.
theState The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
-
-
Returns:
List of all found sub-shapes.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnCylinderIDs (  self,
  theShape,
  theShapeType,
  theAxis,
  theRadius,
  theState 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnSphere (  self,
  theShape,
  theShapeType,
  theCenter,
  theRadius,
  theState 
)
-
-
- -

-

Parameters:
- - - - - - -
theShape Shape to find sub-shapes of.
theShapeType Type of sub-shapes to be retrieved.
theCenter Point, specifying center of the sphere to find shapes on.
theRadius Radius of the sphere to find shapes on.
theState The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
-
-
Returns:
List of all found sub-shapes.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnSphereIDs (  self,
  theShape,
  theShapeType,
  theCenter,
  theRadius,
  theState 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnQuadrangle (  self,
  theShape,
  theShapeType,
  theTopLeftPoint,
  theTopRigthPoint,
  theBottomLeftPoint,
  theBottomRigthPoint,
  theState 
)
-
-
- -

-

Parameters:
- - - - - - - - -
theShape Shape to find sub-shapes of.
theShapeType Type of sub-shapes to be retrieved.
theTopLeftPoint Point, specifying top left corner of a quadrangle
theTopRigthPoint Point, specifying top right corner of a quadrangle
theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
theState The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
-
-
Returns:
List of all found sub-shapes.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnQuadrangleIDs (  self,
  theShape,
  theShapeType,
  theTopLeftPoint,
  theTopRigthPoint,
  theBottomLeftPoint,
  theBottomRigthPoint,
  theState 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnBox (  self,
  theBox,
  theShape,
  theShapeType,
  theState 
)
-
-
- -

-

Parameters:
- - - - - -
theBox Shape for relative comparing.
theShape Shape to find sub-shapes of.
theShapeType Type of sub-shapes to be retrieved.
theState The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
-
-
Returns:
List of all found sub-shapes.
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetShapesOnBoxIDs (  self,
  theBox,
  theShape,
  theShapeType,
  theState 
)
-
-
- -

- -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetInPlace (  self,
  theShapeWhere,
  theShapeWhat 
)
-
-
- -

-

Parameters:
- - - -
theShapeWhere Shape to find sub-shapes of.
theShapeWhat Shape, specifying what to find.
-
-
Returns:
Group of all found sub-shapes or a single found sub-shape.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetSame (  self,
  theShapeWhere,
  theShapeWhat 
)
-
-
- -

-

Parameters:
- - - -
theShapeWhere Shape to find sub-shape of.
theShapeWhat Shape, specifying what to find.
-
-
Returns:
New GEOM_Object for found sub-shape.
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetSubShape (  self,
  aShape,
  ListOfID 
)
-
-
- -

-Example: see GEOM_TestAll.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetSubShapeID (  self,
  aShape,
  aSubShape 
)
-
-
- -

-Example: see GEOM_TestAll.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.SubShapeAll (  self,
  aShape,
  aType 
)
-
-
- -

-

Parameters:
- - - -
theShape Shape to be exploded.
theShapeType Type of sub-shapes to be retrieved.
-
-
Returns:
List of sub-shapes of type theShapeType, contained in theShape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.SubShapeAllIDs (  self,
  aShape,
  aType 
)
-
-
- -

-

Parameters:
- - - -
theShape Shape to be exploded.
theShapeType Type of sub-shapes to be retrieved.
-
-
Returns:
List of IDs of sub-shapes.
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.SubShapeAllSorted (  self,
  aShape,
  aType 
)
-
-
- -

-Sub-shapes will be sorted by coordinates of their gravity centers.

Parameters:
- - - -
theShape Shape to be exploded.
theShapeType Type of sub-shapes to be retrieved.
-
-
Returns:
List of sub-shapes of type theShapeType, contained in theShape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.SubShapeAllSortedIDs (  self,
  aShape,
  aType 
)
-
-
- -

-Sub-shapes will be sorted by coordinates of their gravity centers.

Parameters:
- - - -
theShape Shape to be exploded.
theShapeType Type of sub-shapes to be retrieved.
-
-
Returns:
List of IDs of sub-shapes.
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.SubShape (  self,
  aShape,
  aType,
  ListOfInd 
)
-
-
- -

-Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]

-Example: see GEOM_TestAll.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.SubShapeSorted (  self,
  aShape,
  aType,
  ListOfInd 
)
-
-
- -

-Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type]

-Example: see GEOM_TestAll.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.ProcessShape (  self,
  theShape,
  theOperators,
  theParameters,
  theValues 
)
-
-
- -

-

Parameters:
- - - - - -
theShape Shape to be processed.
theOperators List of names of operators ("FixShape", "SplitClosedFaces", etc.).
theParameters List of names of parameters ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.).
theValues List of values of parameters, in the same order as parameters are listed in theParameters list.
-
-
Returns:
New GEOM_Object, containing processed shape.
-Example: see GEOM_TestHealing.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.SuppressFaces (  self,
  theObject,
  theFaces 
)
-
-
- -

-

Parameters:
- - - -
theObject Shape to be processed.
theFaces Indices of faces to be removed, if EMPTY then the method removes ALL faces of the given object.
-
-
Returns:
New GEOM_Object, containing processed shape.
-Example: see GEOM_TestHealing.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeSewing (  self,
  ListShape,
  theTolerance 
)
-
-
- -

-Example: see GEOM_TestHealing.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.Sew (  self,
  theObject,
  theTolerance 
)
-
-
- -

-

Parameters:
- - - -
theObject Shape to be processed.
theTolerance Required tolerance value.
-
-
Returns:
New GEOM_Object, containing processed shape.
-Example: see MakeSewing() above -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.SuppressInternalWires (  self,
  theObject,
  theWires 
)
-
-
- -

-

Parameters:
- - - -
theObject Shape to be processed.
theWires Indices of wires to be removed, if EMPTY then the method removes ALL internal wires of the given object.
-
-
Returns:
New GEOM_Object, containing processed shape.
-Example: see GEOM_TestHealing.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.SuppressHoles (  self,
  theObject,
  theWires 
)
-
-
- -

-

Parameters:
- - - -
theObject Shape to be processed.
theWires Indices of wires to be removed, if EMPTY then the method removes ALL internal holes of the given object
-
-
Returns:
New GEOM_Object, containing processed shape.
-Example: see GEOM_TestHealing.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.CloseContour (  self,
  theObject,
  theWires,
  isCommonVertex 
)
-
-
- -

-

Parameters:
- - - - -
theObject Shape to be processed.
theWires Indexes of edge(s) and wire(s) to be closed within theObject's shape, if -1, then theObject itself is a wire.
isCommonVertex If TRUE : closure by creation of a common vertex, If FALS : closure by creation of an edge between ends.
-
-
Returns:
New GEOM_Object, containing processed shape.
-Example: see GEOM_TestHealing.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.DivideEdge (  self,
  theObject,
  theEdgeIndex,
  theValue,
  isByParameter 
)
-
-
- -

-

Parameters:
- - - - - -
theObject Shape to be processed.
theEdgeIndex Index of edge to be divided within theObject's shape, if -1, then theObject itself is the edge.
theValue Value of parameter on edge or length parameter, depending on isByParameter.
isByParameter If TRUE : theValue is treated as a curve parameter [0..1], if FALSE : theValue is treated as a length parameter [0..1]
-
-
Returns:
New GEOM_Object, containing processed shape.
-Example: see GEOM_TestHealing.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.ChangeOrientationShell (  self,
  theObject 
)
-
-
- -

-

Parameters:
- - -
theObject Shape to be processed. given shape
-
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.ChangeOrientationShellCopy (  self,
  theObject 
)
-
-
- -

-

Parameters:
- - -
theObject Shape to be processed.
-
-
Returns:
New GEOM_Object, containing processed shape.
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetFreeBoundary (  self,
  theObject 
)
-
-
- -

-

Parameters:
- - -
theObject Shape to get free boundary of.
-
-
Returns:
[status, theClosedWires, theOpenWires] status: FALSE, if an error(s) occured during the method execution. theClosedWires: Closed wires on the free boundary of the given shape. theOpenWires: Open wires on the free boundary of the given shape.
-Example: see GEOM_TestHealing.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeCopy (  self,
  theOriginal 
)
-
-
- -

-Example: see GEOM_TestAll.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeFilling (  self,
  theShape,
  theMinDeg,
  theMaxDeg,
  theTol2D,
  theTol3D,
  theNbIter 
)
-
-
- -

-

Parameters:
- - - - - - - -
theShape the compound of contours
theMinDeg a minimal degree
theMaxDeg a maximal degree
theTol2D a 2d tolerance
theTol3D a 3d tolerance
theNbIter a number of iteration
-
-
Returns:
New GEOM_Object, containing the created filling surface.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeGlueFaces (  self,
  theShape,
  theTolerance 
)
-
-
- -

-

Parameters:
- - - -
theShape Initial shape.
theTolerance Maximum distance between faces, which can be considered as coincident.
-
-
Returns:
New GEOM_Object, containing a copy of theShape without coincident faces.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetGlueFaces (  self,
  theShape,
  theTolerance 
)
-
-
- -

-

Parameters:
- - - -
theShape Initial shape.
theTolerance Maximum distance between faces, which can be considered as coincident.
-
-
Returns:
ListOfGO.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeGlueFacesByList (  self,
  theShape,
  theTolerance,
  theFaces 
)
-
-
- -

-

Parameters:
- - - - -
theShape Initial shape.
theTolerance Maximum distance between faces, which can be considered as coincident.
theFaces List of faces for gluing.
-
-
Returns:
New GEOM_Object, containing a copy of theShape without some faces.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeBoolean (  self,
  theShape1,
  theShape2,
  theOperation 
)
-
-
- -

-

Parameters:
- - - - -
theShape1 First argument for boolean operation.
theShape2 Second argument for boolean operation.
theOperation Indicates the operation to be done: 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section.
-
-
Returns:
New GEOM_Object, containing the result shape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeCommon (  self,
  s1,
  s2 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeCut (  self,
  s1,
  s2 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeFuse (  self,
  s1,
  s2 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeSection (  self,
  s1,
  s2 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePartition (  self,
  ListShapes,
  ListTools = [],
  ListKeepInside = [],
  ListRemoveInside = [],
  Limit = ShapeType["SHAPE"],
  RemoveWebs = 0,
  ListMaterials = [] 
)
-
-
- -

-

Parameters:
- - - - -
ListShapes Shapes to be intersected.
ListTools Shapes to intersect theShapes. !!!NOTE: Each compound from ListShapes and ListTools will be exploded in order to avoid possible intersection between shapes from this compound.
Limit Type of resulting shapes (corresponding to TopAbs_ShapeEnum).
-
-After implementation new version of PartitionAlgo (October 2006) other parameters are ignored by current functionality. They are kept in this function only for support old versions. Ignored parameters:
Parameters:
- - - - - -
ListKeepInside Shapes, outside which the results will be deleted. Each shape from theKeepInside must belong to theShapes also.
ListRemoveInside Shapes, inside which the results will be deleted. Each shape from theRemoveInside must belong to theShapes also.
RemoveWebs If TRUE, perform Glue 3D algorithm.
ListMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
-
-
Returns:
New GEOM_Object, containing the result shapes.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePartitionNonSelfIntersectedShape (  self,
  ListShapes,
  ListTools = [],
  ListKeepInside = [],
  ListRemoveInside = [],
  Limit = ShapeType["SHAPE"],
  RemoveWebs = 0,
  ListMaterials = [] 
)
-
-
- -

-This method may be useful if it is needed to make a partition for compound contains nonintersected shapes. Performance will be better since intersection between shapes from compound is not performed.

-Description of all parameters as in previous method MakePartition()

-!!!NOTE: Passed compounds (via ListShapes or via ListTools) have to consist of nonintersecting shapes.

-

Returns:
New GEOM_Object, containing the result shapes.
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.Partition (  self,
  ListShapes,
  ListTools = [],
  ListKeepInside = [],
  ListRemoveInside = [],
  Limit = ShapeType["SHAPE"],
  RemoveWebs = 0,
  ListMaterials = [] 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeHalfPartition (  self,
  theShape,
  thePlane 
)
-
-
- -

-

Parameters:
- - - -
theShape Shape to be intersected.
thePlane Tool shape, to intersect theShape.
-
-
Returns:
New GEOM_Object, containing the result shape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeTranslationTwoPoints (  self,
  theObject,
  thePoint1,
  thePoint2 
)
-
-
- -

-

Parameters:
- - - - -
theObject The object to be translated.
thePoint1 Start point of translation vector.
thePoint2 End point of translation vector.
-
-
Returns:
New GEOM_Object, containing the translated object.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeTranslation (  self,
  theObject,
  theDX,
  theDY,
  theDZ 
)
-
-
- -

-

Parameters:
- - - -
theObject The object to be translated.
theDX,theDY,theDZ Components of translation vector.
-
-
Returns:
New GEOM_Object, containing the translated object.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeTranslationVector (  self,
  theObject,
  theVector 
)
-
-
- -

-

Parameters:
- - - -
theObject The object to be translated.
theVector The translation vector.
-
-
Returns:
New GEOM_Object, containing the translated object.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeRotation (  self,
  theObject,
  theAxis,
  theAngle 
)
-
-
- -

-

Parameters:
- - - - -
theObject The object to be rotated.
theAxis Rotation axis.
theAngle Rotation angle in radians.
-
-
Returns:
New GEOM_Object, containing the rotated object.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeRotationThreePoints (  self,
  theObject,
  theCentPoint,
  thePoint1,
  thePoint2 
)
-
-
- -

-

Parameters:
- - - - -
theObject The object to be rotated.
theCentPoint central point - the axis is the vector perpendicular to the plane containing the three points.
thePoint1 and thePoint2 - in a perpendicular plan of the axis.
-
-
Returns:
New GEOM_Object, containing the rotated object.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeScaleTransform (  self,
  theObject,
  thePoint,
  theFactor 
)
-
-
- -

-

Parameters:
- - - - -
theObject The object to be scaled.
thePoint Center point for scaling.
theFactor Scaling factor value.
-
-
Returns:
New GEOM_Object, containing the scaled shape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeMirrorByPlane (  self,
  theObject,
  thePlane 
)
-
-
- -

-

Parameters:
- - - -
theObject The object to be mirrored.
thePlane Plane of symmetry.
-
-
Returns:
New GEOM_Object, containing the mirrored shape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeMirrorByAxis (  self,
  theObject,
  theAxis 
)
-
-
- -

-

Parameters:
- - - -
theObject The object to be mirrored.
theAxis Axis of symmetry.
-
-
Returns:
New GEOM_Object, containing the mirrored shape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeMirrorByPoint (  self,
  theObject,
  thePoint 
)
-
-
- -

-

Parameters:
- - - -
theObject The object to be mirrored.
thePoint Point of symmetry.
-
-
Returns:
New GEOM_Object, containing the mirrored shape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakePosition (  self,
  theObject,
  theStartLCS,
  theEndLCS 
)
-
-
- -

-

Parameters:
- - - - -
theObject The object to be displaced.
theStartLCS Coordinate system to perform displacement from it. If theStartLCS is NULL, displacement will be performed from global CS. If theObject itself is used as theStartLCS, its location will be changed to theEndLCS.
theEndLCS Coordinate system to perform displacement to it.
-
-
Returns:
New GEOM_Object, containing the displaced shape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeOffset (  self,
  theObject,
  theOffset 
)
-
-
- -

-

Parameters:
- - - -
theObject The base object for the offset.
theOffset Offset value.
-
-
Returns:
New GEOM_Object, containing the offset object.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeMultiTranslation1D (  self,
  theObject,
  theVector,
  theStep,
  theNbTimes 
)
-
-
- -

-

Parameters:
- - - - - -
theObject The object to be translated.
theVector Direction of the translation.
theStep Distance to translate on.
theNbTimes Quantity of translations to be done.
-
-
Returns:
New GEOM_Object, containing compound of all the shapes, obtained after each translation.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeMultiTranslation2D (  self,
  theObject,
  theVector1,
  theStep1,
  theNbTimes1,
  theVector2,
  theStep2,
  theNbTimes2 
)
-
-
- -

-

Parameters:
- - - - - - - - -
theObject The object to be translated.
theVector1 Direction of the first translation.
theStep1 Step of the first translation.
theNbTimes1 Quantity of translations to be done along theVector1.
theVector2 Direction of the second translation.
theStep2 Step of the second translation.
theNbTimes2 Quantity of translations to be done along theVector2.
-
-
Returns:
New GEOM_Object, containing compound of all the shapes, obtained after each translation.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MultiRotate1D (  self,
  theObject,
  theAxis,
  theNbTimes 
)
-
-
- -

-Rotation angle will be 2*PI/theNbTimes.

Parameters:
- - - - -
theObject The object to be rotated.
theAxis The rotation axis.
theNbTimes Quantity of rotations to be done.
-
-
Returns:
New GEOM_Object, containing compound of all the shapes, obtained after each rotation.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MultiRotate2D (  self,
  theObject,
  theAxis,
  theAngle,
  theNbTimes1,
  theStep,
  theNbTimes2 
)
-
-
- -

-Translation direction passes through center of gravity of rotated shape and its projection on the rotation axis.

Parameters:
- - - - - - - -
theObject The object to be rotated.
theAxis Rotation axis.
theAngle Rotation angle in graduces.
theNbTimes1 Quantity of rotations to be done.
theStep Translation distance.
theNbTimes2 Quantity of translations to be done.
-
-
Returns:
New GEOM_Object, containing compound of all the shapes, obtained after each transformation.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeMultiRotation1D (  self,
  aShape,
  aDir,
  aPoint,
  aNbTimes 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeMultiRotation2D (  self,
  aShape,
  aDir,
  aPoint,
  anAngle,
  nbtimes1,
  aStep,
  nbtimes2 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeFilletAll (  self,
  theShape,
  theR 
)
-
-
- -

-

Parameters:
- - - -
theShape Shape, to perform fillet on.
theR Fillet radius.
-
-
Returns:
New GEOM_Object, containing the result shape.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeFillet (  self,
  theShape,
  theR,
  theShapeType,
  theListShapes 
)
-
-
- -

-

Parameters:
- - - - - -
theShape Shape, to perform fillet on.
theR Fillet radius.
theShapeType Type of shapes in <theListShapes>.
theListShapes Global indices of edges/faces to perform fillet on.
-
-
Note:
Global index of sub-shape can be obtained, using method geompy.GetSubShapeID().
-
Returns:
New GEOM_Object, containing the result shape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeChamferAll (  self,
  theShape,
  theD 
)
-
-
- -

-

Parameters:
- - - -
theShape Shape, to perform chamfer on.
theD Chamfer size along each face.
-
-
Returns:
New GEOM_Object, containing the result shape.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeChamferEdge (  self,
  theShape,
  theD1,
  theD2,
  theFace1,
  theFace2 
)
-
-
- -

-

Parameters:
- - - - - -
theShape Shape, to perform chamfer on.
theD1 Chamfer size along theFace1.
theD2 Chamfer size along theFace2.
theFace1,theFace2 Global indices of two faces of theShape.
-
-
Note:
Global index of sub-shape can be obtained, using method geompy.GetSubShapeID().
-
Returns:
New GEOM_Object, containing the result shape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeChamferFaces (  self,
  theShape,
  theD1,
  theD2,
  theFaces 
)
-
-
- -

-

Parameters:
- - - - - -
theShape Shape, to perform chamfer on.
theD1 Chamfer size along face from theFaces. If both faces, connected to the edge, are in theFaces, theD1 will be get along face, which is nearer to theFaces beginning.
theD2 Chamfer size along another of two faces, connected to the edge.
theFaces Sequence of global indices of faces of theShape.
-
-
Note:
Global index of sub-shape can be obtained, using method geompy.GetSubShapeID().
-
Returns:
New GEOM_Object, containing the result shape.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeChamfer (  self,
  aShape,
  d1,
  d2,
  aShapeType,
  ListShape 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.Archimede (  self,
  theShape,
  theWeight,
  theWaterDensity,
  theMeshDeflection 
)
-
-
- -

-The object presenting the resulting face is returned.

Parameters:
- - - - - -
theShape Shape to be put in water.
theWeight Weight og the shape.
theWaterDensity Density of the water.
theMeshDeflection Deflection of the mesh, using to compute the section.
-
-
Returns:
New GEOM_Object, containing a section of theShape by a plane, corresponding to water level.
-Example: see GEOM_TestAll.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.PointCoordinates (  self,
  Point 
)
-
-
- -

-

Returns:
[x, y, z]
-Example: see GEOM_TestMeasures.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.BasicProperties (  self,
  theShape 
)
-
-
- -

-

Parameters:
- - -
theShape Shape to define properties of.
-
-
Returns:
[theLength, theSurfArea, theVolume] theLength: Summarized length of all wires of the given shape. theSurfArea: Area of surface of the given shape. theVolume: Volume of the given shape.
-Example: see GEOM_TestMeasures.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.BoundingBox (  self,
  theShape 
)
-
-
- -

-

Parameters:
- - -
theShape Shape to obtain bounding box of.
-
-
Returns:
[Xmin,Xmax, Ymin,Ymax, Zmin,Zmax] Xmin,Xmax: Limits of shape along OX axis. Ymin,Ymax: Limits of shape along OY axis. Zmin,Zmax: Limits of shape along OZ axis.
-Example: see GEOM_TestMeasures.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.Inertia (  self,
  theShape 
)
-
-
- -

-

Parameters:
- - -
theShape Shape to calculate inertia of.
-
-
Returns:
[I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz] I(1-3)(1-3): Components of the inertia matrix of the given shape. Ix,Iy,Iz: Moments of inertia of the given shape.
-Example: see GEOM_TestMeasures.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MinDistance (  self,
  theShape1,
  theShape2 
)
-
-
- -

-

Parameters:
- - -
theShape1,theShape2 Shapes to find minimal distance between.
-
-
Returns:
Value of the minimal distance between the given shapes.
-Example: see GEOM_TestMeasures.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.Tolerance (  self,
  theShape 
)
-
-
- -

-

Parameters:
- - -
theShape Shape, to get tolerances of.
-
-
Returns:
[FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax] FaceMin,FaceMax: Min and max tolerances of the faces. EdgeMin,EdgeMax: Min and max tolerances of the edges. VertMin,VertMax: Min and max tolerances of the vertices.
-Example: see GEOM_TestMeasures.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.WhatIs (  self,
  theShape 
)
-
-
- -

-

Parameters:
- - -
theShape Shape to be described.
-
-
Returns:
Description of the given shape.
-Example: see GEOM_TestMeasures.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeCDG (  self,
  theShape 
)
-
-
- -

-

Parameters:
- - -
theShape Shape to define centre of mass of.
-
-
Returns:
New GEOM_Object, containing the created point.
-Example: see GEOM_TestMeasures.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.CheckShape (  self,
  theShape,
  theIsCheckGeom = 0 
)
-
-
- -

-

Parameters:
- - - -
theShape Shape to check validity of.
theIsCheckGeom If FALSE, only the shape's topology will be checked, if TRUE, the shape's geometry will be checked also.
-
-
Returns:
TRUE, if the shape "seems to be valid". If theShape is invalid, prints a description of problem.
-Example: see GEOM_TestMeasures.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetPosition (  self,
  theShape 
)
-
-
- -

-Origin of the LCS is situated at the shape's center of mass. Axes of the LCS are obtained from shape's location or, if the shape is a planar face, from position of its plane.

-

Parameters:
- - -
theShape Shape to calculate position of.
-
-
Returns:
[Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz]. Ox,Oy,Oz: Coordinates of shape's LCS origin. Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction. Xx,Xy,Xz: Coordinates of shape's LCS X direction.
-Example: see GEOM_TestMeasures.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.KindOfShape (  self,
  theShape 
)
-
-
- -

-

Parameters:
- - -
theShape Shape to get a kind of.
-
-
Returns:
Returns a kind of shape in terms of GEOM_IKindOfShape.shape_kind enumeration and a list of parameters, describing the shape.
-
Note:
Concrete meaning of each value, returned via theIntegers or theDoubles list depends on the kind of the shape. The full list of possible outputs is:
-geompy.kind.COMPOUND nb_solids nb_faces nb_edges nb_vertices geompy.kind.COMPSOLID nb_solids nb_faces nb_edges nb_vertices

-geompy.kind.SHELL geompy.info.CLOSED nb_faces nb_edges nb_vertices geompy.kind.SHELL geompy.info.UNCLOSED nb_faces nb_edges nb_vertices

-geompy.kind.WIRE geompy.info.CLOSED nb_edges nb_vertices geompy.kind.WIRE geompy.info.UNCLOSED nb_edges nb_vertices

-geompy.kind.SPHERE xc yc zc R geompy.kind.CYLINDER xb yb zb dx dy dz R H geompy.kind.BOX xc yc zc ax ay az geompy.kind.ROTATED_BOX xc yc zc zx zy zz xx xy xz ax ay az geompy.kind.TORUS xc yc zc dx dy dz R_1 R_2 geompy.kind.CONE xb yb zb dx dy dz R_1 R_2 H geompy.kind.POLYHEDRON nb_faces nb_edges nb_vertices geompy.kind.SOLID nb_faces nb_edges nb_vertices

-geompy.kind.SPHERE2D xc yc zc R geompy.kind.CYLINDER2D xb yb zb dx dy dz R H geompy.kind.TORUS2D xc yc zc dx dy dz R_1 R_2 geompy.kind.CONE2D xc yc zc dx dy dz R_1 R_2 H geompy.kind.DISK_CIRCLE xc yc zc dx dy dz R geompy.kind.DISK_ELLIPSE xc yc zc dx dy dz R_1 R_2 geompy.kind.POLYGON xo yo zo dx dy dz nb_edges nb_vertices geompy.kind.PLANE xo yo zo dx dy dz geompy.kind.PLANAR xo yo zo dx dy dz nb_edges nb_vertices geompy.kind.FACE nb_edges nb_vertices

-geompy.kind.CIRCLE xc yc zc dx dy dz R geompy.kind.ARC_CIRCLE xc yc zc dx dy dz R x1 y1 z1 x2 y2 z2 geompy.kind.ELLIPSE xc yc zc dx dy dz R_1 R_2 geompy.kind.ARC_ELLIPSE xc yc zc dx dy dz R_1 R_2 x1 y1 z1 x2 y2 z2 geompy.kind.LINE xo yo zo dx dy dz geompy.kind.SEGMENT x1 y1 z1 x2 y2 z2 geompy.kind.EDGE nb_vertices

-geompy.kind.VERTEX x y z

-Example: see GEOM_TestMeasures.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.Import (  self,
  theFileName,
  theFormatName 
)
-
-
- -

-

Parameters:
- - - -
theFileName The file, containing the shape.
theFormatName Specify format for the file reading. Available formats can be obtained with InsertOp.ImportTranslators() method.
-
-
Returns:
New GEOM_Object, containing the imported shape.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.ImportBREP (  self,
  theFileName 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.ImportIGES (  self,
  theFileName 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.ImportSTEP (  self,
  theFileName 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.Export (  self,
  theObject,
  theFileName,
  theFormatName 
)
-
-
- -

-

Parameters:
- - - - -
theObject Shape to be stored in the file.
theFileName Name of the file to store the given shape in.
theFormatName Specify format for the shape storage. Available formats can be obtained with InsertOp.ImportTranslators() method.
-
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.ExportBREP (  self,
  theObject,
  theFileName 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.ExportIGES (  self,
  theObject,
  theFileName 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.ExportSTEP (  self,
  theObject,
  theFileName 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeQuad (  self,
  E1,
  E2,
  E3,
  E4 
)
-
-
- -

-Order of Edges is not important. It is not necessary that edges share the same vertex.

Parameters:
- - -
E1,E2,E3,E4 Edges for the face bound.
-
-
Returns:
New GEOM_Object, containing the created face.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeQuad2Edges (  self,
  E1,
  E2 
)
-
-
- -

-The missing edges will be built by creating the shortest ones.

Parameters:
- - -
E1,E2 Two opposite edges for the face.
-
-
Returns:
New GEOM_Object, containing the created face.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeQuad4Vertices (  self,
  V1,
  V2,
  V3,
  V4 
)
-
-
- -

-The missing edges will be built by creating the shortest ones.

Parameters:
- - -
V1,V2,V3,V4 Corner vertices for the face.
-
-
Returns:
New GEOM_Object, containing the created face.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeHexa (  self,
  F1,
  F2,
  F3,
  F4,
  F5,
  F6 
)
-
-
- -

-Order of faces is not important. It is not necessary that Faces share the same edge.

Parameters:
- - -
F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid.
-
-
Returns:
New GEOM_Object, containing the created solid.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeHexa2Faces (  self,
  F1,
  F2 
)
-
-
- -

-The missing faces will be built by creating the smallest ones.

Parameters:
- - -
F1,F2 Two opposite faces for the hexahedral solid.
-
-
Returns:
New GEOM_Object, containing the created solid.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetPoint (  self,
  theShape,
  theX,
  theY,
  theZ,
  theEpsilon 
)
-
-
- -

-

Parameters:
- - - - -
theShape Block or a compound of blocks.
theX,theY,theZ Coordinates of the sought vertex.
theEpsilon Maximum allowed distance between the resulting vertex and point with the given coordinates.
-
-
Returns:
New GEOM_Object, containing the found vertex.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetEdge (  self,
  theShape,
  thePoint1,
  thePoint2 
)
-
-
- -

-

Parameters:
- - - -
theShape Block or a compound of blocks.
thePoint1,thePoint2 Points, close to the ends of the desired edge.
-
-
Returns:
New GEOM_Object, containing the found edge.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetEdgeNearPoint (  self,
  theShape,
  thePoint 
)
-
-
- -

-

Parameters:
- - - -
theShape Block or a compound of blocks.
thePoint Point, close to the desired edge.
-
-
Returns:
New GEOM_Object, containing the found edge.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetFaceByPoints (  self,
  theShape,
  thePoint1,
  thePoint2,
  thePoint3,
  thePoint4 
)
-
-
- -

-

Parameters:
- - - -
theShape Block or a compound of blocks.
thePoint1-thePoint4 Points, close to the corners of the desired face.
-
-
Returns:
New GEOM_Object, containing the found face.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetFaceByEdges (  self,
  theShape,
  theEdge1,
  theEdge2 
)
-
-
- -

-

Parameters:
- - - -
theShape Block or a compound of blocks.
theEdge1,theEdge2 Edges, close to the edges of the desired face.
-
-
Returns:
New GEOM_Object, containing the found face.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetOppositeFace (  self,
  theBlock,
  theFace 
)
-
-
- -

-

Parameters:
- - - -
theBlock Must be a hexahedral solid.
theFace Face of theBlock, opposite to the desired face.
-
-
Returns:
New GEOM_Object, containing the found face.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetFaceNearPoint (  self,
  theShape,
  thePoint 
)
-
-
- -

-

Parameters:
- - - -
theShape Block or a compound of blocks.
thePoint Point, close to the desired face.
-
-
Returns:
New GEOM_Object, containing the found face.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetFaceByNormale (  self,
  theBlock,
  theVector 
)
-
-
- -

-

Parameters:
- - - -
theShape Block or a compound of blocks.
theVector Vector, close to the normale of the desired face.
-
-
Returns:
New GEOM_Object, containing the found face.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.CheckCompoundOfBlocks (  self,
  theCompound 
)
-
-
- -

-To be considered as a compound of blocks, the given shape must satisfy the following conditions:

    -
  • Each element of the compound should be a Block (6 faces and 12 edges).
  • A connection between two Blocks should be an entire quadrangle face or an entire edge.
  • The compound should be connexe.
  • The glue between two quadrangle faces should be applied.
    Parameters:
    - - -
    theCompound The compound to check.
    -
    -
    Returns:
    TRUE, if the given shape is a compound of blocks. If theCompound is not valid, prints all discovered errors.
    -Example: see GEOM_Spanner.py
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.RemoveExtraEdges (  self,
  theShape 
)
-
-
- -

-Unite faces and edges, sharing one surface. It means that this faces must have references to one C++ surface object (handle).

Parameters:
- - -
theShape The compound or single solid to remove irregular edges from.
-
-
Returns:
Improved shape.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.CheckAndImprove (  self,
  theShape 
)
-
-
- -

-Fix all detected errors.

Note:
Single block can be also fixed by this method.
-
Parameters:
- - -
theCompound The compound to check and improve.
-
-
Returns:
Improved compound.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeBlockExplode (  self,
  theCompound,
  theMinNbFaces,
  theMaxNbFaces 
)
-
-
- -

-

Parameters:
- - - - -
theCompound The compound to explode.
theMinNbFaces If solid has lower number of faces, it is not a block.
theMaxNbFaces If solid has higher number of faces, it is not a block.
-
-
Note:
If theMaxNbFaces = 0, the maximum number of faces is not restricted.
-
Returns:
List of GEOM_Objects, containing the retrieved blocks.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetBlockNearPoint (  self,
  theCompound,
  thePoint 
)
-
-
- -

-

Parameters:
- - - -
theCompound Compound, to find block in.
thePoint Point, close to the desired block. If the point lays on boundary between some blocks, we return block with nearest center.
-
-
Returns:
New GEOM_Object, containing the found block.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetBlockByParts (  self,
  theCompound,
  theParts 
)
-
-
- -

-

Parameters:
- - - -
theCompound Compound, to find block in.
theParts List of faces and/or edges and/or vertices to be parts of the found block.
-
-
Returns:
New GEOM_Object, containing the found block.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetBlocksByParts (  self,
  theCompound,
  theParts 
)
-
-
- -

-

Parameters:
- - - -
theCompound Compound, to find blocks in.
theParts List of faces and/or edges and/or vertices to be parts of the found blocks.
-
-
Returns:
List of GEOM_Objects, containing the found blocks.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeMultiTransformation1D (  self,
  Block,
  DirFace1,
  DirFace2,
  NbTimes 
)
-
-
- -

-Transformation is defined so, as to superpose direction faces.

Parameters:
- - - - - -
Block Hexahedral solid to be multi-transformed.
DirFace1 ID of First direction face.
DirFace2 ID of Second direction face.
NbTimes Quantity of transformations to be done.
-
-
Note:
Unique ID of sub-shape can be obtained, using method GetSubShapeID().
-
Returns:
New GEOM_Object, containing the result shape.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.MakeMultiTransformation2D (  self,
  Block,
  DirFace1U,
  DirFace2U,
  NbTimesU,
  DirFace1V,
  DirFace2V,
  NbTimesV 
)
-
-
- -

-

Parameters:
- - - - - -
Block Hexahedral solid to be multi-transformed.
DirFace1U,DirFace2U IDs of Direction faces for the first transformation.
DirFace1V,DirFace2V IDs of Direction faces for the second transformation.
NbTimesU,NbTimesV Quantity of transformations to be done.
-
-
Returns:
New GEOM_Object, containing the result shape.
-Example: see GEOM_Spanner.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.Propagate (  self,
  theShape 
)
-
-
- -

-Propagation group is a set of all edges, opposite to one (main) edge of this group directly or through other opposite edges. Notion of Opposite Edge make sence only on quadrangle face.

Parameters:
- - -
theShape Shape to build propagation groups on.
-
-
Returns:
List of GEOM_Objects, each of them is a propagation group.
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.CreateGroup (  self,
  theMainShape,
  theShapeType 
)
-
-
- -

-

Parameters:
- - - -
theMainShape is a GEOM object on which the group is selected
theShapeType defines a shape type of the group
-
-
Returns:
a newly created GEOM group
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.AddObject (  self,
  theGroup,
  theSubShapeID 
)
-
-
- -

-

Parameters:
- - - -
theGroup is a GEOM group to which the new sub shape is added
theSubShapeID is a sub shape ID in the main object.
-
-
Note:
Use method GetSubShapeID() to get an unique ID of the sub shape
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.RemoveObject (  self,
  theGroup,
  theSubShapeID 
)
-
-
- -

-

Parameters:
- - - -
theGroup is a GEOM group from which the new sub shape is removed
theSubShapeID is a sub shape ID in the main object.
-
-
Note:
Use method GetSubShapeID() to get an unique ID of the sub shape
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.UnionList (  self,
  theGroup,
  theSubShapes 
)
-
-
- -

-No errors, if some shapes are alredy included.

Parameters:
- - - -
theGroup is a GEOM group to which the new sub shapes are added.
theSubShapes is a list of sub shapes to be added.
-
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.UnionIDs (  self,
  theGroup,
  theSubShapes 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.DifferenceList (  self,
  theGroup,
  theSubShapes 
)
-
-
- -

-No errors, if some shapes are not included.

Parameters:
- - - -
theGroup is a GEOM group from which the sub-shapes are removed.
theSubShapes is a list of sub-shapes to be removed.
-
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.DifferenceIDs (  self,
  theGroup,
  theSubShapes 
)
-
-
- -

-Example: see GEOM_TestOthers.py -

-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetObjectIDs (  self,
  theGroup 
)
-
-
- -

-

Parameters:
- - -
theGroup is a GEOM group for which a list of IDs is requested
-
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetType (  self,
  theGroup 
)
-
-
- -

-

Parameters:
- - -
theGroup is a GEOM group which type is returned.
-
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetMainShape (  self,
  theGroup 
)
-
-
- -

-

Parameters:
- - -
theGroup is a GEOM group for which a main shape object is requested
-
-
Returns:
a GEOM object which is a main shape for theGroup
-Example: see GEOM_TestOthers.py -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.GetEdgesByLength (  self,
  theShape,
  min_length,
  max_length,
  include_min = 1,
  include_max = 1 
)
-
-
- -

-If include_min/max == 0, edges with length == min/max_length will not be included in result. -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.SelectEdges (  self,
  min_length,
  max_length,
  include_min = 1,
  include_max = 1 
)
-
-
- -

-If include_min/max == 0, edges with length == min/max_length will not be included in result. -

-

- -

-
- - - - - - - - - - - - - - - - - - -
def geompyDC.geompyDC.addPath (  self,
  Path 
)
-
-
- -

- -

-

-


Field Documentation

- -
- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- -
- -

- -

-

- -

- - diff --git a/doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1geompyDC__inherit__graph.jpg b/doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1geompyDC__inherit__graph.jpg deleted file mode 100644 index b635532c1a90df7ad584b5ab5b64fb8b7fa29f35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5663 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 diff --git a/doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1info.html b/doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1info.html deleted file mode 100644 index dc220ec43..000000000 --- a/doc/salome/gui/GEOM/geompy_doc/classgeompyDC_1_1info.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - Main Page - - - - -  - - - - -

geompyDC.info Class Reference

- - - - - - - - -

Static Public Attributes

int UNKNOWN = 0
int CLOSED = 1
int UNCLOSED = 2
-

Field Documentation

- -
-
- - - - -
int geompyDC.info.UNKNOWN = 0 [static]
-
-
- -

- -

-

- -

-
- - - - -
int geompyDC.info.CLOSED = 1 [static]
-
-
- -

- -

-

- -

-
- - - - -
int geompyDC.info.UNCLOSED = 2 [static]
-
-
- -

- -

-

- -

- - diff --git a/doc/salome/gui/GEOM/geompy_doc/doxygen.css b/doc/salome/gui/GEOM/geompy_doc/doxygen.css deleted file mode 100644 index dc9da5220..000000000 --- a/doc/salome/gui/GEOM/geompy_doc/doxygen.css +++ /dev/null @@ -1,218 +0,0 @@ -H1 { - text-align: center; - font-family: Geneva, Arial, Helvetica, sans-serif; -} -H2 { - font-family: Geneva, Arial, Helvetica, sans-serif; -} -CAPTION { font-weight: bold } -DIV.qindex { - width: 100%; - background-color: #eeeeff; - border: 1px solid #B0B0B0; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 120%; -} -A.qindex { - text-decoration: none; - font-weight: bold; - color: #1A419D; - padding: 2px; -} -A.qindex:visited { - text-decoration: none; - font-weight: bold; - color: #1A419D - padding: 2px; -} -A.qindex:hover { - text-decoration: none; - background-color: #ddddff; - padding: 2px; -} -A.qindexHL { - text-decoration: none; - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - padding: 2px 6px; - border: 1px double #9295C2; -} -A.qindexHL:hover { - text-decoration: none; - background-color: #6666cc; - color: #ffffff; - padding: 2px 6px; -} -A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } -A.el { text-decoration: none; font-weight: bold } -A.elRef { font-weight: bold } -A.code { text-decoration: none; font-weight: normal; color: #1A419D} -A.codeRef { font-weight: normal; color: #1A419D} -A:hover { text-decoration: none; background-color: #f2f2ff } -DL.el { margin-left: -1cm } -PRE.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - margin-top: 4px; - margin-bottom: 4px; - margin-left: 2px; - margin-right: 8px; - padding-left: 6px; - padding-right: 6px; - padding-top: 4px; - padding-bottom: 4px; -} -DIV.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - padding: 6px; -} -DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } -TD.md { background-color: #F4F4FB; font-weight: bold; } -TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } -TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } -DIV.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; - font-family: Geneva, Arial, Helvetica, sans-serif; -} -DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller } -BODY { - background: white; - color: black; - margin-right: 20px; - margin-left: 20px; -} -TD.indexkey { - background-color: #eeeeff; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TD.indexvalue { - background-color: #eeeeff; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TR.memlist { - background-color: #f0f0f0; -} -P.formulaDsp { text-align: center; } -IMG.formulaDsp { } -IMG.formulaInl { vertical-align: middle; } -SPAN.keyword { color: #008000 } -SPAN.keywordtype { color: #604020 } -SPAN.keywordflow { color: #e08000 } -SPAN.comment { color: #800000 } -SPAN.preprocessor { color: #806020 } -SPAN.stringliteral { color: #002080 } -SPAN.charliteral { color: #008080 } -.mdTable { - border: 1px solid #868686; - background-color: #F4F4FB; -} -.mdRow { - padding: 8px 10px; -} -.mdescLeft { - font-size: smaller; - font-style: italic; - background-color: #FAFAFA; - padding-left: 8px; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.mdescRight { - font-size: smaller; - font-style: italic; - background-color: #FAFAFA; - padding-left: 4px; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; - padding-bottom: 0px; - padding-right: 8px; -} -.memItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-style: solid; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-family: Geneva, Arial, Helvetica, sans-serif; - font-size: 12px; -} -.memItemRight { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-style: solid; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-family: Geneva, Arial, Helvetica, sans-serif; - font-size: 13px; -} -.search { color: #003399; - font-weight: bold; -} -FORM.search { - margin-bottom: 0px; - margin-top: 0px; -} -INPUT.search { font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #eeeeff; -} -TD.tiny { font-size: 75%; -} -a { - color: #252E78; -} -a:visited { - color: #3D2185; -} diff --git a/doc/salome/gui/GEOM/geompy_doc/namespacegeompy.html b/doc/salome/gui/GEOM/geompy_doc/namespacegeompy.html deleted file mode 100644 index 5a7d6e1a2..000000000 --- a/doc/salome/gui/GEOM/geompy_doc/namespacegeompy.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - Main Page - - - - -  - - - -

Package geompy

-

-

-For available methods please see documentation of -geompyDC class, -implemented in geompyDC.py script. -All methods of geompyDC class are accessible via geompy namespace, for example "box = geompy.MakeBoxDXDYDZ(10.,20.,30.)". -

- - - - - -

Variables

tuple geom = lcc.FindOrLoadComponent("FactoryServer", "GEOM")
-


Variable Documentation

- -
-
- - - - -
tuple geompy.geom = lcc.FindOrLoadComponent("FactoryServer", "GEOM") [static]
-
-
- -

- -

-

- -

- - diff --git a/doc/salome/gui/GEOM/geompy_doc/namespacegeompyDC.html b/doc/salome/gui/GEOM/geompy_doc/namespacegeompyDC.html deleted file mode 100644 index 313f21f5c..000000000 --- a/doc/salome/gui/GEOM/geompy_doc/namespacegeompyDC.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - Main Page - - - - -  - - - -

Package geompyDC

-

- - - - - - - - - - - - -

Data Structures

class  info
class  geompyDC

Variables

dictionary ShapeType = {"COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8}
 kind = GEOM.GEOM_IKindOfShape
-


Variable Documentation

- -
-
- - - - -
dictionary geompyDC.ShapeType = {"COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8} [static]
-
-
- -

- -

-

- -

-
- - - - -
geompyDC.kind = GEOM.GEOM_IKindOfShape [static]
-
-
- -

- -

-

- -

- - diff --git a/doc/salome/gui/GEOM/images/3dsketch1.png b/doc/salome/gui/GEOM/images/3dsketch1.png new file mode 100755 index 0000000000000000000000000000000000000000..087ea15dc6c23e5820ba2ca6180b5c72176d6541 GIT binary patch literal 4079 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 Xk@W*t<%&wEkcSZtk{qjW0jd81{iA`n literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/3dsketch2.png b/doc/salome/gui/GEOM/images/3dsketch2.png new file mode 100755 index 0000000000000000000000000000000000000000..51f171d9f16d5d32fba0322c9e4c496c4f28f7a7 GIT binary patch literal 23548 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
}rmJcl-MP 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/3dsketch3.png b/doc/salome/gui/GEOM/images/3dsketch3.png new file mode 100755 index 0000000000000000000000000000000000000000..feb56e7cb04e6871248f3fee5174f9839e7d3b16 GIT binary patch literal 23948 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 z z^D#n+dV<#@4s;Vf2Vmv~3-H-LOKr9&xA{jAC_FqIl=+6UU!ub11oW@1WZ~=WU9eNP zR4Hw3VD-s)tZ*R!`CEdM2S9k*!3r$VFXF*jJ#@j;!{u6t8vK7=!T*uaI)fLbfx32g zEY-y>V(9PL+1cgo4x8$?X24G?gtgq@p5g9Db}^W7E4=Uz|__@dfDMrmkTPoE&g>MxWft`LxVpTC_}qf9D|0xEA~xK$@H(9lMhiwR;#pS3R!%QBJ1gfm3M*Qa{#OvdIb zrZs-={r$TWL`_ifFV(Sc@C~@ytJ81sdr=~$zb-Vzz{~iop94Pfq!jB9LS9~(nL#ui zsKxs)j(bq<^H*^D{5>)BAE@;JgOvv#C}d1JVq)R{wBbr^8v0E7@L@ZMV!pQ*aHGAF zii(e@82IBp#$ko90I~HKU?Kx0kt-J~>pYyht(E1of|ZjK-I~n~P}cdmkD0l-5%YTg z5ish9YecHtHcO8H%h8ERdF|XZ@#4~VN8I_j|D;1|a6NTy@2^eu-1O(}=)l-mO5CA@ zy?>u7^fY*XP7o>5%IjCKnUp?3)HZsr`cs%0A^|?I9Vva#1{GA&lV%1w(&f`90n>Yq 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 literal 14153 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 literal 11731 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 AUjP6A diff --git a/doc/salome/gui/GEOM/images/arc2.png b/doc/salome/gui/GEOM/images/arc2.png index 2bced2ae0eb7370d081b1ea8eab4b4a8c9600e4f..6305cac1ea86fd809f6aad867c70a01e1138e8cc 100644 GIT binary patch literal 19986 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 R1D^H9;OXk;vd$@?2>>b&D((OP literal 16382 zcmb7r1yoe+y8j>wN_UqaAd&*orGhkk(%qqSHw*?ah=NE-tDs27NO#9DASK-~Al)@E z|CjHa|5@L?=iGD8buAV$u=k$5-}iZb^-Sa+8j6H?ba)U5giu*YUJC-jdJn!{+{6K| zC_O;!K_Dy;W%-9X&t7a!`}^rE&mZk>CwF&5JF#QM>&o9SB!Ce?>|aP!9G!J2uFF%H%Mboix_OrsO9y?M?BR8aA7ffdt*nx_4DDAg*m~dFeo*6x zQ@(bLs@X|_OZEHr?eMH6EZ=1(?ICnR`(z&)C=1Dl6|NeS*&y-bVG-lZL?*+yK+xbd5gts|#mSC2?GpookHI|! zq9xcJ3GL!Ckuas@Jt2>q0=5hGOBNy?_i06(e1!CBWvh?m$_mR%Or;HU!n{%Tuh?!U z*6rL3Sxe&g{ zgy^tAbO@AH#hXSUsAPGbzyH=7@_74TW68#=fU7=*5J7jAKn&%tn^ zva;xF=!S>>1X6o#>``v>E&fhEfnn=DHm}&Y!3B1O z2woi^s`XJG`xHu_xS}RP)_znrw8wnIEuA1JEAZ}OyXn{g%{8r+8SfyxKGFZdS=b|R z@eRx*pWu_fz>jBE79!`KYYPf|CUtU%MBe8kzn{E(`BETRZOL%ItEYEq7IR6g7{ioh zxNrWmBt+Upcq2`@e|fmN>^ISl!?awflK=r5W<&XG*`!4B8Ol z8t;==y!!?#+;J|wYX*6b=|g1vU-Cl_7S9(6OPGum@-whc2V`P>%0+fImsj7o_>#ub zZHEVNOkBs+;_ix3rA?|zOIAkpnLeAYd2o4oIkxGu;Uh_d^X&{vEsU2H9ANnLN&?x>#txg>H6Us^~=NQB1!WXZ>v0>yM=^`^}iS^rN;@c-+5S& zW~A2?J#F{?V&7<@yiUH7-Zk5DzjpV$UE0RZcE@u9H|_M;CqyQQF0Q*Rceq~o*&h*$ z9Y`CKzGiZ^mdV}xX3_l(3edR?b@WOpm-akAJxo2#(8d|tA#@#wd4!t#=dy(+iMYlTMT3mxDcOs+O28EtK% zBs_QyY2ML2_@baqo}05L<}Q&xTw`46qMol;STeaeC4)BAx}?>8cKJERX)Yi7mYt35 zRaR%TM=POdyn*OkFHYbKqHt!pCw7;_buV5_mspSCAImi$H#X5uJ~YS=y=k2<$v zHUj$0HZ&|Y!o((+|fljA>n(gI-#;;LSH6zTiITr?bLA>{*M~(yO30U`PiNA#%ECN z$JelXZBPc?y*-OzqS|=r{j?{D)Q)Au)Oc+bp>yBj#l zNW5QnN}49J#`U&ndVH(z3`Z(nE+W-sF4EkWcX-A!c#^8f`YA=sgQ+(1#)hHIiby3S z$>0y77Y|=7EgRm#%M0taVHFaJ`vehU=G}}zCNeXGTUwMGcGsnKcg+TOS9_vL#+{ay z?6e!roQ;Ixu^Gw6cGF4x<~SQp0a>!xoX+kz5tdC8`dbTQrPfPJOYw%4S#PJ!<{V5J zus$T?j_ngWjuQ$@)e><>%}kA~sy0Xr(K-5@KK>$n5m2$jtSl+!!^(*Hgfm>h%$DCI zNQGH`Y8H5*9)ekts&K`;Ty?kJl}yqIaPdW7bHM&t@YLDIB{)VS*giHcmDxrSj{OXJ zOpd;M!GyLQz**4mWv`o+MnB(D3%NK?A9hZ|yt=gNtsh(WM%D6Tn8~5Rvg_uvkCtB3 z_=F_NO$QMA?TlI*)`!Rv$Cx7HG-Z^djKi-z<+(&;q5bNptcgRE_KdA>rIz4?E>(8y zoyEfIcFq*h*6p5sM@1)!zD!JkfuALqqVVRwipqG@I*T4>EQ~nwvnFKi5|-cEA!Y&p zFp83#xcMV0deI372Z)nX+A$}QGPq|~Z|~CZIHIpCo{rS?`N9@1ggkb49Ayc+pY_gv|`niSG6fh zj>c_`wr5G0+)pLs@ttm~ew{c@VjQhkw{ni zZ72Qn68p48cv=nV3B&OGtV`EjN*>;vp-cLndzmD_4^M2=P>Pp@g zzG3p!0m$03NtvVE;`_7~@Ydo?=_W}}*BebvB1wjo+~wfOjfiT+ral)8w_h}lQ%Qly`%2RL>P*+ zTWrMC%A=xhrxlJyTV70jNcSYCm$?u%6hGz0TykO-iupT8;Y*4)pS2(hT`de|MS4?3 zV=|+UJ}V}Pq!mnO7*C3>;zA z_VVZ)pU7^t+B8X)R$4>It%-IfQ4J^zvXN2Jr$B`M#S1LZGj9|RAT?pvu&g{y62dNi zQyP7pKtIM6!R*wcUxaeAdDibg7AbJ0p9zF=zc_UL;vBPPgO%)GUd4VVmAqP?{4l0C zs5!rwmt)8%VnYhb(SL$ZEwuNY*@GGqrMGSS`#Vm7DT6{{xro2N4^vbmYPeB$nV8=h z6-I5&+W%d1Q{wRB?$o_&zj5M>Ef_sKi!-{;X1l#EcPB1vR@A>~Y(mWZ7BON+hmH)V zvv3~shBRt&ym$n>bbbg54?g$tVfxa0#B@6Q{gJoS$=oZRfZ*gwXT;&44|QzMVJnn> zfO9xATy#oqVt3KT-u7v}9xtS$f5zOZx}bmuJXB=JK-vZa{VeAEQR#Mle$A_wF9Fbg zB=FnrpH6GsghD^lH%5=E{$W8v&1ZHO?s7McFnWLKinv}tA2t^5gzr{l64yQ4w3Gfm zR1o1gg=t7pT{Pw(8~((IQ4aYik|^3;vqNrAR3Fh@OvT{|QFn#X#F;zW)7DORRJYzT zxjZ#i3wcNrp8SL{>sG;R%0?7szW4L7KrhyqbG7i6SVq%XAy(QUH9Ba%F||vq8Xp|& z3nS@^}DxWdlmbOpIcV^YP z2%DLC8wRb5I4i$UI+X}RBnefoeM{Zj?ssbzP@{QrX}SIlnKF>C&#!fqIoD1ZIEE<} zqAZ%UgYUHx%l@oVCJ#8?GPRm6`q5=%7>q41zhtzCvR^oETsuO{ul&M3VTb+ z(G22`>dy|V&bMk21(OM9{()CyzrkzEN<@~iRw;kwu&R2K|K@YjYfbG@)ZINjtel(? zV4t8bE}jp4Bb=`F?cAVlnpkSBJK7RWlhH@>?Y4NEyZxFjv&9E{iJIT+4nSRS03Q$( z<4)h4Co87>QRyEqt|^@?ne!OcR}R-iMe1!NZlz>+1_0-gqienNCR)u=i*w~BXhBtBC}7Xq;uUF0j^J7WT2@|(kAReZ9SI*Sf} z`<4KWE)szkECW3~PDVy17P8UMHBvF#Gze) zAR~RB2k=Uf)LR4uUVW}K?B*IK18o$fq}w~)wN9c=V@-fPDuZrg%2hj7Z!ao3CIL@Q@v>jXNgazw_8X`&L%fh`*59IrSLOkB? z$R)m;qvvL$R`98m+&A^~74!mSux{a^>FTXpw_NJa>*kV*=gggprY6wl8_Jt<$BCU{ zRhUl=uNO!+8(H;r$8YoKZ;Mw>ZjNm%OS&5zAgGt9bvBBHJEi0Jc+L8R>nPI{CIR{228c+ z$Xv0w^}fb=v5BU`fo&al7(53_#)i;X%CwAxr1s_uT<-E<4`jU5@WDZJ> zAxV@j{OJO9pIxP;pxRd^Sq;gICrWNz2?#HRpw^K~V=q}BdyMp@HeK`Pqmwz)(ev%y zOs~cKVFKMj?9zz>zG6MDeo7v&8}^C~s`vUCqsfz4Dd*o^9G_@TK)c~7cKW|Bfq?4Mb%D)7$yXAqB@au$^;F*c6 z&2>{7v?ZOpy48|IW3n&w^K$M5Q|b9Px-Bn@jc?tI-7`Dl)=KG_fiiMVzM2f%`FVBC zv)ovH%W8!CgI|f76+7xZqG_74#3uEV`q>hmX=<}6->=T&C?WUhguT9qiSo9VDP=vY z>Upsa=V(wUMK*utunjm%O*P+)P8NUK-+rhmx+<;(X*_^QyRd7Zxk`P3fDRmU7j)$| zwtxGwK9emOCFSxv2hd?~a@|7j+*z$(Vr3o8!oyXvZPZZ&U6nH(`#(I{UoL&ZBRBEG zVYFg7i1BTdA;MZV=cY^V_meG)^5 z{QNiqFCox-KA(VI;%#lfbo+{?$o`-z|9z)bfq=t}_7!C6v=Jw1tmDHl=5J!ozkg`u z@Eg^AAFGOyIfD@~N{B^RTUmXSvK6$nv}BO-d(UYv)!h*zdTnQv`m!gQ-}h&U<>S6g z*=?WN4{>qTUl)19TAG_3$_Hz_9YsRwVqF_f!`B*9w+K?Is>DJD(9{qH^d*a??1iwh zvT~mX@>S~oydrZM6ch5~9fN|234>}w-oI^SNuevKzf zFv`7+&9xc36^&z5sK-NvPt9+#wA39}plXClLq%OdCO>QuFmNa{P% zShloQPR$H2$8@=vX6o3y#X?^(e|EV~8=Wz&0-)Lc7U7bhyh>hU<_VzY|2tn)V>24>p{d_+D zEkZ(eNy$`=O0RpRCKeVfcJT3KK^0@ppVm7H*(>=UJXwfk4p_k3o@;u64SB8j8tyQ1 z4|PxKNGN>kGlRN#+6L;|Dbkl&MCe#e6eEjmU7$^Zq zw{b<;YPr5QXAOYQC;usY7E9x=8-3zjdZVPivYuK)$)d2zRn5w}HE^5fUp5UH;`hHq z%U9+jnD~UZ5~C|mYCyqiJ(M9PfsglA&W0eirfY-iS3OkK)Y=3HKqV}dONhEmDdlLS zuMU32PnY!N;Nt3b^p1j^eCWppe_|&i9d}x~Z>o_gX308#(Xuw%D4V7Dj_+V`y1_Ki z%=F}5YdFzjk(qDlX&kcdU{Lj{B0<%b`tRGJ>T)zQ?G|1~%D+|=aBGqS4M2aZqR0>) zZrK`M3c3avifhfghJ9@)hZvWL!D6-{xWKeFQ8|tyq1F`8nTH8!*tC*9JU|lI>~p3@ zsYgXcSx@Fnjsc~BPsKC0mXqnD0XHfXCU)tIU=Hru6HOBG-?N#hc#gRGF_n9UheGB4 z{rhSeg2{!G6=gdkVZ8wXdesvjGcx-6(j^V+{O&_B=d<|g`NoxeLUz5MK(`Az8n7=u`yGh$|M~CIh95G&iHfkH>P1S_Mc`wai0x7zHi$@F*r1|yU!g64-XH& zl9wgm5RYwqVa0rRgoWcbHk>4;2fM|Qe=k@f zz&bAM)LKsPo)Wbv$L~z z#_cnAJ7q6pfkyKmenJ|Xr}H&NFw$QnJc23cW-4-pAt@t6!_7?ql0R$uZrbJe`_>N3 zO|Q_Xoh?S{TGLE@;MzoazOik8hBV?=q49VlRQAeZHM&pmirPGgv{gU=xL7xCh@(Ua zTC+rs)`lWLa|qDUlh4l6T?=M0t@U9Cx0IH~fT|k552qChAb5pCw6K&LcO3^OK{Wydqc1I~>k%R2NR!X+sf_;RO*#ZV+zcyl0STS~1vp8;7qS?TI44h1{Vu-t+2 zJ#*;Suo>UkU{qRz`{EOq`omuy1qm>vLqIaR<}-C9@Jo`0SP5;z8Y^^2n;WYM47 z$|6Foq<`b(PCwX(>}sv3e8^-7dIxAOZyA zaW1Y_DE}-w53ANtF7B0L{ZAQu8@DJKRgh#R3}(W7kAWos9RYAYw*~7k(ye6UU|WIk)%O zm-eVP?^IP(zJN^*>CKQ%U3DLjkBPBE20FqbBQ2ME654wV3iXUCU66o6>>)*G1ulGt zN)33xRXkNYjniK2{dZO&sUTm(2~-4S2u+dx46fD$+cYEL52Hc@9;yO=JvvdB-r0pq zoTj2;pHi@vu2xvtek>s2vebiJ`9S3Vew9*d3K=ZlhzXJ@A z+_k>78>mfN*tNCCq+q5j~LF?Hmq=> z^O#X?cY-1zp&Q75oX=XyX0I~e4mTX!2|+f zuD+TD&`cx;JbCZwIRH(qP@TsC9wo5h>k_ZouQoriyvZOvgMtH-Yn^S06a|YGYkm7u zd6lfk23JD&P|l$Ws8+I^uZ)`ema6hg0a=jhCv6Q4#Xoo8G2Xdf51%6F^%JJ+r= z7XyvUYI~;MHj(ze)oWw#z^vdR3PNJnWBHcW*6|m-zTY-AvJC&0_5YfPAJ)JZNo@9cAAt0DJSs!_fZuG9dhqpFO+#@ZrO{qX|cs z^84)UVf`}aZ)GocW1J={kelA*r2W8;xmulu;B!E$A`ok!#{frL8*~+`Auyz~{|EIP zn!8HM`yH@6)zBNwZ(Z>AVG9v79cHBwCXJhOkz}=_> zp+EUXbpiZ`2Ow~_rKQuSrcBDp%D!voL>q5z4CTZaQ_H|$z9(psU-4YpewWoKanBWk z_ZWQ)kV#!gIGJ#m!pF>bSspm_1p-jC=H2Q~TB%IkZ@Tfi(-de;BbWAtfB zaK`t%olx{X!TkLERp`>LkwMHP_0blQC?27$rKM8P=_Ddq`SAHNC@*;@CmwPRHH%*b zhV8$(R%^E#T3sr!PxWo41J(<-ia)}1VEx!OO-)#80XAgh9hyy6r6ijML8XDnuDDGioS3=KxpG?1p&BTQ)TSo6ju_^Cp?;~y zppd}41#f8|kZl8>ALG_|tvv#ze#L31f9c6jS-uVn8_!WoegwGBse?YArj$&fiLAzz za5`msU2NNod}ZpQsz}^sJb(X6yw57Fo?z~=K8TWRY|lWuL;#EV?BF@%L#31LfMc;< zW8CV3(ZsH>Jq(!7s}CbtwU#MZ9&{ZtutuLN;tk&NjLrKB$+cv-?I9h8dzVK(k4;*w z6lYJtZxzs(cm-(^cV%h?n3Cb}Uknq8*Sg5~gN?hSvA>^SX(8i%JTn2||ME9v_}?wi zfnb&qHMf0>OdigA_f(G4U`k6M^FS5Qo4> z*NBp{qfNv>mListx;nd{;0J&%Po6~IdGKIF+#EPo_`%UYFLuq{KKMNzwX|dd0oDrO z&jvieZ4!rGN+DB4ardwb06Op?uD}V<(1Y#S%z>;Yo~u7UKSBh%^m!662)x(hHBPAF zG3Vlvs&n2LD-AlCj{wsg5Vxf+(!s&ORUlp=Kt5Z6W4yMel7Ya62OhiFj{}w_Xx%|j zKPETpfRsS5h&JvXagfB4 z={yg;!_GcX;cN`C>(5X>sCri6GTBq*z6eOCyCHaP|KE)Iiby1rV$i8ps@_ZWw+6X^9eX_zi3+TTo?@?1TLswF+)PDZO^8c0iBIv{C zrLK<@8jEVAi9KBr%naI7zOn&Pld|?BdAe7rX_7fth#32W2MM{_IUXy$w7nsA(U-^1 zJ}(o|ixf<)uRAyV_NQ19d;7p+NeR#z!&0j-&j}C);T;b1nbs_!ooH}CP{X&*Q#b|8 zvzx%W0<%@4W`W2;kp_UOzk^{XAAuqAS4O?aKVSCa`DD0=^CSr+r9yE=y-DBx$zlu~ zu-Vt);UCh|)pLv`C>?w)EIxH^9);)KBo2*bQ@q*~M;qg<%ZQ{k0AHRdKzesZGY%J- z)*6Vz$JKx@kC0I1_60WqBt9@7*a0B{co#p>0B8vrIr-^U?RHPK9jg}U$jbl3+Y84| z`en}F8z0Bt(n^Pe zuH?Qq+^rSJz|M=H4x(iu0+k;GXi57un}IJ1px$1A_4!$9tq43_eJjS+2x3&lqziZX z)TC>pI&c*iJ7ZAE_8GSUQ2>l9aYBT#fh?EqUzl?}hl|3_zlAepADtLcO-YR{S9l%B z)lo8Csl3B?ucI-=tXlA@edCSpZ6AC#D5sTbQDKc?$lKEQ_p|iXJ*x+I+SZ; zH>J4EY6~RCKWzS061@l7gYYci)zjZldZ0al3Y|{NpNki`Vv_^)!2mN5U0rc8{I)>)##30G0

0h7z!HJ1y6uNa^R3s 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 R@VS17vVw+u(IbnO{}0#hW|jZ| diff --git a/doc/salome/gui/GEOM/images/archimede.png b/doc/salome/gui/GEOM/images/archimede.png index cd620020e4e2159eb4888c2eacfe267efc1a3765..4ee2ee9b67820f189ff3445189a45b76d1126ce2 100755 GIT binary patch literal 21428 zcmc$`1yEeux-Qy4kc1GN5S$R)CAb9$5HtjL4esuc;BLV!L4&&mOK^90cX#KFUVEQ& z_P%fLbI-l?s@|$vRjZqxvqz6P#{YjdR?tToF_dR`&ma&8$_H_gPY?)9B>2}82?4xQ zcr3*afsjBxh`dv9PT8Ax(NH*l=scd}GQtr>fA`#G(o(DM;?#eIc#$LrDO zlV~^K#1)!y=|0G17asjBsoP&)%h4B22%4tqDGM)3lEjC(=eXxR zU+g{apZ1)s@Ji#xyVCSBN|78XM6=a&Qh!jUh3A$om^^mR^it=%sUk&b{bIa{Xl@bG zbcG%Mxb4XoSAd^Puv@k1qAB%d^2IOh$Nn?w*&R>su@nDD*N>Bk_A~|?zaPnk&fq)k zWS^e-4?lVeO3}#biel-mm6!)NK)%U%95FLRY-n?jjVX) zDCNrIIisCmKmJomnXKP2p&8?`b+9@2NIfO^?J_56(QeF)F|WU`aj`-agj(|1Py^0g z;){N`CGoki_;IXKoHF!*?s=72-kLwOc?}-6l!ACl0n7bMyNkNF)LrFYBhbH^`FLSp z(dXIUCdbn@53Vf4j2H_mXl0jO8Y@xJJzUJ}8XY7Orn>9WB09Die($U;c4FWoju z7(;MxB+!NZn2UF3Wp=gq#@=)*p~kp*Ro*#*XZe6fu%soHZtAADDol<{+xa`X!sXYi z=TnXt47u6`huQbxnv##Rc>G*2ns{70547`TQ5URSJ-3Mj>jFG3MY5tOuJiEHX51}@ z2C#d)9!2}62)J`tJIVoBQk(?4328jA)Wvt_zZRd~K6=A#mPm&TdNV#A&g|y9Ze2Rn zjt-XfZce3#Un|{KIXtY1EH`6Xhgu5leEEQCh}@PEK)gyo2IuXyuz6Lt$x)l2cEmS* zgc)kJe$}|)FKAiM=)S6A<)d`OH|v5xWa+ueZo6AQeU7=lSyvL0@Y2z)vn2g?Mh=lv zi0p88Wd@As&> z8`z7iFgwkx_mY*dRdC>@bnWe&zaLleqnbWT#8Ejb($BmWKQ*(M*=vs(lTOpB## zs}gwOc~khs81MYaiQzi@<6lveM}~gQM(?Yl)ED~;)2X!E!k5*7x^q%1x1R3}?DMlmPj?r)ro36at}IN5FMMs0gHtM6AlJB{I&dKU>u z%eE8reI7XkIy;#7S7+{Q=n2;gwn7-Z8cmgNag%qZ9265;WceUGFI}bP8ffmSFDxn_`2Q-s%*tQx=v~)5%vh*s>B%wV5`E86;hAxFXMaLKtr|9$ zc9>6Huj8I+H!%6gy{VS!lu(Qin1fYefbA73eLKo@YQbRW^j%^#+|p6;Th5DfQhIz( zY5RtN$Hu*@teI+dcPI49g5GRHO}7X$jd`6nhB)qvcJYIKb?k$NcJ3>a1(O?QJz??i zUA6D7@wCEG4)!9=ENC?NaC5(w3^VTsU#nfug(c)*X)k!rm-$MCtQt9xy)nRf;Grw* zr#1X(NaxCDH%U#8zrgb>74P?N5;2v1PP=oy?$g_H>T9n~m&KTjxL!>wsvEv~x#?t0 z0j|>`ckCJq2FKa`uVpBM>u!8a!(8ll3tide+}3wS)WNW9N}g+nZ%dBSx2X2$12Pit zBo^f5OtIjFcDNnQ8iuZC?4@m<^j^jj^sX@^-xB2-@^~UB_(|r$?>2Z|&za;$dwJUQ zYH8=@bFx=MBvCc+e{jabjTFE5d@ntD(Y$HNt4Up=arwyk7FlnU0I}~fE&HQiwaM4Y z!mr>Vo!?!{b_(YT)pQ)GNG7~gw4ZJmwMETv+y3oZCBW}8F*|=LB`0BYFLF(Nz*jqc zX)NVqH?Vp5INWvZYTjzs@FXC`7qbk<*45Ta-v|AF_4{jFN~ZYC9Y0Qp_uG&9;HRYzb)Xr@OWA6 zzF@-Psx?(!_n3Vm)7$lB)r*Ti&&zS-_*c>&8=9R&k*+RB0pC;Yq{oH`5HQM>EN z75iEGK4}(y#CoK?E1Vzaexzj<$v+Jr7FuAh=WrxwaQe)5FCE@#)g3Oo%cayQE-p{d zNeF?>*O+yFsidu!qdy&vvLs+cSU>JM=VDO@mgmY$S65TrdCYTa?KFZfp~YSU*LOar zVMAD*gLB*ZcqyykMQ~v&I?4M5Y>`g#uhXJT&cgd*bBCo=e5B`u_@h&mccWg?Ul&UR zjXgRMFbNK=7QR28JvlRjWfdlMADi0x#KFHMYyA`Wj zt=`Q%1HQr10f&s-GVca75Ahp~%1qj8Y*=@5yC~aiW1Yyf6EbS%i?5ILGTqPJoy*Y4 zcGK+gJlA7!>+c6clMewR37i!Z#8yVlKqmD?n~Z||g;?STS}=r=NQ*aH-r0k9yf*KJQ zLb*e)k|-bVv&`YZX>*D~dE5f!k`80GxT~m?6sd>hWXUTnXQlv__N- zFYLR z#9=k?aDSUR8WSCjWJ26hP@wgBtV_;(wmQt$_eom9-4i&(=LS3R*IC1YntnEtXux;Zq$G)giK4)%SAR0~iPyVd$&S?78D%sD>s_YJ z^Rgc>Z`%GT@|k{B7h{y}5vQ!wv{Fb`(>S-TR%!gMZ2)OwAi1}#lhSt4;}X4$^{b2B zW*L}Uqg&SWl5pE)dEvd{=Io~@=w-e45W9sM!7{SmAEdd`?_Bv+Og>-`Uh z-3h8-p+PM^7$i%~zH67w;cfe@oE!{7LTMpA*xopLxZjo)Jhy2nDSguwM%$Ck#QFIw z23u(CmUCO5rdRq>-pV@~Jtd{_!$1_@|2@M%AD^1qUp-i@%Z4}IV8ROF;^K0@JMNT9 z=O={3bo=Jx2q5*i?Y$diGiRSgiI>M}ubT_&ncjC)P$Xwz8Q}`Ut|Kki zYkyYL19mWFTSt4Gu}h68Nikcw*(Af)uV0ZK>E^ihk5B^=xh?Wp1y4?nkAHmbjWeGr z{qhu(0%E=1gYEQ7nU0v4cqX9I=-jLzk;{xCI3qG9rZsWY$kbd#WwZO&8zmn4^m4ZuTVrLI^S>PRTm4b|7~*F;&QF8Y4sIsRCX3f21RhA} z=t7H8?X$s4_w#Y(fooc&;-&1D+8N4&S_TG&-+r3Qp-y{{`~IYpaF;!s`BD{fx7Gkw z4~2A^LXt-z+k*S5^ix#QHu~;ybnykZ47W9sU(@CnB30Nk{^$5_czw}ggT-JCT5nK7 zU7f#C<`+k@Tg}idlY(t2!6#@t$kfx*L$jYxn^mMoY@xs&NlO!2Xnp)2R=9uvF``DCxZJh1H8f)4 zh_iwEsq(d^KA22HL`u6Y)2 zbycf$mra$;?5(L-;Fi}ML@xt0B~)u7Xu<7m8z>gK$@(W(eM zzOvk%hJ>s`yl zLDEIxe`aNDO({0cuoM)*bM`67J(?-xQmJ4;8XEXvkQ;4Vr*@EccWwO5e@BdnjbFkgENL2-7Y_A zQ-Yg(#wFoS4R31`F&+B}<2`NeNX-jjVPWYS7@%Nf#jKbPoi^`?j`6wQafcW429sQF zXA71Q__+bz-jIjm2rp;Lbzig<_Kji4)2Aq;6xQ>BbEj9}vG=4E1&v!BI2S4ya2|TVj@2!z+$seO3 ztNZ(5CFzWdp11U^0jQhFR!x6WOgehk{BpE-IIXJGy1ToVy@(&R8yXsZ%Gb*@u{Hxt z^ev6${`HT7FLDWPhmG-w#O{%`y*67Yu3+Y)7zalv9|3Gk@L{B3@K_016S3Wqj7I2z(c!?7NAJg4-2Y+fZ zk`+Xmw05%I%gcH9uIXXJY-Duw`YcA)#eOf7$fOq&z&;5f5hS@E-(0;5HOivPBEr_e zrxo(l{Eh}&V5Z7HBlpHJtS;g|YR*W*0=)Ll=1xjR#<0~5-`Ra-72HA|;65ejEp(j? zp6IdR{e{B9QFw-a2qP}2-1?t7eENjJ$omM}{BT2y6XFL7$MHx;{7=OK9Eer(IeWV2 z4Yg<{dck-PxB`j~JX|lAJIMrK(O$k3d-S}&eh4@`t*UVz)?*oA#br0gMezAjq+YYJ ztF56y0R3zfbHq{qGV}w(!zoCazkn8=c(FfQUm5O~$Z3)RMNUFTT_z26FwwUF>6BY7 z@*mV~5^e4#$_^Mz9qH~ZR3v-I-Qw~ZFacEb+n6mnHnu%qv0w_l%!kkIvXs%3IP=lS z{tGt>0$gwgma)}wbh|>4TI_ti6DB(PvIf6Z-PoAIS9Qb+R$IzJ{#&||LictqFR+D0 z_Cl8gZXa5|<;km58p}1=(yLXH=ovk++wA|mvWi)E*mMg8mJM~M(1jtnt1_m4BaquW zZ6*|`o+c&=%Girk88KH^?nc-1*Pzyb>fSVWPY$XZ_`*%f3jlFobZVwkKi}WoA-#BE z*n=s*g*6f6XfcaEN0G3%XO8v$UG6AXeE+Q0K|{l!)tJCPBS340$JR@Mqnq85n6$L; zc}q%a>TcDNVdE^>bbbH>cPEPEu>8^*U18C{?M_bzz?8NFlOI|}RuaNn z`r{&Q-g4w#(<%TF0TNUxQi6bj>8#g-N#|;UPV9L`3I%_Do7w>UJ#Une4JQu(jD+N; z2^uvubto}M+S!>so3wE5WSQ~tYX!y64_~jLTYYCNPdJ`I^O;47T9xT@0?x?rOQ*KM z!3aWho@Zx_R*NSOg=$qaqq(xVVwXgqZ0)Q*kT`z^Zj#7x7Y}|QwLtX z=1!Ff_dz0UbKu1zDJv^`QuD%atTj`mOwZ3wt)_UM({rVkGTAZptKE|flklUV-E%14 z!o%y?8qQR0aJGT=BKEk_QYM*neoY-MK=f8S!t`%1_Oq*SIQClMPuVX4iTR^hmYidYT7VW}0%%yYY!?S_nKMhJnHj`hAycTw|)Da~k(^lG>_ z&(>)Dp!7IkCmOs&B(9BVlxfaiCN-!mB?0esPZyls9FiMxlTggb;BlDT9N#x)gp7yn=QK zQ2kY#^tb@MeSg8|^fE4IZQ3Jy8`{bw;~CbgCbjer(;A<@VtL{n@{(~RM;gB)oUpfM z(X*E&rTjW3bi0smzay!71fKev08lChqHtUqB7*Cawf{*=> zN#%yz9krr{5(^MnSy{ETv_P2fLK$M|Lx**;#3G0^8l0K6H9@ta=oIYW<@R@4a0vj9 z2?Gr+(rO_Poy-|9Vwk|tP=klNYxk3GN=Q~#mbKNXTjEt1vuXV>HGU>u<);q$J@baciR~S|t`-Hu}=yyTWtmnQNVguuP51J++ zw>@;+sQg#nQDkDUI!w6YA3iKM-5%(#OLX!r9yULE`lAvLoNbT7h)YPk{#$hf&}~qX zv9XOZ-Mt0iQ7-2r5(FQZ_i{{lVFNcal_sqrj7{Rs&YV!J2=tUSK%ESMJV2*X>Yaew z8Bav)w#S?!n=S*mG|W_k3oBSP`k(|Wz;4PbyyQ9s7PGa1)=ztGu9?A0fX%IBM(e|ET-{)*KQibm#t zISjL*G-@5Dqysqv5b`dlHdSA4I#Cz|C<0iwU*Hg7(ZE&&QQBg5nZGjKQ=6>`C5%g_GM|RLU ziNLak|1J?r!{AYOBzjM8Ue~a@y}qt!%$3~lpP%o3Iq&2b{v?=tNLxdd)R!ucBIPs81BCuBOB}VJRlLdw4uWM%F)GX&*T6 z8yMICRSt4>eGR2b^Dd6c2gQQQJOtpoigv7J+o$=LSF=G1taSR~^!GG$fMOU%|pr2ymzf?!iJZ(tW!i6=3 zUs_-H`=evcd*<(6a_-6p9@5EsAyN@POgy}ulXk3RgtzN!c`@w_Mkg0!%H=sN|B(gY z>X*`RFP}q&QW`hQTggPEtJ6V&?cq$ZFWbWY&vpNNgg#~ zF7?FHp6w0C{Al%Oal0^=WmBg32bM%m!?Ck0hw)k{P~t<-^>ra%X%1u4f|fxJ`MkX! zt#Y9OkgiipI6O*&05}f^Rl59Az-@T<+%K*|)#B$&k(<;bAXHEY=7Wg(OVJakYtWlL z8(iBLvrS5@y)qa~@%zk%ml|O)TYY@h)@icPz;%0h=p-WxYHOAU5&&bda%5s<7PIU! zDV)$1jr-OXtEBmX8<^h$i{&o8S^`#}G=<`E1urzZ+Fc##PBb+6gG+`hjAX+JxK`+r z|CPkerLAezbWK4f7Mf)=m`1?wj+;5$wemisTYOLlRG(11x4;nSx;<=^g?=Ts0hJHJ z3%%85jt%w8hKQgTiiHVEEU+4g|A#_&qEXuNblo6E87nMkd06jl7?NwWeEvjQX@N5Q z-_o3ly*^4K7V|46$HVFVrk@_qiC7ZgPhYMT(AGLI@sK&4>{Se&^zD;6ky zzC4&05fO>}SETF=1+LAQjpaUl^sfctF9s{}m#BTUHY$tzuw-q|P3UoRwhT7MYkvL( zF71*@R_i4}@UDr8$(`qc6HpR-WODU?d&6Asd;&taM(*f(vJrTC>uNQYVHs3sd*hgZ zfmtW(45SN0$mEi-vc_y}8G|AsTB6msHD2&?cR@qU+}ynBm+Sd~pGnR7J2b7*~*n|XD6ySb~c8v*!;L?D=IKMZ1#5<->P?DcX`!7rxSLq*Aw zIV=!JfD#3|QNs3UE}RZa;>Yn7Rw+dVbN1v@hd3_UMR(xqWKcnjll+H`?FUBL`c)_X zlWWQKpIa(ixc)1?RSt9?y-7+A5v4*ExxI3LMwIkc^&~4B)QxoOM!G;1MSAw^^<9Pa zW@W1Yf#FVN-TbwC<^u0W2+F&_zUV)&>;P;(oS!sWCkAv`<` zOiw31EcS{&UhROA;vAE$Gj1Gut#4Ky&rWypmDkPbfVBK^Wz^XWaf0C_<`fjCL^hXb z^;9USDSDY-`>gQPa1{lsB6` z#3}-va2XKjUP*1o`eOAkcTn-=rk&pivKKBc-BGxHsI-`k>nFAx;Gn0a-9?a8CICw$ z4$7Fgvx!LRjBpkGQM^p1{!X(#o%}_!EH`P7VL_RUgnmwqs6M6MU03D+5g2lFyspC3 z)83%Nt~=~%Jpg6Bjb8fyLN{yAToieUEh}X&RaZ@nf%mC+ADL8x66WPaLspzSkoQrKu>61XJC8g(RkjJD4 zs$f{}3@Q$H24Cxh>owq3;>1DF;Z-bZ487M7{POeP^S>1OhVm3m&bwdjM4tq7cyuz+ z$TSoEKMm8BCZh<_qY{l)F0Ct~z`K}^1eeyyjN|(oBi+wNMs|Bs%$`@vh!58p|Mji;D zefHaPen3#fp?XP7Ja}cZI$iCNJZq7glXLRmcF6j92dieccD|MymdoveE}6qi#62Ui z8NN!l>!+W>ah|Mej;K(1N9VG3^tW%~>HHqGtKmGBzqBVK1Tio$pkLvIdc)(GObBE* zyFos&8q0ahUqvkjMnSdt}iA>NSa~%EI;Q{m8oLW)H%Fs zYFa`9Zd%ekmdDLSU7n+*$hbm|baDqFjMGrA6Y+CVAF&zqjEo~^?}p{GL+M_h@D zjE)Wo0#R{sqF{mmLjx?Td*-d#^xd*yL#P(0F+}cL z?|}HUx2^r&Pj2qrSxO2)Mn+SPT?F%($xv`eJZr7}Hp`|bkHk)Fa~Df4y4SVxNQ_se z+a%gAM;Gt2O8b1JB3JoNDuwspAI0MR4p>lUaL*8c)CqlJ;424M03ZB3lJx;R8%#8` z-=MfcrBg8U9PMV$z4`ihfL=?TkM#g|Yrj2g_G-NdLm=aGJzD}|=)k1V+yGD!fZ_>^ zprO4q!|R+H%kd=gka$k*+^npjCJ#3)_v80adJE`T7qI4$$2eS03@D@$1Sg9%VUSQ! zjV=nO&F^%`AefXg2B7arB{0Ew(<&E70!;BI!3T_Ba(V(d0@v45g9;^D^K~h;Iko8G zbL*TBwF!b1?0j_uRvUX(xz`V~5#oV7{(rE%$D`kcbA^kd?5rraMx2G(e;WNnm_B87 zLZ|*-@r3YDTvj&MC?X9^FO*0(xpRrGR-xQp9j~g^T9XO~y!gD_;@6kV5#jZCyU1p> zkn%nRhZ(HeG_MC2{`)ie7eu@XC3|7G&k+E~Fi{0~H6lV#gNso+cXYVk$qIsiLe$op zNyJbp^^g3Iv!xUG)SF;ZjutZ?*DD73?PLnH8o6J+dUd^%r&NUZ=g%K0clXz+E!@M! z7Cc{PpVU`b#wyx$3XY77l+GxOu#!-|O_Uc9i*mna!s9YXJXd&|kT?00s0!9pmkAei zGOFOO{f4wvjMN)x1M1NAeRD$_ia-Xm+4hi^r!B~gM|Y=#F$oD>ppCx*IyY!brejpD zmk0X<@L@ow0m6d+^H(ikQ68V3+U4!fo!EB7*Ur1J3Eth^9i5)8wjE<$i;@ZuT}Qbc zH0Fvp{D&)!;q&L-WANX!c$%8sLi6BRzjgKbm&xQlSH5rd9Q|lNZ02q3x5s`nchBD# z%G1XMEaVChv#bx8rjy0e<1~tLALnkug9?D)c(yfczdI4OneNpzwGNmim**X4Q&W>h zll!#(Jw`_P$yH4;FreESTuy;@P%MZj!4|jKC z;*qrRlA;bvr%+y7TU$<>J6}6bpb|`%>iSgl#nLJ>B}xHVkq!qLvc0|C*4{qc;9^JQ zvWA}Kxs?1(O4HU>*(=ie%s=)o(8n~n5PU2DEz;2dT7!6Wz zawhP(T`<|Kh%ji>ex&h0TX9@I)>Ofykos*}#q#|TV(&_rlwSsv3L&9l&81#YA_4vb z5Neq>P%8nXC64D>Hn#{SUZrXUkaxBOMvtMzes?MQToexO232R~%;Y&9 zTc8Xf&+_JG=MBnkB9kX9_{l&-)XFvL?v;FIap<_-L-j*)lYvg_2H~M9=~I!bMX|wy ze|iaV7~b2K-dZk4+t+1XuzhV=_VLZniq_Wj5rJ$T|kHr3J#_@sec22(>hRifadhEM2qj2 z!)^!g@|1UW$wl6O|EI81bTIu#o>F$8xPKmc3!dc@z^kbOngkRm_MdhtS|ziYeA=^B zDu@NzTR>)R-`uOQAYh#Imwve%tuj+?Xly*yv}{uZ$o2|_@eT)*P#BbGgiM&sKhFEP ze?ymmMUb=L^eUP^4XR$b*H2z1q%A2VW$l zfP{U>sNt;fL8fZlgnMVQKz0(58`FLnc41**%EA$tA5>Zregu9pLuk}hS+6oRS_-n1A6-ZswR*8ED!t!2Q949ja`4Q?hzD5O*=y#E` zgoU_qVDDzd-_eYqBlzta&?{AHb#$SzGC3G5K=+>%Z_?TCg)b z5)`w2{hI&tXK-)^jdA`)L$k{Quo2Ew=;HL^k1sAL=;@1|yRPDa&qb~{Q{{in&-=T? zzWO7dCMhS@iP7(;0^LLgTwBdAMq&RKe`aTs*J!&xj}>Hqq8ZoJ@C^urT3RwvjnkTL#Z&^nJ~yRI%5S|gYfv2B>&w70YWqelFD@;e4Gio;twuaX#uB~F zr=-PYYL*Siy^D+KT8(bHEQtx+7Bo%c9zbTMYF)q{$b=aIChEpO>aIH>SpC3V13-p? ziV6v!HXw&OFSox8F3dITPiprUvjJ^LrNS`mNg(nG(e4lwW_E&24U`_8wXP`83_%zL zp$nO@;WyaGulQWqpyKfEWQkEn=&SYtOd$=sOmy)gZ#7?s7nwi;Opv0GqQI1lr*8*? z>-ExNSk>Ct9EO;TR--_raWE%ig{q)g;TjGkbyE_1wM>=ib2;weff^M~#5kJmM?-kaa(05hM!sk+{M+7@`QVnF@` z;9~6|{PMJqbujWDq1Se|V#&~6FyVVeg8EVg?8bMpoic<$kF-P(pJO#|;KhOKJAc(o z=rZ9!sr<%Z`d~`#CKi`0Qk1qXStPf^&d@=VQ=Ap<1Sl`fc|HQQ{DWZP~P`G~?7M zY%gHO!llnJj1&n}lDdLIV9ZfFDiE9@LLMJ#g%F0eL z^Dn*?JSw!?lxoPowNC=JZ9oPUKz^I2z$Zrr5`y$&5`@ikDp2wzqb?h6ND8HI*WnGi zxX%p=g!63v$Lrp4;MxfcJT8}cVz;j%4hstlbK%;dfocsv+2+VCK3-96%~xSoQ2_S13{1vJv^m=HH@sf&o0%`$5B)g8&{ms4gukkaIAdNmDTX4Cv5J+Nw4vfnf6*38N&#&&gyKSyYlu8MbB%`(AbpDl9n zIt(VcR1seggh?^drw)cH$)zfEKmb@>T@?mq|M~8u*l6Wzuy0Oi59kWjqdH|btVVNC zfO_?LG9GZ&0;sYMdL>j`c;|xv4S)QX{_OI1{TcTB8X%ccUEzzp1vo(tW#9RTYj)>5NsiyjgYVFaZ6gTfVyAHYnvKU|o1;XVMnD)m&$ZU5~=iS}UQld*toX^zM9*pTFYvEgjH>5b$^w3Qm{* za|rn#`*Ib2@84vI@TH)jpym6^MaD^fMI7c~<|h*`+P*_0y2JQqKqv`C=wwF89NtRs zJjV@0TiNgn2so{&e^A89-y@#>21s5)Iwm-Bl_arCpppAdy=3gcbWaTy?er*K;F}OExMo z5gOyDZ<=afCPt0FJ+GiK@P_V8P*cA_50qt$VL9xrfapl2*<^Ttn1IyPg!KzTZUsvt zt#w6GIG~2pB(H>Pigb!#;$cYGOP$f%b;Lov;W=0hF5$D}`^C9WM$r<$Gj5~*-Vk9_ zD-0DkEMaO!x>^)5NHV-tS&d?yUi#J+^(DOx0kR|bRtYIsku^*pVo+Ru!Vy|iMt?k5 zYs&iH1hIRf61&UmFNzgk_7CNebZVCmCkj1m0#{%o*ADSYi>t9W=)|MI*$f}?T^nB+i27z^W z>hORJ8qg5)^PuK37g2tGhKZWX<)=W2>{`jnTcyj-T|=ZGUKQg`UKi@B$OdHGk@$EZ z7qkIo2|)*VW}z+y&*ik=qhnz``AznCiUdlR;o8qAzlo@%q#mFP4}z46M7Au@Dk?2T z<8quh-YY5qIV}vI!*FEn!xKcrcnN&JAh53QYLCrln~KIJ^D5WF1#QKM*h9j$S##`G z+MWU=5BP2Dyo%7b@(fF~^}|Eil7&XFA*E8;u@`rmz-IZTd-x2rp6#I@aG+W_G=&F+ zLsQ2hVq%zBSiV5=0}sF9Xa$+0kc^%_3@8z`jb&A8MezLeZf}x`hTR>j(bi^2Y5u)J9s&dP zBe!k@m793Z2q|K^W31$U{OhhO2PSAlX$qWsOy#buFG*$Pl%j}X6=%0t5CKR+pmwM-*&l&0qGqe_%U5hh%1E{uS723qEg!J-G8< zuVKc~skQ)p;ac?hzizy+kw6v>!J$uR)@kbXu$V2T?~P|rOYIiWC3U5*z|5k%qDJ z+C26KbHvU1w{Q9E9>j;>mB!j$;*Sk*qtYz8wi#yNbo`k{uhfnOK4XTgkFEwAOhdg z2*3o$l*NU6FKDti=ZDHGO&gYInkKCvZ{H{etZT%Y4WMU16bh8WmX>rV`1zw`bW@Ed zs|o*Dd_9HlItOkku>26!tId}|`!XCwOuhmq1duh^4~v;(yXQSXDN{Ot`>n(DeR7vv z(3k4{|3TYkPfp}@VF4200JIZ<_5G4JZ&vXhq^Z2nkg6T!S5L=DB1AgVWXHPAu6 z(@eQWgxrl!<$Y>S_Y{p(Le|DecRmqXQ9}1q}hWf^h18gl&Jb?hC|K|>VKrRA= zVr}lJGE7Eu7~=VWaAxAvNlt`{20{l=v>q0ct@NFYM6J^NorXEV{p}?p0sfxXz!fFX z=e}E}{^A`vhcR-|*473Zo=9$ZDo}Csjn-r)fLCpYoStc?Vg%HLI09rc(Qs=nL0eRv zO}?tP1ZQ4WMayy|zY{07XXGsp|HwNn|PqV&{xJA)_pjr@<#6w)aQ zD`vWHQA~Tf<=Z0+q!v8i#_;W#rHkS~U>m;*Q(?2P+M= z;zDTBtc_j}>XU$j4gaTz!R>!{)a(BYF?@I}1rLE>>O=p(0RMlW2XR1+!NI0iAQTG{ ziw-h}GgY)UWi|u?Hg`EY2P1WoKWcQ&+B{nI_4Q3=bLgcHEt3wlc48=GUvqL!t-C@+ zLEw@eot(ffO=^3s-}#+dUeW^Aa=GZ1PA#8XtJ!&OD@IaBhMJncIwkNZBm#c!1P}vx`d}tJ@(ZImqW3~jgC)Y7@{>t<`F@P3y<40ZVe@m~XmY@=F{`Nh_RJoks29#^_ z6Cv30t6N?XpTI>BAl!J#dr17v5Xr_TaS3+-25io#O11ebsD=%c0bYhp@`&4c;aT zK>B^DJn$LHw~7iA7s7x`8hw9iKJD&CPN zHAcVB1SOIxaF6Ufe*@M38GIH0jw0XDZMO^M*zAEv^KB3D<$^MNWKwi6@=J#A4Gjd~ zC}8W=(XnV_OisGC$N9L@EzIxO$GWev$F#%!_4pkD5uLe-=`(YzcpR1l(b3UI?`9CM z)|M!hN&A^vlsD!sZ(DH7v^M%wwQy% z+t;sOe@AEIjIqnHKtT{J84+I3F(qiRHA_LP11rmMZw|((ibrpwV`;wX@U@9U^so)c zTLUjl@Mggt2@mFUV^G-EmL*z=^4$R< z+1VKvqdWKUociveeefvF7CyJ{3jnnG_inq)l%_9EPEJZ6SMNoi8cdgeRw*}lnj@76 z3jya*I@E)#mUTAXDJUuF0a?7(WtRfzuLuz5leMR&W@d7#szCr2G*s=-r*OMG13^80 z+kuTrn#B=MtA=BQ1(!|2hO-e#unz*}Cvos_f8EX=pqT z)0qo#zB(eEo1Y&pFk*!KKD|#DJ4WreeY(@pHhiLzVWinhB;M@p3GvS8eUB5d3l1Va zxICtpkN0BazKQ(fgP2)Z_#A4<0f8#4W1t{E|ET8i0iTG^)mJ*19R_m7-Kbj+U^5Wb z(dyZ7Fg^KTbbsg~y~6xDGoxnAh9~ksfdOISHefqgQ$0Nrb62-01OlFOrN!zsmOqP%s_N3JU+lj{(SD1fTUTE% zoc-xtk&-allb_?JKNa$oT0edz!7Z}7o|)r*Z8{HE=X991rk~nwBCFe<@)oloMrpN` zj~K6La`)WY&Q4fH=EajA=cWD<*+Lh`=5xOskb$Mv3N3OPi<_mU<20FGz5qKuNtH1w zH&?%mSpm4aqg1!m{1=YojBTMt(uNR_lVOUKLXwj3z>@i1S&0P$15=dNc5-^ky0^K% zZ(-Y_yPo~%yS^dIqU8rPc@oxoZWOR*5c#gS#Mqt zLIkCyQ9xy4cE7T2xI5`psWQcWhWw216D2TDLEMqpW%CpQ4qg@oG}BSj(X~yC6*=!$ zO+trNNC>j~P~^F{*t}@n2ax&F^75CP8&}mwf}G@JdV9DfhV?Vv~ek>|bZP@rJ0haOU$cc)PjT$NtLtggAF|yXt^YIZL7JIzJ z^x{JYd(#-dQl-=y#{b?HH@~2uY)v5Udrl65W$N5_M`iud4e1vJlNW@u!1Ikr<#Bq= zMmM%HBr$5>aN6no`0bbyB$#?~%*r}u%C_A`qY@$mebNbhzoRpmZO|2lY6o%IZRiMH zJpoD!AtFDQj$>LTeFR4{h*7El%Ml#^Lc_%k1P4uEA)Ytelz_V|0h1Hr4Z^d~C>_)& z0+cK&I$Dnt9Py$e;&t{0>*;KN_9aM3UtO(6>=z@;iH(&b+U{P^-|fUVL)XB!*w`Np z4Rc42Iq8g^4(K(Oi?*tV?-i|2(-xZJQQdiYGK+7@#^GFVFGW9?1YzcH5I8tE_;V$K zj6W6@*3$1UaOJU1ytkYg8JT@ej#XdpV6QGO0>0yXA2$AuGd5(*HiU$SB(%yMCaRx+ zNSaaI3o6F%cW}~{$V9I~=S}LvFvL|=U)c_BtlTV?B=b@*un!y@wmiebFgUSupm%Y0 z6npQ$Cqb-u6tm^$=QmYrL$ zy`pk*QN3vmrU!|#BqAabIu=A^%_PK(;U4JM@YlgEdLd7J1I1y?U7}A);vZ;sG2<`v zU`bzpf+!CfiT`;bB$5S@*ioGde(J0CK}y`-0Xr~_8gw<4n1+t=@lt$Dq*t$QS5$KE z=s&+^nIKwpx~tC;5qa|z6A2ytLkqZEB%0|98hX?lDe&e0?(Lu~*$hOKr?&Qdfq_3$ z%Xq$g`xZBKW`r6P_)~us4d>tAN$*l#rSaaaR}S^{YumEu5sdna_%kjvH)PV+uRkM$ z*}fEG&99u+<0X0IlMWRrCz2|{!( z_NHxLzQX|W+^Wh2bH(hmW3@gVVL+KZfmxY3?KEbfOm0j)QuNc=0UKP&PF=cK;fp7) zgEQvdM@mgOhPSG4ztGPkkdY<gZIRUNy^6bCM(2^ifJoVvHCcUu{(wk7Bo z0pGlCeIu{p{4yJz%!lYaQ2MkS4 z>$2hmKKEb&d8BiXpHenW1SGxj@bHen0YB*80|?9~H#b*)r#Op9T+GZ%axFZ&;E>kH zRur{utkIzNc6Q{LFlv-?IJuc0ocRIKjZjd-Rw54X&`qm;^?%+zca4`We;aF7d`Bi0 z4&89j%}?90WRf}6S;JTQ{_dC$N)F>a+58Ekw!?KTldWE>LB0Aud0u>#dF9{M*AiSHKo7*jgfyXC)(p%autL($pm6b~*?JgjfG)>5u;j4x?5m2q|N% zudf4VsU4U-5C{M=ouG?^gK!?+L}K#VY_$VEa77RowVM1rzKS8>7uQ{v0Zm&J*eqb$ zh6iscdKn6fX=RgGz6q!3Cgz_bx76Ac^f`)qIbmR)hnZ4>Xy7cYohs z9l&R?X)IytRoDGWl6+2iU@i2+*~VpbokQHph`YArrMVmBZ9H`__i!njm&fV`%GlTh ziL(L|s9e?{pxVj~{Eqy58ef0E*PG@qS}1+>f%wL5VMe3BaOcw1-Th8c5nCiRu&+<5 zFO3iXt0+^x{3r%12g3i;$azLJc}8&@ElUwd*eJ{3VlNQ_hEW1x+gSESg($-m6e5NZ z0tdsWfFgK6(1M7{u!j*wp=^*SQxHv9%7`LMV+C3E=1@<+^h3Yqyvduq`QLkgcRfcP z3tH+qY(%ZP2xJ-hszf;B!7yt65I~nd1can%$RuGcnf7zZsaEgBiTT{T?8;BNC!^O8 z<`xO|7l}S3{85XUv3etwc zZ9BKLUGzz#vp8x@W4tO{EBw-HIcpaeDH!)xNo!mjUTeTNX{l@an=bDRnmrBo18qtC}w1y5}l_Xi#v_Z=)aZc)Y)1 ziB(Z+hmH8b6qHq(OuWFVqM3xHlatdF%&=QvXZj<0PTsyynf4%JjzRQU1vDCKB9Fdn zbQpbAY$u(jpub;)n9V* zyk=ErxuVZfo5yn7VI`)fp>D1o9x1Xf2;956x_YMBaq2u92rT2Aeg2r3b%~Nw`AP5v zGs~2DD8P7c-w|*~X=%ck^Y8(ZeCP!KlxXTUg2JI7>URxcUo;zn)yw6sJE9Xr?r6P&d* z&4HDhgZ^c}4BAe9AZE8UqEK%nXZ~C5pJDc|YNbKVWyR*@D<1ci?I!8#R*rgzk9~b1r87Qhv zyB0otDCmv(1E5Djap^0<10P&h!6IGsY!vZi^<{!CCuJ@8!m}6WHy$f@Rt8|6msf3U z1-_4sd=vB9Me}_;gy62~oCmU@2Xvx&p*p51?PJv(yT#o;0Na4Vk}y@t4+g1|CJWU= zgWUt|?e|44jV14SBmO*av%8UF}ZXBfgJ)A*wI?i9y*UWu(*<_9f-D z8ds=2!576OCHc$|2N-8RkMxqRe6KOLu=N6bXLNHH*g++A>@K_4PpB%4oE#5&l~FBToP=DyXYvd|VzJ(cs{qjGW=C5V9L;lxS@m97o8g z3fb{Ok;fynYP<+4n!T$vm;33Y$JD&l&)ZGWQ`4_yBSzB86$V(%2DY|#Ax2T=vAY1_ zgrC5kWD4{)JTObJ^@DYCk^sD3WCk)Iv*Mm80WCLHbsX-c?lz1D>u=QV_MqqM)pUPx z4N_+nU6-;WFT3L^C7xwdlX%}KPHwi($0`(z;_trA&nKVo=hL9GQ8Ey^h zO!;2f(dnmk%&Yx$T*^XxMs(J|4^dJ&J0TfGRyw43__JAoCD4O*HltPHsa_HWG3v*K z1t*b`I5CXQLHrV`XLoV5*p~ZuFpzJ9U9OvBotcu584G_86iYA^ck4=GVdyvC6x7%f3IP6yW@Xy*$xt+-j~|LBS$wV zV6nq}uky{ff9iUjF%lUOBG(3~yv=Ph8qHel2m*z=kq9(NJLC@p`5!Nb3GgWP_wnri z_EH0h%+wg$b+52tV&pF+RAHo5F?iQ2AIMFmYT%z2yR|kO9&U^B?l1nf6;H{8(>Qr- MEFG~GKl)Ms28-_j2LJ#7 literal 15311 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 diff --git a/doc/salome/gui/GEOM/images/arcofellipse1.png b/doc/salome/gui/GEOM/images/arcofellipse1.png new file mode 100644 index 0000000000000000000000000000000000000000..cd50fff1c7273354590f1ecef43d0897aad0ff61 GIT binary patch literal 2429 zcmeHJ`Bzg(77pn|6P5ub+UzK;kc?4DAkZvE9)d_P@JJMhw(Nm6E-a30qCfyeM3j>! zkk~+k0Lg$r&}K&HAuVzSd2O3+2%DoaFam<4k+2Jad7L??PyaA8f54nMr|PS^U)8<$ ztEwOB-UR)940O$OQ7Dvw?=deH3Z)Z|^avapVa8`;f>0>Dm#-IaBIO(Po5QTJLDRoR zj7%l|GK3~)c8n2hiYa(K``u;7-(fssboPX9*;eL%@^iiKPdClow0PZ;J`uY9l_a>w z#YbsOAu!KLdm0rp@6kS8e_FEi=%^@eM~N-@=uVuj(HBII0x^p6Z;UzaT5ZacC)XCV zcFFC2xc!SsBO`anT(2psVwoU#%Pb+R9V`8}mMUjiA3+xJG zB66vKd>VCT4{`Nb-Ylk{wCD=?`-Cr`ft5wA>_cl^*Tigvu2fX({u>1jPDI0!+M*9A zGo$+;gl$5?{VMH+R6K3b=~|L|&*8yu=uP?0vYY3Q$Ig9L?EXHBwz(=4e|3m{pP3m5 z%wCGlx)5ZwD`whn#(?Az7Y@F4p(K=|>$qb&ksW|s=c#CK_UH(u{`E(($ zNu+<)S_v&@o#$yZ3tdY(<*(EJf?wDM*~~xk z9WH7om;D(u1UPT&?!Qd(>dZZbgFAlb;+#r50DER(xW1qHN2tA^9omkgwusE0ExC zt4LFa?eVI^jPI*^T%0L0-yvL6Y57PM}ufa?+TjC9tfNTy5Fk`!TRBRRF z3T7;dMJtN={iSgnjN{zIAQM8_vK9S9V_Uo*P< ztq3$(Q4Qf-A3~&^WeEGt5uz;W75bqgk=L`O>v1(F3RFobB35A^)|)Akka9zU5h6mw z;_uibYDu?F`+=(Hy^dT?9WGx~pI<|kYQ@rS-Lo*u%n%`pYsi&j2mzmk*F*;SqMy#f z)35ZAu@`conGk4M)sJ@)Xb}~=xlT+ZV#=+W7gc3qDSoCGGIiWepp6)bsNe47SK5Mk zQ`wca>G`|4tjk-ynI<0W8g>Gx!Z6t9KvfP!pJXhf5_ugdB5LlZ&F%Ftf*4cQC{H(E zWK>Jy^kKZ2;`GZ1mKN^bE9E0eRF(4xI@n7j1WQCpD}4W#UcO1_(h%aUOzWO$!C`bVQ3t9*<~2o3gf?Mzo-BbI1s)IkpHg zPwgV|JXb8L^c|9son}smYRoIAuuU&#HsUq)#cGABpJ&w{-8M!vk3Y2DQj{ZKM{DZp+H~ck$)E0)G!EE(@k>$i z`HMo!;5*781(z)lw5_JD3$0U#Z7ZjcPb@AYu)(S#>}BiA_9Od3FE+F_8edy4bCX_q zNG@Hl;_QjZaOxmXwf~yb+)J zNxj+|Gy5|kW%!y|=$mZ%TIq77dc9r@L zOq!TdDi0JUeva8UJFlG_ogQUdXDn}BVh+&{2}i<~vVfuCd8bcHB@Wq7!v%$dvf1dW zyKWbs!@VSeoz*NFSE;;^rX?|4HNwoKlRFBi3_CWB!z#M7FQYA z2&vag2h$X~_6pmXGC830e*Z?>?W~ypTBiKx0tQ)mk)eYMlO#=A-ad(xRVZI?f3F75 HaQ;65ylUoL literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/arcofellipse2.png b/doc/salome/gui/GEOM/images/arcofellipse2.png new file mode 100644 index 0000000000000000000000000000000000000000..24172dfae940ab1d51a8c1a2d632915b4dbf81c8 GIT binary patch literal 18834 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 OGF&t;(XZ8Y!TlEy37rf8 literal 15732 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 literal 14326 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

J$SI^9TIybEAV_b7-N$I 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 Na#G5$;ui*={twidk;wo6 diff --git a/doc/salome/gui/GEOM/images/block3.png b/doc/salome/gui/GEOM/images/block3.png index 61aad9b43a4ca7540620889ad23c35d3fe2a7241..af481b7aa04c1c3e5771f22cc1e32856d4b73c68 100755 GIT binary patch literal 21373 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 literal 15635 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

^@O0#8+KGvOeyHUH+FF8GXiOoPcC3 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 diff --git a/doc/salome/gui/GEOM/images/block4.png b/doc/salome/gui/GEOM/images/block4.png index d0661b6e98b1920495af89e0be060960f749ea52..5ac83e27a82a031abd96edb486b3006c68824b51 100755 GIT binary patch literal 17384 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 VP)sbt{|65Q={NEc5HW*K{|i|^{Ph3; literal 13453 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 CQja76 diff --git a/doc/salome/gui/GEOM/images/block5.png b/doc/salome/gui/GEOM/images/block5.png index 9810f6f0dfd56691b09c95349195cc4b63d8c9c8..04159c06861aa7b94d4a27e4c92fd7dbc755bc4c 100755 GIT binary patch literal 24439 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 literal 16710 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 uJb3%@{qtvb;pHtI9d=o624-5t^$OD%ba?{m+& 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 XnY>uyS}X8*1=0s8CCM@gqc8srt3cwM diff --git a/doc/salome/gui/GEOM/images/bool2.png b/doc/salome/gui/GEOM/images/bool2.png index 4e9b968622f6087d707521eb3f79ef268c368ba5..bf027eb3ae801c6d0ac611ae2994d241b3e5949e 100755 GIT binary patch literal 20978 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

kGq#R&ZE<|#vhpmz;lqMFYryX#hj%;qzp)ZPd9 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 diff --git a/doc/salome/gui/GEOM/images/bool3.png b/doc/salome/gui/GEOM/images/bool3.png index af409a15e4f92d69e4b5ea3925d8b031a75b79f0..91fffb1302d999abb55999514f88a2bf02bd749c 100755 GIT binary patch literal 20914 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 QUyKO6HNmRh!uOYd0g_F{;s5{u literal 13184 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 diff --git a/doc/salome/gui/GEOM/images/box2.png b/doc/salome/gui/GEOM/images/box2.png index 85a737afb6347f3d7445455c6dc39c9ff42f4321..cf3be7e1f0b0ee20ff49d7d373626295a10a5341 100755 GIT binary patch literal 16919 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 d4Y?6{-lDo+nYf1b1zmSM2?t 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%0DOm-RG*Z1M(=H_Cz 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 O2$FAQ#fwFCzWhITAQ$NX literal 14849 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 diff --git a/doc/salome/gui/GEOM/images/chamfer2.png b/doc/salome/gui/GEOM/images/chamfer2.png index 24d6e124e7f5d56888f68e6190b27cd0cc925326..65c56322143d33ea26fa8dc1c89e1b81df1eeca2 100755 GIT binary patch literal 26171 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 YXkV^W!k`X+6b5lkMN2tf(bE6F0OIS#hyVZp literal 20370 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%0AixyMrFk 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

JDnDEPxPAFlp!0(696tP0ar(52oihp_8$3S7 zxL0|?|9=;l)FO`cNGw~{)#0&XhoQ}!Vujx6w_oPvm0#^<&G@lUl;=n1-gJpsKsy#D zE%;EdZ(qgEx!1aL6Rh--k23vv@1)(vXutWzx;Vj!8Kw~x3?^p4c}(}?4a`;ZnRgcK zoXg$&)+9dn{eCw=!On{2*7jn)B`>qo#r5JJANRiAa8J-9xR_ndU{UE61CwYMm$u7m z4;{8-FWS1b`}A2^29*oa3UB9LXMFMM+fz?q-N+e!uciHSY54ZLQ^gnb8v%`sa^~!B z1XZ4kE(CydKHBs9lqYcehfr#pl$`l*9UWy$%bPalMV4#^g+)yJ=P$J02psjloPPi4 z=eOn8GxyzKb4YUEm@HJA62p^lp>*x+zh57(u)W8iwywH1cFtn)!yl(Nc4i)OPX2%J znJ??Xo7})%r@Hx1#6P4y*5P6H;W@D9;h%TQ%(;0sb6+-)6ue&jaMj}PdcgTnF&}2D z^(7zfPJb@D-q3*OxR)>Ub2S9$5Z4 zu=RjJ@4k<%jC23rJofX;(IeN^SD#F{>kZ6xhxa6Z@?JM}_PPBsi=~cF)&9kF;&Ix# z*B1)bDH>F3Dk;^8i{CC6e%JfF^t$E!nT)memxBJw0j;-AJLJ3lcUAhC84oKbuLriE fq|+-H{>XP9nqKUl(!T(B)*geWtDnm{r-UW|kyhwK diff --git a/doc/salome/gui/GEOM/images/chamfer3.png b/doc/salome/gui/GEOM/images/chamfer3.png index 801f8db2f47e19d0e855f91d6dd781ae5fc13402..e0af355ac46ff367128add5131dd4c0ed2a9eb5b 100755 GIT binary patch literal 23909 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 literal 19509 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 @NUkhI_qgO2^>!@*U$Fa}vB9KW5BNEuU8Q^t-=3 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 literal 19576 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 literal 15333 zcma)@by!sGy8j0dL1~eYb^wu(?p7&9KtZ}&xYWTN5+WDMZeQ`l+)DE9u zfn)BjEe)8Mu5zWFbqDhAdYG7)VrLD#@}&}S(@MoBAYfcw_xT~!XsX#52oCWx(6cse zBK$-cs!cSWK%wP|&v|PO1Lp*>UbNT>rW~#hGz-iZKe|(n{dim z;kcycq>mpz?k$dtAB_9DJj1llbD1=P9zK`k+(B*|HwIym>dpwO&0JZt8RXN zb$(Q=k-xmMVt0OM1|gdn4stv4Ff;FY!q?Xk#ig>1JLbe!#fq2P`r6qUcda+2b-_`` zZU%kgZ6wjGj?OrCGtHI3&WfV74(fif(SoTgL;p2iU8(S=8U0A(LItY2aW1c>zFoJH zuz*v3g=nkkb?3D&LBq;-`?(>Be4IrZwUxHl!fU;0>5?JDWtOg3b#--WEX2rdS0iH+ zWHa8)QvZ);ZZkJ7oPzprO>Bm&K?ec5Uo};=%;nbKC3r~#qP&mjt_)cDv0`K2L~7Pv zqw(*TJUSgKeLFYydgwe0j`)RLv+0tdv|}w#CH5z4ZerZ~@a}dX$xw*}-JF2*;ICPC z4=20RnB(f8cICnaCt?kZ)3<$NfBZwSw7R=9UIq%8jpPvN=;-jL$S2D)klu|Y$06gh zZj$4hX{qzP*gHC24cID7SB}<_Pwic3k__ysV#~;?&YN0vs-1FLWBx{PM)IB&J;)WO zC3uLPJy}x0U}d-zO+FddZ#z2IY-kZR#TxE^S8lh}`M}f2#Mlyug{LHhAgUhlvt;*t9)X%Fj5s)^0u{%z^)i zop1IdZ4bGoj7U^laT!aT6U=<%OYAevMMuH26(86{x$rNUGq3cyrBau`$f&5sAI*Uu z#*6e5oX|{o`LS@=Eg_E*&M-crp=B+!*b-Cvdc;i3Tv~QmweFya?eEXhUn0Y2%08?t zFK0Vk)+^K-+?=d&SO>Q%)}xC}vV2@Qk9696vfV4}az4t zL`bc~7B}MB4ug;T-W|P;xeKnR&Q|`L`PTJbnB6EAdarCZX&PMYk7I=C{Era|C*Ygv_4Pd5+f56JI@@}%swg^YRqoy zU8t_j})N5?;qV&C|u;p{smvBAgm@U z394f_OM?@6oIH!dVf+RgO}>SqKYJRz51P+tdUbA4%lg=&aEz8w;gPx)*6J}aOh{E2 z=VI~NDU5nZgW~k1K75Ilm~TeMI1z=eaZ85O>XY7e4ov9|Nx=3%D)lA{_%$!k zFz_X96&|F!5@Kv5z*j~+_ZKA_I_l@P<(3UKyXV=l)vmlxY)|*}?d|P5^Q-kJvr7AC zsvh2vF`=687Rz7ZZm``I&10!@=nG3jPGqZ$mogJSDBy+;9kdgUh-_3BrVvIe#r&X!f;EzP�ZS;3}ys<3MKgg$#MiQd)QFVnSWLOcx6pI=!~ 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 literal 16232 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 diff --git a/doc/salome/gui/GEOM/images/circle2.png b/doc/salome/gui/GEOM/images/circle2.png index 77299521c771c0249bf389fdd0cec28fc2ca7888..2597148d6114aa35f261058a9a807271059f03c5 100755 GIT binary patch literal 19811 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 literal 16343 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 literal 15049 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 JE4}w+{0;h6CL{m= literal 14640 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 o0S^TVy^IJ57$hwNDndO(A~}3 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 KN)|si2>3s0f}Jz~ literal 13421 zcmeHubyU>fy7wpoA_$I1Ny$*s64D_E0#ecE#}M2{(kq~&+~lZ+4K38qV(N65AQ%Akh`)nk}43$4Sw(& zc^eB{fuByzLm-bJvXbIzW*@hv;O=VbztDSq$=!5>PsHzi@rBWU%VQ;03w)GzaY?)z z!BAB1z57TxX#V>HD5lh{TNpP#5y7Q!VEF~NtBSnuw2wa%WTsdC& z9zX>+CXTcBf9EUh@3m2rzX1OgShPOiq;cbiAM-(>wGrY~J$_T|kGk8NO`P`<42|OP zxq5C7l)?7i7DF5_O1n}Gisi|CQA6?ENy5ny_1<%C(zQ=u>MF0}#5H0#AeR2I>vL=T zNL_wBg5xJMH26<$Bjw`wC=>Z8kv8^RB9Ywja}OMC)R-NyOS?v{R84yg;GA$2I{zQKno^o;=}Qa(+9xretUMjiKO==RfcM`bCi>Z2M_}F>EkR9OEIcrSITcvq{-p$NsES^=R#h z>G9Tt(v&NSy`jT{P`oHHMPs|w)#`P80`sY7DVtn)NciFQP<;2M1$IcC+>Ka%QEYh% zCm&qc2Q|3Aa`8DdLC@i#^pV(a_5yJyiTe zAG|hLhAfB7I9*o$R)nGuqf+W(NLPz-tghlhYp5+hMO@Zr^8^FZ(f4FSxvH_j>@|VZ zUYAf)Xa1+()6I1FqRMH>l7tu7%D1Dk6^Y(d_CR$PYdq|X;�CoEkC1n&RX9KSpdw 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 TI|h7>2qG(`C|M+7@aaDQHVLYo diff --git a/doc/salome/gui/GEOM/images/creategroup.png b/doc/salome/gui/GEOM/images/creategroup.png new file mode 100755 index 0000000000000000000000000000000000000000..f629103d8e76a73013885f7190b2db67aae4e82c GIT binary patch literal 29215 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 T)9`^`{D@Lj)KVysvk3fueHv>u literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/curve.png b/doc/salome/gui/GEOM/images/curve.png index a9541de0a3e590c8c2f174204f64a64c4491c3de..b9af501eba400155fc025dd37b751791e0c8bd26 100755 GIT binary patch literal 14943 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 E0E<6hK>z>% literal 14719 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 diff --git a/doc/salome/gui/GEOM/images/cylinder2.png b/doc/salome/gui/GEOM/images/cylinder2.png index ee6ed12e614b00840439cf70a41f58bee0e0eea9..ad6af2947a922418cdeb744e616fc81066dbf83f 100755 GIT binary patch literal 16758 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 literal 13539 zcmeHugx-IGkeckd#$zC_xp+Oo{$%6@^@}Oyp4f@aYs=>MiT=AQy9G6 z@o>PA7UpH}?-7Qg%(GWk{z$l+*Q?h*fA1pFdLNT=KfB9)OBU~I7N;xS6Iu9u`V(CktyuNooCm1I?^!E095}7wTHyvKf5HH`n|M=0Dq4(J9W|~Y+2&rg_AxgTK z8F9pbJfG8cqh-IoU3#isVzFCYYZyWH6!#uwsHy$lE}a%}VS)=8U^3JDV=}osH~1j> z@)kko)=745PIP*_nw%VtU`lvP%hUJo-{bwrTPV$0?7~}EOL`=p{xe{$VKgnyVD`ju z0y%+2O{m70XKZ9-!itb7sCg>(VN@+o%?bxoP;7nOE`nM@DX>HOaAWiq9$pL5)#+eO z1LG~^Rmz+ZvoU6VcD*Vg4gRCHm+tUN=^5;a8w#qbi|rwc?kfAKn@3>cJvXQcw*rmr zMMW;Q^nZzClbI=hO}^mQpn#SRAK_8Z1jL4I)Hp;tthg1t#%CP;ruf+-_EpxKGOgm^ zlSs@DAEg_oa4<0m)zZYfLSmS|L7FA+Jmha*cQ&b*w70BLbf}%ESk*e(hRefCKh<*c ze+Ufh%E%iQ@hbXOht>1L?vc7HMPQW2!M3xb=U63{+-$9%GF1i^6JdSp%~rtzF)X}7 zpV-b%{d30Fr>_trI95kOhu?N+|IAcO<-F|urZR~BTHt`t}b=)fsgz1!>@Gw z1u1GnfB4lHVYk1dN7jcwj=gjG@SuKMWs;YD-_P((%V|VwQevQg)aLX2A9DmP?FZ!9 zOpWR>XL(lBrF3M0m2Ez|cWN~IKRert_-^aS4;3>^*a{M&5YNLOjwTD-|wak5-|KvC9xTp_H)i>j?E$+oL0kc9X&H}`Hl zLAu2i#>+peP&cqL*e|#zV4{F={26U02A*qv6prCVY5!}Ac_ago4hN%dQaOP7<6YxBz~ohw`x=v zeN_@cnm62)As;#CEP4wcpMirzqC?!Z{!X=+B~gJLylxB8oDsvUrn#Rf%3m|lrX`ii z{svB?4x%KW5EZss_zR91yuD9{!I|($)Mca8_sR!s+1EyJKd$;-TT9|Cj4l>C#AHxr ziE~Mx;#;RdSH@}IlW3+}8KtXc$`L_oeh-qIvTs-p`8#(O2{eA`-g8k#E7zd@lu@0U z(rR6J^9rV}-p> zTR--fkI_8kb>rT30w$wl2UPFYF2-|bW`t(75PjZ@)}D&0=`~ke*}3L(N)CJ;mu}AW zJiM0F4vp?xKh@nAE(=59g882G8?Tr#amx{D{ZT9D&V zq!Z|OaoW+I-|2{;Zd=^_9G|Xar68~|dT2itXJ`iR>gw|AVs@&x@5!?91`T#D*~ZJD z2+5(Lq0pk~`Y>yY`iI!imf9J=q}u7X4~_1j#NXZ?cQW`6JvkbXGs})=Z@>Mr`i+2~ z*AbWQ?1}o&5FeH!^z9=JWcpk)WP7FicUO@CnpDWZm!XUyZ)YYl_PkQ0m+*WGb_H8_qZLnuNaCTa1VOYqM)Em)^ zd2$dw+k1w55@Y#&0e*9_c6EDpA~MaQwO(tm#4Ux&MSP6yy|t6p{rY!(#kATMSGk%Z z`mZV;`bRvyfrZ5<&BzfR7Dk{s#4GGAN>LAQ0c)R}9N4qGu=B?ZQSKUq6~wT=7co^S zp1sulVavtR%8!%z+{33(gy)O~^S@gSoj@iAbCOKjOZBbwL`R}M@`=^w;g3#X)(3QcB z+|~Ve!=y2n9TIRoUXxDwM7g_c^MYD4Xl_!yib|gEb>!U?K!{8$95Px?7K;x)Iy59`jnLZJgsFhRirMIkLX?CjkoSvXtid{pUYa%ndvhf9gmr1n1w!w^Fgp9-Idxua(c(j)3xJ{cl$Pbsa>bf9R-W`=J>*q z$3?6wlYB)Vbt|%1Y+MQYy+{*ZCmISi-*rIQ8o!8q*dSFw#zHY_U$06-S@EF_CYh(v zsCP1O~%7<_a(pFs=8lg_$%4<+$WS!ORT2ULY0t-DLOg&xxGC% z#&N`De#^3^re^7+?MS0=*a$z76iOt@65Ul|mp2?@ojgHsGLHYwd$PjWQE!{J;-=;2 z7*b~Sdpbf(y__fyY%#z3FUkQIkKst;?&!yIQbK-9*|epTY2Ggj5@!R19GzE5 z2vVrkz5%R$@yGU51eD@Tg=G)G-{ zzeCRU=&kz<%ShOU>T1xe>D9QY{g|!XQXdV%QC;PXR#9&?+I59UF0yvyxUudKGLUiW z>Zb+K?+14k(gZK|Ms_!Uhab4x>Xc2#Zx?G%e@yk=6r!bH8MF8h^s&tMN-~00N-g}M zfc9>;%V|H9T#$fae@9N+U3h+e-s^anuIXHoXW%FX0#DF)yp?NR?&UdqhDdRg0DM9* zDCQe%_m_-}%sp+lXJKn=R{MVYUr9>veAlPz??ldeu=qAZ#igzes4MkmQ7EPm?LfHQ zVi)f8o>lKMm6&U6IHeE?Ik`ex;2m$WMNf}`_uC2+{v0h|Uat0=xl@Uw&#D`)){7m# zi%A`7&OZKP+!jcxHhHCaFmu0sC4-31Ws2VizQ^`Wgt9L9r?sm}nmIAbWE-hVqdA51$PJU~-x@)=FXap5= zYlApVOglrDj6lQZ6;<9%HPO`e`L-a3dN_HY|1^?GL?lV-@+1J^gAV^Zcz3GOM#~I- zddmfx?}dpwSM=w@!-VtK^GuF3RANcp+uqF9cON{j==>D&jSRD;D~4H7QIU>=BRn?t z9u*-jnE6U5Tk)e7noe}a_Cn>a6cNXwIp+74W8Oct+%C=z!QM?3_aI5=kyTQ<4JgBP znx&xVdaY$3>nHK~WVHG2aew^t&3=xN#+*H5W~jnxusH=dQUGDvCXKZ`f!aC==T+Ht&hB9UW z`1!;n3PT!XV!mR(SCB!cwrz$!ryToH@{APwZF+7&Y?}@``=b2T+U{`196wUxo`Qru zCP81J=Q2xP8Z9Bg=F1etE92_u(=2Lw`qiRc)qSUiYAkGbggJc0o_p6wL{L#?X-4*g z{8CqWuOI%COVuNK`unf9*(PjS-e5ne4spbaR@9 z`fq{^oBk_Ps`sP1*+ma9_j#A=ui=V`_o&9PR>qM^^a^1aO z1%(bXjdS!f8P<{+ofTNJg2hh$^=R~t*n1irday}fUI-EA&p4VVQMUwyth3Ap|9uvz zll4mtK2|{0ay1^1*t{vBd-4RY9^T(>$vjl`Zu&+-2wvoz(ZVytz`~QR26_{T+KOI6 z?zt#K8Cls~&wLRypF!GMPxN%1@4CUHE)kG*x=#xfKxxX zV{yKVIb&(N9w@se@AA$%v1B){YA!ZP=3#kE+FWx5MRW%Z%izq=&K6)2>HpjKKMkw#IUhDJDvBI@Rz~tJNWpfh*@v`2-_{T6j5_l9=BhE z#Rg(bDv2%NUf>ZD<~|F+xj8lrh7@LN`P>ybCF|_WkAa-3+>e7!SA|oG&dkAR@7{gt zIu7ymE}P;2TcB3F@O&1%Z9bH(n4Ob@S$eUGY&f2UefanhVEo!hKB>C+CHC=*xBAyZ z@>;ch!FN-!hnwSAJALDbB^Ief_s^OEIU8b zVc)zt?^sLDV{5pKR!Q|6KDAx;BE(GK=Q#PIq-9E|I@^MVh( zSy6UPJr~|vPpGTbJT^&WN$o4@MG(3@YqkhII~?y*feSmj^${k z4SUFKgppEh%f!n&gis|W{s-1T{N5c)mi3EyW=_VEh-sk$y7BDS`;69%4jZsK|bqFhJc22T#)oDJVQo!DZ@_&ce}9xOMDue zxJ7RncWm14=XiO;iapAD@eQqxhSspp`#CdMoUSj5pwfb>d>#BKhAw5^WVQ5g5!!*i zvm`rTsOiDDCc)XV_L-$!YIh*xu6ACigBB%Cms<#*AWB>&ZnAY(O`W>HoBed z4tLyg#fdRdXF+Ox=8Z)h%^@p2db&+uPps;ya5wkS3_U$cNAT!Bk(DNzlJzX$Rimjd z4DS~oZoevzOtv7G`|6ALDcT#x?O?i8k#7SlmFzJ9#^FMaU(9U=SR_*46H0HmT=!{1 z0uGtj4(d2C;ahUZ!f!{z(Z~l%g&C#UUo2GGul9^XZnB^hAZtV2%)DWl#LfiWK zO+A%fXP|fLYXzrniOiB!m3_KOLm}yod1_{++o;_RhSCThyxy+=2JT5Ig&<ZmW^VDit-Wd(+4;PhRGyj+}y#9ECB5b(0=LTygXla%JgK1apF-*mG zF)PcOhHTEIsxj~OEP89@=4CH6+7GWgJI>!ETWDwr8P4~sC;%I>s>JZqE%rn)$h7o* z%Md>s4{K!vQn0n(NS~!xd>>mZz`^iyt;Xi8w9TfMGMS`aV|=oX8>MH>bjn zkkfpY{i(bqv_|VgIp(@0!LJOLMR)dtXua{CYHE^<8^EZsa0s6450HzRJ#mA(XeEua z(Z>yl;OhSu#PsaW@~a-95bE0QR2R7mEHkIWU|hMtuIB0`Dk~- zYg&KCg`QsaQ)HynYLG{)B2jUvJd-)}i<=NhKMvw^t8{P*h5V~m_rzSc9=X0?w~;hx z`^44M*^%L;0*(S(ObFps(dkMMO5L8V7_;{w<)3irF(V@}z#ss{P7Cd~bgQh^@rC`+ zsOF5;09?}1$D!efci9$w$^7AOyNeC#_ue@oez% zrk#rr+cui6dN(sTkAo1$#Kgp4*KG&}VCb;1#ByT`)5BFvb(r0OGDW~9(3rgG7~qm= z|CY#y4H-OCVB+@tc*C%8{Q*^2xgo$y3M86Aa|Q&C9hO`eFU@0lW6o#m?W4 znV8D$;G!6BzU%&4>WXm?raHewqny`gJ{r`!Va_?$PSm?WL!^XYHJAs!Kco=0CxO5k zv|k&fo7LWtE8AfC)<>^dcEUJE(DnrY_ZGZ9;h%vA8-tjbcxLQE@VU(g$CU#Lxk!pT zPb1SM)*N6&bb8I>#(|1UrvHy_ox=6?{FM4@H?Cm-{3cT zVt*!5imRV@wHxU=oGJT>H(xoMb*IP0-k{#q97M&zHhfykwJC6it+$7(xi?(`cFnf@ z{rznL^8lZsKY#Y?d*gmouU|Y=;-{%yZgvY8AZEZ=Tt2I%k4u8w*iMISe^t+rJXrhF z_E%3^lNF~2!|JyP2(Z7nY>pLam)(f$kZ$(5a6g$3S|9w1<+R$*$iox0yV!w_ze7m) zn_rcn&1j)L1bp*7UZpD%Mg zwcvuT4St=lt@7%KsoC!rTZh*R5e8+MvFT;s-dAq9iG$;aMplzHZ*9S`S8ec`e_n4I zx$uX}Pi#gD?qhhL9n7b>&3=^*B5XKaNjcwyT(Op>i*45gfI}oCBtP|_jj~|SiM-~w zebLhh?M6=ld@@dKUff!p2KT>_QxG->>%&1H>d_mu$f{|;yk0hCXhfqJ>66Y~3*V@y z5FEo{8K_37z@0*^5}M}AGd9%}!NWM!L~j4<{TD$k#%nvlU1dA@92gpV*v77)ZqV(J z%0WlhDzu>mmf3q*ugdnTc~5-Pajo>`Z%Qb;>$GgPl~27&`@H=UdE=DW2ZYq+E|Foz zVI35&InzC8=Tj|T;AP|y^VUMCN%dDqvrpJVfzXkWR~SC$yYjO>=y&w=^g!L6BcZ;F z{6Zm z*}cis(GB4(RAD)gYdMh4Sl|Y#9tS8yhGGoUpQ?9ykkg+Z@jbu>xpn(CJrKGfq|EUJ zaC%Mg*GJa$7_Rkc2@szo@D>^1kL&<~ow5eKU4M&^@F*@NHwiVcRWe;^(*Y8q_cEVF zFUDL!Vevv?NmF+<$K)o9io+@?F}&-=7cE1NkDz0)=B1A4UQo0#B9}|QDu<{s(ErlP zf!Tkg5VX~<4Ww*w88^tINmiiHBmz{jPzfhBeT7X^;8mBw$etHdL-2`u+*WId!swT4 z_4z-Bd!Y*FLEojm5OGxKLMoP8wM2-5tV=&;-gLT5cIFVz{~Klfdop-ads829OL)CY zp5C~f^TtF7Sn8Pg_?475=}2J+K(g#-7dQYNmY+cCoUPM6REN!4&u`9n4fkEcZ3?t5 z=_8b#-F|L0bIKrn^F?;~lX03EfVQ3Tg_0(Hc{U1)ipJfsEEwl!(A^ zp~tnTCbafxYd6(!AR$Gv<)zSrhSm*%LY>P?M@ij7VnA(9Q5{#yeL{%d>dXJ?TX;1E zX^Q*nfvAL?h5js2yt)UI&G70QV|MP`A(u^a?? zvJg~lYq9KKp#1YBjDp7zoA&D1RQHEfYnYZLx9_aino5ul9KgYWfdOPLuB+O%RaQ358IQFQqsia`z}isyxI zz9)*gapIB^-B{8Ns-1?+__9TXK9-ccOr>4XU>XQu+lo@WDZmZlZlIW|<>DAI0HjvP zTasVDQG%Kk7OKf|0_H$?w)cfG0IZ=FbG<9}Bwiq+c$Z_m^1=7pmlzoL(yyNdu+cg@ zMyU^f%k6b{!QpB;p{MoTb3cxz2pvPts z)>Ctw4zs43B=>{YyA5Y6lH&X#Gy&>Sj zfIRNuI1vLBbp){1#!4UqGqq0p2GzCGs2q7cMRSce1BvVvQAp+FA0Z(jAonq=djRKX z-@EbMw4mLZeE`ZEIPMY4$$wFYPY<|E#)@=OMLj|>U>JbSB|xXRn$Ldy3x z05B~lrlZL`M+;u7q>EDowY37TLoK1-V4@O6_IdK<8E`19#*3+e+r|NsHU}6O#OIXp zIt4+wJSqKvcUw_(JCDSl9Su3z8l0)NI4+Op}=a4gLy1IgDJxo`|{nzj2#TeL;Hq z_tSLS^Gi-x;#J9D5rR_5mu#6-~}wD-n(aUpKhu9 z;;}SHL0b9_H*>8W&)Xen+~+U>?|6~9+&EC!bEzwHo<)B}c(%;G@ei8BAmj#T{T>bL z03cPls+1rHc$qg}U5XKj?_6(QKR=8IT!tzj0P)$$qV^W6dt_9G&44}i;bRacw`D(7 z{5kAarOo&XAP+MWyK;b&`~sVkT*UG5SGuqKZ)cv!Q%?qU_rMF;`d|1`XNuiJpT1R& zXEz2EX=|d4LH=}SzRhFKA9roKnhXB{yU|3cF}q$>QHvun+fIkTyPWw1zn&)OHnord z3rk2%lEV)>cru`EgXOZy*Vo!%4&t*r7Y6*g9Uy({5Tl2D$bh;-;2B$28w09gU(NG) zJG^baQ=`chscYza;euh;eBmk=L8W6=8+<=@W#O3B>1#=K^& z(wi;~vSuK1>)VTZS0uft=tDnXXWiE=u}*Fpm%VeSrCA%qavA&^yq07KjT{a(ngcm4*D8|q-oovv&` zZx{6}JC?bj3=!x|FmyIDLw7o6wbbigMV^2E0y<^cvdwQ+e|jSD52E4Uvi=rjuEzFY zVunPAd4ehZDJF!c=fT#q$Z6PMjxrfUM??DJSyx2s{cPm~&LZ8)P(VC@u)CZX4}9M( zTl5=7CEo1l%XaM7bCKga87ES3o>*q;7%RoMOM%$DHn$L)fK>^q8&p{I?Zt(kTdtH9 z`(xqq+RwE-pVoYURilz78h1UeU!TaXv0Q9S>jhZnWy0FfyLMkvkjm_62T4D`c=jeO zGnSJ|uBX=REh{biMT|lwyZ2SLJ=V4Bl?cQ`cDwV}64^EDCVG$8@d*5z`oyelzryIF zrKkh`15rtn<#;bwMaClbaI)z}0sHuQ@GG;|EB*=eny0S=ZDd>s)MUC;A!Xa6S@$}RmTByB6wfkOSgg*5a(+>oypT~s87;KlxZ1B)`V+v0#5 zBH*YHyk0f7;+psUX<|-?qgoY?%Sw-&%+Qq3hA3bGIJMmoI*~hK{iZL|t^ToA!g5EOeSOD@4U_?DoB~-?yOM09prka^d8Em>?w|0n6Pn=I zIY;-ez^m%}FTm%-?mN(UyfdJ2m91z-YUqu8{TGIM{Jf(ilsr~$-eWb}AOhk)P0Wpi zii*I>43?kFU+zs;e%#PtT>Td&mWUrK?19vLZ98M=JM{^8Y}k$!Q3M*NMy}kjhr5i= zyVe7BjL~p$H0>u>l~ABeb{6mFhK&vg!JRztO-U4e_cmf(HJRUd@pm|e*VVDxa-_NRLpJR9X)Mgm|o>1D@zXE3BJB5jzl#x5_~B1U+~gCLm_=7 zk0y0>(2h90#*=nSCh$}rL7|jRc;6f6VFm^U3P~^b^gY5q)JikkbuOEG)6iyMF#}2V z({5nv+*7_3caM5f(ycal^qzCo5BgMDj$?xnZ}jmp`f{&_Yc(K_cB#I%wLPHWe5eNi z`Fo&v%E8@#XgI{(ad2+vTX|XNwaM1UQ!`m%Ib30>{`~oK1>oKM$&>|?C&LW4_3amR z+wT2LC+%)O5THM_Mw0G(dFps^o|s5(Vq&rvYhwnBQn~M7hE^iA*D`c5&-XN>*Ysi4 zta)}*wCfSQ<`}Cg;P9-325UCNp2;N&hH=Zs&oQ+=bldY}1uv<0{M{G+Pk{43()<7D zGXMYH{`Yk==lY}syqwn$MuUT6^PLE5PEJnBt%8CTlEha1l*MDUA0Y1%vpD@nk8#!O zfq?4^Tb&=$GLM5mTc;+aEFiZ=EA8nuew&s&@KP+z5iUz46-oKTMmV5Bin8n!}Qguxw8a)r`fw=j)Z*>uG z=r9J=0Wg3CA9HE4zDS4YHpc}aB3cb5kCZOhTh)nKM4B_qCVqIt_&nHsNyn@y>Vq$g z;wrtTx~Y`yeBShlRd%?JgoXNWjurDeThx#SQ8CHjKOV@BmJlB1*WvcX6hb)j!RuTX zS5oXO<|*;L$>_9xh;gzy64`_ zYGw6gKzyG7aO43V#NKj`#}7mns9&9CB}v||#H|L(?;*bx&}CSTVMPysvv%UJSevy< z?Yupb1Q_^z-E9HqwHHknM|#)%suxg$9#qdOZfNs`VAiF`?VvWyry$Sk)Y#L}M0N-b z#B=Da&3+eagdOGryZL;ljR>PRLns5#ZBmfq44}yFBAp5a1%*c|{p8zQ-pmqqs8&#s zJKt;U){7Izahq$wq-S7oij|d>ErX&Y5$GJ{gmQ5okqW~MStBDO4hhl0-J>Jk_CdKMCR-i|y0aF5e+?FqB-8P3CxXBmAw!~>1F&35jl z`_6mJ>K)Of(mY0*&DBH<@)NPx38GlJT@hOx>AR)EVrw1I@?S-6c{K17p zUAAOEUO)AwkSd6lr~!@=FVIG6X`(k<@?YkW1J&e>PL~Mee|N@zcCg+C?BR=1l?*Um zG=PxW^SvGsP_YE?r&I6B0g4b!qyh-L&Y4mDW*-TFgS#ABFGT$MEUt^R;=3oLGfu}6 z%Ll5gxiD0H0x*|O2_tQab*gMBc-+$9A8jWK7(rFl_Dr%O4NO8M ziTC5RNHp)hhw!=?2RmH*6CexaS{N&?PQT*P@V`SNo=BGN>(7~1f0u;hJ>1yxD0LE8 zXrE8z-Fw$~uyJu?qN9KQSRcj+4i28H+6E6!F~sua4RCw*S{2tU+zuq5c>dzWT~JCO zW{^ACEQ~8;^>{GKO>ibL73mXs)Z>mx>{_|C-E0%%W<-*L5lr110_F})EI)|eU z543Vu>-C>4gC$tlb-y-+s}Vk8YIzm54|NqMk*>cZD0?OxO!w2a;c`;ChZ^bDz$rHa zg3+T}O8fNLq+mJ8H*l{rm)ydmq%tz~h{sXZE^n(~OUYci(br#b|_vRuGXf(`(NDZ2Re*Ry0AUPGXdrW`Vmlwn)saqAy6P{Gj=DX7{1l zP2$~zt$7^#o-}U<3o}A5ew(Q^@L-CC5w&=P=tM!#GUQXR!p#_onFgX~cr}lxhBa`( zU*|?EQq1|b3f?#3rM%qG;Cqm5`+b@KF~~I2!r2euBcj)UR9M`acc`AnE>gqa;zciyqI%(*im2N`di~5W?uG zj-`4dDD7*`$MVnIt|J=_j))K>5~cl#u^~U2>5H4D2p+q!9PNKf;#wz??u_HN6D!20 z&MQnU*z$-&B<*Uepe>T}C?Eu-OF|1p4RoGo_=i|OpPqv3Y_;E7-sg~M-}@br(z3!J zWI}Faf?-j7-o?aLNWgbznERHa88R`~EKT+fAwdiOqeGe7VnWOoO&u-Vylet@8fc?V znKl_Jd^H`Fx=+zn^qR}qxE>iR78d3yn1Ni|+~x24_$x&9CiglYO{Wp`fAK34@qRhL ztIAz|->gK0a-0G=6{;}V)yr67E5QNL@R^LQAVdQe4$2-_{^2Hkc}Yo5NlkZqlp43- zHN6x(<=#dGo?syYQ~fb@YFCg2&-%A1n{Kr6_a6-qC|qzvd{H(jqm;A2mJ6UDIs8!K zIE-%YH8fsHXR*ZM?dZ}L+LEfd^74`=&d;Pesvz@N>ZgV8}sHi~{qDWDyw48_cduQgyoO8`NGv9Z9aODX*d*`X^UiVse&N}V36&02f zh9F3Er``6w;I$5dU><@f&>~AWqrr<%h~43E2ojN6`-4IG1vv0e0bjBs8G;^V#xFTv z0`G~Qc6%Km=#&ZsQRxu$hYw!ALr|m+1pS~ukm(f&l0A9xc&iNr8C34vPTn8$-ovdv zYCI{`Sw}e41QI05h`alHo5)F)PzGpR1_echJmf^dRY`~hJz|LH=;|ix>PzV(r1WWB zotPndYqCdrdU{FmR$-Jy%<31DD=0xmuVjLBx*#M@DiQjx8xebWd#;Wquj;zhMfe+RN|hjGdg6{%`bn^}l&o;^@$onV0|RF0$&)90LWZA<*3}3RsV=DX z#F*Gvyp~%HAJ&Oxjy|(ovZvBQ0_?g*RR_&(`AFd63e|=}_qBV&`EiNz5 zWcBsske!_`xKDn17V<11A%QDrZEK6xNSgg|KssS|c9s(B?d@IBc<~Q zVQe*`Qb~HKa89$ygA+kVV^jVx>3lwt9-V)tkq0rkHIF z0vxKrQOl%NOz_iZi7WX-WBm^?quqsw^GS;{XWc(HCSV>Odj`*|CPJP2akpp>A8KC- za(8D{FO>Y08^7pBrkwumO{rnu_UvcpQBwqkWNbV3VDa+K{Jy8g6Sk`~_*x9x+74L8NLJ zrE8b084T`6`oPoB(7-%<_6!3~gNJeW2&RT0`s3`=s;XprFY$%hFdjY)Wiz@ z$e}gA85}Ioib4p8Zzz48+Mt*aG5bXgw;QTFB~htJAX067ZERU*09F{}bN)q*?IBku z@=kunTP7{BLVo;?Oci-Lp`)X(qr3cPDUE#4I-T{_DUZD0j!NF^Al)D-QHk=APN%U1 zA-JHgHGgGPjD5ae38(cr>BZF7H*u-xEG2q>h(26uI_r26Zuimpu8l$cg-1LXpPE01$DJT73Aq2_I~Js$**EqiX8s^gvAf`WqPGz-&jsB>t*5 zcX5`Ue66Tx=yMYvb9{B#XCQ7>j{U4{4_+hE5TCPd9aDab4NDE@0Jc#@wP9l-zawPw z+Yyux_828R<@8X`WD};dlej1rqdK2;(h8r5u%A8oxluQM<@f2KcVka6w%W&hjpKhC zys+^Ng#M@raNdVnSXiWTxs;1hG`5kM6oPc3$jsE##xp;Y`YF@_18}rV#dJ%>vz4XM z=v0xddk|7{(Tw(_)Z@&QF6LC$(EOwo#gGvc!sqin7nVk~*~f{R?H$jjezb~IAjsF& zO~GbXQW%5<099O3F(V_R{h|>r)@eaMamX3iOuDBBKx22!-ghpCaVdXdaEaw#jaB4YwW`YS#o42bjP6H|9&w-LGo}xdmMbd_ z%1-^dTWA`&xgi1;6tn5gPiK+^X{W+IVX#Y1yha*02yVVrOFg^L)6~SBlTiz$``Os| zgv1e^qwjiqdU{h<=PxCnzIvfdl5l~A8|o7E$SNSt#+>UN)x>IC0^;DEQw zvr~o(EgCpzwwr9bfoiHwtS9?cZ&XonC-k!J9JI4Lqr84SJf3#HqC%%eK)Dsnt|BAq zAG13eDjQwY;AI>&ZONW*;^Qn4ANDaWuBhs?CGWE1TsTQw?C&Y!?p7~NNlF++(QiPq z#(4q${u$3_)Ns;J)F6@s4QccqW^`R{Vy1L=Vgln3_Tx=Sd}_GjP0jAksnM-cE}|8! z&CD6TQcVIj;CDLBS!V$3&mjjMKiN^jha&9b>y9wmH^ADK#;BGq?STI{Lz7&#qHKZ; zkFN4px|j=mZ5Pbj7Cf?qq64Es%~v_^l2wd{o0>39{AJ{(Ks$e|T*e>Kz(%UiZvM)O zh@u&Pc1)GspQVIPOyFZRdTpf^)o=xC$9q$RQ%6@9tDB**nHe(5@=Sf2rKGP}uuK)|Qox2B=!M z&*T4|%KSUsaY>UskaNIhn~yZ+@YJtiTZ}HCQOXC0)Nsgcct}9}ZOZCm*I4h%IvZ96 z9DK`r8ztlhI3&RFv;LiYW9yN91tRo!aG23&vOI5s6NA%S;1Yk-1aEqda) zlBQ-y930aBVoHzng-cN&YB?Dk<@9vhXkRchGsE}w^)YW*@fIFWOa#~DFE7VWN%$~I zx=l1vZy6YGkB9)vmaAG)V^bVW(GEW=d(%Q<}8q2+>LK;QWI`Up^K$Csy7J?buq$iFraQb<*f|IDx1 z+V%3W1110dz0JSPWsNgELs<5fvg#K%UZ{_~u6p9Oe`8<7(LBQs)y~qVTb!j?p$f~6 z@#|OW(hPzQ%P4|bR*5h%F~JxT>#5_j{NUhVezM9G-?J@~^@gg){M?kpil?Y&9Iz4$ z9HK5F^#SvmqUkS(`{iJi!bF5xC;U9;DWO6qQyrU=|P%k z%a|!*jXHGicd`nR-q2u@b+Ae|GwryJ~V0$GI5#izCce_7S$1AT>Q&xwmreB3O>cf#T3h*rT!i;z_QO7nJ&J2*A7L5 zX_saQ2Tb~Sc~L+7W~7M08N+9`1`i7QJans-9J3SUbp~-lTlVhVOIa;233vLMd`o4) z*q?F8knV!n;+m2m3 zRYaAwL$KjKGNYX;Xjai}U0oMKBxxEpD--p}7(H|EqSTJ-QRV%v9P zp0iF37?NnaIwT^a0V!Emy0cLWLavPIUb1R8E%S7V(ZbTac8m~P4OhEH{%>wa7nT`@ zk2u7vN5e!!M5ccA5~-8z-d6|V__R3FcIW_JkmP_B!GGXNM!OK z#dw2)sdSPRD(~MX8{}y%xpv-T9ZZvq`n@Ps>oxpBHH;h>=c*i-QNib_y}1 zeDwA8@z<@Au(Ak4U6ShX7qc+D1zWr%_}@N+kAxBKbar%fa7RbcmNNJha@rDoLJkg# zx7FH!@OYC!a|Y~V+uQ({BH=Tz3eOU-V=5)g{$8yV%l}^uVx9JDWKir9V3jfc6B+Vb zaS@S`tS_fdox+@#(Ui-$;7pPNJq6kO8jX6*5bb0*b`3p-}p`o z>bLZhLY)zPfw_JAHs;X7V>_IW96E%SIkbPj*IHy4EbH#xjWRSe3=u7U@SuzH@uO(} zrJ|x9#>0nVM)M&34zWo2X&u!MR))E>k32%{oS&OZy|$x0C`-}8W9s*Bc#$XK)#q2Q z;8Dk;qKw?SKoDYGvm;e~Qe!AWg3QKsH+2LNEX9VU>jkZQzOJ)m?z7~on#Z*7Y(Fn> zLNnj>G~>+cKt{1i6-Uub{K`kK0r#sXcF+8}Vexb|A`iP#)uw~tY|Z#?>3&!S9eA7q6N4yRfrB3>AbuP8%H z2Lcf~g6vJ=Vmi(84rTGp_Jb@7hXy9HoV@;CUopWnf+sGd4l8SaRL~=SR2}Jx=;(Kq zu!asu?Pu;tJ$fSjLft2`vZ^uj&{o`qz3|JDl{>?HvCPDxbE1m_Yoh z2(Q$X0#Ci~?dzNNgdF5Ufuo<0KP+Jt%>^w71S{XkxrEW@Z@}$$7R*UL7I}A+7)Sbf zNp;VS8W^4%CU2R2?b=Im0-=kzX%ouwt^<%CD({lL*EUO7%rB6ybDi-6JCB8rbSm#s zsu+Pi%_HB5PR42m1P7y3?8 zk$|UruIeGRP#WJ@27X_6y0~0{4S13LA7;US0B$LlBSaXu37hHcB+-ArY0yu57IuLk>Ty<=Lb#V;N#F{b#-@_$6i9m{^K4MQ@;=S zw{EFy+rC|38_;9ezlPgbXXgQIW450B zIte!Hp&mfN7uG_LpLN>!d$h_i&d7;_2M;ckuK;;Rf1|1@{lh3@!~0yVqr05eKD!pC z*4EO7)sFmo*%bb3P4nLqf&Zt5OMhLd+Wqv@PBq+P?r>Wc&I2%Y>$2uGX;yDdQV?31 zz1ClH{$G_ffQUT<_PkyNVCG*(N2MN&zP_^uLm&_$!iRYh{cJSYhHF7RdHeP2*SY&@ z5?2-t)uc>oxs#upO4LteuN|+76d(`Ar#^nHhw}9Foazm)+2t&L9ISC?cXv0csLz{1 zVN!yFu`=xF1_RTW8J+|^FHe@9n=3w&7eJp;8;eK3eqBBZkm(6| zL|8~@1)Y0tqiRI9{9zZDRm3%6%Icf@hxji$I^3(Kfv(AaH!!fuUtN*kp-_ZxpOe_z z_Tq(bo;;GST@2*CkJq$7pS@ff<4xGl^w7q5_n zlw9sp|FpN+)1lwLUh$y5R3k$}?<;!V!fu#|eW*u1*&h9BxOl*}c-J}PLMM)>44~_D zB+z283upr3r{GOlTns-QA`Vbf!B0~mO;c$R_*ZQgQ&)9rV);i~l8 zw>Q;nGfP;ExY$W-E&m7C`-^g>8d3@JqQDo(05J2_h#V&js`bo05u#UVZDpSbehaHjbW9WnXKHw%ryfjWGqWR6uI+ zVyivwSYy19WzX{W`}3INjVIm3Wu@Fp{T_H`XJ=EgFJ1DCS(-3p|BjTx3A}66H|PH$ zJd9;X)sfIp!on162PT5SS@T1V0ZylBy<2cu-kr!4%Qm1SoYHQ`rZ4(RNU>ZF_z3!!9RzKm2| z_C8^xZyq~)fz^_7iE*ofz3dL{x97soo;{0s@ZbU0^;UJY%nmJJI21D&P<)M*AT_wx z4#fI_y2vrV&P=#8SPB;@Qy!(qs&f!i_T@dMDQVe`FX7WQ%2I@H1Lyr~cBQ!uCR7`ayR$+!}F^yDYq!Me!v${@maq6xc& z&2Z8YT`wCGmY6|{z;ddow*_Gm$T(}V`|okHis3)khCcLIQI^Mgl2VfxaRl6|zRr_S zxRjyNLgf(v5UJn8W%TTJ;`DU%9_fIHySFQJ;cWwbP|#I2>G#*2Q@4(vZz)?OC^68E=q*Zc<^aCF;Oy)1mqc_4jp(Nbu>LRwqidmw= zkdSjSBSb7A&Y&_L3?uaP^wd0gI=TY`#&zaAW)irDB5k{-L)6gdtOyxu?sZW>3V^KL z-I2#gS(#X|MP=^!Of7UKuCC%;viZrmGfk|*-s8tV>nl8qmyTB{27&?|1jU;DglE(! zX^hQ3c81@2-s`q3jCIjxnA9KDR4Zond{a^qD=6H_nvd4#Fd7QJD*jqv;4^nJ)p=(24^9T{NUaeso5a>vut(ocW&~&57@!O0)|^j zjxt6@)xF{XiX_2(Z&R@O?mq*{J!($PZmvNH%8hJmBQkE@6nGAtDZk3o`5UyrnmbAT z_0jIOHuUvK1&e-fX^brBafw;F&Hun`+WxCnOC-14E4#PaBW9VaNWXdAf?X?>h9Bu` z$x8jHhT9MJft_jpH!h3LHT=S;(qUYJHLi|QoO<=VY7*ux>GvKX*tPp?@rs`s%;oNt zP&fb~*ME1Djf{+(dhX4Uc{(h6QnzB&(>G>*MTwqLZo$6mnTA&!tZ5G!>rC!-0+WDU zgDxXeo?BjdxmK#Eypc}e=SD(9iSPWUE{rv85{G*igWKNMi7PKKXNFAvIGlRz&b;pO z;vWP+$CYB9eJt6d;@NG61*5vU+IUv-iR$J3)SsIIC*+aal)$rhj@C6KuE@oY>~al| zV}Dt93D?+I4+WMhcr7ga+QMd^@Wmy@uXHkh^Hq0X<<_Q_1B74k-qAX0cQ{P*E7;Kp z?T*MtV%`Ix6c}Q1S_C8eFp;t__lv;pnJmH&9xYJQI_e);Zh!o^Qp^&;&sQ4AP;44f zM9ne{=*?^9g$v-qEuyBozRce5U-Ln^;fF}}QDom5s-%hEbR`%#{am^zyQoM5Gh!nN z%pG9xxG8W2whJ=5Ba_{uqoWG~+(+wx{)X~=YUOuYMNNuow4FYP{zC7LWckXd4ZGEb zoi2X-_@c6vRgwWRT^xL=aaKJvE)BmN#gND?vPz=a?{T_|y@>d@ZShO12+G;n8MTd| zn(DnpMi<8mNVb2=iZ2%_^$9q665a2@D0X&ARYYz;fSKq{!M+cH1z@QT7E^owiJ zkNm2|d6&U>-`?Cz`!S(_q|1YWY^d;BJ?Za#*6t5;ggO48rIl@H(pA|0Ek6ey(OE4m0vf1YQxzhSAS^SGYaFCR zi}7(DsAuq#sVEiZrTTuof=^F#hhDKnFr+ppJaR zO(Y1gi!=T@R$I1+GPh>38|AgXUK1Eno_t@gt=+=~+OgJMcSp$? z(bqkb*1;E1kIwp6Ga9= zGdn;3g-+aDV3`VE4d=3ka;oW+E{TC!t@g7DZ}BVqd9j7Mh-`CSsfdS^sUS69i_xvh zBPnwp;loF}PrpJ}r`|7RLZ$(eO&%#76b zB^i4VF3O?>Y(8+{O>d52J2)7?L1m<1b}@Np6%H>?PAXxV8WW+X^<=bAGFDkdfE09y z^G>Jz>KBkBbB%PAq0JU#+e7T`SXjn8`rLzNs5BOSPm`3UnGBsl{R%ZaB6!tS10wXO z0utlo-%&KMWAyAY*}mcG)2FdE@@DD z71mratVMFfiHio@qpn{ZTN%dij~~PR6@s@>LnmLQbku zIUM(($ZX@X?Y5Tv$UYmwS%8FkCVqZl(wN}2MF$+d@~~4qK1zY``@M|Q4RluuO>*%s zd{q0(_$jxKj5KrxciGsJ2(`W8M{QUX;IkT>Du1bllK_XyCQb0aL7h?}W1M#!_BQac zVPzv3qWV1WB$qP>fMvmQ0*?pv8BK}Pa(cQ3rU0N*h1UEWBjAMp^@VGe_&=esCI`m18_U)T@O~??u08|Jh zt|f=5>$V)!85kJA)R82mq&$s*FXk73Zw3QF?ReeV+ba>Tp};HH?s7LPUR?5w_WJd- z^=Q-B{?1NJe264(#+B3CL$u`WhdVtdgJ4}N8&M-^w+d_lmyeuRubQ1)Tm(nyTB?Y5 zLZ)RxA1xSC^(56vT4&$ew?0#AK7sv&$#@C1dhP2Rn^H|`L&*2UvIWx9u>Hj%es{?u~tW`1MvfHfoQ$t-F8sn zeXO2T#74n0Vy1I)0__%e68<64GJd2>)~}b02(E2vvbrK#r--^K7FDBK+Si!Gx4aSb zyt!E%2$4SYUG5z6jR9&wfkI6LiV!0VXPg(8l$6xzOZdBrjw>h7*8>d!VJ2hvz zuNMaJt^5hhFo|RctH!Fe2WBsk+PpRt6=h;LJ^no%9mTwYIcE|m`(%)vZz!2Y2o8>< z9xYrC9OT_jz?6li$&SKduu^qe{HjS~uN0?CmiTmLZjL5pQ7wn+JNWeJQ*>Tm#iclM z+gx(Kt`6zP+GNkIP4>oOI#z3k;;{nb(Dm#eZ|)DxUwZubF-__k@XTs5?1P0w;f(3` zyO79}{WWVMCRk$RF2gYx!c(0{Z z5!tsk2{lpU@Ad_tQFUvG-(7FUq&1n0IyzvOQM^HzxPp-Z}i z;spn6Mzi-{R4Ml#HFy*uLZy*HrMzHe%K>})^Q_merQ$Ws7FRo2sM7I9*2HnI=;pa` z><-XL#ACK#rDM?hN`H*JQ6ME77zyW-GwavN02flI&LlbDgii8iX9Pe%2+&q}UJV6&as;aJh2XKde2jCkV2= zB^}x=al$M_x6gHWBhxCp1*ZDByYyR^Nh^-+mhJG=EWvptzp@MNn!x#V#9FX`(%w3f ze1x*gGyUS;^?^6u#82dh`vj&dpU|Xf7|Sxy4#Pnn4MF=kpD-1*Rk?1#lPeG9S0t#X zPT0DO3*Pvyq1ljfsN%^l$y4jL#Ql<#p?N6BtY_iqO~frEZdW5oO$K8&~!K`+7NeSJ|qI;5IelXnZq~mI=pE` z?Hno^!1Ybv!@3`gHOz9 zGp^pQYZ72op9_UhWbO?cCCcD(@{>Jtw%w~tV>2fTvD(qIEs9bjIEoaU>acnGRyg=U z^87KK>t@;EBh7o2tpz_AFYZ%E)_lSDyWaBi#4xMGjNM!J?h4$qcu=cgK-_ci$JjHv zE^4G;tL3P|QtsZ}v8P@+=(?VWtzRt9kIGmz@@@GuYGVcT;SW4(YikU^3GSsj62UnT zijB7TU7pC%m1OAeC)pmPc1OY@k6oBQ{N+`enD~?XMJ}ZFgc`^%OT!OgSmA{%azUBi zpo>G}Cy}++C?9gpNUf_l{Vt?FT@)PGn;FNB9C?|2^=ik|@}KaWIijDGz9sZNNK8Xw zC};_!MB;_Dq|v*9pBnI;Xd^T?tmWqqTXfBC8Rn>Ewgn?sKLB{EW ziGhK1Al7oL=d@C(X2#D=oMJ~JY2vIfjYi|H!a6$-+&?J#Jq0UH&DS@E;ZlnI-iB)R zd=f|tf%eqd`h=bR4PWQF-Cp|^f0N?x3n!bcz9y}Yn0%HZt|4^3JQLQ!c=i1drKD&N z?R#@WSmHU?`z<)fz-ROJGM&Nqlb(C#YE%r{5)P~zEqJ4LE8VOmb7)&dgUD<5)<4*b zB4=jV>3Ys#-JY%uj{E%{?A+DygFV`!bP0on8InZ5-?y( zt(BPl_Zxy^DHqN?e&N@iPE!^k&F?8j{O{_>+@F@7kWLR=1H7RBV~t30Wp7;Esk=TQ zd-nAB@jyO>077AjzUyAsW@d}v_Y^%nU7A@T(Xv!u_zQi2_^7v=r-s|LHkNDumIbb9 z(to9c|EX~!4kTP+7M{;B(z+ZLdDpI8++hV?q)~f{kQCFGLG3=IYh>gz@Yq}ABZB|8 zsT8tGv6S^L1tS7??{RPtP?FEUkkVkuHnF5T_CRCRRj`b|ayu9zNDG+$`N8Wg;g^)Cu zwXptP&ca~IxSg+??N0jO>K|Y{J@5z)&K!!iwj~dnPT(WLa6DrZPzYSHL|K*VfQXPu zbb2#Ma68OEc1rN=vF>g&9-%dHL%F}v`&DBE>`7?aj0EcWa|xT)9|?YS-6nzaq9(pM zdn@`0v(ATUgok38qsedOPED4Ly?RKe{SLQdyPgjfH@*{jd9Ox&`OKlS5sI>?=eX`? z^JTYF#bYexGICxW8V|M0%RiYe;W}32=jXp?%d5jT%6ndoo9C(VJ|O2Eo~=hlmz#|8 zjXvd1*h66x11TQjg2M}rT!Gwj&*IBfo&)u{amFcyh=wI4bHR<`vExgdFKyc7)@{d) z#^6jww~MTd?oM=k@P-txxeK9t!Ry(4mi-cr-FWoKiKvMHbgH<+qZ{nrUaEE6PJum=3}Ur0G8Q z^DMCaY1h2@^dpyD5(&!V@4}WR{|FKoSjT$9HI>Wn^Su3wpd$K0 zoH6}^994{n2U`Wfa7FYThpNW)_4JskKWUPyc7VRL*L%uCWHmts;fW5y^O2OH{-d+z zk{Fro!e&XH8&I<~Nw%R1`gOUEjq$Ls9mjM66Kw?DK`BXu;X$eP3MB zJt$pyCTKX4x%b6bw0AIJ6EyYd<+4Kh+)CbOEB-gAIh8w)7MHdLSI)RZR6;1?(p7kBIAc9v!zVXoiE zto^RzuVv@%yBQ>9U1LCEvu;q3e1@fSSlzsJRXp|V-dOiX%!}>e(Pw?K7$M5MdUGz< zR|`G1H&iGYzI`{!auFR^Xw5fMpDOf+5nkt9rQ81?J>9Oj*9EEN@%(_^FqpJgBA#k!_{<@%{t z6WzT3b(4DcEdkYI?t-Esc{4LcTwJhU(b3UR02(@$>G+ptqCTg*g!EET&x&+f$H&R5 zEc@kjbZ%P?e7H$LLE-afHAPuNL$Ss0vM=U(Sc#sInfX(9rlyI~Xeu}517{XO8c_&( zX>Z^4d$}78+HE`_%u`DXbZEJ}4egz6mZ3v#+tVQd0nmN@N(?C}DN0dChFbgCAD8Tm zvym}d&-eBgrQQDWo19j@3FVALl{q)^Gc0E zR9u|-?p>VrFrw~qvv$YpD_=;)&rj+GIywnCIVKd>WAVMeKcuNiGMUFDraP8?`9~6G zs*ug?{r!E%?P;N^<-t_GAVW7Nr`9Mc0mrM0KRf>BzPDJtDc}ta%#4g^{r&xLmo-AI zr%%x!6QAFhkm>Oj0t#qsl<@i8Ns%h;FQphu7fmbf#vm)|N`A)F^^oGqak? zA5r;Yrc#Zqz4ArxT||QnDIMK_#s^W^d9SU9=-7m|2UE-4vEGdDntS5rUt3T>?Nqcd z5)zUoVwHKt9&U(Q#C~g=SmDjP=MdNkZ*hz#*-v8?1n(juUOJ9a*8h5c=t>BEqYN@G z!-f?jla*rWW_vZ0!u1stFw|k;9*--@hO__Y@l$nUx)Z4E#?H=u_ZIH=Rp+}&suzc& znoYE%ufi7HElA8H%GTNnAQD`^$~mnuSuO)$qmNSbV#~0*VJ1g?Q=?; zlan*^L|R%p%f`jkwX-Xln$KxT!NbdIsV_~y$nfRMyNyjvi<_H~3k#+*aHn>Qh7!X% z^Zk{cz5V^R!l(J=uSVI_G9{=oGc!ef&jiaZ6Ka3wz2Z@_V3Cmc zz}Kbc;v!&UZEX&Up}4s@b9{WfVtU%(c%_F-=jqe-*J89qrKOezCCSg8J>!d3Z0F$Q z)PML8(|d0LjgyDR>cxu}#nsh`vkmUCNr{QPH3t2tkMK4!GEIn^n|o%z0@kf3BLmen zo3`Fa&dBJegcX;U$Nf1!cd^qdOr(|Yh~w*;O5)U=f;%n4Yez=3?7wDb2Vi1hy|+CX z*EQkmqU;?Uv>F%~*!mvNJX8N$bmExD61?)y*%`lyiHWfHv2B&Fu-$aW$4{TUMfnff z+S}6@^7z1Ee0=xTkaZ2*|60oL;&owHPMr znmh6F@dX710YO3N;EKX3XFooSgsKyphBl8pmZL@BuI(YC+uJ66_tjzeF*FYXK@~Bx zv*%-fs?;FvvA<~ZJzLM8sOf)U&iO+FNVecMqqFujV$q?sl+ zHy7@ADF&HN6zfmbInYn~9c?@_UjFr3%)`S2faFc0Odu{J$H8`&yKNhM5O>-49n@;H5pZ}a|@{UhW$D^mGkD?X7oi1#*B-91el!TP@1~_JkNlC54!xc{} zUb|hJlT%SeoSk`H06__s%lWp_li)4R5`#J|;A#(_AXKsx=dIX3%KcreQPq;T^*fR+RBMa40fk3KZvNcE zsi3XuX@+$ZLcA(FN1KzdKl`huQ8g-Ob#q=t?B=YWAKj-z7_tivIh%Dh>^9?-=-@RO z&*u$}P_oDmLMO<9c~qF(A;{^A2&5lo40_C{8U_w@6|MCc}+rqdPi635l=avXr%fv z`%TS-cPlq$uZLyJCgsmdlN*|=8*Y)4oAssg&4|rA->%(JI^EpbEoRr3psw;dvfhzr z4U)|wyaC}~**ex?eja`q7Z(?Bdg`&m*Svba_^7I`ZtW^a%M%~D@dLc-_nEy~|BpNP z%5)Iqh}^V1V8ADDO;lyI9L$VneUzNqShQw1&}PswY3xnF(|l?k*2SER*l?dnC{7-U zQ_Y0}-oL-Y+r`V^8PFs6^I%XKdx+nJhleL$>yAP>6BASMAi~DRCTDVUacN|qt){;I zz4*Mn@@u)w+ZTC!LPA69uPMRS%*+_%@%1KiZBBf{si+|&7Z##H5Gb9%;i9}fkBdq++)JeD;YID(iF|*?D=( zM`0&AvY9cwK6dY4M=3C^KlYdP37j@=&6t^)nZu98NmXE4ygYK2r9nieal&CfuQgOu zT2Fs3Gp6*C5EFl^DKn_S#SOXP=jV5qn_F1i?SJY%Iah^~Bp-&sdTXM*eDyC~!fek$6US6R3dN3HX_s-WfJy%yD@T~H3Ubn@z5Md|PT&?4OSN=0pe`q!{GrJ9YFJKj; zlCI6MI$aPz<`1d)6{8HM4iCI`wXz1U^!fAWPe9`;**x;Xrxm+(Cpu64{Nm5S@X%1e z!^qoaK;9i+zYb1FAQQYp@F64PiLNd-5fPELj!rE?n1_eRX0r4l=x;PMG>&Tnv=V+7 zlu)^4{~ZrcPsaQA@fjHz;hqPU>CB-(+N%w?&Q5lTvR9iF)zt~Mwztu$`wzVT5MaSC^vhJ2bmapFVz!%giK9Qtf0-YXwqALQ6|fq7(W3 zyKZ1*s{GbFgQNkN2o=EJN}D=iFkH?ZufuP*E-dAA{c0Rc3K zii!#c7ni@GL?b^aEDRfB5E2?+dFXZZXKlE}-=Bq@omot*zIPC|F;-}#2HaAJYVOiB zI4o*QLNW5FzaQoB5&gykYS>*k%*qNId;yE2f8Upej0`vSOj2sAxV}`W)qu zfgSIwVP$1Cn``t$xo>6Va1|QwlbuemmC?WzW;Zv}@igw;(8v%QU-dZq7{ekqq!Ir) z^L>^3v&{$oR-Ij4OG&!Mt!*KAcEsc)q^$!8@1VLm5ydFVH=YMSkKFElPCtyWsOx+( z>o|~c_&m@%NLAVW?>QutVLn?co@Im(Ai} zI7|pUJiNu-U55%^&@#iLqaQwbLIV6|xq0VX!V_Te0$W<7OP@D{u8-y;FCGvtl67EC z@~7bw(MiaFU~|9LkVDkMr=q6DPeVha;LDdlZH}64PUTG8z&}i>M%=r{??aD|j}w0} zv4>ljGRyL$_Vp0CvhU}K%|0#9-Ejj2O;34wY8kQ zJbIpH79n<6@?J4H4S!c1Jqf#PAL8b^ePCJ@*$5fRs{e~`_-6|IzZwhh1jRD{tmiq8 z9eY8=#`Ug3rp_nUa<(~>3A3VwvokaI*}f9@n&9xUnWtsv^Of|P1c!#UA(7P0&CNK3 zgu-9l3qj)-wx0=)AY*SE9VN3G_^>z)Ix?@{g$FSF7#J9im%1eem?3g#z#`qEpm4cF zB4eG@i0GvhfD!}!OjOP7si~eY=eT#Twffa4LrO2orV9!SF9B!LjxzUBAl@iwYbV;7 zX!GF#nTq0@n3?H&|NcEn{))=VtXy4Pi)(9>B|Z0p$H&HaGc>xt6cwfE6ukg`TkX?u z`Hvr}I!~Uo(n)xH`_bF0udh$V$;I{JWM>uzDnqSAr>enyw-V@gS9i8-klF+-EiEEP zJ`8^JH!JPD`R`U+I8Ch!2p}xV=^6+wQ06X5*nKXp=>9Z;ut`6I?&|;P*AL#VgCuHo z@7_J2?jRM6ZXOj^RK!c3%(xVTmJ9S;Pmi*}aWSxSGIEas#5W9A{mk@qY9NwzbM+Sw zjg9FhN}or*eTyq9D!MR`A?|T;$_ITzAgDm%FnSOp8-$fpUw;SU^}q5F6cjWa{`fFe z+?|_-mUeMv1tVG!R=X8ib6Fkp>eo;XDsfX(Y2>$WBkPdSDr^ZkpFd-OxWQJ|`d-Ke zpn(u@_=1Cj7k>7qgFHOr&|1_!78m>TPBW2#n^zP&CD2q3|&XnZJ?G+>ajkO8y*uAs#EmP z!h(ghp5Ug}z})-)mQ(U5K4WCzxHVXX>DoXBn?nG>3lV;Pe&SoV#tJX{-V5QKA8#*D zlo>bu;LHP>NF(7v3_S*YYkT?6T9y*f{rC?bqJI5)X$&Lr!|=6mumjJ>xq0&q@Q^4d z0kqy2+1b${^J!S7Y!Zg7wSx>|hU)BRK@TTmh*ws#S3<;JZp}7O00jEMF|ZH;kHn(#|={J${>8SX!Eo6+CIoq+e8e>~frGVI-{i z(i{f+{e!d26!hmNTGcGZ(+3Tdp5ETDj&PDx5eH+3u#vTJVMK_Rwun@|rtM~-7tm4N z|F3G6C+^wV*qBB#5|aS;1oQwSW$Wh;V?cchv^h|0m%qGPzN8U7&fTDU ztVIs=S%5~MfYsg%bnD|AIbLuRB9#J!uMeKs%ZjmMBD+Y8hE_laVi^5&bu69av_+@AIZ#zjJTcuV|>DJ+Nh`r4-cOsd~+xpsOGk8upT@m_cu)O%ej&WxSB%!JD)Q= zf=QSa7rxbvpKdgCdmJOI>`3Stg-0z1?0wwpV)W>x>C&HGb#kGHl{m;K6A6G=)AAG- zIqN9jNQ8e9myoJ{s0>--8Ip}0h`9<|f}c{tK(%m*;3OzBM9^QilyF5DYiZqRGInTC zzPZj+)H8Rnr;y%FN=Ek8+s*kVk?Fys(Tb}uJc!9@cTRHd&D3d+dY=Jr~__Wgde|13#Iy-d_+g?D3PLrfy{E0c=7z5R@{scCkn zUGzDLIl-=l$jpw!Zob4$MPt^!<6;<|UW=O~#Nh12Vw`dCC0ZWC*~P_9ij5?Tuu1lE zH&G5lGCKQqF@};Mz=RCfvMrZT# zB`?w)@W$}i*fm_X@ySUSJ5HVAZyV!9e7|E24{ng&DwOd=ZGmV}JhLh{B8(|E-SqO`H z;(6y44K=l`9=&?CznDT3EiOs6u)||&YU+4bCcIZBpN|wJwgJqPv$SM`7?_#cSG0c> z>sOUK%uCs4yZyd}RJv;bor&?6cOrnIV2FDWJx6*k(p7Ju*e(@9jVCCA`j#vsS5~5izo*#1)#d#!97SGY+;X<1vqVY361j|@nWrU>UP|QheaK~8 zc{OHViCu6506C!HUv~#{zEt9ZZIUFRW)vRJAxgr3dPj<$a(FBZM?LJ_>|R$AA6Ap` zpiLTaPWHx)|7Hxov?__H_%Y6#3uUa6u~1+$g}ume0cj1m$O6KO2f?8zXZvxqXJ=<; zfGfR>iVQJ6g;Q~_$_gfR_KUfQnw5>M)=(f+^%ZeWg~!G){7V3zdt)5S30-B7mi-Me=X zuzt=E-NeDgG(+hW>^Td|EI%S4T+d~OXfj3|TA?MdHGjy@}{c~=vK26FYEo~_^ zjJvhr$B3XJQ+(>o1I-d0W`2HB0I3}v9lvFWyTfaN8D(Z;!-~Ak)i(3h1#Pd48D?iR z;*PU#?}-KMCYwLw$A3njkotNtKs-vfrz&9Z*XyK&v|_=R=O@eHb&Z?f^{Bxc-d@|1 zeDW;&6EG+e5)u#ufI3^g9LT$Ja&qMW%IuV3%!~0)bg}w|AuLR)ED2Vm_UZ82c&!|E z$Cm#Ehoy~0MMOlr0hIxwa;+T_E5M(Y3bkSKC^iko64ORzudl8%yT@&=ACMZHodr}J ztPQs3w4jF)QN^^%W3|r@W>LEw{u-V=6~w6+*iiS+)w;*V!EPQknVK0D5oZtkP4I<7 z53`Gs+s7X*fOl;#_%%jZJs(*TSU^pnpq{)OyO&FqQ+$$|eOrU_bwSFTrE-ZB9L(LU=(vL_+X)2VLzM zRR5y)_8fJ~`A&l{L1^5L#j!2^{BEmJ}t!&+d^S)FbJj29yg@F^vrv4sv zZPKf;v9JuLDt+Y&j+lZem9c+rsT0NO+dfiL>u5SZfxDXII)nxCHZRmyR+1k4><4}`P`tG?9X9U=&&=yw~9rwRi?@u>mrdMC)|3`#JB-R7dr}oC0;U`)lo{%F!M?cyO14qYdOXv}&VvF_022_Ir6i zFX#rNl79R2)hEO3@e76xjdsVtsQ~EL(j8o7dlnI-fni58$pl(G)1^8QX zYHIj8#d@tZLLwr|U)M6*$BT610S7*r_iyPx_BoNSSE^(2_I&Zc+Qzy820o{nq9T@& zkrBL`g3AB{3Xh7a)>}|6(OJ$-F%AUD7PWPt3!y;(U!aUMaC09U8);Cs5X6&d+pL5H zn3FVV1P0#i`w)Zzpa3r0)vh(rk4W}`bbLs?6gvc-tu3JE(@tj zm^t9u@*pt6T^}LcU8O%COw%AHOAN8U#?sKW9Q=y*$o`85R&D>>XoqC}*_)Qu&?h$9 zC9W?He$4|-Nk{+`!_Ms-%qyJFA9x+!)#i8>mPMa+8MkA0{M{a&;Ht?t7F|(Qg*p{W zOG|J8zLLKzFIXNRE>3^(1q=|4EbD~E!kpaQyTOnIIToh>7hAYng#>dPl=L*XZMS`U zgYI;?x2PdGe|#)oABL#sOYwsT1952-TYFXt16DE2rn^z%V3n?rdU<2xEl6wJv1HWL zk-Em7n0OT2)w0@6E%f{JU;ym_rumjGP{m(Kr3>QLZ&hhkg0Mk*GT& zLen#vFF$W3qV_5j=F#9AB6Y;LG@4@}(&&_1&$seQfx?JvnAn0xi8&|miI1`Z zNJsQ_928}gP2~R*m;VQwBvHFtuay>cDD@8-`H(j!`-g?52#P}1=#t<=08Xk+gYo2B zFk@`*?ZwO2$Y{$`Pv`aAw?Ivx4%bK7e33;o$CE8rN5-xwsvz)R22M^qdY`>FD)Yx2VO)CUPCJiB8GLh$bM}nL35X1Pi*jI2bG_ER+Q?o7<#03P5|pCc=(d48G`f+z5rXXX{!V zN&lSg9Dy-F`k_eaucMTfi`;$>GB&kuz)m=U8L76mwkhyAD0huK>>U{B0!03+Yla3k zw0CgOJ}7-11!}u}c$h>rmsI-tLIAv1AMJ0IU1E#M^dg)t${+`CGU>VBcei@T+id&n zL6n5=uO$K|j*qHtVqYTD3jpn*M%@(f_h$AV6DCH&7Epw}lanwo!UAWCgr0tIHZSi8 zb5hQ16CQjfVJOhNaQTWUymx=#!-Jq$=_^XB!OTuD8XuaOi5eTz78DXnGjdicwz0S0 z*=LRLO=F1J0%-Qz&TIn;+d*8qw>mpJ(^$@cIpBRY!t%d|vop)UWbGXvhnAJ`fRV7e z{g+K3A<@(#=1UzBcC`%v`hxZdzQHsP=3HH=&DQ<_SZZ^S+wD|c^dgHuAQ{b54>IEJ z26sygPffk#&jXOb(UDgpQvzXM4CubHvT}e{VMk{qMUGBUj#eSSP9(Q(VbmDdjZEro zI^A#50SiMNPk;i{z6eRUf}toCEDH3Ps=Pe5iK(gY8=IT@fPEB|l)TW)lrR$#5>m?_ zt=QPG&ifC9zf1MeBSe$;i5?)@Pm9L4z(y3q;i>up9($$}Lqnz&&pDDRgRqJCyC@r+ zS8+irq?yz)F!;emaqCw3w{J4W$fo0IoBNWI82}b}d5I;c<{BZvN!4?669xl-wl=w+ z0ABKyf_VXeQD8)E3ocCKlGo+Yq`s;uE-Z=z53mtv^9&nP{G_s`nIdwpo zar-sIXfJvHexJD-3I+Wpx+54qX(I$C4+(tHC)d?DfWB!ytQ3FnAg!8+Ml{ZFpuhhG z*l8FTIWZj^9lb!u!e6MFU1$wLfKdu1EDCTbKF~EvQM0Z!^Gp1UzR9iUDyOpO|>RjTB?E>9OCgdDmmX2D`I+ z{fY#I#`vsKdRKu52fjQ2;U+FFez-XqYbesJD$T)xyS}~-EDE?!1&j=rYcjsNqCa}U zFV<#Ylzhw?uS`r#9ME!ox$6OLN%8Eoc5omn)czsPZJEmwQ8W34hq&W|@6pCMI3hA& ziV=`3VgR_2JosurZv1UvOu1Y$2rkJ^sSl7Z5yXH&TGYh-q@U%tb(NKI2mqwdjJNzlyJ=5V?^bA`j72EGVmV z-nSbVc^_}Jf)NRdrNX+Rgq5Za4`1K9b<4CnhIYGa+Q8YFe`I6?{5BrgEf7Qhu?`SV z_SW;WP_oE>elAtlvc$SOQj{Zs?aI|?^~N}8&&BD(rB=zr{{d|Ohz0{4l6LNM<@ z)d@(Jv9Ct+P#g($>rJ&>cxIknh+1`zy_HqihYug-2!m4c@98j-bpU9SDf9QyP-9^+V=2i$)bvWSOV%x+SyR z-*p>{P4IJw#;duE9^ZgyKE{U_@w}1$grk$A*N8``G|rm++WS(sj5YRW>SnGq!tW@4 zIwMukdbzu|%-YIhY|*1O6^1Xu!oni$baY^DR|v)INp`#DiHKxruJm7ny$iz!toqv9;P?Hjo*<$+?LvW^wSR7GFLh4 zMljc_bo;>y8N0$QF;fPo51ED!BUq?%Oz*lm;zTw5vi;C)AR2o;jl_5ROyBLUfhV6N z44*z=eAmMcM=I?X$C+uLF2uLfGm=9QT!n04%DTxM7|uv5y9d?2E0s@k6| zGK_s0-luuuDwb`v*EaC&jPETiBHia)Q614qdY@(xw^aX=seq+C`d8+p7 zG_rwNmO^5F4nc0*GbAFuYJo05!iipgRgd0&Dt5Nt{QZ0R4Zo+vLn!;>Q_th0m=}F) z8Snc@ytYNIy}R7F#vS-p`IDSHZwgunFV$4m?$uah8Rg}gsNZ>4e#ZJq)MtHj^_$gG zPIsxKXI3T#j6932(|!34&Jj*z^OtyOImZG-L%EFabxqe|?(O=iU!Xhh`WYZeWQ=3x zN~T?Fb8!s@ucI$uFS^dV$1-fh? zaGH6WdWp@314&NC<99QjFCZ6KF18a+_+#vXcdtWdltymO3HLdlGbls^PcCyng zf{&<l;7o^l9apX7cLSHvZza5?<^NmHXGbWQ=t09XR4ckneFhP0Aiw z6bZK3(PH1}-94B;Vy7}R&ewaoZkkX*u-Be^?_2Up0D8x3Q5lg7#ThRnqO%B^y(x;s zj;^Q=Zbme)nk_s+yH)=7_{Gv|dn1CgO1SzB>K=3-nKpdY^jGF3p-rZoPH@=wr4!g5 zhp5M(tIUI&;_|Wlvv5$BTVU+9P{)q`6t)N`O(S%|xEZ?}h~L zni}C(I!s10%bcG3rZ*?4lP>#QjlO=j?2ti7DhPhAJnTLdGt6Yv)Gf(V@jc2vU5Xmx zymnggRtM_)NCnSiMIC0==V0np1=&8o(F#2tIXljRooZWYwj;33?kC=}+BzMdG*sR1 z9uxgI^lp-uUszWwUrm4^^V0pblVsVBGf&{9dY5!X#z?`EShHIo>cv9p@mY5IgsV%9 zt6WuG&I#ym!!5^3pnBqdGjl@mO~HrIWd}*NVdNE`Q(LSK-6iqkZ*YC7Z4X8I@6K zD*g5MhY8>2@kt!kwJZ`Q9m|Nxfh(pQyBeUzR~I0IUaHpX>Ca=E@?(@dTFT!wiVV@O z^+|G_MhmWR3+X7GEr0xwY++DlT#rJW)(4|@ReJ)LiV*q5xhL-JOh$uzq%-iD+X!hEHzM~>*l_j0<2GKLym zuiE_57L7x8=07pb%HXhh*FKS^CyQhkj3N9FcF#udKCa{LO-yEe1|` zRet;iBexhg=frp{`;H8}-R@Colu2cE+#DKk9bboBSC9Fum7SMP8JGo0aSO^TR44H& zHsC7m9&&eFCrlrbGYh5``!;+zvCBkA=BAb9k6(QmEAK31dqhvS6Q*H z=yDU41!I3M!~@4N_{CVqPn}2d^0v`swr4&RhVt@@53Z4slizR7D=3kdmseY9QgS0F zj}u%YO9~CW`BhH$pUsxa1O;h1zxp;bwB1HLiy_KpKPF^qfS4upYSCjWpQjx!!a^0J zs3>kJ+4@k2Ddn%8a)aZ_V}p+W;jXN_d@~t-DCUq@6;6rIf6j=3yo+TYG&cIs7ZI*GP9*?$bEgN!%`3dqe*YNnA_H5 zVoJ)*8NE}rFiX?Zvp~X^6}CBG+&DR~tFLugm66laM-s-1sMrhB(HQ&Pk4I*7(>c}! z^;q3uV+-D%uJH|lRV?yiu5PaBgP_F@*$jFNj^BAdRYlV261O{3D(&;<&p4JV)00p~ z<6@4T$MUv6-W&wZAc1Pe(+3{C~E12DJS!-hlPgX>B{;rYZp)zjD&Ys?9KEAc3t|-T(q| z3hu}j94fQm9pBL$p2$63?<*qVv1zj0o%+CGFol58>&@rS%=7c}$MzT220}Yrh1!T8 z88j^KiWxO?#Unz8@d(2Rb8aE}Zx;^svi2qM>Zb_$lJLXM_h_301O!UpTW;&aVQLxT z1L*W4l}`@{ciwjuPL!pHyK`N7Zd~rJ+d(L9+|Zmq-y<=nErNt9st!OLWkwx!jepqS zxR5ljxy`$YE2*pJ^)30|OY0G(CwW}X4zfQ5xZHV3VGkg}R$ zh8SpTYa99^M-Vt#I()P_@ok5UoD<*Jm-!@+Qi@qBwy>~J_Qpm$E&<71Nib<2%Hps} zNJx;iB(3huHC-bmk8_zvVRh8*<=4STH^xiN|Gaf0mQfMiXOhqc-J9I<2oAx_>v3ez zVsPlR1L-i&wQgl_D4j+eymE6I^8DU|_)5&u{L2#hvyT7M^`<2(JKC4grY>{-2EJ9i z`a|)}xyO#lW1WZc;m<8`n=J&KS%eb1ySu}S!|~c75k|}+B07!~@?80E0_c!yW?#*( zN%Cz&M7;CI4sg#Nh<8djuZ~FBhN<~yt}E16k-^2z}$NO{(V9|52r*R z6r$v6Z}ReWBGAFhuynUx+x2j>L? zq5O@>NS>Uzj`+=&bt#OfnF6eQS+qT3T88KILbc}^?4!nQoPev`?BXBfLP#=7clCIv zKYskEsH9}Nx7d-xB`7ILuahykI7;#>)2eOG3GeIr{5#ole%U^|Cvg7vd! zc|&W+9}%SB$`xYJ9YMI4ckbQ|mh!DE^F+pMPS=k4!pp2lQ&UqdtgKuf?Dom>CmkzQ zGyd*`?dlb2BmIs2PnMF$w>;9-IDQ>Hh_XAg99I5vT}X*HSMIM>4w)r1H`1UDK}K$<5K4<5h?-4_bJOJBH>%?93siR zyz3hLk`a|#gZYSA>B3Q$X{j*m+#VT57X^_}W|ng5)HO~vH8M(u1=nODt@2JrLvU?+D4H_gp{&1RKu@6AZ1huu9n)BE-CQ zn3?>}h1~nL)wcRi7i)@i>D9Vv+wu)z3|}hxelNMio2s+0E#RSMT=`v>dk1PqTr>xJ zTaqiiR<=Bk5tnEM`MleUqK1ph;-$F(VflK-gN6ichM>i=AI@anzm*~VlWV9?@ zut@b;OLV+W>FR|H>6Mz{iy-_2A3l7zRGuyLLJuw?DVZKRYd{fz2;r5ymVAdGc_;|J zv{<(cE4eUHHi$Mbh_+9UrYB*yDqVq6ABe+>i|Yz-aBeY!7W2SiDkVFc71^3}S)w)5 zDsnVg`j}B>i+n5&S?RB4QQ)w+Z1IA7>uwaOqqT2+nNl%=1lkqWl^St|jM_UUWpXyH z_0a7V3-K_l#dF!Ut@}L*Ey+-J-rDe}RgyO47|slCT4EL9pb5E?JUpzaHoldvsLH34U*12{Fx{Q-iP}l!X zb_`V9XEa~)wcysLYx%fbIoqq)vgI=GAuf8<#Xd+8V7mCZ0W$=r#Osu|Zrz$?qr9ts zCJgWp(WLxO?-d&P2QoC)YSerRe3d(QU!oXeBzVHr8=Pld7H2)g+NI;(i`|aeUK!>% zl>dQ~O`nkC&r40TlIhDQVr0G&VkomSvp(U5r0y>HQsKSTVq6`tC{WpIUFPxnO0paB zQPcP3@>dgYseAOF!2&KC`BD<}WFfyh<2^HuKZ+!$@Al%~Jz7s+Xp1S^KSPR@Ut*;i z2e#;+9W5+(Ln=chWTGp#CMjrXmEe`HZ68q*Pp$z|C-{8bv5j|?&v2>? z_&&zRPrw3YV2r1UiwPD0@z@N$B8FW!Q(2YK#&^62fUU;#LC+_VZ(0S~??Xb&1yXTp zo#rhUxe8qfVrD9@>c_I z0jNC5+13#Fwndal*3o@H@1r952_RPz1xn%BTuS#lk}DFA9zA+BSa9bu=efRcVXn6Qnqk11a0s^~*0<0%+C;(UG zwj<$_6?QLR5B;MVrJj0dAJHz16dR`H_Iw)5cBZ`bL`2goK@ePqiEvu}i#!t5G$A%| z_EV%$$He*Jm@#H%m6Y7;wh|OhBQC4%3}~~9da)+6PCH%BN#JlMBM?ph>(-5C8T4)p z3ruprtn}4F!CMt}$}eBOl-o~yyh3~{Hhoj9*;!n_B^e_Spk$L|7IhwEXWkh(m1|Thol(CGV zJyr{=1K+OK*)kXDLtE#Z$S5d&58J%38Ol{M<=w2$CI*wJUl zIQwb${jYEcstK4iUj_8#WT%OgXqf;0{W#3VfQ>ck(7{;5*ivZ)t(*oP(_rtk(mC$z zDlo;TrYaS^tVj{FV}CtazN;p(-RkUDvCFNYq2Xn9Dri4bo(dMcv*d|rpA?FIy2gFq zhL&ik!QU4!Kutny;@G+~EMvc2d9?BX5-bRO-~Qjc=Ri~B@9=3GrVVm2y~$i43rLO zjmrG>&39s?f44FDcTb7A>Xmt@hIQ$t^BLA)Zrvb};u}D@3bnZbzPWz$-WyO3BvcTdN_sOoXMmN3IlsQAy_pG zBA4fTAC_Roniqh8;uhb;^5XlJA?*Ii^BlPVvmW^R*uuhM7IZEprQIaEvWcp_PHsRw z0js5o?~uR5zQ7KZl1Y+bJZs9cXIODEOlOnn-IgvUMCWtCeZHr;Zh((k*L_M($B z5)CKUeU}c+uz08=pi_XYI>0VGv>|$`ZP5%9P)8=YE2NzFG5|wW)6o=TX$wOWijh7dvN8E?%?s$u2NkeNG zuIW+hES`Y{DshCwcHO(RJ{9W;-!8A+78>vMj=ZXaL1n_9SK>C>Ef0jg*}#i=J!&&{ zp^+SS?%+nWycKHiJfI!ApVp(2A)NU9j>5qA=Xa1|5ko69)YPrBzur|>t+dELdGhn< zTZQ#7f8g}qB?OdWPlUe+xQuVlzdf1RrwQhLp>!Fc-}=!W(O?(?ko13g<^eX68 z&%8i|B8$c9=oJodsb!b&J1zlx{J0J(*-WC`sdV9>n8#)c=B$A|x%Vl9_#%jGFz$9O|+BV!|yZX3(#u zGRcDcg5vl!Zva8c`o}J|+3!Wdt3&x`-a*c%f#l?3IjsbWj6*ho!T8_;(<%C~loS=2 zEA4p9Aq-vVVy<<4ht+kYzDL`Hi-rEnQP<;FF0%sBO0^zatK+420D1^%dblxKlqz6( zjmF69Hdf%pAQ{j-H-FZ*lUt zaEcv9MMcG{mnY{k^pak&Wqr~T{bk%jA`YKtl@36!ZGfLLSj7W~(%c$FM=Ry?04O{; zfL=eaACJ96qhQjBNIPVUZH0jMo&_k_?Uu=gxkfRenm*X1u|Sa7u38|;^gR+Y(m$W1 zZ8G*h)Y68$RJF2Vudp4NKf&)Cs(h_aK|!(VuE*aR!_)^ftcOpZUMsWiTi$SNSl)m% zEFbSKbf?M0FiQDg#iplse~Xds1gg#3p}B0(t-3P>(^gkkDK=6(Q#yU6@qqF&(^l_` zTF%eQGy_$v(6BbCDTLH@yL#ngdiwRoLcKDtg(#8lS_RZN_s&b@3CJw1iVl1tKo$E_&fDqdjztxq|ASR}N(X&XMvxS`6dJY_u2l_1v~9 zO9hx8b0Xuw3s72Fu{b$7L50O~nr|ljKup&YFUvzCBd3!c(d!(zFm>5v# z{s4?xWrUEX2f%vMHJ;{kZ-Zwt<$*xri`wM%Z3%)joQAhC1*V5E1sq43uC1-ngY{Hw zSSw)q8!t29)JE80>Z;f8B{1$e58qvhq!$CTj2#Fw;9YP^glf??fA%+Qw$4L^uG76s`Z7w=Kc zUNd2?;Pf2^JFGRp6c@DGyqN`4DFu+V5K+?5y!+_U9VOL1miwGqFd$O0w5}F9h@Eag zV5?&g1Z^KFop2;rpjxs~^74@{-XwejD<&dC!t;->e*P!~i2hw26J!6C1^B;2dfRic zSVBs6O*bkqcd~CWV0bn5#V>F2xOElGj{n!j|3lILA0=KcOCC9f>PD24k;i??8OHt? zn=(7p#~2=}c$oV)p8@Bee!yS$#@i&w0iYUJ%Po-{cmo4kWaNY?fAt2QhQ-9_07zZ2 zgu((ZIk>nw5iQzE0B>I-C(p0M0si%b{mdDMTKeZe82UQX{q!>=OoptCn+CuHzmjuY zhq|>^4b`!1B}xpKR0buJctgYqbn!CNiz|$NI}gF?y_V6sy{PJt z=A@sW_xkUEI^)e|>1*LMRHf|*7x;uOL)?8H+=V0QtdAcbp&X{Y1JL`C41!63SC)Dr zjWAX~sd?+qR|70QN2_`!Q|CjO(wm7oMy8u7r3UwBuT=s$jVQv%1pIn{L}Y>0>6Itt zy~j!_bxd~WLySrL?CmM9c+ zcz@?d&~+x^^xN-3c8*{(d?lMFjzG&F3&v;BD8efz_-Tz|1O;Jrrd|RdMa;l_xK4{B z3uuCkjg8ydWUx()I__s3h>_&p>KzPb#V4W$u&ZRk9*|3#yCR~ZRgEQJ!H9cqcjJ;u zHrBXrq&UIxjC|JE7`+e3rO~VA%e|>xpDOIIQvNkS_v#AYy4CfLRJt9o(^L^p#(JMa zv(_@fRabAOQ3%S9G-cYs8hw7UIbQt^933aK$^FFFIB#PxC&C9fIIr=t3Ct>9mcA_F zxik^GqY%|>Tj8>lsPofxMGYvzbxrTyzP%~wbx*q>@!-HM;OtPOxNh$$z~Jw$5OY0C z!dN8Gmqqv=ChUcgZiclUEfxX;fwF;MgVL3@Jy3uE|Lo}QwgB|3`;$-vHtv;sCXHA| z-X~O`cV0^nnhnPWm>!rPqJSWMaRBx;eK8%W6r^FZK;ITRWt2!^j zV|jVJo-`5brc>errv5CTYj}r@6d02xceQ|iWiwqPRGHp$h zs>@=s*4e>t+hVcbUU(WCax&fjxRm@#Z`2Uu|^{{;sIp`W=<3fc^^X06A0-Yh7O zVq>AW`wyH=A3C(QSZ|5E|7wRhT`doFvR{)P(zP}ZcZB7DPE$3#jnib^m)f)F%OMzu z_5}9fBwLBI26bq-YdZOAxd~LcnPpgTwbPMIN)aq%ywke(FRY9 z1wR4FiCSMkE z|tO-uctn2 zp<>KPP*dBo+`5ku1B;(F9LfHpd<)&f7)LyEL;j#McV~%Y0hIViPR`q5+4V!$4|@`N z(a$?%akgyC*dH@84EGd+Ln9&)J`os~#NGf3oOw&w(X z)OnWs_YOp-9TZN*2v!OHCJI3IW(O#NEp=ih2E>=W!N2;7fQv;VLu&>Cqau%cs`?-L zwtwn0>*p+a2%p~ttuc9A=U2&qT}|xyZ-2efvVFfCHdyX z+^(l%6R1=`*w|Ui%Q6#41^5}?;YF^B=~R{T=2Uh3lc-yzCckj9KCI=YIS3)IWHKt6 zLIH+xU9(KqsP%XaL_y4nmkU#eA;z$Fn@;8G0FuS8+cdjyB+Q!$cDi0*;N6mVP*X^w zbG_;UtFlm4a%UtnZTt;8EK)uPvwJhi zt`j-Q7>q*;siT{!swXYd=1w*a5W`pnY7DIcsVY^|4xTZ=$+i#**lcqn~_TCu|j@`O-Oj(Vg|f@oHx0uX)eb*rrlPqrA_kL%i{Gb{e?DySd{_L zit#nzVl^WJ&lyX6s5oY^KW1jCWl8&s2AqqgatNLPAA81BU)a&~uQCcYvyf0CC>5CQ zf^*Mem23w1?ixKJJUo%(S>_3w%1`IwK+#|2yW4`X$MJg?vITfxG|Wkm*{ zojT5pr|yyGSF0h#=*8XIcgmM?rh0>#+u8(Q^)rJmNhAwo2`C~!qOZpR0i7<(+T6v zPUj$f+JG#{XPxCQoaKK+t7G7dZ#P!RTi)$+xH0EaJq~nq%;){_?f;^lXE*XKB0w3w zI76*mpb!|6WjXQF(!hO0i;aXb?$gGBkvt&J;WzhHWG)WkVFe5EE>Z*tG=^^E3P79&&8OVv1yJsqKC&re z>6VyagG7kcuebPMgg)q%sb#crI;4aStK^~RJ&+TsZ6pk!DdM-qFmZ^9O`ORf(XE#b z7O2eWrOA!8i01%^gjG;5UR~xS;WZpeC8p{k%uFdqe zH4KbTe8Z1uJsTM_J~{N1>wF42fd=6!3KQXp?Hn%KNyKSZ@J39qvCKPm%^0=c0qF|j({gjN$(!9 zgq-=fiqiA=dZvDHzR(Iehl07f8k-raDe>RTcuT%}Af^Q3BiJPe899Z=r4JO zKHpbwMF?c(WqE%ZA0HRYbr&;C;kE25$3&96c1$YmC+5eTyVe_na6#}!F_HQod8(kT zpt_UgG|Am&%3;T6Oldt&x{`RSH@0iN>^k%Ta0Ej6>P(SDUteG*AQpR&z>5e>@F-8_ zUz3KEqyKNxV7@k(gW)V+){rGkN}C$1c0mS3<3%IZHVw`2YzSt zV@!Ank_qk=9X3%c5Y_<+S6SH?rx_1xZE4vZQkMb5l+xEbbcC+}=O&Rgq7GO~aN7K>M8+;}~Av|R~r`>5TPv&KsTUvnRut~9E zJXHi#6$~+?#&Mxa8nFeU8R)nrFNu18+m=$_#3v=Sg2o}5>6flo zW`#ZLQB9-* z{`3?SZzue$6x#nOwCgyD13jkR@sA!89G#q)*s=vh^sWmPtN{rUq?F77DU{|_aQ4dx zH2oXM?=%1_DNs>S5Z3IN!}To$jou5?>&*HyEr(J?Zr zLAR$d#r4H@+S?8b77>wTf7m8BnPM=2vA4Ooi9(u!fIGp#K>*awrVqr}UY={UkE7Et z6aknw^FW+h2wXtN`#1A~ZnTl0dJ;07K_7#*pHxKhStv_;69&h1S34)nuie{%X1RWz+B9 z7&b?Ps!IW*I2ur%REum#19cOlr2C+@4Hv5*ya7eB)qVV4nP8^{HD)jFtT^ykFJ>yn7kk8WA)@BYb z+B?9Ye>EHmW*}Gw-K~83U-CE=Mjjt|4CL__{{_D}0Q{~a!?r#DuT&S17tSzmfec#E zr^ksHOux=$f{ioj9UiJ_eX6AYzX(nKrE>negeBoBGUx^ypeBtA@0;I;fB%5@X0p;p zqxPw3r;zNP@NbZs!ca*N#{$Og&Hg8PiTSS!I4TNmP48tVGl6}BQhoatika68yX zqcM$Au0=9!H1U9Kg%2`$5yPTtV#Z2+dTcRM*YEh=wUl$8dN|G6NQ?bLntPLxnUx8c_Dco}MeBrjI+qo49;w? z#5QIcLSQGKYPV}5fMV(0b^+Fd*YTH-lQ9^&1t_Mv6+TozZsZ;LsrWFsVrxx;Hn6-1 z@)`>IxkJq^`)Hw|T!D5GPFcT@taru6TDUE2-e_!|2`n=6iw}ov(KP?)8%w@aqib{6 z&mcxpSu+EmKslWs@8Zz0$d2(DPL%n^pmu=^rB~y|*^?$DV}54?2*$|K0nC^>I=X=f*zZ?r=+Wn zUV4iOd$u}vt1q7V7%I2iMPUIYhn0iFH>^T zm>h$rdTjzp)MfS`aO)IWj1?OO88_Z4EUDzR=Xfz%$=eI`?4>kE7zlY7@0>6|Za^gA z71>8a8#Q}eV+AFVbrBs%0Et_GnZCOI5U9?&-PDYM=gu{r$lgyvcA`!@Sp0RX)ox|L zsKzgzxq9u|wP7>Dpx5w^l6&oU66%DrARxHrz!o^Xj&ygtnKC=!b_2-YeFMJQ_PU}L|6T-)CkzOJ;z z)xtT(2(s9kYKdr900TAr|6Nh}TWtG3tU!O+xVfL7;%Ecjhd2bli!1l5D7(Ge&bRUm2dND{cHN z#9?ISOXlt`i^X~lKZ*JCfi~lMkYe1h2l|`)n#{}O#1I_$@a)QcrauQRl*D0T<`eSJ z%K6JXfh5iO3yE5Zlf8lEd>0BEKll1?^KgFr%dc9x8mtu=n6t)=S}r~RA_chZ4UEuQ z<-Fi^x|Y`^33>k>kFR!9AOHvr0?C$cXbeI3MQ!uCq>mKn?00fQV$;$vnE};L59T^J zvREHHD1WqJlp+foDsb2`PM3vr{U|p~)bc)%y#`P6^Y*6^@psq!!ZC1pfeaj~^>oyR z81;OMk$U><*|XG@C68L}O;-IGzlcwlz;5&2D1u@fy;tKUx3Pde#Kq``y8xdH-ZR3HE^-MzsQS5Rew$L z-cGMR-_N>a{qZotGac}=6~pE8p>2@%I@_*|0aDPd2d^5xK8^s9Dx6sWpO@=VGfh@y zb8h0aVlJ$d>?+J+VyVDwDRo3h0~!r3X$c(uj<|Tu4PK9@pVhUsbB{>NWsAFhRAL4? zUA_;-OLb`Ayuo%^)$+Pb%dioqGO*@C?Q=HQ#?&sF`pes}*L=0)OC6x}Gp2mW5kOp@ z=LmR}`W zkbOov4oKK_jpsmgZ3dvxd*=&*_ffTV{g7&^KrrST3fYaB5dWmE?rw{ZaorrhKbbL9 z+&_1+vF#>S4L+}4h?c;_`rV?oIsuxG8d_py6AIQVvo3WRc`AK!K#76x-|e2vfz4e9 zGp^H$zjx0n#PlNrsa0Fxqx@olH@zdctV`h)|>6wPZcW~I8T zLwTgYM-IXzaM@QC0Ya}beUeBYaLxIE#dwL{K}0f2eX{II+C7qRq|wXb)vw$Eey^** z0;>Zw4OqF3senjy`51lxV)K-1-_j0K2#9q6YsF<}_TlM)lvc9mOh8`0_o9@}@cI6j z6wrP^w*SUm5l33Pv0_!wNUMRlzc%rW1Na1kIm$F@>7u`uRnx>W-O?w@tZ?(xgl|b% z(YKrTBoux%f9^-Pueb{|Z%&q_6o>SY!X zlQGH}c*Nofz`0^hvsmV>k-JH>^z@q{< z$MujB`s!%2u?Ps<{?CPj38B6rTy%nLz1%wqlwR4t^y|f_>cGeKvX#t>2X}DRP3&ZK zAtp2`>d;0P?Oka*4dNG9bJeqYQ%cRlH?GaC%ivUr>gc&P{4rD?q9D2A5O4IIkS8axPx6aSvSh2V#aNZf*~f4P3&Y z=|f$T7rTP$GEEpCnHy5~2w^r zErEaq^xrIS{yCQ##j-qSl%c2V-l7ta;XtZdB}1Gld8h?E>X;&AM~w@)6$;4joYOt~ z@q6fjWu}G)BeXb&B>9-{4Zd~3q=%OF(m-_ZYvnu{ohhFV83(W)wXFXY5SG4_RZ?-g zE`vTc&*ydrk70qe+6ivPQ=!6pK-Xo(6heS+`P`*`)YA6#-ra-ZL{?_VXto?d3O9ao z{cza$Sq?9hp@QaP>UWx&`+Y!-#mF~M;9ZW(>Ow3z41%fp9 zoqx*%9+2vSNN`!})e;HPwKnYC(3ls^3OKTf+wTi}^;r~5Pi|Yo?eXd+kII;>UN5fYfPHI5`aLpxtIotM_f{DEc>pWS-v#ib0Y<;-|H|ms#RmKcI}=euMNYmO z3?5OJD)_nq^mnbujxCQeOB7@~ycmNp8OHqUS`RMw+=P6+Si}6VkW>)_2?6Qu4(XQe?gmLgKtMoRP(bPKkOt}8Al^NUeq?v)^n3XRUYmyAB;ts5-B(MCfZUf~xeuP9^3!LT zs~bMN#JCJBDz)}f9l$Q43R-->LU(3^F7hV}#Xv8qv@Wi%{@b1%%nK0bjNpGZQyxHlb}3VDdMH~knt1B%f1orqhUkZVZ~>^6rYLs zM?*x>s2`nbk~MHA-3emd7_MtZV4dDj*Smk9Y1l#{9bVmFgFSk}LqVfd}S3seRN~ z%z5*aF;vBDV|UQaLB;sue2A##GGRaM*wucu5&1$mgWN66rFxKwk(nN?t1>J-@7=~$ z#NI>4H(rL;Bx82X<%ck$YMwrbxdr}hQ=@Cp@&0-_p_I%8&IWl{1SwZ|CU(ov8S~^= z{fK~3s#O|qX6Kn6DtCrnrk5{8j>1eJ{za+-F;ed-hH$*%+bW44z0)x*oK+`^^da_f z1F&DCl&wn+0vwHxHu1kyAPq0>VGZYz*zhf<3Gx%E->lw{*aY*=v@Iqc_@gfF@*g;8 zc&uG7XUY_LGi3dG|3; zLD8{z;`aN^;hQBLB4-KP=&dW7aeJIFBg_tz+WNW)3{GW+VB&Pa_=4o4THL`+SB%JeEEns8Vxkf-0nI#4c&h? zs(yK>4GrOR=k1$wL=UZcujuC%E&I8eQ5>p6H-R1)+6T+yNn`wh^Q}V8`L6SdU=T`; zd&L=6bH*hqhZf-5lJ+ZYVSHt4&ubOK9#=l74b50uiEE$!9k6cY1O~VZ+bQ zZ54=4s7kdIu?y&nU(~s646)#)4KaFB+=gUMUlJLZyWXVh$tk+EaAmfI2y>@9JJcKF zpV+RG84tf4JVX&}s(=-g$~7TIqks1NNm2IhWx&E%y6NrbZL*;cF@cman@twWzqaOCArAy~kf$M1donPrULP|)BJrp05vd0L<~+{( zo5dV`B1$O3;5%uac2gN``>YF;18c9|Q(lKjPqs~}ERtF1!@JAV&P#p8_lJ6EGszd% zYcPT;4bT07HF@Tt+Adn%bB(*{@zd*tl(ctineu&l&9j8z3Ke5YGm09wJU1{X?QpEj z)nLufF-!Jb9{E)n)vDQggEaeaWcr&gn3rzmkQ0m5onvOcO0|*zw$Ew9Fpp z-SQ28$0ncLnH0|jEZv_N+0DE!%Pzo~EUPrF5rZ-FDsZs)8GN#&dJQst7jK{{=!sQ% zB$8&o9wm~tq^Y{JAiY#ghc1T7jg4hNfgtOqXAy{>%=~m%>)tqdu=rK#_H1tUvFUp2 z6X}Cl))V8 zLvNIuSY*zQwt9m|#WB4LUeBM<&iz1>)mHnB^sqB+^t4lkG{q9<$@|2_!Dodo5zaR& zK|x7F=4ITO-KadRKim#74P^G*@Tz1-I4|Qq-_Gx5#3*nwst-!$rLyKOJ*@eyLAWzq zS;4KL{}43XD#=?Rchr#(9FcHYsQ}PA55jdM4dI_8IT_>Vfj4T?T;Q({!vFrKQV4Wq zj}C~#ffxyqFzCP3Oe2RW7N5ycqpe3y+a6+{(L&>t@7}_jbWy+}8Y`pc_wS}pyAA%@ z$%An4jhMfW^gq2IZd7x4`!=p7qFK(z$0wmk77Qm|1M&IGmmh|QmF)5Lwy&Ox1>ic1CBtV~dS36&?x$%^ZZ7L~w6e{un{_hGX8cENFc_>VbqR8KugOyux=(Mc zp|unXRn|m`{HOTG>jU3plbAX>I!d>L)YcM1oR-YFQ#kFJr~&d&>tK*HOqP4`QQ{eT z1cRL13p{@BGn1p0c&%n1ZZM>eA2I9QVS6dfPMtFFu{~~=WH~v@YP|Q~Ct{FP#?SCN zdbvKB9+{bGP*#p%Z#z?6G>YIu9sHxHaT4)0X;ksGxGQWvsxy+vfFoww#%!rAWM{4> zskD>@QeIx()7y(c#mpSj5_8Y{@D`U?(9b6swm(}}Q3)B>Yddf6JZCpT?geeIBNmVrputYMn-9pN2UR(iOty?DDiK%wBn0lce*wIt_fY zB+btUhwxmyLoL-V+C25b^g}W0Pg_dqUUE2Cj$~%FUVpWB3FE(k&G|3w?;BW=pY2RP zGo}K-QkIah zZt#J!KL3;b9HVUGh+F;1s);@)han1)xOndS%MHz$N@^CCQr3LhVkOhv1reU646rb_ zCyQi-gnkhu&=l*M?i(l{t4RmoHy=b(3StH5mq?aC$4U)Fzb-R(e0d>1rICk~Eb%PS z2E%oGT(|_PVV4s!L+^c$=+m@~ltUqApO&3J8lh}`AoBmQMVWl zE9u{Q!oz<}tw?}1rKDC>UcfY~q;<{t<`h#h=I&#r0ZJIw?$W^$5}AO{lq;{xCQe;l z9k?iQDNbE8sWkM`32uf2zK0~3C{SN_-`i8@mjN>{5iJJSb^Qc*-S<|Z2L3cmOwsED zsorI0*?b!H{*j~Xk2;59Zr=OYa6G{Z6V*IwIB7K-oyQ*5LW*(0iQ|;>PIp5bEE(hJnVj=~PQo*{!k4{A4AEF%_ zdbKaMkY)T23FceQ?a#~KwZ6ygn{M*voT;&;75y2RkDdL?EYG~l(GAunHJPkLj`jXX z;qg+*>)X1mJ^QBGr!>0@5>ccGpE5G`&h8kkw&HTQ$gpjkK<6vVV&;=Y0Sn@xXDspYh%wqGL)*4i=;w4MBUSgkRTgMdxWYT7;7YyetAt>c3kQb^K%w)dR zXljYb^uJ3!z!H6_L_TFhAKG7{OnTnFJlvy7E|)G4gyI^M%x_-J$tkJ3EOX}we|rXazJLOMp{Vbw=r z`M5ZOfyOVplP?a88*kbw#3UrVoW~w$+?}VUruO}0$EfEcKT9K1$W1OSP$$DeO+m51 zBFm3x&rsBkknt*w4MnE@o-@VedxaVGg!5;86aj&{DZ+AZB=#?(0qQ>OfPuZQLTbH3 z%v4ipG7&VHi^taw9k_IHGv^+c%WwC5?yXSZfN-E5&2CK4^SzslGwRc=8Ns$okLC!*-(Ai7 zuL`v)La+B4umuHM@~8T>VKVoAqN1V?IsZuA9i!zAOOc%+lI4>RWR3ppwcp{M#0;AY zZO@3YVqVmgp$NOPkl8ObbXwJWv^W8gR*=p$Y!CgOlap|{{KOkN_4ZoPyQ5|!Y)&WK zV*Zhiu)y8)PjLxpD_OJ-isw_PZ<&68SmYW<`>l52Q!}YS}_ICP38l!iN ze{9zV?X>}J2fbR#(Y* zu)&pk$sR}OOCf~uVfA=_mum;v0*m)j%W^ZWVrxE^DOoESmr89>=Bz}&WTPHdyfV)_ za8r3tE1)l!v^Vz=lajD!rX+K*#NDT(_`45>U8R%C`Jk9MN0wzpF1zjM=XzI|mwS5$ z!SS}TW(ax=p26XKM4vz%#FQf4`R>N^?DpbWx4)pwp8G=iQO~}GuAf!pMe$*!)m#LC zBidC~;uU5C;h+MWu&Vti&R#Ayx&O2423o`5D2?oNvoEiqp2WAG9PDB3(}H^r0ivBt zrSZ-_PnLvHLNQ51;=ANGNf)Z7el;CLGfcNYu)>1CobNQXAx0RW&F;DC$zeJ+~@@|h~I~E47i*&N(UFP$d?b= zpgp#u4{|K=3NMlIr_h;Fhc?Zhv$DqJ4y26MIvTgNwXJq)bn=0t5=Mr6lZ-h!Udp_@ zSc!Q_M@M&fqv3zqXYhkkEpv0z0>CEOv0VAX^YfC=^^r%O_5Q6SPwVOii@QIMcXXBFdiP)?RV^?Yn>X8_~u%Kg@xJe=hJ@u655_DkhQX+zx2FJ8XzJjmaJs8ip;(uCe4Wn@eg zq{ojRi;0P;x~qv1uq4Z|N@%tBcDn+AMG*`6OWu2k^S^y@xT&jodwp86;{}+-4?}t~ zs@|8qcIj;TXw)4O^7W-~rXz;iL%p~BF!Rof!kG;z1x{4eXS%;cB^qIz;cwoc`ynA zei0}fSg6&265xM-z0jY`A9nA3f8SUp13sY}%uG&BZme16e<7E)nBeLu3#bbXU;=MK zp@xCYZ`Xr3SP{rh(olLMSMKRNp9=43XrIO74s)t*@5D2cn{ z%zOL-0~s0gAUl!{{*}F@nWBZbjM%~cWVX7c&?gX0z=<+%&)J-uoxwUVKTDggw3!~Q znyvNjKHQzO?*#)&ASo#|zQ(GyUl_bRIc~h#E^vWO4iwqGlAfuy{p(!bYao3;5cs8G z;49wXwyWEsn9LV)O<9{M;Clrrb=%d>NWCLtP%r*v!%^X|ByzSlBde)N4AIikT3ubm zXBY#Qf$p~{ES1~(#Y11bsmh; zrS!oG7!tfsBVjW;7?Gr`ON338J%ba&4DJv-jWYYl}2W=FGYH$^8-i~gYvnCUJ^a=g)B;Iu%%XA*N zHy(|7rB(i*U?L*d(!|81_V=4)IZRS^G;!t4(HxA3Y?gP65D3_r<54E<+@G$aj_z*R za5QQk?GU8rFL=6kJ%fURrprw++#1r&bNSnEJdd>+OIb!=qAzJ!`%((CAahIhg!@aIP6!}Y8g-tYo_r_6qJ;~k8E3mQ z&Z|9-L+1r5r<@|PYZDoY(vGS}$U~@|W-9kULlf@QM1NR?*j}24GoZF?1s6$$-LWaP-{zPc8eV&umvwlMf!-)A3b7p zeln*#h4^#xm=Tb|XQ-S+3PgkwZ^$&iUEpZ?du)5(bP^*^;II>KeD4MeIU-Xpw`9^#G7w3&Z zX%C?8-~)P!F8bh8#Zi5$4TmiJEwU0l?C&gM{bm(4>W&ki4uF3nrjLR1iBkdyNh!TF zwm@k5zf{zJDzE?aqN89z?A(>0j;{p1%lXD^%OWhC06FIu=)c$S@MZjT!NJ2H;=L$+ z*NRw@U;slBb9^CQR;u(lZXW|2`o|<{cxY%gx9Ee22NJPLv7jc0_f1?ul$FvDvUD2_ zh>4T#@BxEXF2epK@|)&f1|1*t6e7P-Ye>t@8Z!jmH+lCP& zfhDdyRqx6GV8wb6w!l}(7z#0Q@xuYmg<7@dh9aV%)?cf=@gE{0vNcNdN4Fn~T=12k zhG%9{Vhi4|lni<$)GT;jmv7lOof5*JMYNopME?H%`Z_11McP$Qxw(_)o4k&HAz>d( zXc)xC#~s0w@nH}$!H)>}o|kvLQ!#WjW8aeXN6pCCIGNX;X=G$% zZL+L1_4gYJID~-i`(B+aM|9b&nPnS->MK8OL+Ho3lGXMBgNcs^&-<{zJMMw{9*8vm)Z zgbxLDs3Waqa|pZ|eWVo3X!gBEEHxV-{YwlqIQ2_*bq)!0x`cQcVuwcq1OkM8f6gCA$Q!u&&cIE3oiGo*qEbRl(h!uBw1^PW%Cav6Mevm5yq(|?Wl zxe$=2zVMl{0z7L3q`J=B-Py8u8rj5mRoWx$Q9ulYvd8y!1Rx+mHbE1K$Q~{+5QKnE z(GO_qL(mL3W||iyw6#gW_YsAhE$k-b$Jn7od^D~MAt50nP2TPjF%3qaUi6Fg8ZI^j@1^5k$a`$%BpnFLn}K*=5cRt`ws)@0L@NFqkJs^>ud2*W0CK8iqE@VjONeU=ZP zaTI57^$-Oq1}NvD?m6 z6**{4PfxoOod0QP`F1Awuq{HpH1~2Spd}nr03i;(*;CnMBr8?|Lp|) zZ&XIf1+o2w{Ud8_IN;X%8*uBLDgD0$+(e%Nq6UEbjRY_RTs4Hzs2jT&5aK?67PGMU z!5LAk92XY{w*)kbWUxO0S^DX-XABKfq<>oijuS^R7#$|8b$jNfrmw%=LnJZaeUVO0^g}$_;Vecmhsbre1hR0$y`O?Mk-Jk)K-}&3?cz~0H%?lF= z1@qnc-WZ7Bh&G{x?OG`_itKK|Javprhw-G5&jnW%j*6TJhk>FsM?|6p|6Ra`N z^|I*DU&KHBHlkUm3;wdv23wNzy20iDr>|efe!zQi)b+&vpub}1VA@~M_^$ENW~vq; z;AMOs07mCyd5V;f$zr`efLo0_e-jj!FV}axcHLG5vPIAPON`CA22M8ff#+HFh^ZXh zLr7*EsamxT)ZXX2G_PJ^I=DdzY<>0e0WulIeJrB;=080Sfy)!TJz`f>l%PQ2Ae1uu z1p%P_>WW-n^A+J8*CA>U%A>Y-EDm7x5-`Xr<3oLeT9s^4dQF@dp*gZd z_~M4Yejxy?{TEbTl?J2~XuUR|5OO=OvjF&xf<@L-&Y2XOmZn=+7+8bZ0Vpjcb#2z?0I`SPIJZn52VS%x94e&%PKcG<;qZ8N#c8GP?zA+FMMu1Hg z1B!jPgi47B>=(@@uQxFQS9B1-|2JLM%)cm%EIDxLwrp&y5vAI(CM)41Lz?sr3JE|x z((AKI3H_^5k4)s(sap2w%P8Yd7V5RP2BA(jxHAK+m}~eg^p$RH>Fn-H%-EUGS@pd} zfIQUVRN@%eTO{=~_X<}dnVY|=6{rI`*>yU#N9oSCMH#P)@K)8sgG)Yz-S9Yf0F#&t z-fE$hJg%@s2d<0T^99S1Y-HGE$?^9;fV__ud2ygjFY~j9_u_xNHi|aM&iZTgK^}((QERZw>-u!ycer{}AShrG(cw zYHF7k-(u=^&t{a=CQd!_2GbpWU{%}BNPwO*%w9BgQg^)0dU@CjPVE!8s9=@@kUq8r zC(;sguOm<%kq$Sw+e5un)fm+kJOvH>Z(a4h4r%O~FU@W+{ib#}Bo??+)QfZywA7`f z&}tU^c=_#jq`{5bXYx-%-SdY42Blxpy=eZftDmH^I`6sn*-q?h9O{mLS;$q^X*b}W zSe5mLvMHdo0MtPi=lq-cup9gqcWV~Te!MaO_9OK}Z0cY|ry68j95UftnwZa(a{HA+ zVA=6$+kqDSO1JbA07O7R@pL^aph#M?j;7$J2hI{$p)^8A$H#q{KOY<(9{OC2geAO9 zWaf6={tVFla=ywI!ds8v*fi|EEdbweDL~1N16HVb3rs0>=s%n!4aWZl)t8Rp9+U=K z2{KyGlOH%Dx&uDvCpEyq^-1~P6nTx74@~r3bA8C(k-F5%Xv&XA5f5L7XlNB~&wwtL z?>!cR^X6lvkk7~Vr62HS6Rh)G$Vbi-s#=0IF<12h^efJWTpI8>GYXneB6q>+Lv%Vi zH60SL;S0GhzuqHbG^#g02#--FZziFFM7(`Y$Mi7TXbia7@4>r{KL{w19J$ColDEf@mCPAva&0I*Oc$(u3Qt; zHQaTmx??CeZqGGheI`ZvCiO@hp~nwG-gKoD(DE{W!4{ko0;)8qX-`>MM~hhdRHuw{ zbkQ)<-xkt5EyAI;qAWq}*`6qXA9%m%oI-g-8L~6qlnUyDzH$Jlh>1*k+l~Q0^1Y_H zgdH4MKrcdAY&xGe{xdeF*H}_refZ{pWoW zTWV$rC?KFv7GG~|ZSh_2RNS1+*#B@#n3~dDA54{XabfT6?LFC>NWI=~$t-EUiU4}< z`cURj6u-R*fc0S50AaC^$onK-BUAai?ls%Lt41Y;&BwzmBJM671o#%8`TB=u@uKBz05J3U48C|Om3 zY(dd&lKbem@O#dk!rA4*X3}s_aI3nt5~ zll#<_QQnjB6A+K1Gr2@JGHT*d61zXFw8Wm=S`DVp$M`#7R^QmzT)t$t#+6O4cP(Al z?5#F2W+!2`7FHD-Q4duZA;7>-&yI&Y&L+&C6h7J6v8ncLiK?t*HycPn4p<+K7y!gz z6WT%v(Oa%}I9ipC=>w(6_~27(&SYL`0)Wt#e+pkZuMbkQvBd)(z-lo}1qsD^@>|b% zpWe~a9j2Xl)Ft$a5W`JgQX%?1BX7I`wvVXS5z`4z!fe{{1JdJg+sQ9Ku9Sgv2-<8! zHfS)#o3ar=Z^>G^DUsF$knaiA($dm+i9x1l7}f}2AAPyjfA>AWP&AE5Uc~ph8k9hj zygtYAnj$}V@O3P~@2)4?m@0&ojZHRvVXQter;(}fpwt0hQowSH#3DsR;?F}7QN-T< z-%r`6x&}B;+ZGlw4-Omv@RtT`R5(zWj*h~&8z{jtE2kBQ0(TcHeEg@DZ&g(EVs_^m zl6Gfm@JLBzYWC(d8!cX^tlKb7*>GS{^61*tfxZn^fnm)ILh+Bn^5C#AxWCYRb0quA zQw$)$IeOKu99PE3ZKb}(kkF9PQf1%4n=&GK=S6eOws!}{7YBxXT#ks2dMg&tX7Zw$ z$`{p+uMC$AHy?SCrF`pm3c<D4sSKq8hh?#%V~CHbfKN7&$quya#{>EM z>Az5+KI(e($bwJ+7XV6i$3OFb1Jz(av4zk<9+q))af>c7KOY|)`~Wn%bfg&`z2rI9 zq!eyzv!AqjksqR4(`+U3HkDjtJ_wqEJkkOiIMEu#+^H4=e-7Ju)jc1C*2gB=M^e&# zpD|=EQ;zCORm0HHXTA5E*gy6!t&Wg)=#ND)8rZg{*}7pl!0_4GYktSU$xj}r=pRL0 zYhA~-TxPkgo}Y@8mzt!v#SwLEd`Rt)8WO51uuD?$z!M3Nh=Uxy-m4~NXMYNlWcBC~ zDz-Iy{;DVXO?O16Rn{+crL4&?cq%I6Q~b-TFAc!Z1OS}|z+qXN8Ve3LzjkqEn@t}PjPQXJP9Xasfm0(#Y zeqqU~FQ5uOc#TUX&_#q=8LtvICy=O%rtB>ha6!D)hAT3T4?Z%xJX)L3L#7UPhY4AD7JOR1~zH zhd7igy{AIJiT)-L)n-(6xQsD0TxG3s;^mtI1;U1gQf=Fc$R`j{QND(sp<+X6y~~z} zy21ndrY1zdKvFqufy7YI7(r0Y74aaHK@K0BpVc$4UzONzr9j99^9&+*ckyh&@0_3W zoKjKA!dGACh9d~&%m}dJ1a)R{m53?<^!qwQacydmaUM{o8@lE@0|Jq1H!{3+V=Pl7 z&h6&3F8+wryYK5S{r48lTCmMFYa2)==$CfBU?6^^g~6!fZrY(Ygoi&#Y+anO)A&x{ z#svvbF`%-CgNzA7iKbypf)n*C7n!oe@Jf;3AHI#GRPNEu@ihxx4VnRfLy)H{NP;@R zM?Yp%Rtltz0#2b>;{VTGwEzKbD`aF`u>)l%3seF~;ho1Da9})fWhq6)jcN1DHGp$P zs|tXt$m%|?oBiz@0!RU{t7NA9?v1B?eL+IZYJvtjS38JKefkv8Yq1Q<1eeDFRXk

eZ7v*YJ>r0jeB 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/disk3.png b/doc/salome/gui/GEOM/images/disk3.png new file mode 100644 index 0000000000000000000000000000000000000000..5dd30b554df5f04bc1ebe46e2a5ee623951fa982 GIT binary patch literal 17483 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 Rza#`h_NAh9(Q|_j{}(RAzj^=w literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/disks.png b/doc/salome/gui/GEOM/images/disks.png new file mode 100644 index 0000000000000000000000000000000000000000..368d9b6bee62cf96ddde54495002287e5b0747c3 GIT binary patch literal 3574 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 Js#AX@{SSA0V@m)4 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/distance.png b/doc/salome/gui/GEOM/images/distance.png index 141ec8e5aa6f67876c3912bbb9170f61960113e5..594bef905b8b4726328375860e8d3c766bd34d80 100755 GIT binary patch literal 16262 zcmb7rbzD?YyDo^Nlpr7=Ad=G3jdTepDc#)-L$^ptiF8X3(%mZEG18qQ-F+9|ckXw7 z_nhzC-@Si`Fneat+Iy|_yidG4{Jo+y76u6h0s;b-tc-**_BlQZT|~sE5~8@4pO?loMMFv-Rh9(WivE(2 zc&4fP8G}LcJ?@i6|B&|*j}i0f>4T|pmCeRD)^AtY#dl2DP1v26FOQOO;$2M#*2GQK}lMu0D?1NaPL6)wcE1kVIQ9s+SnKYQhuybTp2Xw|3D)0)87o zTARMn#iEq(qz|w@cjpSmU8fX+;xbVG>&LVALUvIMY&l#^A_%qYJE|GBNa0#==0_3# zIQ0^~%w`Wt7!vA|gGIYx_gg}Ko8U~p%*Y?9Jy@0jli6JxY)d`zG@SdKBqbruKe+#h z+0(mynaMtAzwgMm`RIAj=M;oZzEgU0FZbe)+RY`iIq9*jj_==>LPSG(9Wk4fjEhZ2 zdh^4p>d+0FkXu-N6Z zsK7IFz_oF}&2N(VAsqPw!q5H}wf@@?R@;r`MvMe=t-SR1R0ZPK-|=tsW)vVYhwX!H zI;|*$gpbgP`xcptgJ^JyQ5ap{J1_Ci)?1VxNlaK|NukZD;{2`&n+$td_F_LtpufKg zbpfCBbDc(c$gI7;s9(^!2pCsZZ8;Oc8@cpJGD2^^^?f?K!_pfATXa~xnXWizijK?W zwn@fi3T+B+N^PN%$?4vf^(l=29saStNSw!k*WJx6-uID|n-ArLzege-qrzAYA=935 zzKX%zTuZ|)>-%n8%LcDbY;z{E-RN&}sctp}3NJAuXM zIV&7R$&SWi)=Ae*$?$Pn1pM}D;C@~mZCPv>B)yPkPl z9{OV$w$i<;uHS%6`m!6t(R{f;BA@5c#il~v{p`K}?Pj*KZhZrJaB2ckW@PWnE`}&>^&P4<`PEM$~N7=VMQIw)TXnI>81C0b06V- z$3@jgE;DhnNwKK6cK$Ti38p?I;`>rRJXrHK-nOtk_o8Y(2^u@A+|kZBdv-d&!UKos z&o_^7G$pXVMV|`vOLDdGH}C<|ZM0^v9z7q*Z1S>=+$&~Y-&?HzN@P5%A}AthY`SG1 zt$>-U$XA{smf!5oEfQO-^Z8oZG8Lin zeL)b{CbT#H_H@qzWB&%Ttsqbq=Yy!hkP4(MOrXoJl~qSij=Pk<^oGJJ_*$zgYvW*# zHDl7##JbSPA9l_ts?B`iv^1S)ZC{2$_!|-1Ba3WqN`g<{v<6lf#Lbl`kFQqk^{GD|s$q}Z6J#S8QT70PaPx66!D_kvRLQ!B4II=A*f;lA5I(d(bs z!)Gw0Z_e^s`AEiO7WceF+V5T+4wFgjL86Xpzkh3F$u^r;w1}i!LxT46%&u!cjTP;? z-(+^+CL;-EEYG+eW-PB9;s?`x{Z(gO7F~`t5#sr&;aKU@Ua<|FscNYf9-}+$2Fo0& z;4Y0($;cWqrPkG#9Ib5A#(I*ckPPCSEhO#R=Xe_iIYwV>u zCoZ^Y6?B>=sc*i|Wnb}JM*UQ$^BM_S>UGz|=z4L4^L!S2>c#7pmixWz8;U#?JqNvc z?Te53i5kk+0}T#SrGh*xCSs?!7Z*Ghx@4`wWsmo=sfYVm?Y%IrF6%hHIg@&|EU3hI zBgT_vI^N!%5fAs3KK15va7|&a#ViUfS~nmuWu+4?N2OGNd@Tv&-@GST4|i7)T3>5+ z#f_X{gk#ukHfN^$<@>rd9bs6FKx&!kq?QA z^5&tWFWmOYv*=BH%m9h&IJeP*FAL{B$GhBYE_jPF;HF~rm4zGNZt zLf0Xon_$8MdgFJJ<20C*mfu{=jixchml-^?i?IN+!bnnCu#K1!FF~AL$0y1|on5CC z_jupC-o#jy$4#ian9uS;>2<@LJ_|ih3*i-4K=|%*5gAPqkzL>+Pv>+A{ zj(yp5<|Jtzt`hp(%)m6N%p~7>b}`4AvbTKsH83-c4aPLr!|LXo7+CMKi|c#QS~c{Q zNI}zkfL0v(oxK8)>#MQ+Eq+Vt?dOHGZb#k(_()CLGyToIyGc837frcZcH)Vu z>@iZcC+f7e&9AHSTp`R8I6BFZTF1FEN{@5UORy{O*Dc6o;U8Exq=X_uCSy@rN^(cowFNEC%X8Cd~Z(=z9EXAcS zzxNl@`hH~}W04O()=eU``I{Tm*>f%X!`=S)Mc-mZ!oGr+AYXSzDJxu^&0sL`ixjl4n^oppao&Kp)4b z=jue1@#U1t4~Nt{v$d2|-fp&aWjG&PzBc8x0t;{W?zrzsP=TwS-@D|2lxYRe4!OYq zoM`%%!$xBV4UTW);+p0|Awq`-(puY_Ck@((_hj@OTh_h}N8U~vdX~G+S(vf#U_IZb zBMgYMRoUzT8V3zp>OTGB89C$@4!?IH=WkY%aaKr)7&e10e$VOeM@p|->xDb>vUnVX zHsHQuo4`DDagsxO`kvY$(ogzz-aUwRbsf zaLV9=ktm)CDg5((OX=O6Scy=S*!0+)eSUOGxu-8kB(Fl?@m?~A`JYBp#x7~hbIC(r4)321=z33az47Wvd2I6R+gj(wRtZzMtV5+rI?QTD ze;A7YjwY3Fa@$3ak(D((E1hnxT1i*#?;98}xotd+%w$_2Qe&+G*%*=(IX#r+km?NfMowsChfIY2_b0E6|ZKn=>+I%b-n}zf@(;LidEeV#f78~l+2$)m8;_nk z`1@eF>+-OhqPK6r=;x=W&!eQc?dEzu6EI%bz|Bp}&GDZ-`zilKKgaWU19}85qra}H zm4=2Z1o;W!NJ~?k%gN2<@j$9TjPvG@A=~rkYz7E8LN~ZYMMZ+=f1T6#T`@`~6DsY(AT@{#E-Xb&yG``csey1@)^}kNi(g zTtcxZq}p00bH~fZ(>c!C)*=3|9H-qFOz$q9ESan2xXK*G zYwlzPQwM1wZ_$g9$`vh#5ovGg=pFc~sy<8ScU_4MqsZ3S*K^q&OH@o3h)qh;C{3d{ zzwe2ok?$E8__^%xB_(BtVc3M-anoM_aceC9$??XJcsb0NJC)D-f-RNX-YHS7OpA+& z@JW;V{)TcN4IzsTn*XYkRC$goYwv(22aShhKBN26RFUpxF?PM*y{}fCovuxTRPOSs z0)_Kh&r@u2!5(?m7KxUtQ;(a&?kBcM@$p^aI6^<^GJVBnYi;>FkEqWv8@g*+4RFfG zw|~se)3LkqzObm#s;_xswGHRaD{}lW)*vWQZEk=7Ghp#J@ z`w5vZcQ5SMXS(UcO;ZO$2hFIcsDgZbuCphtDzwTtEysdQ?{%fF&vtcZd0$}LaFd!< zCHKbD#wRC-D;9{`k8t>Pcz1SoKI{u2`)ye;N7}V^l>GcDcXj6lcJqx;_*l+5UlPI1 zeN?{v!NuQh&;9vxHj*ez62VW~;|0gRN$n5js)k3K-0d+TNS9OIQu92Y37NGMrl&NB zS{S-aK5X~hy1h@Iah*G3s(4fJ&dWkea_WsiOT&o*x|ZXl;I5<3o!fgw#c0;gSoBB2 z&;vRE2z>;M#6o7(te>&bz}-pABJfpP4uGc_4h{~MZRH?!{>CDuu?Shb%8*?+03{FE=~T2nVFtRmk>V33@w4y;RbwHegq@_LB{WbkgzB)we133H$^!Jx_{gr>w-8o_;EOc zD!ZGeGn9p~TC-D@QB7TgZtFzfqN~f{g-D2aiDZ?xBXXS#+WnE|((m19XJjTFbggtn z>2kf6k!_bbSD3ENjfZiO>CfR*1v@*INp(LUG^o6tRlLNMGP}<%-xjNveO4?$dU?Hq zf_-BDZqqf>AzK}52(u+3G>Sy|ET$AAn%HN!1gam?%MvYM;0kKTjK(?T;X;Ual%RIXQ#9d*WIZT<9X4p2qNJmOrT4_x5U{ zNTuLC!v3F%pye((rNCQQrk~^X7)|tK(JxOg;SCoKB33<<^SyZq35k(vOO+IETe*)O z&zB9Csb_X?o#9EFps6CO$zt;J#_$PBO_dl<6{;6pGw}px zJS=+6J?D#lN^)`-Qn|4VYQ+Ye&o6J!7e`S;j7z3tJ;ddG-<81O8|WXly~*p5!@Bd! z7#SJ$z6yQAEQx*Rg~k_Je3O##YpCb@+BYjlfDr&*`1ts!Z_1E0U1#IWoxkj%ZN_mW zFqM>R(FWgN+>q26IDF5`dtYOv_O{n;Np|EB^{pdXSeK%m9eL6iQ`-Hp(uu1;j_fsF z#IzU$!tZtdciqK^|I+hd^Rg=K-DN~XZ&FW19)jPwBV$ORj_|Hylk5KPg%+U}c%CR;^jKt0w7` zVYO_dg_1otC$?NnJ%XZoyNy| zCapwEB+c0_o36xEdDR~8)oRctGz{Lo>T;ljnigLPLvh6@0~mubWS20q#qjFI3coyl zaCiQ1FX{QHH<(6zCD6s8l;BGcaKOjIzW_kpS{Q-bDbB7+_-_f6_uV)bz{pnN;6iE+ z^T88$f}f_sPv%y;W2#*H)lsm>*Gj}c$q|y`Gj@=^1U1%tD9sT5wG5Nu17zo2wlLsN zNlRF`!sv5Rq}=R~0SkmFsBZs;Lh9(Y3#eV+6;tJgGlURjE9 zwjxhO$ETAyxJm|uZZqCxy)Uu(bV^&bL=VfKRw0Fr3W8FiQTE;Id=F4HPK%HA4wTnt zdtDZsl_!Jw6UAx~KYvP~U_b9sLiKx;5a~TEbp4`0F}>5OM!C(`=Z@oE1ia^o|MBK9 zhy9-5P`W@^hk-%6KjI5v?{B38Oj42014b=OR)0q^-S0b1mFvg!nsk~~z45+qpjArN zF%samUl`yR7Vb)wUtDY2Z#4!VMSwO&k@0-BclVK(v%+{n$mFmt#_zqwR%JGrBbUf9 zH@CYX79%S_`4934JJn&Ps5)H(IKe;h)EJj|^Dr7vS@0u$uWx6`u z?bguuLH3`vF&oX1d~tL6^6As3&|Nu<;#}$IxcGSS2kxw>Xa;!tob#{{0uS|>fVDbGuiShjOB8GXK!AUL z8#VsCYhUs4Pm32%k}^w$!?GB{3%9V67gf^(%Uxm9)t>QikI7;+DpuC=_hf0}C(`7; z!FnxTqc!px{H}YdMx;|^`rSQV(m60VF|Wf*CE-Kr-rn8`s4gj>yS*kWLx}E=`XWY~ z8;(cdr+NALj#np^C|Ipy-_IAk%70epKw2^e2Hx#8A1kuxHcGgubL;z_=1beMlrc-r z>Kxn$##oLXt7LS4&q}T`lRLN)Z9uA1+~p^?B_be@1ndk*m0Z`* z@ICt@-;+^k32AAhkg!(%bnK@2J$@$0t@7_gjViAQTrCsazcT0S2fIIOI$ zhDU|doFy_+^!?B(^S)e9!hFu=uOxDrkZRXh^pOvcUa+3c^t5kC0NzRDj(*9^9PY)Z zvz-6V^d z$PKO{x1sIK3K9~JdFC8~N))t(=T}CJ^I>q$tK@?1g))IKY_b(VUtMN5#%7djwAB8( z34pDgqgiEUb7$fl-hF&l@jAS!n|VK8iC(MLLUXUY@5-dmrfM4D8?WQ5DR0IgRGi;g zJXz!0-vr!Qber6MnN=B9O`|<|vKqGU_Y&+PAgJuyj%%%TJ1Q4ER4QfAaDDQjf5IGWH_sKipf%Z3eCI z=ZX}*2bAtO4NW6QXJj+Rb<>y2VH6e+ce%0)cg4Hn?{Vn zhjJE(T4=9tR`~ULb*|f~%q#Jro*@}#=P>>nc)gElR8+X>jQBXT(Wve2icy6kO>4!g z`4wC91G}HWSh9>E{g-vny6x!f1Z8=018CYXhmuHF!fO?1BhxY|qef{$)+yCLX}@k} z+L2Tei|&QZtU1Ek286re6~pihmo<&WZD}VGjIWCx(cN~Y-Z1yEEy96p3>;JM(rl#0 z6jVXHYQ#=+eYi79dA*y=2nu$lZ>*kTHEt`Vh%VLtYw5leMDDGjw{uU^k6A49;%Ot- zzsP(HO$x;%UP)R#`#T*UMPYx^Um>~lrTtX7gTe$qr&4waQdGKVbcE`Mvn*-Y+ME{) z4!uNSS?VKMzDfQQC_)5p)Nj@QLZIj2J+&&_@^CzEko;Rf$*9F!Boa;w&JcU#q$jTN z;N^MsJ8PY$`JuuOxjh559Q#GnE_-vt>54#8I4!-6IFoC);5c|LH3Bg)ar503JRb$BUSc{^ZK+!RAwByX^R!+^iMAm6 z-YudD~c{g0%}jnO50Xz$*Y&pOQ|n!X(t(+_=Mhg(WtJ(#xUIc3Up|{4Rgr zIykVU^4PMx>CY|03s9p=BUws6i z4mEwWPXi@BUP-t&9G~uorY)z%h<}o?-gf|)2tT{KIW`aZ(uBMSTSSMKI)W~N|I^#k zlcnG0`z?|dhEvu=j?j{k(E^G4^1d}#%~U~geRH$QxSPdpS0uU-O8_@B;n(G{Y}(~2 z?$?uuwGERmX)d1!szvHs?0K%v8lnaw-xaGCIjP~RONRAfk#HLoUR?JtaV+ z_*{3M)xaly+f^NRQ~0sj-SD13gl5}j6vLv)EXMNC5!!CANCn*gu4QDOXTjjT{r$Oa z=`$y-H9TO2mg?1{w8h*u!9DiQ%0J|y)Xh0P(f7VXp7(OuTnmq%6S?w@39PX2)&KBq zn1Vnl)ClknL?jdhhv5;g=NyoC6}CX&ig@260rJv(5Quj&Br%-z_ zU`BB-Nk%vc4;2+ss;;~l;hOds?_EFkSR8g1Rp#6aB(+Gs345JPEiUT^ni&3l*X>%( zr@kv7_fI7uv(~|SlK$B0SMoGo&p@!To|2OTWz1qeoI%4V5JBO4(V>apZ>=m}Fg{vo zDi5=9>CoJ+JVUh@uf+oISszytHl4W5MZ?BEDJ<#|AxvHF^s)h8G?qBR?f3mOb7W1U3Y=npkm` z=<1}`&pkl?qn4Ho?yinmqsauM3KTWi2dz0ten%3k>>SKp1}djip4H9n>NL89XJx%) z=in%ZQg;5@WHldJn=-2+Zcm(pfOP@2P3tW~jEU10c+uAn@%0r3)Xcfeowm-6A!V-d z)%0KPy1Ii;4puM>y4QDT*kNQrZypDA^o(Smvz>PMjTAZ4%~acp_p38oj{HD;8vAtX zg#Ryg)2veqV4sX>tW~h0gY-;gEN`ZURKCI!qOqfNTOH)IzY) zdj}9858yr~#hbM9I=|gUHv*0BP4V^DD&GyNrt7^9=C`mQE?Q(tBDb9Ljk=czZXO=I zz&WL*rTxvtrxs`0|MhTSeAvNyUwf4Fof&q>%NMDa z&=@{-l^MPZD(s;r;jw%7{ylD%;AK!y;AmEdp?d=FL>U^mMsr|wRA0Bbg@k4TPGzYSo;v;BiLb4ZXDl7_#`nhKY+UOfklR-B zfkBDxOSKkrSJ?dERaB%KoK&tOO~sU@E2!2Qkio$7kVZfSduQp|)JyUeQn`6u zqNcB=?*W2+2a1B=%sOTWu9YseiJ{Z7*N2lW5TsE!>zWxW%)^uPI=;XGs6@aE)JoJ% zm;0YsPL(FlI`v<#4G#}*Uf6f@-Sit`zqkl*MY5xmwS?nQmKVjAI%zw=* z0lZ|vqXViFI4lO0+@n2l@@>Jm;($;O#Uho` z(<2837A%7dpEJ!yx80p8vHj;8_BVBw394CwY_MBE49F5BL7~_)tZ`w;k8d#qn}tuajsLh?b1A+gz}z zm+K8)ps&7pj`FDU_i;Hdl;pieMn2!`BzV|1ykiFxr&%^a?B}$ss_K)`##nUMrtwcmT7v6A8;ogtr z>yk_13v)&{Q&z$2=^do3G}CUqbYmrA(KDH;E&^X4)5lVwXQ2yg;4h25yS+XJ8HVG= z2{E91K^+E5T{yxffB#fGP7bVh*~SB&(;7_Q@0V50Sm6gMJ-`5Vrpg}pNxFc$S!Xc1 z_x zZJC*yj)O4som4z5rng3heT?XEV~nT4dPLXMZc{cU6=>m%dY_X9V?kF^x0k}NBaS!Y zd5^m(nYM{~2YX-gZ9gL}Y8x+bC$fW&hur}86%up~%O=54kRVo&3dJVtyE=t$19<>^ zY@7MUM19{&WN`C-hU14vN4wDw>NmMDbC?Yn^nYar!gIikgJ<3azoMcdO~5^x)V?_u zKyf4XrrkZ@X>UM6_&bWUyJ}dtADnc$${dGQWm@!4oxQ&A^)63NPR_+fs=eUMCgc_I z_LGlCGkCuDx9-3x(b%ZXc&x6hjJFv-W;vdZEZfVMcDMTYy6ygpe7H0l3hbxZ;42Y< z*ifvU_bm|Dqobpq!NGiBa}lryta)p1-Cgf*2B4A~+}&JygQV^R7+z9QB!=9n(*RyU zc(7JfknzZ2z10<^6--;}^`3Lf^Jg|*n%78?q&%RwyRq5)VFNDiXH4^M&`e$JHm9B90Df^E~4h{~VVrp}unc2PP5qG)w%G*?1ODh}B8Pzc5$AJx=5cM~-;stLfyilso^h1op$NEu5A83sX#Ow=fWH|8!x+gH zr}_F64^Mfk;>6@0Oze1(3SF)J;t;T6fj&x`h3M5gbe!rSeyp=2+nudDZ=8n}!-c7C zL!JXN|2vclO-S8?9>#~MdVIr%HBK|Z#M*HGZjEI;too= zVe+TsqVo_}U2zkAZ)!&nkP99UaJ)-q&mZ};-i0HwR?$uFte^uV2Z!T|gkAIDZzEIH zGOa{VzaMB~v0BMPLNdSC=6P)9wl~)c{y@jTSlKSf+yE=ZygQmKzt!I7?5`%Uc7wZ? zUkV7Ma@)=v3<>P3UaV%j#l=?cR#zeO2_HYjHB_QoIUeIHb~U;0ZS66ffMLnV#* z9hjm}O3(KWxRjKXCon)=WZX}OXXTOu(EJT7|u7j zpIb^@`QNThfF<`$$eMfH{9DC5j~Wc|hW( zy;d`gDl-M&yGwIF4e?16?+uzVMfjnD{m6KsBb8JPiDD9|_4_tOdgA0{6H{|T_doq= zUvXawL1BH@Q}1LP(3rKVv%scw`Fns0{M;>9$X{*&t=zLlxa+UU2fxEpWIAtr`%`2j zH9LD8a3Ze?)mI>tpuoQ+s~t+=>t9sEO?(ULe!xYlO5EM?6*xq5Nr1krgjcV3wHB{* zql@fF1{{z;OzDs|wKx7y(q-;Wo#^YN*PW6V4I^~ z7ehgxK1F#vshf3Xb!OL%JoySuI))se{exg{e8dAPv}`;rf!sPVKE60`;pd=?48p=0 zKvNiTr&`WbzXnT&hMpenz3+>=Ub;+b78Y#a$NrtJBIdNf1rCYJ&O|ui=M84;=tO3p?PYup`i}0rXjS4263tWPG0A-L!a~ zYm&wzPPrv0hqwmm5?Yu(_qE|+sp zJP4G;Je1LDq1iK%m?N}e_4g47@ip(JoXiH5TY2wSB3O;sp8sjGXGO5Iw0y20g(-!U zot^D{e(V0L@7OK9Y1PtI%WUAAXjBT=i40{F5wv4Z+48$i z%%s|#FX3Tj^(KxVU31eF1qP3O>t(3>f+uSH=ue>4yYZC-JK~iD(c8WDTMA4%o0|2@ zQfd&`NT3th^!Bg@fs9^@9KZWJV1*FPww1D{J2^W~|1d<#^f^nm)^;!A5t8lKR8F?q zsIwdnBZqu?N+oqL$g}vv8KxMDP1^TYvq~2}XvP7saPyc|coWRH2>@8AYmD#}y^_%B zvsvLqb$U_Q6V~Rp78dltFQ{P*`PAfuA*ZOgkwJN$P=bX__Z=vGl$H)IK{qpO`fbp! zQ~m~Y3ptflePjZ3vRI=$y4NHJEIKg8rl|+#!RQx8qsw;Z7fNxUxExGbdiwfufKCSX zU^2k$_|#M{HL$3LJvm6CKq_X`FUMH5wA;_xmS@-%>asgiGjaqRHK#5t9$Zq=e$bF2 zqzC3pf8KkLH30rD`Lgo~>qxo22q^8{q~&cLm&cpBvjFSt_WcA9$OK&1z+(1irxtMD zz;vH;L`47*vXfWoSl{bnp!$GWUZt_?*vgzYYNcb3$cNOpWxL!NlE&*8n4||O(t)S( zg<#z63PwxiQUW|C7lJsPY<;*o+3o^>9|?q;Vmd##PUod|MC=#uD;t$kxp#}F8U*xY zPn{R$5;YHMA*WWLJnGn7g7O_66Jx$Lk_}=DujV1$XwEcN_Nh{}oz$D= z54g|)&;zWb;+E0$$P7>bsB1>v#7Pp!A`U@SI-bM#GpOu(FRW@Y5%RljZCy2K9-EbF*FgsolJ}Y`w+M1_b3IQdHMYlUB1$x( zA|sg+l*jq_*2CADz8-NZrYHDhOijVcnp``VN53|fbN zp1OVRH8BEw!49SiiVw)gj_2L`2DVmyMG$jYJ&Pb>{SFi-lTQ7J>)&4yL>z8^KZ11e zApmJPUqDKb%>#M{bg}ge4SfgwY|!e&1*o&Tpg#z{9QNk;zEY+$h9$-fV zAo&Xr&kq*KO%tgZdFxC??`ocGai-??4h^{}$T4fzM%LH!f*Yf2*&Q=WCcQg@Jf_J% zt^u62F>O6P7N`=;Hbuc5`1D;MUGD82q7)QNgDuiuU&(#44rf5BQ_2(u*-H1~ByOku z8l3UJ<@m*EX&8@(?AOtjaX?}E;_|g~(WH>+--ZXhrIkd~?q3dq*RV0(#tF#OQ#AxV zN?60j1G?6W;Nb`nP?NHIFaJ^F;^ssR^Ln;V}>9V|64QU0xbr&co`%1>TorEAK2199l&8=&$3qJe0V5j}^ zIbZ00XmbNigyB(9>ubI7Oxm@jl_lydlFq2x)qQN!Sv>wo!gm+O8W|~-M|Wr+^n4r8 z;A1sUSle#c5kTg@x~O!MT7;u$dbV0MeR4=Ee7|yxcV6;oQ5Y&ivyRRF9Mk67h7^m0 z(;tO|L94^h<`-RH!gc#Iy!QC+_V4dva73=Y@Wl*+P1cr- z2mLKg;rmn9eO`@TDXQt=b6uO_rsg@@f%d4(e%1|))8j4H!Gl9qOvLPtAt@pj=zwc7hG-Z_m3kkiK?3q7USq{=psL1raWYjmZkIoq$j=LnSnCG6XEP$MVwzyrMzqj<5t! z;H0ID)$4qhhL^X#vSjm(dqYqp3KekofuhEzpuq9(^;jpOm|w?>6BO^n_Z=qVgq&DF z&UXgmm4svy8Pq(0a3wP-8R(b{{N`vF~NbGX)uGet~fa)%}9%Nj9W#(~#f z7C`H(^ZjAqTRi75!?a$|?*he2eomUXAqWG-Mb80B`>_W=}Nct=14w; z$6hg>H02^!OT!c_`MHICH@jUQM)*{jb5mK9j#!+zjK`~&PN+3jlb=B^%0nk>FgiX% zlN^E3T2HLaJw!mjeRu62*~9;Sd*@~Ve1L4?{_O7I^6lGBx%(Hj6gOGYpV;z%rW;_^ z-P-MISZM<8GRLt-uCLM136h!+fO-bpsYUv2!l0kWy-d5=;|-&FX_oD5EhtG3_EO9g zI-+pv?=s+3Z>|h`R@(ww64-_NXU2g6kSOhx+w1eBMktU%KYu0OFjKk1gZ&XMgzc1# z@OEmAWdBM6t{P z7Rh5ayE$GB-~pF14W$WpT?QW~>ee{DP7#m^3bk*${R;cq96D-X0;UIuASI_ev`nx- zUiyRji1Y=tIBZ=@bL_N!pxGnpX$S%&nm;`n=td(>63dCg*tMId!mH}QsML6K9sSi3QDhc%x1!r7D`!pwt0BRQU5(tUTr4ylAp!Y((gdpPAqjtcK zXf|UGlKp$gsyz;k9uh&Ca@G&KVT54n>lPr4sXUBSfq+BEJdEw|^8IwOK;hD?=))=j z6?3>UQS2!SU~$IU&psD=kC1YfhZ zjp>x7x5_^Wg1_Omix=@9WG$HSRXQ~$_*e*5`2Wkq{>wb=C6a2PUc7qxV6`GYOpiin z-+!xl|5H1gMrNATbdIScOdRb4_B!@l@XyD-0(YsbJFkKdzWfg>CEID30am2jO>~O8 z()jhuxA)N976?UMGwM^Z1Ssf+TlbAn`~Mh%k~8YB-RNV}Ls*{OeA8tU22Gr^rf;iY zlCaVhmq`z<$-#4z}E>SrQ```j-Qq!qYO)wS};FNu3(iDp#;X-(5HorXR!U3-1 z9~*9|=oh`fxRC{qMF7DEOdmY(xBy`59*4h(igcT5hi9JkFc>@ac}50yGc*p&d%mu> z6%%^|F3cEsF@WWx=8pDg+qbwXq=`(P)dNMS)9exZwM^@)2j=GKH)mbIPVPaE7%`gz z0&ofi?{AKoAg)hAt{TG1y4D_m1R8k}zGP%X58AE9ZpW|z69*7|r1p)$R8Tvy8P%Z& zvZ;@BO;3!#{(ESHs$a#1v6oD0ZC&gQ$#)#v)y-CXWOCV_3Gq}KrsC%Q3ijIZ&WeW5 z0=B-&E*G?FZmiE8tK5crY;5cTboXw%dx?Oac5sD8E5YI51^~}^>rXaSjNlPk-AR3j zV!FU+wm9n8_;~m%S$F=Ld~@@GX;ynghbw=R7V&QFw5@89atO0_UHw-YT3Yrks3oA!P%8ui#un{&*p01Ytp2-a~)rv zJKDOX4%>k=*ceP0H7!l!S2EBv=jgS9p4~c3u(oXfTzXRAEJ!)Q0|$Sa+*#$nGIdyR9s%{Mi!TJF-Afve zo|&Wy$HaOiKvgq9wle`;b;O9PpLgW6U%0V?d(3+rbf6-gUDsO)CV?f6NyeW5tT&CT zihgGnAq7#qf3+Izq^s?Xw2CLsf(FDarD&g);z&vZ$qZOv*M@bJRahS?_KSnrigJy_ zLl5;e&$16KDBxkDM%ql&;$26{^>_dVshD?_ZJeP!p_AT`(#8mP4k^;I4C_JBuB@Cv<2+Gw8|NFCOoXNQpE^w}5nacTKvxbAoik_wrk7 zuf6u(>wIVL>zwb8&+BshF`Xmk7|;9M@!Z3Jck)u0XvAm`2n6$uw73!kf?xvv+M*(Z zPbRZP=^>D3kT>G5KA3!g&$+nE8sFU=OvJ|Kjb~)H5!9Bg1x3$CD(gMLEB5)lR&iXQ zJ`-PY>=c6>ygk=miT>LsT#2epUj1wB8f!j*1j!}lN2*t^sY>WLj;^R}4PwpP`rf!F zh4?wbs$mX^JADT8)wcbyc6dSUVo7^*wF_!EVyK_&4sO0Nx`bf5VAnY9Te|3fqIZ>| zlU0j7-HOE#6HGZQIjf)OP(2h=FIHu?-=Ciwwz_^$N8&PB8zP2!AR5$wHvkLe3E1cP zpjhLuV-$PbVaqJKS9J-aru50)#du5bqsAU=U1>-X^*YRl^hl2$NrW0<%idsWnyn0f`ZAz8wFOvTu4Kiu=JIx#Ye_ZN+vDYNQ_WjJXicB2~E z8XSpnuvp%0JCvkYwO9jVLw)wx!7Y1Ue*WdvRiAW9Tof&CqX=9crNkHUGFZb`>U#6Fn)K+e{oi?895+jKxKDYcWXvq6lQk}WqI8{9cr zU0tA-|+3w}T$BsAXM;pm1H$* zo}6rp$im~eO!8E#lEVAT+lHqd^9C!vP)+61zunt)c&pB>diXYo)*jdI4njbRfi|XP z|G{qjed9D{oKR%o>+)0kE@7CCN}=_+6JlfgM2o#CW-$NNQLQ0fzn0^n%=8~Ok9l95 zv=5eC_M9iyE$vfH`J);cnOP$h76Ns3b=KC_O?t(;#j2u;gVju<`5Ga9LCAxc>Z(>DS>YsfsdUErx3_Fwj)w+hwb*SJNjkKfzH3Z1?n@&@Zl< zJmX*I-*J?TNYrPwxl<4s3f+eW))#s(hDRxC{i`)25H|a!c#~mIWTRjpz z>L|Cn!Zg2LcapzLvYvo5qMeJZwT~nchwHQJ5AK`~gv9t?-YPIhhkF|Bt#5Q|4=i}^ zK4w$duCCT)->~M`q75eIO0!w%uzy;X+UAYPX!U;JHEMWJOF2 zA^2L0UhyB*#&XiRr>eSF#yZp8*h{aa<>c0uGlQzCtMO;JQ;Z5}79dlQ(6}U$6f`t~ z_OE&jykBo=>Vqy-W8m!vn<9M9hfL&dtGt-?%-0S#w0A<+=#7aolBR-4TIJs~Uu;@; zIZ~}$zW&L~XXs)Xlx_?jiclGW$;6=AaZmXh1JxikSbn2 zwO?JuBW)hfRSB7#R1LSHT{(THMJ!~#KFHQ>Xf|WcojSo_PfXmLT7CoBnU2^ZL$9@ zBrHhMKHlDwP_m^hfFVO~PZ)K~Z_6idD$SQWm^`f%jG_aMzmv{u*hKPMvdR+8ljFVE z#3v}ck|48DKN4?5Dzo?)!!*Ic>tI5oU{7IEep@7*KL$M|nhfR(!dlricy>Ie{XOCF zqb7}rWP_#O$@$}FX75TTp;2qq`O1|nA!imEi+tLgGg*^R=G*Ou@1@Gf8Rpf+V>OIkspb4qbwZ@^8Ddjq*Njs9mJ?eNGj(Vv0V=d`qX-0|H#unZ$i72;8j zi0~vWvl&xUQ!ihu=(9G@YhkXR_(&D**F3CRHR8(3$~hJrW5ue6iE=2Lkl|rF>E13{ zYL58hV^VhZ(%$2JMy>3fy*`~OZNq~1Tx<+rimt zIJS{UXVZpGbKz%P`P+^6$4l}2 zh`Zu)NA$DD?_%@|f4wW*d)?OQj@~qhkndu+ekFKguj1}{d9bmiRad&G1=036`6$cK z$Z>LV=CW-?cCbGdv*a;jecD;xzUO)Q6U+VF<@sFlcFXTjg%`7vt)KM;aIU)@-QC@t z584T1pKNxYFuhd1GAmY{ETszdgC6tXObZjO(bi8#S$<@%3r$}D&L zwiXH(f8xl;)BYemzjgZc&{Z{GN3+(@!!lo}^G?XIdJ-y&W!`nix*&IEspYZ~OeBkT z{G4*n{7c1lb?u?nDq|i0Z6ayum+yV%xBfC&Z&to(3MO84Oc#AZy!A-dUnk*+<*h=P z&{N30`N^4`G^Ss2T9b!yr|5CpfyI1jhhyh%=i6w!s>6+4UA?@y=%1cW{o@CgfuUho zQj(-(bUHof`fhEz)D?`+jOhC6zkh8#cgf;*FRP+ zaafp^#aCTeN*M6H-@)Mtf-d3X7So~bYlv~q@+&jh{Y{ZnGdHI*R?Z}MSWV?e3q#qh zGDtml*GCG|!t7*TD+^Y?ERtt+Z+BWK9pb;sMqKg=wSM^Jh;Fs7R!IEl4Us|S!ow7+ zg@*4$0zZgG96u>0Og8K@^YPJ*xf&M;woQH#B6?|#a?STso%1}BET1Yf z!y*q69vD!mtF}34EIYQPTR!q^+PH%>8B|!GUI{y&xo1g>;7hzx#H(?H_e8U3OqQ{D zMa#{;&G)<>evPq<>*bw}es}9kc5{i*R&C@E?Yp;>xm43A zp#Chy6eP;WEh|HhHAh6gIqfJX2-SU;`i?%zUGO|(IOB@|?`Z8&99Kbel+OotrP~LK zGggi5J645{KbuMQ67*l(NTY^a)}x4Cox%gouMem?N9%_As0xFcxAJNhO!vtRoJIDj zL{MBjaPaA7GFqpmh@?eey_*|* zyRdVpJ0Nd0kE&4Nw!+FNBLeKeup#e=<#I!3kM@)0&sn8BF8}^x$g!(Oj)lfb3)~CV z*E1J@l-alO>deIPn@Un(TX^Ctt~<&-&wx##$LTy{h9WT{8{t9_1>s9F{gQ3k?}-K)g5|Fgz3z51PNE%NTn19 zdug2YtrGjq^Ko;i&AqSbb`GqG=izoS>oMwgF{Pdd zg@iZKRRo;{WRL3(-trRV1d#F_b8XxvNZ-xR1&xY0Z5ai?qfe^)b+na4U^)q1EATkm zv2vu4GG~9g7|ZZ5_iEAF&lOTf-C02{@Ydw6@rl%$T*Q%1dxNnKYTl~VB(%%p5e3}+ z*}yx~_aQ%n-Wbf+q*Xj7Ba_oz45jKcfICcGBp+=GSB=Ia!lRx_OP1#dfL;@Q;4GDKo37CKO86_l;23e3CCcln}Z@PFeo#3R5 z5-nit9BHyY6}>BTH86|RIm1-Sbc)Ty! zy?4Et$pkh_hZ^@FHU={hj)f~IjaxqnFR8|f?_w&fYnf=&Sh$O)pjaM}kdfy3NX^mt zC1B*PKOmX7h~FNQpwqRgrsi;{XW#k!SKw{##^tL2{`VomYVf;bgB|$ zrKM3R#DAWjxU+X37T*Qv;W zAdSzn8knz#h|a0EC1y3SXim06HZcl*+OcQv4MoKTyZhfj31F7_gG9f>TsV;HBS>7c zrZeagGK{Eo%(%Br9qx#D25fHn`0bGi?Omm|g-@xbOed-i+@1!)yrv?3HIBY0d&cH? zAoWeNxXro!QR(^Sd;9SLSun-)@eX%K9RrOCi~W zIa7mvd6BApd|RU~1{e;4>PNlfjp_7gNr}c9LbRU?gJ6rlg*~wfPV#R_{R79gie23g z*GER}xvY<~(latMM>5{vGPfsOq|o!@(Kz+wTh_Y@UaUrt3OV>hBRKCi}Uoizo%bAVTOtn_k*4nLHVp=|* zf5&DJnV2Z&>dLQDsJ#X*a5PUX0&uo>rIIY%9!CP7Y6l2-O`nBKnNtc=1``B-9;tD$ zoblAU3i>=z5Ec>PokkDjeQ0!a$5^gPwe`{iF0=6z@K2c)7IOUwxK9SfA|?7Ig=i9( z0@_w(VOnp0Dc%s5nVr5!!W2Z1mY1icruM#P5A5tf38$Ej{IcJjd|clg#-jL=S=}wc zr!8&akZJN%t{e_D{5>ZHy9fy-g2gaAJPf=A&d=lD>5`lufL;8B?mCwXNm%D(~~B5h>rocfd&{J0X+fx9s0QgZ}Xkr^1Z z-JqC1W9FZUDl)QTd-n`-;Y5-HlU_fQ@oesLGv33AV0&m|XxG8!XCQCG?rKBbx(A0F z-*`xA&&*L+-78(w`Kr~5UYQ5#sFa+)Uv+HH7P_KS`V5jkG6CCcs>=8quyEXtU!ziz zJNpil@<29^qAfl9U$6?pzG*!XLtWZhQhOd`hp4V|8ua`TrB9UznsG5gQ%Xz@I6zTl zi<-MYiXEGERu>L9!|pF@f(_&{c|VDI;xb@bxzQ)ISKAFDBQZaL0SimPxAYuFdaUJ+ zuZT)1-p-KFUYW%kIpb~i$P^qa=3331)++FI)@%c1w5%N}rBD6pz_I{BevB>wI8<+P z`_wAMD{%2exh-nukioUNx5~EvbkgdZ=2UlSdLNuqCElR1+^IF>N{m!roR*|RW1Bs~ zMi$*>sug3fcb1r19^woAX7h%|g^#A&V|eL9{*B2Z1E((0MJJz-dalm)b@Xn0(Fx}p zVc-WNpaGtUsOh z*w4Zdo0M5%9!HRMrVPaWoSoDW`@t<-)dw_atYegDzwYusQo8fCjSh+`+F9 zQHD0Age7|P_4Q-f4bdhFb)>8Y?G6Tl%wp5%A3l5t8BBeRQlMF#7EQ+I?n5IJ4SAQZ z&gF2E>h0$r5TF?I{=E|VZehj>u9$zz14Kloj6}3YCiI>-$pONzOO5*T04Z+xPA&BV z=kep_%c2t>U;Km^my5NSi`5Z@&Cwj(*w|R-$^+$I0BcxSSlcCO^vV<)#@z8!#ri0$ ztgOnt`zMttIAXJywX-{nFJFf7*{#1Y+I^b4R$N?czcuWelJX2Hbi))%QfE|3koPrCT~Jw*}M+yZ|PwC_eXB)?jdZ zO*qru+dsuXmJA`!Pij`2JT@J9BP-ix&du?8oEdU`eZ6@gi`^h_PF89(p!X-G85l@I ztyw7Y^74k;t=CTL94^BK%7yB|xw%Xl6_(A-&0mnv30|z65SgRSh#DEu_Q&(k9rq3n zli-Q@Uv(KF+;sYiyk!pIb27$qe&6hw*;G z68O^`ov#sCrj@JA679##R_qBD_GeoGE6`5p|7t4#C)@0|WP{`~2yA>N)@&++pF!Xis%QRTnSh80N z+j5#UqnlU;D#TDz@wu@#bKd{@-K=@8{L$qMgSmIk`pC~-O_~>-l98lV&PKI1B&A)i z+5F{9Di8R+5cf^!3#;P~o1T zBP+17Z|zFfM9)|oj&r_WJM@&)gXQn7g?MTC(9@B9K}o>jBEK6B;dMWM0Yf$h)c3%0 zM=PTt%g;EK+XqK1e%F=U{`Rq*n&d#c%jd(y6nRFHj)tesi@MZE-AsOL*1}U zsy7?J0;FI^Ve!Esra}0hZ4F1f=1W}ACDR{+o}WAvVxduqPj59;CsFJGy1u8vm3Ec& zr|OEk%bmi5<3GSsS}!=8`sF~9yA$uq)o#MMyt5Jnph5(weXafU=NHKXhvbboEw|i9aKFKL)(+*@A zDOTHYT59Ca3!d(Ey9QNNwGl)km&jh;cGxaMfQSR+A`t)Rk>&e?NdN*IrVQAZ#@d4F z72VVtErnjadX=YLUn3p=FM;C03()8uAU}Lz)b~{B{ri_sF~lV#hQM>+l3noJ_h=Bg z7ApTdLCe69BYm~teuOFHdYl5Jv*7XI>wCY(5k5V)l^#O~AjkIl+~(JfT^zAHIOBIR zf#@abZ>7*VSKtlFc-%Vf&&%~jv-H}VXP(sZ8VcPGYs*lIPf3W2&mOg}GOoG~(rDS1 z)sd0%nmmJeBcgD4Hk>GK0uLCotf zJaEdO)Zoyo+z~>7Eh;Js(Wo^4h^VfJ_u#<;$mU=wqDq0L;?B)^YY4Me%?J2ho?2<% z-hu)9Jqc)t?E}nps^SJlU!S4Rl)qs3QB%NnOO=vQQbLQmQS1TnTWmcmD=R490lI>{ ztC$vmkVkd(^}Y3MrBi)B$ONoyY#5Y&(Z9_(iDA*{2&0zr_xIQJm~?GvX&Eia$as!L z#xHJf&l#Ae%O3j<&$sgHyqF^1-ym;oTIZ9C-5^9K@A_+d5J9QlTA)%$eic-MnE+3M zl8(+VAt9kw7+P(ghcm5L%D4Flm-dCzp5_x=+%L1w5^y>F9^umAO>nPl* zr@#{hoY)PzaDLp{M^c2`b`5kwe}Os6^`BPkOmh7VIsw8>&-n(K!xj>2Zg2C|550|ya9AtOzYF38UD%;e=yr*A zA>Fzr2B>U22}P->ch(s-y3G%a>V&;9Kal|EFvI0&-3Lm9*7UC+6+uKq#8q&_dmjth z`44<1jQuuQW61RWmpnsJ0kHVY=Srd)Z{SumVH~8q+Hh4 za@yKEqpH6EP*d(QaDD@{igVq{%JpUZ_fsF7X(yiQ&8?+3Vqy;LQPftf8Rze3vTwn(i{Bb zPH~?;&DNg(h^lz;Ms&tslR+L;QJcLTv}$4+>P-~?*_RUjZg!1q7%D#>9wSQb#Zif` zQNAa=KLz{O@n;Iy1A4tZcKMc+;%l@B`JbAT6Pb&y$5$O4w*zom$PEHtdoM4q0NWu# zlwcWw4k2GLi9AU{5-1{+Agu?kz3VJbgC#*z15dERVoo`wPU485eH^~fcqasRTWaxD zo(Q?UGU2!16n$U#>ueM%K~D<97YaW;I9Q6eYG5eZTL}>{8qRpLX8C!(&INyr$F}=S53Sf5R z_I0$Ms@5GSO5OeWdcy|Xvl~5@1SZ!S{qsLdKEA&As)Pgt9e&jE zuHExbK&7kZbkHex`_~cb?YETH>xHnLoSY!Dv$LpJSVmjMGU(=Kd$s$^#>eR~o@}hz zb=d_2A~o{T(z>HviszT-%ljJxK#+fBVP*Z%)cgf}GMwc^QBqp^k~lacBSV*yIOsT6 zDujGA=Y3WhcBN(@`bHo(SYV)40;`SyLddH54D1TR28h=1X|5!XQ?=;|3z^OzWEU43 z$zwI3AsJsDZ{15_@8+g_jY^Y+29JP~ALK%BYaQWTU0u((xbQ(wl1~=aGQV>@*_Nnx zJz>1A^366kCm$Rd8rmk|SGdB02mJV<93w}It1VYINm3qDtl#+r56_@Hf2!1&!)93g zlwxv#E*aWF!m;qK*Qh^EqR9(#|Jg5pIlzYj9%XCS^D8PUo^34dy)s=&IBWhS0pKyq zZUZJRDfyr}ePbiZ4NF21;=C56;(T*5!RN4zmztU?o4~7>A0H9XimM>l3{G04$~>B_ z=#5J!AE{ahM%zGIyl^`;H|qP@yg8KavRmBAxT@-t-NWe?H`nwE5#cE*@6U^)4UM_= z!RFU(ZEe}TISe`5E7X1=MF!nZAYcJIQnqymoL%gQ*(J+E!b`^>qIZq61~ zwzt(Yl7LS>H8o`xPcv2vz2RqIU@$N?jtC1&z0iphGx^e=#Y-#uvuU>44(N)9&%h*w z@0H!p7dB#F;1yOgSWV;k8e7)}#<><3=a)rB{lpG@`wA9bz=J6=9ifE)LOF}}h+3Nm?g<+$(o$d7l`ZKzgE)_yB^FzB(C3zrxJD5Tw32+$6 zAEezRR&|OQWR&8H+!U|Qw&#L07%HFg+h^BU9qwi2(mPccqrSP+e=4@-;M z-Y?Loss8HVYMTB%_bvAysKDO-39((PRt%N$EfsXh059hzApJj6c{xB zn{BttAon7WQ?yr)FfbzR3VgH0o~KxdvwnE)L(dkw41A;D@W;o92HTN2r+Z&I8Bmg2gKw;XJq#YQ_&66$(xgRG_*j2t+ybdbgVRdU zeD3z+$9y~&_Q}Qo-SEGm6xy~gHu6o<`v zACY__zr?$DIO&qXzyEjuMK&pz0_=yLy2_2Ey*(_i_;?cF3ozf9n|^`Mdz@)qe}^6) z?zguG5ssZ)NKO1_GfBSae<>;S!=M*uhf;+Th=VzHbOmiXIfE;#LCfGmF^SlHv}zr} zGzh5)xM}`DLFu3|Ks0L|gN>6tqAM(BhKu#3ptl#s<(4PgW3j>>`~XJVbYEESjI&Gw z>7-W=`p0mAmH^;4AS=^8GZR0Or9e2-=;Z}DDRYk)Mjfq^Ze>+p;a+j=l@f%=^35C7PSlC6&@N}Bq}%>!3jsb@#{}t=t4kk#F8&zpgZqmt&K`)xzuVTSH?`~C zY?#&vUi)EvoRCWrBmz>wL9K8C*NzogB%LBKtw?VTt(^I;%enb0QlGO2GD!<}Xl(48 zqxJqrH|%&`7yEt2hZ)^@+U3M5Dk>G`b6>r^5rJSicK(I3Kz3aq+W1R8_H81+!&4qh zQi%Ky`Q7RIod!Xa@k#cCBhU{LUU?(q^QG$_EVtJk56k4Kmj?p8R4+ICxI4vhb9u5d zBt=2P&tEg?nyZ}O(%l{Km|7Aj!OiJ%CSZbePE1Ug#RHFYb;*yyXt8P5l$DN-4hpa) zP{^5*5uvv46*gGdl&`GFf5U~W6?~$gz>_9QS^i@=o*mQ$ts)lv3q)g6#e@3YngoDtMi@^CTkb6ahaEv zmde0uaj+l!{{`H-O&!msMj772=a4AHkplevi?(QR0kDa(Dn0k9BKf;6`Y(=^;gOf+ z5Lm^h<TyceiJ`0%E9&tRGz;k^$Ff*1>Ui(uTq{ytlpG_Y^)e(%|6+5+3R) z=Ab{>Z;u9WTTH9g$8OJ!FH~5Ngb1DfykxsOh#Dnt>Wk&Dv9_i!vK&l#Rc1aF4qEOZ z8136_kLIwC2>|<^jNg6{RDYDjt?wWC(>Nd^$3DmcTSY8B5Q0`Bpa^w1h6QCzc=eH0>Xx`>kW~+RM5E+gxm-yC@4+} zeU_&Yc>(G7yuF|UhB(rA2p~)i9#?4-I{|@#dVuv`ANI0kj+2N$1^4TYum*&$n8U)t z`jSPGJ@2j-&OQ`oG=TJUA^@6nuuDL|QchM9)w5?QqZ{I=EJJ;$uBW?GvI(4FHz=nd zL6Q8YqmO5lJ)+wO#5{rDba+uR@CYiP$`TK}kOQ`0Zoxx(gof6l+jZkH1*Y_9xeFzRGM4jo zk3^M}p0KD#3Xg&5sWZHM;(XB?J1`RI;lq@P9fW^F#Mtdba63TPfn49*OaZ4%Xo4w+ z4M;eZURzt+Y>mnSbw?iXP)}20y@c)m-~jamyv;*!Um_wSGol#+(|$mKYHo^RQW-6w z@VpL#-drNQ&~1X?Nfb{*-&o*f{e4~o?9-)txlvc=NgUsA#P7J<#W5iG+TOmb=5|8I z(-3qZ!P80o!<-sfk3Su71zS03<8EI+h9C*HF^%Dw;WF=2UchF>z zpl_l+6oSh0@$*9js#{w((zEj9?Y2x30IQ*DyNw5(TEli!KG7z$DgA%RqGybZf!W#g zSQLDD(OdR459}g*UsqMVgB6x>=c!e=6XDXzE-t2ee=*uiYH;o0|2+3Trc3X*QQsTZTOcJ=04#O7#s{zD69{WkPddXboOf!1y6P+P;>#p zfQwYuTF6$UPIBAhgM7mvQqq+NA)`BBi-9@h2bQa?tmL=m`^Q@&2?9<(fM!`*Ta!>% zC)U>11`M%$9t^C13OKQX1$gfR$esYRvK3I>dy%}-5!^a6bCt9mH5$_bUNF#J+{nqe zFZp5@(Rf)}e#g!1TaDu_DhL6yYLkMLXIhq(LXFT^aLDahI(s>f)x4mv&L!V1^fp1* zp{D7BPjWJaP|}vogh!&V1;3Do8~Za|2$;YzDrwL2Z34*(X}DM?iQ~5TU9dlr6~eCq z1##PZi28IA&tnAx3)XAaV^P4P&OWLJ2y=gHcc)7I zzz_Rv5v9Bj(gLD;I~1g(eZ6dr?h2r8&{yTJR&PpveE+^0CPmILa$h==*UUdeSg$`h zcmStOmAquuOl@8b-vyQ+lrC&JoyP#yvEGZPll5*+UxrqI9ijA#J8)(Kco6NR5(S5_ zS7-2<7+|=AwWM0C=Ua1|Upar@So(gxM3j<}0=GRg+5tWtwcmJmTd)Hf(Z)Rt%O(qx z0U(WLYdj()oX~!AFN0gLMf#e)AR<`X+AjN1K{v;=&(Jy1j_c^PSkM%YAQ_}U;mzEY`@V15T1*S^hu*Cjhfcz23L?H5&ewVvs-a zhs8|gR4oYrp(V~E%2XUN|F6$ed~w9mpQr3|RL2M6EL(oOc~u-kHA~^ksIg>_o_hPBUDGV;rY9k`!A!So^^^R+$Uylj|lpQ z82B-e5rGz1zgQZWsR5Uj>H>^|oxe>_N}aGjH>&r7Pzq?3>G`#(L>$I2X4|Z7;B?;` zQNW+toU7&O?(TNnP6TOyUH*0;fnYPuR=73%cwO}oP6`W2;BAj^kQf=6O9t9$=L{xOaVx>0`zdgOhbQyzER-MzxI8{)4%jd%S4ipOacNrjA5)M3hFy$Ym2lkuc&fX(R zPEk9Z4=yL=DqG-6Ve+s(&(6!P;`?3GK;-4$%KjlSpWmV% zJS%Y%{rhlxbd7|^GBi3)5`-avivf7{bg|P}C+Hn&U|q%T{RW!XddeY?`rqf)4s+ip zj9-AkJ~9f{dg28bR5{`2dR(2BSuG?15@~aJYzj*hkODOE&*32z3kxP28ygT-kffv} zKmrhOC@4bw{QQJ!S$&Fd<3mz_uP2#a++^wqm@ks<>q%r%GBP4gXB^sy0IypFQhs}X z%efkSlXSpvqAcT9+5&Kqq6@(=U$_9cdSGe4i@7(Bz}rbbU+N>@Cw3H)g)6py;fTEk zs@YTXJbkj{(*U;qdyYf^&0vgZc@@ zG1;3SG(22McM43;>fO$!bHH>rzv#-;5x5t5|2)PF_i7kewPY0Yuce`QGH+Z_=NSv4 zI$@7NhQ%Zjyqxqew+Zbw$zb3$Hm`*v_8}Cc8sd{;X@DhS%UTB3$9>x8U+&f~^4xrT zEOMPCj<9NN?5H)l(t!uefsep%1g;lAvS(*l^D8=}A@eCJ`!cFgG&D3X%_m=gA~-lc zel94O5Xbd-x>f_2Bqcj|e*YdSftd&#Q5C8}>Wg+-9|DjAvpzk#) zeIS?*?V-rtU!XTv#U59V1zNQo)j#d*0axsDj5;Zpk73j47#YEZU}Ix1udJyLiTN*2 z-NgGCrwt6|sc|^CwEcN}eUyB+3g+|}Sft<6=pAEx=a&Ug~#d@6^S) zE^Tgh1%~2-{6QZyu@+lUNGKpE2=SS)FgZB3z?n2^sv$SF37}oTy;&GY4x^TQ0!GHG z7(YPS4wZbAA?7sEEf4PDM*$?$3fP$_P1EI{w*b;4x`7+O9j+15^bT1=f)t(G;Kid#P zr`-GYzp~k;u3xwO(v~xwPvhg4@N3r9J>DD=6uEZMxS#iM4y;p~{4KlWcDnZouJRf5 zN@~zA${ct&_1F7id3ky9RAV9|#S69TO(qJ+z-po8}W|qY{rHH_z#) z!f350>iqnC5b$Fv!~a-$al>MQ{=4LZe=j@;nD)j38baZ5tr#Y9l^YIT<|s8AW5gm2 zC0RwI3^bl#_|euT4sJv1&tiSZPaY@o)+7o^;AiYkv)wU8In)R*@teRCRtY?5P15E?sR2bt0S~AJP9_C|mls?~p zhj&-?N2=H`W`#9IwX)=!oeL5miL-VC2Wv4p%S%hIoSm!gS9lR3xaa87Z{9Ez?f$(` zM@cAslqYXEL9Pa8{6Cts3&yrQ_>^sP;nLSY?Sf>TSNWv4ImqgG*nc}NdvaIp=`gq zs)6}zBPHSCQrKeYLbLH2L{Zwq`Aq&taieUstF%BIu^B-jLHL|6BP9qo8eNr`in@)S z6|L?4js%_<0Z7E{Tl&9+=@n1bqDLv~>OKQZv|>xxLilTRp%3~eokQ|GK?AJ+eX!;C zTjXQV8aL;1d4T3MPJ({(ylM3O#2t@d0(5?&8(o`s>-1H=+zz*s*4eA~YYlIn;^Vg) z%Lwa(bqRPm7QoBGhD$Wi-Q-nhJSiSg{?2BMQI!$V=mBq8$N}RA0%E2>&k&=a_)*Pt zbaXty!SN~#VMBa?j6*__8=bFR9|um0e4h?Hfuo3mL2$a{kCur}LQfG-00yS<-cQm3 z8F$=%gMn#Zya0CkkTe(`Xx2FobqJM*F!Fr8g;y?^oQc4D%HSZG@bvcD`di3T*rmfx ztdJWwh>##J-ki;ET(vH|uXVHt4-bd@1fS#5$z=dxC@v*+w0*1+aLs=RB@4ufO8P6& zMxYuK6_qK>y5rUZ1}MKjGOhO|wt@o!nX9yr`%x_lee>}Az>nhM`e@+a#%;NV|1nX4 zu=w}s+f2r5AGj~*AXRehdZ_{d324<)qu`o;u$=cc zQc)GxqBevw8&oPSGmjz?_uUrCQhI_@Zmw^n2c(Tx{lo6x_=WZS0=H}PY04GcVwk=Ni7;*z0rRG8^@W&s1v6S>A{IcEFUY{V;S5f8-4%Ipku&>TmjobxY`D z)gE~0qs_zKX>XD2O`X0MttI04I1hGT9n62s@rowYM1^N}ou!wDoqMPBc-$v$Kl=VN zNs`-0K}1Bfs1~3Urv!^e)0}wleoVBs=Y!*GK3_Kl2-DiTOc)sS;3>dtf4l#87S%te z$nKjBl@0|yplcgojI`~F*tA!8=4FWetJZ`UbPnxH8Xp{N&X7y;?PpHgWfOx;PCXb9 z50nN-ps#)6kD~Im+D`53sPn*`9PsA6CMgY4Amxe$d7~lWD0IH%oz1{L!;G$5Z zmaJj%-ttvp@{US1HHiq%PT!)@FPgE>q~?NG@fV8-U@pC$bJBEcg&&GmIwmKcm zS)i?eXc>}%8^K-#k!N6a+^hg>)FRW@Zl2WM_ALQVI6K68!%;NLcpVZN<-ubNNQ4i) zyjlyN6(7?~#`?=Hm3m*CM6XG=TI69^Td&utau5XSg`(j zWrKI4m|nD%V6Sde3$_Xdbs94_wbaJY0m`ky4-i3iB~! zAQGM53@!;#<-oGF&8WWOvm+zqMv9ODEy-7kwj|~Bt8gl(rBl|UeFhflm0PlW@RQkD zcXxNpUE}w8o^yWZ z{La1S+}Hi*{)5bHX3yGtul4!7YZ>xRUIO(g(NhQnf+{5`ssw>Nh=D*JA|oMycOv^6 zHz1Jb5Ghe%75CKLIS+SblWW+~MPJ`=8Xo=26zhs!%9+bRwP@9E&rGZoMg158UMl55`H&Ch}iw42i1f@)c}I|9nBUg)B5S_;FsFk4JLzEcbHgO4P0_u`x7o} zlsr5e9{Z`Ey^r}fs1@1ejJ6WZkthN%R8Nlw)dKm+qzBnr{DYiL;Nx{2V^ncrhDL%`9D-e6I1HU(o*$^eXZ zIyOqoGqo^-ufy1S(KZncW#II`-?Eh53gZhHv$(?}9^P%NFKo zg`6Sd-%7aIadS=IRGMHL@_kwE?ZBIUWG30e>q(y}7>4$7ru4~;N!9{vt-VJmzByvW z&|osvo)KT~w!&SzzqzSOUX#-Qy#cW~F#@E51M*OvjF|N3JR%SF z634|oE+^L99Gx zGqVUE_Kr$+7r`dwO$}jlUtN`)Gt%q?dd$dN7UqW_#5&mAHH!C{cHg<}_9j}iF08TY z*LuKR?i~IHweS0`LV}OEYWxo&8dWF{&sb~1_?%OjFPENK-%pXUrQ6(B>~)#o;LXD=UVwhnC;II+uWSP z;fckD$q5^1>+**U*G8-QMy}b(c~aVJfrQL{{s}(O)(WVB(t9mCf?=}ZFRE3!0rdHq zm_emfF?6o2m2c-J!anz6^D)*!$(~PWP3tleXp3Y>@XVZ%vB4Vs57YXueorBfz>2?# z72eZ#Ki~Z@R~d4$EEe1!0B-Hw%2`+9!7a-VGMAP^w@~|_j(U*`pA^53Ue|RQ8SiN? zD)^ZK2v~G$6JIwx=A|Q;RKd%m zVIzj=7BkHutqF35`nyI%CTM>E#9-k&_Nvy5`px~%ExWcl>)W^?7R8++V zQC-=7Y6w0n!_L!=R$=;|7V?O;Oe3iibo2ATV5UolOIqxH;YN?7&InLT} zOSZtmG0T@{$xqt19$uW~;4iH0#4XRLkK)z&Q@kd>t_|=bXMra4&zx1MTE6@kW#>}5 z!b3p*4RNE(r9(Quy7Rmy6jq9?m>inU)ht-L-?SZYaZL=fI)Dlk&mqrW>fb!AEwvZT z93iP1Z{Bd*=6$GD^}N?5xrhZOJ|d{h%3(v-5=_I`bwZ+y`$yWN8FzYd!$<_q>uoOjs>a-^X)Xq+u7YkLCwGEsQ$h-F z9r}IYQ{$vLj%N)|Ye?M`Od@tQDt-^8E#8sO^=Q~`Ll#Ux6;z27lAx}w6afX7Y&OFz(G5Pv!D2tFbQvXFm zX^R_%?bd_AXRZnodw0Kmo|YCgRzVB=QPd=1xTdfSuPHjAj>MLP-4l1Trfbw^RtL=l zDi<3XzQ6ss&h<$GaV%;#Q!?Gq+ke>ZKZ=yc_x2;IA#16cZ$x~rgYVWz_~dYm!Q4%= zxToU1-iyb?i;J3*j!l^`E0MU8%`hJe%Vm$VQsup{>J#v@zWOXgy1KL}s>H(VsSk?? z($Y9B4p|c#o;PjoO=x$i*gF&S8WajfIrTR7bc~3I#~~OTvY$kCEaLEoIf_pQqv0)P z4du1!wm~Ck6N;Qk(^%jnvC=-z6~Q6;uyDx$43SGw^uvyjUkxSj=JIH?(TH98`s0e0 z^ND@?+lQ-74MPk!R}osA|%Vp#dQnnL~#%QK{SxpGG6{si|o% zv#t963r0*TOLz`%0m1W*(E zyEgcQ%w{hgPPfNURC5i>HRxZw=v;D+N=gdJq(9xCOL-fFHs(wik0r#Mjz-EGm614j zyw;y20()}F7NdpivS6Icp90{4;CV)3{4Lg+o~)^5I!8Vz|u1!@4`El-jq(fHr~WY=CqL(7JhI5 zy&= z$;`^Km~Z0Q@u3Esj16$PIPx+zCs-m&w93;V`>;8eD7|CO6`Q6Aw0S{ z-!nS!J3qcDZvn>=v`XE!QR`|hs*60lP*)$*QQ#2p1BGjDHG#M}a_Kp521qFrk?qqa^?{x?oDWCme zkpC>l9`g%Rl!AhB_XRR3r&wy)01Q;6c>f&x~YXf`-tJ{U8>tLogU2hi>oPIXk^Za6Fp8R=eF`ZEv zCy>W!{o8ks3FW+LJLHS4nV{bpw&G)j>^9SJoW(Oy@v8htw?nmbvN5r-g({^OBBMXT ze}yv^>lb56neaMrlce%{#JKKFKiJ2gU+Ia&CL)r4XYj6mhBr-~T`tRIXI!Tj+Pab9 zx9=O|7u~AkA#Mn<8yO9?{+Sqiyhn7S#H!L zDI@b%5yv*olL;)e+!3kSuiW=1Ykux05nMy;sEO;DUn>fau7s&b(m}4zoQi%GmCO$t({mx-|N}rjT$x0LsZgnR8T)W|{4lG5?H^H=wMHl>`m(Z4j#12)i{WadOTp+gWZfr;wgK z6CGh^Q!oQh^c_y%j$K{4sa(qYr>q|l=%W%-Bz%2+^Uw73P+I+9H~QD7TaVrh1d>2n zPEpH_CfS%jB)d?EV^^@$s~Z-sChb)6;Sqoakz#l_2K((ye}BlH#Sv`ibH zJb9wZFr_W?{yhb}>Y1}+32~;MXl_6wd&qrC^{TZ*{;qKvNwrd~-=O+kXIZGIu8rr{ zesbLkgyzhUbNP~_mF|POvp6}}V_&c1yLFSsaUdBC3Rx2oI@Vy4#Jzj;MVVId?ww_+ z{tV1^!OeHiYcI%(Ml=8;;*-8ObvkRb-Tg~lP|uMuDMYiDYD=Rp0z&Ae;NSf9@+_!$ z^@%b#o6uFh?*BpS_}}a>M?1AJJ!T&T&+?g9<*%xz?r_DcZU-y8|`sWbChS0q9N)wx{BqF zEIHQy(IH~~y#^h$tu?Bw*I(rHYpDNBF5ICQJGe#4=lZ8f)9K-(M>3B?=4>~1N}Ic_ zIVW_E)R9^crLNOY*V?(@GV%ZZoi<0Mwo7=I4imedryf+?i*K$=O zPTmp!O)a-Zbj6+~NK&pst9a6y^FR{5Or5zO*jq3c;W6PAK53lO>xt*|wy?0+#37aV zLe^$l3Hn93R`Gmv#*}pqSW^|Hg?*)nGcsOWG4w<1wrZZ5i3@o@-Di zrk@i&KH1<)_RT7%!smP~MjfuYuqj<<;;)v~VsEBFPsy<%)~dCYGdHK-o373RE8BT{ zGNiDynW*viJ{o@57$20Lu~bchTI`YWN_RwOPmg+i1S&CSoQHN!{q2r4dUW!-J@0H5 zM()VXz~quWq;6xMh1rdp)J4al!>o1&dNW~LX{1`*^(DGahk2KikFyaqQRdT+0;1Vb zwV|>oBkF1i5m9zywf^k<7hz+c3e=%=+}x>XI>{(0bL(kZII7Bp!dT?w2c+>TX6%&P zp96yZ+|g?ANh5Fs#Fy*$2(yE?ndo1%T9$h%octc_XL0?U+P_9gN7qBloN0OM8BR^h znbTRnaCCG;Bl06>fVv?jzNS=0dCcb}g_4fk{>GY&J_%@lYbRFdmtN@Id zdToY`hDOWH{k66A4d}@aav%`UE;k0#Hu|0@j7#3B#~^T3tH#M%T_u7MdCb#z$)BB( zygst$O|4^3{53TJfj@Q3K^*m=yTW>QU%s=H07;H30Z9OUn#@#m?n}NGtz~*zI_k>= z#}((CSB@;ba5YWXSY&yw`~rV$wAr;@C-wI1hZ`)R#*Rj`KtW2#UMI|!Ox|4*vVOb! zl*^oOE(Y`xOBdHG22ZT#_f$6xu9p=V8$ycJrTm(wyP1r|3zNN04X(~R(-Cij&{ga7 z3?v`(T;Z_|u8rD80r;7>P=HN+yw?K2r8lMUU*!Ue`u~#`O2rFQTjSN*auaZocYcB((9b1xgi5Lhg1m2?xI2Vjh? z*FNX*zGTfORwg7C8rRolCt~Phz@q)9KszpXA}ev_#6*2vj9e#93+Q}|j18K}THjX{_Nn$FSbwg%^OH#%cPvRIKtjcZI3bAcY5i3jJ{P-7UIgirg)ph-Z~+%oVB?8!B(p{xW_2;K2j_mP-#_xBcC{je*Af)swW0*tE3Y z`gnJNrvh65`vieDcD17q``P;O(SzQBf%POIp$^db?YT(+Wd7Xp;#wx(#bXxMdiVE% zbg|gMUQ~l-j9nQ#?~@1;iAkt9I%Y0Bdly?%R_t zlvBh3Ek-IirE|F}OtZn+qMWnke%nf|NJAKKgXEm(w6wjw4r8`groRYq#J=md_|k{A z=M7~+HerqTsouxbp3wBBCjJ9@lcVJ>h&gj{ryzsO@GLc95@_N9jEGYGn+fq+Ed2bb zy}gpY{FhX7Ue1UHbJs4$#>T9Mmq-VmA3uKFbjC#wcMe5M>|cZ0RBIG!cu2+4DVVM? zF-<|eYTc5$4BxN+N-A0?OHUW@ay;Es1ed)CU2x)m@M^`d0m&> zU@ENtE0-JDAneQotSQZ-;isTPfD3-2@N#jzk87krmFY7Y>GmEt9TpMM&wUox*d}U1 zu*7y??of?JF)OC&4LPp4P8lXWN+BU~0D9h!&`4!vCh$SIoNgf_lf#dh#*3s9Yo| zDXBB!%Sxlq!kA^teZ_x3RbIs@OsW5>@|R|!hUIYrK5OUzmZKJr-<$=F6{^X=;UrGW zziFPB&Mz3K<7EHZfot+K0x_Kc@LU()F$qfY zfBe3Q1LnDyBA}6p3HnVhLGN)^_l`0*-^59~$s7TPRnkJ`bD3O$V4~OnK7zyiMckR! zxd2TyH?v?LEaekDd~k>t84Jg`PJ%QYW2n&c)Dy}jdV0;|%Y{rKnsj^pGzma|nD1Q@ zXbgbWLHos@k+-#xqhD9<{8T>tBFRr-$VzZ|I-+p3Ap{E{`^)!wmt?E!tn`r}fA|B6E`V8M=2JzT(QEd6#%JG~Q=YlUmWS+sjc+ue@#LAWe z;6hSv$*2+hKO&NQN3{rEsNbJow8YoJsweb}?i$X%{x*I1@S(=}GFyY|o-}AuZ-bth z00Lya(44lrYn|{yv%Q4HwH$~CsX~6~_zBIefP|yJQB%VMaD4-eo10XAy2hqIW|c-% zLLyN+!^~1fRR!E(yH~WoMmSY9KJmti(sU*Ivj^-=R&w$HKv@|(}!TZ;NAB=Co4<_(ZtBT%rA&x=$ z>nkG!2td*=G|E1J8&CdWc2>vpe7kSf!)dC@0^4oggRZpsoY4;qdaBNWYLMA8LCzut z@|DMl_F~?Pr6UL(aWN}W&~Sd%qv`Bidu@DOV6vnEy=G%=!{K~a^ZI-*Y{=XhF(m&o zta`|tnu{y(!6SsInB{xjYpYUdLT-j{azMc2bl+=>bnj!SdG8asaB-^8O!paj&zX^d zD2lfl&E7l;LU-&60%tgOP*vaGiM3P#7%us0pE?a#4<(1G_%CLiUg$PdP5S8P`1OV2 zGSSo118QDTSqZ&JlBE@oAbRrVU>>T76PRM#fcyc7HpeZnJM<5reYpCSr#Nj49L+in zKKNE&B|VnoU;)h}7dcHmFDzhu`}x^Ydmsv+F=%A`!3722dD+&l;ejTnsi{fA;~3D{ zDGFXF=gQMCGnY&f>Sy2W@I+-qMZGg@4Aq%W2XaEZ79Xj_@oHa@w+T(7+rc?=rN)b2 zsXVb~#N#8CW(r@(1bzk_VK-f*$kHC5G!_(e&HEGh z76a5IIAnkTS){A9G;E?aQqpuV9~Tq3s8)1x3+{{86RStA_$;0 z`ZLtZfA@;qSGBeJ8OH$RL#G*=+V_=HKotZpD&3Ek*=jv@ifijO(!Dgw3?6`WP^4Lj zV6U)~{o@C#VJ8w;Z!$VMI^}!G>=x~289v<^_osA#o{;<9Is~5Sy3M)VUhkByuCEUR zT}V8fpiKyNHOMF=55PY1zlzH0b;1BV09ZaMVsW3?OqT|LED{n@t2w(T%Y&SLTg1ng z*)V;-yLbQ!K$%-fJP*Wp_?(loW>|lEve=3XjZ{!&$@3!x=IW|;FMlFciv*lNa2?N) zyX48GaAtoIA4uit098WfMFzVC7MRy6HgU8881b~iO6b+*L!SWC9CINAtCoSSng;Hg z{tNd|zkL-Wu_2%}K?5{#e^)U?DOqdT?7?C@czOOuMgKpOzyHxNVl90tpxP6*9J)am zpwSlm6po2bQq0eIk0XNQU=o%8^8a2HIl4jD&W7_66p8|xe~5`_*5d!bOMt!) z=#b-++ zi?zKHIe>5qbd75zU3!xmRYid?d=}bQ6w&#$@-#p#Xw(I=U8K-CcL;KbEP>ERP4odq zS3iqHpuxUcxhDjEL>MR$9*OFw?&##avbU4&aNy>5x1-;6Zl-!JHsrHg@6&O{g)^gI zA~65CY;fUngE;)|P6LaUhV}jJ<9W}MVm27wg^+zqDgmV^#}$Vp1dEO?COJ8D$b7Yu zGy@YKf5QjShArtUuM1;-iqce#4{@dGpy5!aSXa%3&R~CkmS4-gwe(CUwgP_}3Ij{r z^`}3XVkrA54&+%95$pRFZn1!$)-L$&KwC0veiqV!3!j|SsIi`F2MtD2FJ^a+c`KS4 zd})Qr4qnZ{AxhbgbJJ^B8Bd`BL&V0EHZvz z;t;4<`>DC;yPrD@9hUxDDL%NFwXCji-csVsu{GXlsjcwoakYi{)g}_}I+3MQy$4qa ze47R~IaWdNyF!Lwz~|3++HlRywEYr!mVKF4DMp#w@lvvUPhbMj z#;g@_z`yGE8+I-M;(%W0`f7q&*w{STwFf(J1%(t{;1mOZ2gB@X#!@n<-r!`p(a_GB ztn}ATb$y>ez|*Wb0q-QkW6}GyIg~{x;K^QE;vF9z9?oXv4fDT90@f55nNfH6`-Nto zR6e(ocA}G$6CS|gjaFF36rJH$iZj>a32heD&i?x_sVFHo7g~fW$x^!(VE1m#3l{>v zlR20weFs4qhyjL~s>+%X^~)@6wffjgha>*`$(1Gm$_@Kp;-S1Y8!*26e0I7!6`Lgy z$@cy>Kxu}ax22?jkvXw&Rxm3wGdMDmPEauYl~FhAUHTR^4Nd%vn(8)#^nZ58dAF;z z@+s@08+TH`d)>yH9@Ry@hBvBTNw0HfiEzd8%kKK)t67{wOD27*w2I;_51?)fD+i@8 z(ho_m&Dbo4e>mPS92{L*WiW-dOOX3@q6^)&x-IzhoD2#n>~I#tscE2%S35NiPyKQl zg(y`VsEXNVg)U{#f;4Jc+RS=(_?iaiYU;OvGcy0YJbK7MSOE)A4}jwYZg#u$e+Q7 z`g#y&pWSs6+Z_Ty0U7klCHp_$-y$mMN#>Uohi)UIqMBUbH%jTngo71*=GU}8cmKa) zdkJ|*bAHhNx}%lQv4vbaavgbm0Gx8*cR+A{HO_dQpFIda5!!pkrK7*+^L=DX<8bsL zyv`SERU2;p`5y1vbmo(>vA)g*CJYV^&bIs$ru~F2A4!rt( zxPz|U=chsuV1B!r>k9P4OVNL$82*cV_-|fxmS$MvSF-?bLO1b`c~@ums0*^ls0|AxH7>4Ls_@FcsFjbgh!%ZdDKXSC?C6xFJ;RMaS^m}1k?clw{%Goeb} zNf;4P@B@zH2S(J%IY$7e8CA{@U~_#2K==Cy$L{MPjw-{CK+*`67tY;$^B^tr?T}Pd zaJST_ADEU%%G$*$||tbO;oiJdn=kd;_>%KBFAYNPUZ`6QSW>N ztop&RI^$^GE@gKyuS`(7W>T{Jn+u-nZyX;B!~&Lp`` zu+Lvj@PQBkF`WKYR8$nqs=ZZNK%@%cPDssaqoH!99JKrAWjlD4&F2AqSN1g$+e zz+p4@E%2n@PyTt2YL_hY!1>$eY>)V#k9wtMv*4gJue@2h>BL6k=45%6euKJdeDmEk z76CzTL*&HwiGE}MJON+78ivsJUPY>@+bvUC`Q+Z|YOAC;){sQCrd8dIe@Do*tXCK7 zeFp_D%6x8I!B{1wq?SGlbH!~|g6jjM4w$1&{q61TpsF&}%*S-eNZS-;G}nI*2%8-eXd_u>=*b** z;y~#HvSzA)6CSXNe%n%Ah%g7Pi!?ZIi6j;_8dPh%B8ot@WX#(fP1tz&Z5vMXN0zAR z>GLL0Zl@~Erp^y+{sE4J9G*Bp-UOC^<^GBbwY)qvJ9`}Lc0&lf^V;)t)6vR&p;-X< z?GP;LOtrC}l{Ujaq+WQNQee}{8vy;g=ze3{P?*i+Cl0{458h~L5dlqp@$O=QWk?=8 z6`$+V_w!jNlV!e-1_f_k0CWjF0_Vdc($QZLg6zixwy5pH5?+OgQtyv zM$!vduIBBnAs(~NW?D_k|AN|cloK-*3r0vXuj)OgqYIKx{uOPG%l5Dcp|Uupl^R3T+VHB)iCYI9Xp1)UGxsgrZwmunC>uY5CPIn=JT zrJ<$$Jdnm$X?8*8dN41iqeBuM9X)H`f$DwTm)ogF-akYoQSY){9RCz?kQdw-PHC9imqyWAi0&e$WO@8eI;KB9)Mbl}2mM7h7p9jL8 zsFr=FqP#uw3M;JZVO=iqo+}@aaF;~}p0LB6^@0K{OiW>ON&12UPa!KseFXygF!8>Y z>NbPt4vv%s1%`i!F9-eZI}*3_vAld<;DrV57FmO7^eK~GXXK6uWQWH2p6(1)BGM_O z8+Tlz%GSF`hrnK&FnA_>#i-66pRehR4BI&BA=`+LFU8TeE!Tj{FgsjDxn_guBm$ms z$SZVl)1Ui{kM-15tK0EY02WzZSqX`ZH2d}S6{t*}<=!4(cOT*iP zD~Iu!^Z=oxT`YKIOzs#l=`5@{I)D%nP|lie>;I|{?vZ9q zmFuJ#H*6`tft*Gf)Ul*n;|IH!PJ5-SC;;FSFmN7~y}v^MB?nR$+4kRb3b$OqugKBw zH&0gb8FTwJ?U==5qZgwLKm`EBbraPSsC;lm>FdW=RkkC^d7Jbg@PRc>9sZ#e@~$+cZAM7j3@;UFe z4x7j@&6Z?(f*LegX@=g{*EjFKM+W#6qo3!s!ZSkt$57$Oj(vll#mbxWSzZzRIX?>& zsIWfBlky!+4GhA?9(q=!uqlxb3?G7ngAJXoJyj3V&|cUS>Ih--J1{%U7!s>TgcOw{relb7|0ZVnl zg|N#!S^PS2Yjt(?Plbuh7g7Q7i4xr{5QG8-+T=v&sQPQuU-Tz32g4UXMkouO6zFw* zBYJmMz(>HM2Tzx=W^NM?^gYUSkop?;Zi~fc7g(a%dMgj#Qug-MMtLwx2u{rtjOA9= z@cT}{+;-=oDNbgCL;MvyJ(1+Oaxfj4;5U?8F5q;3**Cnxzs{WM?*({eVi4 zkz6i8Oe+b4M%qB}*aFTWaC^=?*_HI+5woQr@&t|fdM7hO!&S2nVsmg9v%M1h_&Ggy zFt|D=V3-1vgEIxS@Ha3;qDEAiDCp^ffgYO$0`HlRkz>U3n!iZm;IxZ$Y)*css;{pH ztA#!B^PH(f=|q2?XfT2_044>cR9Fzz(qZZ*WV!Yf9PRyK9mnwhJf;9Zmk7J>UqF&J zZTX8V?ZO;*xuR)*$8s{NW`u)Hti0uP8fYF)ElETH*L6l|!8dPi<))Xw6N>5>;FWle zW&lRDoZu56AN>z9(Z6U$j^k=nvCVYQ5*hO{}J1pBR?dYlV%58Yh%JXOT| z`$W>K*X+4_dwUl<{S@qXH(z<4?h1o~)#$pH37W+zh{~176xD=bYwSk{WqxBU;Nr(g z`&6JzBPp7-cJX`)ILRpZ%+xGg=xOpnU~O60Vu4`9{eFW8At7Nnf#4^9A+i@|_s5ol zy}bsTQQt{;z4H8~O+E&?3aq$*J$>&ttP% zj!cRPz5mxZ3`bQsx1pmGn;Lch6|$m~FKP@JA_#s3hlUPIg$n|_S?>Ur&P zjF)OhPFd4FfBwOQg*nS=qGbO1Ul3aS#gST-5M!1gskIw#8i}CeS26*wKSds|!SH+g z`j&Q+DuGJ_CKCW24D9&B*)sSII&)77yMSh7{Z3g}EVqUqUp3d01pz87PMtY)Y!$_B zF&sd6F}T<*%r#uPoQs2_y*ZxP90D=YJR-ucib-yGSbc91oIz=gZEPfwb_$>;a}6@T^iv$W{s-zgHF zS%^APTs#E0(|LO|zecX%9&uK$mguA7@$l|8M-Q<4B5}O z>HC)H0&kiM6RO7o=GMy=aw>QP_}^k4YH%+n@49T^XLcGCK>V;i+%&VkzFq;lx%0j~ z>X|o@OJ=74P%p#pJ_$%L5Z3q0kKuN{8!1RP%2C-p{H71{1vyQu52>jnzE^9BhBMHk zZsM^5aIKJLSy&7%liIs??>^*M0D$XtFtT&j+0_-F2hF@w)I8fF0L1yhta2b|>%c;B zpxAgwL9FFSKH(9=Vn3$c)A4FyjvryuW(mScmU0SGz)^Bb_Ju5VmGVAj#P z^B@rkuDCjT88c;V3WCCb3>{S5-CQ`0sj5HNH$r=4givwYwPv1tLz?!FyW)9p0Om)b zdg-~X-%|UN_KuFN(R}O_E;|GR0Q8=baF?}v0_Q@c=L;!x#%8vxe7ZWZ$Fy?Ep1Y|> zeO~iKzWfI6vP>gBBUtolTHA~K>DZ8ZwrV6z%ftk-)PeJh>C5%!(^f$8eG8?is4%Dj-|`+j%kHl07`jZ9CwZ&=Y{((xkUEGyIf6o4>Z#rAoCXf^F?uuOb&VydQoQ=zW z93-IuxWhr)`A_%vTPVNM1ya^nm^ZG8OD^)yD+2x}#1voWH<&I!O-JX2UZd{nry}k{ z6b*qV>p+r390(-BAB8o3;XRan0ASj;iN=giKqrM3T*$A*bE;AY~&Rkquf*RTcV*hAG)!*{58o)>K{gJP$t9hr2;ASati1ftC7Gsy9l~hU04NUWB4gYUq_NY@yui0<0ndiId)S5+UDIPMaA6 zRw9VoWbbp);LiY`Bve~Z4IgBDF11tECKK>HU2H{1WKH=E!hB!Ic%*A>=Rg#2Ef)MS%7XT3tDPhHMz7=mDUR#|snQ)RqSUXG z1TEFN8&p{T7)AeO4q<{lAn^3B0>PkFY4f@drcSjbZi*7ud(IS~&Msbc4UPc#%l7&; zArRT@T5iU@?!NFHEW*QW@o8O^gMuLvpUz^|U>)l=ZeLO_{6`IV8e1Vm_15~r&yIzUja%gayIvM5hr(CE-w zTXCV~?wnZRrF$rFP;vd+-T=N0#PQs+Z&AQa2iE^zRn70w?d3}3?a`4Ckf-2VJs4Pi zU=R{&X14^I&1u`#2SU9rV!nRu-K-m08^5ldxbFr`{zIQ}JJ`e#71cVS@26{7obD>| zg`^Kq!u4Wk30Y~+9r`TGdnGxrnE-z8!iD`2uFeW$w{K7N6`~+;F@}Q!7X+8g_ynn# znFshNL7oC0gdCO2x1MQ^(5y5oHy_G0obf8zSX&!v(f8xbwpk9LOJ59(!*8;|fmQ+M z_QrI!XHzk&-fMaegftKLY8N~YO7n`3xBL40ss1Ik=T$4?NgdMJ7h*lt5C}}o*ABy? z=~{;>)!Q4>Y=p_srTXd{nRq6|C8M}gK{k;52Z<4J_C;&nP1UEp?=Nf~E zXj>O?5pGa*h2p~Hbqk`YsVTS($CV@-{)HH|)n!7rM;RskxW=LW2@0P5g3m>{+kqZP ztF*$03T}zKl9E!OO}u&}5D5W{0y+dOjqEbeTfR^1fcsJ_qC~up?=(XGidSe7H#SwKZo-E$U!H`pkc&4q2`=3Xf}nWC6k&-I3&x z^0|d&<6sNT^~J$p5u%yH$|CVq%g%k|eanu%WwF@IOD!*5!TElg-*Pe0Qn-DCG^6AI zCWDqz*d%vb=T7Fg>i{OVbom+(Ye0Re@a^#QJm2jD25%CpuSmWPjsV%W0?WV<5+ECR zd-DUz007?StqWN?28R6EngS&S#pE2I{{qN&(mYZeUSU}z?KQSHgRgp}4OErPk$S{F z+_3`sr{q4jm_oOQkHGyR9TbA`15JBHU!FU2(x6H1lt`a5r+82)2a-l$MR21 zF4f?U0dDo*(uW^GEC+&thu7Wu_2Uaa2Oh992oSTzxdAwV1}a6o6&N^fF)<#VIEbCV zqe%aWiQy15tm{+968+IWF9=)$VG!4==n*1Xkv&ZHN2b=lb)DA6wY133){fe<2NPA! zV6sMI|B;+nzdM%sb|#UgV8fFp4`_ID&XO~)#dKBvg*D+IAKJeS5W3uCPO#WzRW&cT zub`%Y{HfNSV4ToU^hy-^9D4106`$zgJfHO!_C$z-oq#65F$*UbN*CsOMoCHe zspam@u4`HcB*oUjT0HUdNe6LLwWg{}Ex)kL9W@mzAj^&%B*_C+4I~D*HbMHFQsnL1 z{^IJ+`@F0kuX+=i#J(yu-1^k}j2ry;tRLjuC1PCYbo|s1Ctue<;;L|4%`G=s+~O2q zU_W|Io@X8Mb@e~90M6y8V*kBM6>1JqYpzfd`GK<*Aqj++*Y1alS|xc)p^=fLr<&Th z5swA_OJK>}m!QTA%Px`0bNCy9R21Y?tOUDnK=fa(+JQ4BFO?TP24o^%pVj2M=!!=? zMMpQ=7)aA79&cb48#VgtTXiC;@=P{^#SL_0NpPXOX&_141?&ePIF{Paz>SV)gzZZm zL4~?jKthKL-9UnOt=};*GaCUkcfaXG9(+{85|u+yL9TEF>~6}YWT{)0t~~Fk#-bD~ z*llwK6A)x~x{^7p;Ct^r+yn|RF%>G=aO>hn`dr!D!$kIY@r@UELUOmKf+n*O5s}6@& zL_)-zJxIN*&8L%rNUo>ptOY7aCVhl@G4*Up>oARwjDV-zXS zT`*SI)MLnh7hlWV>W?nid(d;A-gwYVY@eZ&4*FiAzHeVnm7K}A@8O~_+&3DjMaQO- zTb*-TIPdZjGeav<+2s;c5*nd?!x4o{*eW{EqD$Z@>_3bCmG zH%idl$4q+f!!|^kX0fH?{2v8Hh2P@xs*93=uTIQm-D%8rbnkWGmFNTXPyWN!M`ym4 zg##^BV7qWZhtpzxri}3W2cTJg{B3)}JmY5|1a}3u9I;5Se!0NhNK1>np9GD399io$ zthPVw@t;2vxKpjNwU=atdY&zV{gkJ+DQU40L&lw!)p&*9H%Wvc5P6BL zRBrs*NJ^3>G)U>?8m6{ImLz61M}mfy%vq*bes(nt<2ce7?T?n+n!`Quo6#6^s*o1} ztG{mVd);V5emSz4CA@CZpWsLw(A>Xq+P`7Xs6TKr{W7Vr$|xK-*XU~0w@j0#n1vuM zEqy2iI}rlSKcpu7688w6mqb7#Kr%Bki%Uo_1iMe&%g@55$x(1CUqZkpC4fWlfTRAo zun=Uf4-7I$Dseuzf94_RE<_iA2eQU z+Ga@xOMY4J8K`wZI`uP7lw?QloS49eEUvCTrlX_VbEL(g+@8;B+|0Or-XA+w3d_mP zX`7g+mBw;#bQA#zVlYz=w-?n>6QaSMX+O?;I^d!yT1?68=~bBTegAy$*T?I<-Wh8#~{H8pOAol z0hMY`5bP6{0C4I1rf!WdNYV#~gb0JIR-7~qLI7%>(mp6hi*w!D+TCE2%`3}Q`o~WY zgulNt0QnrxepXl6 zzjB&15==r8a$(w(JLfu8VInClEpnV+aR#EGq5${v^YhyuuS)H`PGL&mGwzL&b`cj7 zqoC(TGHVv_UtKi@NJ`v{&@hq#B>Myf1-Tthk-&Bgf1p6VQz6E}4526t+r!PRJS}!| z#lx=%3qzTY@WlsvDF8UBcJ%-qr$oQy3)uV$c_V84SiG5Y*nsCz2jWBeM){*Vw*}x3 z5`#a6eDmpj1{p2UCDv_l79I_te~j>C*`y_LDBB93-~F)FpdNQ^V`JqwyPw;B@q?>o z8n26U0>$~)+1c4YAf5twv%#F^aI!83HNnJGO?-hJQd#-h(b4f;sh$Aj4LE;wOmH{I z!W{K|RyYJsZ3;4FJHhtDL8I2h1lEMx86Ux0oLb7phFvgyJbFH zg$x8Mi!vPhVko^4o6xTdFJ=jiQoHzeGfImhMpmJc|Bbl9>Q`FH3A0Adxbh*5|Gyv3N+5~_|E{)G|MwFB> z(wrfpZzs~U#z;d{MqB*gF>zR4mGxdjwFbz&h4%3^^BoMRFpb!H+`z4o{EWvCi|!4V@OMY=xI2{&8|ILY3_2;Ua}}A7FMPc z4<=?`*e+HG0yZLMv`>@`s6)dWedI1QD=)720%fU1jT3=AX}p86EB@xq2Qf2`zjf*8 z=G}4I-`a&<^B-kNmij;58MIFPr%*9|oRD1o6cP};ii_qb15m}L?#!t$qX|Ae z*SL#MON*eDONM*&Ty=BB+O>bce|TV7S~=Q3%nh%I#$jQ5ASWUQ{OIVYs1H0&8?9Yk zVjHf>lg?e{=4nvF|N5iz-8R68%3b%gNCX^l9wEdD4KIN=z6$#Ag1~hFs8S+4+al67O43pRf4>{M8KJQv;19@yOCQRe1g}i=|u#5 z=rPr$kzhX?BA9^~j~@Vn-JLCyXumN)iuCCN7~&GBdGF2@MKB%%u@b|wdU}&rkE*lo`E4Y*Q1|!FxAsm>9qL}q!^|@`XL_=!+?bZ}4g9n&9@dP)CiZh9 zBCa8#v2VP6d>+IJd8${YA_oRTcJzt_eV4iQ%CKk@GJtwTq`-UR@0UGA(df%*nf~WDP|q;XN== zievE5pNy#cKa)jOvpg98KNo!^jR`v-sh3UDK~i@m__n0)os^15nk zbF31-JCfM0O5Taw%+r$>XtkK2=+09>;s1dDWh1HBn*nGiM@o%}rzKoCjT{4rR!Yc> zh0ybZnaHv~Wzzk;uA4~l(t#%%18-^a%G`$xLEkm%Eqwd#wyaJm{PVcxiit%9akROL zEakw!z%&dGPI@P6T!;l1j(LbUEFVKI0a3QUy>yWItYh=H$JmnQ$fjjF{a=k;bzGEd zw;c=+i&8ptC_xcWN>XJI0Rg222|+|cknXSu=~j_$kd#JJLb|&{dg#u(U(dbweBXD@ z`Q7^;%x~tMH=bwjwbx#IjpI;}r76c9jk+ZXWEa|;O#nq-b+oA4azjSh%!0WNmPt%P z0>9?_EnER>EC%8-3I&1^$RC{c>Qm2Kvcf7U&5tOlc#K*f>&eLlSnWu$mnh60uZ3a7 zoB=A;EiON4beq>b)PY1*Umpdua!%pnb8h>E1g~7Z%1DH=8GBE*TzQ85#mMyJq!z%% zZ4mNZ3OfCw`zwV~RYvP#AOtY$5nD1wM#dMdQ8?Xcnr=u?_}SQqx&P`EEFw1``!DnI zk^wp{?^|jfU&z-pT^bhps#+px?-?0wr>(91P(|fbyc|BSGOy90(M<><9A=aE=p)dNw^0MZo?Aa>*09t znJZcHY*Bx~^QO=4UhY*86k9ViMb6R+7Sxv(^`Ao_$rHI2W@fyr%ITO47mb+Rq8LEY zQBhGSm;>*;zP7&pE-^82##~%eghC*3*lwOJd_}Y16^?x3gZFN3c;E{YpD$ZoWtLk_T^KhpKp8WM|44R8~q04a2m{-4@;Vi|C6Cf$zbDZKr z9$cEpzXd-J*#gZuBnrohb&-&f;SmrJK=VdUz~pmeq%TzMmuK%2L&YY?G6lMk6DRS;8uRu1zI^dQT0bag zjrqjUOCXs)*+jPbyX_h#$KtX2;o;$Z8JT-9)CXgxaq4b8>oG=g*w4 zLwn0Cu6froHw&)Y3OgLnCa-*~y~p_9^7@4yJlPca#PduT>Dv(Pk*}=wB&Fx(&TZ$Z zsqg5Kt!ZX)Tq(PGK-1{+$vd{zr?RU{QEyONhgZQjOSs26T_Mr2sSe`M=3zEhpVxhq zDJFZVg zv#0)uyr{4cnL0(ez>TS>sK5bn70yGez;ft?;iK-&w^dhHp9D0a^f&@;UPI{h37G%w z*R`DM#6f+L5^&2k?1@QAIt4i%1ooIt)La%4qESwNQZZQ<$Z61d z1*DEtY_ggn9=8%Lsv|+sLB(sV&~Gx3_mZjFIEl9WRph*Y@&kQM^D%(i&pzFcV<2K@ zXXkp+it0(%5G@Yv$3X#P#Q=p6bea)$J5A|FTN{ytgaoe0*zCmA6fPbf-pfWfn_!utz^Z~b`OMn zuXWLCt4sv)c+iI>r!5K>M{rw=PLBRS6NoxMT~I?;jkbIzFhGGqtuBH#Oyyl#&t){xvc27G~dHgbtNC z(?RaKr>~!ErQt9gDj-&?tg5OyOI~a_kBjPJU8~c%!paKYND7>i3y^<0@I?4Rt1v)xxNQh!>(L% zHWgUAyc5#G=`?6_;o`-LwmPEg&DY)4C=<;!X)@;?5@W0YSL@B_chbqRJ;aWjb9%;datafcCKj)1AK9c7Y0R6A-_?HPtA z|A-i%BLcCPyhbqG2Q`>pNnzv34Q!0iaVf#>KWXG;7NTD zQ|FzpFg|hOgvvUz?r*TEPfPM3k9h#II@#J4@Z$zLTV$WYcE?X0-Nrzusi}$jm-O|)hRQ!x=zC5|sFd_6GX6du^82sjTKWlo%kh=>Bqc~U4nab;y? zE#|wM&?_N9L0XMrI+^A@G9YHaNBKd>1jRt{*V=wix|q(iUfy4wXXoE5%*-SNnd^_B zWcfyoe4+egq1x-glB3+jg?>%$n46S1>&!$@o&Qlq8}(-5NQGQ`otVgsiqh{$aQE@4 zfp0|xIZLW#Ih?$^=N2>2Ftj|>w`38r=G3^?zvX;%zzfLC-Hm`wsc*C5Egmu`3T1O{ zgP@QQ3=?@uS{lsk2Hi3l7QAxd^t<=2(D;y=&Z0;a7ahrR+?`E4b>^HXfEYORI5!3s#@!O-qmVDJlsmde=Xa6^R?~gJ&!=Ii=b4niSljXaZb2toRvjo zz$_I`(0%FDACD&t6Z7=SZ~QPdH4fenFSg{0B^w0xtZKTvQv0_65-zW-RQSh=bLcfw zJ8X}+Dc0Lzb9-KGFF%F7j)SsV=zR@Tc0qBma$g>#z>kF7IInSDlY<`^DZ8o{Xu{iS z!y_XJprnLKpPrA89LDt83&TI!ouwH7O}sy_0f0t0Hn7Pbc}*gc$e{{)cUjc+(ydz* zi7j95O^)9G&O0H5b%KIYR8EdKKsGpy4uJ^Ui87x)m_ zk~6flw0yR!3~(d`-7*-T!R`WZ^QKLVwvpDC*ZC#(7xG|f<-=^Ebwb(OKF)8Z>%ET( zii+mE)QlFoh3USE#mlWQt^y4I+)o^c`4aB!wlF%XWkJQu%ey{1fQM==l+uH8^;n6LXNXnO-@jo;7Ayog-^wuqjK z>jH|9h~l+>#_XZ!wFFwxS}Q21yVKP@V`9)rT?R0VO6eU9SaHO8O9&?QV9X5<^)R)w z|G=Op-TS(F(Itbs7mmF>wvs*4Fw>qZ6okd3HkO>72{rW% zEiJXbq(V(c%W<&TkZ;I^G#po;O^Fn3!J7aG!X&b&Qt&bxceL0NoZ6cKjDuVgG0h7K z3PLgr^mG{klju3 zjduMcOOj@pFnA<+hqUB#sW`)4BBG`B0Utv+#ixU66NEH0=fv@9B`pP6ot~|$ptM>R zg?e*rNnEmJU&AmnkBV=!&eiMJ5zffZ@1x5mc3=W}w_;G3#d5+O;^XH>v#>}^C+hqo zu88qzQ`q(CQ2D+)V<<1*aFg4KlkQzr4Zt5{H)zj^J-fpgrIe=1XSGj`(t^xR1bgiO zZ!_%XcfAir33*_+<^x0fRMH54!m)d<$s>?S8}b=Y+ISCnoJ(#vF~U4S3XL+{#7FtY z>Q&92T{6lutA8Z>)A8}~{ks31?{QEY5vh1k_Ki60okP9i7}JVBkdl%zT~O)s2>i{!4&3X~19up%*Y+j^@O66V?5qJ=;`sO8et zOK?$t4?iRiU~#_aN>PmG2YlmQa}Kq*xOfGI(Jcmd$vw9uYWh1>Y#|~edmX@7&fZ9w z^T^~x8er@Q=R;eplN<5Ih!9ilT7{~@oBB!R>H`2gu1AMkW&K-y&U!lSRT49?3vVH* zcsV(8Ee@6*500wDs^zzJ7qg8kSLxjDMXk>aAJ;1r@+=^j;J9Rj+ArRjDE>C0-%w<> zb9#3J>jq^rr_l_@U{lc<`0VE{LkAW=f`rRAg*KAM+oaH;Y z10S1~SXyjzttZ2X6B&hx|p2BObz-;As%~Dv!GdaJ~;Bchly9mrwz({+lqloU@ z1q|liC8*7OBKdrll`D~c3APkQa9#|gvjKpwTKL#UE?{*HOp3hT;^QF;9D?J^#~^S2 z0SnD^VVl!pv7G|q^P4DQgb4!2BpXexbb=V5p|}jY z&jP_Q(_VN+!(l}XyZO1woNtx`RQ*viX}4>-&hqi`jY42RhD_6+6dsE*+N6ivIV%!J z&(2OTq_OCFbTI2YHZ$XnY&)G=uj+igvXdxey$(Y+_)5^}vv#_KQ_bOL%0dskYP3E8 zd4BybC^5s3;kIoIP#tZBgP#|l4^=}7dz2_cb4{h7d~Sop-zh<+FX_ZZglPk}3Sh(t zgtt+2X*;JHLfOUjC0MAbsh43QSGn*o_7jttrR96ocvngTzH%JnbmM*%>d}W*i9u2A z!!A+83NA&08ck)uvi0Vh(1GL+nOCt`9Hanlj0^Wxz))vMP3gfNYl%_x(^yxe+=gfR z=o=U_R%x+8+hOX(yPSnF2ftlulRJ#4^W}|?Zz4V$Pl_Dya|I15mUKmowx1oBd@py3 z6{p(wgXu<522A4}tko(g_FiZ7K_FzhZHCwl6WFI^Z!G_HzGuDycIi zn+gY0btylYtq%dYq7O=zpP0tMX(x>-9S7-5ZT)ueLwwe%4EI`y1DvnQZzH!CjVm^~ zw^Z6wn31&wWoGO6p@-5z=q+g zJj)YS{V65xZApIZrt_4Ag~Wyxg>vYxgHP4e+T2Azd4Im!Mqak}=xaF*Dg7?h)Kd zvJ60|K$fb6XWv@tXul2`7w7#Ix7;7CQa6V-puvhlArMOBXuqT85s>nsT_hfo@s&W- zK|M_Xwp^D0M1qK{`@AT-xVSh%MMERxov$we$dpF`o6TpsyFY7~^N4dg*j-*-twbiL zQ9#F5|7r+Lqj817x;ro`P+RRu2Jw3o+vH|W1a;yDW*lOJpC2Jmf6)37O@XF<_xT@D zKxyNkfGWr|=wki8(XGbg1BG3wky+LOxY<+!w1W`^0i(X`laUUq9&L{M`}?EQ({9id z2Lsy+F!Ga-WSJ0@?{r|7W7u;ZSgcd0PglAV(LdmmM91j8RdhoCl7K#&D11Zi<_=7p zJW$oE7tYGc0=;>f)h7(51?}`L{O{_=DkidlmlYLHaXJmSA*?j6vM;|*BY@RK8u5w9 zg9#tSF;IrVte<5hHa}dMCZY3iuYWA$4{~if$ntHasyQ!S1FuLiSlhcMS|vCVH%@m% z$^8W!gEPhwBNImFx+Fj(ByD5ggNG_8yfrq{_Go)=Y0EE^S4~fl8n#~Ww_WZ4AoE6{ zyU@P{)jRhtzUJD#A3Rs|rAtxuyB}J3abQezkaa+Cr`CC6j_V8mhCrvmCDxRydB)x@ zWk=6Xy`fxLNiML@C)8{4>7pPIho%0@$S&&uo^)@aIkQZJp#Cd?rZrLHp`v*6gQ=#l ztBlO*EfmQ%-f;y57wYQD412#CMNTwNE)yF3+!m%C>U#DYTe zbB{^Tef!GJ`#Izc&g`7B`=FU65El!sIRnGX?t&ed-u^mAr;@f0>^CI7qToat(qj9JyNP zZ&}VM1Y3Td4tt>iw7m_~o!2f3!{ICDJQ$!Wix^IWLLUXt1kK6WHY)si+Mj$+{d&`y zblhPK2N98n-UcS-Q^f96m zuLJ(aL{Fabb#{qxIAj^BoWYb%_%ghmS}Vle@qf;}Rg4(o`s z;6pUyourV${^2lk*y21&UIQZ!K8UVNDSHp^29}CfGSd+g355eMrM!2Q_6w}a|39zx z$0a}5eO|1hpR5m8*BAw^QT(CbmQrLj)eJJFQ+=lscgO`q;xk{Maa=&;`?%=zjYr@& zx``c0v=-Wv5!88^T)}e@d7HbCh_vnsCPps#n)=Ddr}mondlRO9mWP`zFWy1rkkX^v_JMtM=}nQmi9y=5VfBhZ6J#oLv;-f zPQO0}ReDFU^xeD1z{1!a_*FrteR9}P)o)Io866vY+RaDTF7*g}e=3oP245Qc^oJ`%8RvbX$JXCk zv!6?a)uemI>)7`1YMzytrqt=>dN>cN2%R8ed&%J2aZ zkzQ#Smy9O{^Rx<>4IiDG`v4~#4b3>*9{o9JlNt>c5W&PlC8F;|0cJqvrsU-1#}*eg z7(Iq99m1{Dp zAd|F3IUUFH2!}i5)IKpCfq@%s(EDFuVYveqW=QuOX@8)W>zE_8KKx5 z6S!J+0gN%-`g7F$Mpps?0$@f8b%#+4W`D@JUJyPRdSY3#Hs_~o$}x7yhepH|p(GCX zcY^2UTceMIO%?~3x*}!hA{h;hHw>{{T6u{6qW)!rcCF-#JtXt8v7v6Y>D>=mXIOFm zwg~hK3-$bUHDsc^;y5CzLF&ql12rrraR)l7VvAk47^;GU_FKBk2Ni7SMA*Qw}<3oK}r0r`~8;geNpZE)=b(Ou?a0HH;cPOVRYZ>m^>8M}b@Ys`gu`Bxl^^_Z@S#fd=x+gqlnb$JbP38-Lk z2jaDhsraq2;nE3tv?5Mkq8@IeQ&X-Pn-1~nd0X=(ANfqRe?`X@tv-}n=SOAu+R=b} z-u1bzG&kUV58@ir6qSi zp06n6X}qY5!x2^~6zd9_+u>e@4DnnM7?aEwci3*vhML;17r$CL*4`Yi$da$y z5EAT@1@oYU3dcaf`ign&{PzJno!&CnF|57`J&-N`Ugcs<)k~}tt>p2{=A8{?XjE?C z7KZ;`n|Z$iO=r}Y64Y6-CNtkdDt7c)!@TbQk3wVqPlZOT?b=k5dNEIPq=+wcZK0)n z5kg?rW=Bx8rEK>O{KSPe0C`|UAhyS~1M3R?Tsq!z@5Q!rHCZx(TFt!~ScjI9RN zI$}1zy|*_n^c>~x<@F9EmQ44gG5Y!}K=G}B^8*P4l@z%}m{#S4CWFIzo45_k&1O36 zm;t$Pdi4wk7OM}UZ5(PEnlT`<;LPqYCJ~mQX@O>_Eyp=Nwy=Omu|R`B&YtJ==z+50 z(_~pmh#^7q)=*pRbr zfm*tzD#>GceI2A)FH+AgMeu|e+|;Dgj2)PnpZFku()DNV(aXLBvg;a|_lNSdy@k2; zia!WhWBso==d6HZqwl0yWa<`m>F(TB2~)xOYhBN^ca=2{&du?b!*s?%9`a!`{p03Y zH7g&#saM0Iz8^wQ9DuhOzLO>0p literal 15719 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 qq5?h*L-y0nrEe0oGkal85TbI#k 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 diff --git a/doc/salome/gui/GEOM/images/ellipse.png b/doc/salome/gui/GEOM/images/ellipse.png index 0888b5021ba27724c0c253d16118e4f3417bbdde..8eea6cae629ab918cdd81998187a6b73c742c769 100755 GIT binary patch literal 21752 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 T+t6S#E<*FPt_JDUFTwu?I}G8y literal 17119 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 H;QN07aAek- diff --git a/doc/salome/gui/GEOM/images/extrusion2.png b/doc/salome/gui/GEOM/images/extrusion2.png index 53dbe7d72b5970fa5624a1a93645980a4b957931..28ef202172ef8275220865c0dc1d6ecccbeb4f6d 100755 GIT binary patch literal 22779 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 literal 16332 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 H)17|-14k#2 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/fillet1.png b/doc/salome/gui/GEOM/images/fillet1.png index 7fd3db53f71f6be1e357bb2efbb76b23569a0897..99093f6d5b0b8b5013bc78a574f85cb3ae817373 100755 GIT binary patch literal 16718 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/fillet2d_2.png b/doc/salome/gui/GEOM/images/fillet2d_2.png new file mode 100755 index 0000000000000000000000000000000000000000..58579c47d685c858073289482c6c508a1336c5aa GIT binary patch literal 16404 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 G77|qAHTKhf|+RoqWKp62Y0zhYQ&MXa2Xh0 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 WOtMZ)^TN5p2!yVtA-YHd8~RT@F14rt literal 17640 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 diff --git a/doc/salome/gui/GEOM/images/geomcreategroup.png b/doc/salome/gui/GEOM/images/geomcreategroup.png index f51ab22fd4fb0d57eb5dd64a19e3cb6f79a9a6eb..8e0706a40ec21f7d5037a89a9d70c804c94bf261 100755 GIT binary patch literal 29175 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 Ux+)5M7#<=g4SQZFrT_l_12wWEMgRZ+ diff --git a/doc/salome/gui/GEOM/images/geomeimport.png b/doc/salome/gui/GEOM/images/geomeimport.png new file mode 100755 index 0000000000000000000000000000000000000000..8e44ae07ab743dd0f759a5e7d2d26e33ca06d9b5 GIT binary patch literal 27725 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 Br1$^; literal 15829 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 diff --git a/doc/salome/gui/GEOM/images/geomimport.png b/doc/salome/gui/GEOM/images/geomimport.png index 516a819bd1b416f1a551d421384390d76ae2bc36..d194ec5b6aa426ddbc996f9d6949df5258a558d0 100755 GIT binary patch literal 22327 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 literal 15403 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 y-L>V!4%-Q5ENupWgt=?L;eL*%BMI0 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/geomscreen.png b/doc/salome/gui/GEOM/images/geomscreen.png new file mode 100755 index 0000000000000000000000000000000000000000..a8df645d2812a5e266ebb0dd3ccf18264bed283e GIT binary patch literal 64074 zcmXtA1z1$k)w?jAr&y1QFykcOd$25AuK98$Ww;lIBBz4I{x z-^{)D+}LNYwb$Ao5g%3MF;GcR;o#sf6cuDN;Nalh;ox2^A|nEySZH^i!@*I(DauG{ zd1fExc(jpgH{5pexZVpj-CU|7(*Z_kB%{u&r^_`r3a7Cw8_%&VRq{ef1r$)Ya+#haj92jXUOl2NIlW z(eLi=_3y>J$d+WN&^HIR>p4f>5+|!2ShG~DCw|LxL^(+8#K$ji$|W$6lhf`miUeU< zI!R;%s$hhk9u@dENz1S}ypfD358bm^7BS`hL#?*P0cy@|9+QpswX|S zCrxp??fG-?Ro=*Nfvlj-)b*dvocV*G&*D`9Ga^v6RXl6bl@~vGZ;N*&E6I|^=d+_L zLhfP<`_);(i~dv)Awj{*oP(X4?Cs;3*PVVkbAuq(7#a_pQqoTs*pL*deyTNsTUa1` zF-7OQu3n zyOtf1;C{sazMuZ|^y6!|&BxuQ>O57C6Yq8p?E7!A7TsXE`HxtPs*p}gSEmkf0x6^0 zv4=JHZXr$koY|Rc)sEx8_KxGZ!=)wMyJ{=#&img?%excDy1PxRh@x}H4|aOV9h-bR ztxZm7)^`$q9v>l?)omAQ=X89w6X`U8>W3O`IlHo&q6h&-0((B5u;Vme<+=Hk9i=>)?PJ8h~2!--f)0S8ryah(ki{TQ3em-SYI!31-x}>y&02HCA6W{ME+N7wEOlc zs>pC7530WY+NsO!1L1Y8T|&Aj2R_o;=AxK?rLO_nYVI=EfGDkJnP9&nK)BeEuc)D@Z)^=^z`6CIWb)*~g>0MSn`$YTbzf6$t zxO{eX90#lax;A%G%0^;UbPRrLFI?}j`|VvT8dU+vUE!758?tNZeJp5vrv1A?<2zeW z*5=voJB;F93mPx@-S4^LeReQ1vW|k~3wAOwg4m2NBFsxYAVOmmTSBW`LI%R_7eA}H zRz8vSxI77U}?0^28LG{0wp>HZ^ysmVR3Wdu(%Lr`mxdE`%+h`Y5HNs|3N zAH6*ibD5O?Hi?_%xZT$DjL^chtd_Uv@-6%lj-8eJq)}-g8kX(UU9V00Csfjdqo04* zw@!Cryc;_g>{5=Not$pVTqn{ieIE60243pmpPSv4JF8#LEcGLP!tz$9&Q@IdMjF|z zzrAyf=$t9lETYgrj678p511HQty9u}|K+g2FLHm)>C04lO)J)`b04S0?#9iFk=gD_ zG`YptnN)_>mCEXnDR9>zs;46%Q{|jGU5)U}h}l7PiI3w_Q8;glk%HB=*HQJ^vqQSb zGHCz#6vy*#qv@WTK=u5TJj2z;DKQW=}QI>TSbvj#s? zpYx-t`QT^cxWFTicgN9DMrAfsxTM7Qt`gH)aK<94zAkmv>q=Dw{&snXv-HobwdqrC zkUAh2SphNSOt^FSU5a?Qb-oE73 zga6JqV)di&W#Fdw&&Cd5a)gbk*xwaZpIM7#`-PK>l|?P7i_G&Fs@cEy7;G1n$kAzZ z8)IGyAWbkmfaeq?EGvZN-4xC(4Nb~suI$ch3%QFA*u|vZ8GLCJo@?o7^f9e`hf}3aq8>UEE5r)J?O5s@T?NG-M~f&$67^cV^CAo zEX7=-Q;`_;M#s%(TBkjQM6>Ga5A}Xt{WMdCE=Ko-CG0di zk9_bIMCN9*TfCxiAonPG@mil3)#wHC(&^VaSzF@rp&=HF6{B9rN=4Dz|8uSZhmWbj zQUhM5nE3I0#OX9+W3Dmf6iAfqxmD!osaVp}4?;2Nf0<=!vVa&(R zCyZR%$7djY^!Y;0e(Q|f6k^m1+W&i~2;xcV{BfjhNug~!xNVtA+3$Ap%Cv2KGMRznZ^XRTxFcGCK=8|JW50 zymiS$&Eb~1QR#Bixk4Al#o7#uh{inO?@UxYv_rY}_NhaFtHFUzq)r$<2m<4gRD<-O zxpAt);Q*7Zflz2=`j3ZR?sL)Rjc;WXFz<8N<}^T01P|Z%39cS<`#!sRM;A>U3kwRO z^S5U{?f+wboSer-Q`ZaDuHoaMlssR4S6Fq)E32v4zwSYh5d7cX;GiA0vTGFkTGf1V)nC2U%SL zbNV+3ub-8TLQUcotYu7@wN#Mk+KdF=wD`gMiR`8*6e;`^PBqUzV1QO_UO<^R*l048 zabkac9GVN=W`a`xagRza!-?q25b-73l*gjYRZwqe&rDUwUc9$JXX`6y(IggX zBa>DC;~oU<=e!zoEXj-op}a6ic;RS zNZK5b&KtDE+~3RftaFAkGqJP$O)n&@ZE+!u8B^CNllw5E0Cww{5QO|`ISkZP$A2TM z9#4m&J@s?BG0Rg5I1$_^M#WN=3Ee<2SWe1Mz?5D1HL%H6th&;`{|bir>OXEdhI}!H zW%l5X(hT5{mD%WmL%`NWi73-%(R~+|8#fOTeM!NEis(xHxZGt73Uqw@j#YFVyOLCR zag5eB5fk%daxr10rBw{OH}P3nO0I&xXLGKCH<>q3FnV$49c@EXt>C5S1kK=oW`3Xp z?A11jU%svM~COUQH$(=bLfOwF9eF!{BOY5 z7$+!{)&J5iPz8}FQVBwS`>;rp3H_K@I=P0-0kj_r4rs0%E#q{#gz@EdDs#V%2K7G1U9Y-H&FiO zGqHoT1U3j1&6@IpSrq6n5}9+fKG5T+ogF_=e%$~=!MWSpOha0zhI11dD6@|9@9m|d z(`~3*d~~IL^k=C@6S2p|VUY53e!H}iizQQZa9~emR$$=!dWK&sgZfTgP2C8NnK77~ zl`w6juRn&An9l~EJq@jobacK_digi*r?jQm9FfyIpV3UdcXcrTmnWa21LF}g4rb=P z>&E~)!!6%wb$R!!#NRC{3p$BK`}G#IX|3o)n&I0hkZUBW9CDiWLSe z5NV@_uS>PANEC5lO6=`LO8SQfF4mpy>`~pUB`bC}Pxs=OB8Qw7W0`%+Ev{bclpKdw z=ff63zU>Vhb9+-IJpRu~yFk&+IzKZBkM6@{jaWhkPiM{IGoNo@V@` zxXueX{}iOgiMI9W7G6jf{&Qv)7jKG|s2uO4vZkXs@edj>Ei-rhNS6}=R`A_ z*!%;TuZm^1Wf5|PMBsoLI7PWBxBY{CD;o!zTm|fi{s=}*x(0&dD9zwqJlDJhJR{i(t{X=GisO6Zxx>8NqlKsDOl z!gBi+RkZFsxIk>5u6Uog&-?Ecr_rz`2vxUUAW3<6d8DM(ARs^ZJF9b5zg)Nn(}xGs zF8j{G4E$kNPl@ZxuH#!B567DYQS8Hq`YkT>5Z1ac-SBjZ!+#q%uv4k9kxwV1IBM@M z#+0)KYlGNAS;kjVmAr-1`o5%Usx1S-@_1D3zZoO2LdC%mceK>xdRRM`xo77@RS{wStbmZjWY=@7ow3apK!QZuCX9Trb-4%o*Hmf3O(O9UB(V zaXI}P#HErnQ?BEB1M|3PjYW4CnKxZ=8*Sw{N8fV2T75ND&lwVYc)pH?8q7z=_O_5H zhs>DE>lJnn4K5}giu{Cok`{MJ)c}gX>=#{J8x|BulqahyO+ptZK7JZ$+*}mvyPsvD zV4HMsghTo+)LKpXkG5NH*OtrX)!iRH4DBhaa6T$0Y9Dd*DH$EjbRbL+N{eDG=(tn@ zSOYd(Oi^m0@yp6^SXm2eeCVFPU?#Gva||`(hh%@m^z!mTczk81i1>;sU?gtDbp0&z zZ%Pb3(eS_~DBqSP!s<19S{kq&dvOry9G3=T@a|Qk>yGO1@Gw+#_RpWLmYv*@!-cvG zE>lFtJRff0cI{7HdAItWb|Wcg@yFa-B?~)ajeeh7_0D-nE%ceV*OnIbKHx} zW7*km0TQB;#czHscE4Mg?fP2?&U>CF>)HQtld|Q0znlm1@Z>jJWf+AWSY8E-0wL(md%@GBUn>TMC zR$pSV150whMe_U>ES$Td&Z>Ydw73!*(c7rajFQ=(+jKP|M_W9wWWuz|Kh=Vc zK38=J@AIX8Z}G8S8GC@v1kdpfiPa5C{`)jzMn zcFyJbZs+E~=!3r>@JEKQyUqXNb4OHUsaE1V&+mRu6u6bTseMr#9fP$46iX%iWg>cY zKzNd7s+8E>VOi*b=#?5D-YwN$@*yg9xTT$zX_q61_0r*@#0u~KRQ5G!u+a{q1oYbl zZ82<`2cCS9r_eIP<7K&ArydkvD3-{-) z-MVMfff)Lf54EN{n4c^N!k9-ccPD{y%}6i zzJ0g^iF8NKRW+utj7LLu!ht*|pKZVUYv$GC6bv?#bx^C&U2+nS*MIVk?>Ow2Dafq0 zw6s*7lvhCDqL0wnt+`~1+pNx(iSbvqkgMR$vg_S_g0bZa&P6(phid0>u`X*rjy##9 zwDjvU&um~#l+5w({`PBckkWSsfuk$=$bDqFo?m7#bDmj)T=$RXkG`EP5+o=mIRh!Dv^YrXr9Aka!UCpmvco% z53e{k9W00#9%N5I>&QiCeC+OG`vxlB@RD8WKpu{aP)z?Onx)k8q7e}{6DdyMJFDVg zBvO>m@+-ovx8_=N@|^l}E<9{_dI|3noxDG{>RmBqf@vNu@(qJk3-~@TR*cqB#h9bG zsr3EPLZ7N37o+A>##`X7RmL;X+qFS;q{157l4>+lW(%odU1k@6gA`B&chxJqiG_f( z>UrntT)p46HfftgGl5H6Q0M?Mq5uhA-Td0$y=9k5W2b(g_)9|}I6k<&KL=d;vldyz zpYbynN;%?-7`d^>ZXx{%aE$`V-^*iPCMxRvN2dC zOU~Mwxw_+?B~I*`Xtne4!P}sz>7K)=Ej`WXTLb_l{{YT?&S+qSqjMA>I!JbfJikSQ zjGy*(Dn7T^D3}jhXi^{UTHL3%3l`0o>s@N8rWv@P5E^>o^!4>A3tQoC_QxEg#h{|1 zGO@CnJ>6d^=LqxFy#(Dz>|#gQa71Cl2kfR`gkax3`Ozs#Axm;+{0%H7Jl!v^=JvgJ z6MuPh?YN6^ydFZ#F(0(h`JQIv7jbnkTX)^tu>9?yGMY??dvp1QfEpqHW4Ons&L9&a z1CJy3Wxs)=$LE{QlN1bSQhU?&uH8V#Y%@>KwZO$POhR26vty2e8C4zxR*ps ziN71|mw@`YdLU|KODd5rFaRzjQi}+v zvr+ZiZd)<={P8ug1Ss76ZVWw^e5X_2tCZU5cIGb~SS~?_McTKvwz*7t5R7gg(2$i* z4~=t=G#EO^Czlp1^Tx=VR=WXM6}(P2ZB4EfxaZJ=1aIB2S_0$+d4xhA z@|e2?3itocpBUeKx1H5;)VLI?1z_aloo*v!w=^3}CK?hL2=8~F&za#y-v&G}Q@e7liHNEqPd~1IJ7wBYhtloM`_glAyA3!WGu9qCKc8xU5LI5I= zBVgno6NMU8!x}X%@jzyR zl6!Z-1KXe0d=Ao1HC&)udYW1CcI4d360_yk*4BR94Dqk|5|A_Z=yl<>7JxK3GGaPC zs4libd(>&^&0sdArYpU~?$J=qVgI2K>i)w4YVl_|kt!A5u_pW@XK-=_BeCtTX$&nD zS~8VdTOAAx6%*dE+?q8PubO0RifRd-Divp>KYXy*NfdzHuU|ZHnpS0U-iTrv zNY~LVSq{($fM0C5v~Z#a)s2g1Nn;8XjT~4?BYPW2?JPvR)2WhC$M<_!T6GzsPjea< zyQ%R!+h8{z9v|OXT7BlPvluI=si|4zxl?N+_Vrlx0 z?J16a7gsv9YbArq%7vmxoS3dlNnTh1U)- zu{3mbacN!;CDjE8JFQ&w+HPSS0DEwN&hV~p<^@#t2lG0r-@;Y46X z!Kz8JDfN)N_YTz5c{29W2$GngRi>X2ML@?g^x;(tfN9W#)g*y;778t=Lhnj?7r-ue)DkLiWLSd@JfzB4o2V*mFH;Wm06I39;qv@Tk zxwP<@-UrA3;fvAYjx|ZY^$~x3h6D2U#>NJw>HZ;8m8@VUU8xP7HeTF_66bEdIGNm( z_Ouqf;ne3<^`%-gqtA8gO6o@0YJP)ZoQd8|(`01dy8o@nc`nnI`^@q%-aJ^V2ao@X zPou+D-(skIJ64Sx{7`Rl7;iOSeZy7^gfkN-$NiF zoKZbVJuyKTb)3kL` zOR-4n!M8~+xh*~{lObk1m4HRS5kahfv=_@{vEF)A{3{MyEj}LxTYJ>>+qVSnEuFQc z&ZkO{G_Mmi?n5@A4jVv_JpIQXA0K@jI-jnoU$lk)Fiq%?5BNP0K0si{812?NOLd)t zFnz>}mNV@NefBgd?u;K$Fk)|gd`);O0+bpjf*&_3bV9><$Ev~93FabHcSGQ zp!EMaNa1R2g-ol+OV(}40-9rHr&AMe&C);!bZ27c7>l`vP_xTY#~X*nFY^k_)OpLl z1rrq0HNp4(Q7pqjm!?e#U+<%#u>Ms;l@d;^#}HbDgCc+zC9BYH8h=8Y5nf2LchfrD z4F5((Lpa9xQ=QqmfhdKV#d2khGHxxwer5p`f-Vc&7>V;+64HGuyPw5^)%I`0F+sL3 z#jT{^{M!7HC+|(f1NM_A#n5*80i75KgnPwr=V0_#bf;gZ)?p}7rph?K;~P?f6*^EN&?#AEerR3*?MwL)`c;Q*-+p>e zlM!xe%@vxm1ymGtWQtTn+~E8TO;)WZG<-E=MR*nMh=D@74R!coI=L7k$z~J6iC{S< z0m`NUB~xjh20oFWOYJ!mv>%*X40g+gj~BlsMj(JwzfRY{gY1{2M2qtoHnfrv!s!!( zO=sxvxH#SAwEs?#IZ&1InPm$D>9_yr2FfqM(aoy@9{}gjL|Q$dA~`q~dZj;s{yMGT z#{o-(XLcym1~-A>T%J6bb;!Fyd#+sIKR(WX>;bl5>}X=W?u`~r&*Kx0y1GUR70n5E z43wz#tz!JQTX-@3))lKU)+B(;?Gj`J|BQ;RRNRptDnk?`DIz^~o@rosHSX~Zuprj!9$fIsO2y<#cz=&W7^MO>N+sQ{PHty3rl zshp7!MI@{1?%y-s=}&d{?Kh>4R`so^d@*0TMocuZ7=Vc`?oOM<$PZ`B-S_|NB#~V+ zKxlaEbcK`%#!QsV=`pS_s3ax*#6wM}6mj3a-5MPlXH5Ap@#oKb?u4QrHQ$*vS>oSj zKo^B=Y;B!e4DtUGuAP0evUZ@xZJ29xZCwry^rM+Te)HxHtKe6Ltj>8UpoYU;yYh@T zC+=KTGf}5D?T=osvDTb#v?pC^vX@V!V^GcP!g00y^U<;TNNDdz#NS{SE0m^>#>Q%# z_+KWABAD1iGBZg4auVaP+id8t>>$w4(10K<8L1R`mYmjK|C; z+eO*6>1;~E(ETy~G0-P4{|i#qRoTPLf9)_6#{wo)Ai)B1QPB6mHXqy}gdW_%NM$Dc zf}cObKQhVilE|i-YiSoZH>XcRH1PE#rG_hL3DFUqy_cCH10~i5cvZS`wx z-m|<f48>OH9iN@DdOYf1C~aDd4?IcqMx65 zzrZdy|M>AeF%j1QX!3xtCIOa^qM~Ad zzVbnOUS8a|W#^q7AR#aTYBv=|+Ub3pOrg5B9)SsmMJ{k)Ny%5w-#dfag;}i=qxnvX zzq_)Yfx+8@de)SH+>)77b?I6>iS zG1zltd3la?@$>C~1iaIPEa8z@1lcp&?L?g4FPO(F%mi^f;Dh5qFF=u+=FD7(zNrfD z6}`%N(YBH&C&xl3BgZ29#s^kS-D0O)c{!%2?CrW^S$PecLHZ6nCP0|45SV`U-|@u^ zlD;~&Q3W`YWc&8NQt>I%I0Q63an{u}akiRPp$eNUR&s7Rq{9-w{bFJ4u}9wV%_rqJ zAb0KuN}DlA zrP2F8!d%|Vqh;CvU}+5jYTy{~65Hj*cq=v&#!GCen!v+haNH(@&i+uRd2=!!d;L~^ zpvqnJdfpU>PVz<9DPEqNa&tYa%+Rtjx+Fy){AzWh?Ux!cidkSA$(x;>v4(M_g@qap zO<5Nlf)W=S^S=jLX_utM#=b}_k7=cs@^pq0SHD`ofS@UU`e-1|I__iSeMa1`{K8Od zZr*Ho41y{kk93i;^ctmY3o zo_3SxQI%$CSy@3vMf4ZW`J)CTyd5KQQSwf~D=h}`3v@VuO5>Mmp=xX2tp#BrZrzJb zm=~$`bi5juc<~XX&|jCQ@T04%cD+B|Jjvp2GzZs)>Yz5=WfNZ96NBHzJa1}Px+Gclh^ zN)%vud3Ub;)XkTPO5Sf5NOw7|yKUreED<#a-c>aRp2-`9|2;3vf(M){{TwQ|DcmC7 zq#_G!HR8w3SWPQy>wE~rMS=WBz^)Y$B9yrc9~mK)o>Tcj;ybfUxu)fdfHGPyr{`9R z&TYRyM|ZRHW~fZbZ^4`Wy9~FdnX?PiI9Uz+P>Cnre+$s}dO=y@BF!pPQGEL%Jwwfz;2!|M%`smB*`5YQnP4r=9Ha8W5HL(hhTNVvfCs;u=V1WKbEJiSkQMPpq1N#=;j&bgh9C|Ca}4@oN%|2&NwH z33N1AJ*RR2HavA#J!@j7B8~a!BuB?sv=Ze`j4@f~9NCZO-Jb`-q1GlSOG11q0W13z z;BhW}a7L(deUSIvgZGQS7r}(0DSh3>y&n=@_ZbeeHyb=7N(;_Iy71?r{f2 zp4+4+n4P>8uvrrUBQ$=1(my*A^+DUu*yrpGN9QFs#mO_?mL{n-AbPAi!LH`qy_R{$ z#Go%oXj6j}UP>ZvLuL@2JriuGDPk!(teO~soCA7FgDG@|$lFU(N|GKKP?phnVY+CT z0?(-;slnrU7Mqmed#AZOL%-AA(o9KR2{f$ja?4?Oopt6BOB?qs{3 zJ{(z16~>8YF3jl%({r+ZY`s-yRl-)eN7`SnbXI+}__aFka4AH$Cbdb;}%e{?dY4plu65DUfy%_FE z(oxytQknTJ*V;qM(1Q;mE^6{~xth_r7>QzEkL{Dkn{)pyW+psWZ7}pJ0?+Gu!BSn~ zHarSTEW0^>B2mlB-1}|I+pShlCjH+7oN z*OdbZIgwtZ1Z`5X?oH;H{pr+{R3_csaX+lfMBZ~or2>X-GeLNGG=-F~xz_TJEt z9O#-c0UQAY_<&a_>T0l3>o9im(u0{_k*^-yf~I1R$AK)wGcJlJtA4w-mzQr%5+M_4 z#rr{&LVl`#c7?(_#9w79yzlF1`-b(U8M<_g2Z4nGzz6_5p8-_xR$Fa>H)A3ay}Xst zgVtfH33O(9JrGt3-%Ise&kdBW2tv?Q^ z$X0fCMf6n*m~B;G_n6VyBCrEzPAV)`aDtAe8z$UuY|A;WZcXD}I{`MH=6n*JS9%#e_$>Q@ zJtL-u6&*IH<%3VVpD^#eTbU-VFG@TN z5B9RX0d<^0h3*Dv0ZFvDqM}00>t_CqV-JRoQTUr8!<49TZ=BvhrA~kQuzDS1Z{M)N zqj7%_kN7GaZBvk>Sx*56pqBYsk?> z+flcH2?>4J1Hx#8h&Ky z*e!_CZL}j^z5DI)@3+L=kecV^g#4MOs0-4Sw0FOb3V9=mzU&{waoIhRFyV zI*hn+5rO+`J;JdOFzUxfhvD4nTM60Fm40Nw!#F3<@%;CGfl3kTWBc5h zal`Vwkn+zJ;VN;&qvl>71XH%>2u=fKFH105S{8J>sgTp#x#6a??D=GF~1Z~EPkB%=+<0B)ME7`pY zbeaf0MuGX*z={N>M@2&e>Kb1y^!HLAulcLHuwR=d1{9RYL$S6^6lrEC(sM)ODC)bh zKT0&_pBlfX^w0+CdLr80cD_97i-AiQ7s9R80;KAHp9cm=d}MEZbaCkX`#`3l6=^{< z%3MwLvpHQuOWBv^H}wAV?95zE@5y@bW?UgqiaT%ia{;Y2lJ5Jwc*pl+xe3C(f!@c4 zxp(YJr$d%Y*U`)3F9KlY49J{Cz*VTjfwTyqStvHc!V3&QbN)j=6~mGu2f}&h@J5Gv z35WZ(ZVHEmGZzBE^wtgz{g4Vw!{oj3qZ_u*_2Eu}(bkzh_j@HkSOM<3q_3~ozgYX; zctgk%DW$222Vl|mw5A%Mp>zQ3+y#hIGX{G=)>akT!lzUG3UoCoBqr;5-h|V}emR(} zWQv?L70)r({*NmFxJj|BBgx6hP8$)7=YU3k-hSd6_YcJ9jQxE-Ld}*uN@6J`{Ngr& z6bXA;6yHYy5gJ({wyu*ah%CNMd)~$IyBWDal5dtQs1^omFl$sARx*!KCslp2~jBS*jyAH?g0c~^hnCoBp95u`}-)=-9G5B!o zMa5PPP)JK`qEp=8&t-hlQv|%>?l19*Net^QEkKLaKii_hxRXLwoe1d40n+$p^Jc8+ zNGh9_wzm4`&!~TPe)OzN*1qHaojo*vvszMC7WsuUeNRJ0q~SA7U@2oQI>yMK+R;XO z%}|Yj3e)`#?^zF&H_~vTXSaA6zU{J9f0PyWujgOs**suTwX`LtrI=seJ$}hVTvs5{ z)VjcKhQ@f%Z}SG<>YZbm4&ad}}?$gdnDym(LG0P?Wi+AErgeiRFIN%q}8A zcr6$RNV8&T42))RNzwfUhJGhf8hilY zaA2c5?U$B7oHylI%2`S)D*>!Q|Nfq{#&~}|W6bzLxKO8ZpUVGp*k!}qqr)D>PO*O% zW=8BKcB%LNPzjviMXRO7bx2@71;-*t(p%I}<6yDWHjcjQ#J)XW-}2YxKvs%bhLzIm z{I;+4+Z;TGnXn=U_uWM&X6}gXZzNxzF2M9C%2N*6pPru|#K6_d6X7Q5x``1qhg|MK z>q9!9K0(?ci9!KV=u^MyS$U_-RIXH4s!RLD3IaDfuGmn|(b75n;DHW9a77z>(~_8H z0(6$k9ZP&#w&-_o-b!to^k4o2t()*=h9pHB8(Sj2Z(6J9e=riPf|s)mT%?3#3KGOR zEDJfVs3kb^5+U3MeTAol_&85?Jnod8DyCPTB9-1DC#P-Zh{jGN^=~F1RORHE&u;FI zLd-{+FDI3}wlgfbd6K4Z7{3GFPAaQj54p#3x0?UGCeTbV#mjHM`0H|SikX%5?~fqN z4WKb|Gg(u0{pI=Oh1>M+y_DJ=K*UB5myc6lX9AcfD=TZ@I>z^}iPkqYUqslW#9_HU z0iew50}^-6NMTh^^H6~m&!Ctre$dj}r4H8XS>Gwrju+!N3-K4X7O`KO{(cip`80;L z9REs!v6?@h(=IsK0_acn{-C@nxEcuI#9-BQjGCT!P=Kw>a%Cu6KogIMt5OZe+0f{S z6(Oxg`Fv8A4aNTw#dOW*)}zU9$Bx2?L6Yc-1@#rlkV$TWQR6P?)xo@mwfy=I4+5Eb&O9=z?coCD*8R z3EG?%F5cgldHOx=7c`duSwyccQ6f z%uYjc;0cmlnTWA00oOgR9aq%_WK3pO>U>)wDJqoi(MeRJ>ZLx9IHAzCHc;3m5KXd^eIfV9q@#XzmS9}3lk`QveLT|Utz7r z)`z-TgQIv;KCGX40u4sXK*MAPuNol2%o%yJg^{@+18$PxoF1?h1N3IzG|qWFgwO?O za@73vDU~=FrUTj1)YTm%w#@GSJCp=S<{KRT3$CF&^P3M2&^-pA7ys68=+9fjF$-9Y z$!pCL)h);f`@v-XQjLl9wO&omu)E{3K>K=Co=+IS`Hr7^my}uU%?{^lwX`vRe{JyA zm+$4|R`M!pC7n`AFXH$j;)Ynz@Gv~Btt^(}ynip;V&}M@uFSy0~{XS9Vz)n|0%2LFQ#KKbShKKz1GaL>z(>u0J@6`ti2rG|kzcP?Wx9#O33(OYz zM<9YH%NOA?G(bnN7)LYZ{(SCvNp69Q61}^-dva|UxF7BV9TpOxD`1t8iB&7@`!+L8`X08Wm>@&%&o2wV z3u^pv=e>~8MkcwY5x}_x?0eFf%7FYTHQ!ltett1e9t&}p;rISjPG7@{H&tJwJo3!J zN@qf&h%4Dis6E$Rk0>hs7pQbMGNU-w6DRQ87HNO}uNNRA-T1wRz#rwQTyyi!=xB%; zxTD1Y1c#sza@);wMn*+FkmcJ>2|WlwQT(4e#c18jUg zmrsUIxBQTik$)&HrPkOAbhbTl%VrSQ+u_Ul_=o~-j~U5@V5hm*fD|OErvTld-39J4u?FQeZq@+q4@^Nu-2Zx4AFFo9ke9ng$ zi~V%!kEa1`cNCDuK9(mLvs^SD!J5)y$%Ru%U0|(_jtxol!$xTC&M?oQ39HLra8M7; zKYMNnNJw*@1kQ#BR&@(CA~Ixst<3X>s`!FpXRcH&Ut{{vl%xbJ<+4F&fxVy0*d6n5 z+)E1=?D~)Ku|v=(j}o;+uR2Fv$MGiV6?50k)3^>;6H1=AoBK&u3Jgsb4ukV` z$lc{ymO+_}GTmSCYp_v+)xG5C+j50E(DWFJxZ@L{#>WpoRiPRmBZWvwT3ImxO{KuI zNlHsokdZ+EtT-82*@TpozI^Gh!PrThnF1to5fB|U_5Ts|6;M@e;nswNAfSeeaF`j625la`Bvf_Fn6Y`OP_3$Jl^S0)o+4 z`ZiE^P_nR0)RanEC``Ylc&Xog*^6BW_I$cOo0Jng^KyG0YbKzO(nND`084;DR6_47 z>1IU;e%GOU(LHr{9#&{ZaO}wIyBtEr6S`RzN1>8reQca7ugSDmoZWVS=xpdxs6>N` z&$sp=-hRx~V>iud&-td=+}VT5-!R2Y61N1S!*YAJ2hHvU_NE4qd!wVH4=N)5Sk$ld zvi~sBt$UqlF8lTCS1#*+pBf{nEh-^bN>jG0cd$2oH2bg8T08=Gzi7&=Lb9s9=YZ-o zyvUeqhGfl#`Qfn4c8-3o1{I?ey;7qr$oE~~@==H!I^3-4+xHtdnR9`vkBait=<+!z zsMpJifo9=ZkM3kDHNlGroCrfMjz>#EpFTmsHfe{d;Qd@S+_sPR(RqF?PJr8$<>!@y zB%h@cEYK4eOAe$ry9ELRBJ_(9tWmb*$>J{htZ-JPMuvWMatM8Wy3(4$pw(3Ac4JwAO&Booq@FPQ#R0Oc5)*^KaL`u^URzI3FZ|%A zbWYB=ac=)cw@JMovwjv5BAq8@bEhsJ39T>GNiatAPZ&4}PA?gC^<=rzQ0c7AF}uJ7 zX=#FsWHT4~n_5*#8jR#k7CnlNeODuw%WK(DY1=Yvx$}2o805wo6Y06RghJ?h zY$h0RVjSle7gZnZY}7*0kFc-l(xlYYar+{PC@CoXW3Q>NRQm9&8lud4N3YG5jjFi! zt;gObvsrcyC{mgoQ80$K^Qbi5{tJpC3ktI?BdOE7Ly}9z6BDa4F|bytmem@F#8Tz+ zp|zs^_UJ4i8U1tGnNXp>&ytml>xj@p3fC$wR{ZVs=casPzgo{)MiOi*vz%%8x5dbM zlaaiM?3?tp3&bm~MyOws$-mbnq8}M5g?yi_qf^qkNd05$GZ!2UWeqAl)69EA(vqm-5bZeCX4y>>$>ZrqN14!X6SI^ z^%NhAqgWY`#Fv$M@=w}((woLsiWd}b_G;gX>l}x--G|lRh={#<^~yPZ_capId3WL~ zc=)&2*y5A0yJZZAK>cV8V8)<&YdkqeUDs8tL z$f$%Z=uGVviyXc=DUHA5gcV3J3!R-+Fl`n>2rznjwO;EoAh91y46H*9Y$r|a+mlm# zWWM~Jb?JPIj4$h>nKM#To>@kP)?sLPnlR>e&y?qZ1bdH0OhJ*iaG{$r>briLum8)o# zoPYi6r@vCVzIsm@cIxpVP)V1{sq!O=)OblR>K;VeRX-d z6!Z6&JT9l@@a#VAoya0otjeqW$Gb{f}1f4wum3-X<=c>gu2I`jeO#@VUMQ=ZU zsc2kqk5Cbrs8C^*z>yp33#EzY_bj zeA-y3&`a+=wGJGXudc4ow$$t+`hN(Lg@)7S&-nY~9zD~x{X4nL z$9F5D3&_a@I^sKKDqE} zlib75j=t-hI&5=8-ur&0QT0-sFvBMML-7(v)#e%6>V680=U5vT0xv2nG`1kONoRV^~)4v#>C_U*U%x1#ld15m2gTCJvgJ{|Pp z6b47Am&F5sJ5JiEqGtF0@Y7rT_k+^WX4e%;kEEC8>^2w~e(XmQp;YlaDhl{nDTMs4 zQyxUZ;SOxL;d3M9*3cb0$#sV-6xqLjw3`XXF+1p#JtKK%bp^Oq?_Igt+GU<2zrOd3e#GR&fQK{xXktrSxkXS+pFK8=>QsH zZ>CVJZsStylCdVUDcp~8ZGjiNV?UU1ta;MN$;p4EriN)(NR&)xtCYB$=e>8?ZG6A? zKH<-e(Q}sas&;uA45rk}416i6m;871*Wqu2f+MIMs?czlyrW=wey}7Jw=zV>#FSX< z>TMoBK`}WDPBmf41{5h4oCAgNv}aEprlRWPuCYgcKF@(YPex#=-j5$ZLx)U#tT#0fetB=ULMQEtWJ*@h zGL5rIQ@sd1S=wq+nLu&(qdL)ug@_f|N1pu4Gt=_*b+UlT7BM?nd_kWP%L}Q@PhW_O zq2hFGl(NYuo|@M2rH}fP!dTVlRVwI=oJwQ97LikPCH8*7efJi3!_NGhs54Ie>Xd)Y z2crST{t8FcuxMtL@{v^7pr9~fCaS+i%YF_Wm-~wl8gQ66SvK+8TomDgNf+M>SQwZF zm;RAGVS75Q>e!MBDS*{+h>DB8&5IO%S9sRATzpQeJowc{(6Uz!N6xfBDI%YUo}Er3 zOMBt_6s|*SP?4SD{L|kOCq~z+YmWl>q+~nhQ8$a8sm8M#ZuN|!q6p?HW)LVUHpGl+ zJNUUb^m=vTa(_SA42@|(MmS#hmlhvyd&20;iy}IjzK=bZiRF`q$cV-L#=^sso@LNt zbbX`s&9wN3@{`J4!_+}k}wQej_fHLXScSS10D-f0Eo_YAMrX29HEUM;=s zrovz+ED7+qQjSuOr0EC6B-)7dAJ@Sgyq{-~N1H)&fT!3`n3}3OI!;mkN;J4mrvh#* zUc>5aD>yuOd+E;3fucl)zd)cHUDJH)L8zDL8D%!SG^ccPyR%(Lf(lPjRc8LZgQhvY zh~)=icTM-A&4e5=TCz>r^C#j>w3mQG@fn4gGu!pmOtRPyo^?s!GJ`h!xr0zP@SuJr z#eFNcwm4a)B2(0fIz{;4b<3&ASsn5ImqY0)xG;G5K(_!L=?@MnF=iJQR)JFtPN6E| zy?FosIyT|-2@W|`t0RP(f{K3}v}~`U%TbVR(*OStKO6isQ}wJkSZKCfe3ch1BL2Ux zUI|%4&BQH*!9rG?Hx3M8VZ%M7e0-^05~!2JZ9R^G-BHJYi4n!=IM}PtYaweFfw5}KOeVY56#$ARnA-Bg!l58NQ>t)RLxsd>r#?k zF#a)nGce(HEV)M+*@Eol;ZY$*slJhHa? zgI-W?{{2v*yIfBVR!w#F-fD&5z`y{auQxFw-_?}j<;mpYDTje6LP6IzhU0X%lOm?m zPJd+SZ6}>jtZ5Q5vQ2)D6cmvxpTd4B+Y4J8o^3ZN@g1pd+ME;6l^TGewp6n&`tM(P z78Vv9r(G^mQqsMp#+m{dF@w#`&2MdbF5y3G=gom^J_v!(J+pJuv<^2-whv&VP;+e_ zyo_!CNMXzI1AC8?@rHZ8_W!U14>pu zr&W*lb?V{5S^uUUfUbzev`WHdDj<{L@HsR2DiTvt1}5aUDh>L92ho_n$=(9A?ogMe51mv(~_W+P3@(lVMLB zF^ueE;AE_y65j>)B!P1~tSRK5q2HpnHxxV?;hR5Y^~-|DS&()dh31D`muW4eg;`n4|D6i`9g{YRXJtPkPyG9I=xYb@xN zO?MxmfV`B;@d$@=$y$WlC53{c%d{>!DQRHFLIXm=N#e936bVG>v83^78Zq5Fym&&%(k~jB=;qL-82e1Qn-q$D~fH zSAwYc{T=(5-0oW^p%b#Q5&n|zyw(ouL>Q!=+T>MvRDTZW3m3^}M@|d{q=gM*iGtOm zuTLHo74>+vs{_{SOw9Ac%Bsn1Tbf)rXxqOQ>30R7ymyE%1Am(PryGXPJn>`7q)t6n zDo=HLa$*Ab4G{GYjApsrobbIYU6?P_1{0d_LnUCGO($0X1VnJI*@=1=1-j=GiSdHfc%WCM?$hfTPdj8F zT^&uO*4yfL_~{Qfkrzr!u6uV*=6*k*L#NI6tKs%L)b$Z}-`$0w`tPv9>)UPbudjiz z0Q)$zx@GfKO6ZKNeeHELuDvgD*4M`JtEP!YmN2p2uY}D*9%ObOK79B$*wpai^WXv| z4L~vcikOVdkGp2qde!5`<(w-`mc!DX9{XWr!DqYSF%J9uo<aSf$;I3?!}+lJVAu>uRUf z6{L&iNqkfZYCqX5`Ph&Wv(<8sqLu_$WbC8eY1K(YWIK;n7Sl!TS zR`#};=b*kSZtjieWU2NIou52DUGAMxJUx_U%bmv2sZ|nrhlP>$uAC9Hx|L;my(j}w z{VCMe_BX&iu12#BZUj{F@va zTFUj>6aug4>{gKj+X>!D?S=ijv<#~ptwlNJlr%z@)+np}2@$@VBS)y~6Mnfac;xwd zMm%q$jQL)p41)9f$H(2c=zlQWpMmyQRSG?utL>Gw%b)Ip5(n)T@UWd_znVVcXv0_%ko|N4-@_g=iA|~ z+$$Nor;{Y`wLHWl3HkXfzNE9wv;WNcnvE)daUV9@I&r!hP%o0LylqEhhc|zcFlN>M zq;kOdsSlNafB!1&(H*a`5qsfxC{3K_mp(3SuaP=Fc_E+hi`|i0tBQ)sh=YiPyvo0$ z!%6Kn{~~RE1~$Ku^y@(V<8fo5*Z*rrCO!2l&65v;r~dgC=KYNo42bRo+XF@Im6tU_ z={&slLE8fbJZB>dn=RK1mK^R*8g&MYGxB>u7z0brU9&B>U*E&P#FpM2P|c#5OIce( z!Hewo1Vs7Q`GKnG1Ib^Sg+Mh|seAmYTWRkCq!ENZ~hfY;3Uvi0SR_mLS&P zu{{s}c^utrlY<$DdwrJh2avpF(*(99n}LQ_>S^Zi%Dwga5NWYk>c5Oa&26t9N12(e zt9s*NO9YI%B>W9%q}%Ze%}zfX7Y0mCshu=Cy=!&l+*lYz`FxBit(%nw`(US5v*TNZ zL0H~lTwCL@_|4XquI0ID=x^-cPaQb;;)WB~1R=XGrgQ~z&DhrEMWu$bFOaUct4O_fasaUo?{tUQ5vN zT)*2*-)(z1Etz&TU?5uR$`pJ#uTi~|+GsOmNXSys2@ZQh&cgDm{dt&nyX?W^lzRco zZH1H+CO8~rXH3w}WVXD8v%G23K!Iwlgk1y#Z+x&%$G{>RrxNM|TZeX-Q8H7B2Cz7( zaKH47p>q7gg9YN|x5QhJ-x`$d=; z_t<`aB2$ylYD-$$tQ$=*m7H=>>gEK+<+<_Le8E1N&;+HmT%-i$Q&H)QND5qlUKazY zFL)gwL-sxm1q$!Ks#(Z#avyF4HY#@m;VLaaQyFp{JRbs*77Hy4UEHe@@9K8*1^T31s z+i1sku{sY}r`m1`4lS6UqeVT11VD`Y8R-9micQlrN?-q3ITqj7A2|lfY^$g_S|^jm zVeIc>z`fRt2mMTL#Qo^j05zg-_pg-Mx0#OgCM*`}oJ|hRYu|AB^Ra}4XinP9$WRNs zCrP4yp?3~VHoG{qkc)|-ew4e1jv4Uzn)itybL;9u`P}%8AkLpD>h?f z_qPt(bqi4NsHTJGj4y^a6**7QXvAd_WP}1WNww+Wn(b~JTQy^-amhb7hVB{@d1m3G z$)gf70tKYx)QoZbdpo5+hK3Ed2M_8UxU(N&@}i~x+Q=abLVQh1N*=U&^XxhPGd`+F z`u=)^`3xPPWR4HIs7g0RwuBv=2h`|4ezrgeIB z(WkFJB!x=OCzV;kmRH+zqHJgpy@1XVDWp_?8&h*Bkp~n2psGewz#JGE604XclOp{X zv;Q@eoXoE0YtsACS!W(9*2jaDb16tOyR#Zj6|%M67@$WXd2VV%1pcbDG)MT* zCo8Ak?)k*!uC{{F^~K|$9Y6rl$;nbF92Wo8>!8`mAG8(EiRuY`f6-4CscDYE-w|L*y@@-E0LtnU_JlAA)6|D+H}6wpKCSj^x5 zK(XPX0Mshi>*X1k!UX`@{WzFZf=ucRc+b#)$gtjYSPs0~2#o90m7tYz+zqH6ypx%9 zVW6SQ7dHVBdSMVG-GQwXp}|JGaSK(#&Jn?V@Wpt{zaHGPoz?`tw8$!K~#U8UDT{P>bsja=`+qw|MoQ5+6u zK)3w{xb+RuRqa&SQPLw3xzDCI4S?HMVGED!`t1!rVY%R@&x$G?W=2Q z_UEc7Lb2(8{9EgAn8=^p-vSRM9q>b*IElO-nSn>(dq8{qNK1=cGd~O{mV-eUWQcFx zl*T!hxUK+GGsapI)<36BXao!0!%3~C%K6e_V!IEkzw?&CE@%u?kCUQ^IYMe-mf46OdieLw)!D!PpJm;m?tmCzdCyq{kR&0o-mkU~R4 zzrp817eYrwK{5E_4PC0;nhde4F&K(J1ExFEpPhmy&}iz^N0v8F#dBtqoF8r10MN1R zhbGWaXn~kKfuB7vzTF~(DF%6r@q)L+ss(vfo=>j!JOt`x*C8xN5FfF*s$G|h zFL0pWCIgrPSR3`S277ya4BaK(u{FD zgg7{Ahm4mHpSr_}b^x$AHWRdJkNsQk;?F?@#Om*hzbzow4g$&qSQ6?M?JTx-a(A&W z^VrSnV}iQCU6H76i&RpXdnkd?XsN;Gea{+?=`E^)E$L?t{A_=q5laZIuNa*Jfs34$ zwq(Yj1et+1r+iEP@E3`QT7xwS*sM3X-^x@7-Hw<67eE|*AUA*qfZ?q;`m0w$pK``y z)gwBOr)|hWNPUUH@{*^*EY)m$8!oPx_2w$+p8UuB`dM`!&7oiQHu&|D>3Ehkum^|U z$?*w+<{VJ@3IOfUbN}S|KnW9JW7*?oIoUGEjcb)EO|ChUwGGLf=iql z^wY)^10haGAf3r46&7J`@;CiKZ}=U!so?&Xyz43l>*&`nv_#T0IJJ?lZAGL>`#lnVH0YuFgkCMy?jE=>~wy zC%4NvIhblGU`CM#1HZVya6HZpd!9SsjrrG@4fJMEfn6P7qyolbpzD~L`=PpgAzop% zq3D5pk@BevH zz>C%Ar)&W_1p)#Eg5!AaO8w%5gco~^&f#ZIPtVp%QP(a5iz#S`HVhCunKG!_5J~$|1MxWvbx0WVEp4 zsNx}@e(|_asTk?dWTk~0Ficv2`)CW`%6lGaUBf>EmqzFYAQ9p-p&VX+AOw5oo!cGzO;gyZIjSYiQH4MZ{Xjme z^m=eKZ*0Ugu7j$zSd140V$y6pM~L#WI|z^4W&@vugd`~Y^J<%iiPxB^T)H4OD(o7# zr=UMZCm=Xh!~-GLXuev}o1h;y!fxly+;OE|kBy!lW^UdUB@@%HtHasZbX$sson$i{ z7JUKh&XUJf_X~8+WwuC>!17&yU_d(j-DgjrT?P|L=u?Khkv~FCIbW%7O@=I%T>3OY zrj#v^O#_*Xgoh_tEEKy6u*J%o4vKN{9Nn&uNH{p+Q3-hdmZ&m6zNeEG;ooOQj( zY238VIP|n@@Zjz?inrlv+lgl65XDzt0{vK%Qvg?}`eG*q+w<{Eg2#UEQv!n)*UdGH zx$K1AChyd329I&QtJPPBvc^|FOCg5>j z37p};EYp`59Up%f?Eb#LSt20yJGIg^Fiojen~Qb1QFyfjL>nT7gBW4~+%r{{QX~*H z4@7H+;u=A)%m520W}q7+A$1xLU;u2?jaPPct(m3EW&wv_{)Xz zB~8-Hi90+Bem4-+b{o=?@_Vqq6)~CUu4iU9od%(VqyKa!b-5*aw$&StaPjYaSP95%}#575iNx5MYDOk)6Aw@RPhyRCkg3A zv$@!K_ABcgdxIO&Ub|ac;BoLpS(o{=yh=J zj^wLD(`%9(C7PXM0STN85!wKX0Y6^)6{Pnr2AL(eXQbqy*kX_OKOiE1bE&e(@ zC^($tGnUd9@WPY8)#b83iTp$La^nWLqe;dQXB#O2LzaHwn>F z;XDOvrPACj;zVUY#$=JV^CTNgR61Z-;XVM6RRXy zBrWF|s)Gaa|64)a8}qlHKDBB#Q3X$54_vC|C(tPVK85ytI#va?6~R=&LB1Kh{Lbb) zvw|lr7qVjs8^Fzu&!o+InZB!Ez%9U|{rEb!k#hZ$OU`MNj~@=3H9DlRi36(K(0O4; zM-GX|;-FyWY6EFP+!5;RtGc7InnWRK?i}ZlWcE~nj1iHFr3k9V(Q+y&#ONSmsms>& zkB%>otkMZ|+b7Mm00_Lu9IZVN%!u>boV|LZ8bOMO&NGF)PJ0CdwG5W1t+tv zF!pKd`+-a$*w;v=U{kh+sh8zxHH$_Ny#%g$@_x2Gcf%L-O#N14$ZR@A^#^NlORgD^ zN&om~DOnZvXTrLhdaWZMyZp<-j1;QZeUbzXbZ2GO>UiP$r*uzOmd}~Uj?02JHa6XT zJ7+-+q;0-*iVa)uM zX0hahK^4)?DwOzAN(#L;~IuGHhAASa9SmWF|fs|d0=Ldkn9O}1qBBSy?-k#8k@cr zL`B$eh${EIfXe`*Y97_K{t41LBN)~s0i1Byux7OjFHV;uWhk%gTTMV4=TZ={B(YD> z7R!MsM)PvSvSE(&=?W--13*z<(#i8*Q3{k9hNG$bXU_}f9LaKN>NFX|h*WV>a|$yXULuSF)6JTCToZTk*LCL}Jn8vgv#Sg$g;h=R=G>$tVsl z&#GCoE)^ztD!NVNk^%#jPN&)*S2xv<*LvPN*0@e9cs|upgyW*>1A$*U&oU7mWKs0? zzQxDa+|>2BX-bSHU$^E04v(9l49A1+4;@Mm&PTA#dSAd93>O>rBFJ zQ*!r=avY~T4Eb!AQWjKfc~WOME<24;ZsXx=B!}z?B&u4{SFbaDK*_=atgk8zXn;Ff z@OF)CJaPg?C>>WfDF`rz9YJ5J<@Kw{5X;>^nn8b*_9+nWraspLrH?Oj>FJHOewSl1See|9Qb{n6LBajD+MA8BYbcD@@@Aw}TCII&b` zrh1B3^r}on8Wg>tTA{-H0NT*(oE$KKFOEToU$&IM$`nTz6CGf`Jh0}fOq7{3S4nk5 z$R^jVQhSV-z!ZbXs(}*n@%9X~Rxs8TNRML{pdYZylp=Ymozy=3dwlRPTyxdNaFP3$K#;d)9lS0TD-;vQAZ?a z988bRrij2yYYVhNc~+|!T%g-uv-X}wvfIrEqMqR~!2(wO&s=?x8NgaE5=;@=7fVo< z7{BOTI`+&o@nwKo9pUV(V>tDU7bpp;J6&l^$pG2_rVJU|X@Ce0v7`h|I9P~NrtARN zpjOQPn=APav~?n&h;RlPN@t+rbOyqhr>cEz8d{0m=UBp5ht zxsBGEODZWTHM(-N@kgVl{bczpj6vSCVKz-FftGfC*g`GObWoHJh|B=n5N@UR_N_7QRph?%RW=iA9k9zm9gPGNv?hXs!`y`w;U$;fjHi1$l&=rznjjcGk>#a zss7ts(p(dN+?5{`pqoG(ynRNkDCxDOP@QubOYmyh>$@OmxEZvXZ%bsUv$L~9!nsg@ z8l7ROAuDPitO7c>?HUvq7e7UV$4ltG zCKNB5ew0k|ox^WDNbg9kl!G=(AqrHc-)rVUU%dr(0G-+V+at$ocB|28AD_aQXh2$r z0<2umKCPbK9+s=3B)Z4j_F-3c+_G!o(v=)Eu}UK=Y)F%Sza}K-8Y>VI6od$_5pf1? zwoniN55q_EDb{l2_B>hzU8epUQARQ!t-0`PO{Y`XbtrYY?skWh{X_KslQx2xz?Z!wGQFT8$MY+9%8>*oi7OTY}g)10Hm zUtT#@&@+nup>rD=pMOVK-Xe(M)sLw0Lmn@+!{q(M^mJKQ zSDuTV5i$XRm73ZC`XlIb2os@c#AhCnRfHut$?#-ib5W-(~$ zuqv5etqj{-h1ORwv)}l8S25PnT-yj^lB@k`M~A8oh1nv9Y$~q=+b>=FD+Q41!G;Gs z=B$}Qn>hlAwS0_3Byd50RF?k~Ph5FhT+%?ZO><2&C#RR~G-Rt(c-S2bnj=A(rWZx* z;ZTF;2RObvXL8(d-(aV}8i&BoAo?-kyeWiH0=%;5#Kg}r`Co#9f(jKf@VRY&&dqTo zju3}1Fs3aQ(gMq=2sk_XbUb|g0Wi;X7-&U*)(nM(fAf7OjM3#j$;^0y98;^ZT$s@a z;MI#x=0+e`bocbcsdMB>+z_?^ZU2#Avy99eyVcYoUaNM$$$fGLh6q3lcGde1 zC$x6j{;~tQ*H>_G<26QdY^Er8cXwdpjp@^R{j0CI=YJ4bYt>cNNN+MuSumKA^hQJ) z*ya!AZb@RL*N7c-)9WDUHpQZv_Ev|cp`c=v`Fx>ugG{7Emd~-h>~!W{x_InZYRC%+ zJ|mR$3S9X1rY^Xk_pA7ne@=Ns<5uNcT_BrJNOF@AsbqT^5b%=)oRkB^3njy<7{Iwj z48&t#90)-WEOpfe>VFptXIb-a#SVHSU&R-?UG9woEBDgQYIcJ|Mh!_Y{!Ach$!I3@ zNZlz@|52lEGk2WI=NLP-;+BAL+MbdBCHX$@6o|^hv&E2Q1@6cL$5Kg1`0#&JH4my8 z=em5gOXjeUa(3o|_wxbl%8Rrvp@`*(Z#g8B-@ls}egvV9^uqjO@W>&6pR|yD5xcdcdV(4))n>}OeM*kxaOXvlEm}70Uz8M zZ%Ec7)&05atd>aY$Vf{Y3c76XSG(1tHVlWUMk9Z~={(I5&>)UsZ$KuRpa28q9SWe{ z0C^258QFY;4H@Wg3&7zF0LqL9iO25o)&?|5T$i&XJetcsm48Dvky<;)+V1zS9`(Xe>19+6n*##-;gDJ9}@++eh1~n$e$i* zQ=M~lS8<8Jgb+wWfbrB;`^ys}tKl#)14B92sO)-h#X{YoVswmEc^n5cuuUG6Kz={L zLE>|1w>wv>_krlqF1mlu_}tDeX!6j-5O_y~AY<3rj#A2|_W#qB4vJJf>#-#x8jci0CkLRd(M+Lw*+-By zL3$nAsAV^42Gn}6x4oYpR=@wvl&e$^PaJ{6#7^(~-oF9#c=?J2B_=D6Jg5ZsQL<_9 zvv`a@D{R4;K2Zq;BRkIziit0yAxNazS1Nx)@PzGBzodOw~>BI*ChsU0(s;UYU zT_BR|*)3*eWz||PCtEHz0aBC~z*YT53^)Jyz(TZjd-gn_PTNd&@p$A4L?ikLsE%NU z$rD;s5>edZShroI7?(<(1?B%XmIe_Ck(7p}c*+t5piM!zucy3`6I_P}DmisE zHJkupzgdUgo}RO@q%hn4-60&TxB*4HGklMSOW=m4y}s7rr$*=RewSw^?4wTb$=aG& z-GZ1#87le}ya-5y?ctNuOlwVjrc>oZnHr+Dn)n~!;P`GHFP5w~QF03kfThj{TsGsi zZ{5uwU5nXGK_E$Dwu2wzdwL@h@J1+B6eQ0%un{C83B`((qSMkwz?~dbHEYuYjT4|M z`%+{u==T32`574aju1oE*x0x%6=)6|8 zo9|EcGVv^>slsEBORrD8{Az2tx3(Vr<~2VlC=mMl?=s^8qIN_2Yi{lr>ysr6z|zX+ ziF|K5U3~c!?`!aj`}(Mj)A_EBm+j>q(bg8e?rB?Vy2ar2$>I=*9CM9klmI#3KCIJ; zx#{}o*|Lqz1I|qWsX5yzVcf-rQ*cD^4tUo38Drv@Vt_}+<#2!r z0?yu^F$^rMmKl68tm#ra`!VeelezpavtBoY04=~wPQof@R`q`?@BNkH%!eeTq+BXf zK{#hZJdGnLjKL~X;9sKAoO0|Rl3OChf=@m$6tsqEbjo1nKB?V)<(O_p8ZQqQBVQhO1*u|@n(SY1EyM95&NO|L zYB0Ru@g|iqdK3ndJP zGlGIPeiF<`{gU&s-dpMywE)9|Y&^CnV+yIpXHYZO8jo)bo=pLQLM)h$%+%4b)CDbh z0haf^hvC?k>a3u682);Q9gGT{&bp*s4i!e2#s{-m-o6gxw=XRV1$*r3pGvOJHF z)iZpsQS*lCv_Lzm%7kP8M|-B6U!+z5w@l^mTY678gPMeRxXN202NJ@~kx6+(g9FOKgu~Xh+;)rURrw5U&2R6(@D=@_2bW~dzJ(dMog^H{o%Op@^~?d)hNPl z)gwkrV^u5LX_|ADPZW@fKAU6+*OxCp3hdHr)PgRdeLp%HhV-#**9l;LGJsSMp`y;M zbu0l8ozdY$CP*FSlb#w5(e?3=TO=RS#g5AxUN1y>IP~{;5^BbYMjWMJSODN?&}O2) ze=nh{OH!s$_wg!O=~BUUG=p~x96DyQ+SYoCqGA^TkK$S|bvkv%h(23t;NPne_wJ)9 zb$@D<~ZSVgg($!K^6zYY`uFuWZ4)g2}qrU;q;B+c(XO)-G15mpwjSjH#-~ zq;Y~nP~!fh9Vm$Br*CrXEa?~m`6SHu+aTmKo+yl{t?k`LPbJ++kJf85%hqj`^!w6F z(co`C`eIqvq`;6cC_FUJL&^;(y`CJOUcf+m&YXh|8`jqvOpr_2EGH6~C6kE%j|;H2 z_8m;8HP;DqxVgFUxi?t$qBSTUmK^0pF^wXL3_2d~YQsV|HFZgHdc%K!ZnCAEmWmX~ zOekIMm?jnp#t+buLd6Ou$1`4b3_57O#)ityQoadjeJfli?09;Q_Jx->Xps zGrw{FJ;XOim*1=uFoS0#6#xC}GQYc0wS3wm3qZw_%KZ2XoXN+!)r%fqL6fa|s>>kv zoxY7iKWVK|Z74-5&;fIU*Q&BqjPD3qk6^7nJa(?gIW_88}XMfYV&OJ==z zKiA5c=;Y)%_|^)|!TG?oy0Ka;agD+u*lm8{jE+t0o~)2D0#xQw9>*}tvoomS<@(4Y zm4PKeD?*R^>!LFkdALHv*C-_9Qw{`@(W1_xTttk|iJ;&C`{C}QLh#P^E&*~79q9V2 zz@osWR~Jnv*K${XS4HzpCprG$?uK^q1_~@7irr_)n{NdRxSrt?5;hhIWfX+y!6~+3I|@E18n(oNIE8EKAXXIYD`$-L|B~Nv+i8%D*>-7DiI2EJ29GE@Dj z>F&%LAOm=GClIem)1D=t*iS}H$9d(~@h4K__l2CH0GZW^wBKz5u0;SHnIb_tzt&L0 zVh(8z4u?C=J(Y)lAMK{#%M%)71bu6H8nFuDE>1Rb7Fb$Mj>l4fh7ca0Q~%iF502ci zdw%3*VYS2P5ys^tlmX^XCSWq_&np?bWX8X`gUj0ssV7*Ma}BI*V(d-DenRjLkM|efYFa1KNP4i(+NOG z_8&W6I4<8t`~7%dLV0{!wb|X%S7oz_yVJH3oBkwM^RMf*14k^Y$pkrYHWC#VhX)2I zfMOa)FX)9fWx3{L&@8GX4x$W1W9|9$Fy7|jR;z9izV#Xv)o?kV2#3cSJwwNdfWEWq z+l7}K*X5?1ajevd`BcziQ#0S_hmY@uCMV|sHm|Fz`@W2^?de*h$#Gu_oT3Mc5(k%F z2Of}7j3@I^o*r%h3Igofzsy>$jI~@TYg^6cl}Pd`pHN}oeC`S;zuFTw-i?lm5(1oU z+EnzdX966Y{-6j5fi4r+#}ZmKRW$L6vdR_^)C@%Q=;wfe?vgp|tXx=T-q zOXx;amkk#%9Mnq1maN+eMcTmBNYpXEqvH1=Y{IbO&A@vdk{-tbU48s^!?cZEv{@!o zd86Max8bbu)_TcK;)}u^OJW%px7}HwM+O*3ahVf1?XU%$y900tFq8r#LP)+3Bh)(k z*p}c6$oIgQ^AE7YQKUQuQ8;8gM*{GufeZ1@#h4)Djb8n{`I7ArJ?Neh0=qz=EadOt zl5%RBb0muazU9T6qB1}~i`f~_8JW!i$qEdn=jzTgz@j}4RsOE}(54_dGC$|gERwJK7-3s(K+7Kc(B5b@mfPcCCp%<}wovFV{nfm(V zm_Yb_TLQgC0At%DjN8poT}#9xUZi+tjKk>)0Wx;GuTgvp5-`XbK3c{@yFS3G9bTzs z3A;ODUAkDa-`7jTaYqCF6kn75zHi7mk|vnNa=9K+2|R5nf^0|(6u*FfFb2k=$mhF({)F)bgpGkWz}}R`{k6{ydwv`R_T#ntV>Te$je= zB#BDEd9eNQPgN3E?J2pt0LHYkNY{g0fJ4L?d8s_7))l^3nTd+X%EOCxATom$ zio&bvUYl9X)k}G62odnPu>8>=64dP*)qeuF9J6#C(UN0>h+c=fg&%z0E`;) zUfUV^wDl%kaQk$w3Kq|Ik9jmPG4VIY4ej!9cFe2!or^2*Rr;#<)odw}tl%4}Yua6x<3{)E zT=D`@d$~$$WuZUeMkny{E*tRD4^kG`3z(^sbO^w#A@Y_B~iRSuZ^|b-i|Iy2|kbbX8Hiz%f5TjTLPnc-Zv92}kCs z88LnqlyVydITFl=Q4-eRhV~x0sa@Z*08Sebn!qiw-s06`Ft z%@7C&l6hSa(`Uwb!!}iJDv+gP@299KC@B!`$4$z}0;)>k`a+}?Y_stV@{|kdoH{qJ zI}PhQ4BvgPdF@Sn6%_w4Gr&j4xHL`Z>_IBpm?Fdfc*=1km8M`kiR7WKQlT9lGMP75 z?bo;2xnd!>zGlU{ZtG@a{6dJoaP2bU{^aS|_A>L@d&+4K9KF^Bki4}s=f5DbgAw-M_ECUjKu#rV&}0C$IE+=>-A4d| z2Lre$69{3bsHpw`U?2>*;(Z5axdILc<3FIG-UOo|wQBv~_KUJ{Pl)$ts(=UXZU!Se zcLg8=fwP4AawTJcVJI%}c!j6e_OHrFH(0pF20n$FUP-QQAUtRVEp}>+(G2s z^-b=X$O5FK2m(Ru@hU_P=pvIMNEbB9AczO>E-^{T*VWb4)mmL@xo+5Oe^mw05ocbEU;zs&08me6hZac_CBa2CUmt^AnV->^UQ*GBtEywi4qOQ# zPAQ-qf+HK-_XVn{eF1SgbsooqpxFP%+*^i4)qQWkLyJgB2`XiQD5#W#bSO$YAPp+1 zARq%shlEHeB1osiP)drF0Z8Z29Rfpl!@G{p?|)tI*Z14|>5*sVoH=LjwbxpE?RDSx z2YR5eGn6VoSro&iY&Uw4a1mltx6X!UY>|c zAZq_=AR&}{$VA0ptzg-}{d~Bb0g}mHO3W421UWmqFV!;1=0F}+1_fX{XrCksx2e7X za5}f0WQX(#XuR=Kk`KW-Y&k4Y?_S1jCCNr5H^g0GPf_RFNXHY!cZ1?giecwNb{>&P zODQRx1Zmp<$Hjs1AZhJcUhI(K#eJ2#caio~=x&htTMT6}L!r^`&lYZ@RJHv{D;>g|fjRVVt8C)t+a+F~vX77t6A!VgQD;|}-c@~!5cR6d!|@S~Q?kAU%JLwBqKx)Ygdl zWD51)k3KQ~MmE#+_;`d2rSCdid}L}LJ2UY|ef=z%X3IGdm$cR+bKR(Yn;e#TbJo^Z z^^-GnVfAvf{-U|z?4Cc?YU%LW>8Yj+773$7mLlJFY<^YWxOn|+Mw60l%8t`hLF-Vn z>w}NiKl81A-=>dooPRSpD73r$GcN=9P%Ju9NIZ^q%{LbM=}-lr!+Y+wZH;HCU1A#< z^p`**DlP01OcG1oFud%W*EJ=Q`fW=0ef2Kx-&0nm6s?9H0&36)rT|*`4mg8#SQ-*p zm?TMCtE!)r*3n^x`nB!Km^3)0%PH1^r1)d?;y>2j?|MV!ni#M9{+%Z=<>X8$Kdqk0 zuQY4#rCEKo*E&9m?8V#AyA4+U73+MzOL+_xwQR`F^;c80*y|-t?U+1#dO68p`|Z1T zy)2KXEg=$hc`_qOVe~E2lOyii2A*sp(?sq7bG~6aCe<7-#sn?j&{+?hun5@LWozLL zRP9pkNAWsC$0O2Sk@M&aAt;Di_9ce(djRhj93uk7pab6l?9s^p*y#_a8>0h6V;I=D zBB}%kt2h$W;i!Bv=2_kwXIIL|at-0fQzxd1o7Yt}NB=}0D_u%?%sHY(-4Jz?W>Id_1a;}QwlQs|uS@rw`V`+ezJ^iuDs@V4?eqe4Fjq?rl-TIG}U z>YW#KPng?ToqPw}5s-lYm~-H~d6O1evYnwD{jjM53i8e%&)A-;Ck*}OHH(f<;OzPc zKLUK4Hz2$qA__+ompDy|;9Mp4G2nOqw6!V18A*YC`qpF)sC5KFyx)y=zJP}Q1L%ED zDkz`O;Jv6_40z6`DV!_1;9k!aGNzw zbKhj}I9Q={_;Xj@@q1xATny=EQd!xVK}PYQh$||b_coH;V|(BLq44iy2ulhyznMTU z+n?6fy5obkwZZl{R;|ppJueN`9$9d! z9VOO!X`er*q@@whFfk-&X8!RED}^1&=n5-_@*Y+zw*abgAN}AAeT-wIed2VQxq_RL08LDGc!W3W0OJX&y!2bZIy{<-X$0wSpVC-)}iL^FuO8U zE1ygV7A6yT3|c`2J9O6DI=?f$Mn;tC^y8Z@U(@pt` zW@fh>7e&4GY;@jaUsY|tb?=@d9GSMvc3lCCwd3&1z%6^^8P40`4s;`=gzcY-#KgT6 z(YK+_HZXjs<*J5Wlt&jcF{n^G9`BPp-K-owcGJ4^=8faQ=yAx8?ku)cy;7$3)cUtT zD_z@HAbmVX_{F$XartNX&z~k>?{wu(o&*6@@pVO(Oaa#>H-nu2epM@+?-nV1Kmj0(SYltr(ATB60Y~ zk6z8q7tcw!4M^q|6|u<6XQ1xl%HF^K#C7eQf1+oCPohW6>%vy6(?ucGhl}<(Mv~;N z+l+87MRhbMB9ir}>c9nxbM()LU4$hLY;!yfUVT5_si%Qvor@1*y04_P$+W=GK7Vut z92)~_WouCHhTDz^N7E~D3AdwN);Q5=fg!`9s0%Rnvw>JOCd>5JX?u>%IF7p_GfI8- zYww0I7d6U{X}Ry%$l-TOp(gm#08JXUUSyfR)Xjb6Z<|rT;^1l1VI&CcMo|ZUt5QZ+ayX_U5^VBIXM&+YL)?b3wg7I-h=}0+i)5k-fggZtu zr8ay(94+)@{3osS{LzeLfbF>7+m+7y$8Tl})tVaa`StREE)ok0yg2hfQ3DDpz@JSP z2gH<1X&0x#>bds7^5k{1UVhWhbaYjpUQ6nn^XZ!Q?OK#CZlcV`DwW&*M3d)Z8wI)v zYMMVKrrwV-|6oV7rFYiX}y&I$)e4+m!fwbRk|>t z#sb)=lH4JEbYo_|S2htu6)omOBV--pqa6DgXdxt%lw%(pm)n%K6^$BR+{lKG11;kk zFKy-Cu>Wk*-HrjD@aiwKX92$}8d6Ld(_$vH3UziI@566HD`nZ^7_o5?x+!rSdZj#9 zn1oeAKh$ZY-@p1`nnK@ccrf}#a%uWzHn#G}E?>L+4`FzWw7UfD;okM1yEE0V*V{bF zXX3XxA?cGpUW<&h*>US|S36jpjI_P|91b-JQE?b8x`k0AMw~mWYW3l_ST!=@7~>Yh zNM!f4c2&4BTR$^9M{aldtXh@lg{xb~!9l*U$Wj;Ip?uh+XpBg_|9r33v3O^YrK> z5(8Bwum6NE5}}6NUQ)a5jORr!MZnBi84dZB-$h(W1 zcP&ZP={eE_o_iPh5fC1nY`vatgY;NmUD=QdKZ)5=YgHPmJkxPB}FoTQ(G`>$B=FuilZY%}H31LB9vYY*voldAOZY z(uUqlOkP^WtdHN_b(4te+dMC)ev0Ko3hgY6Vc-PX_XKPvsIbNE=WnakT|E!ZyEdM* zBO??(%>42s6Yj=og~FSzW4R=>dIO|3z4j(fz?%0Dj)d6FnL_H7{O_v-#{c{389Z`d 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%0AJ_nNfMg?1Jp;mpSEGVxEP8Syk<)oFo#e)pwb zN?KZu2vzSWYV!i`_wH4DZ*-H-;$jFvYWWugKBbFXP^JFo+mYi_A49~s8vg!Qhp|S+ z_seDfa#_0m8UH@Kc3x5c6p--aFISV&(i~0(fFV8iQcY4g^c-LC*_0e=klt;_TiQ#} z|K*pe|-tf?gMHgAMH_`RZFSOig zzO*0XK6Lj#>^^;|ZtK|0Vp08czrvU~4d7bmomc~W-5dz*giu0_z_v`x%{{0!wLf`i zj4#1m{s6hCXn5S<4CV0k8o*rM@<6Vg9Y%=p)d%|s6t!=3-r#m(b7y1}S$i|f)gvvV z)elTjY`qOKDxji!vKu%8!Sv3wU#1pix!d24Om?@U8GS3keiYgb;7zx~`KWlR@(%$cIFLEBfhm8#z2tvx<0KMHU=C8m!R0#}^jvpHSO9YPt<1aA*99+Sl5i?uAiwPb`O%_x@zklW zl(5B{AL|Ft4^ps?JirRBdLbrMr-XSpjF0lZrtX@xInc{qPmbfFXw)3??-=!$jXlr( z;?~spq&U5EpnRa`2aztlvu*mx^q|rF*j;Dm`a_gup461o)O|KKHsW@D{+q=_M4k}) zLjKMBL|cGhGPYb)aB)ay0oLvLXLZt^VIr5Gk59It(pGs8<=zX#pCSUDLH)~s9LA9wq63f-vvWVZ}Dp0IN2 zu8__acKISZT7s+Ui{n+VRzUIWjvMEvA>aEIvNlnX5+WjY@$jG>mzw|haI4u+Lvq9S z?~(xl0ohl-Y(Y}3n)faFGMC5u#{9FRcR&zz-HE*RnQNsWC=?xV4G z1^~O4^z_-Y>&F7ogtNJ?IePTydeY#mli%p+lSwE>a!YLWe)bc6)O zL`6@eav!)aF1Nt0OU}I`?wY(3>I1b@hIQvo0Z$}p-A4>=^2?VWj16;#S`3yHg($Jq zmlsobL!;>({9B$OoUXC4k@F166mNgcd-FRE4mnk4BYTPrLovGr6-4ydF*;HSbEc=TrS-R#py&X%avURQq?K!ItAqtr93?ZZux*$-n zFY-JtTbhWA&`E-C^~h!Sc)_>y?Af!@D~B1lV`~Q*B7JiCHWvNoEgEnb*Co>2 zo1Vo#>#SdLlv@IDx$R?!b`Zpk3BucvXL0|-mG}5ilb&GOu->RZ^$fEG_OeG8Q)W$9 ze5xpk!*b?}>2ro8Vx9t1jYRko8oOVJPJs+tQhztAiFg+czcb#pXMgw+`T2+C$OK($ zlkRT$jo%eXULmu_2jmT)4hWz2TiNkQRZrpv&znhVDN&7Aa{?v+Y6mvuRjPkv3sZm53}U zs^-SbB1X^NqZ9j1ad$tB5u>2#b$3dZK~jb2xp7U1T#p|7syn~BtCXHJWSzTl=v#A9 zucAJ5OOM?CWG#G%B_>94{@{nJKi}Pj-v4H?QGjImBa==ijScMKdl2Bnkj!e+q6V^E zpAs>x0ol_VCmh9x1-FFW+MrVX!M3lI?Q=ti_U&7vnV|HcXuO08%Mv@e5rhSV5~L?( zFU<_zN3%?5noxW3HrO9WMU81KlxJt`|6>E{8kte|l=xti;a%I>>I>b)7~%rySFZc6 z(+YU!`ve8Q8Lh|Y5C!Q z-Q=jSUOtI*3DJ`VuCo`~Q;Qz%IC_1zaEaAWIS#P5iqgo+b|>i2vG;zJF10C@>^ z9a`^qW8-uMpk(w&?Z%O2K_h6h5Ag8ZLy-m0uSHq)vafaYaL@+pnJ2Pv`3cW=?gOvx5zVTe44|Mlw%wrEk;Mf*ax z74d)B^<>ac)=PeS5@-&dupHG>%e*Nxu-az{QQJlpT z2WFit+w)n_@0Wp-iQ}t?$OcD6eC`8HE;vFWjSiW`j+N`Q@|tO* zbM(x6#KfA-^NTYKd2148r>D<>-~(d-C=`!pnrXGj=)yo8K4Gha2<2dNzy!Hv(BKrr+DOv}=99lc}ZRrMHR9wK3T(7?9 zI*zZmn|w1nokZxr+l!c%2Ls3j$BH-IFSO`wRx?l^Yl=MlSMjAirZfepN#mA?tLmEjE=J=`R`E|-7h#2vzlZxZ3ueS z=Iq74rz7lG^@f4gn&h|J8$z_7cKR+K`Fr+mM{s^8dX$S6o4YFk|4gr39Z0J=`S*E( zQ!%k1<6zYmB0jCo_4lD+m#fmAG}fneqty(5AF!)3VV3(!WuEwF#~%F)|1^>CM?pqK KI$i3@z5fMl#1g*% literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/glue1.png b/doc/salome/gui/GEOM/images/glue1.png index 54fa5bf6e0e493faf9f20d9b31bea7b6e3f00820..48a40d6e12dba544f84f52456889c39a6ec60f70 100644 GIT binary patch literal 20568 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

v_nK1!Z`cNKvaQh^Oa)5WrC`qa#m*%% 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 literal 13644 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 diff --git a/doc/salome/gui/GEOM/images/glue2.png b/doc/salome/gui/GEOM/images/glue2.png index 475e54f6586555c78c3ea6ecc294eb505f9ebc86..08fb4f97e159e01793a30673448ad3c8c411c25e 100644 GIT binary patch literal 24621 zcmcG$1yq&Yx<3jkpnxLXpme8nDN@oR-Q6MGA<~V2G$<0%-LVMil5Q5=-M#Kyd+&4p z=Z<~O80X$`?>GFG@UocejX9s^SJO~MdCBLfM5qV|2+u!Ai76o+c39!}?a{rZ__dzO^SqjrUtivAUpNKcU7iSO0gDq<>+ z`_(Y$>nO&A_&4Iszb)|JQ_+5z_$RCQmHrHaa=?=>RL1EaOt0_Rjb(edpCucMX7H4{ z4>}ABZO$*#C=AuR9uPo0Pc(8bApPMXAyT9sKBuA`Zv36Qav{aLCE&>W#Ba#C4F>_> zOH8!44ZlhnUsF&xaKxj|J1;!P#Ei{SJQ;W95fc-8qlASS`!Xx`TS!O%dStwq7?rVk zHr2U&|5E}eQU(lf{@tvrXLZnly*_u_?81?Z>gQR^*l*I2@dJxqM;^zIbW0I+F;q|3 zR%v#Q=GNY{JTdzfRo7%XugkdTk4}MhVN_Q^Z|;S7(DTB%iryjD922p5PPCD(ETwh* zOO^I?3NlRYQV50433gFO!&Mz=~d#3Qq>e?UR_{-(d+SC)zRKrV-b zbnzIT(Frfxa#rkwOx=VG_UXrV=17bAF4?F}JrX%s{64IICGQRP!K%QAy5FQT`?Q7v z83UmbsMPr_m08QPLr3ewWd^Kkjjg6ZFXWce2(E_N=>+Q`cy9jK(sIQux9|Dd^7W|V zC;kk~oC&jS7D6*bK5OWo2dDNC(3>O=x3i@sp((_8E@2O`D_!Yy*Zg^N_%&xj|Ae&O z`2LR60_xidd+;RjG?wwP97EMw``F%L(Ki`ty zB%<>q+WT6|ugZ4Mb3c}~brq?RFen}Ec(4t@g*5ow)2A@6?rMXrChqWfA@OQ9Df5w# z*84;5mnN4J^&;4lhkJtI z`-r%3eFs+q?bF+gTbpoN(R{a1zYcw=_LP~r?z}&VF99 zi%vQGm8bUhyWSWfMbXiGZOdCryaTP;)=&1ga_vi(kgpJ%K$xlD!iuL{w>z~u!(6Sr zE7VgTdw_7uQ(G{GY#L|!2G5VlOe1_iKm4ohrG3?EarV6(HhU_*!}Ptt9zJW9$u1c| zjRel4K=Hylg+;M~pXGzDnJLeQ;%-0Is(ya227TIL=4eO!-&FBcS)I(jkVvuz#DFdSS8Sl6Q2&YBjWU zS@FWoWU1CX=!fDAR!+dvrS0*Pk$K;CwZu)i%PcFH4D_cYJo=+ar%Mr?)noiBPtfQ*KNVI z@%1NiPx*uHPCYB4joVHU%H>)Yba^sGt}nF_tTyz8LuguUOO8LpDWSi+*;*|xrN+%tJkG^4xJ)6~qRu{Alj#>h^R#q1p+-2AsSW3K4Ak|bUgkTs6gHDOJh zr{bmc3PI9INb|IkiXROi3C#Q(oR?P6D$P*-@Chwdt)S&X%DxvoI#2EFE(5dsA8&F6 z(hGU_S1Qzua6EcpmRQ6Xb5RT1Y1EKqTO+B)p+YbR`xVEPQG;^GzayGTZkQRjx6zd-2TrY~N2QPIW&h zwedQ)sznIhJ+MV@a{rfi|6rHhZQ;yOq&x}BmM5N90~G(&dx5(e!P1v5Wap8h!qe-X zi_^&Ev1PSsBT~mV&By`C-Xgz|SfD)x8g+-fiXW5jMD>1alVZr!-sUc)@SFsy<^Ec^ zNDaE(xuqYg9SpS9Bj!4uDv;9f=To|Q-v~c*a_i`sqXqnCpH&SMw_E*N)ZL>%r9fzb z@iLo`x;REiK%Iyxq=O=1Ci5BVJsNWL_TiL3mu z+3~k`sK+ATc*gD=$X=m#+|QHi%^(9n>O z@gM|wrM8C1 z4OZ?cH*(YAjKK@?8pnhBO^(BScP?GuA2jo9@4#SKKZr1Lz(>w|^$#KxX;z1=A2OLO zw+B{PPhk1o-(H?x=MI<8?N9H!upKQ-{TLXK6~4a0uCbo+r+?C-dby!xtI8G{^5hjA zWlmO%`*9$?`*J6~xvQ!Gtm5j*ZDn;8v24bgfB^jd=;$Z`yVn!g!vho{J12+Ta*eL# z{y+hG4?nBY#_xqCO<|#N zG!<^ghLfdQ3O+u<1_lNL={$+2Ljo9n9l;o!RvSz{*X#I2s*K<}v%YcqgqrKV{?emG z&qIUSIs3+i2vYFi;%L5KXUMjASNMMr%f@<#mIJOTicCoQ@?fE#*{pKrZarLtMbnfZ z2R%k*tBJH`?xj92??G4NN86+yO&~;l8Nf2f@236 zx%ya``EM0PdkxF=%hm6q!y{TO-^|R+)GgQwL+|+T!jU@Iz)6we>kS*0$E2srIXG~1 zk41CZWgK3`Osz7j_#R(`Paz#G)I!V6M<^T|9gjVljg5`LU_E_(E5YPGOJ7yUuljkc zCW}V7Q{PyKMw1EE8SRjs?Lwo&J#}QGGlUqt?XdD_8Ir`r`aZ5JhJ{C>{nnP1MQ7Hm zTIx<08NK!&0@I^8YWs}o1?il#CS~ViWa_M{uU2+ z*D8y6n6WohT+G$d>xEoOs8z9l{)inwU_QFu`znS;Mu?x+1p1ifsx&?cl40Cl?61x{ z4x3Eus63c_{P^)qervGZ4F4Oi5M~D(9TSuBVMg;qYoXM;cZe*B{k}}*GovQdI|q}+ z#4_KR3`Vm*_}LM$@bfpcb2~aZ_V)EpIPA@Nuv*LmZ8xoCcNmvC0CNjG8Kl`6-OM8Vg z*mb>@#gV>+ydn4!72i&o8k4;GYG2*-vxM{u$(c`1&u6}M%HT**P$Ymt#H`Wu$5$NX zn6yLbRcMHEN!R=QtpSd_F%9=+Wc|)tM)>;>QTwFw>5_;}aN7|li*@qef;sK~!`oT> zBO8}7DivmI!LyyjyY0k^kPv0@1wBzMF|jqOz<;3p|0l0fPj^O|B^3|EMRg*5dox4Q zGRPJ@k4g_=DpLzD`D`Yxzli|SAS%oD=mRBnJ}Zti#cLV@#H`rFar}49(pULP-#$qT zDs06m7JG1Ta$Xyr;=48L3X(;`RMpi(#{hd?OmlCy4I6GT?`h%x@NL8U7q@k zM=xLv(eV&g3L2Uq`E-6vOw5m!#8g;6cK%~Pq;KG?GFxOm$p7@bJjn5(8#Lv-zd1Jo zlO>|r!}_hWiLvp~9i!b#mxGsrHRjrrG&t(1OI2^$ENsHYX5-J8P&{kB#diZ>M!S>6 zdvmp{NvX6-B|8VVCP+Qo2e)2(`fO z6Zu*~$#;l>fwuFu7}rCO3|sVuL&7C0Z7%URC{KHahF+YghANjZ+&<(}=DfYU54nTc zUr&pa-|spbXY??YA6fxwCawsk1FJY4EO^wgyv$;Z2Kfa^PgnwDU$ND2hS1$NlPt4k zVG=&RyD5{OpLWPlPfzU|wcX}zg$2Em*qJr|nszhv^ehGUIQrMSQ>-&sLG9*hm=U(O zw{Z_{^N^)RTA;j;}GYX^c1` zG^aUY!_tYQ5ad$1sd;#6=e=R$2%uXy?feb0U1+Ghfo`vfk*)e(nBu4lx(Vqv>0->} z`c~LW(zteK2KOF)FZlEY+=jo=^hj7zcrxoVTMqT+PAdekh~3DAEur0Rrzc0e zByMT)O=K7>t;;T_o2$212Sp`bGdmR4!9K5;n3(E_X_daL+`4&q@Pi9RYF+-UTz8ns zujEj#EyiQ}r>uXd-SI^E^M4ew<_o(b;o#sLvD&>633PqM=*YT(r(@rUdgL+hwh&l{ zMv^`2lU?2&$w`~uZsch(zMS>SCRR$npz<)2=oJzYlJ)%|`-2(3tm=;LKuwv_?L+K< z7tvfl^b%J}N$-hJJk|}>=T2NT1TeF6m3*lmB}9EgNRy|XN$y@+k}opA#Nn^7$LBu= zpQat?rY+x8BATWlc}xcFgx&hWqA$#9^E4_=+va#C&TKkn*#6{rQ~2Z51}Q%v7uGB>Uzo z^7AY(CMs2aqWtril<9xmlP#GCF(QP>_-q#VS3?MGR}4<@O7;&Jtq8;#3X1cTf57gb z|MjaxHA@c>l)WYQ7RW+M=ZeyDGS9avFexY~RC4|a(ow15Q2pOuC-|wG7`|=LA~lA3 zu-bbV>bSlWqoR7k9Pe_tIM`6VOTcGoT$aLXL^Y_O1fc56Y(@UhO9;D@B}RL7<)sf;tp1wo<2dX}bY14MuHc9h5s0WL&y`v);ba4O(blFnYdSWTHJqN3;9}GF` z>+72?4?O3cPUYTNFcSO=PCwU;3|1Pwqq1#THw6$}^jC;P(Vadu0suV1ryE17gSCrA z+cby(3hG}SaB^~LoZMj9rg~{9&Z2%#wX4?vi2S*xqJ*?dBWdbj(3fR2w53rQ*7d+m zy(5ufP$Xj^!tE{Ix1Z~^t8C`Jca!->s1|D?9{n4}jr}FTVR-fQ;rE*8%!CEp=U$<2mWvVC?~C1i(5aHDBP`nsHPf`DQO|X143$ zBBG6v1`SmBAD5%5DF2KVH7Bdvr7?Y2_%;HKrLGkwc)TdqrNbE&Np81RDVNEAw-RLQZZ5)l<*2pguSJ~#TKKHlw_NC$5Bb6wi zwh#n;=`=h}WM0%AsaT2b-_2aGHJd&%Ksei(2-n~=yYBbB+;?TttO}W**KX2fB_t$# z@Yr_|pp=McWkY9a*rGu1Si0=+!FUT0I`7rrHgJv{p<~!whFG!4d3`@|@QLw1&-C<2 z316>a1NMY*w~h#wLiy(rQ7{@!T&PQswJJ`B|gqwW_iKn&a%N|#BkvAH_E z_w8CezUt>A9V&2vmYNe`wpw%F?mF|5$R=|HPFSgq<;dV)08+G7D3Pc>%!Us0SfBVb z!;PFpm$WgQsaJe1F1Dj-scD(er)HI{ye`3nXDT9?D*ViQy2geWU)Sw*Gqy+N(M%wf zyuu$gbkG-O8qHYKS+`_uZCNxlG~j3(l(W(LPi6qs%ERkU_o@N3#T&l%0NE%QxB$z~ zo|mLfyTng|x)T=%XUU=duG{-NvyN)cdAOLkxJq5*7dj$(mGgT%%x6f)q^pH@Dw6M# zTO1n~0C@uU01np6%Gh!j*%P|SJ=0vjLpn}}MTRMTy#pTZZ;h(e>78&n9vY6FA`Ycg zRq?Rx(xt%3nN|{pPqeQ(l64z%uscr5mNai@YS!8gwtjisZ(VA?+NJG0p>oz-#44Ba z#$dmpI_E~M$*%K|l7b?M+lJ^pE4ehlV}x(a73=4eXS~Jd)RWEd1b^iVU|M{Rh~K|$ zE*~@s2}P$Aq5Ua&2fKeUz#-O^Pjet`9WR&2x@f<>sBIbgIl}{4qNu zpA?f~#wuc;DOP9}%ck=u&}O=QQ`7a%89zzX^GTj4RQ*>G9u~YsClzp^;^Ip9@)()J zenm|9c8?P-qU_}7U7ZxNUY~@s^7-8HDzLhx$gno!_??|Ok$D}xyV#rgI=7yy)950| z1)~RSnsG0)&CYBlSq(=LJPSRAr7eBncAC#rn1q_Fc1Lg4%-KHH?+AK6kj5A13iZbK zD=K1YaN2J_BOKF!_z3YVx>2$=-(mS)_v@)Qx-dJEWp>;=-$hK~FhK>C*YIem4WUT8 z{u|+#+0o>joysg^g_hsg%*^p@>tloSVbGvyhh?>4<%~4RCk7AO+Bq3PVQ0ct=Gyu8 zDvL1!VJ}{U{_o7IC5;D$;9(_P?2b2xi48ebV@azPCU{~Wu7}cQ=!2d_{oOn6z9W>%M>A zrBQ@xz|=7m^XrWD18j z1TdWh20M=AyL-CXTne&il(^nMBCuK&1z06oE;vWgfx=_%W!)oMuBLz7T+0LHp3EzM-aY$Ss_Z!9^$LF8afs^ZPg5 zLCdCX&oAGX^DXYLVWGdi13HF(BQnf8ZA;% zh0*MBo~2f*YiwdN0?x;_VLR8-29zRi!)$BlVWbV&ds$2q8v^!irj-Vjb5AkQE=8t-&BVoi09b{n7sJ(JB-rS3SWu1WLQIjd{j;Et8UovqvK>1r+bXeQ<$; z&ot@w7n@Vzy0*i3k3QGO+DD(l|52P=4|Q$Lr>(gGjE%nk zVnXn+8G1>>agbtfedk7*X>$|7t`==DIiP_X^bG*V*@ZD2S-`Et6r<=hnDChJ!eREY zBWjT}0s=sF9NbJ5=>`HaK@h}iWOZd1yaN=VW1Cv7|HuM-keAw*y^gXBUz(3s{MG%$i55L*(0D@5~TXi*>~MN$ABHs4K_u#FX!vIVTfD^hmQ(hK3ZEP+yVKmJ0?z zLJ@dRNKL-m%ofp;MF)G|Uf2USqQdf=0agK)wg>H*>2f97hqR0k0|Fd8yb9N0UEd{@ zT=Q(@2_7jiu>#r_Bd-L=4&DDx0xaYHFeh5Z$as2)l#u>^v%uAs%_;vAqPc1QOFNY! zed+|Dz)ZjZ35rEG$5&1z2j0GntU?nom!|(LpbK!qy$N%-nyXLH~}R1i(CVWl_^7tKek+bJmA$zA}wvchmZ zjNd{_Y=<^b>G9IB+fD--5OzP(aUs~&HkLFhO6w>vhDn_xIcn8EJ;}%?uA1AgHqo3*GiTrltq0Wbk=@DrJ-OQX`m(uj>=uk3!96IFXlNsH3c3WSrI@n>$Rw*^;sVfRRb7Ce3L3h0jzu zt(roT+^^p*Ya6M285SFdj3N}2l~g?jt!W0TjH z633Z1MnBo}l8SL14y5>6FDvdC95ioc5GD6<$_BwqYmzjYJ-B2NnN50kWz45aNb$l0 z4_j`d&LW(wUFIxm@lgSy4Kh%!6QZdMZ9HfI07;9@@G6AUbWWTBdt9-vzn@Y-AQk8o z*LvY$VH6AueK0{Gp>$xU#Q=$Y$)(-`45~2b8#X;Xt#q!Udhz$?`*~mJJ&B;(OTfZ@ zfBZGw;LOO!$A?bH@uYEZ2tYr^;?3Jb$mWp10Tl zMW)RCuJv3^B(M$B{rw-ooBB6u88~+M7tn@t06IF4hwaI6PT{Dzy>F}nvEnHC|1mmz z%i$e9@^dn=OkwXk6ZojvAL0lE-PjNq)k=&3ylXnY(8}2037$CFxs zp#&KKOT5L8?xE@T&|9kSwF}NfS&kO68>kVQATgbf&ndct6Z+ho$eowwlSlYI~ zkL-3E3b`?Oa@I2yf%|i{oX$JS4@bcwF-b{ME-u`9zUN%<`2pw(LhJ7FcMSy-lgf&U zD}y-HsQ-~m7f8;k}ByrkBY!^S12d2r`FG&m43p^a~C!i6BW4Jsn5eZ{S64*1T%tRB;yw*0=&+C{(E9t#GNeS+2|oCg1;I~}iq(>jL>okG=O0xnCO zUlNgqe?l;2o17^Cg#|XCEDbg>w>8~4{&9YR(uLDbeqS)x^A7!W6vmlyBNV7FOvrI_ zC`WFNdmgY<>W2!h)WHYNrT@O z6+@?V2m8?wCO=NU@|jn10tpGw<i98%f!>`^e?nEx|@Wa2%^)wr}x&FOTo5gp|O0{(Pn+!|-iKjC|ZMV)c zGXsCvwCYC^zN*KiQ(q@0pB7GZC9(ek0&M0M5J~Z!>iw?dkE;Xd#} zWj^vKy1S!9r=^l1kyVdOQ41(^%Xg>4ms1*VR2V68ki4_cHd5_Q{=Ub+B*T*jU3b%o zHyCM{>4?=AkV!YUiw^WH5rpsw|H8kWSG(O~Ao!58Q&6-g!wUIx_Gi24d_xO}I3*;` z)UI-k;Um8!$4c!)Qr=j!|FbP^BPqbs0~J8^)b^Ok$+`JRMN1p}0h=~9H8s4~y4|w; zT{w{2p`DCBH8N$+wRN zH9N<6`J=F}MMkJ{pMj-+8O^)rBCu?*Oh5qlBcE`4tK&}T`3l9x#zv5fkOAwie|=@I za(H7qFB5sGxOQ;`lpPaLO{**?!g6F1RSVO%w#?!8l+5SKV9&)f)B<`kTc%k|MNQ3a z-1Bm_+G;b?^!cBa&hTpp>{bL`hkv~L%Akk1HBpEUxjR7vbsKI$02+M+qzE+&0r4H; z|0Z<6t2Cx$_0#IP0-G>2{#zQ>-%ZbXTb|OU6NWh#fvvygDZ@aF&A%0^5blu%cnwve0nz6mt3pTL(gHZ`4eTc9v& z5ca-#;`MG4uvEl*VYFy#QPZfeRYu7-{AWQwDz*h`yPqS^JB>xAk?yV>!CG?UZgs6^ z?-VL3Dvwq=*$CZ^k(H;mWuc)`9l46AukG#a-_@fAbnidgGUZ4n@H|hb3K{B(^$ZxW zW+djZrJxjgT-#6jSxCHAaRTUAF$C22;1)Om$#;A|R+21#w5cw5EXaX^Af40Wx=m(@F^=#Q|4w z_s8fyjSWo(@m@@AaUQ%0jHOK#T|2-i)+_dE68lL-!8OE&jvn`=mo34=nj={{Anu8R zcT);L^%^BGHGpfxf(Vh;fIaT0nHtiPWanb!=fmYpL3eVvBpF_c*NfxG)AYT z0jRUp+8&7Z3=OStw`>iPa}0NsOB z5|R&Es)Fz}mAMUwG{~WZ1UxNWK2IOe=VnXxrsehmnxo+99;dpEDv(S1J1|5B?tNPz zC5;{uj8@s>AV|d0vS#Q@5EvYM+hMU?kyB+k69(dOQ}67&cZ_drK|zHl)d1%n%@Rk; z@Okz6c`Sm@ee;5mxG9|a%I`oD0hhS175D1yR z;gPNTsay{tMlBCJR#Bt^UDyhOh;TXPW0z$$2MBnLBV;L21;;88@NyE&8A#B4NeA!i_IW? zSOu{@hV+1d6It|T)f|3oD*$51=mf0=DuqeB_7w2uTfY*TafPcxdRdE991x-1`g@0pNk3z!J{s6BidB5%|f2mZ=jmwM+aHOt=#uGxZnM z{`i3a2rvL;2t_D(a(w{$n z8V*JYhu2*a>h`DWANwVc7p+Z9>6#og)z7=ayk*ng#1?kz%E1ut5vR)?CG(xFWYWE| zJw_bE)sM~|A-^E#`Od6$*Bu~#4jgv-qosGqXXLG*3lVa-Jxzs7Yn#seyW-q>@4mgB zc;z*=dA2(j4exzjyLQU;-kAC7b2T>CM;#cz(?C0Hz9fqz;wso>Nk7(RQOlp3w9%^f z7=RPb#JctM_44b}LFVb31@Yo7(2v3bWI(w|a+NQB`gQ&JONxnsX^V+SVFX&XmpVP4Cej+Hk{mQ}8fK5*XD+AJQ(?Sq|+#VjMKWgyBm~LBVW2Ea7e! z3S+3fBmH#v`vgg2RiF#ytbXi2W6OjM-C$46+L^Kw@&dR4b$~$DFJthOIdn>cRIiem z**tC@kaPLotGF=H@lhuOH&;sj!;56jbGSTg_WNxVlK1gCeznKIZw??X#d5~CDEuQ~ zO&96+C`S=1mWW5l-b2UrXIrYUH-Dw+P{FRPax%QCD~o0ZFl6#GwS6Rqk)L`0`9G5N zzYEX)9v3>&4$^Fez>4IL`G=Q?avy(GSkk~SEeEy`F$273r>MY%;X$Wz@w^noM8y5c zq|c9MWq>}$^Uv}8$)(BQz3U0hRd@V6$ih)jd>J`Qhqp9%>!Nu59s~q&ftUk#2tYi~ zfB@OHHq~*6FPQ#Q?%!XM(SAE10Jm{Ir3ZwDL&4$}0F94ZSb$j%-i%o0ac-&WzK#pf zKT9Im^7NEOF6B=WyOETfoJp%6;@)EOZPktHcR)anK}8wK|3s_nxnE6G3K0Z2VKqN5 zgMyivnQo3+2`_!?RdxHmJvJt0n$;WF&tkVsx5TmV;h}+W#2t9>Jp*pw1drYr+cy z+`$24Y}X28VZe2BY1Wu;`!;v*k=E@i)Gph5N*Bd}mKpQ<{dBz}?Gmv&$SFjC=(kEk zWGA4FpU;yD?fKIIZb}0Ho74ToSl9bpWwJ=){Xa9`g7;@*X}%BF>$ZnFt_vy_sjMwm z6#a>;K*nEnX@nE;BtdtFa4BlmHgWdaUm88diq}24XNv58{GW^yb)2o z+7cJ8Q3J(i17Nr1RJ#^~`=IlO1_lNUHo&h-2;7ls=N-`CQieW=F6Zpz|1JgmnMBAV z9zcNggW=98KIi*SnQD`p6w8tA?x%x1!1Oc^ZHXe~`L1PqZZizx*F8Y5bNAeyTer0{ zIs6222B#S*-H?ZKRzS&RiqsZisZwR|@M2h&o@L$v2Jk3-Bj^Edh+o5rA{Q6}8rGw* zdr{X$nTd}Y*PwaT*g=N``k}|AaG)bEFQ4p9Us{^C_&5S$EBLS6_}x|q)^5Be#N3kA z&jx+X`xdYsH$a?w`v*IA&%Y%nYb;-6@Y-j!a}#q}{t;hbU5OGnSgMd={Utd}2E>o% z0UOL`+;Y$l#dLN=TYAv@aL}w)>^(o@Hn5?8yT|Hu{MXT+O?AX@dj25u>oCkyr1on^ukq{H2 zLn3|vNY!+`k@~>R$-yZ-fi0z%C!5|rkj%-K<^dc^T_4?02l41%Mp+;!y0=h^U)w!6 z>uh!3&#>!g;th0CI8tg7cLbm4>w9@fy~ASV$!NtXK%3f;9~^p!Gh98T)2}mjUxr^@rJqI54(a~otZ0zGYA?itXLK+}53ES3Rnk8c^T9&$7hM{&y}3 z+y;G{kVlpG89dl@TXJ#BiC9WWxN6he+v~iLz@K+1D(^gJQ;T%xEe+B-aCJRr{XfI! zxkD}3^qug$4$z{yjiN;+^}|}6DWlQzV~iJA}}x6pl87y?{sy^R8w(-J1`YR47EDH zxlk2r&cXF=fD8zL^}tupXYw6PF}NI$(|~$ky1udTEfXZaxW&bYQZ%3CynU3PrO3d< zlno3R?&7(agalw@{DdrKbpxj4b+esEBH}|*+ARYlr9_P8G!PhsEBxHR4~XXRkp+b? zsP~6acNEwU^bzU~Mt=(^vv?qE=^esy049cyww zb(q^;XmriFzjf)ay(_y%0h=j+sfgB~{kBxMx!_oYk^)Q9k}IBp7{tD8YsV_p6hI0{ z0cdRS{VZuOHva-X1512bq6f*y5b_u;_T*v0L(_sl`!-XBHw#A85(-MQDgYX&wwi*+ z)4=|pfEjBVR*`4`+~MBeLGz_9RH_H9JBpm~qa9dgXn0IV(eYr~N`h3wHWVTPw3)s6 z`nXcaO-lJ{7eM8G*4=FAi@vaXhug%&#BMb`?@pj^nU7XIbMt<^+bLsfYy12GB%sDy zG|_V2<{mMO*4pXaT97yQt06#l}N+w2hpnL^+_C;HdjlE$b#F2W2pk!8f6{a1ZEI61Qd_kyCxJEP0(jgH(jZ~;yzAa zNd{R`?$qLWY|=15_RbC#Qq3~lg8-}?+WssbimBnguRIO`qQzv9?y5jr2SR1<0I;#5 z7EDW5U|}FO!mdqpmgZ|CWYH#=e7w?_ej)5o?AYT^9Kx|{MnaK_6(gyR~1bb!HQ?e zd@n|$Opsl(%q-_mCm+qz~_2eSIosn%qBc>l#}2`?vMS>$8Y6rBbyT zd5z4keZ9S}X=(HRoc7J;|MoRO$^x;eAF8>B3=K*^%aV%y5&W&h1k~g&qrqVR5tT6z zto}cFRo-P-2K~&cfgGM#$H*D48ux4YpeQDmUGV0gTmvXxfN}iW>o3i`05x%tKGx@X zJrU0Y0}TX(Kd_WQ5(eePKOzEPJ1957gv@h7 z0ox+~4`QOyilP=^FBUxVh#;TF+jbcIkO4{$hf!CA!xW#x+S93MNCpU0<3+GcB)e#-jz&v4ULjV+#xO_HDQL&BanC{c>=e9HQL$f(;XJ9ok*A3}t_5<}>H^^*#j95cBKK!;ixs<5B}Pu;=1s>p z#M6zgtPq=>No62?AMdKDsTnCAy((iuOO_1+Eyn01yEh~>sx6y`W*HcDF}=pWfB$X; z!GLlQLz49{!UB^#5Ufid5fc-WBrZq1t|-Fro=yu zDUp4B(v|i^4Iphnj7=*mChLTrtB@K6(&f9I-(zC@z&qg|=|#-=z0|KjI`DY4+vsGi z_pagl!I-+Q>)quGv1YtL`|{P7Lfk}phj+8)^PDTDf5qtoUN&M^(JeH%qghrHJw|!) zCm&WZ0hz_lHPe3r^ldV++s48pJA7ZmfA>m1fm7n3huKx`Xb_7!z>;I=Ro71b+2 zK@uS7PFLAugSIupOS~8_O?@z5|Eu=k`gHSrGBoVQaRxk@t8Qwn&_$1i+l>p0B8aZ8 z?o)L1KLC@KgC4Ct)EMEiKT8)=&h@ZT$tmJkumAJ$I0FfD?BC5M7RDh5yv*b7l^Il0dq%?5wNiFHyw{K6vQ(vA;y<&~ks`iOvaVpD>1>0T7K+==fZR-_GeW;UUz}@Zz z*b5G4a==8y6}dZl4C-Wz%NsenTkwFq8rD8pFIEv^>t*)f2hYxGnpbO9*+Iz=uKdlS zf`d^!&UfH`x6#enHo{H`y7gG@b7XW9KQ6uEwkC|tcNDR2e~m0{M5elJ+p#7`RthU9 zC;&GmQtxsr_7?%0J_1C$aAJpf3|A8$AOH7+B^Vt%#KH>;SrrvrG7+B$KR<*gPo6C0 z;On)g@i{UPF)oN>Ov=-UKFuG74nub``LWi{NITfBOb>YoI9<>IR<~>RxO~)K#_M^( zL=g0Dbcf2TWzR7n8a22;v(v7h4IRu|_-0*@FeC?(`Q2(sNl8d_baxLX<+0|P)n`Y? zvAL*K-e&GyRxOBukbEY8WZUbn?1I+3fZ6L_UfrD6xgL@Qp%eO-85lf8L+gkZdFZh- zV;BmmWrf^efh~7WNwLE8e6Eo)nQj8~HVzJ=Dn&BIr_0#V1l_U7VY@~T$K^)d6vm2A zDJUt3&pXD2BhN2EElIi?)-skqni>3DLb8@xuIkL=^cdqe|~N7X~SKfy$<{f!3tMBv6#P$HuVDhSJ{2 z$wfB5w=f<)5K@kL`Z`PhG%LH&K_-H=CA<9bEr#Mdihz)ySCY~V?PAcEEVkXFQ6J%l z!t_OS-uVX5`@nz6ka8>fZX}%Sb-+ujzr#PVMW13mXOIqfDJu3g3=13_`H>~|^tITV z-*lM&?|<|TLaj|Jz&N+Z|5%T78a?(U7>ctkTuBldrCO}V#EM6UB??Z3c57Q;0dur7 zExaz?^I5%neNSUraK9Q0CFB)3k{a6Q>LUhJU*81VSEfM1unir~ewj zpD2**!&emPaMWvE7O*e7b&EnF%MCd>IU!`k%*y7>qB8vuZI*7R?oF!P<>uig>lOE) zh3%a-Ix1Pf_E_$mKs?@uf#FcoYuVnmHbkt@00?2DU4+E1wmFy=ai;GBpO4@vrF^<@ z;4ceF%$G0qKi-0ZxH~yRgNWWSZ7ecbM)MG~>*49SdKB9s8h9a=V#SpC26oZI$6k_^ z^#~*YcuzAqrz@Ogeytn!BoY|1b$%}mt(jyJ@BQX)TtJtv%s_{O3KnjL??6Y#<6#k) zpf9AUi3IqmU=F|EicxIhTbGNEk4Hcdez-ECOOOW221%)S%cME1!8I@(pB4DK1Yp8m z+c@`szlWHFM1=e~SZI{1K|fu^ zyUyuz+?3KfD?soYFd5gpM`Y^b;8@OHO z%*`!+f@!z1E33N1q`5;i=i%yzUGpZ^gDA~*5kXQ9jmsKdkAXLBq)<;Rdt(Gg93Ctl z&xpH4HR9ln>+6d>*g*$v9YsY)ON}*2%~*+6hg&>zoNyScae>Ej#14z3MMl!qSXi6* zrxF|AECJ|B*m6=8b$3bWe%6{=cg)U(d#mWTIMM2r|C zqkE$Nyy3;!+Z-O?AoKo9kDK~@Qq^8D?`;6kb%PH1q_1~ib9~QtPdr)3sK-worBn1~ zW_Vnqado))v0y>n1s}@fbX1!ZcF2nm6X(8jADC_}QZt)|4B`PA<24w$!0;CAvqiX- z`2fG%XRU2$2=R73GK37e;)*gr3Fy-hHz6*2d}D9zP*OlZ;7)W58KT0W?!$+R;^K@~ zC)0obc$+F4^#Don>r|znGSqCQi}w(SeTrWnVaQ5!ho9&HH!$^)1qD}}xnD#?&{hN# z6&1BX(PQG^cvgxTu5_|(&}i2U67DG$O6U@|9TY^gfTT|L>P|4z#l>lOYtpb&s9XFs zIm<1N_FXu!`FwZL`{YB`uaQawMQc|tojwnv^(Ib{>$M3e=k%nq6 zShz{YmvSsmG}LenKWk2svpi-7kH?cTM>3F+R0xEM+hmhsr+y(GkIxJd6ci-2)ZhgT z)9my7G?1g-(;=A9wM&$jlMA*o2wBP>vV{=P8R*(SV#S)HQl*`K%$ifFk4d*1+i!Oc zjMq!PiNdhO#Kb7iR9q*bi%>{S3+Rnh%L>*yrfV!$m)Ik%rh>zK_X@N}6#9>W^l`d2 z`Dbr4X@$g8@NI8d#pG-i@YxZnFEcPxC)AbCHPlo(X-WR79=>oxr=X;yBVQ*sW5{-| zv&6VAxHny%Jnz8&8Q^{Wtszcl;|Y1nXyuSkg<*)rOOb}f!(&Z+#k!H;wmN}u{`pz^ z=Nb-&_a*!&C@4@;Riz;#BU_IRIwaqk@9V5vc6(ZLHOK6*s;cU%ZPlT*y`SfrM7?7G zz;5tirJ5qC>DixD2i%T|PR<|YEPraEQ`FO3RVR+tG1|_BnEt|#Dk0?CXZNB}k8Op~ z)hj>XeT~<9&>=WY#?6IM=wCf4|9$k>eRq93VtqeQQBkoU0-TmlEy)m|4(?eIT&*q} zHT^kiyX=tpT@z>EO52y1F7IUyTC?-BIWl-Mw)&>$iDJZ}>D22EpR6%~;a~YOd$NCyOn0IJll&_S#lG z|B?BA@|mty?7JHL28A?=SSSvSIy9z8oo z1;Nn;-wtyZSJzLun1F~^XD(&wGb8m5-74N^qDM04bMu; z@^gS@y$gg6)1cT(q^(402>tK@tI(yuN~`^LaI% zm2M42aquMy9#(zL((z8mEZHX`-zH(_*g53}mvL(Ga@S1T*i*QIU@3*evG%-vIzBz! z;b+CC+@xkq^If-(?LBl!YEo)yLSc#z2Le3eif`y#2#rHekJq`8nytYhTW@dg(OH|7 z_cy;@ZO`0>P+Nez~49c66;vvI97cMDiJlpxZa(Hzd0EnHZ1mhrZ#tR`Z-~Nu2nL+ z%}*yO++bsE?jARU!~!U3T3(S>`~RW|%IZwz!GGqBK|Jv}=>VE~^$ zbplpDoU+pe@%+@1G?*`_cfqT90s)YhUBaBAyu2JgJv|@@pRLA&CmWta8EhhPX=zb_ z2sT&lr^~VCYGIUpd}Kl3V&dkeM|{R&Tj35!u7t(boW^Os*YiD*=htc4 z93b&!NMMMYO>W^w9!|HlQzKga$m71^X+yb>&2dR)93eGAdwLIY3Y2VY1RS(-dhkE@UA5KGCNF)frFiNrf_qg+x-=OiYxpoQ8pwARn!JgJvD1wg9AikHq}WNpO8Q< zCME{7LCBG)kXS3QWfC@D&nKdjvUGK@VuiYTw~KX`q7D506`+Za$6#VfWX+{ZWXu^^ zgge=C_q-TF90*4EkC+S7BYV*ZP=y}hugaqV+RH#BSy8;b-oMhd}+JK z6q1rx#W%KJ!4s1%4o^Iw^^U|kWp_q(z(h5QrG&QaO|N zXG;8dD7NX8_FuV&(ldMn(KI!OSE*vmS`9{swT5n-IUldWC@Dh$vA{NPeVliRdv3-7 z1Od1mrej|OJyBU;^gr4jS>OEm3EbuyqTgJ+yzT*TX5f~2u054q3L!p_Gf3Q$VR5y# z!hCOfD-yRa03e{ng_}pwH?-Q+!DVOFJI?tP-*E5X?YqLa5&EXINQT*%d6sJy*wR z#I(eqzsS&9y8*rvDzXErEC`n_01^b&vAm*uBX5(5nfXjh8Mi(`ykj*Tv4Zf1|Yhe1w+E3M*r|H7IQU=IOtAJia?0KY3hY=BjzKi7*Fq6=Ih!PI=E zPUj(55`8b0hfiLJ%PPl8MMH&ReV&Wf&xCS>dqq;1Tu)E$-8uCcULha~2JN(A_o(Fz z%+?O_dWBoz7ZzSlwQ|M!saq$1^8y^CBA-G9_>i>Io*0~kKOj-Dq-Y5yd`gBPqLa3i zo(^qAiWpa57i;9Lx>>$pki4Rzq9o%wi4y{;=vstovF^-K-P#Of1W0)l$MM?V&051h ze*exP-1_PJ_qr0rFfwM9mU7{D4=>A9uRem+eg;UNBCq{CGcKN0p7o6lk_-wbt42&h z=F#H*=Q3^}-NMStC5>yHPuMjXlA};4(w%_^V-qzll{rl~>7jPpe$OdCbn%5_iK$3! z1RKh~-{ymG>!w?hmHu-(e>qz?bp(Zl+n`M-m3t;7=dl+4xWN0k;cNeFwW!HUCSks{4wm@G%0`4rVtW%J6>I5u0MOf9X;c3MKc7k01 z(&KF)QHgw*e5>uTmElG%1qFpt%PwY(0P8EZwze51+R_pCOtQn3vv1wJiBMBhi`%s7 z#;mCwuc4Y8&{K4=sUKiM=M?1)^vqwK_kYQYiZVc_4)ivj7u$oq`>W2radcvQ;%k+i zUgM2l;M`pe)6c(I*1&G+&?x?Nnce>y@gnIBLBn>hIq;~|yq%V1LPV*5;=*{X54k`S z^7pI{ceCVj_^Jj((287dnN5h8bkq4(p`<54$Zt`4(h3H6S4zGZEa5=_x)PonIsHvJRP!8TkY8nL}@=Lu)Djv=V6=>!yom&6V8}ZYhp&#^dR=$ zgss8E!eUvDlaP>D|M~L{Xv?tefP|IvTz(04A|t6NX|fu^QElLZ$#|HLpPLJV;fZ;` zk?;sH5=|8f3Jdw-Rq(U3p)eJP9#*xAhDO`|_L79B#>B|FU6o-Jmox*Bbsgo4F)&ce z^D;5V2C4H~lG6M5<>jba4i_jx@Ut*lb`gdsW(2uY;3LJFT0nH%0P{#Dc(znjR1nzG zL*vK!kDQ&IpTojG3wj>fEI#pdXlN(}C<(xW(?SO`I;#J3xnHOB#+w1|t*oh94&N_> zwSy?V9fe&`8B0A^456E|=t+^%YCl9<&a=6kYfzl}YnXPZo3?^$*K@sUck31SM1C&x zx8lp^F+n`Byhy0Zb(1r|0@r$PT!3^5jA;BF#E;tg`rsLvLtv)8*YPL7gmOyso6R+6 zS69+Z%H5^oWKoj{DDLK9^{n+=N$K*&_z*Zi+daz}O+_0(Qe(?~4?MuqpR1V;Cp|QGF2v)2e{sMt zp^}n;fv6`V%g{_bmS>@*A&;*;2}R82!h9+QCu! zz>0j$sT-!dc6>q4svg>UcM=rn3T+6tQ*waeTBaSXLI<%RYN3% zOWKKj{H+1T^a<)-yd=JB6E`q=6$u1oaHWG-kA$?n zY{|CPoT9^>y|5y1nJj$EjqUPa50|K0^K=-S0;EQoZ&Yb00z&p(6u&utrY5ESAE*}R zn1F_WIFIXCd;g%YL%KJ-epPU}eqN)PLV!TMX|h{`b0-)#wDgQ?ZFa9n7XEN_zH__i z;_Qb~fi5wfR{XWj!lr7@5CiQAIfXs|@@ytxr|KRdFe(&xq$GQqQCi0GDma&}P zSL8Qm`3IuA@5iwJgUG3&!BEy-ZHwNtkiUkWzLoob;P*+>#2Y4?`Csod{{G;9KEt;# zLJvL4-jZ$i2tCcQ$P}sh$@$Ny;*_6Kx1rOijtPM-sH{m4+Mu%m4iu!WP2}IVQ2*aO z@RdKKj2zk(yNF~v_z9~w VU$aKxzX3p~-qpNQqVy#AzW|VS#Kiyr literal 16254 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 diff --git a/doc/salome/gui/GEOM/images/glue3.png b/doc/salome/gui/GEOM/images/glue3.png index a8c6d884e11ac9c85fde759c41925a63e27ecfea..de80520b99a01390078bacff525d76bc37212cb0 100644 GIT binary patch literal 10539 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 W)P6>K11CX2pw}|W(#4YRzy2ToiOv=P diff --git a/doc/salome/gui/GEOM/images/image18.gif b/doc/salome/gui/GEOM/images/image18.gif deleted file mode 100755 index 511bd44e8c525f5c3c4580ca49b876681943f417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1053 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 BE8qYC diff --git a/doc/salome/gui/GEOM/images/image2.png b/doc/salome/gui/GEOM/images/image2.png new file mode 100755 index 0000000000000000000000000000000000000000..de2a436c188a7d7effc6ce80d0e1b6d932542294 GIT binary patch literal 98070 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 As{jB1 diff --git a/doc/salome/gui/GEOM/images/image26.png b/doc/salome/gui/GEOM/images/image26.png new file mode 100755 index 0000000000000000000000000000000000000000..8b714aade4726c49b07ae22f89833d1333d41c83 GIT binary patch literal 1019 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZCZ^Hl(Kn&=S5*HWu|Ki1q|IeK}_y6R{lmCw%J^J6%)AK(F z*xK6uzwu(xe<>-c|IyVm{yRkE{Wow50U7XLLB|420|XF;fl*OWaKnxqIr87$-u^!_ z5EmE!|M2Tvux5S7ATTYbWePEjfnfna0D-+678drOg@pxd`1kMM8Q#5n2gV?=3l}b6 zgeypV%aJ+;ADboyIZYFWN7v85q~`(z5ZDkOA0M!*&YU>|ciDjh2mZ^;%cHms7^eRp zJb3Vb|Ni}87cE@X3Z_90g1WE=Ab`NJ40097W*7#gHxPdR{yo@QPz-0pn+iV z$&)8D#E0cFL_|b@)k48bfB*s;_~XY96azsRR8>_O9zA-*@a)+$hF7m%fenj^ zi2<7c3QulsZkU0800Ic?LXeYTIRS=2fQyTZK}<}Hp|!P@Auuoy9x>6;(ctU{0?U^# zM~O6m0K%J7K(-4D3xi$V(9po};>8Pw88c=u{QC6^?0P6@1Nj`r0SF+lfgsypSqy|h zxden^5yHX2!NAYY4-Q8VU}IxrU}a^6nei1AcA&Tg;uin`1U3*9&@e+l;R%X$WCKAi zLJs_;OP3;h1Z3EGAbt*tUw{At8wiR$kU?L*d|~+d^(&YSO9~(ZK|TN(3c^s(jAY<< zs9_I49Do3Vdl{6rK!pIvP*5_0xe%5vk%Ix`5@c^e`CtGLK(Nw=)M7gu*_%+q!G;0^ p5G$c_aI99cPp)gn$5C^$B=3Tvh8xS+_~A*iag zAY!6pL%)JE+k_K_jRzPwf>wn{E@)_EmbRQ1<7s?=fr%|CXig_X!}<9Rj4yIt7^*Tb zdQ4VheemhPxka{9y;ut_9|)cj$l7tI>Z(T28k68{Te5^+1+Gnuy!WQ#tImxL^6VS_ zzA#%GFD|FrC iZZ^f@b8iHa9x$#5UamIbyP`|4b98gv+Knj=4Aub8Ja(`E diff --git a/doc/salome/gui/GEOM/images/image33.png b/doc/salome/gui/GEOM/images/image33.png new file mode 100755 index 0000000000000000000000000000000000000000..a70fb595506f5cfa45d798a22d08399f181fb4f1 GIT binary patch literal 654 zcmV;90&)F`P)cw*#cXxM_$;5FS#@J&=J3BksY<4Bk z#l^+x>FLJChB3w%0|3Sttu+z#dcE`W^S!;jl|TT{XfzHF4-rvo4FFneDPSCL0ks z=kxiTUw$>ezLm@6t*x!y-Cfsp7lD*gzV8P?5Qd@6lv2t%@;t9zujg{PwY9ZUsg%p* z7J&wXL95l0Qr@pGBAU%+p66|EZ&xanVzHP`rynPqC5?@9-uc|=_xnN!_O}3Fb8~Zl of4^F-+Wxl)^sjWt|Dfgi1AL;vTkI!l1ONa407*qoM6N<$f(imL67MxNHLI(uTYzB7wVs}yIY6*<&eEkz*REZ=ckkX~ z$BvylckbG?YybZ<{Qs}`A4rXY(GVE=A)o{D0w^yqaO_}E<&g2%u)wj2Nl47+M8QIa z7Isc20gFJUmUd=CwScR#RM2a-l)Rk%2AgRETHrQtw8C)Ke@I z8q^wlElZ^s7BDa|EEeTm6!YuA3dY4kN;*>xG#q4N<=B+P%k|*F;iVel1)>_CR$rLG zAkZVrX}IFtmh98hY^=XH#4IhTeD=mm?0qCdS$p1*nb-C1AIvKk<1m<^+rY@|$Hu|X Y;F!E^`tr1p9Xk`B&z{N8#=>9?08pi9@Bjb+ diff --git a/doc/salome/gui/GEOM/images/image56.png b/doc/salome/gui/GEOM/images/image56.png new file mode 100755 index 0000000000000000000000000000000000000000..9e365e1d166ea159d558cac2e3b78fd82f6a4a7b GIT binary patch literal 1214 zcmV;v1VQ_WP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=G)Y83RCwBAw6?bX|NHlE1`s%P>J%f04hRVN&(6-y zuyW-}Fh4mt`9C8gBg33IbHM!U?Ck&l{{3U9=>E+h&ohV7+uQs9moHx!K7Rbj01!Y7 zMn*>efoddxSOH3NK(PcN{(~+ItLt z|9@im^Y1l-roeeapq3v%EC~=mj7T=WfMSM@j*kC7W!)Hl{{GAG?dKmb{`DJZIMA@V zv^JoM-wgl${{-UC4Da6lV)*#}FT>BD{}=+T?`Z-A5R<#R`*Wa*2QZg`4Erwa3O4NX z_umX3zWic%|M@4wJ0J$pRmuDes(kyi|Nj5T@b&9&hR+}WGI*KXNdg+?q@bX19Uy>M zK(Pq}ZEbDf82^8JBg60S-x+=aW9>T-{{*r@-UWfxTedV``=B*dOW zi?{!o7wh>T2oxLu0fg@55700Lg^40GGSC4iteyjt%Dl4P+YB|S;tYomA1(%pT?gq0 z2p|@is;;iC=b*F(a^cUPKN-G#`^NC$!v_XX`T~i8TnNG&Hf#t2f_3jz;(@wK(Jgup z5I`)^(b3PBE?p}4>(?)aZ!+!-zyAD#N5&_CUtszlFtvfa!*y*oNaKAbCMK{6)l+I2 z7#U{44FiQCKmf6T3<8V%_`&ew7chzZg&6n;NdEn1~>`*`OWb6&rb#> zNZ5XdMJhl5v8-ObS`rj)p!D_!C^#!NHuV241eE9l{;oYa73~xUDV0icO8^gEH?-_o6egnooKD`DT1OlK41Mz=- z`v}fSFrcKQ^c*07;9&?-{P`O&5`O$*`1|Vz!=GQ@82@h62!0{&T*Vp%8mw^ra^&M!|Ke!87paz1{ z|#2M8b*Q2GOby?gh9iZDxPmLmjyKn-~hGYlpH5I`&-=PN5K zzXyd2Fdcb;Q?8`sJWx`3@!~}iIN?c1%mcad`Sa%>{tJ0|`D38ma{vB)PN>WNgVQR| cEPwz50Apm0TWdqR=Kufz07*qoM6N<$f=i$z`v3p{ literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/image57.gif b/doc/salome/gui/GEOM/images/image57.gif deleted file mode 100755 index e0f9e31094c9987c52fc727acf09e49b1a7b4fb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 990 zcmZ?wbh9u|6k`x$_|5X?%lih*xqaZ85sVr75IOx<^R34|KA_`{~stY3PwXz(f_#`LvcR1aEFA-KqeO++JYgNH!F$;k{x zO(_8n6c|_yl7%=HOjKoT)=xflBq1@0k;&Zq)s&wPnpnA6>%?46PGMkMEZQKnMZ?jl zg`Ia(*4_Zd#w#l&XUt=%Vpze%AmiR9%O$MQI3wfgsJ)@Sa7CykVCzJJ4 z>uZJdn4L{G=l!iVdzdhz&Nr^6#_V8Xb2TFig8@SW<75H7NpEg!P&(Ym=RZ45LV&>< E0L{vC+W-In diff --git a/doc/salome/gui/GEOM/images/image57.png b/doc/salome/gui/GEOM/images/image57.png new file mode 100755 index 0000000000000000000000000000000000000000..3b8f4158a444d5953da12d2eb7e34cdbd822672c GIT binary patch literal 1377 zcmV-n1)lneP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ=*GWV{RCwBAw6?bX|NHlE1`s%P>J%f04hRVN&(6-y zuyW-}Fh3z7;XjC8uwVh0pO%&e=Fgfni_z89^?z`|Muxk$E;C$s{gweBfEbO8jQ*cH zcTN&0&jG|gfcOIg1PDNBoP2L@@8Px0K4rLe?HYq$=2C_Scds#Adh?E9`i@41D7QQY{uf^v00M{wY9q*H zFQAyAqod>hS4k&^pTGYyeEso<;rp*Y48MN=WB3n*9}iDp2+Uc|@bK<+hO2MiGtAuC z#1H{AjPLnphUaWw7ytr@$=%%@WY`0k%Rq*Gmv#jk_8I7vk6(W=y#M?Y7)C!C-W}*= z2*`#Qb{S~cG@#4EU2+(BpMGF?&is+#+>9~?fB<3v#U>22wY7m`{QvEZ48OmBXZZQ? zBg1zf{t0CN`0<0GdzC-K-~ZDYw2Z$pWcu%72zSn6;Cb?n;Tg*(hKsZ77#JBD82|!^ z5gOPMQ15<#hN&SCD?%d*49v{TYNzcCX87|DX!x%$46mPkW>_>`pWy}52Zl=v8ySB7 z{CNqe>@z?BvA{HRb#*-l*#L4OP?F)>w{Hv|K73&K^5qM|l`B^mrtI)%`2FuQ!`E+L z8Q#76%JBB(SBB?|?-?#HYyzpj3pC;@5MKfaAeQLp=;uq9E*1Rs>lec}8Fz+XfBu2P z@7vEm44(vkf$4XLlEH?3`TT?7{hO~0?_Ymo`267q!{tRy3>+LBAOpVx4Z9*KDVYfn zKrA4Gz=;bOMn8W2W%&IUV&ESj{rBI01|VX1|NcG0$M@eDKE3}AH1HckLEsv&9(G{` z2Ie2H8KB8+7aJQ}DnJ0StX{nuluH!;{skHWN_Rkm{(%gF8U_NO^cSo*8%%>R4-XH+ zA9hg&MrLLPPEJmck}II(`S9UGNq_)if`uU{;eyiI_g@h2eg)!hKYueE=m})d4r^x+ z)^cXx;^G2%?*=HWS-JQbI0YoZh6BMPApQno00a<|udgpS9e(}#mEi+0&At2dli|&$ z9}Mq4eq;Fd`8|VPbRWZyk1v6)VTHNoG00$UQF#U~5m^Rkvik`ll$4a70|XEgEDXN` z)7s~6zknDRmS4Xx{QCMHh(9p=`1G3L&yO!a*GMo33JQXh9^vKXWnkwKV&Hyzmf_N+ zOU*D}f?N&|KrB0V?gWP+$iQzuelh(1_L1Sw&uY2#kR-5AzBm z(9pk7%YlYDL30<#u=CKe;D@@p`g4E)VgaQ;5ZJqSFQ^E!gl0KH;0M%@_b|g?5&!|j z0&>2xvhsUSI(+cpffq;+nBwPw(%Xv{FOt9|tAxZnkSm`*e-7fmke8P~#>B+LaR2^& jPN>WNgVck}0thew%$RpO(V~YV00000NkvXXu0mjfWt?~O literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/line1.png b/doc/salome/gui/GEOM/images/line1.png index 139809a00a92d5da4044f47f97167b10fe8e2b24..f75f4e508dcfa51be59991f77db0698779a882fd 100755 GIT binary patch literal 15858 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 literal 13886 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 literal 13762 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 F{{_B=#UTIy literal 10455 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 diff --git a/doc/salome/gui/GEOM/images/measures10.png b/doc/salome/gui/GEOM/images/measures10.png index 33023cc49af841d9fec69d0c50c0b0ac4624c28e..091b2c0aa3afcd60af29af3ee46bed799bc8ede1 100755 GIT binary patch literal 24172 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 T%{1_eBS=9;Rl5AGN$~#y693AM diff --git a/doc/salome/gui/GEOM/images/measures3.png b/doc/salome/gui/GEOM/images/measures3.png index 9a55aad4afbc44ba5e49931cdc14584185f9edbe..320663b6abfefd92f849c6e981e52a238071ba4e 100755 GIT binary patch literal 18434 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℘b|$g>N`Z9MRXg^&KuOc=P&({f=TX-UO#UD}H209@9E49^rAzvNObj8h zq8D1;u;+wp)%5lwv5u9W6_w|j1-dA-j;dsoEjI^-9LwHorXK4jg@4K^AN1Rb43_)J zV~l4d9m8C!ADL*Q4!?C%^Xse+qV7q0)gv^E@)$X_iu{SCPNO*rDlv95U=6-kRDw2C z27XshfX?ob6~R)WVczLwV>{!yqs znejqdgLjKcLUqy5aEeiX7vOI5Vw6-b5H5G}?1AD1=6@&}r#%N$nx9Y*B zWx;CnL4@h70R8U(SU!Vad@*MQ=)_zOxty;(V4GvV;-*Jhog%OF(i4Siz3fDYe(<8=#b_lBYFH zy@H8oIss-p1KGxiblxi&5(q^FlA;8?o3REccY&%u=OQ96|H=qFQ&wAZt|xiA ziz(<`8?aH(K$P9pK?j@p9i10abp8Ga6$C{+4C8Y$t+^?<3!7AL{$6c+Gw7o>T%8~3 zr}@NHFRgk8Jd9DbS<>Ylg@T;YR}X$BTyE55G>l72Vf^gu4X6d8n6A&!Fv$G@DGKp^ zkbVg;KLMMuJK0^K<2G3a4Zh%|g4+F;tr7I^2iG`VQ!08zUDx|Tw%p= zv9=yQYa6m7^K=@zS7(!HAUtq=b%7tZq1OsT7RRUA_?3&1VwFn^3h-^(R{%Q*yKPbd zSx`>tC3HKbs<9*X!!}u zIDmZxMEPI4hpMZEXaWZ0DF{ypF@^ZGQV%9SmSOS!rkE-$A=(@y- zPDfweEC7))%g$X7q`ZHNyy|5ykpLkY#d>Q#)S25({4%<^zM67h{7}zlE0}CAiHVue z#Xq&>L^&C+8Z?5N37!hOnVq>p{Bmq@M7z01&BldYRTe{ghvi}P=dV9VGK_PCg0r*< zRB~NR?^iTNzic#Q8e+VkAa@y~67OP+3s?O5j8R3)L0Sg#>x)Znb@Ow`qepO+qwPQU zbMb>q`;f3>v6GAO&C=PLi|e$*#k6K>9Vz>-RaN7>Z2XJ8-Q9*>UNp(c$?m+zXk}$( zRJ62#UCT{VQ?%mr$|Lta8;xoN*c|cPs#$SesP0T4(9v3-wQAMvF3`^A=%g4aZ85j7 zv1$%qrquGR56na=xE~^zyZicXPDEZI78aNU^bmtV*%r38Ph2-oQxa%+5Xb`~Q`1`& z4fVF}$*{xGfeVTGbu{p{#ql<_R{4fVKLan0y2>F3c2{nEDQ+tL(k$!Ocd?#5dnUKd zqPk;SJ0X2(b~#i@NJz+5Q2g^JVN!w7jUj_Qsr?-*qWKZcivG#b@UpTeYVI5kSEb;I z+^c6ll9H+mer|ECmE)P_`Q0za+f30ZcU@lM9PC4^O7K^uocd-R={CD27Ji!w5Kr`b zM`JK0?3lkCOR-uVIh>I9qpE0;)y>W3Pgxw$m#$%Ye)l^xZe)s_?XrL7d6R#OH2;}- zc*3{rbXl4>l0R6rAa!-lO||JF2jGU}z}rKz?g;laVyk z5S(tdi8(br{c}A%y6T!5XUQm)(ZNBJQyp{-Yqob}8$8zWN@`ZxE7efh&N#E`{^2|N zH~XR+NXcE_z`FO$EVJ7kXS^+ukwj?H3JP6`ZFTzgBaSc_?CaE<*Xrs)HM3J(?OVDz z#T=#9>H1yg)Zgzh%-(B?f&GvEMC~RY6!y{_rW-JOU zt=itjo8E%%?x9hO>vicT@d*iZnm5K!?M-XSpLa%?`7}$dM?y1dG4G2Mxh?Q2IDXC) z|Ifd<2mEk?;(t3rWsvMY z_bC^O_Ih@*nfA`6>EHG&I(owjfh-Yd(3=@w47!KHe+U!@faiH1*f2sMrnoe>Nl3Jt zu)*^T@kRgp&03yu@~c*IhaO-j#L|>BX-8m=AB>IZ+n-i0P9~<3K*B&coYM#s5HN)? zY4G$lso;vOIb9Y dOW9xu7qm)Rogpm)f7=I5URDWGAY=IMe*w_Fm9GE* literal 14450 zcmb_@byQVvy8i)`7EnMMM7j|q4k;}S!lAoCx*HS_B&9n93F+<>kp}7RmhOi8@|`AjJHZp`L{=)u7yw-{6j(S{_VO+GrL6eS@wwv=S%v_RSYRu{)xfO?lhet#4 z;jSGpC2TLL{@i-5QL=tas?L7x_x7n8<8$lzMwB

}VrmFm6ZKSbZ#OZ!HPYX`H5%2cL57{C?gj(~S{ z6FH?vb#IEisO2_TG5D^Sg~;)K{D%?S*O9H#Z<=p8lc8=$IHrSXSxFP^$_FPIahdiM zlmKbhdd_Z`k*GZeJJ~DR1*@R&fo3H8sNF z=R?ZGe!eR+>_4O5{f5j$VK8ObV=*CB$*&e;7Rtq1iTAhrJ_%Y{u3aO3JY&PP&g`)l zl<(7=I%z0Z)oTVe)fem8je1H$vE5zZ2fQ)l#9%lv9@a5ZPSQxq$_2tbRfBn|6lpnC z7K&{JxSs-N4CLfir#ob4x$C0eca~(0Y}LBoK`{B1!=#t=&AJ`U%d+1UXKZjLTaCcB zqpcFpVo>!PK_vP0S~bc>nOeIF$7o@i|6In4p5G|bq2y@_Z*{VG7}4QSKGh@n`F4@9 z8&nuxYtWsnTD>K-3ZCb=MP0G{}N?7Tq}ie z8!ZIGL%RJsd1brGZ$v&Z+?3xU5Y}Lbmnh}!uAsC^I5Z49oNNTlho|72H}^;?p6gmW zoe0K0iJFBE!?va-`8Dv985Jm_9rsi z(~Yd2JQF1;S(kzv86yM<%?A=^yRH$>`#=z#irUF)X7TwKZR(hbPWyH9=o#m1k$sDI|FH3$SQ%j4z8x_& z)n~0QbKicFgJIJj$kN#6|GNw#<7Uiy&%Y`15xVW{eSdrY`lvwE(}1m?(Bt@;Ow~*w z_a!#9j9wpuyd5v|W0&X;UJ}Kn1|v`1`FAA(Y2HVrM1?1Jx5~Gq()1hjt5oZ6m%;BA z2z_NBI2KlVH#}^|@yG2x3xSx|i($emcH}CSSNm2-d%JYaRwM3qbc5`43kS!zq(n&p z=k&d*(N2gD1r-O0LwNu+vSqj`)n=UMhsUvffK{khncIgMYU1`>3#gWCu^Qu6f{gX1 zBTt_RJ2f7^rod*ihac9%&%S;fVQa}C?QS?D_@rQ@QR>d<_XdZI^~t%*#&Np_R@^cgriJQi$B z=8EQA9yX)o{MokTaq$+hvs1@&ov$s=3BQ{Yz`1dDJZ@1jOnhAkRa*D_<&w_Q+VX*{ z_jyal;)HjWR>w4?k++B}UxGb+N2fmnPxmF%7^lsPRR4!R3Nhae9y^|Q=d zv~>pUs1;`r_=3x=?buNplHd-D)~Kjo-$S-Wi(!5hfh|V;cq9Zv`-;E9hyo*gOg)n^ z2g*s(J&#b7bkaMCmKKKAvpdzBtQiJfP!^X0$*7H%c|BX!MDhi+qDNi{9#60Oykaz< zxcAg2^zaVNZ0r<4_b9_uqK?Sj2q`h8<88k888sW_U+_BZ`Q7Qpdm}y0lrDLlJI&^? zPO0N*jJd{eyXJ>7MYMECsh1ep zOSuIjxu4HD8GTaW2G84U89uBLB~9I0ybRgjdW;^$9Y9d&&6EQ%E$r%;7~j_!Lxze(}DOgYPYR>D_=?AH5v@4BUq_!Ga> z?VX%BddzX^GGlz}?d642JN`v6TkDM=rpQVdcKHBi3|W3T8MZWwQA(&T$mYi~x9zWs zNC)Hi@2T2;e|zh+x;ouY>6!0lz@hvjC8Z2O{N(+Qc)^4`-G-NnWRKdAgdpEEVFupb zai2&`5e_=Ze10En;lb6qAJJHFlIWM5M}9gDx@u*aF!s4Ql(>PXSy8Ndy1wejtSkS` z`BX};(8MNCo(U7Yq=YUdHKDg&M+&JoBM|dABH#N$mYG|mthkR})lPEqF0&h5E#FdS_4OdML@@Le-= zt*%dL<7*j~j}4XTi;PP+v)InC-9v+sXqdDE0Wx-&Q8JU0I@q&~^O8HBiu0wdv01Nl zaa+RZ_V-ZVyekjR%-=k9*V59K43mD?UJi3*-6nnA-QP6#Oytu)w|rG<&HoWHf_c2u zCl1*>z4F{1_)O#i&rHQ(NcAUml;Q3DF5N;_sMRfpg$5f;+dA6S0qyhJy`nGG@%a{) z&*4DBaYFSfey#FXq10eUE7f@Q3KP3!%NKKZPrJ$tUybG|`h}D58ieyp*jxNUEXWTw zI4YkoWPtn6}9FBl6Rs`zkwoy2lyw3KP9lXy*JenlVS!o}uo%dTQQ>o-*N zF0P*4r&{Dm*=vr_CS=bG|!?G4*w;i7SoGP^F zzL#miWJY|(8{XE%CHJbG^vn&w_llwqnYH_9*0xgfw{PR?y<~DG1uL6FSpgQBa@VRj zEoiDrdD>ZQJgMQMqobiZWr3?H`cd$ehkpc0`Au;LN_9?wuh{(u{vaVYG^C#;4+?PwzFQJcm zacos)V6f2!Rkh<2D;clmFoO8Qjx{-bjl&x%^!rUnmWRMk(-4p7l)dnd%%h`9CoTR< zgp&Rcld-_}3flQgdwT;P*8~p_C=iF)ig=m&leQdqa#?6WcwO_O7SKpAW&1xqcr)wv$?1CfhTIQ)tp1U^m%&Ym{#WU3a_`oikCZV$ej^4 zH8d&BhnNgqhrG&-r|2+Pz5mrBtCblrg6D4X-Egv0-(P}}$#%wmrX|z0Bjs~$|3a8@ zo?2u`Jac4JN@#L25d-%Td{5G9*Ts!6zlO|I9Q_X^uJ?1qK_UJ2=#o z-JPoNmQ&J6afU<}e4ebG^xXbbIAz=rp7G$H@MJ{xJUVf>U{&_pt~int7@6z|3OM|+ zH%NU0 zYrq|!inxyN_*ztbab3f6M06>PGwSiE5w6NHVK^?FYWBVUgToaL*uzDrDo1h3=S6Xv z6R7Yq)9STa=9#;KVO!g{wPKPx%(D4a&> zIU=50I$iL+s#37R#++Xu`~K?(oz7PM zwvUWN$1!OxZyjQ#Tl4;^XL_a1%r~W0L?2&Fv!q%8e|O6Er`h?GP_;y-!=NmK7WH{Z zz_)Ld#aeYgwnlOfft7+4s9cVxV$1i!p>UIns?;pM16UTGq(l1pzzaY9j{xLnM@M8z zij0K?eRp>^ewg^5@gnI8lm6dCS{IhrcJsOo>Dx8-J`}Fvb7g1s??>~(<#H*QnK6J; zwYO&jHWA>pr8S8pCoK-aK8W7GD-r0z&HF;ZrhPsp!|ghu zU*z8!8h8QxC~X+3*HC?uZ@CQ7EPITWfuvp&mg0vkY-G1@sKzYL-%kk3y2a)&*J@#F z1|0Jx5N*Ob3F>_H{QADJ$HimdXksf=l@!;c4^wl_inK%y`#yiPAl79rfC`Sr|99b^ z?tnqW6P0Sjl`QpB8+Ueu-8OB3jqQH@IiZrG#<$$CAojCkHEaZ zR5>HX;>ly5E*)fYseF%$K8W7$-tS=Pwp?uD=1^*RvxKDaSsMsIs_S~;PusND&vrc{%Jxyd-WGfYlS7;_Uv2isVES7waK+B@;M~Hzyz!4= zW-R_#RAWu*IS6n08p6LhY`^8Z?nY2IcX#KpX*zvQGVQWBH842br0H_Dzo5H%HD02t z`)y4bX6&|V&%;0Wxmde?cxy|pP^*ls*S7*8jqFX=<`>J}E7xmQr=C$pW2Ib~j?S6f zw^mPuaatZ$jn!Vw=H}*R^18R=rqWQUti)0B=d*znXnVCywf<|u&!0c*0|eZet;0?& zJ}9vuB;!fDyS>J9ufy$CJ?O7lDBY@%b#-;c!o!oWwPmGcb=*{dcmpxStkw8s

e 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 I+$iw>0l76xC;$Ke literal 14586 zcmbt*1yodTyYCTs@(>~;{z6sr%f{sUq;9jT)*Y0VxtZj>_~H-_lXh2)dql6qaW~gj6`%Q@SunnO z8r~P;tn=(s#EQCd(=8Z%K=tRx&$O)8-*K6yHpd@$dV2@+oAYv+^Y40zP#^FuReRQ< zTzrpo3- z{SOw(j`tYb88b37jd&6rTwI#FyYV&N-D5=)uUp#cO4~Qu_KHf&KeuY@Vq++GxVv#0uMpl;NYy%c# z^M^AIHT9-y+2imCtGn<&FB62X#$axl#vD4*va;yiMY$3DdEa*yrgoAf)m0US-0|{F z1~Qf9Y8csRlU)IB+Vi)i&wMb^ml>l9kF%ob?!)@;h0d?6C`9DY+O}Xt$RkLP8}CCI zpAo$t!udIA)L`uJh?OU%vp65Rr z?c<$!Q@7(Hq*}#mc0GQ;TF`J25qBpeSyw&;O~r4xpBdUpdhWj1PH{0IAzqOCJvM$! z#MZ4sCqT}BKCoMIzC~esZ?Cbr8LN?<9S>8Uz6+7~L$~ry^fNW%-W1`A>MG^mkZ%2l^M9_`W;j^=^(?|4p zDJHKvOz4%;Bh>I4+%4G4n{M_<7A~BJcP9xu6O@j2rDnUn`Sz0ESl&gZB0}B>e!kVp z=Q(#TE-lFqH#{+P7fGW?oTE7XC;W?GN;PgS54CZpk~i_Gn*?+sPhfgOXz{Joi?PJm zkLy?c_2{M+2Cl0CJqZ!T7sM7w@jG*@qDnti_aAnrbS%on=DbPA=6*N4uxZ=5JGmuV zI5fYI6FK2^wxOD9jUG(RNfL>Tv$GKu6}1}t@xh4f`RX}`V9Zfl$%VR#yVHs)Z znWlCk)jUm(-Z39Kj}UoGQzo&GEW%<6aqRNg^mJ>tPBnDoTHiSZ(jd>hlDey7`<4p~ zer#IUAD)|)+nz;F6SNxt{BdL$KBiCh>Gb(*?NMWn z783pqtiuy7fyHX?`6}4!vfI3Kaw0l-K z{f1$cDYS`aCgMo^M{1qKy{}(yWQe&BMb!lAX_WS;Sn47;vwImzEadpEj=ZlHW{16W z0~HzuCOeeQdbWRez@0sw`nVpU9&#|^6T+ClZEv<%BiMG)B*fM@4xH_MPRGcPuVegd zfONA>U@K+A4aWQ9V{RftH7{F+aksiB)zl~d1Du>S4Jc`Dd`8ss30>wct&$+jR@Pk? zH$rtUxPQGiVpgpuS}VwF?ud?bI~U#E$8d#BU!*Pn8NU1O^eGi3w}&&{%``g(QQD)d z>rZ~!A;GzxW6pornHyFafXLhi?6)Mr{xO|+c>rD-(&W}wucx8JQNSb0B zv$Ru!C}Y34kFlMvOTY``RaP0WhaJ^h^O%&5+QZ83p4fVN!{Gfc%ePL635=wjg2Y4@dsV)6=n95wyeJ8kv5J(592QL)Z; zBN&cHH!$jKdh-{{efIurVLYO^JFe7Hv@DhmXFTPpM|3PX%a4*s=?3fqIaD-e^y}{E zFY1!|7LIq5k9s+J?nBi zk`ux84q-@L4mdCt+F?90bUElcaJyYjoK;u)pwX6L#|nwA+fhOzk7y)A656u5b=-<< z*j4C5&?}_g5W~yFPbV8uxcQs;&ABE9XkD)m$DXP@WxZUAh&(^Sm@-lSC79H!hEkr^xh= zitNUv_Tg1D0WzP+2dg<6{Ro$iFs0(l9!6x&MwaYndp_}&IwNRu>)Sgj3#Qs-w~f{* z@@`e$e4mCBYf@O`*9$r%}@);tv6`W15{sMWcTL2{=n4zLNY zjV&+RvVs17$}%ob4#fR1{87C6ITVG%<-~h=dLmX|XFt6i-=e>uPy`rbijdRM>K9L?8 zI}K5GZY55bl70ov?3Kml^Ipm-FwDLR2NQMY^#G+thT|1yOxC24z#$vaDHuNyvHMR0HK zQqcIZa6r$7?q2M9Qcf-QD}9nnJ!F5nwSrwAEshy!WLT_e@8U$q&%@uETG~~{#xPd& zggzq1okh?ibSz->rYmNOmkS$>VihhVs2Oa%%AFZ2F@`7EG))x=V_4*(h=Z`XFF18g z(lQw(YftX6ibuSzv)^mPa?n_ksF>RPkn8bYar4xFC2{Jz%Ml~x)E@WHPgGj3N$QP0 zbls|a!U@$Q*Oq{p6y|K9ZF3W?%sTm8}o;w@Rdy!6F()iV$ zaf|R49#C89*~XO!8JiwAY*tN67>|~SJ9g}$|sy`Ys zdXuJZ>K0KS>|8$uzQHSUszHZ`*T3#MF`>JchacbjO-^Y>9>b=WFBfxujGX%9)ZP1` z!4^%*Wy`^8L)6?w&|V{<=!{pQ=>3jr4zo*hyvCjgHm{|P9jeNx^T$i9nfB|068dhl zSeJZ6y%tWVMsgRT9q+3+;lI@tH50-5lnObvx7+7vmGP_GgXp zP|w`l-8lu%1vjltyB&k0R0Ufv{TDBerkAFnE1jtxo0YmpfMzhL&`aZCQN$hvoqMZF zhlh*$To(s5@An)p-scH^jY&7SI6Gpnp7J=MVN=n;9RMYL(K`PYo{Ec5%aeAN$CC*N zaC38mY==2`>`t(8a6o|qjTX#}h_YTn(8W5LzOXHuoSfvq!z{fm67Pzj6O2_rCT6#8 zHB5FV1L<0*Ls4RG*Ro!4{~>pwoKDAAZ$JA`+grc$U!I<42tWBSj_JX5P)k#3Z;vGt zOK9Yf>)*V=W4+`$uQ$&;u#xjP=>%FjMC4&bdmqz13w3hoA%K4xwf82~u-x6Syh6G1 zjdaZR&emN5Q~ZqeHLo$4Z^0|C8P7q6IOYPfL*i%LZY0u#L%Vf^U)>j#)^m6^-}Z$W zcwI%NG2xl1t;o;0;G@k4E*C)=$)AJ3_y4lw`!#xURO%j?`!+HE1J*NnYD^pveAoUB$mt8zH??hCG6`+-ww5Kgn_Sgg7=GZo=)WM%L0B!+NV^w{q%$kf!F#RTS}$o-9?&u0h-=li=I^P<|ik^R#_Ds{M!s7y+iKozyC!oEP(Ckfdy-ABk#|C zC?qV*k=RWs>=K_Dex_A?`H+;2lvzx!#MRd-Ac(k+b{7?X!D*{OihDGn_5~*qm1bo4 z=SkA9KE%!q{7$%WG8QR8g_YB{9Y@R784#3iqH; z1Da_{tt9Hcn2*zsWyHm0B@da)Z)mb41d>1*-;I_YTZv^)&lLC^t&l>)?|l^x8o(U0 zZn2-h*A^G=czMXInEI(ap`QjpOG|4;??Gaa_=&Y4)1Q`B*|WrAXNZwtVCY5JOKtIt zJkuUyL2?yJ^MN58W6OkBe?2qz4#VaRdys!rS(jGQOEeUmaa7K_mNgc;g^;W|KMSq0 zd5MLCyI7)v29j?u_A~g5Cmtk%o94096Axa3*JXm&dCej)uzg#4!5!YPl71(~6b;kV3R-%y-boRD^GWvt_u^Rdref^>vH*Snv&J*and1(gRltrfrz)zp& zQ@?Hg*64RfkAac#HZL#YCDm4#=w({tE2`s-qv<>Fn(u9%>mSQC#BFWrMCy_RVFW(- z6jxFsNiau|-JeCi_*5}lr$v=UT2mChzyG95<*4P7K(=a+sO3cUI;db1FFZYkY{trG z7h?^~XU}l8%B=3Eq@*;pwhmOvS@`0SzqCP)<(*kknHW$9`T5~2c0`*fj!=UAP8o@P{QEFkp~i(YD0y{aap z#d)H~R&DH$A5ZCP1TY%erDbG{ItCe^TaU2Ibz|X@K-hQ60_2mPhmU!colNsyb-EyH zPBp*ws);A*h>PFk$TqS4(SncTEct3TqVfZ{=up(&QZLR7Sl-Xw_~}NCzPez+u@5M= zcRShkS}5#_HgjEW-n?m8I;#2WZMexasZ?Ft0*Yav#7qv9)$z$vs^xgOO{j?lWp8I^ zkhj8#MvM!Ufa^^4R^9x8cWn2Q5*L!$XJgQec&)@DRP*X zeCg+RkB2wd#|Lt_HQihEt?}5s5v66NnDiXfzX82s!m?%x%IoBS1KFzzt|E+DI51PO z_~!H1Y171iIR23N{_aT@T)6_4Y3q~^sM?yNO%J#C?~OW~?|09Ik#gBh3C$VL7iqGD z^6UA4g-hUmhrMw1Vu4rf`XUIZg{1e;-53?f<_k(8`@Z5jiB1y8O&pwotIA8r`ZywN zX83og4KoRDe3|tqC(2~8%)kp?^Jlt-)^U%i+=umPWV?9x18x}w1uVn9`WMz`MikLZ z8tDC%0nfXa7?AMraQRdbDpFF?P#RIiGuI6&r{T-X%k{CcptH^DFr^sJkJWyHlhrUb zRlzQEE({Ee^^xLFX=xA3?WPqC4bx064r$5lWa(lK>vwtEy_k; z0;ZUDdyDTX^WqDV#7{__1cP3M?e%;~O*PQseIYK6k({`NfEx@e+=ado3-ae<`U@D9 zuOBl0zaHi&BNO#x+C2+bYL+h_&^mIR$lY|7;ZY^Y!9XjZU>OEj3EK@yJqsZ6+R^vaL_<0yMD z^O}6tzQsL~LrK(VHg`#CI;Y*Y3)+PBnkCvzK->m6Ni{3h z-GZ8f)McNUc2`5~C*5-Jz!ImDg(;zVwNa}z=NdBsv~n@JomeVCxEtCOe}55=;Pv&# zs^s7}k4&&jv0D%>1TTIe7ha+_5zn6?2~X6D4^HE{!FQJ9%=@5=oVW|T@9QiJ2V$v* zqzgRhASF&uJbhlh9QU@|X1t}@iIg9{>8!;oC7z)6*XqvLNrQDh+AG&;GDk3~Edx&g8|2xCczijHSNtLa> zO?!gq?BXJp4+6m(Nv}Zr z`0;1Ju>?ME(j^^^`;1r(>bmxMvz?~lM;Nci3wf^2(BATHE;oFQzD7heMCGWw9VvPQ z2+4fC(`09RJ59IJvFmnX<6IaC=HD5HLr&*#b5btk0r&Be=v8~)w^!tMIqQpi0Ac+x zku2TpbQvr(NJUJ)PfYbX4FFg_v#}UrV1r!qB5`U&3xw*`y1S_7Yk$ekX4u);ao+5Y zfAq?Cp(^$7yf~SXDf|f=-}q>A68OXU%}qt1@l>)DzgZ4s9iJX^+Rum`u8%eX5q^9W z?Ck_d`QH8e(Q6jbmFSOHxFw#FC-4^BX@fWm(SoB=(#mL16BEbX3)*E?X3Sb8O(S*i z>Ybh>c1-r~Cf{+-4Zz2QoQt=LQ>f<-@p;X;#ax7@^4V(UtJ4Y4k3oWg>>vkR(;^il z%DFn6zcxa^p77k#*b{LgczwVzdfYD97oXw*I7YJ37eB;58Y<~5|BHjcI&`N!JC*OS zJwG24hv2!$`Sz>7UH}pebL*)R{!WLwlS7L6nQxy$FV==~EtpSC1E5qyHl9`c143)& z`YAhO0|Ntp(2Y_A6oraz+^7rA%e~!Q&M9D1nb%?pHEqEvPixj0SN`>?!%+*#Pt^|= zPUFp(d)G=kbh!{bOMtL0?uJj8Ef^b>5VHfav;az{N3&|3D_t#DU9xzhh-MeL@wUur zh|h81*1_tK6SJV_G5gR@HK!W8KP6ZYkPJ`){_eayJKUhFa4DLvZ8pYu`0QDrd3OQ^ z%KNPt5dFZ!%mJqgW7Z)rjsOK9IEBjBA&qQbaPwa7djyspOYHUQ*L4S_I_Epa=V(}gNMXL;uoZtZgG_TQgyET?MtAxDUc)K54B0>c)UU8kZbnzpm+YvFyr z5o;jooU0Wcq4vzF4-*^Du;KG<;1n?Kl9IN5zD-2NJ~Kw#2nZ9i$gGoObvQTC?5e(A z?3y~A<)4dQoD*?bblo=(-PcE#9kk5JMCIG$p2yji{VcI+1;xP71oN`WW=+J@3V z^@dgh|DFRzIUJe)8Xg)PYX0qT(5E18r_5rv_I}*-lo?uFlCSE8nX<+wbAT zp(H17?~3ON2njK3=_1!UOuZPke);N^gOgLEc`1jx^XU&5x+^}If|tO~&JH-1cp@Gg zX~IpgnZd>?6JS!$OM|6Og&yH=TKUArl8SDe2bdpmca}}s)t%6%ONF5~#;3C0%u8ae zzH2F78_anX+oQK#Fr)C&^TvEj7*pTnXm^5e(9V3z{Os%tu+d7*dmZzF{QV7Eg2}=9 z@}DN4ETT083lXV>g?7dJuf*^4{;i8R^Bai6qKj6ln(gx<&#TeoNg&_?EjWcpi;If~ z3pJ3hH!9V@eqD8fIw(uDO8`X&3J|B>H{^=Wx<{}F{;eZDOhk5VX4q^JFMDBWNdsts z@O$ddR465)Ij)%a;mD1%65EgdQS8~&FM|9hI{pW`=*Uqjt&Wdw7LIY54Qw+AlI(lZ z#vZJEQs{BCX*Q__WyE;!B9?t}M?pMLmhLSS%8&`&XAx5pfihA*aWSc=d75Si1^>(@ zZ$cR#1IGwNNJv_;v{yEIg;*e5C+x=9?OG8#Sj1cml}h&0BFdHV|64{`xO$@XX49tFdbETVQTA(*q{obZ(ugx2 zBCVj1>2+~x){h;oqnCrdk26bCbh&nrckcP*9UbakG3Q4%6ukYrL{LHX)*lloTzC!i z8(m;uM}MpaUu+ow#r_N#A|R)MvVvAViMA4B)2;XlLjL*xWCY{chA*Kuk|7Ty5CxNO zj|>G}*GFbG^#K>WdGls}b0|??*yGQ^P63d>gg!u@4gfOTU;h(naVq@E+L{?)_>F5O z$VC07tF|Zv)J4=B4S4`nsal1O6rdirkOWo_J&>$1Ga*nZi<>$xgGNuZ! zt_Ls{k$@1f&$S6T)@UuIHOBJxKHoY&-|NMr;vx14h@_9P&bAe^3`=_T@}=8eH}45L z(QbJln{XUqmu)v)2cZ9^k3dMu~ViArP{%>sf&28)B-e#N7$p zm}ydB)K7*l=Tu1s9(WwCKYIG~mQNl0?1mv?{JQ;6?Yhx0FhC?Kio9p@$)8v^Co~NQ zkE|X5mw!+Y=C!iEO+?RbSPyCC8TTF`sE=XM`Jq#28*_n)i8)&3!UW*ye1A`=D~X#3 z;_dD2x-o`T&mbpa1bk)YpJZC5T>hmhm$lvbFwq+;0}666%)hO9_S)#e`U(w1Pmi_? z=4|eUe`Feh?)!Y*f4DiEPf@^H@c7A-Kh;Wht&TozZPMmFNiyKxa+&wEm0YbO%!wX6 z2uw_*08!AN^nq+K@aOglhxzTp!NvY?mghp~wX#x?xr zqVjr*>qg<-$5s~_{4sW;Rg2i#I=ixG)*-+Uf$GX;?p${j6g}U@R1(^`Nli^1x=5Za zV(!gCo4J&AjJ^CviYC*=eyzk-vN#|#z*XJ}Y{-}uMi;x<0}|j}X2$K1ETugD(wnw{ zK2udL@3eTojquA!hf(rJgwsjIv=>V}_U4rkyHYdz{EJIBik7xV>S*q%NhY+%Jt45I zTZV2~$0voE)zPW{mbQ44%wMriR2H9XU$^6Er9U47mh)}LL%AM_rb@;%Ie*1uqHu~# z{=b06hXml?oqv8<$|u_f@Uo-oHm!0Opd8tQ;oEnX?`0$s2egIs5&QkO3ijE7&*8xi z%b!!AM41MQWvhf~X(bL~DPDx#qI&aVBaB*5`z1@Id3(f@36P*oz>g+9ciR~tNuu5< ztu)?AU^PE}{0O4CIFt9;ipg&WvhWoWo*P}99`LU&mTk>8`sHXA(*kMt9Wac1iV*+w zBJJEn5^Wkt@RuiZd28Jdzpu^fjUwz)O_B@4*nk8^&xR6moqw5yfF!|BispUPRINJ~ zz=zN`+dwBn%}v=Qd+eTga;vkce=4ox4HIds7rzL#akVO9@o_ zEJ%?$->?sscX`!e& zIMnehKj)%Vmo(&zceE~j--)I@x{g5r<2tU7aCF475!Qnca|KmM1G%o)!kXPX5Sy`I z-!uyKA#NTXk#TWx>H7L-)Ix4w!AQakAYY()fspX1>jXu_FCn(|w*Ugv@vh-GPC#H_ zM@bzJ4^d1SJv$;mft_t3X?(!4E$LK)r$Ma0Q2igF2evPsX_G$`=tHExaQkGQR_WV6 z-?3P9%1wcAh9vPj`JU`80lxpO2b*jLw;W@+?;9qF2du|_1%P}T2#a9KgWWNNa;9uB zIhU_oEGq|qCTu*iuUn2#2U|sl9GIcu!`a!{!NWoYd3n4f-tm>AmWd`>%Zh6{LaU(X9XktpmdT&E^F#|jWg{GsTtsYMX?#Akg#a8+l)OQ zF3^*^y1d}`IAmsIWW*!q{0u}@v1$9g1Rk4&>xC0J7*q+h0m{2&q}T*wSC^HxCtvF^fo^J_3Th$cgymh^u0-MkZjbP_jjuPc>Mvq&X~vG%+Cjj6it^5 z>2O(yCp9oIsB+%?2*a|wH%COq>!llNqm8iATd)j0K6YCj%=u(Q_W1E*$X!ZG`T3R* zFqo9-Fy9jT<`OLL59Q1|xFpPNd$Dr*XTG05U&Ah-j?qdd20#v-Fn|yU5ERs;3?baR zSJ!M)cR-3;r#4XB9h0xKJIPyk`U!`y2QkUZiF45-xU~&n+>i`= zt7b3ML`z!wmZha7utlYAJH`-ztE~Y<44Sp4V@t)bEq%x;s!&N)RW;?TZogj+@4<8b zU%#FM*aUa#@7q9y^2<z%~=)Q$kLKEih{yW(G3rsVq z`__=!y>x`4FM)t@tC(-}1U-x|V^{4ADa^$xBc5ESZ&HvpY>e}f7g#?k0WB&jINa_AS=7d8l z)pe4bWkaFwbzTJk-ccDE`yX=mVlG5D# z{K`Zo*DGJV_7Xj#lx<;;Lu&!o^|tNV#?ev>!Z4xTTi)k8I5-59hHYOT$;Wd(={y7* z-3+|LI#6z%y8w@hfgJ+p)Cv-pYj0-Jo6=qCWe%>;7=(Rdr(A@{^If@TYCl!e4uhme z84sZQC1#!efq~z_E(9s4pGj-z{kKR0DnY&*X9p;QrN2eZCMSW5%zEWfuqj1v?ZY5C z1Jm=|c`a!1N2KT_%r}qDEprG&e!}K)K!UFdQ@&X;HzKjjxn>bp#av*hC&ngWP$C%mAH zf|(*8FE2oLadCj+h?l=c#IG2S)~6!5zv4Bv6&nE7Ev+HEb7!s=Hr?3Si5q#M?Jp@I z@h4A<3*x@Nj8Q)TPo)P&*@PmfIl|(M#JeW${T>=hO5xXR^-U>N7Rz$@g3YR)}?xZhw~Q@{xNVPIkxfrmol!`~%vl~q(692_uafK%!~c-c;QYze2h z&D{n*(C&v4t+Ifua9Xx}{Kv3D!tO-gZ1ryKxNa?+9iZBX7!(&q*v?!(VG|gS6OMyn zKF(~VRP?89LdZ4M~yJJnF{^^>)(1y?S06}BP;L^|st>6IL7dd{2a#K16&R;~Gg%XrKikL{V?C$<`K z{L3zD!wz#zx77>lT+eGgj&}Ry*f`$yJ?!uAFB;$Y?B}S|6VHT(!tO7#52698d zTBvtF{rSlCWS;(W$ohA@&SbkSCv7Q$kQcv9c>eL;u^{<2@YVm7#5ev^9sl(Z7*M4|9+pm%e8`yaNa*!QRdp&zQ)PH^2SXpx zDwAbC=mXGX3XDwX5!k#&^q}v&X zdrW+^m**oE>K&2zbsYit}Z>W2`Jl+cUA~n^{Sj1uVp#79IaK+qY0;)!?AbQ zBv-TB!Bn%|fD57Iv-bh1DL@K+ki~WaBY9`&uj=&rCfoA#6tpGjIXNSq$i+a|9h;=} zuTX13+x3{%qcvZE-6;XW50~%5h?Jz|>!w7W5APL(^{Umc2s(79fFKZ5@3iJ;8?q|H_+^0AONGU+(rjHkCkz?b`95E3Ea3~>=tOhg&$97dHs~HBDQx5 z!uFcIkux*DKdJsy4G`R_A(AGH0)iLQ-aF`w-)+V)g}X#_=Rq2HA22*4pdZVmLEr;4 z40J+(41`V8)@Oz>40;xbeslqHeezZUcS5mxgLuKorRGpYNZcwKG-WW#^k&(r%UH%Q3iI3gDh6P()WgN-F!NFlYm2`BA58SVnf$aIY zxrXcEwdn$3KLVO(ZcC2W5b%$fd&0_QP$$Hq{mXFdmt~$_bp^R`dN48KvgB;FnuhB@s>0;}D?)a&PUR1fR z$)Z}T`>!Jmns@)Ar6-0_s94tI>KVP?iJy;ewuI2cnj~JEH>(5_poUa)l)r!_1JZ&YI&7h&shPVWJLJR373}WXwKx~e|X&|y$22Kg2&Fd4Dksw>XU(roF zN7?Z>O%QDT?D^yp=4#M0)uO26L2aa)e8(v9wB$u+a_|o?9k>H$hO$vyy>Iy^BCR6FhqK=z7#LDXHr(JT)jbmZ);w2n3laY{CHtmz4G9 zOlGXUF^~=5FeAkHZ9+me)oO{1^%Yy!C+mrJb&P|%0EiYU2^@QnAc$xb0zdraxOjM7 zh){n%(f@yl{pXNCjhXZ(Xs@R8b@=;B)ALgHRb^<2XP8ddi>*bNL&GD!{SN_yOQVGY z9)&<2-`FGC-B>VC;?QVOdB5|^GXYX<@r8uBD!0NB>i3y@-z3BXW6{?`DpCIo-G9qC z{`uMa<6oXRzT3`ORT);Ousm4)^9f8zfCRTP;AvWBpYzZU>6QN}zWB$soQkZRoC&Dm zUmitNVIsRv^#owEu?Aiac}F1PXdDiRBGCImt7v&yb3!TVl>~(Im!Kfrv!ktS0QA;V zHRPpQ^LHw_pQbf4!uS73d4e8DMMVYVb)mlS%c6YhV&3DvCHuKKUisGMyzsw5UuUlI(rJH?M0Y512ba2Pkpz zq76#-{=%SeuO5@I$ZU^9GL*6%l=ypqk(x(C0suOTMy)|#&mV*gV6=kn;X@xVm&awj z%w9LO?PBRFlhH@qHy8C&J-?%!h#_agV7%BG9UQ;EIgt2(+X`a8J@X=g*N&k6f@O1Q z=EEll^Q9XHP#ScsJOn{QFH=R}aaDHDe&>IpDq|**V?311czgYJmpg-^ahzs%_RzhJ zfJCRg&yp8AWA_@iNh!y#lX{a@0+9Uty;T7L7KRgk>a44)%jb2@w=rJEz|Q`4d)xkc zR)C(~7pTctHI(=rc?=ds%j4}?`9y(`!;LWzB7Yfb?x^0XU5ksvj^p+qnQskgZEXAm zhPTYSQ?Psr3)#Ru{9XN#_x8^1U<%PtFuCa0*Y|p2Vgjs5Ftu=1UKPEv;hnb*vg*0f z8VofZxkUQiE^yGJfq-}$t;q}Kd9VqolT1!lxpRXM;j~Y#Pk|A+m&DbewNR)Cevx^^ z{GI7GsMwhQQk&?s%-2AFzX3gjN;6Q2uN%<5(Jn;dw&eelll*r(Zg~}at?K(;&T8bE zBa_%d)q!CiL;kHVpwn!dp$Epbo~Qm434O6y)JIwzSCC(N!+CX#Mjo4|G(MBYTl2>p zn6n8i%ml}M?V82wD@H*k2Jj&0?gz0VI5rjPEt|^ZPL)5+24ulkx8%|GJr%7XnKgvI za%On39rYleZ69zj^vV3FL(Z)xzAzjvoWzAr>(wg?cWg(G^xUyubry=N=jztSR=5wX zbXg$jA>ZoNFM@jWU}_&Vty&9MX2@9=l^CLww)JmZR8HXKh$OPk5E>%;U0N4e6O z2LqDYB(Y*}uc|r@gQ#6Y`FQJF$NJ?gF&SS^vr`)xJhA`EqM@FBW>b)7=X4<;a{w1~ zbBYk zFqLJqifiK&KTXW_>+;NC3J7?D(t(C22K(u>OeTfoj#}S{q$}Xi!#8iN5E$u>%BJVk zlUd$0udK>6+2HoY$dbq9)aYr7Ny`DF2zV=%36BP(QN>RY*4^5TRp1+Y;5&Du8c3s+ zwc!1HJgHj-3L9OG%lr5oW&(y0l3?iwHVa~ME0Z`>ee)VEC~@U|SH_M;}>9g#zekQo>kq?xwn!5WWO>(m}8+@k`A|s(F KUhvZJO%Se diff --git a/doc/salome/gui/GEOM/images/neo-detect2.png b/doc/salome/gui/GEOM/images/neo-detect2.png index f0dabe311d338af72e518f734344895efc939200..273d000f22761ed22225d8fe7a3c767de8a25f48 100755 GIT binary patch literal 9935 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 literal 8014 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 diff --git a/doc/salome/gui/GEOM/images/neo-isos.png b/doc/salome/gui/GEOM/images/neo-isos.png index dbbcf8ef534ca0fa2e5f1520528e7286c2661542..b54a335da864ccfb8f9c1217c216dd09cc18494e 100755 GIT binary patch literal 6558 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 K)T&gi!~Y8siw(2@ literal 7042 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 diff --git a/doc/salome/gui/GEOM/images/neo-localcs1.png b/doc/salome/gui/GEOM/images/neo-localcs1.png index 9bdacafa251f8537bd29c5b5adee370e6cf7aead..b464565a986207c3e4a9a388dca6db20953e7909 100755 GIT binary patch literal 20989 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 aZCfQRV=6673H(tKBuO#3*9D?FpZ_1!q(lM$ diff --git a/doc/salome/gui/GEOM/images/neo-localcs2.png b/doc/salome/gui/GEOM/images/neo-localcs2.png index 3fc54a67ce73f3a8063668d7ebe59b20fbaaadef..f5b40bec477983e2cc9657e79da2cdf445c0ff4b 100755 GIT binary patch literal 15997 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�sr!~u|HFt5{`+!18`fDVW?{&b*XXj}*^TFQ+uROqEM7PtF7{NfRb8S6Q zs@SvyoN_K%)XO!0d~Hqe=wmc;I2UB6_&+Nq97F*1U6gNCh=$}0(A+r~tnC0DM zE2i=k1t;3J&YJqjdrp53hPb7i9X<1T>2oq*;z2#{<0oQ^5@84GnrQssd<6G+1c=C{w~ zN%N9D2Xe5wVNH!3UpjRA=m=Cd0~oG1Jxv*#bzcduKOPV+a<`IfhF1G;M~3&ksDh zaxAVXIE9s5JX_duN3Maci6!TIfY*VDGsEQP&!4!puJ`bR1AqPcWjI6cS4ZO3r{)&V z^&uWmC@^rVUq0oIXn>3Ms+GL!55gkC#($`T9vqRQi+O#u?&ky+kP7oJViG-X&Tukb zwqGJ(4C;D6191o*+V28YX5X7rb*b>jYqBGj6`p4xG}v@zcN5f+OjuKR!5es&fWQm^ zy|S1pGl|}Po8r9Sxy_1CF3?0Ee%%BtO^e@OPzc1%sX@%FTBruxVELWE;e)ZaFTivB zv{>j}xZ>baT+s3$L3Bdbx-RZ4>BrtP6KpF`4m>vFaqN{o&3TzVJ;)!VKLMs3@~WH! zCd*84KnZ;hR|XT=36?syBJ8%FoM1#53>2g)XGuR4?Cb3ra2&)64qmbsa^Js!V`n>= ziXQ1=j^hIEM&j91<}lJhv%O<4l*D0x3g|mEAKQ4j_29hd&ScF>k#j1Kh02$RL><>h z;4q`V-bQqi=SlVwBP+Dp>uAm!Ft_7#?36gZL0A2OU^Xmh zO7u{#SSb*yT1#GgYN=^4ozryNPB9qouANaR_b8x9ryThn1F?pi#f-dzP`Y>dF&T13 z4_qD)6?Pi+?wo3c@f#Ul1IKIy)h=f1g5Kx$86NA80I^dxZX@_k*aRLUDW5Ybc&`LR z6s@rX$rc$Gm!X}RivgIF`kTW!&U>>pT|#KM6haRQ$9jSeiNNa(U=#sl<%58L_^H)G zMNc1$0^tak+&9%Y|+-$cui@eq3zZIaX5;;>)t5A>^d#up8qyvm7zCHBh?J zxu8R6@FeKYWpr}F+hzPynk_;ivNr{7ZXhQBIjsrXTkzrusD64Op<0D)Y;LP@mdCu7 zZ9l5!->o~Q?eA5uM9}y#BO3t0*iS^ErIwoXhL%>sX%Z{6y<#mHKzTDTAJ`m(|JTbo z#VLBZ?)|(I5ahBXt`+0pC~b3wrU^8ITX7c~+puSp=^Ve(?T)pVHcS-mz+G ze6C+ukGKd+8nE|N>yY0r+Nn*f`t%*@QE6onIkoj&F5-E%kY>L_En{SdS8EAWhIS0*?={#=^(k3DHw7A zv|aAh!Htkm5cdBVsI=pP7pgF;{kGLWq`=b$0m)DN-@C;uPm(?CC d!5(}g4$CY>L*aXvj4;^g#%MFw&^ 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 diff --git a/doc/salome/gui/GEOM/images/neo-localcs3.png b/doc/salome/gui/GEOM/images/neo-localcs3.png index 01c8e24fa2b9ea0458cfe7a59fed328d3399d68d..1918b674c9e75e9648395437ca138131d2c815ba 100755 GIT binary patch literal 20892 zcmbrmbzGI*`X{^<>6DZP1*BV$?vfH|knV2jP(VsRx~3bAP@+ul%(hf2;|9k@W&1T4t%4P^RNqnkU^wG zg_K;9_ZFNz6xSbGk4O6YOij0as`pS^Seg8vK4mrREk{72#xD8t2lhE5YYDPa@t1GG z2-I%MO4#tMNLfg3LWbBedA&xyDyDQ+<4t1}Eds(K$SLXRzK6Hx{d9d?o9bMB*Bh>> zQAAzF6=ip19DW$WftVUio3diAd}GGDDh-VVFa0nwScASjk#$uSMj#hm{|PJEOMhsN zK<<}oSqYhqJt_VQ4(jhF5iDHSLM8XZhzUIt1m}4x=0*k%NPfwO0lt)rAPJ;qdpKaO zXDEEYr$0%x#}{yZF-x$>M_*Dwt;2aPsH6!uV>ts!l6{hdL%f}9Zm@)38ua2iNjwNOgbc*f)zAVcFvVP6a~~J z9_e`9^Ccj&5YQjDj20Qdd?1h)CH40CX^tt_pLG5EVX%5}5%S?++1aGxpGL?W;i2JWg)N_@OTIN=j|5u7?$m{(9xriBIzwgZ%~VF&-E@mcM}p! zqA;DnFSETSpU_9&c%>~Ry!xpM(w{{fwebjZBf{pNj@K9GurD5-+-4Rtg-F-Lp}rp= zp07L_H|p&zW4h(b+p5NmGqKw*(jm2G7iEj|`pO~g;ow#{>ygOZQVq~|Wnl%5i zeI%w=oGqGGX}Pu9zZE;{7i&1Y@5e~oNp#T(T+{GWIeZi}!Kie*=iYyw{F3z>%Ddt|V z*0klm_1wjMYx3$w$XUtaR>*8}~)DKO^kngRRgUSzFaf?l`GSG8@e z#zzkn)1-Xs0!yH5l>m% z+N)-aU!e?Vx}$cIq}QQAPmlC=wXtorZh=y|1XgmG)-(p`h8yE;T)`8pz-v#=Mfb(E z;4J*FjC98(gnk(%U-4~G*ffh5MC(pIRV?KgY6Zxzi9C}8} z>)C(`{SP*a)fBF{(~I-m-sb|$TDQ_^hu#6(T6N=g3|?Cv}8^r_pP|K_~>@;j-) z@|335t%%pzb9s)^MCgsya*3-*N&9%V;jFtD^f~Q_d7OgQ3cKY>nDX+LT06Vrh(?wg zl*)PUzfC_4%*U=Us!DvJftIDv-SBa^ImuksjayyWjwiS75=qTwre+cD*7L*0`F(0M z;w0+D=9^+-TTE6YFP+K~*!x5uoj1Rze^6g=A*Ez***gUMY(&9GQ*c>W9bZ0ODz@5% z%hZ@{QD9=!Wi9!~1DV8^l+6a*1`{Om$ z@e)i!8Elx~o15t7?3L>G(Yu$N2Xhk^3tfrby9R&WeEXhgw8Y`u+q*qBLdAenR|+Bv_9Oxx;k> z_GyndarfDif{#>3E@X|R4O^A2aqGhjb!Kh$Mf|DO(*x8yZ|s`q9!2_2X^!hhA9;v{1`{?Vq#4sNUZB>IPD8uNZO14^2ZP zU)P*8J$W&4$JqooR z@uts^u?|ORLQ`SmI<86%L(U%jA8pkA4vu_%ff-b*CqnSS|^O5iSQIX_taEj zE;v}w!OFXN?DgYGCdzrUk!HZF|G1Lz zV!wqS-J5DDIStjF_~22%-RGN}ZyM8_ypYP9A2Y#TLm_mlD!+4jF;x67Bz>jDikWU^ zv{=)$tdp72Mi@DbWtyZZ`*om={+8~3iVk$?mEmQbqMuP)pl^4gQuu%#Z~HE2xE&LG zwpRKgeS zic&5|LhQH4DBElN+4R>CR1KN(OP{}zki>YN5os$0nZ246zd1kb@o|SQ-3;I>rfw(a z;D`+n=UY3mf2R@0lG#&gamk2@i5bu4j&|sM)I5Hjm6cVtJb?O*P@s5^RvmE%la)jC zOCUy!U;_O2UqnJbd25=-&Q8%Oui99tsMibT$~Lq6#RFG8J<{OzzBovscj_|#nBG-*kHlM=#_Jks zlIDtAG5f8ggekowU}bX?zBPtUHD17m-}~YEHFru_n=d@udLE6(Q5(D^`jVWuIGnY$ zHNAFuJT8LsjrgON>_217b9l>!y+9f8d-J$U^RJe_e zJ`S715m8Yh_c!OR>yxUv$^|N)_q{JuoM%h*VBmb8gmkqBKEKfG5_r6eiqrN&^r@|V z`{fYX`0}!Wg&-6*o6B+Qecn#w+(u6~UpKnDSF0iGaeqMxhAUYl3_Kb}8peo4Nt5_= zu@U|_%w{pfsJ=k&OT^mNuF4d*`xNlZe*K{c*H z?S9JqD;hD9U`z9T{2Pl{gE^<&DZ9J4)$5&@qyt}c{vVG`_p{Yjgon+ijC1WZ>jjEZ zzd1Mz>9MHfe%LHELo62?6G|EMJg!CqIIH-$xDr|~J`?eMnuzfJ@Bxz}DYV)1rrdc+ zdwyX-y-XiAC@84$Y9+)!TS{J@NmbLN?p@~UcK4YB~39BJOaK^7P0|{&~y+1!bL!LPyz1;E7eY)$Jsa|0sB`+F? zlsoa{r`$ewajrxJD;rw^s}Yi(W{2rqHG|1Ws?k;Ha!nHnL_G6(XgB|1IyGeruI(Z@ zhq7{+Mv>t5Z{v#DU#9G$qM~4pg)k^8U~^b4b_QX+e(QEd9fHS{t$puCuhX2|^O|>f zA}4!gcUL+Dm%((bQYyl1V>m@~r+#f1alN{(bovK{y>Bmgl6T4C2nyVzETdV!7xPFY z&5-*B=H`;X=$0AupuwS&3{I66h1uE4%gaB7fl+Vx#30Xm{7jdWUjf@cIhm;E?c`w3k>npjaoL|h!6Y!Zi)WrNjj^@kRc+1XkD>LFA1$bbQ+w*v!Cz)AH}(=LDy_$FvKz<8#w6wBvb7pMRa#7kO%-XdS^Z{*XjGZ|hlit| zZVs7@W{7oV*G<;X=g*V$7Byb_Vfb6%|B6)1k&mGbmHt{vkBf{O;vXH2&HZU>OKq{y z)q(%^j%`ux7|y|XMDN%lWO!^=Hf^iig*zBUsqKkM$%M$uRb6g$8w)Gu72E&bZ}tj{Q10|MQhRB+4)j< zPNm7s=_@Ls_y`H#@$s>q<`suZiT2Q!IJ{pC&Nhx3#2Z9xnWQALf&)HDzf+Tw2Rjk5 zq@<-ql$9&F8A=#ECKVpGSTfb`e(T?y?XRk-s3nd~W#w|&|8uPeCLbHy zIL>S^>&di^_i^~^htD}VuPaPOic4=T_TeokT@VyL*HQQs-s>`u8;E?2sG^3^*4Fko zUdIdDR99DDS4;X*^yt|144s^|mKB|>&SXHT(>F4gh{LN&;Y$EUjE}S%S)GvRLy&5; z3g~6v!b+How>+2gpp%(N9${ph*lxpSt?82aVJOFa98>xK(l-(RX5#p1v;b98 zek&}bMdbsBYOSy+ian`#Zef)mGA1 zBXQDI-jps%A5X4}60I#DLA)3VhpsgT3-6Mvt>&s-TwF@cR;k>;k@jJ!I>Xusbz$Ep-fRA9^Ezy95|xm^nj!ywFCp(hMH|u?eTI3cv;Da?*2AkS)LI(S=Lsh5 zuO|>?Wd-HQvPKFUQ89&?G6VQG7E_%I3n`WsRNB@Aypu{RtE+jMHH_RT!%m?X{`SU? zi!P;0H8!MaUMDo5#uQAxyA9JaT`Z;isYP@A5c6l5;N%*|-_8|!)7vhqZReb6`T1u% zlgP@-b%)KjGqq+05!ZWjHQ_L~=-*RQ!^AU}4@jI>59huO#+$CJuJjELi|359ct3b_ zhm(fa)Nqn|U6Hr7wN;vqwoeW<8gMmu+wjg@ZjJhK)9u)<9X+4_W<7Cw((QSuZ5hXu zd3!|UO@Ly`PQZ?cSlHXIKeaLqaWS|i1c2bhcalK5-c42P^=dS|bxVDtN8pKp6Aa7}U&K z&J=RwyQ@gV#e}-;y}DwmDO6eb6VBnkKi6!U}!X9_m^(YcNKHwh_COE{&1WN26NX&pJ{%R z%gF?H4;~i1G(6Aiv4w)UXJgK~FOm|a$(x#mg~g-g)}4Ue^iL#5&~EZ<3+II(wpg1f zyFNRCR3kx87h{UljJFR3I(nkho=;7m=+`#Xl6og~EIf%*>xH9}iK zddt?nM@I^MqX~t1ojJO@g70QCQf?X9+cA5uInk!AfSs>tRm*AW!@`Ir@&Qx4BH`yx z3VO|UN%P-{SALdZ$(+jy3o^Y`j+ngt+Kcz`-@gln61;)*4h}|-l-OE9wx^m1Bj8^W zn^<6fvfW;6axXKnTf<5E-p+X||Et+d*4zT?z4D|TNnMvdIlt7vHZl$SQPqm(cn75w zR!y~c2=@#fKK_=0!SVi>|JhGb%lzPtl7b0t*T^M8jl1)Y;aWla zHs{76i0fE7vd{t^wc7h3h>;RDt&rZ5gYYJqXjr+Ro6Cl&F&}?x zz8VqKH89t?#-xvIQLpcU+iQ7!9CsH(Zx0&KOCOg;Lzh1KV0yb>(~txdI^ z>aNN}fo8Z(%YE#qf%s|9_32ez-Drh`d}CwNuWiTci;^?J{!|YyF$L@0mg7a2d>ym; zrk0-gnUf`vyOTMyZyGMSOG~zF^<|EIA8_f_1l`2By}Z1@yf5k8%nm76PP}(tZR0r{@_c!0cMJgE7j9U+zOwff#X$*^ zATR4TiW~|9Tee@NdLn0Ve0WS+KcUMiS3zXaV?CGs_Od%wc=6tX)#yWsw&um&tVkTA z*3tQS*YtGU*HD6${e3OdBT%g@`ZiVPbI0xoZTOaU40Du3#xr28#W~HVi)F!#isyA@ zrHVqdv9aOhHEb^`uRYdHbABY4N4dJXI-2WSl9ZFmmYw4Og)?Jj83mC9Cl1^yRo##1 zT-KlPFa1uF@!KP%e+Szy2M^4?JHlAGh$Mkh&h5{j!Pa{I-!jvG>afW-Y+bQW7zXM| z0LP_G_yGTXD}D>}eqIac=aW<-YX1l3%h*EYwpIRK6;EM%D3PzAu>iFEtc`Mr{mq#f z;Ide}>@&(@O8Dsm!jysF{KRq3zDvh3K5u472JE)>^$s2u zR>$`?5tp+viEF(Pbc%RPwOU*9g$8H%KY+C9x?g=_Wo5N>a4bfKvTQMzBmtwyq(cyF146u z{9S3b>cVfaK`$Og&^K)3Tn;n?5|^VV8zV{KZMtN1bRp{laTN?6giBtR3=N+SS0Y*j z>=jepnn=K^q_tVj@ULxXsBqYnYwzeFp4*g-i;NV0-$Pa{VYykinYw!ZYnpghL|7PM ziDcN@`93ahJo^L;{f6{(v!{D|O~C0L@(7#jnBhVFE+h0~`zaGfJ$hg{`1M1mv!^F2BDF0nh3A)f)z6BMR7+8bt07%4MU=*xCJf~a4qOvJTgI@S3oDssp^-V6 zPtzP%laP>jTrN0+*>E&pG4i~gKAKatIcUgOBy$ww`Say1uC**`q$CcT6@Vj&_}rqq zLhuwzy!cYDr`gnsRC+$CC#Yu?HH#d)C-BM75A$IASFG@Qj3#(RQdNz=tE%iD+%5SX z6Ifx-iLtcu_fvL0N7rK%#p3C>MI0>DJKSB_{jRZ*pSIR=b?8bOOyolrQ(#USO6GHj zowCx1ij5Vww`bk|U6l#tTGo?^X5-lknZ~GvDs+GpXS$wlSR&4S&~+8hj2Il0vA4H> zcV;C}vbSdm{z-I-y(^%llYdsn%f}aDX&|+BA^7gr4VhfjtO~_ceMj1<)(~Mpzf8AG zt#sBB%CrD7axvdgY`p0&@VK}(Db#LC1Pkbg^WoxFCHEkgvA6(lqEGA-ir25%?Ak>E zqE=D z3og_Z%bTe9TG8n({^m{Ow6LIrRgo4_8d?U@l^2gq zdDm+LN|Z51eF}+m-*~SQduk%N5cChGl<~n%3Y~&8uvg$XR_1S}6!@;k$a^!DP*n7o z!UdGXS8>|!-=TdIMo@6-qqOpenvwscBmPsh{`V!mE2~AcWa}lmXsk01kR-F}oenq3 z8xOZ2Pv4K%WUmrz24`U3sDbMxsk51s*^P_Gt$X*tf1ejjH^pWTh7(f&62o+yjyt0t z#>*BSexI4rbOrW{xvJLmd|Cq8hfUB2P8wEW0^6$=1H^sBCx4hLDJc)(iB|sRc`(8h z4osRqmJo-9MZFMA2R{i7R)MZzVj-}W`*}f+ns3c|Lcz_Q_#;fn?;EP#Y`IaG5fHyN zYoc1}%C{mFZO;UilqvZcQ{hQmd|pX}z5Nm>mqT|7!6YV@JzQ+!a@hE0psuF&0^kP@ z^d<;}1D8zZa(Kb*Xqs*WG@8>HgK#^rG{7uA zi2-tOP5(L{M&@X*cgrmk9^=O!U=PqM7Dbn*xtP zX)UB8aOgDln&f`e3~}%nDRMoE@_bzuA=;}8kB#o*H_nT$0YG#!G&KCPvC&OPw@5}t z=CieBdNV&B0Q8-5P_kvHut2{w0_1S-UXKY#42{iqP6y4m)({}}x;$KOf{{T1v=)_s zU3a@YE6mqU&px13Nz4gF?+I9EK!E`Ai|?XO1~rj@SMuvLk4P|dclY;DRR@rkr({5K z^nN%^yL-4j+;Ze5@i-ECI4|)&-bk`JnN-z@0CaEEbZxWJ1|hoSI4VYx3`;`oNi~PRI-WB1Vu%koo)=Rg4g?OZ>fB)+G1dj zt75jk<_D9q39(Q7$?M|cn04a*aBgfN}7BQqU=Nd&`eJ^xlb zl%VTud;AG#3jjh=$tCxK*#wzsbY+7QOHe7pv_nC+Bq#qoGox1Txcxzw*kUrjYcPRr zd#3D_^MVuJ=g*%}NOv)&yeIwx2>+C7b z%*7ycv%K$);UP3MGQ4CSVLiuwcTCh z)`$CB^-9y{d3kx@sz53rHgSEz$;UVd)Kb@*?VMR46o3Pk54|6G9(FxTd;cfy zlCUyAA2d4%ARYvvUjqXX&TfL)hSMSH zL_k5IXK&$l+F>@IpoYE>fQGiV5E02mU2Clb%BD=&c~AG)=(Wlx%IJA`lAx+2Z#z&W zd17jS(xuhlv_6DmqhB%Wjtz=MR7*zmyY zu-@$oc|5L|WfR$HDlWjinJr8`ZoObPec#N50VL1V)MIuSI25w0W?djUICCEYp#}p7 zr;D%YFkPp`3+e*!3GCU?mP|}2JzUhZjOHuTC34yvyx`ERu_k_exNI>40x=jSgYB{1 zwxiP#0h69E;!5+$U?6KOdfi$zHa5m{+K>?QeEMlIUF_oOiledNhlmx=VMTDc`m`@l^;fYF4mH}o6KBslEVo4Av z)sjJX=NU!SC7g>S)`mY5gJs|6d?L;;$Ou^|W)0-U2=Zp|2F?A~?)gQMT-srsTu#T( zkgS&^wO_6yuwJxR1Qad*mS=GqQbs!hIwxfGS1{NAPS`l~JjO^FT>@E>MYq)_DOTX> zkMCfbKnsyMg|UOahOIwX3QSXlGeG z+)%oyVQxE`%2taEf6qJ-KwylEV--z14^8TnWZxs<6 z+x?Y^liB*N_CppjKH*E~*(hluTC^)CFV4H?IzqoGjWd|M0EiT@8fV_evncs%P~5n@ z?%polU-CF|Ykl4>#HAysS{dH%>F#E=oMA>I;oVZY0k8&mk$$;n-$?i=vW+pZ;Si^SF3^jK_#0i+VE+Arop+ypsvp_Lvz}?vFr|2xZAH3{8TQLSL(>K&F>qc9st&7 zwG9%@R;Srbb_-zMA>d=R{}J-#0&Ar}rTC?x3<7Y<)_{x`R=K^s&3js6@`6jBq9Xv+ zWJgg^N=9ZdZhFq9Whj2s;Kf^8vH*0_ZoprTCjEcrWU<+=NeT-K1G43Dwk+{%32!hE zUV_pF}-T@XRxyq4W3na4d0VA*=7-R|4~@iHL6_HZ|8%fEYv zM9lq(%)|ZdYIpc5Fx1xTHq%~#j{wwD2d~U<*fhH}@h{Z_PXP+3uP$s;y_a37|3RT%T@i4$$QqV9dR$KAm?MIdg9{jO$NSDpf6=h(+gJW@7`|<-XE`~*RuxvlXGA0e zy}L+dAdaxva6%*#@E;U>RzHKDFrX=Js+Ejyzu>TZp-~hI%7<6W84r}c6inI!n6fz_ zt$^KQP^6M%16qph&t1@$f-{(He+dGM3{a%N;9%i`$;gO^HsEZjl^Y`Z!lCK|u2tyj zjtcbg>k|TY7YuM>P#jKy{Ee#yPfAMq<;$1&8&IfD(;jW_X6($T3KL4gU>A&sQYrtM zfYEN4O~B!z{LKgoGDA|0F7peu$89&rpfQ_{$1yBe1n{k<>=~ojq#Xcn7EJEAq{bw~ z*fh223Mybjl$5)4ncq(3%@*6T9sPO^_ZZMf83b1f!R{~l#ZU`)}LmRJ8T}&rL zCWz|5&zaO4W?{Qo9(`7cLd{yTGg-g}mbKf( zRuC}JKp=o0>$MEjGgVd|-KlJ>KbrK|r|BgeSo&U320R+!Jo(k4zdWYoe|StO`7*$k z2X2AS<&t|EsrOBU^OEOuUL$P==>3{d!Xr#;hE8#4)(DJTLt|s^80*J}dwOqAF5n*l z1^npu%5?H@K}N(9(5CVU{^m?hcbHA=+|CDsHzQMa z+K({jBf&qEmmU{{V)BAJi~P%JT9bQtt?dIU0G{wX38r9vF3Aj#(omm3L%G6K_-*lEpKR7RSNR>X^_j$5(>fqI{_WN9}v54ffyohAV(UTu; zxG=z+1Qk+h0AvUJxg2*U5S5h&Dz!N*O|gg0AsJ;$7TBoNGt*{(5h~z=zL}9s+`a?A zVz!dal-C)oTT?0kHR?0L4w8A0$6>av^SG(T5Eh|bI0IJo0v^`n0jS>eqNxNhCWN6=bhzDUDJ zIy$na@Hk}~6~wN^JJ>oqzdk#EuK`x0X(9lrRC4jXv84=R8!3^I?GmJ3ofBq?1NFa^ zg{9od@R+m>?{7weqalDpKrC?@0n%Y%I01IuH zm?tPCq{F=GWTv*~qe?6WPRf8g**`QJ2*5wFAfysIq{)F--&9g!Q`QDU_U26t;5bqc z8c`{#QTa6PA>`ACAs7SW@f@+&k%|tIGQ(>lTZS@-qlU&tE8BC4MLLh2>sxeS!LCjP zRAArAj?QcfByw2v=RKxmI3-PmK`^nfd^4ygY~HshVeR1K;}Z#dN|sCEUeF*8`H@cx zIuIy`5_{P#IU?3kV3P6lwdnvEG^KzVla|r>LK`G`>9G zn`isOvcs|0x<2Dr{4r>K%zyPKg%%|pTTJbY!%s@>KZ{-qThlpAW_e~n<69c*bXz2+ z56wsy>VUhu8z1>ekp)%JLHjU~OG^i;4B(1DnVhLGK}SSH1g;viVvg6Kg8}}Toqe+X zI&BQ_0Y;tXZ(aIrmK+rzh?J`l6F}mY+j|C-RL~xn?I$GjRZE7$1s($X458getUBFp zwHqA%6eOseE9Y(wma46i46e+7PnZEME9B1~-B^0&1)SLG zh!jko><`;)|0;t4sQ<~IiATBP`-4OLhgMrKHo)ITQ<1n=RybUDEOSD=%pD-cfpx|J8rR^a#2Q% zw;WKhTrkrbm$N$6?y}`A)$#+MCVhH$)VvC$E+);JvPfxumo8M&1EC>>=hIk`J0~D* z(oJsXM`vdgKmg9or5R^Muy(b&A083OJRQgU5_Fn4yWJx{(9(}*D19wSR6^h zku36)X+;35df4q$HlS?h}e zi5#ven&5Webt4mV44_*2(=awonp5)glW=l!0_D)Uh+KGHuYY|v3YgDBiEjWzB8FI^ z&bE_CX92ODR+y$W0LDvFBBBt4B2CVMm$$OyZdhuSp;z(-R z)veN~yP2MRdJ13~(1hPM8%9&y0~RJ3ZZax13 zJaelT21h-Xw?0kse?B!-rf5!)jvJQ7Mu*x|e<2>JPAP43RXvpN0MfsVt)ehwCKBoO#P zX+11-4FDvZ#ng5b>rhxp?A=-ko>i4+)A5Dvt5=gsmS4E5b}@*tJPGrul5t$g#*P`9 zsX-#gdFdX#N8V(N{Rf@|n#W+T9^ck<2`MNMa`&trV?U+*A6zxpK1<$NTxTj*fiRd- zO0Y^n)5AyQ(QQXo76ws#{Nq1?n2!ni13t0I+@AR}`~S&HsN*V&@`DN6%hecuwAR{% zkLG?tQ}udGa0}(Ba32Y$09Iay@nd&bk*Mp!4n`~pq(qc}ttL{h>)#Ndz9MN%LnW-S zUpFTRqT&8@Fh6uJ0>8St>LBsJX6@$2t>bwZC|HNZZ8Ge>$`EnqmuQJ zKSG|f4VMr+OARpZq-3SL7CP?3h~)BBiU`8_Z%hGe4MaK|=HZ?vf9H^2q%t}7!wcr- zyeYs(;IXr#114!wT*VkSIO$^=m%JfEv$bjC%TH9fg_v00oMF;_w4=jEd%n-qNFztvC^9ql+eSnq3A~tWc7kQ=>2l9pr?XT($8zCxc&=%7&vLqzSH*4 zlG6hqRH$Cj%TaK*8q_jgtkuBE_hS>41fT$gH@O6p4_Cj-gSqdh{Cc4`w!SB%lR5e; zTb9t$+@QVYu-%k>3N&J7oE%p>Z}9? znCT!poJ#@jp|Pn6s>`vZ{$+N(b-o~i#%Pv+%##qiy1T2H4Zo6cQlUmKhgt@DWV!hy ztptQ-mwPFfJ!%W85GHX3L?oMMi4`z@BbiS78&R=P?p|#)lt{@+K?SFYLiN+w9V10c zYJx5=MI5CfzQ8p&bf9*t6vRM41o_VidEsYYxN@sG4qS$hor|9CuGi~v$LHq^j<^3( zss?)K@sS8RR`r{2Kp@8=An2d1Fj22ChLXsCAeE=OAWT#EXvt>{#|d(J=zMn=irF%C zd4-@IvRdu1^YZcnlpA2+x_D<#8cxg;+uJKC9*!?-Ys)+$@W^X2oZJ>^kS^p4N3T^K z{kzHn#`gNe=;6(!4(LMZlVnBFreZ zYc_6tMPc>?^#qsOn)MceyIvjDl9RQlDDciG`x{!_(uFcjPf!ialo_~-&{9+av~whK z#-$+7Gcaoz9LPYpFJ?G}d%VI#{-EXY;bjdmpBsA=mF!cpmoL8ntL=C_P6s+OQ#}vV zp~33E->%WebbTfNbRr6u(Whlz;^0?IHFy#+K^yD@8mfQDua`iB1$4M^!; z?9Z_Qt4xA8&1D4Wm&Cg0 zA6#XVxI+QA<=QF#vkqIR(bTWtrK?NkuraJ>F{6UZ_))TR`ngzh80Gfo_#tC7@dweg z&#Sp}r7&>@<3O{HmBtH;igb)A98_A-ABiyMmQPzu0ZRyd!?MDlw~r>+^97xA@hh7V zk&fe0s*$!24^Nv{sF2A11`jwn`inQ$v58K{unx7_I4Oo=&>dc?Si~^Uvty# z3ju3hK*rw#Xp%Grq}r4pKghs1$^4hmYyF$?@6a%_VJ`;cs{nH{sKB|c+}n=aAlC_V zQTOfs_5uqJuO~w+T&CT*Ffn{yx{UCYkJM30&}CQlmvhi-z6k1!AkbRS+7 zWt@UZ4a>wx6g?v&6TPaue}fW#LQ&$fv17*{W5Jy1bn{81dmb#Hs4SmkwmOXP_smFi zkL5ejJ>2)V%z`=E6HdxxJNLIQ4C3>+5a0}_+1!7DMZTI_dg$KN@fdE|c-YO>BlD@O zWY^c%H=Qmf2JeO%)Qff9wYH?{)02}7V7u+jl)?B|Y1YK#@};Jxf=GW1;6A`YKXe6i z4&>v<%J`X?zk^T%_ZW~t_1Fpe1_uG^-^}K1YHBhA0#qiWW=HiHH1#lb?5QutYKa%eK*gQYE&It0%W{))&>}K=NY?y4$xINQdk;o5- z823M0F4V`I;tlh3pENZ#o}|P$tr`{rD?xt5CGiOi-1`!1zMG5PUA4<0&Lvxrx_bHY zCD0%T6W@fqel5_aO4!mLCjr=(yo|>e@XYM_a49N18Pm8pYAw@oEyF;DcL9$4{KD!1 zW{m|vsEubU((~iDBp?OMwLt_ec)J`$`@2i(9ee5(>X*mdAcAy>-jwDo_xQRa06j-_ zL>oke<{b%6`<3Yu05O!tWwMjWSPG6j!!W;@`suYmklb)W*j%NVIj#zm^cldl3{YfV z6yQHOIyuX*ZmJJUr^DCA6oyd$lTNHyhPX3PEaEsgv~(xd#j?`&-15p?B&eFteS>~v zMCV;n!-LR-zsOH*zTVsjk?r|9Ht|e8pIZEdT%axlZ9vhlLHgqZJ^-J;oy;?*x1re? z)C)uh-^D-iyqqskptBzznwSfElqm!By+=J=jK%Hhdwiml%*PC%2j$al+kOCM-}Y42 zn+S<&C|Fd$dkGd&_xLy#Fj3sKryq>L#+#GKOktcXg*TM-+o*2Y0{8M7Zzi$sd&qY< zb~>kdF2AQngyk!<)Z+izsiYj1N3h%cF7JV(94U1+pOn-ViWn~NZna*eoUPdY4N0}t z?bqnF=%mM*{P-lWkBA(IHMC~oLYd~^U?>v%KKg2Felh&UiC0oq`W4?R;({TK{6;?v zXS4(ufCT3VbBznd1qGp5H^)8OC!j=E=HnK01&cG`xnc^>%RsTuZ=K+R{9wRG78e&Q zt>&i0sxXC>D4}pFm^+!>eQNK&!#KZB(4?@3Ts=m{3KYEc8R_|B6jOowLPAESJER2? z+FJk?zoTFwl3ND^bB)sinXCPOBXe;f7a#@yC1v4#5~2Y~u9x6kATF*}7d;0$5?82N zAdepuUzu0^l^0M>hJMg5iv~#U!@pFqe0Hbt6#kz@th~X;$?31Cp&4}~g6tRWp&3tL zZ@ELkUMgA`sPI)GqDIW^*c!bv^gFy+uw;51IAXxANSLIvVG_wKgGUa{C=+O|mdT7r zdyV+F?Dft8R|Ts6$R+>zl`gWkP!pbdPxYar<+)8$MVR~Tr`6B!U*pu9icyug+{p9A zo4|FaQ>8(d{$OhcNdTP^G^EC>v5+t$as%P5r51s3d6!0+{=kqBgB8CZ5QtfEB!R-2 zzqjnDP+c!jQ&Rdvxjl$CJvCC?T#2rPw?AGHn<{xsuJw~igmqkL`;M2lG3!%_5_2UQ z!^E-QYWPmK_d7YrSuVJBMem-H5-6{3*{#8$DJ#?Mt-JVRT-UMtKyPAx?os=o;gFx( z>7WzrGfKNbNe7Zo3-a#>9Qs4(3M&sA}1>8FxF#j@2OX+lz*+#I9$IlA!)vH%9fPO-^Ry=v~ z1lq>~NZsN~i}WT+bkcwh1vP+y-xC-Xmc4D)dj^3#mxlho03&>!Z=G(iAqA>M#`h+> zc5JnJWoj;4%K`DgJeD;A$SB%OF=u&sSty)@k7(d@BktA(^afFJaaOlM(=WchuK!EW zVWL=z5Sk`9Evb8aNlS|al0)G21LN=oFt*PQmq>jVTLFBJD;WkeLwDm_0_Z4rcXw)4 zZa5%19(M9tCcYI=2}wywGIsW85~Upq*VL*Whfahh|GfUYHM^jZ_c-+HOvV>4XAPS8R7AZ;c?6|SL%@k@p>@3B5kjU zB*D{cO*Y^`-4zgGWH9?l?iN|Lssje6JU{uu0U8K^T-hsU{p0^i+ zNdhAZJ+D(;zIff=JSjCBr`i}y?WmWZdcy2_VhA9pS1N#r64$_RBLbKUsQK_SzDnBT z*>VQJtPHD%8VLX>+eefB&zhQO`uULZ|BIHEpMUKJgmk}LUh4shn<#nyK44!S^}Y(n zu3Kp9^)38Z7YTYM$OuqH^_5w#^+xQ?HH06pc2`hZB2N~mw$OM2qXQ8MN&n<$-+yh( z+REMsw5`r|`6)2Ip6Fh|bX;#`h9eb5$>qFqF=f_G8<=Ua5wNqfqt~cJfW`%9H~?VQ z343e@(Nf|8;GIi?&1;oIU@u#;fH%L6R`=I$PKBUl&GY=xhH%3dD{A!K`N1XOqnaD%%h^*5mW4WsG-6W&t%@S z;8&$Qsf;oWWz{2+<jVU_WJPWN@hWVBwVa_LlFe!Smt* z?BDd!E(ws!@ud#dUie8Zv{P1e%12J@?;luMqJt#a(;(vvhF06_+9*0EPVa1M^sV~^ zy|GNo{dU^L#ixnMNpfy(0#sB~xj7KSp1GaXPUiO{0E?zo)27LvTqHnuAeMnIbu$mx zmOV3+QoG^e}IDczE}_?fk{qQkhYzzzf1!`>N-WKReF5kptPk zF5iS(1qPc+h~JE0;NrqX_4$G5J)qR&`hw3KfA!V(_ys-}46>Q4#zO!4C84xm@ z*r&_~zW0y(d?btMA~BFvi)GY88W5HafBdegp>Z^3qustX*w@?N-yV!ZSE{!Pmve8m zSdM>veeH6xDZi4vpWU-cPfOblr0(z66*7iKM&vwngc6T-XBQ6wILp1uuX-g%1VJnU0M4LLy!cUw`=Mm%pkkCiBIOjj~gcaOpO%y zEeysn{e>w(AlT|lfg&x~Uiz#vVHJY}7me8QyJ+4tN6^-Adcng1d>`-3vnUo6PE7)L zPoZQkwDYOd!v`sz{DS<5=;(>v(`Q1hX^)M>kHry#}s|?>q*PaWQZj5oZWWIWBd2cptl}pFT5-to?}vM zeR2Fw<~o5JR~mT0OHcNsKZ=rG0pmF~wx2p%nz)Q3n`Kel=mgQ1{{9Zr#wmn0MwfZC zzkc^49m0E0F2Y)#3v1r%QyP%uE3nlb%d9$w)6mew(EIks9`ku!=Ogh`C7ofovo^O* z^iYYZXc-EfMuf~!1gYqwsQuSl?N^svfxTR~-yxIJyU+EO^&}-_1cmj5I;EQO#Q zVo2ab_fyOtDkT~Vw^4zCjjc~HeQK3NMejd5XJ9>#pr2-Y$m_(D7so2cm+2v~3oIQKgXamZW!V1)Ag(jaqg@6=+Y6Eg44Idw|`^AA>U0U5K zkwG3&_Xn<~t})GgJPZZw$%8LS?ejF?C^UmSV(^s^#>78;MNhVd>5v0G=3CaMTpdAC zsyQ7N=YBoFbQ^Nu$M!Fz_y1tx)^+~p`R=g)`zL-r7&A-DP7qED z1Zl$OyHiD{^(8kqZom-FC@vn}tzNrGi;407{aYh$gochzL_y*C@430rsj06ZK&lUT zATvQIKXC(_dCNF*$8_P2MY}>AZ8aG6SIs? z_u%vWJ4VTEBt@SI-YoZx)1d zg0^;85~s~edU_P_S9fp3E8_d1Gyzg*j0Z4vC^F%_*~*0YM7@^R2iw#D5VEy&a2h;p zyhr1|`UBI65@yG1vgd0++%tb&1r-3nj^$sAi_rfyAhWa-18ix7_<${ydcfR4Kt=T@ zLx^WHK?90aAjrV!P39{@``g|p9uRFTvs)F9AKKtI+~cTXQZc7_G*@Jc{d*AbMtMdk zRp;irvi?UU=Ngq%7R7PVN+L_mM=EGwv7}5eE0cjl^HoDSE2APck?g_HM3E__`EHdZ zzM2M1l(N!N^EIVdnAK=l7TQC_M^s8`;wvemRB#TnR!wWo%!m1W?>YD0bI&?^umAtI z_lF3%bVvNvN&Yg}r8ghhO7RxPoo8n%6%u>SUToAzS6_$28T%Z8VC8tv>1!Rd#E;w~ z*J*cOU5>SlZ9Y#hw6L&XuvjONFboze0oW)Vy2j16<$C9h_s2R1+^EM)czh=+fYlNZ_?ej4Um`2Jl%Ee-b~!M2bc`6~Xhf!J-LB!-#cbJP1}G$1fjm7N;T)!CXQMU& zX4i>EyI3QI1Glk;tvIBajHGPes!;w`(m|=1dv7E)?XZm77P7xRNZVGp?XK2Mx9K&o zO9_BK9iG~CAzaYL^l83{fF>pIc$OmeAcDh*Xn*}>_uP`w()m+OYSil0<^|}2^aEm& ze17VK=M$98%4p@gad*8IlA0JAuZeuQ<~^2cwNk&n_Y~eXL%O$qKRL7>yeAvLR|-%f z1gK2mWq+L!nz!JGl-|;jvzS{5GG}wvW>64x|NM)6I;@q?R$YwJZ|`j_+H!PY zgrie3YrpghKqmGX=!A4 zf`1*mQQhU4EzlMTl z7+@RQeTc)i^!+Rxap*2x)02JQ#2bPxK=14tj6>Lx;7igrAcXI%9`h||w~2c_&2_~c zz;~eHf^EA4a*2t`9Hrd|a5-upuMEg`h9qGw-YT%>D{-hj6j;Ceszv44I13;a`kh#* zZ?;&Nq88mT7Kd>Vvh!W5a)ST*rtl&UX?xBUR0kD~~SfW6{*^`=mL*b&OqP zJ!p+}jB7}Mf@*~K*hqV#f+sA9iC2(+#fr7=H$Ki7lUcL+gq&L+v zC`{B%7j?5+)~S&=T)CeZzLwPh)amh8F=KQ*)zOT-XPsi+YwQ9CY@uI=}k)uat?4?S!SJz(ly#DY`3lJUHQJmnSV4 z{qFer_q-}P!=}8f*f%gR@Pc6^Fh1V)_g^Y5F8*mMSLd>T6AlzzPrGLEEjLPAm+^uKD)F}Sh+@!Igy0M94J(5HQv+{m)!A1eC&@EC)(eq$3 zi(hDbFIUQ<;5Ig4I~bn84(4HlyKq+{5`9av)8K?M*+5Mbd!PWqxyg&CNmLDw%!)sb zIBK%UXoYexcfv1c+U3E)x-XKUC`0)gDCj#Anx+W2y6p+^QF)0rd`{yV;PAxp!O-Wj z#@)7ANFAU16Ac!>Tx2){N!@v{ki&O8vOtCGpo z??O1pH9~fMn*~eHB0tFkfg9Z0l^+e+afeyewKMa_Z-c$s%3VNOGJ_l_*+iLf4Yjw2 zZTg?7Q(eB4brO%gAtG-QG3i0F~QVywkwuy`rj$nKc4aqa&Nbh!J(mp@`a|R z$JQI``8&DNGLlnLrnv!Um$v3=Gu{p*f``m(fahJCA|>Mtjvr3u@<7)`y^THr-ev2< GlKuoB%J4}5 literal 15322 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 V+z2cI{AL#-E2SWrC-MIC{{e>+HWdH> diff --git a/doc/salome/gui/GEOM/images/neo-mrot1.png b/doc/salome/gui/GEOM/images/neo-mrot1.png index 6cf2ab91b6fe7d8fd92a1ed0e7d2d6f38cfe66bf..3510a636cc0abe83fa06a3a33f532827c2e47f6c 100755 GIT binary patch literal 18880 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

bdX;hIXvHBq8d3m&(xCrwYHmt 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 z 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 IySd+g0CFFeV*mgE literal 17583 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 diff --git a/doc/salome/gui/GEOM/images/neo-obj1.png b/doc/salome/gui/GEOM/images/neo-obj1.png index 88a7a8b8a892c069aef47857a6ebefbce68ff238..b7edefb7ec900715cb2467c088cf1b0472f99dc6 100755 GIT binary patch literal 15918 zcmb`ucQ{;ayEjZEBx(@Rf;%K6(TUztv_z0d^iGuMy$*szFA<3$%0#q?(IR>;(M$9) zI%6;xj4`_Jn)})N*w6EQ&;Is4-sAlPv(~I~t#zH(dH%{N^0|fz6*&tz5fKs96IDem zA|hfm__=wR6znm58{tkw^cT?+#fPta(l%$jAtShjj-Bz%iyuD-(Tm^vsYt6B+?~PM zSrJjOCBm=s+>oJMsgyI~>7^fqSzE+E3nlMp(<{<`dU5sIX)w2HXPw%X8yeq{5c=R_ zZH$`0L7+T4z7r`U4;%1ao;`##!fHj+j>maYCeQJKii(Q2)@AFFcS9F;?l(4iyE#fI zfqhRClZe}=oZdx5M0^^c{D6dST7!?O`n^O-vr|rCgx$BVjy3$pM$2ur)P3(bfsmW864%3mYHnh?Zrr)q^pm>L;7!U5NYrBOe5_1flDJa; z^}Z$Z2Z#qg2PYrUAtUFZB>I`-xU|a`D)GzMA0xUcyLK`QAFI)^;+v-(gx+hA`JUr1G0Vs=ggeJuM%#CL^M5gql~HzZ__-CN z_W9QD2QkbQrlmC&vWSd+^8QJ$51Hs0Vr6X2PU? zJFL`A<;Emf=SIG5>?vlxvd;|#~Xe1Rv7n$_5JxI zw-sFR)I5h_s~j1Ev52jZ*_D^0(K&M0Wg`7_t01Ll${ z`I@r(ga4c&P{CiFuCeN2QUuLcZg2nL;fa3{eeluhJon{1N4$zW)w?rw#)pj+!A;aQ zu;^En&*e}*_TiXGN(xfa3>eD@-htXVK=eUI!7qL8lH3QCwUT2C)*^uu&lZ#N4!ZmW zD%7AuzkF#Z$NZ{@y?5@-($gf|)2m|$s|e-or?}WeQytt>!|bIRbA>MvBYpVIM3#Sm zVRhyL{E+((E6KzG|FezD#h83Zfb%)cPfZ9PCMfXjBsAlsc5;8X>*ubtp5pRRxWGTqoutC^g{eRvqP}_Ps`9rc&Jfu;)4y z*O?b=;=WTs^2_P@zHqnqrJ}28sn;%Jhw)v8{;dcU=ja<$1E$Npym0TtrSC{$dT9T6 z9&>&mUni2KW;Fx}>vay3UF0xbJRVzvrX6!VRo!+7bB-&p7_@f}BRQ@YQTavC!ttuTScm zJVI}}z$PpxXEMTsgC8`M;k)*kB!$1WF;#s!Ytj8vEEcmyw00PrvDqv_8uPi5FsGgh zVFncokq`Rr$+|a&Nh?QI?BbtD9vfxXyzg%QAjKTUih!6d;ti()2e1misO*hJFP>fQ zwj`QjZdg8PuZASoFb7p$Nw!G5H>;IE4&H{JcA3DHw7gk*!4YBW?To7IL>ErUs8G5K z_1%ldsZ^FEnT+eQf`tu>yOd#xXhuy@mJ4!+tO6lW@8%*H3Df~0@s1h#Zk+u%vS%bd zkfrJqs!-Ku$**C%KLW2Q9o zhL&m?Eo{0cs9yGT(#B2KHsJ8hD8VyR#5_i#;xL2pyx6f57wfXvI4Qz@UG~?GGm37> zjz!$@sodO)pB3_<631k{NO)d2`)A+#aa5G|?3h>&>KiT{{i2)>5@Ws~CzVHbR6)J> zljS!lsZ_cjJ4uYBgwUO=V15^U9~D33IG07%#pwq$TU6r3I2~dsjZGe z$!R}*DB{Z)Zvc$p+NC1O7zd7nyaFGXgC>nL44tXssqiS>P+JbKLA4I0sr>!=@`neC$GLEhot<UmTF za>&Ik!FW3wcR#Wf8<~ajnGa4hbpaa{Y9u}N$NV?Cc=h+u{udseo1Hh=ZWqV39EZ0c zP^8AB(92atqj+S$paM@Tb}HUc?Gxd5b?$Gx`DbSz**?s9_1E>-s|ljzG2tn4=CeV2 z8J4v9X}P!-HZyL{&la*sx-X_dHk?{d$n6s@Yw1O+dJ4&Atl-i0(VU!|gLj*+j}eK| z($eOu*H8*@a?&ANj-Fp5Y|E|dM@K{`N{KdYVMOg}*}&0SQPKTR+CNmFKPXhYaz?re zUz;kkuT=-%Txe^*onYzxF(D4xYL{(}+en($dsfm()(?2a$K64Qa zfQ$3`*fAbsb6SIoVUfG1r9JW{nvq|}EIL9}kCSd}F6dkiJzi+j(sm``&KX?DeDUI? ziin7Jw>i!0cQ-#jtM($7@!neQ;>l=ps^>s;*6*y?ZjLo8Kq!;PR^U!{(6EYzmi#7+^v@gY6E z&-Cnsk(ymLqGKu3swYWyZ~Jlc;lRl$^Q<45-$9(!q!@aIp4+9Tu<}z)W3DRZQ5y%C3QaV5(FDhL?#gB28GR5(LoYSl+CEa!$UBVaCMBc zMbleiK0k*SE|V`g7Df_bFwOWaxrq{268y9~O}t>BtYlF4r@QdEk_;M!qYwI(eTxg> z9MlC=?pw*NZBOVY_s+QGr%q^>+T)kbeDRjxtyLTG>HmD^i5}lMBg0?^SK_O-B*s5a zoh^23AZ+ZH>i|-{$7${;o+_N$*PAL4AFptjj1F{XvyM)gJ3qtA9xf*~ACiXNJeYP6 zhw6O~d-08IzUE+yBVFwfhg)t*4-~GUA;3{GYo^;5y8OXRH<#tOF6Ftyqwvk*) z$tLm%#38ot%=uA8W=YA1k&#!|1&lf)Xt|h#EiUpV75^nC$5uA^OiPPS&Tr3btXE(5 zc%uwbj^$+$vwLNI9L?dr(*FX4XeaYM2(#>MshmeW682*;Al^j%_H32oZglZW%(bLR zxeKwx96%c8-30OqzNud+V87$rIQ3fO653Nby*F7nRLp+drTG%0%X|}YdmJJV6zE!+%!lXJyu9;JMsOdJS;wxjK*!&7gg%lw@!!l zmt~*z$H)~`Es~EF>GxPcjdk+8 zN+0um+vgLGK1XYLhdr?KN9Sj!rOEtNa!%amej;qrUVjM+#v3{{TncXu?t0zgAdKA( z30HGG&(F}?eMg!S38s_sO)d3dA}h~FCdS8^ax%;0cf0N)_m8d%8uacl4;PfhmUD7( zh4LyJHOHmP*kv~$dy;s+D=7vNw`}Tn{AY5cPsu1BUW-vI73)U2Ep(W2A$CvP2MEVy zKcl^ZM#20u?v86jDh`Tq3kxUk8&=G_X*D~&F{4*Gh`?>4 zzlp$^f)j)46{flOOTG0Q165N(Nfth=H5_u2iYFAT z@xfwKg=gIKx+cE2d36iWI=t;$5 zIsdz9Vu>^7$4QzBGs?B@Q2@_GJ8Za!Ui3gKcxa{f#T%Z9vuYe5u%aG-BfE zDpct(N%s~Ghnv|t&(@^`laM8?8pGJ(9hR1dxlicR1b7aGg(VX|-nn=0+xPF6p*>1j z%CS|y9$uh^CKjLJNiM~bF1le>4tAEBMMla%b*cHT>^GK2Cib8;j0&U%tNkKPnz89= zqXwy!4tfN6-r(cl=Gah9@&I=78!Btd3L%59TaX?v^j6zmJXd{TPAuk%c| z^NVFK1p}aB0}k@ops?Z4Q8Z3#Uf3Mp{t;8Cl2I&QJ?rBZ;JSQlQHny`?d)%M5c!yx zu4KL?oE9ewkvA=&3o`AGhU&X_cD3er&Ae+| zC8O_nFf6z-XzA%i%q%pa@GteuI#P~Bl{Cl#8x{1z{+?P!rTcJy{92z4EI`LXD5Z5l zlI#2N-Wt8z{i<>FZxcPmqO1rwgt7YY(zOZfou8=Zuad(%mYTP4i#x}6`CR7v&w{P5 zSUU(;m@yOJ76@G~)8!Xam$!fVjr`W28Tm zfpl9f&*9Vv<2-i#vcr{*sN@!Yfro=k;uL*AR0bm79r;=JLJ7#3qJASy%=LDXqI$*x zjFbBMl5m}<4gD$#>`qPk0mOvz{bUut({8;9%fV^d+?i|*epSQ4fzPEYp@ZVu3%Wl*`y|~NPjO=VSeibo*CT`>i9e*z&OiMFQ#%(NjC2#l% z$hvQ4YCQjQ?!=BV?;zh}*T7SWJ5K#+G*qKzlU95oCnyg~N$iWio#RXXX0-tur_LeHSWP6>=QmPPEF zd21L`>}}_+zw@a;)KrPQoSvnn<=S8tnVjFNK*h>`Oc~)}y6>=4nWQT)j1ZoVdB}@x zmq$Y5mastBBY&?>2Ca`TRR>gygL5MzBGLk+y;eILPLCf6FtS1w<7S>HTWjp?gBPuM z>w!5~ICRKsV3Bja(D>hN6luYzW=kJ;tUHAhgtyEV^Yn}a_OXs^a4%KdA1jx?#kZ2{ zw6u|KSATqr^i+#r_Ml6zJ1qd>JSJ%CYPW`S-rf zf@2saz~fng!h&f$&%mL_M9ml9sa`X+d6q2skbrcxuP2n4fHDG*@1?h3MTXI^_P>jy zufq1raJ?{&b&KH3}oY+@<7@Ph*qux;V~% z=gxe*_jy7jJ-3Kguby>Znv#ZwM&!>VLDPP*#A5St>zF%W3fp-Kr;+|!_2FQfo{=%U+3d1_zg@LXL3vx< z$q7WDW|ecyS#O{oKhyIof4FMnXOCW^xg37Rp9An8>LM9boYb?l`w0MnFJ|>|2s@of zZo#~RB7gdMV4A~XS*rj?@PX_s1(yWACdQ%1ZH9Bz;iir3poo6Ft)^EQ$c72pmgjIh zivZBsIK>>$mE?e92LgF|rKi{e=!&IysxP)sBEErF{Ne2Pp0qe3$kQ^QU6~+dG?6-t=qQ&Zl(c~^cw_KkFHGPH;@``Pw7or0?0{-p8OBw zG(u`mG_KfJgG{N@SjGY-s-U=z{4HX0C01hAY=2{tsI9%-;(pj!P_wPjBK9z(u{N!U z4(lk+N*YQ`l-TvI&zhoNH04>d=V_pVa#lhts|2Y(I*-?WW|*0hRHwcyYNpn^%(8=; zJz(#J!7qnq@D3k2X}X#T8vMGm{F9T@ZT|_#6@PX=vrw^X+y*S9aqUkgNx`f>Lt4dY z^yc*bF(Sk~;741V;?%D*M ztE07ynsSHN0F`Jq6Pov`mD=tjmiAsV+NvonEd}8v%T8lm#vI=I(8Potr0E>{@gk3{ zkraeeEkE4rT0C{}YBL?EyTz8_aSUfa)*|XWd(gPuBl}|a(d2?{zxw928G)^^0rb+a zrb3Q-s`$a_86B3xaF5CRWPv(~Pyf+ChFs~S!@mRHLVEGzX#N)(-(i{xr}u*nv8JnY zjSAPxE>(8)Et_iQKJK7KCNXeu3?vI%uKN3$e*F0H0OfwZoRsR^yx?Lck|Jc-D_b|e zK!t4X0QMys(7yLnj1VUvy%U`s#s}?ARt)&8q}bfk z*12!c;7|=v?J}dlbOtWpc_vDAU~0`n$F3fX=hN+Y!DgfzEhA%xDaWaOPEVA$9}ED8 zS2~IGL|s$=^0xcX9_{ua&khhTKfVH-^0Z*TM1Xw_BL2?7^FP7$ zt0#(nW50t>)y~@a-+~PKcWLS7+-FER+NKHk``Yml@5S!Gfz9&c@m^rxXOPs1{?6Oq z^Zq$+|BoBArx!)@kB78|?aI$U@gBE31?mhaFgIhFMRRr5HxZSB04>5l*C;7|i)=A? zw0j64$Rr7-_urSlTgLg>*Iu#tzS)E2{E{rT?7MM+9RL>ijei{j)= z5C^$~w%#$XBH+Pq4E|%@Q)=PbsJFl5F_`T$MLRknH(T@$QZ9w9Z9sD^58V^VT zG1EwwHZRrtQD{u6v7Zsk&BdK{muZMQ@$SJ@+I;l2F*+?J+Av5Vj z%}PNtABU47#9f*m>~GHLZsINg%?7(jAt-{b(ElvJW$+GBChxI&wYcF(Iz?Zjf79j4 zQl9LC`gb~#D1;5+;KEtWeI?!OtzUZ)bhxMj$Q|K7(fY8@@LJq+2+1n;Is zU{MZzaNu)Ri4VGV?b`EV6FI_1CaQ%Q6_5s8b4akT^8+4M35VBxQ)0Jn-Evv(q%CSV zvICibko!4xoP}#=`sdE}E6cdxtxRSWL34pysS+^P@m?#lW3|pQ|IRLVw_9@Y8*mSR z&acGEl&-9ae0n8s zV=+#$mem^@4sjd`8bAk8dxi;g^=8-KR*l^C!>#{5ImGH8tUg*9fSE431(Y(2TDzbN zD@8!K66q8g{7!erEayN?FPMQkVdOcgJ?)1sBwAis(R%*8Y3x@aWV@M+VaE6c&#M9H zC0o*S{F1A*sYqH@iUxH6o(dMUE8QXLWf|)jHU9D~BIO}sj9=9*`CV4i!v;ByfbxZwVqL6=C#Yg(@;-EEV(hp>p&cwiq> zQo6X}FNVxwuw*C{61juZH3h&Db1_d0fcub;kPo_l8E$04|@ag<*_SYkYLVc6(4a zc7*`yta_lIleaviQ-m!^?Z=81LMR00n}SJV*j^q*n5Xt#hd7C(bl=EH`}9c>=y(43 z4gSH}Gq({`w6=Bp z{*bDx_$WZ)^k|=ln>&n9)hnGfpFSnWp+`I3W@=#;uG1do&o$i61sQK)$H#UI&P)V!9lP=oiGX&Gty+xy?(Xi}rT`?N1UgRrnil~w z7=G5D=54wCSd#QM-_4uBCiVV1BZ-;|crrgXr^?iN|9w)FH+n1<1q+g|(r|JT_)mPG zS?-|exO-HGl&534^*x@%T+&RlM`5b2&Jg`Q~FZHpxj9* zw2d^mmm3mjT8)f~P<;@KgQwnq(-M;++Mk^9;X~7AP*pl$ScBhuDM+c(hzIM_x)Bl`d|%cEc`2Zl;ePJs@2!%XK31Fz2ZJPD1+*K?xY>!R$H;a%g; zsQ0IIPXaEvqk54!LG|xOt&u+lb$37;fz8H5=^h#ppPiju=J%Glsfn0Ge|uGgMGUP9 z3BBe<(a3dIII_YKK}Szda_6LQ;+d zx#OzSnnTF|I@et^ajVMJNH)rm~YeAtd_%|z8Lw+#&u5qG;S5g+4HU#xZDF=9@{eXMuN>FLO2Pv&Vf zHiQ@q$#3eG|G`@Lz?;Dep43W+vPmF&;0aR<>B&LsJvC^vlHyY>J(x8JW=QENMN#9~ z5#ju8-vDztppMeFn<^!e9!j#QbahphycxFsS@v_sug)C$^5iOQ0#Sf?)w@>-CQifF z>eUu)f61Roe#V?w--x@gK`nz@TDKHOd(hM7Q`Y-ERb^O1eo?nJD0lch|Bz(WW%;tJ ztLs5Pppgb+7*psLM|8xizw7+!=~D6p)6_4=$Eg*LPoLor18j+^B2<6hh2PHp0qIT# zfGZu~fvB-&6Ym*cT>?YRR=xwiw1u#0W8~{w12wb$17~owv|^?V zqZ`nKaRZK@eg3ImTi00I5eXQP;5TP?Z9O&B-{uZNEI^0{>UE5=rHkK=J3!6Z0s+!l zVEEY3L0dlB5dc@1X1NouWW8wR0NToqk8JtOyAm+s`y^(!uJ-eU07cInR90s7<~b$B zb-H+6bGBcO2yu|*H3LoLm9uDJ108AA?o4ui9@XfaygbqWfE!4^dj>k{ETF!D0_!u) z4rqXChXxz*>U6%SCV#+>Btu5Crlz7|uTqCeksH)x;7W~i191H^Cg514q@=_!35Nh` zqFc4Gx91T?&DOm&Q>!M+NE>;-IPauq9ta}j@(Q4yWv9L@iU=zQgs7d>X?b+q1oit7{27q@15(Fsc19Im#y1Kd;it;8bDL9t0;^jGcd82L^2oQ}fA|%$Jz z9X5;vC}X(ljb#ismvUl4Tec#L#2dg^+a0c?DMvF3u7uLa&jVRg_HZO|4>QMc`9#GJ zZ|q$bbRGx@S)pO&N+b{LuiLjTMUP&1J8I3pW2AU%=n)Q1e8Wp+qDNUvv9;!5DCx6w z@y~$)$Ak4M-U6#`#G#}#-!x(J=7lgQRHfLYK3O41o`S=;6JP~jU{>&IYyMlDanWpd zxeM5t3~vEn6>*-GodrnhgCihaq?NONyui;PH5>h*JuQXTF!4LQ4JwPz-k{24xj!Qn z%Y7msUQ56?GeoS&Pmgh^+2gI8z|*6;lii*eR*5)3y4>8{?#<*5Tm2Vyc0(jyg*KIs zoAhK~Nvzs#p;())7JVE>xv<*+wG=iiF@OWd$8{|Sx;r0Av%8OQ#{M}8XA<{dB6=Al z@masjS{QQRLNx2MM74F$$_6(mCoi~twO72LunjCZRf@by2k(hi6Y-Cnfdfatd_pD} zI+-IX95<%QqfCxN{=|x=Rxd{J5;4g*@r`R#R}A4M9K^$@S;-&Z*=MA{ zEnH>_-x%uGc-*B9CuyA1^z!oR6#o}IB6|T83z{NE4i3$DcDZD6PnOdo{L)YcbZF@# zyZL4rDCl8StnCQr#y-N+@(MP#7&_N$BgNB;T$kE!hO!Wm5Ey;c*%A8i2wgnc7^F}+ z7bw$sxanMl(!`sU>P19Gngdu*WE6Oa>`j+pOzl$!QwU=3rl@ElSYua-U;|_qQRR5{zSY4jX0XsJry&&XE4@IwAT_NbHqy{l zTqk~d@om>@@-g(kK{}%1uZ;s6IkE;j0dp!f7^riw7h=-G_22Wt%=X2x$q=I8&EU^V zYDs)o>u7;qKe%r(eu_P^0Zifd~xamO+Pw-bmu3|T7iE8dOAYy|NMBtZb8 zZqPcF8|)lHf-Ak#eG0}wC4Ne^u;{75_M#{O$*D!Jf#I)IC_ZKGxn@f0JYKYHza1P( z#yMW1rMTBu3Njr8jNtZc&pvM4bhyUTo`^-ihrE05Udz(XMT~djQFnoP`OSZYLB;=oK^Nv-Bs)7hzk-ByvR~PVEUMkIu%8H^yWOPIvvYHk4v2z*c=EnH2#CyUK*XT9&Ud*Y|NHj{ z!1sPUb)=)szgOI0xLE3JYIZV`MZsY;dy1`Eijx7dsFD9nc?`2m*v-dbL?r;!iH^no zionCqam7Kda{+i-R{ChfX6}sCrrxgNSMN8adOq{bWL2Qy;Fs-SNN^}=lAgprK_pe} z6u<7o{}05v=EbT5*J}=?k?nkYMgnvbP$albMN|5Xr7bHF)wm=>5@$~lX5eGW?vAV6 z`-x6=+q?$Y#^uLh)cHx`=>pUKV??}jCS5=Yj*PrQnIwZsb8iW>pF|fo_Op3UKLi~O zC3<{SGfqx5Yq|5C0kjEI&!+-bXZ*d~0WJ)A=;%FBirAFgpq4+FC-K5e8uQ|dss4=( z3T(ge2g7!zj*SY({ng$>6^@41{a^I$9iOVHXT2%Q1?=(SY_8RnI&EHVZqjHmp(?mf zhP>M=#q}ud0v*>aUsRG*BSLAWYQM%_?INzf*ej{}Wbe&z>zTtgFp9%)EbRZOyvH?g zin6fvNp=HRDCIIwBr)q@xyqoZnB7um;+zt{Y3hUm8uS%X+`eEXv=)-RwxryX@bRM- zZ~eM;SKq`5tS_g(pin$ABF*v9jQwndBP-Oz?=HwR$5t_Fe{;ZlbYcK++$?{K+PbY0M_{-n~G7W6x=gaq6fRczm1{afHllHhg zNev_gih;%^IKo=n&(KJK(RA}9N=>l#*Azl;aR0Nerl&&zfL>6RYD#vE=d6@rBB1jQ z0uQtSDtSupAqo~hXx6so0l4Yg-*(Mw9$}+#%hp}5Z}fd15eE?k(n9;!hoL1h8?Iq0K-ev6AB_}RxrQ;9}*HCf-4NjAM*t^!hms}|D075 zvop2nWdd1H0wKuEXW92fYy;6qQ`Xg+Tx$8$(O>fTf*H`m355lC&mh$+qs0q}4}jA< z(dewe9#2*_*}F~K`UYh1l7RGDkCp9(R-0cpN92zo2o$6qZO>;-0U9O*7(FsU^N1Du zOJHG`#)f%*XZO+veI?Mnx_3&^*FnfVO5|3z_12I9(#HF7^d&Q3ei{ue(bX7FQ-NFb zv&kF|tegv3ZzPL$^E&H;{)ZY*Gy(dBl2Wz27J2bp?*T9kdZ7HMIGL@cP1jHkk$4-O z@3Ah{@s;|+))SjvV9qwD$^jwIbT}NiUXkl)1$5=xV^ozu=vM+-%;9Kp;P123T3+>I14M+x8dM{b`W}oeY$$HktIGvt`uPwY|z2@B|L+ye4(KxA25T5@Ic zc3s}4)oG}wt3<@kVLH~_K7RP{0601+j*_6=ruw*dY3IX`?0fH7-|$Z>cYoQ=hJZge ze;2h{gm$%@+tn^yD3q`~#bAg@~;4O44nV%lv zjDk*aXFFcLg~#DkRQ|BY2-Qiu zZ1l@f|1lr}JPxN`z#eWNLV)y7@Jt~PS)2vhylm2T^5<>Basg}rxHG#z#VPZ~n8aDJ z^S;peZUrokyLazG0E%q(1i=CvgZPfn0bM`aa68Lq4wPWYz(BXa+kj*IXT3QTwiJW} z(LM&D32^j1ZB1W5ioqd(!+%JH_7Jo{y7PCRM#G*T!-4A$`egXqmGk=3nS{)URN`)A z0%VJg{;%T1jETnw>w=9H~S%BsRw z1;EuQ0dpNDr~n9uvPnsw?Y~$hoZ4*fi&%AEi;9Z6S1#CXQ8u|cTEM6&yK@mRzC2Ki zpBlZmQ%r^26a}eoO3a>wWSY`Uhs?;wS;T?7}&Ao=jTsDdiu+0&vRGDLy=@#ihT|L;bYLH=E-Gi?Te?th0Zlx@ zt-J4`vYPi9u3a}PH)y7rl$y*Tb@}e6F{cBrxuhH`b%cFEw79tV9h@bP=@N$=&s5fJ zpHRr|{dsKlcaYs@d6PUMwB6u*G9M1{mluHY!rhe=m!aQ)Ib>sG%&-1m{_Cbberq^& zWMssy+6Jg$YSWJeVh2!MJosK>{i{_MA?tTGc9Zx`A;|dJR?za`HQO?p!`I zIcZoOM(Acd$EBGhjiaeZJzdj(<1(hgEC6xLNiqa!WfKO34ckA!MK0Sv zP;6x}1B^DI=+V7=06yVHCL}*JvrS1j*~jEzf?^Y+C z7-wTEj%-bp<0Hb$$I-DK40Jc8y|ftD>I&tjpo5Ri`K^XZ6Khmaj<~^w81@7jdlJu84&jx%Urs=%M!^K)GKh?2B(LHxee9(ZMU6aRVJ_FuQZk7js!d5JR` zd(eW8LpdyJpxDiLZEcN`N$4$TSJ177caJFm{d<3F#&AW%ehhB@JBk6o2e5_-xh?1n z3yX}7E*PzVau1zr!yG$Izdg<#K-BC>7-@?QmI-WP#M8!ycE=Q0N7sqU01-*Thy;_ktCdE>&5ACZoC!3{?2-+adnD3?n&Z2(7kJ~N!%Vr?krov2ZxwR^xdf^$p3lpj8;)@DosrZc9m3Ur^b|R;3Y$%v}<+iC4|2 z^aRZIhn>aS$^4*7D|KGy#}mRx~#0=)iA$T$22TM{N}=p_La9JDPs% zA%xKXj2+5wfOvBS9OICL)?a%Q*Yw1qj5fecy9Ne2(AeGG9zjv-UM9G>eg0;Okn4ql zarjETIz|{M;_N>2!E`v!&8g3XURXQ_W+kCfp3ca*KTQhIYG^rn%%UQ>XL@Bxze5U$ zIczeXe4c0dj`*Xx-VC`^pc?GX=Hgdpvt&Tjfm?k{PwZ>yxW3!J?(Ku0!~9%3RW~|C z7wmw;YaFiw!^di=mX*+wtZXXwr54jr+iUrJ(o&Z#-d5&JJ3w_WVnm8HHmEg0-kIx= z#brIvUGfI#Dv>>?+Nwc69Wk8^l=5tZ;*YMbsbr5%$)P1?eL{g?uz>Reou^l^Td5tu zpH>7O!1hsH@-uD_G9h3tM!vrwG+Kk^)eqPxbWD7_&Gv`py82y5Zq1Bd`{Md`HNnPL z*8UYvGu^w$p1UsB0E7o>*_EU>Ws^)oE<~W4n?kVe16O$bJkAe%u>b~c+4(2Y(f2S1 zs#cigW1x?NP3@(R{8HD3^PqJX7X^Kv+}iMMaxOZi z@}71jqe^6P0}FDfMjNe#Sn`lQY~2i+2hvLxU{;Xh%}OKpKCxzzLLGY-ITBJxLz742 zfT^{i2J|ZI0YKOjW&Skj(w_I+72dzx>Je=0ovrsL=ra0XdGH(jn%4|Eq6bYVKog@V z7-iXIddH;&ZThx(&@*{ktD{Qbj7nGgz7Z+DN)8O)#gt>c#-N(A0fa`{_?hfk8BzhV zy+B6zIl)#3{d7ZiC-(T(*PWjo`vjPP79E0w)bhpKE*+KOEf5(QDSNWrY9xyMA|hxi zY24owki#7d;;U|Fh4pr~RDeuWP<(WJmSb&2bA`i1Rc5c_{!!gCn0)#%rV$pC#oYWx z#%t>@NBb#eWChSM+Qd!Vx^9CT?QR~Pd^)2C0lvI$YTAdfInQuJRJ>3ql9vZkwnWdTjPFHZK9W z9JFn-C=~(%C&Yv!n%%Iigt7m>V{4Z2ZC}z zZk+ZQR%dYPm~;X*uvOr>omITC=lAH2#=3yJVtL}AAl)%ACAnAdt(ayspR<^lO~&K( z+*!a)XmqR^XUEnpE>Rxo#!k!CKbb^EJ`3-2`s1UcDfG8WEjyCs9i@Rj-kTz$0=>t3 zQ|owR(TOqKC>L%CS-)MpyLxc$HoD?lYl(`B7%?`qTg2o_dxFrfo@ED=d6#Dcr*PD@cz{UwG=ySogAXS?8`*P`gHL^gZzlni^;O2 z)vy0l+Q0p@;U9e1p|Q@HUOB3AEaC?`g8u~$9Ld}NYn}gp*Zu!tJHkg#!R4F;AQn!= zf4Yt0-jXsvc-h(AkZIetMo%?D7mf1&u8;Cx+AWK;I3%Y2&zma$9U`-S3oJw;i=~ft z<-!0Rx^as>h?@as_21YrxfoG0w!QmV_t3ufCgIy$v^ZSsL}7M+44!`1YXJNoIMEX& L4aK5IW+DF%l*liY literal 13245 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�CckgeM#4#yPN2N;W00Hc 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 literal 11942 zcmbVy1yohvyDf-xN=gd|NGo+{1PPH6;m|GJ-KCT?(v376QluM^?v@5A>CQvE#qZuX z-gx&v?tS+@24{@TVehrpUi%$M7bbc6ilm10X%hUR`z0NG9}6pUb2V#V zzTa8zf~O;OXORe+9we{+TZ)J#ps=0S7Dvsh+_{Ftz<_)**v zhC19CqK8fspwRnM{-Z>JQ5JN-j1ZF;DjNywE@_BOUj4Mb(e;g>zs4kytz9IIA45k| z3Z-aEqn_Z!)T>HHg)f>i#n7JK?s z18Zw*-$u>s9349r7APS)3?31rvXO#n;|t%_-{E9ysk+#>%>0opAJ1|e-;o*Y5f>Aa zjQ1kQPH-ImWb4g^?d33H;gmEuquuBcPZ5U9!NF0b$u=`HquuO5=-QCgQSI$e| zSo7`=4;z0%On=!ydW32YJr`FPIi&2P(&W2D>wb2vg!-+szl4%BY#m;XFwXtYj?+np z6M0Y4egv$hZ1#MAk>t?S)Ad^6n%d3dI=X10Q>Xb|{)h5`2$ldlD&)g6f2lK~Dox=c zCZ_qf^^hm=8hoDF^jRurRw(*+2j(7NZakk`kEem?YEjs{i0C3k~8heX?u0B zE1D143LtGnjIo2BpdPd*Ks zO`C8a4ywf5H?&Xf!TBASk@I@hxpfiKCe24u7hc^u3-VjIXv|L8w7sF3DE_$owOh*m z?$Twp%DTf;R`j{U7|u2~7Q31Tas=6IMqrqs`51Gy+&BxyylWzLaqDcr-S&N5iUVXn zqjo*jUj6v+KM#QN>8tmNGg}#X*h?vaJlGhw-2<) z8Sjs(`9zyvyZ&-{vD(Y0SeMt=G4aMjkO+kW8bLu{T$n*ekanHjr#Nz^iRNa+h=Ym> zW8ZhleKqPJ(FpfRDY_HZy%EtU@30Z1a=xNqli98OME;=s;omoB^TlVJXB~0YqSxPE z)N2)Y!W1#iWG0-}{@&@C`|P4B6jW_A3_F<_r_&O=g&>(!Bv`PQRnQ7M`6_2n@W-?G zW)zHznq-guO}f70*uB~k-gkGxAy2@f-R~ygKD!VrnDl!jP%1vK3Fmj-7x1UTSXrqs z(N^sJHU916@QSDgzHd@iv*x3hO^RHR+9&$E6|E#Gwcn!iYrnejN7OEP#OBEob2?4P zk=1Uc+on*$W0M57b??qLq^m4n#o!wHF5h1Vb2+w)nlE13^B(ZMO%GzzIBU<5$n|PZ zN%D8y=4JdObLb&dqF1@myb-Q2j*LbSP6)QB_s7$aro; zX;R44Umuh2Bkwm&h!zw%u98xkXEbo=tmel_xyhPQ0>`g+V-*>Ug1kNoJE#mX#x*Ew z^>UEUjV)i8#v4NT?$bBjZ5O-4y?lha71MH!!}N&)osF}kyUq_y5ydRfw zf-S+=MppD2C$qS|2FiOn`RNvMV?z2X3zR!-?~1?M2HYCt`V-OTUMD|3{p#OBxH<0U zsIsQ~HKaE^yV?J}@VV7aXJpyM@xTaL#?$Mknzu^`e7 zQfr-mVZpgIOMm*Or*f`+O=!AEabBcBx^F+mCVA-wUoSqf4K6#35)qb>=dwQTArJdm@#G2b03r*M*kdz?wD>`!yfW94OZx3;*6218?| zcSny8?o4@=MTBr{&df(k*uAOH)*>K_ZT-^?q9cai?XJBrys5Vbj#kkhKYon&a>6GoBihIQj9wHE&n;?+h@1el7z#4UgL=>_f5`t zKfki;4&|D+?U`|tRaRD(G?&cd9XtJqj*s`p`0J!ehy41GFt|S!*Q)WO8HlvIZ{Hj3VY06H9g`v5x~?#emY$1l zM?TM2fs$dwM1tk~!vd%7&!UIbY=12jFo{v-yh7}7$Jd+_hx((h6U*G`to8h*e}W+0%VqCyaQ zb*2CPBw3Dun+zNK;ED6q1`rR<#Pi&h#lR! zRFUzUyIp`Z@5SG|nG6duWnOp*m4~uv3zAAp9s6(#Acbb<>Gm7c!MTx^2ZG){qSlr( z>C-5q()*M>YS7!8ZF6$xHeuN@Nl@I|WRG9!sZ+IIYtZC?klD3z$sM`;v!?gyc1>I3 zD3at*s@ic@)REQiC*?tudmZfiUg>jM*xm07+*`~YD?jjE?DTUt9PrFHkt5j|%o)KQ zPNo{Gt}$1zE~+eh;P=}>Q3a6;t$Pe~9dF0;;8)XMoTenOKH#WoO@V zuYNQd3n3^}MsDa??v`~GR)fFC*|z;zd9il0%cKuY(~MP@8TavKrmw@@jk}kZ*Wa-` zOp!%r_1g}6)e_mZI1M*~F+(Mph8Qus*g3PAc}kz;!$R8@%? zV$qv*74`L>xh{D_G}Fn!`i&Nko3-mzFPZ&sjF&1BDe*?oBBb8Ddxs&F^8{Q3rqV1; z`1b9Yfb({M>Za6u6yujGE4>h7lC{`oMP8*qJV{Io?O;%1IbUA%(P|B2m!w8#WMqI8 z9n!9A4|PT_0f;hf6UXLfV?4uKiK~G2Rk6LlV*XSUkiKZD3*LO|p1sFBEfE5XHqZ5V z9By`b&Z(LQx+pjK?58~XbH>U88hTY-)VrmsY-jv7nMNXTpgbNf?RU0bFre`_Q$n4^}?nZP{+}}24bQ+2EEBF;jAE#xT zdB4xsW;}5fHRK<1sOq*2F9Ps*wA)$xvFqjw#AHbn(3Jd%1|H7it{;|Qn^P_d#LE_7 zPBNbIwiD>|Xw-WUWf&$igWh&Tb%bCIu-MNU35_AJHJ9z@YhWz3Mb;nsa}tv;>LJ{T zgDNxev9XP(%XAQS7n{lT^z=O2Ztvg+PTLb8e1?;MnA-f?bvJ!c zA$nJ@K1vDW5Zd=2ABU2WL;qYRUA+P-6Tgv<*iSx{_m%ya#KurEX4}3_BRV!V^0Nw! zXCX2nm+&hti-{MJ)S?O?tYI)i-qhryDXiHVYpo4qOd5-_x;nlXc6ul*{2gjqDQ%}r zL!1Q2?pI_H^L6(A)>^f%Z07k|E^jc0GWh$;78;X;+#Ry6JVYj9DFt2dxI}}Nm-RuG ze<369yvE+?uhItl#bdYJ#>`ak?h(!l9`nYikKI6M5wsClc|x8fMJ8v4Fs!S0B5uGQ7_<5Po)akP5lI z+?%WAAk;=6iwKI2#xwl*5giNTITKUJU@Alq)*y~XvRvWUD0=F{uG{qXVt)bAjQBT} ztE(>~PtX+m?NFbhNIq@gp}`@=JryADMxIM90Cb15BFGgJLD2RO`68Hlp^nX{W65 za(kzoLRkz%``2!BbQl6;le0^c-@O&RPBl1 zFFY%XU@5j~G4QIXN)h>jlIHI@mSsp&8EL0~0t$uGTnMZ6>t=%1)g5478akh2`8;~b zEEr;)Rs#yzD9G$;7PS`blnFZ*9g#*}kg>v$MfF;lwQLrtQcFn~1MIvNgmKwzE7rZe zS>AFee3>nnO8d*w%tvEEU4Wv!C_kBf-V5c~>O@y+I61Fh_o_9ob?Jd~*z zp6RQt?#$hTJg@>wN4K`lfhaK2uC(mQ-4ARI%Y(suSv&kW#cKmjq9qos$_;^GVHYiE z$!EOmAiKVJtQrIsH|DqQ{%qwqh^D_iY4H5^7|Th>?&m+&&XnsQzx<2!6e|dWLlI5s zmj6t1qVKV$Zs~#5;Hba!7M@-HZ_I;Q5Yn^6HV%^hcx8je3Iyifrj}SJNGLkJ&79~E z8VlS+biNnDYtQEc3Uw@YZ8G=CDEKOv zL!XF$VTNw`g@uI`hkBsVNW>RAwLvH4SpaszdPN>EI>rw?eb#^A`oDP?jGWe*De4VB z%~L!OnfJZFW!0{$=<7#SuXiwxPhbfstf#m(g4?#-qWGQLm(cHVjdE^g_TOk>c@@lHP3PwGYPwP+w?Gr-^cFASJvCyD$q_VUar+r(kkn@ zgw8PHA1-^EfWgVg%I4U%wuF;%q4Y469yg;TQFBrIZI#QLUhj;buuU%wXQG$O zEyE953ZTWRP513^u)t^{y^?P}x7WFOc}K4=P?NaLW4y0PbiF=hLT=^WpFG3bN5P>K zkmyff3-O?V^#~+Z%Lm})J?z`*pb#teKh7=v*&vBh+2Er4MfYFRcpar6e1Fe-Q}S{L!k2y#hghCMD-dkQcPmjXFT*or3zYR zKa`=94%6QOt9=n_=(|*HsYdKmg=cGPOBnIN?Ap)Ik5-RF&6K=8Fb;3h|IJ1FOqK0Y z26%2NQ2OW31AhNjf8_s2=G{BPlZ`=y60O?EWG>U}>7A?9DA6xyQOj#Zu?XOHfo-O? zzrKMD@l&Fc{_frFLdI>@mM5F2j^CIow@#>LN+WUhC(ciq@WJ~7CwI?ZY~WK;Ml?1G z0)qmbfB|9o;6Smp<@T^>^^J$7Kx}~=%D4NEw_EpSzO=Nop{#;0UVJ%P?dGzaD*3Q; zG{7~C$4`qd>MOc$=7#!7?9(syNMnh$FZi1*Wkcd$wk1JXgGxtH$=lhz6m;F&=p@NL z-mBw~pZHzKJVOeI1us!A5s05M?fOS;L7BYxTn9+}qiSd?4gc^M*++nRR{j@<{Y+|{ ze5vz$Z_qaFP9+hmIhSAWU(!feKT9qAPcwD>(C_5p#B?vE`f3rA=2z)*9MwDtOUpAs z!8y{fA=BR#23~hpn+Qh6#w&Y!gMba9z6O*}L_`F9L)0+oE@@hHS)FG4 zJiMU~`DJv7hk{EccP|ZhygXdtoTd{JN@LTiL8!2v<0a#|!jHo4#29{6&&@cX0Unv8rC z`+IinP#cez{U;6I&c?<@==yKYuhJHGp7v6Y06m${pFj8X^eh9dYBgIGQlwmfPfp(7 z8_PJ;;B48Vn=9Yyb9;FMtyIDucqAmjwY3mkUES0Dg;d*?tDx2HsPU{f!Q$hhhiyo^bG1=ZrCM{r zGJfbv!u)K@ryjycs5n&zNRCr zbaeEUpMjV+r{jw2n)!G?Ur|umxl_yVogQUjdCy<}x@J-?SWDeMgXnTNWMu35o}H-? zl_|Qp@of&JudW1Bqdeo|dkU)j(!FY&qR3T%X{I+Z;3}M)oV)Nnz%pe^n^V6GQo7E6 zg2AqWh=gX%$!*~?Maqnx!#{*D*rn0zEqmj!phn%1lrKU*{9XDc=AWj+Lt{~@x#VBW zoG$2^K$U_w8GiZ?hgU^On;%sBGMlAplPz$ZaVU;I(orVzH)IF{CR{Y_G*k|JY{yxw_r;%2LzM~)qHyUzfywJi>#VQz)f>hzO%H_0=JAz6S1F5(!uN*m|6r@lMOfZX5yEeQn8V zdu;bs^6cy4)6Vm}Gr5PdKt}d%_m4UPul4M&Uor&Af~M>UjjnqP+}wnIZ6=?dGtmD5 z1g}sjhtKDR4>UmvVWBftCS6)wW}qCj9OF{(wH3$ec6M|i0j%8U9O&roE|}mXX4mcs zf=2&Hs5r84Smk!BtYKx8+O>+ zu1P$8vJhO}H6EBx!iWxh4}Ds$y)RdS5#&;NBOps&^L7Ti|HmG zVk|B$R+*0nMTy=e{mT7i*w18hMep5JpqR;iVfta>@Xxl&1ZU!{Yw~U5(Pc$<|0IL) zt@jg1XJ;q$&V(u}D{C8MME?GKz4EQTZa79E5HrSi5dAiU>gP3EDZJJ&Dq$Cuy^$<` z4*&txpe}6JSkFz2RJ=cHJZM!Wh{fOQN11>Ys}%vwpys=9Q=F0%S7>wX9t*V3oOr+O zTumt%33UMj13m1-aHA;G_sBiD?-^uQy7By%R;4sM$u$*E& z+iyHj-E4uVfut-Gupj&7P+b6iyf2H!3nq%j^I@ADX=-|IN628-@4v4!YpjZV&aX@@ z3_oOFcZPE8_5-Dqe!ULkm;@_up4^6>udHkMm}lBcio|9Ik*F2Kw5So86U>P!@z!WF zDH0=Y$FrzSu&9+4vZ(qL1%XZ^^xOzO7E`lxt8;apYI}5@N&>6{fN2%rRuwV@BB9_Cfd9Sb1K_#Lc2f(w42YCl zQ_3q2wot=7&BBcaBKYAF>XFHHuL+J6j-V7>-m z3+hk4H~d@@B~dDe=08%Oz_K{2qu(6}{Q%_8W!{~Y`*T^App`)SsBv3m^!_688 z^5mQA_&ChDm^M*ETkBsKmi|PcQn=?#Lu*mpmAJV0Lor=wbTx(7?429)*e<5&G`iT| z-(H-|*|yFECz@U{DyCNrt4)|{j}GT9KV;6>1&r33Hm$<|(bf0wt#*^!SFkdq5!MRQ z{r&y(Ru{=+_@Z`pPL92+YquFUr@_wv@$rES;Z(4ztE;R21qG&A=~tcc{~6~(0~PtH zsE^POlfg&&L-YJ{$wJ7uxVUl*1dba+MNXb7lF6aj57Ys8ouS!y`1qd{DKiay>%%ND zeSLke&-Q{9DXGWC$K1~*)#}r{NI}owkJmv9oSlF{Zuxd@v0xz`;<*CGG8p?MGf|`* z3{ocrS*|$)dW0_`OD@McyYvS^qTH zrK1@5_>$5aT~7XBDgg{msP`-Ut_1zT^}a6rz6nk(Fu(8#Y|IHD4}fH{f>}0pEkek0 zY3m=*8e|E=@56B^!wv7{I;ylnVPGC*FKK z|CQk{G&r}Q>+WNHFjbY=4DHel4GoReLPI=w_~$n*!848~NO**VzgoQE2$wfMhC`yF zh9OH0&O1r`jtpVM9DgR&^o)(xdN9iU15)vLg5P-B(b1NQo&WwAwUX~j$Hf&(^CtLr zus=_@$#8}|P$@r5hWjA*|Dx$$dY)S`C}xC%2MmhHKv*)Wy1(tsQJ zB_wMx-XVtXjOIwI<@R;P*bxB!^<+Bxe0wsi!p2~z3`HN?V9o^An%N4RuSxX?w7OEQ zT7gE4tG7MqN?a3P{E8#3Xc!-61V)MKXS$#A`x`70ogjx&Vi`TrmF&m-|BopmKVeAd z+?$A(ZSvKRMQY&Ysi~S6nvzUq2=o8Ynt?jd`)f}<4=9XernGZt)nK9-=*Q^oDK(7u35{Rqh!5ZAY^=0%v+w1`2kpEZX z{6`-NYRq_@5D0dOj%2eEcq!>R$TSv@gHb5_V6aHt-2SJ0cF%xeNUyL8u<6@uUB)LQ zRKNxEf0^fcvy`#!X-xtl^DNPM!D6hXHlfOPaHY!Ij#AJmE_3~oDd2@@0kzTZAFfe1 ztm_5fIS{Q@`Te+k6gDQKg|75UVM&50FSZ6h+YopwNN*p$8uKqk%qi7=)r zt|C{u+g=2FAk!Wqzhgz3;Ug#Q8D5oZ1aO(2$-U69?Ro!HYOc&K#0VJ$g)$ZX$=U4nQ|4#P3eJ0A&c2jtOSj`*#;fb%a?&UKKWCs0q}1$}(V};k{?tADtm$ot#0e_YVRm<>ZfPBG|H=W>K*9c z1Yy~?X{soaaOgh&X8*dyfK9XNbwOkO=-F{yqWhU%d8L32Pb`D{A0VwzmVs}v(tNSB z+7H#kC!r3`ej(9HIH+aY+6f4C($&5kKx3D`*L<>In|UlIzKjj&h8aHB=Af-IQ)`pNe7W$mVdY>`F=}6!&t*4hRkbU`!Wh@)*Ow;`8VhJtgb&Kf$-LHNbW-#4 z!Q7_%6hXMuLj%cN=}`H`?ce@zKs)L|GvTe=yN4p3>2njB`8{c?}GBVtb(Lwz&SQ2(P?NL%K)eI~zFZWIXHOS>) z5xWi8ZNPv))CYdzKpKCnWEjcOc5yi;r^ECASQRX~H(JMWIGuJ!M$KF6YSLGtgwLPa zctAM0xJWsj-nOK#g=Qb_Iu4Ju`ud*V)C5PSr%i`Bm}n81o^4NJk$N~1R63_lxp{j2 z*o0ULum1Uy#A8WZR8%yO!qYFJW8YzYeQ_{cdC#7scA#79Ll66&sOu2|UieASJfdMT!g>k?nwrxI|k^LgKo#hKsu6NYpWc7nEht|e!w3|=!* z2kH%%$LU}3j@IkzVpypW_InmjyF8|C3Odt8$y$LLsLZAT4{#{8JFJP>G=E7``$%Ye zX@`tYqR>~D&yUvcf|w}dp4`J!p_~JxyviD0gWoNBe{&)PK18K4vPCva?I|!-D#=pw ze}J%nO49jU$HB617{mxcHp4%if3OMypf84W8r_cq3mu%Ja=N6RkdUb5!zbYIE6^>O zA8+}b4ZfqM*88&wpqp_|OAMIQeWxR&=1ZYWvha=cnv!}$V3_=0y!O)D4%h%rr?i$t z=1W?#v$ZDnZf)`BzXg@}BYjx4tm*c&et^ErT2C~1uVJl)g|D{s_9HDaU7TN$i z2G9?p4c*`TVsLnRc(FG$^o~(;eS?qkb>`jhr)l3z@fqh>hG0 z;zE}Yz;Dl9dwOde2D8~tonR3R^mbj4I|gfT_xqr98#_{PCjmdq#Ie_i!xUizFy;U} zV>Ok!nMFoDo|uF*ociI-Nkr|Yw4m%ZYfXMj2{a||ctRTlwKDSh>w@YIl={tfofeC= zVI&TXvSz{jm194_{Ot5> zVa3z(2orRWrKGN3YF(3wnvLJfI(M z4PMtvD_TDo(~}DB9i?@aO7SBj?|DWKu`uxPw4;;^9G*i#FS|r=zw7(zjJBczYTIzt zghzDyw`l|n4N{Xk*GfcG7i|P0c>Qyin#D}RTSYNRXx5usJ-3sHtw;?_AXZWZtOY#F zh5WMpLLU_(A2UYHmwcFDRgvt}$!s*R=o1dzUdfk)K065tS@n!9IZ%2}Xqg53Z2e>k zQXe+Zn2Qy=HC0-Qmpyf4SGzDMKRC#XOz1hEwT6-k+ifm(xrYk+=$_CHu_UmiY`SQM~+B|A_S>g@XET={laU%1Gr><)U-Ee);C6 z1-_kt7w*JKOb@0c5oevbqvPNd)cW892qJY=dId;{Scdj^^kmn}!TbQ snxBjR{K>l^8Uo~##Z#?1#2eq6KTbqrWN7W+{c{8vNd<{AasAK#3)8)OJ^%m! diff --git a/doc/salome/gui/GEOM/images/neo-obj4.png b/doc/salome/gui/GEOM/images/neo-obj4.png index 5ac05dc6c5717d14df5852f740107138f5d9c3a1..283601c26391ac4979958f6ecd55682ea60353a9 100755 GIT binary patch literal 15528 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 a8S&)zkz_VJ0pCD|$i7gLDt`Xv-Twpq($mEN literal 14060 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 TiwFFUB8I$-l628CeZT()!-kdj literal 11148 zcmbVyby!qwyYCv|G{%{&8)TNSOE&^J@8hpE@$2SrIEy>c^v)AgQqu5`6%AVXlw2?GRZ|?05Sml? z8{R*_&b^EOt}66_wB%KowI-Ap+id5 zELZqS$oQaq$k(V|YH5Xcn*UmMen?Ip-kuyauNe$~61`d&>I~;3&UMrFa`E(8?T1#G zxlJQ2*VimeP0cwLAwzCNwBfZ+zF6s!XvfBdhCWxPlT}ZcRZC=3tI#har=)bfyl?^O z8;*xAnX)fWO5x$DjcVvVb=5KUiv9h(l#!iSDY?KCvatPcuA&BqV&5mdV2 zsizcgJgs9=;dxx+U>>_*`e7aG-5gH6yxNlv<&h%B2M-=F55HCa=#we6+Ge+JNOH)C zeg8x7BsW2+wxnKKTIPV1vX&P4$cUq}M3ycWC0;CEuSflK?S9MdVohbkeWh%*RWV(LPBuiZt^cTChTp2X7hai!Af}fZbEw6$!%+k4b?yC{x;V*Ss zy~4^Km-@Qh%6{9~8g5TG{g@EH8W{n0e*_M}sS!dQWtn1lP0mb#3v$D66xdSs;T5&paT zuDU414blv=M*vzt+sj6(>lz~)8rO#nht2sPonVLzC-N!oML^%ZQ>ARWA@n1@)LcE& z&hx5$A~WM(F|_@C%ZsWghR0Fv?Sxb+*y}NSkhrqDyO86bpUZu-lsXLy85-_ut-r7h zy_X|?LT#6qMxF;sBpcYyJI>ayN=VR*3Dvu|8u%YV{fmyS6#QEeH*_6EuM4MxOl1c% zL}3-s))XV_7@~B-rO*9jf8pR1n3<>M`#GD``(DTx;QgsQon_Rky>jG1RwjL~VWXDK zvAl|eU06G@DP-{Lrb7eqUUmWb9=Z-hnl&qF6dKS_QR@B!?-Z#8LO1Ty+xDN zGpl~viH#Sag}`Q6?CwSrB>MJ0r>hCB>II}|r;FKZ_Mke)ySQf#UsR@e8k?3VNZFuy zwk6Xvwe?cWdySb>8~MKrUN1@%Ssc_6d!Kh2*qzMF7ngXbu&Wm)=6qmm-*P8qU{DVX zd{!hNk`d9?HY)vHyG-BZVCk8FhV|%WZZgDVcVi4DQ1YgB)+l_!{9s2?6LnIC1v;Ta zV}W>5Vw1TIT!Eu21*$koX%DPY^j0`R37Obye|w$&;(PZ&n{zx=RsSQjKHaGW9exJa zuHdZ_YzbEjQ_m*#X)U_*1te8XsimbCafCk?j=PW8mR0Roc{^0mom^=(sB(f{l>%80 zrgw55HldbZvI%YkJ)500dtbk!V;VeY_wn)^HVtpN%+{^xAIr`N^m`x|sj)nrfbEXS zq1NRRDQG<5H<)bf`JE@~#5W8yJ=zi6GypSPaS)uiJ*nt;crs}MJs z)P)QOK~-KE56YDaC=UlhKB&MyxsMH6HgGkf7Szix+6C7ro!D7fBkJ*|4(BI@A_=Hp z9Hr+=$*fAt_}<);@Qk)v$h4_H9~l&~4OE`-q?#JpZhI∾Y2-v-j!rKDF=g%@M5L{vzjb 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 diff --git a/doc/salome/gui/GEOM/images/neo-obj6.png b/doc/salome/gui/GEOM/images/neo-obj6.png index b6b3be4409089cadf829ac0dab8614cb6bc59646..fd8af08117572689f65cccd752443a753fd9ce8b 100755 GIT binary patch literal 15148 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¨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 Z9hcv2rGh>Lzk-FlkX4o`mVV>+e*nfoD1-n2 literal 12508 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 diff --git a/doc/salome/gui/GEOM/images/neo-obj7.png b/doc/salome/gui/GEOM/images/neo-obj7.png index 15dfa23765872e6f56121e4df094e20d6c291d05..d15d13d9039917c73115c678142ba4897ae2c81d 100755 GIT binary patch literal 18609 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 ZmJG+p`I?s)lA95Dp-rrgl8>B@{x`jjG%NrB literal 15656 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

Fb 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 literal 17751 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 diff --git a/doc/salome/gui/GEOM/images/measures5.png b/doc/salome/gui/GEOM/images/measures5.png index a323426e60197e1a2c0d314c054ba611a1e47e21..13af1afdfa7f0112c80a0725a3e3fa828c3b75d9 100755 GIT binary patch literal 14644 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 apWVuw%kl?h``}+8A(G;(}6w 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 literal 16541 zcma)kbzD^K+U{V0BEpLx9Xf;p(%q<}l!Ax|2&j~FcPLT07FO) zT|?)&=iU39v(Hy&|AGF1HP6g?;<~T67s2<{6fP6e5F!wW%Swu}8VCfQ8GL=XfDb?E zU$D4>KwLv8$=-fw_G)F!Bk7&fN%IEEsaukuo`~JJ$vhP6=1(Nvm6K5>a6N+McK~58 z`xT*;HuJk0*ZuE@Y1Jt{V2{>};1^}YC!O=GEu3JSuI-e(u^YYhC{}p=zp#zRr}yNVP8Z&XwTZUc=N%rk?gextl}(+C-%W8DG)v zE4;$9+=)x5Lg7%{pz%JnAs1hS<`q_7A+6{g4kP!p3?2$2uMT}^8E`gmL9TK^HFrVT z-u)t-HY?fNZ!4k8POR%_veaJ;vF~LpJ=(I=za=25w*51!*fgiu#1k2$%60orE=dZpTA?z!V7YVNNAJ!VXPc_zp}mJF z_wyw|qw}8CDsAUkugu4WhHE$d;1^|y{~i6XufPA>u;t#~-k+tVkZ?(A8(sEyjs{!} zhf}sQ^ckr9mG;06~55uSNX){9D~Na>ohy&6^W%Gk_fSaXBuII7H$>Y4oqZpTUu0ZpL`7YUvb&fQTUf(e zWOM%E#tAXcMj351yHR>ZD&?&5(`#FUuGPvX{!KY(5tkhzY5K3l7)SFy^;>Cu`n$G2 zmgP#X7_3{|3AZ>Nm6I*Vwe$_kyW zhN3G8Hm9P};fhvaiy)4RBleqdI8A@j_?Sk!KqY>Y^V>vkLPLgYmmKGGc>R)y%esV6 zV%UVbb++R|WRlR!E2;1AcoQw|Qd*- zqj*lGcY7@w?uDbR#!8UVmXa5L{8HNWC@H*wK6dz_-_Ve`zB9GLu$y^}u+JwVQEBWi zA8T&i*NzG_y|JHi9_C#6z@eRG7n|v}x_gpWDq^>Ju6)$~($%(Mk$n#u)2^xslE~7P z_wWB=*UEikp77hp@Vc&4ur2!JB)itIzd8I0BV+dlSu>k%nPq|1*@9(3{>$%I5F5eN zcrOhNX;=dmq+Xv0e)C@{)+}Qx*qLId;j&#iJUZjk!ljBrEYp!48{TOKC*8P9jK^A4xFkXMH?u{i zj#KqBA*?QQlebgdey?hd(QbBmIOOP6ogEAC{(0lnt0&^Z)e&?epU1MA-2`JRkv zp73t|I>Hf{3^{*$@4fx~jb?u={P&>N(@jG|W322O+A1TnBHYlX?$}u^MM6o%k;vGF zQz28F?#roQQ+gTwJI88E{LV`GBJatwh&Q_jXM7tPWZOP)G`B|GfUVtGYW3qojY*ab z-U{NPl6ip*NuhUkuT_IB?SnGb<>PIF+?B((^}J5s$weq$np#E>HDsU3dEfi;rFGb> z*>qvH+iXsi>%Kv8j)4QBALA{z7KrAz8@%)|Z;NV4Xf6DUw0Jmsb$0N zVJu6Tnbsn(U)I!n#-4|fU;nu&Sz<}o(W}{8&FjLUzm|XTM?3dX@>$+(sw3Cuk(&J* z+dI#iKCRG+B=Am_xLco#FgOh`hj$({+-N%%$af*Q(cKi8u$cBFvyU$9?c|?t$_%?c zhVg~2tHD_n4BQq5RipaJJDnVEjUY--Bypf$^zRpE&K~91R{4Ez_?=gl{Qf;6&U4$EV3m43 zj3e&y*^}J~95pD&wr@!i6DA6fpn?1$~HC1n3Bys$#PF?qS@nMz!w-5}Ot%p8ht}D6y3khli zU1q$sJRDN1KW?33ERUtKtmco@Rv zb4p2D7oPD@#yrJy>H)DeTB)&;#6%j^juAF@6z=d9A3p96+;aaUtkl}Q{;(Wh;`9i+ zENS~DXRY8x>!@9c1v=s4wETL*C0aHoi<=0WV~ja*64%dk5AF57A08W=luaj`%HOet zq_WM-wq}^v~H3?gWI^No);HgF2A76=zwACZ-oj46*`TC;C*p|AVfi?5U3r|szk5`3^o15Fy z(@QB>sdZ-!>45H43T9?yiAZr~5oe^Yy_$$eOqSwmOvxD9P9^K^=B8h|k`(>NUgk#j z3%Z8tq>+@+RCK`VbVZ$aaD0NSXsU99!DA)Q91qE%etz0AIo`!tpUt1mOF!n?U3As4 z<3l%wYoAMR#HtzXX?M&Qn?Kw8;IbmT;s2<_{l%F;=Yp&|jrSbue0UK`Y}!(PVU`pa z+}`+fOSkMZVLy}W#iZ8ibWn0=S6L-GrG9B{uU?sq>J>15{Gs?{AV>H35pi-5E8ASO z1#MvcD;Gmm)DE%7uw|k2{tVfOV>0Zx-4%2!W}|4QRJHhRXyT@y0*1q$No?DLPm6v0 zZKnwn3k%EhXb(}@V=ualjEv`JoU14U@W#if9WJsQTO~P(z?3$w7ddRIXq5R-#-r6# zR2(f1H)353`TzL&3^XI$!^Y)OwRhJiEw*`im0U#Dx3^nMty(-U>&u@pB{U1f<`Q>s zXuHmsZ=cY789()GqD^hTq)u?85z`Ho=^wd7+x?p z*FFi&$a)&TZm`w(beztMBv!-S_C$kSLH+4W1t#VBz$?dhDQ_ohcE_Jk^9lCeUhc3~&Xm4-txUAq#-|&;Mp%2N* zH-zSbd(j)%Z6-0+gIp^=j~%f(f|9ctv(6UEykcHlDeP8RcAi+0hh``2Ip)M-68q9> zCwo$_K8!>q%v~#))PW>isNFCSc( z?yc=YDGXLCF0k*q4W4!;y1D+zW?;10>7!TioX(Tz)}E0sGeT2WI^`VAtYNjWX^pDnD(V zp%9^4NIE>GE1$3<`1$i^MOiW}lZ3>m#4PH@1ml~apn;(kp{IKu&+#2C8X7|=hpOH9 zrKF@D7U&H-@drm?*+Y*Hcb;SU%uuzG3&b`j+dHf$<#UD+Wyw*5O4yBDy^77D$A<<5 z$5EuDY$jReSDd(B(P*{Z=hz~)u9&6ZI?(;aC2ml4+0OEF5uGJJVmrktR3OJ^M_BFHo)FevT(X@b22R?{|0*yu7^3 zEG!X`k#{sSu8fb5Kg@sfL42*6jJt~DRM+7>^`&yVlV_{y(QRhpBLmKjZ?6LLZfIzD z9~Y+xFMxM*b#o)7p}E(erMgjc_}BinO^05IWOrFHp$fWyjhJ-bfiVAJ!fNtMQakm_ z)@&;n8qvE=O!s2`!+<_Ksidm+Ew9okf$X`|j=3gHyfcX=>g?vHO|~k3sqreHwCzE@ z{kRn-_RJI6hEMFwoz0I%lm8-(NMcKqlfA``o;C^pvS2`W{1<7(f>w>kJG6(mZ!C6f z7EP3{rf}6LR#ui-~dE|?`=?$^5fL{|3gUHCT6uZ)&DT$hwI;#rhnNMXlq%0G`}Vd*7wiuX3j z1MS@I=f9^QW#fu39(v{Qw%$a~`&vwvD7;vC?pE!Uo~MK+q!Cjwq9K~C60a#>kPm_( zD+nP>`il?!NMs|c1@5DDem`pbSj$Wf!{`(bX?1cjeHVNKgQ~?Bi%d7!kg2GIrNXDx zjJZ{IR)mL_zH0_XntCr7Vujdfj(u=}qUEs|TI%g$fRczL0=w$>WkExOR3O>%s=edDG`khpc7U+zb(cyUv% zH*etvH2uLv&QqF40PlSr2jZ!5MUCFOuoxwH%D9%QGF#^g_Y z9bfU9+wMZ88&I#5b$;KNwjZ6SIOgw`&=jGEZEfP7R2~#0_xBOLhsTM0_5d(~G(sgB15VnUO(uA1es zit_JO%t(!Ea*wP9Zs??viD2{N{YOsXv8F&Wp2H=-&F_PoKtWnD{+1;z`DZokbvhJA z_%pw{c^s>ZzP#kwfZqO62@B4bq@;Nqo4yPZW?wntIzt7V?4(xN>(uMR#OUR0@AG6` zBpV-}eqx>A#7p#eYZB>wuyEsO8K)`D1vrtyZ=NOkbRtc^1|*~lv4kEQ+Ak4lvkvG|4z*~q>~N8`Yt z(ZAkqv%mW_mE`9ffcW!#dU!>Lh5SrKM5fK`miviV8hl?HHnZ+w=B=hR$)smI0g-+IE)cqA);{ z-eQ*~7U!-A2NRZ~dw)z(T69SJ=Qm?W9V?mW0~cD#B(jZDHi0o0K5Uv7!Dc!GWr=3f z3P?l0UgyXp1=~yHttYYjoG$-2YHArO&RJ+i<_OAOLS@M0Hq(&zWzW{&m>kW8Q+Poz=_Lgwg&EUPMx|Z?LI{W?L=w; zLrG9es{g;W7yrv``}q!A3^^(31FFuTAVpRbT@Qeie=i9sY3o$N*#q~hW0a&7!{)@e zqW1sW>;G|lEoMBc1Xc%3N9Obx{eq{Dso3~f#4e^L+&lqsj^I3|(&p)seX-+0pB}14 z5X;G~^`!y8ZF9`p+N-r%qVTzC89*|_{1Jl0(cAY=njvb5vG(-(#BrPIZKWEB)JaoV)U9iA4f4s#twCj{7w z7cL;K@$kI2n{Mi@^YPJ^Az_qCx=TPp3P|4|%-Z)whaUmuVisLG!8iATH!e%*QbE?%PA(o)d6~c?Mr$xrg&WO*)c(z9ykW@aznH3#Atx%;&ChUiqYvc~9batDlHQ zpoKHd&+j$$#?*yJUKMXgN-eN+Tf+PMm{hloM#_ss7nn0%wrEL*l$+Gfis7h~POYct z$;k;6u#F#nBs{i%e&m&X^Ez~v52p!BO=W~5r{d~$CX7Z9DRMIo?=1dT2aFn*eq}>O zYm`}EhEf6AAipMA++}krh!XBH&3de|`f#;MHu;^s*IZuhlMgG!`qi$y$`ss_WoT?s7$p&`Uks_IBn(7g=Ht4Nj zR(k))^LVJ#g0l4Gz^B{w_@X=9*frzj@82F?&S`7o)}F(82Fcj*Bt4&0xs6lAOcNP3 zwcASL%&+?TPPq_@_(UNqzU=Ne^D`#D7jB08Fu2W-@^b^|t5l6yGl+Y4Sk*mm4v%-P z8VePpH$F4hm#N(Ox&Ogj;3X*mi@`4oBg8zkLY8JHUsnnE7agN3cB)EEU|~Aon!o>V zF^<3u?9kLfJ*N;NZNCzwX+S_kW$3;BlK}S%EVs{oNQL#WSo!pqW9$5V^v?;sLsYI- zyWUnW^6wE{Tc`BUozm-isH@%IxWSkRH`JjnbATEq*N)Ni_2waiWUu1`B^?D-$HUWaBQC2Y3af%qAjncqD3?Z-XVBvD1i5$#m4Nl}Lhf)>xH0+x<{ z`Vm|tAt6XJZjW&*OC5Oae<@DTg5n$RH`n1BiG&@*-b(qz_oad=gc-wN(gg9*+>_XS ze)poaDD5$+!foIf>2BCLM8S6a?AEXt9r1YlF)r- z+p|VGgL2E^zUdSF6<3|Z1k{=)i_5G#TO{|z!|kPJ+;$8LJAX|`D2DfWQ%~W<2etrJ zT4B7e-pB4Q2Xhz7eBd+;eKk4@6TY_}n;OsOM2PtK@uTHLExm6zg;zt7al8FWJ&E*@ zOuBqn5ENb51GW2ev`8iG`I5AF&x=s_kd*v8pAtcsPttXU0B#CUc6% zu%cb#?gUip%#SS9#Lo}X11yrU{3Gyw1G!pNi#u-lg^%)S5`}H>4VMPAZcKGneh7E&g<{mSSs{&7Sk^jPf0fo=q&5{`$tw zby3lH>#?eePP{_BibyuitiQ;}>Sx%Z#&%M7Cd`Sb`OX;_7=X!1&5L~gTim#fTt19O z&d~50;6+EA=-HMFvH###ADpF*w=^rA*5=#|vaRU>VfWmYx&^ET1)9CSF33zxPf-iHM=KnvCkuV(O_$gFBzrM3GBQrgD%V2) z#S7-B8|th=LW54$ZdR$NgPi^>zRgr7HvLM0?Ztt13SUvLGOvTJk3MxL=gt$@HLtkb z7c60iBEuQYty}2KkkXRpqjM@8F)@9ffPiuyHv#|1&`eW4x^FL9j#T?&Qs|ctidxA0 z2rhFawXV~FuDoCMXvK3I)6Fh&^ZR}2KqVWMPaDZ$=IAocRG$-3_(XHfj6SzYcI2#0 z&bKx~E$T{@Ci#(IQ)@gIx**5@n(MP#vRH4fQ{L2S0Lz;UFkSF(4&-wSLOt;E6YO;hOXAWqNECz|ocMFLuAFD``Mo2TM z+L8NWD*^~#kXEFS_narEBTuqA$BER4gKypoCJ9DTL@a#-S}348*A=haTqWMOf70bx zUB$H4?ZMbD@T$7blS8pHG*da2;(MXnHj{-2CCV|-i0b^fFehgiR4U46HnJICubRtr zCyIv`YWs8+opL^JY`ZGU6*AMVWx(fia+J5~F*6_G$!IhG{^R+1<5l}hm?^L;9;Y40 z+|s!NKK3w_*Xz5AvV@uu_*+S$4ph?K5bNKjt)}tbG9r4p6CVT6Xj&9#Ct)NRy z!JH_V)w-KoWHTXE>9it`QmEQoze`dK7>00O9=eS=6vvu1q#xDnPJqoknICV1hpW8) zeY<)7#n_PgUxrlp0E3yTi9!NqJ-%VI!j<_@ET{kpvt@&?RPWCvzVY|({dkvPwQ`Az zRW)H|WOX*yAWJEVb!)!Y574piyWMlxi*l#}{o!wSu^8kd?TpyrWHG0=Jw5l!jR*3y zF%27J1-m52E7zZtS~mh-Qt^78oA5eKwitVl3FHBt@UZY{^6}v=ziW@-qe7j|OZ86; zkLsHGKgnGJ%-M(cqY`lai;Pvp5Q-*hbZv@C)Ma%v9^^4#Az_O5fw}kbwl=DgfYI|k zFdW{0ob<-Qd|jN>1%IU@L9o4atY2Na6Y%J!RxY_hIK%9qt_{nzYrg)MD4(KgLlh@( z_W2gv|9B>lgfZ(;{*waZKw|n&cl-$pc8xfHArZ&XrJBHu@dWnk?ryJ_DjBA zhdaF`=9&m35=mIv-6)vfo25#NSgk#@X7Jvdq(k9-dHn4)%oPx&urcdw^;D?>C#~Fv ztsA95qf~Dl-=-VXd52Q-2Mi58Mm&4|oSNT+==fmU!K&DNniVlvXrL~Yuwe1OdjUG1 z2#)O(K1j!h1-iEANG^T4$*-BEhIb8wA{@}O>%E`CAD3C`eB3G*!6fnB(rBu=e{YuB5&FH|HnHM-L zd_w#c&^=2f{*HO^)v5%FdHsn0iAFi%2P1e4GJAbxtRm@ zK3^dszmu~E{XR0MAPOmb!BRsAy!;*1Ep>VeeUR0eusMJ-FxIX0u0ODtU%A?7SK4&A zR+l<$k6{UpHvl?1n!d8>&WRj!xchr*{&x;p{*!X{&1reyajFi$&na~jweue3E52g_ z0J(c^E8sHi+m)e4(mnzbhU(Skzety=uAiy=E_(M#rmS4X%^Zrrz_-YxZGo$#ttw1r zmwKZb<(T=yaPHSXq;tYl+PV!1B`F&bq1nw6-Fk@H`&AixDjn5izua^9?{&1C`_<+@ zxBWskZNbA}=i@6J)t{s)l#|MXAHC9`^-$JMUi(1#XQYwlIM;~ooe z%wFx*#Yj;!?guMwe0?D~4{V~h)IxjNS=pI85!Ra~u>Qg5*k2LS)a_wucsLGO{-8v2 zuJ_p>io5QJPc=c{BbK)0SOgJFeW@kD5Dq2^^u>Su`ZZMP#DRb^gKr2W!`jOW+bMkU(xr5OnNcT{zDj}s zTem|?PIyWQ0gvSn&uTSR&3$+E@{iv+nmGn_Qm~V=b&5@Jc9B!{$Gd@jaH41g%znV9 z!XDk)6wA_F87VF1B#XFng@M7E>q$w=Xo-20s8^E;84tLRZb!Hh5|?E@XMwIpm}qE3 z4g+}c3knXL8y%e8IhgNFH__8eT5__q{BkkQx59n9uT&bUC!F6t}FzA%%;7b;)5!3~>}y!sn#A z;>AL<2{hrDw~FFOOQp+N*X#3_?DcFCOv;S^Mhrn2kO7GAAWlSW{~!>s0NGHc3#_2C z!+x~cd~LkuO<>^Jo?I=Co#o*ujOc$t9=DXcYF>0wo+6rADj#8YxRq&_TkDtix}wXh z;vw1wuYAa|OfMX}UQdGA*U?*{1KYOfh0NKlh5kTzTW<8`n>Xj)(TPSDmI1gC;9R!y z32$YP5{S>5*~G91fG^TOf)Hs_yWeD$`sL@NDrYMp%OM$f2c0_a8r`(n7sExy)yF$% z=&P~aTQ{N+vQ*U5(<{Kd*JQk*p0b>9$L(Yv<6yPhggGU}#cE5wa`#vyZA*=CU4&B6EsHg%05}IYZu!op34GE(97CU!ES&7)x zFYW3p^Z$XA4OYLsTM+&d&YcUTEHfi{k8p$^0SU!Fzxkg{yP}6Obw``+!|YjtaFn6S zo~0Ik0*AHYnEA$ys(g#_YEeOp!553aa}Zyil(v;x%^hn)IkxaH@ZM(uTEHSGc-0q( zV>}f3*(D(i2vR$+j&WsQ>R>+o*Pg5F4D0h8-I`R_sf+Gg^FM<~nS4Xf$iXZZB#`>% z$(pDoEp??xDw~(*%NOtL-XA{_ zDACc)n9b$lZXB+6evP5jzCVV}^Ml=OzOs+~;JP50hU zax(IGADbCGI;?7ps0vb{Ps&8sw0PJICaAFXAXlNeJ-;TBMY*rgKw9c>nIE=7+|o(K zRl)=~J4QxExSR>z!|gXEX+*~@%ARn^9V%R@_1Im_)T^*Rcm8}uzOZWlw!`L3D;>%T zjDE_eu0PYKX9u4?d`Mnw+HC@Uc>!DO5tW$ZO{nmOKm>+U%8x{l=cH{Zm><)H#V+c zzy8XkGXcj6Au5c?D_aUKDG|USx%2ZjMxUeG0G+`hA=6WhAu1^n@gA!c7#e9j(g-4` zv+G~x93T)p-D{Sn5_i4@Ks*U4@?_OoZ91SsMs_y8=bmkf`yv}oK!%TWw!;Pi%3i(n z6Hg7&yy+B=)k*NKOfg-_qb?I(fMdBbKsH+2BJox(R*iK59mO$AI4hojd(mu~_y}(9 z!ZWdZ9XVz4z^L7}dKETycARy`p$bAuLLdY36+Er;Vp&0oYPUoQlC?WA9ndD$04aos z`_@f3%I6F_69lafG38@PFD)QhG%7be)gAoyTmeFa{gcDBh0zLrsLoy8=5K>$S|gdv z)Z5>r0BFOiPOq$Vf`@3{lZFSMRv2PdGP1i1eVLbj7i2?{MJ-}`4N&?8oE6|^pK%H> zF_Go$2pROLsKoKSf>x3%2_Wk2 zbaOa%*fg~w28clWG?tvSHDvaTn6zLjKP?;`pcziOF%?-Q+5NO`{tkmeI1cLx(-h1F%ei(d(Sdy?cZp!8}2SAV6LJMMb4}@7`Oq)j)vJ zUlbJb5ZmSG6tik(t96!fVb$&Jixj-}r^BUP=RXGGxGq$Z86X}0E}xJ{hOZB0%55f6 z;5eLJhif#zebSb(8T}p+!>KzpJso9L2MVmnyq^`cOKd)VGt9`Cw*+U;=~M`J-{%KR z-bWh>_(W7cV8FtSWm(zHW(_<@2MOSEf)~FlTvtj_d#hDz2%NnGM5^1#pkF}Ld70`e z`@@!9I}21nvehsE+dO~(0tZmQ{OoJdS4k@M?s79#m-sFh5|{qHpO$ z;)ptT?cVFN1jIex?WXB=c~!~!1%L=#!ok_QC6)e}nbs(V-Sme!8c>*UrZR9rx6RfY zg$vbikL~sY%Q&(Dz(g%z_7?)QQZa(;6{IMBKWh#i;{s=V)Y#*w0)56HMl( zg$$^)yoriYqk%@&=9 z+MF|997N91-g!GDND=?P%+LN~reIv*+x4Wr0>YdECtPr7UG4z0iYnULa(wE&Zw$8~ z1No#`@2B%%mvxm&4!nVw#D8{``AsNImri_ED?k=Ck0AmEm<4n_YY2um5WG030Mt+( zo!7=y!6+Llw_y}Y3!rn?sMuT4;T!6$d|mIA(8urt-f8YWmf157cUyY z&Vh!z{;NH>iUdGXaOVVy@ALi5SrIy7Z5a<_wmTiiqc66SGJn1`GvGW+e@7uCQronG zjo7wuQo>`$5q9F$bZAXgGt!C&kNML0QMM<| z(kHl{ix5igIUAot+5n@k#_bdooKMcl_!C}*RS80$Kuvc_NL0~3M z{>z|i+Tb>LRij|R`0ZyDQItO7&dYzmy<`><*-Hq|OXxvrBv}WE&Y!U21 zuu_zSHTR9&i=41-egIIkJJl=T5^gNi}wfXOnexm~vb zudYf1>y=prm5tpnfa z7ZiT|tJ|`&1q2}Nyu7^j50(mp!^5+^j}L(PaW{^nCds!#4L5FnN8i{(OIi{Cm@5rP zUT1-R)df&yFu!yXu02*>b0b|kZW=JEeQxjM?Ck6#n zZDz{4qSzv;f9YtlBkd*4Ph|dQcky5F9cn|ldry`*A5e7~VQUotZ1d6Yy!@tJ9mPTl zYVFBR>2SQ%fNr_%44djZrAvMkgH7}Bmdgzz>+Lktj<}zv#}lU;KsCq!`=L((I1W`n z#LCWcp50)W8g%qCp6(IAB+gEpp6qJvYSNpLvfYcJy^VQ9a?mL}F;jPX%nj-a5zVEa z0IR<-muN$=_t?2A`9Zq;H`~cymP-!_p2)sU{KqG44rk1UlV^<{%+(5EQh2A=zwyrk zU&N`68`?TXIdOFHwswJDJV5IG!l#m`G6G_{H2c{$lw&oNc8yxkeT$W{AjOZxqZe>D z-z~XIcQ=6OIx8!_Z(JNz01-7v5J~Mn&ohC+K%0a6&a&GIJ-8V!{_&|ts2lQi%W+GV zk->bhwGhRbR`_UQxFYOdOLeRj?Z7LFh$#~|Cix5{MpU>)THIH~>XOo!sk((o9&t$! zxo|tq)%bT2F~?U;T^)mS7;pRGLwXeoNbuDSYw`o@-UGYH*}`G{&(8w)o_LGfkU)jN zq5fW0Y)`)kvyZdhP7Y9YeNX}3F-ouYdP5*y{5$zg6szjg`egml5w;ts@K>-#D;*bp zfpr-t>X45FXpe;HRnR3np%jgG z7+})#U?F>7tSo5M^_Jjkpgux{H9IuW(}wt+ryV}q9y@I-B2hpv2A&8okV}6zzk&`f zrf(KdC8iURad)q@i2ty3-v{gwiLIWy2;4sfSh5IdVde8%|HMq)Mdn$6CjQE4T*<5FmVK;aZfVCA2O;LFRb)`90@e z(>wb1-gE{1?KJ-O90o_6+g#9nfP?$l+X1T157tD5v{l?)z(bE@gojAX zX|Vw&egU*`fx#bR<5{ua^kR;Nvuz)6Qu8e_y%_o45Ym47>+je%0Krp`Abo-(0bchM z5K)LRfzoe$XApRy;_&;6P87%%S5Hg0&lEmmLWoU_CV%-uS1XUtiD!7XvaGdU451lt zY5?ds0dtKqr~MoPeHfO`LI$JNJly8=nM1pv100K`-V@{|#wZ6m>qsl^{9BzcKnFwe z7#wfElrqiVUcS{6-7kjQ`>%n|nHCV#K*a)Q{%+yZ8e0)MYo~Z&tC0p^y3IhT;{`2Z zbZNWXdt?f>({Mir7EjIh;(~9p6~=hH+O1&PWL9EsX9bOOQ~_ogN*BJItud;{KRMa0 z;|G5%{E!JLETw$j(Qd$xD>R`yTw*f_eN*g4?paRczEO@Z7n}zF2iX1A8>usXBvLI- z`a zEt++%2nhdkX#4a=Es~L_GE8@BHwg2u=oO#k3j=jXv_0e8I9PX8$m+=_~RlLrO`>3#g~yNmvX9f5qtMO83ZCeDI1 z?|TCZyseb0FrfqSe~8ksC3^NDff%;3Lpo*9;wdy=xs1Er_@{k{lT+49P)6iI=t{m+ zmSyHp9#gtNtu^_dD(PbG;r~OWI-M`=0q=el+U5jgd=AP}OBq)kPUPW2Q0>_&oCF38 zz_Xp}poR+-?%cWaY6P05MlXz@P_aNs68837L0_gWtqkaZ{TBvL@<3gTvH1Dvi&Gkw zDcijhXAD3$01|>D9E3w?h=A146%a*#Rt3D|U-o!ltGxs#QSR|$Dtd9}nLj`Mtd}m= z+aA9tGyHkxV0%dcQe4Ck9KN#SqQO^PIi0}k=Y|TCUK#_3j);i~C@&Y@9dluX*aYzh z= zKy68r$B*OChoTO1_v^g9%8f+_EO0mtF~@ZXet!S{ohPL#hqEmxdtjN2!P*urXg{cy z#vDR6auZz!aP3gjWx?#lxt&nuv?O0{J+?Wz<{mx;$k%SKNryy6-u}1X12RDcd3lQ2 zNm*HIGdcGglMDRWe@6hq0{@=n|2LgskEYcsl5*1pqBkZ;P+~m+y>wCqqG?WtWzc={ zQS`s<=KE|>`}X;I+D}|7RD|@0mX;Qa+P3`r)(?A2A*s+NAMEt--)Z5{CxJBdy8ywz z-5QwNWBo89@$UWow5io!mpPEg*U*A`Yt_2tGKlQ`tSWiAw*grqvj00X`4>+1pCgXP z8t(35K%eT&CkiB!SC<+fU~j>Z?j>jk3i;-Ol)EdO8^ls0xn%W@Uc5=$z{ejp_~Gsv z27vDcD9|BG8ts-&SdW;k$w0R|liKi=sHFbA~1FvDN zmU;zMj~7!T`v3O0noZP7K7UH>XP%IemBlx?eGv+Jp@{l}nOyRoXG-9@e|nbr*1G*A zwASo+5A_%wEtUFgpz2OOY%dMs5E};*C)m`}uZwwFxMUNaQ=0<_{V%gl{pf7wNE<@4 zZy8W49H#az<_0`+;!NaoBOI%ANr$#5#1VLKxZDIGKw{BlL*NaM0sT4;fo8~1+~exy zr;cmm$tagPwWUY-`c`gkZdWIVgUCbAJh`>7krIyMb|y8FmvCO`>TvswR8Qc2(wLDf zT=M`pkl;Gt%m(ms@P0rmYrKdZ657{skLM7th~H0_zYKI;d7vjZNy;k$fcPpZC)ia5 zH^V@suxqGO)xaJ43l}c@ShX_U5iizv=tF2`s~T^8?v1|r;5AHfmRcgAjIAvXiPZYF zSD9yn!$VAe&p#LiWA0y@GoH!XB_{+m<0cn4n08b3FOKI=TkX7{?F8}Yi(Z7)81%5# z!&j8mzGvH97(BqhY*;}G!t+CLWHMRP> zMfEOhNj}J$p=BT<@!#H-&;@(7EsVXgN<}u~4>X9*ejkNcbO2@Ot?G_P^DZ>BI>tLV zX!JMyssg{lFRW_|-OhPUsoaYDqcu_< zR|(<=+XCIKqVrhFD@rxd^CMlvwwo$+RDV)eZw3^+4H}iOCp5(zI#6B-7N;aJX%Yye z|MPpzjtW0|qfg5Pn(dXJP7=YhHb}}Y6Qa1uO{bnZ1I3wLY%n~>*fIVIN_27cuVGOF zFJ9L832tWFo$zyiHZL4ZWiqS$5H67Ab<~xe>0Ws`xt!$pE?9Z;S0*#UdJ>+VV$H^T zANk}x$43BE;gmPUSg(68D>=e%m%E1q=?U*bR&-2%U(H^oajsj-FQwzzsvUUU@T zU|lML>uTX|DJ0fSm4}y=x++aYv(X zTU?hkf>!0CfvKP=)?SF#@cR_av^`Ja-0V;5ED6CD#~UA03sJM2`WA&esyuw0Eu;3V z!5axQq@;FjEn3+sO!}x#Nks!Sm&JWa1!+^?|D;~(2+dc~zF?rX(osJjdYPAxo=1lX zkegDPv9P^jnU3A>aGe@;re2^RH2kunRDzvWpchC}d>N5AF3o4J;m-r8;QlTE-ax8@ zptaa3)ANTZyv091__|b4F<(}bPrkK9Mh@nR8@f=BIaW|uKYp=eh=V&=QiR@=tLpOS o`uh4Y?q6i25y)90Q{PhpHc>aF1j>RVOkoT{Ga_v#8*7$g`72nbk8in3b3CkS}Wp`ifprOJp>2nbXN zO0rVg-g&TmFK=y|%OQyw?(7jdx(gQSqKn_??2>39!EACCA>nI;870+4h%8hb1{o!2 z(t$^zf3@_=nW?LpO7Mwf*}4(6O47n96!RbNwzyMOg{>9cd5(8|j(9#F`yKmDwx8$o z?5+u&n-0MH51rM%TPRQ^z34;4BZwhTfL$icsw@+P6xoxhA=)^IP~(WQI0m<6m&3kF zzW4Zpz~JQ2Mva3{t^{s`c*;;Q3DZC@tRthqh>O%TAW6?C#k(l&(~usujR!n)c+w|U zr&@!$zu#92R&mqCkf5H>;ME$0HY}|D??3-~1<+P@Qon^`)h+1g!$_dt{NAc&YU*pf zyWt;jL>sj!YkeXAGHeldnjk3+(aiMg^8QhfCcVq?C;wkB<|(@MGO1f$nYepg-%NU$ z`ye9b&no#Ed;XhVBKw}^BfFHNbf~$+t!XJ$TUR=>fc}0}y5e%6DI-RE8QpdDA;m1v zue+R%eomxff1&j?a|qr^>*w&h+m#YN3Fs5-Ng1hFS6UY5!VhKbX|vAMFC-1zF?2d& zgw+wcfj!mTO8NP?Rx7w6Jjhs&`PV(~VnLie`S`)hSZo{66f6baUgQ>-&z+ce8FIjk zk3q|F9sqfB`9b4T+AWsTmRSqlf#asN^|#ZFt79c$pQv??H7Td>qveLPC)_L26;%ax zflxBEDqb80)_V^mL+!C&u+n5%0(`0foKhHed3@*pAN%X^GUhRO~r7l&yFsu@Iu+V144_cKHc4PTo&({C@el>Ryy zBl9XZyM=2!p(<5I+<8ES<6M}iTwTgZR>A)px^sEDTOD+is{} z|Lw<-kglc+!HW8eJy0krgZFM%ii-sMAM7NQ(d5sACgDBt8(Tb(TWlq*PJ&hAnD*ns zG#W`$d|T`?rrnJY&6r;wmK3K56sPCsRYs*K-)`#WIIT0wD~+pFDTcaVr(EgpT#i_# zisL*9GLvuFuYV$R6(bAl9US;HUUS~E+*FVu9;a5-UE)@MzwU)D&ljmyan`uMl@7lp zE15jx+nui{3FaD}1bb)UWNjEf*-4vkqQ21az?Q4h!v9s#`DRHzsK|Bj&Y0(mycs80 z5rynKg?MM6BnetP1`1#J=EO$F7Gz$u`(d2T?8q*(c5b$*RIk_zhi)Y@*6aML?VTT0 zImRZuD8@8~1S0}mD9>DuM)~;Cq%iaa7B!b#3=PqdEgYmJIS}c#vl`bs^sYjK!zHHr z65mSKEFvCo+Wiu%uL@1hD%V&>Xe1-gXuFGTP(Y(-Bf*^Ak4iLO#KAeWj|PP}S>32z z$b^AZfZc5UQHb9wu0!lt)_2EfQGYi1Q>1egDWXWe3E$GJOmeSJRXW*ig!mrxy*E)p z6`%<8Wj&yp&DzeDrVhZ$??euH)atxhcS^LI(!jJb>>f1R$jsIH zD|Xn^oN==BV!rbO#ZH$_z=p55ri4Uc48(MySukN_*40P67`km$|IQz$;pS@sgfRPlRNY!7B8(jN1cmC(v^p!faxPP@z0~fmN=pP@YucRjPcmJPuY|{&8@A3Hm8swTBrPzlhv+s!YWa zagk;6J0dY+R8cMvBqhMi z{pf+z+0523kDa8>u_nTizsj%@8P?UeXYPIFePnilQJ?7?-a%C6Aypch>+tcu)mouE ztr6~H_@+pUdfPQuUCAY(Q%AXSJ#k8r@gwJ#G_6>_?4R4(y7-g(sawtWgG_dQQd@ro zcY4LLR+WUQMFTJ&KMOe-KLwx^xFFPeWZe6ihacDUl>cjYSrbrpSh%=^+^)q!7HrmQ zi^TbU^j^@_Z5tMi1sc^LbGPe;&ZtW<>5?@pyJbL-y`)aR!!SQA_Z*r@EIR$LiT-h0 zQV@kcN;m3kw(N=RiydKa6IT(V`^=T5X@`!8QU=``MrC+hAw|yA5Tp<&6C@E6I4CV^ z7y^Bdl&7r7;v(@flxCXdyKqctmvN(BEi|#KCpYeoUpXvQGKo=G24SQ!n{HK|aE1o` zUnCB|&1lmAQ~y5=TIu4-%F9ptqA8o*;TXDA={yxv?<=+F9p`>TH#G^c8#U4~FUpOHQtqctXK3)EfKmpS5A5y;83m`pprK^TIm@^*lvyZ$X6RCO5mGOY(cCtu94X z)iSk1e&>asAyKBdlf1O9ZpH=4jZ6UpgM*MD$spJD&WZ3-yoDC0ie=NE1&8A}5MYv>NDeS}gR=zyRmum?{kmBR_|In!t z^gf~Du^l(Rgf7OB@j=QHQxqw+w6p~M_ue(Rturt%pdk1qI1Duyvg3BpAlR>dBa-O=rdI*$Fd}y_+j(LeOt?CJz2!oFG@O)l%)Y)}9?a9VDlt)cVjO zRct+$!G3Yb*kR$>MxL%L2i)*-ql;BI<59SO=g^VK7@m^t?Fq23_^0{bJngK__Y9M4nKpo|#WNser3sQ@*HA3avuI#_p~{WCFRj z*LK?iOiP4+wZ_H!sLJp^w}UQ*#rA38_IPwurO5YYx_Qh{-Gg}u3zNI??Jk4 zY%J**sU!UoPd6HY4{*JdDJTu!kqlIqXF4d#`gf7kf-}FJwx{S4%ri7BEL+rv8@ROf zU>xxR%#)WS-U!9q`_D(seB6+1{pv|iMHMXe$&aFvGkIo5qfWiw(#onO5GKrHH|c?)R<2b%ZJ!q_ z^K;$*94oAVGOlwB;exv3{rs!mi)Di&Q0`QZSQ{D|nq={NLE38FDmjpD>3gQ1h9Ek6 zdfYc}dhH5>dFEQwsigvtbod)ZyhK7fSyX|=``E%=*VJ(nwAlY#U2?v1`Q_>*9JMiTm zcmpd}$^5QYTQG*6DFei|X@_sRUFqNko_N~736;9?6(oEneC40ZTqgI~3~D*%+}S_% z+0=V%HMqzE=4#CfRfsr~GctC*WpXCbx(ew`Fmp%#{^Q7(&Z;+>atPt6_=OJ8SUSC1HSXedd$VQ0CpBsO{i|ZhkZ5hqa#1s`C{xVbX5GPB< z0|?ud>j!SkHE*PV3OmicS4By(xxO2CG_RIS z6zX-dq`0^}z%81%8%FBaKQ$N4?CUr0vHQ1*F_t4M(`OuJR+cI<3JDRHPVcqHZSVDc zVxRjY#!pWl;nsQcwe`!PC2zDr(SMr5A{;Z3D{#Ki6J{(iW7~E8bUH-2wfaNk2S&OS z^>%%w*+Xu3w`4|uXOh)WLW?oS7>9onByqM%Z|27rR&8Yh-PpUD8H|4lb+Sg~$^>6u zlaJ;Jea2XETW$TaCnCoBkX7{FT)-y9=gcV(4I0y`%JmYpP?!n#R!^ezgQ;Hed7>GyVf*+VPQd`5y0|nZW|2BptDZ}FyzILkq>9` zb+U&zi>$Ss(vFTSsSIj=C-X&s6s`EkM}j5R>eY9Bm>7(B-hf$lbVtUF##GS`VFWFwH^(I@w!zuqyL!0!^402 z&ASqEnyPwu@IKtaOU=3h0iPvhWXQX_b9)`FYy#B&HeSABZw3Mp^n||kyE@vwJMLl> z6wKN!@OvGfi2}+bq@<*Lg@PoGLU|#6L;!1A4~*?G-{_6N%u;2@WT`IEO(m#E`$x9e*A0MC@D%*;16O_ubyw_J!I z-NSJcMva1T_~CrzhlevGnpVtMC(~QIhYHAD7}t6yL+k5>!NCar0RgKy6yy0knScu7b%kWfxv^V5 z%ZQ5^jbIPNS+Q!7Hm_q8^WB8}@T*r|xv*a6wD16-zZqT2KpZ>slM==vr;fsI;f=6ju-pKpz4^NeS4g(cG}2-8+IO_EY}B&PM#s(@EJ`~;3W?>GP#e#sCHJT2sm0&;IX=u*gu@tbPFa{>X{Ypa9rxOisY z9j>F#Y*9EY4v0th!#Q?9i^$K{nE2Rjiy$B`G5vTrOIUuQ-D%b`uU`ac1_+Tjd0K#8 zt!-^n3JTQa3VAB78S{jZOk(uPfrYQaGWKnPaYcL0;pO%o`oUKYeIKS>`&wdz*QW^?Pa5sur| z^8^5#^Oh&x+FCi;%j{kpfC~lv#CJIYZbxyyP{Lm1tMA5D(?1N!OD*=mlKDkmb5+hd z?ylRBX+o04pO;|Z$sSa_@D-cF4y1@(3?*+nX9=h66@KiY>Sy_QBKu9w9ZdxgN`HoJ z6MG3cF-;Bk6_DLP0)Q6Co!DvLIUF{re@fM(3VxF{#%kx`aW5w7w+aFj5Me!X)x<&j z(IHNCR844J+VD${#SzoDrPKB&mzNw4L@&9AO1nPWP327VB4e5~%3&p1KD5GvnN--S zyutRnoLL(F{-W!YPZYuIxlI7Iz7=t0qZ)lP#zMhv7}nDbu~Equ`pl5YX=1zh%clKd za+wJqLo-AF>#6-TqQ^cYqGq-A4KeY^c-MHDdcN@Ux?|q$_AkDvW`_cJ1?)7(vYdhC zqHGjl-h60%Y6lyR_g|Z6Ar~N6TWDl+u}j$Mpfs{Z2(g6hmWLUj@Gsc3TwKW`sf@cV zW)?y&KqOs6LuHheF+fHQI|D?fY$@?2OIN%F3-Qt~5xxF48sH&^LL{SfsYJr*Pyr1#IL&7PjKGYog@%Fg7YJQ3cdVZy)|TUY zT=)0qQ~GQf##dwP!(T<9nF6BX5Z4uO^26PgNao&m`-Az~sjNCH1kD0{!c*^Q+uema zD>kFXI5=hXkomi)vwrRv9GHwN-Rg!$>SI5E9^cKn#HmK{##p4micNQU?<^2CH8n31 zpfCsnaFjwC+}+-C4rnm*Ij8}!Sw5DF{abQvJ~Otj$;JB*u5@=}97{y&od2Hcn1*~o zLjV3&vRpacxbf;}Hg}P8im;v`19wH-sYLRm47WTQ(STN#HHlpMxexqb1{CZ|{r$3z z^FP!88rvtBjy<8+RDCNEg2$*Xc;&N_6Ur!Ma8}NHx_1Z$s1~TGzblRp-&CmqJ~~=$<#F#-PB&*`oHw@{^RIkeaq8_RJol?? z#xkJs>tjF>tl#ck_xUb`UL`6vc5AG*%&N4s^z#jOz>83vP{vwE`Pl#=yJ69Lrl_bWgd&|P-TTM8V}!D@vX9rlEr4oHO;z<3 zf@iLno*8aOnUztK!vvs85l-OnaN7U|>KEF%ZUUH9DU!I-E0>O*bu0(eeEU=4mBZ{0ow~b( z_;{P1dt{H}Ir0Yi_yK2&g%b;2ha4~bsiT>GbUY;$6`4w{5>2P58za@42VIcqfSK)M zL>K3ch|Ujf3%FkuCcN@{K&Fl8ZAzx3c$A9ie;e;WT6OqceZSK-F%5cvGeWwi?XCX| zYleHGm-{sxi3;oqaTqsmI1>qc3FHm84}lfBRw#I5dmb;vFFFU(@B_lGUtm43ZyvSF z7VrZ{lg*oY25}N#)j5z+_U&%vvk0N2JYEUh>_uJzyY>Ns`-Og||Bcn^m`c?wgdQAQ zZ%a)_7w$A)7X7ckIyy07DE9JC<%cr6vYAE`qpz=sd*|4V@?Ee3VYQG}pei^)$+#%$1R#yL>)cjqZYS664H?<^oQsjq_O>3-;P7WNI_`QBFATh8HfnMin3|eu zF&WRf-t+cI*YnWk1=KN*;~%C>7`cdt^}sS~Gtlx;$>gBt;CKzv9m|+7T4;13E%d)d zcWiLdv6HH2SZnu5&0se?`}0A=;)D;O2oCwh=!#8ctHy?5IVT$e#rYpVPZ}(`2$9vy z*b5A|_c<$%E@7MQK$}kSa`+20lCnhXYCablHM!!hh-Ssb#VH&ZrO~%iCK9;>mPZ2+ z4XCzAFqjvC-*siUNGj~C<1`;&Hz83|@J%`cP=L==>2ZqR{KEsv$6S6_OF&2YTvCs| zQ6Wq$7#q{f`9ABo*zUj+T+e$NL1b#aa{Wm)S2!N1o6Z3R_kr{Kn$@y<8hzmX$dFG4 z{q61Tj!{Nd{lv`ao}!VygXPv>JUSZMM*RG`Idq{e(M16;jVO^2)(BdDD>%$YNlS&$91c}N56 z<5Jd`c@Kn@;Hoy>+rwRZMZ#dJ;Nv#wIL9%?lMss_jYP8--`M2iuqlZ z*-aIA9Q=vS;d2yse<~53?f^srW)2^&dEZwo=z3RSbF-l1-1m{H+Rhw134reYop?_Z z@;lKe;=0{}_j#TFBoT9t57$!ytm_WwmRN2lnhjAYBe1<@9TW)B)i8zFMy7g(8snA} zK)Id`gr-Wem_5c4M>7hDWA(4#Tg~(cANS$0|Il_|KZyNE{+jm7^lO(L-;$r{S zhZ%@xseT&f^pZ31@K)-5C@?ex&Hb;T$h5qyY+4DUO)6*SbqUzyBkQ&dn15c8w2M=` zP)sawcrCeQP~qr#c6B4-yjcDjKgG5*Sm?81@>Z+X+F+@16#wol(kH&2^ygpx5^+_{ z9vHjVWcI%yB~`JvXR@%c2#<_>1~2C}UpNZ@Kp$(&T0NqZl5l{|*%z8PD$n z>RaV;jZZYXD9jUhb%4-1>p`X5D81^jZP2WjS2OiLl>=~1rL7T`*O_;}Ne2iJARxb< zoSeLYYvx6zODVHL*4n%hMZAuF|J0Nr%4IhMn*%HcTnngbh>3|`QHtmBInCpckQn|= z){tG|R&+2C`?=`MgdekV>9XjqluH28RRLPaOmg+F~Pc*jmOL;1j zaK@JFo7>IfrJnX>0Iwr$j)hvoLPfcKe{As@kw2hRbTG`MT^qi}ziAQ~901 zcvix+H5=~J83|>}2M$OWL==~l%km{*Y{X{Y*HYaope;ULAePGyS~jm=`ne2MFHFOr zXVtAX2XxK2|0f2Z#mt$kUED6Kj|zCW{2_K>IGL7M$lba?T)W0N`&nAe*H>UHUiqb@ zHRUz>M>VF^P=Fm5e<-hyu4I=U~~B)^y55R6>y4Xg<2^orXQVBPdb;hg55wl{wSYP^3xy3VImm?|+U= zyky|(=<87+5slVMT?P+v<-=QLVeO}s=Iper5*UU27;2D Lx@?WKdFX!tkDnjb literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/measures9.png b/doc/salome/gui/GEOM/images/measures9.png index 7d42d29350ed6570db3291aa847a00da0f5273d1..38a29bb171abc2e51a1c41814920cb1d69b987da 100755 GIT binary patch literal 16618 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%0D|ZE`rR}nO|LkCv@DU|hwn{;dm;dFz z{`w2&{c`{P4B6O@Pk7|Ns+X1rbI8R*=~@gq`mz)lKVP{UUvAO!R9T$7sefQ#w9K6F zyO!_Uy`*=VRS6>YyGA{yrw=8rsZ^SB+n~28!)MPk>{K-x`Gj5F9 zIkcFnOI#f;D6wCDEAsN?g$j>TJ`ft`_NP1<@80#M;xa2VY$wiE&NE|kJlLFBo2ZUv zcLWYrCSk7JB1*%?oOO@^94GX*fgM(EFV!@AK)?h0XbB9S-MyL*)WB{D!5zROhAd zeiU40w{U=pVPWj;6`U#e{lq3GkR%P*TDN=CSI38oA4V6%@*eNg(~MPztQNJhS1A1m z4-={4jf&e>Oii(V6|N92!Et}o#o`mC(BKKb+qV*Y+JmE`ZBQFX#u&aT=c)IlNsxdB zYbqCY#rtD(vnWi0TB*rRP&xD$x?*#+YsZ8NWa7DN&W={yFr&s@z~nAnCBS(C)c#`Yuk=BkG)+!ka`8mLF#IosB=PqQ0X^YZ&4{igf&NzMUCmcLf_OgO1>mCeK4DemkL z_+XK7SBb&1lN~*5wfVyE(rG0N5yNF3bt@(;_D)zd}IcublItqULUFXB#a^N{s?npEAHX zXxFye&FwU`V>%%xB28lWc#2UeOhCbr7NcH2zV*Z;rGCGZd|gQO>DvkiL4sF(Ux*wp zu*saVr~(6rlbmN-5E@1odtUh{9>>%Au?}BIimDBJ#q1ybZ`M;npFNJ4)k`g2!0@kG z5lQd4W-I(aT;!`I$kFdEANP`!kue(HueL2+-kfOyG3a3{_e6!wU7Te2HS}1SooYS+ zHGoN2-v?uv5Eb>ap#Dt#UMHSS`CGxh5Gt;~$6D2!ZwmaDerJ(@3xb`9Qp@qW4u84(4Me|!!#6(^H&i(agw{@%)peLs4HThycgPmN1){r|ILJB#`c~}Dm%rsC)*)2w%ApVe~Jn9!cbx^*xx$~oS zAW~5wp@|g8LqI?L0Z3JtSTNO1dio9f8zSS~uqP7E-o^qDuAJQWe8|%q*c{*0tR2KwD{NF^KK$7C z24!Q3K{6|nj~1U61m<52g?cZuZhm>Od-zf@XEadD)#DC3^UcebgO$C#{wS(B^4Z_^ zVbYL9i@)c0SZnL`^L#wSm*`GiFle?swZR~ybI#SL5)mM0t9Oji68QZv0rpnZfw-Qx zmzQJ>kL!E~DF_9&s9lgm*zFd&i2Yythbx$oSV}Ox-Y5?AByFq~Yzq}$U$lNDXZw%t zN|!{pv{$T_qnOp$mnx2pxk+Ab#|0qL_*EN$aC!5gk?uzNSxXR5=oD2_t2pZvo58P6 z1O8e$|`3tN4obwGVfUvq0143=9cSt_{(z z1c}P;7)13_=8)utaQ1%^d-t$MwJga}*ZuWZseRA(Tvf15d~h&wZf;KBzboVRRzN@E z(ONyYezPkpfqf>TseQT}v9?-0qqD*#-OiDB1I3FN)m2o6X|BFqFo!=cMv{QwHEQv* zsVVjKEUMCukyX940T?An>2$7Z>>#rQmJ);sdwQN%bF)LUy9E9Q2!=aavU#&QnW-Zr zd7~CRHn%~x>lVsOyMO=%AZ)^^pi$d^gnE3m zwY4R%)l34Xo}Qn7wJ}*65b}5g&3ITgC4YF>jinvXFpN(QwkoQtch*4#1u^r_%1TG6 z>A>~c(+jXwul}8!tdqZCpRZjjS?_VWxxL*uJRBW%S3Eo}PW>CY#BNa*92y%tyHsee znlL$882)0b2|n=LBwoL6V|Q=+!eGBXPT6*T@ZL9d_PjZO1gnpN!w(?*C%A|Sk2Nw8 ziVwzMfF&PRm7(}!_5Qo!A*H>m5Duub&I75@dACnImhS@#z(P@R@!9$LmaohTG(*(4 zZuuzZ81<#R8n1CC`5P3jff8dm#H{OfJ0m+)a5K;{dV0Bm3>ob2+vT2vwfBDM7Xw%< zPhzEc^{D~3JctM=G43U%rVdI@ruV*rZ(GxsU{RmCP1{{>JAWPQ0;3;Zm!)GlK3%1A z`n#>|H5r@sn&N55GZ(~D0MH=tS2%6mLC7Xzz2vS0-hpNGrOo>D(@RX53{0HFSNSK9T5?6xZTM{DdhHSdVDL4UcB|ZP_HRdr(TH1YFrmY5jVJE z*=Sb9Tfjr-Eu<5OqrYa0wuB0 z*?~E%c0j+yxzEKlSa$}r0==V>ubBn1Dsx~8({O=~3MW;t?e-ir+J`FnOn+|!7kWnO z>4A1stV=zN-Ad-Q`#G5p10GFAq@~?*IbJN&fv?Zks?Gq6GY{%-shsQngkvN?Uee69 zwbcUEB9Sc3%HkBJS0$(7!Bpw6W=C}jv}@I~-hB6h-I&58dDbd!RkVPl-HxNDrOm_X z00y%*FbQqLt@Ebj$DO$H@^XdFmiy@}#s+`BW={36q!)_=uG2cUA zb_dum_kViV9mj6-N7UnFOB}J9^hEC>`D4x7930`W&l;PWtf^DG+3K472nWi{Re(o; z9-IzK8pqJkaAf!z0Rd9D06HpYdUwI_u0KDcekE@*lpA|$X$S4JZ*?z$-!cCeb~;M- zj*pH~hEYPRf6!=4PpcwT*h)JQlvB0)ljh0FaD9)ps^)gLF3hRc17y>zbt!8@o`XjU zl!6?zcN_q-aWA~DjE0gJhlKKfm}$J+;P8S~0b`)_HQ{Zn2^W>j_o35+*-&1)g&VL> z=0Mzk0FZ&*;O8?fvH6ZjN?6uY9>=U~^(P!*VPUFyYV}{@RosAH?k@FtLzTeZJYDYi zL)h?E8nVE5lZ~TtKn$Hv;&<#hLylT-W3xE09pZv_n#%t-Kv4}gKJ?XZ&JfuC%v>geEHRuBB(Fsi`ev}bp0TPg;8OVG;RFLY5J zmx6KeCRGgIwP1{L)D_`*x<~%;z6lxQ!h3$SRwwoj*Ake=XD>a2}!F%d{6Ds!bFwfNXVE$CB;S%_`4beIt?a*bO zd7M<7T2>SkunD?i3?VuYBmDphCYBok-~YgZl*S`}e2!GK2%m&MW(`q~hDg;(+>PZ&v#Rg(li~R`cGhi*=d+>m)N_$2%R;o1C zz*tXDuK`_t0iWjC7f`JF(xu49$H#GTai@Q0DY%{P4HI;F04r22HoT^gA^iiI6yJvx ztOEfRKOqoAI?f}c-_LzpybY71?029wbRy=rr7>$~UqnRFay)^n6t=F9($NN9hAvI6fR z;PdCN)*DB|AiJA_0)|Zym4}GKZal;TQ#k9Is~2e}wTmwXu&ZbWlO!5BGbq z{^1{My`8D^GZkNXp9;KxKh6;F&qEFWUmr76s=bzCOd!?tJ6{Z!L6TL8#8On$=N}Lm z`^_vRGAWlxq>Tcbc9aF}4>FJc_2b?K9}bX-`S-C%2FoA@Vt9JQ1Eizuk4ku@ZuZip zl3}T zd0C?MS4aY%dv=?CXg~n7ee5fFF*R&34LnwMOl8r1+CZXov7#Ha&ms(=bk`ZV9W5iU zIv@1WX5j|QiHp5 za(M?WLH6xc5ShSc!zIixSZudzG@j*cSa(m-?~fs-Dr~%slbn5lU5fDgY&Xx!5m8f{ zCwqdnMd!I@!&kcTTve6Ax^_=Fq-vnQAM2aF>q!V0G^=GrI!?Jqug^>@Q;daeTFoSY zk}%9&Q!+K2ptk8@Kgw0Z-xt=#DV~|hUA^I6-%+Dwt(*R{?wDHO@}~qT%GKmH2|2 zGC4%X&=H|e$@l(2`$AO1^+prU{z@rhoVaq69w^{AsF<0$+T#ibG!>}Lm;WOaiCJZ@ zJ6d^oTzZ|9L&aqC*{|g|FkmN3ym1}>4ilS9zKLc5t>7rJ;*$A%W zP4N8|tLxxC$5N#3LD7|rWJ!2t;{|kRq3Sc%A|D1Vsr=x-JCJx+yuUxUss10LmA_W4 zr!*n=0kEiWYc&`$PX0j5B7|y>$B_wQsWY7gb#wpbZO{wkSu?3XOJsQ??aVCA{{wl- zvHwvP@vtAgys!{8OTX;TDEk2{QM}TXE z8Q`k*L*ajgDNjx<4O-2G)#A-*;JyQm>94Rc!0HyjdY%z|z{bB;erGjdRWVc|spVK{ zd)Wrdes49O1QCzKIlGBPnlq3qhBp4`xhV|0n@ zuoYH;0^*~(*OyIG1o`UK-&q=d5aiV7j<@@Y2G4beBnbhGV0W#Lgw47@(*QWvXDZ&n zkngnD@bC}X!>&J7EDmn~M*noWW_U+jJ z?(zB^k$kcO3++23&asLZ-Gu9$+Ry3ME2$vG{H`3JZMiL~mJ)D;&Ly5+^bSQl%*sHu zl39~NI(OIl<12J%3N-J8lhZVXrmOpk_2NQ>)6dP!vQHcPAT|^b7^n|nYl0ybcPJ6k z5Cw8}SS!I+@5{uR!XsI(vl9XjiLE(ETv@dz*vGm;2gzF8OB)wJ= zQ<9eUlI2ThQ8Xo|2@!DgX&43b@_Qd9vKCwRu0F;(pB+Ajwb!j7v{HPZ`4{M?d-Er% z|B(tJR|1rMFG56+|1eGz^pDtoRFMDo<0!4WYqT5sJCVqH`RenPS+a*t_QDpSMg7`Kv;a-y)$)I^Wb3u4pK)==k;V|Evf9 z)2-J+geVtsGf(Bs$aEf;;hSpoGx*y+@2T}t*ck_X`XV@o8fcb|VBiQvXPtZZX?>X( z=f>@l#uk%S0*1`Wvb8=D-66MKkEF|HR1a!NaUd1(*KDg)ak*ulf*!9d85@k`1-Q+$ zOeD&CKLEM=Mz~MiZhg(V+(nzd4f5HkSByx+C7b!`&*J{E#dIGW-2omS;#`32Wfh*BCJZqH+%S%``f!-k?D zZ=95r1OXjeSk`y)3Nj@MUS_603(1R#i9z+0#KcfQ!0#DE)M)c`=tz%S3R7slodYRS zEi)s<=J_E6j&lNfK(ls8dXy{ctyj!@bti3!umTwc(%=j#biqRCh_ ze&wn?h4?#w#FjntVYMfo7rwAMlh2Gqf9|_pcB{3>s7M`xz0>hBQzHoQ{QFD9<=~7D zBABOkn2w#ziqs*-Xb)PCv-(iv==V$3Y}PC)`CS3Cj8J)BB<-oQD&NWp=aQ*B&4cn{ z4(s6_)PcM3a0I9#Tc8A{^qCw$cVwrykzM*dvy=Evb^jClFJVbx8_r+dM`?`aZIhym zvOVeZTFi=st=zRnTA%g`GCI-l7)&=~^Tv}C6DizIozbX7WnMI`qX=F*x_Q+p{dSuqq)A`O$k?|G4pi#pB~&>Z7;?s9!Y{?du251^LN+!M zvTF-#Ef=xzH|&!Z=<=zIx9O5y$-?wGEs}5biDz4b8SmeRha!T&>4i@;m=!^=%?pVB z0L&=llHfeMtHYtLs}mZAmP~}_d9RigX?$Y|E?J_R_&j;E)A@9B<;bEl>LkBbVZ-XT0+}M)e`69Ssc-Wt1ep?$y;t12b z31~@hweV^(Jh}ZPW+X-*R|W`HGN5x{FC8_h2|FrvqgZ_7U9 zYQg!cWN$D@jO~r4X ze4p%gY~0=q%tFF7!Bb2CxiBDMHAtnB8zb?Hz6JP2zLBvEt{j z3fK0(Dz>uHQ0|kHD^l~Gy69CW5j}i7?IfOlv@zZ%w)U0!eff?24dL)G{qft;bW3d? zc%AHq4MIq1Xg25$XHrG6VAba%%%m|JgO=t?wmr?3=4L`J#Z<&}Dx4mE&<|3h%K{Cp}be5OJ#e62h5wBdPqBd4dE3|uhdsk;_$mvw9YWfEI zX6w05j`v$Esc@|+U3lzQR>;dUS>kjn1>bE4B7;^QZ4n2*@U?f@@5(?6RM?C&_uXh8 z@($t3{tCm>l3RA6mW{jnW}>^<=6J!+h6AZK^t;~MRk!@j$EGG3iii*TzC6j))R(7A zs&vwR?>m)?vL7|nmJ6n(sq`%@PmT1R6b_fZWty_33b8#A-+oLidN@I$yte6&CKBB* zp&r98ehHsbikr52B$hes%xMh=m4AkcoW!43}QqEk~n3^Yrv|-c8(DJl&W|n}$Z;*WRqCW|ih- z2NBT(Cl2w{`Qe=neg87KU1`ImD zmo2qUS;|fj(P8Y>bmCT%$0t@pyye069JaF*%FGU_KTMRMI_~e}k5A4Nx$rz2cPEUx z!79=9DH9rx5}`L9LgjMgpiB3D6d@TlRBUvG4`<>2PvI^X+yiGv1^1zF7PTn{8;yw0 zw^)<(HEGYqx+RS-|^+h6X#-RCf#e}`MQ zym{TtiBFbB4gvCE^VcVqD`X43T+vb%h0o zNYltk;93!}hz7DY*1s^wD0ppvV{xTIP0sm7CpNjIxBCFYWFQtqb&=UR;dkD3XLdSR10FdIG(gLrLM zz^VmSJ&3PjdpRQ-b2Q3)B58l)6Bg?bSvFk|$82!%9+fWmi_Lx`O<5MszR_OXPCR*F?`q|Z??Ws>6mk*+D*zBq;d-^w2i&IUl z?B|N((&nzp9!g`b#M_y$K$tNHaZL1651t51@KaulwhFg*bROY%nXDHLse)}SRSqhP z9rcMB8eHD-JhmliCQy}XemiEwhi)7+UzyxLEIH^bMbL>Zr|eCGJ5Hm~p`-Y17Zpnl zQFE?+&?4sbc5fFKx^nwhnNQ@^#ZFzry8>ne=5Zmdz?4c{lv zZ&ta#k$boxrTaPAf~|S3GuMb^A1y=jWxe5^TI>(lMCZ_4^o+g)8jYpRMZwR{zlW+Q zbq+A1BZhf9P~m!nrbiM`69)K6SPf-#EI55mk9*osTk&RM@{#T{l{^chY9}nG1E|Qw z?c-qz&xf?QztHePIx&~`TU%RdeS`3>^?pwwdT*@s7y?m)Q3jRkgu6vc-8pPk!ZU-E zxq2o;9C|krbDZ0BwXn zeEVn&y)1i0+FBHi5<2g~`DmSid6~q*A02sfVFm zMyu_r5^pf6``TR6JHjvgtU09|(RawQaX+V+EEJBn%pu-(F$Si!UzgdRPNmgp^x`n_cR&uQXD(E!Zf6Y&*+Y^J z518phDVq1%i6mtz83SOmy(lA|+&)KB(L|rOj3*9E`>FPkf#+9DS6&jE4CsfKmKlBr ziYW*$yjyLPNk3R7w5kg?kq-BK%;_YgKjx|+&LvOb3v@FTiK`+A9g|)9npy)gZ2}`k zBR_wCgRe>HQ3wY%0l13pG>)C{_0YCQnwrAY)YNH`t}PAFfi65oM%apT6pi={GA*}s z+oP^-OOkOAf8|q2CRVZA^gx=5bd(7ds0d$lh35wiVUVfjc~e;{%Xs^nOscQz9M@;I zBxyZ=u?(n?ut{B@;I{`d{4mc*+f73p|hX zfZ^Si!Jr;uP>@M_l}3yo#9mLbueXYo?5M!^?A+^y6)^@cXtu%ERar{mY=u+TgI->< z5~td&SWhsot6qrxMf%xYDRDv5{Z^4Rp-c4*!TikvXp@tjPo(M#^$UhX1(ffyj z49(ob83WZgBLtqTg2D|>3WScG{|ET_WTuQ|d)BRtk1t!KQuSDT&$-0#-^H?YiJL%a4NDUVRN@R!*aSe`ffsbsIL2h zKX3}kFVNlH-=5*iE)gnob%)|QoyzHUX5-3so(Pt4h3<21cpQWW*G;ps;5M>j?8NeN zCU+o!;bMR_O)Ob|GxhO#a#Rj%9odobUGMBS#_O0@;A5&M#EC^M3Z+?^AT*iZFvbzmJ{#Y>I+Kcp9ce?`-l{g7>}=ClHZw)boX%hOnL7@AdLGl1QQvie+T|^2 zY_;D;6pE=^1t=Y;2If8;m92F2jwTUt;Hey9vN-PR;VNC)rb%X}|MiX){vK z*wtB2x~vPM2SkF9hF6rvpW~p>XPZVRCQN0E-xPWn9=RwHhsF*bOqxYwJ+v8n5HOx6 za!e~YpU3`uKM#>Jd9q6GN*GZff;m7M!84x>%LU zknk+(3b;HBN`KOnQ|h$v7=3$p`lJPq(fnivhXs}hEo@3tSh^C~VPi(UvVk3}#EW3s zVxY5kMO`wwq$9qJqhvC3wL}Q{{#gdzN3Dw@t^K`^i&0_rErLcntIsl#aTuRGk>g7YV)y6h zk;t;4=tpLe;Ai(xll|=miQpz`ZU>C4!)wIyn>?Q*MO_@UuW<_hAI(4f{=xjPqw$oKle+zkeNcmU0u#bGIgL;oy2YRYhB>LRGHOejVoJYV`I79)X0@ZtfaS=iC+`O zmrFCac+Y8znDNKJ#k+BQJkAO`)f5Y!mg!Q9K6a#iy3(93PhYIig@R0Fx(_#Vel0tb zPzIRcwLF6Ix<)LK@|sT}M6@oeN7RF9QcI07uT)fs|5Q9t=XcEVpI$-@rF>4d6dP)f zbx$*QHB$;2aF6!~KT0J-QqjSIC&c7)YHHsH0!mTmMeI;w z`fm;mwKE=Y`|ki@MTE?cQ zD_dH!N=r+ZJ0Mbc3~G%l&Pv4>?mE_&MJ$&+ZCcSP-g4b3O%-tr=`g(~BorSRNyslC zP~)_4O|u|g*nZlnkGl%oa~ty;lhk16`O$(>lh?EAhp1eRrOoI!X%u1g+oXuO7lX87 z!L~QQX%^}NSQnrq-gOW)S9Xw%aXv}&#PVV38yw|w{di4R&gN6A(bCCr$;ir&&iC$) zEzoI$C#e)fKaF6C>Q?-sPHS9X>zBHBnV>zp-TQ_|niTyN4W}Avg|nB4U?Y_lJr;@a zpqciZKWm~k9(9Y9bclSIiHTKX8EF})boxZ2{E6IhzSil*ZDEM*Y*~bnfTYjX8x~M!z!lr-<=hq6f_JbM9snJOkGCXF9X6hg-@_9}x`w`%%zxTc18w3O_gt{+tbp6%K`UTv zRFpEJW1;UsAK#rQ>UJ%WHywz+K9$Q?Lvwlf@5Av`(r9EN!d`!WtYe4eG~d2ZeK4mn zRcvzo>f)G9ZNMmoA};ryz2zOvMz5!(msD~o)L5PwwjUCfmhZqFgy%@f&&86Wg((sXtjo)|BPTYOt zJ;DJAFy^mVkFYS=-&~at$pd4;z~p_pw$S%RCE>_{^sWfrMuqHWQIKNY!kIwK6##G5 zRmoSKb~{u~cv7{fyZ7$3G)RhxCBI^p|1+T1=H$L7Th34kpQ8tSZKgL!2&`l=Sj)@H zh+^TlZao8Dpls(FrQ&j5tTuSgnT_Nqa_N-jj0JePay`vC4~vdQ zPVSqnaAeP5rNcfidckGe9)^ATgq!7x9Hf&8m}zi;Tfs%W_OdR#eROLt_CIY)Bnem% zLn>@x9=x97>4c2ZX+3eQuD-i)sfn}YI8}bP?w8V6Tj~is2EBvn5@(xpXk8oM*w|Pq z5eK?l)yz(tGM7_i8%{4hzuOH+n`sE2|G69V9E*ifo-|L|)YOzCC+#Nwn+H;1PaZ#> zEVCj3b9G!jYg$5{wDU0XdE%uQ9q|OzNL5x=Hsuy_uMKoNiY^z&k zt^DEzA=n0c`BG%8FN`NP%ho0eX?1jT-p^2}*`1xmkCE)583jmd#9vS6x|(%Hn)EKS zr%C(MI4R?B8Pt|{r=FJ1mf{HPJtNx@G0acl{@DaNrlk%lw7L3Igd$`v7fAZkB@#=_x+orau8(|g@9bP$S_+0j zd7%v_DO&y?qarLOhfT0?aYxvGkpu(;?6`xp8!SV2pP%V=+e7X0(~+T{iDO_Bw?+;R zzeFbSncW~JUX4gMI+%RFPbcLuwt1~Hn%3xE+=9?kC%7>&+Nt=6=xI)8ZJNFv&DfXa zWpl{wN;``aTBz16d1zSJm#AyC@2rownC?8q;$|{cy9p9eoSJMzSkjlj(&}Hi^m`Bm zDIYsdd03btd)8CA7fS!~QjYC_;S6##QDgla?~!Jzhy6@+;AJM#Xc>K>7ie`(2pdxQ zfVye*dydk3Mn$gOF8_Yk;XCi~d<_PeFWH#=bj7_TKis<5d;2eM+E3$m?Ls3WVinrTF_ISn@C)=m+O9DGKCevr}48u!ZQJ#3N3z^})7YG?gN4Ip!K^gz` zX<-%?9E>>n{*JQwg%%vKkQSTpcvG|R9_4Km+rgPtrhr3#_064RkgM}c#nxIE(yID* zihT{98H#pAA#j>Ymd(t6Si~kL_aHO4 zX;I1>BXyfy6AKhYMx`7k=nxVR=LTo7K4SUwE%0(Ky4)IhzMzQ_zlC~CmzJBM;6GuZhGjAG!%!wu# z0pvxXv(MX=QL7i8(HR2ZrajLOuExf9`A{9zs6Lr|utKRe{>g|V>QSA`RZ~=G0MUlv z-7FOdB;9exk3Gn~coS~$p5zAG&IeJLI9TL@k)T1D@day@+WTPcO*VfN0&R_K^6s$E zV+ZnX)zE-zcLhYqf|h!^&aT>;JckrL8*2`~=S6Webib6#F^{Kt<()W09kM{Y+}g6` zBwkEK0WDet0-KXm@grkqEd^e^TEd_hRJ5C8qD&IPbp(wC+Sih+0^UFv2lbO_dJoTA zNTic^?`svyAGTk%GG=ewFy6G%!{5C#Xy4$Ft(eV@P1tz{Wx_zX=Qs^bdY1mmkk@ zmGq12?Uo`kRif;4preTNpyQTwh98~FVN}AV;L8UQ3Kg#lp=N)WvkYubigMesPLQ|I zm?CB)U)Knae&pVJTz8sk`5q_sq&tI5Y6y)@Qo*cS6frafy3rtvZ214Pi29eom;ZRD zgOrR+{rnjdlN##^@fxV8;cq}FldJ6n@$4$2p31cg3_SYpMeytIxJMfr1s}u0?gG%z z9i}i*q@!o-?*yMWMKv4_O7v-<`jZ7B3{XRX=(rz`l*PRE<}DHfmxx4s^fQ`NSt{-| z)tix%l0G`L96&@vzr=p3tLnWtCx_uW!cSTcd7XTr@V@bogKo@p0!lk`+kN4t7=120#3_JbXWlXJRS}H_Yw{$$!T=s`oxjI$wNE zBW!m=76i-a4`s928E>3Q-}Uc_VUb}uMz3Xv8Kt)jGXn3&r=|7(jL8OogN=hf98{5N z7`>Fwmn0Lu_n{vIvM>-A7nd+FKiu2{OAiF4q|%{H=oD(+0psoIZ_MY(0#^Ls8Xvda zS9kA|FiO8@`WYbiOpf1w`bh1?M-W2D>a=| zQch0Jwe56q3l8v0pMEk@yztgTe|-`f79Pn2216}iNq$;z53{+nE(D?o5G4U6R)xyT$zdZ0)0sIqdJD`1y+_QyF=bCS`b)If2YdTZY!cR+-K{#Q zjvrvOU#)-{n$6Q+U;o{J2avwUuAcq{K~v>f^iykl_MI#Dnq87SonHU4oPPsG_gPs- z^3-#$ZHl|^$eEgcyQo1pU|2&i0;vi>IKf+GSZ50{~`}$jq8E`8hQ3Dni=-d>B|ze>po_Q%|}+ z(eqa1YH$i)xsug+Y@04Fks;U?aunmJqFZv<-5FuJv?GDmuOb@gCVrO9$5LLFftjBnE#5=A>%=gIp7 zm&9bXKUuP7UlCYReW%V#A0s2VO0HNMnv{GS!hHkppwJJt{m2dhc;iJ4EORUe46`6y z%6}2j{R2|fB4gGohbr$R@v5jk_mr6}@yByr?Z^7#4St`fvOK0?@L9VD`IeonQ|1#T zkww&YS6rMX2;eo>%Ts4mfJD<|57_53_EAw$$FAL%W${qFe1G_ zQ)bSIotS$s}Zk|DYLlM*}YKP$FqXK8@z8npNnCT^^c5 zUr^@ez}n!_R3RL`5&$)=L_K{CvIK3uo+=cwz`#eJ(Na%uWSMVnl#KR^gjM_Kadt6>$Ryewm4Sh#X83(PWL%U zDTi(6yxDQvwTTA3x5pjyz&1OytaCurmYB5RHoI?yZ@M}|AL;7SJbLs9!sTm~tkt#U z;suA5a^ziQ%o?p&_pKOPaEe19R3HDG1!$DXvCR8}TF;MnyUxlFXWU^1I~HbLpWKIb z-`cvl?u7<}tYk`s8$rSA0_~Hj1ppFvNb-u1GXZ*+lQW{y9)55lGmC3{o|!A)(XX9Q zU-4eI!luM$zy_>ESY%|5>aMik`Bd(X%fv6kw(9+*o8_+a&2K?=4$*ULsAxyONEeR} zMep4rpybZ^GqukwI(p_p*jS}ofW+b~N@tP6kSuIZv(y=7*76Q#EKjdXDjveZ*c5wm zSa}ID%)wq8NtrSF+T$lr@-zw(y7?)$wd6L9H?kW-By_Zbc+09hPbVN{)H7U7% zWBOpA!Xr#%qvYbk55d=~Gj2~au&-wBIdy$cER)?cS>yYnNc2=|DShDnP}**OfL z_GiO)a;#sDn!@5&(9=vz-sHn~?51a=a56B~c3m7cAH!aIrY!!vD<4h2vR0CP)0{N# z;mx(1V}d`eV@S)xx>xdJgA5yNgg_kvg!dLTY0tC}PT+UuYI~=Wi&<}E`bxep$agE# zO`;##&Xgi^WH6VmwQlQ=ffiN0-$|P+?w+r8F%A~86}}ktC>ZzmFCBqv*RJK~1jK9< zjUcl`0?U(ue06}n*c~l4dGd!ScV9eH%XOeXKiSsXK!e=Ct93;%r{ArvDy31xfAf%h z5Db=kKe(-Lzi#g8ljp2=D2NY}D!7=_yzGYrquX_ePvbV+qtYN1{9(f7j&tan6-qgl z1xKX+4FKSl{!aja=fm>vZ26DW6i>XgMX#Te++||}DC@?^$OwP|Ka0`il!IEWpzgn! z9=mf6SlZ{$w@|e}6WJS6SN)x*&Q|NO-K#2d_1btY(I_B!2T?Z)h_A5SLI+y}h9Z4^d07M@OZ5Sxh9y>EV;deN_R+Ft}HW_@k_%Z^{t^X81;Fb(zM@w%Q zCIX3)yK1I25OZPF+Sc}bMpKR>!snh8YIt^nFSRt zYQ~iW0tyTgOtdo;UTQ%AY!*)$nLxDP+bf__)K7x}7=Fid17_IV7CJ<)7O`kp>5JOA z7Fgulx8PJ9aOD%t_?SB6Rgp(R4o9n)DgYgCU`6ymxB3QD8N+R}679YHeP@}WKs!*s zG6T_K;8YDqY38_1$K2dpf&J5*MU8XvF6L;-)-UYpqP{0w5O#L<7a4-d@(lht%^sT* zMc0l0ezP$LBRTd9aEfHE9o&JcGvH6g`*XD%QwHgJ>$V$fXL z#m!fjeY{P-K7;NrIsCB^&_J2N+;n77-Hr<{t%L_xOiauU^55$RUNOD~=-+dZ)B;|s z>sHz&emFpDDYu6wRAKgoA)^?{^b)hq(&a*yv3!k)aa+x$rKKn4=J)-5Pz$3&(%ha# z90F-r6kOWP@A1jNjI<05MR!C{*1>cNH5)N#UvbZ!NE0fA9(1xgDHB{8; z{&C5_WPtf&eOrG-oaAwkt$zY~r_^xu_`4BaVJapp%uD`1yZxWl8;j{6VZ!Te50wx< zI5rwmzM!;UAMbPJp<@#^rS4k3T)|5BprPMPA=%+;=~=E>}rcM__n>obDOx_6JNamG&18{ zYhp=VACU-$_DM;9KQ804-~S=S^rtI>Q*8Df?}cJ^p8h_U*aSBh-~1|Yf2QwYwP=UE z`osYNCRi&$m|PmS@$S8= zE*R4Xj%OMxF4Mc~j0`a;KYNi`oGGL0N21~fIb3WWhIhXRP4bO;x zXH|)Mj@GWo#L*uktHupFhF*;`sY@PW+Z>zZBP&HHOGZZ{X2%UKTOB4XwW!p^pLS>R zVdnzcavZVj&xXg7pJ_6=e1C)e|ESCTOBLZ?OL+f3UCJSp1(FkInK&spT&bBHPcISh zi@$)3G;c!izXY}ZQZn<^ntt*J%$)MuGcqzld809W-vU z0+3P{_-h#060vmc3X)g@tQ{X8e`lqqrzes|EPSun=?~K{vx@db{4-$5m2CjNA0a*e z7hs6qu^#;+aBPx2n``u^7B_zYsw8Uigyng{@WsjOAC=?H{9Op(D8N%-mE=lm`5mmN zq;ycd`|p$pr$3_4I5f7G#DTVdv&_&62njV6U4?e&Hv&M!rn$aLr4YR%H3^VHo;$#h zpA!j%yQ*&XVRu{?DGKiPWgQC8N-%=wZ)CKp98Ie?)5-iOgg7&unJ@oi|@ zJC$jZn~bGL4bxT)DgSm|EH=CJl8?{1GJH?OP_>hj+TZZx%K*~(6>0Qwz{5HPy){)9 zNhcQTywt^K+#JN@KA0vJ7mc~%)2p;I>5Qb7yx1yZfS+t|LQ6dmx|IR-@tz3{OGTbQ zDVPM{Xr}>XxVX3|xg+t13i_Phlb*gL-JY&s=H%?#47j7!2xJ7smt?|rGtI3}3A~Sf z%Uh4u6444f82?^;`XW=fVN4tVm7jlfDaO{B8T|mnI?S*9jG0wArTq^O8qAa-X$I7_ z26V`9!N!#Mx+nB~e9J>ZK+y0U4&*EO+al*M8 z$C$e$$>JqeJ zI3AN}LPba?dJB>|(3vHHSK@#WXJTePTbL*L<2W;*$YP%7+slT&e_w1h!~oFlhI2!Q zDf>f&3025NN!x<))%h_tHa7VbFUI3TqUZKVe4$r5sQmunp{q=jW4pg3`gAEx!t;{}Ut9Qg zaG1WDeXb~2<+d+9>Z1PVg7fDB{=i^)x*92kPe5V@KJFmvJa;{0b^rnA)GERTR$W6g z%Uj;21OD7t)%`>*%wow*dAZ=bckdwDCxfM?ylgL&l)eED`yxf~<8I>>aS%h*i7{f@ z9rB0mIw0!2XR7q79PB2Gv4TisE{kR9S&sYQ2hY{j=qVyP{O>566zW#B!eEI{2`HV1 zq)_^r2qvvm8`|NRS22=DdruK;(}U`Aeh-*?Q=>N9f!CM=X2ySgW)vnsx|}Q)aK$F2dxuR)bXc zz(9v(S&8$~GYVea7nk`P`)2j3lKa>IPnzs~ZqY!H$8hFz)gJ%}(D%pq+57HM)S_>UHAJ4~Ob)ObihVe&iyZ$SO2o|}tHP8U!EIls{}f%Ff=lNzW?!Drt5HQhI)G0!G75?HShuUlnK;=8uVU`ePSD-$%UWP7fXr{m=T;V7~6t7D9Bi3(Ewg*Jo}v6^S{O zBo4hE1PYwSjCf2zXzt;5C#^&MmOoTjXeaeOs7d|l0*N50J^{Q592Vfxt0V;6yh9D3 z;M*}Y`JF5i^)-iH`yG_lV?RkDfS3U7AJpAUCOAlCr1bR4fM^G2;{jT*Y*=O9bNf%P zpt|7_(P7I1EhhWfCnivqes(_qq_om zkCnl5yQaXaEULQAHdm~ED1h6^_tZ~GxR0$cKyv9 ze>cgmtjpcj)qrymZUU6TD11K|C0!V)nU$9k1K**gwt6J z(w&pDp>Z5yFBtD_VI;myP5RMvHn)Wc2jg&WIL9o&nE_H^1Kj zO71=5U~$>Y)CV5X7)m9W`<3)8Tp#Bk)6x4Ruxak9I>$ACuMzaQ(=syt?HP`nbraRA zSA)PGmg)8L!1D)}*BP zGQISwbGBrui=*f}$Urfd3xv1aVY~ZP5?DzWy1#6Rr`LVCi8F0W#vIgy3du=pdY4I% z^|U=Yo7f9SH59o+70n%_M=?vt7W|3x0FANNq%j5Z3r>Tn!79>mk5rUGd?jdQNA?9D zW+fnA;V9n$+}7(RvL2Z`X#UxQgFdaunwYkkmu>VR;Tz*|4NouxCB+58&uOtO$z(-X z0{ZpD=gY~2Dy&wYV^dz0%aM|@SH-r9ITD}S*-)?z>4S%F2>uLU>dT9?AR}GbJA!)P z;20-&+Tm)J`e>0=wLZ@|# z3{dCpJ1-NQJTO@&9R(r>4?r&F(AH_IsrGgL>)2m5I-4(OwS~yLI5v&`%`itkEhv&MkQJEWcn_RWnPL(m^r&U8cT>EJKX^Sv?PK$1jkht6!7CHm3k<=vJ?!;A-;#&&^@`i!#n> zE*Wg56&0rK+-gjkJ`4R_M8tQXk@OvCxnZeI&|^~`BvJg=`8{gXwKi*g8b;dB?r(&< za1kH2=Ut;CJ$ps3?Re5C{ZS>aCa(1OgKU{(VP60B8I#ny|1?JrYNGSX;+Qf$sHH+znsb}|>GdLG;!Kp>+R|FGD2Ywi$NQc>Q zZ#kzOxWV@>L?j~3RXGjN-v#RNxq1fP*8{62+-iTFu! zp81yVFJIgI((2nS`b-vP{*+~(#naPDdGtZ0W9~vd=;RyzXVZ)KWpm|lP7Sb5L~eE? zWmqm3azA0~V>ahdLUr2BrwxY{+JztCLug{|e4I4yZ3;4UFjeU%$POBCmFx`eKQr{7 z6UsIX+CIus{(gCd2G_st`|&gG&Mn`L$Hgu~|M16O1*QGW!WFl%-661ilZxsYs*lC< zUOI)Dw}$!T5R}J&*cm+vl)(edW3F=KX}St9Fe6#!ir~_Acq2k6Uxp zw{@4r0-=u^Z**c-9hDV*aHe8x7#?afeQh#ugVjj`uiHE1F)kfv_RUc=1g|;;VrLMY z!MOD0g;YpZxVL?6Qcn}M&9yjBo=}n?CzwU0lP1+_rTM9FuqHthovh7Ck>{o0KoPx` zRME?G&eV%|anfQ)kAF{O*Jz7`@c1-AHiIqQE|pH;$}|1hKH;xNX5KVsQzXQ%6ekkh zyR;Kz53^4muGeFIKW0I?fBNga&zDpsKJ0>daB@{Sp0VYL(fsKl?%7wPiyYNfEp&%U zne;jeo$&#y-tTo}7lx^Wr8^}_HOc3qI|if0+b1`ifqX)rULgwIpbi=F@1WYO)Fz(k zSBtEey}fF3A!FpKEmqv#*RU+vFHI*6n1|(l!Y^+|B7mMwYVY@*;T~tY=5bDWsD5#p z%lqEjo!HTbiX%j*G|vhWQ}PY-t=+rI)z5<=lg_Ly4<`u7>6ST;F^6We^F#jMWT^M} zdx8f7CJwn{>a7sJ9vXHSAJM3j`RFW~={!e4|8^T=Ag%t}4IVZO!}80UZf3-{1X&?t z5+nrIM`O-MM^;C}P3qNF#P6W*_9fp5{d*^S9hU>`G97Dn&gZ)Kqqc`OKJIgEQE^8% z3hI581&9`x{IevBeYWJ@2Ey>SzkHIHmzLVgIaqgy`=#fWPG)V5ydNjJFyG0v!1^M1 zZzEw2l29lq3U{8DW@2_#MTn&RMwPkYBYln<`NF9|O&2jLT7C8<>NA58Gv?=7f+8o6 zPS}+uoF>KGhK-)6s6>w9udb9JI5>Fay3NR?&(~IKg_DtUSzeEebhjQRS421;|8ZG> zCnSkvKP@3XLh09ST3mW}Q7s;?I*}XJ$N-~MyVt(-M|3FG>N2(IgokSQ)k~MW!c|*? zM079z%6`4o)AYyIfjN?0T;g*?d}4bN0@qIz4QCJaWAd7}7Gv#$tr0$TE_H`bR4VVBT8UK49Za{`(Yy(R-9!PcZ+3m za`@}AOV`>-)#YjNk*+NJI$LNDbd#aktRqUEKk*SgkLKZ7U@7`t;D4^;*-#q zRF=7zj&AqK%s+a-99V6-#Cr(My&{C^ z-p%>cHY9sIbxzoZZG z%imWP?bf>O?Fi{CM7C`Tr#jC&ycAnN^4^9&b$ZT1w6^NS9|Efx|EPN|tG>aplSIxi zeC`#pt1bRGG=0NY`xp>2)Loite&8WgJ|m^eKiSxJf*T>C(%|29K~^hwij=fcKXFGFuUXAMO^25W_f~mH2fTk2;DxO#-Im&1}r=rnX75*0m;yfY4v6zjjFZ!9X^Odq=T1eBi9%f?jpR5sTtP&b!-pnz?J~>hY%-HFl)hyPMrd5Zr zYs>EW!NFFV+m9?iteX&gwM2u`smPf>wreBG#1-d}s9#*BrW=S^bi?ONA_%AW4$Ie0 zDTpsN>0E}8uE{7rl+SV6q?_p$rPT~`n7m(&VV*1%h%v26AEx)F0SIdhpX~PmlqA1yDqpk-XQSoaE^mrMM*PrGe8Y9WC)|g(-1$6L>y4kC88FazI zsbzsv=#)K6f%8R`Ne3|)qCr{%YhO2V$K^~QAAgqy78 zMW^NIe)|BvVo{0)nXgAfX0BQ#D6=TH2^M2M`y%{wIsUL&Uw#>}es_JkH``P=&o`9H z-<>dO`1`bz^k+qd>toYpBC9PdBtJiYAW<;TyXEBYgAuKKLePw5*N5^?Cu>q#m8LKv z{c%j1wWbD>2OsJ086yjCKQVpi>V6A-9JyG;x9=^9u^-u@?Kg*(4-bdSv%1S>EE8mD z(a40ta?I#LzKohO){th6B89992@0m3mzHd{(xby-;Nf*8+carr4g}P2Ln3@{Ml#;a zoGs^I&HXOons|AK+?Dyadll0@7-jkeVPtB#ti5E+8VzdI7g5B?%*?zx31xXj7;d@L zoSM-dz*i$BBSY0F$s>_9dVM#6;{0f0VpuZ=J_CDe3l2g89#eA2LcOD5>)n$r z2fi=9zT2}^4CAC}5@Lr))`w2~IySq~;9ZwDe^YnXyp2jr8#-R?CcqMeS5+l=We2}% z*ronEH)J45P)6PanL;3E3`FH-5SlRG#&jC$>ptL?i$m()>yx@6Ay|`VrY=5ZrrTQ=P^yw8z28ZrnTsOX-hWN6#D!LSWDHQ*t^eK<{+9>liLiyKvi67;~{UmjVpWyN9J%06HKV{h__GBR8s{Rg+Htn<%@Wm?4=#cY`L z0=Wgc!}N)GPTuiD;`?|fUJ6-h>C(wQA`$Crwwb>q)YQ-(?;qeniOF(JC`G&wL%MWv zz-roRsA_wBFPFqY!N^$j+q-e0!I|Bz<895{Oc{Hy-xofQxDPL;Q)K3M;f?T{k>m4X*y+cFI8;U_R2d+wE)-)`;l=RO}k2x2lL*tlI_6v3# zT{9B%Ua$L08tD!rBeI*N9?^SwHjH&&GPaQL4LlD_vZK%m9Lr&9(t0w|`6)UpDc0uF z=+j=uA+g|wWDG_kHfEJ?H(d6XclFPyZHL%h3Ej`(#d<%YY7D60awUH#Bsn1iND} zTNB74Yt=iXu>5;eZ);o`R%`-o5|5lOHDY2yWoN4Rsn3k16N3O`NOxd!ki?`m+a_=+ zQHG-=*RG$bM*r*;77mWeWCOXMvZ^1Vh;f8}jFjfu^WQuU9Kk*U*n(pfykq#yEuSLp z_K0<_J4AN%n)PQ3?GvtdOH+7CFt!-faYAO>vtY0m*;6|F#5O1ClX7tRtyHhli%o{p zV(ZO2?`9jae{fO>zX;E+;Ht0OmuPZ3f2XP{LDps{?JgLPM_SUDmdyEX+tr>nS3aHc zp#cGh+Gv&iN{v$MO7U^C!oz)_?Xx|ee1f%pPj3wTlP9C)%90*(Y{AUtk>;szwwtM1 z8TWxC>C7$X_wi<|AIZH1;|50CdlM!gVG>lJ8>Ma4W6-E{?$$}c!FgJrF9$`ooj#6c z;LGmGFp!UZ$nf;VkZ)@6hfOl*ZF*~N{u0cFn9-^{M*&juWx@8k+k*y}-%ak$!OrF) z{)bcY)QOsRv&d{e2kuT;vhok(B`XjRc9N2?|B(6gemvQeN3zvaZA^m!_pX_@dn%XA zWpsME6dfDW=YOh(SER7IJRmq<nimnLnY$qFy&C&7D7_QEjah}JMfwn_^oH);>=^qh-@E# z>HWyXVLBqxoGCVuXK{VumkB0}OrSP@*F7@aU!~bcs_Q*^ODCe{=4Q5f zys9L1_#oZVT)8=}O0&6~oCZpOr7+vo+2vY~T+01- z1TU(R)D61^Iyw}mzdgfH;Iv%`3Js6Jz!Y^MiG&BU^F{Cy;c$;4m7wCiBNWL41dmj@ z`tJz7?lgkmY&7!;Ug(pU-VV^e&1Qc7c#*UQkVzPUV1S_B9tA&t^5v3yIx_YPmux15 zAObQf3QE7Dm#U=Xw&k|6cl}}j>j##mvm^`6!~a4g^Z0dQ)bDy9K3!NZ1)c765w~Y& z4pS}lX^6Q3ThY}5Mk{)>(g4#p27q2Hk%j5o>hooVrwq<{-WJg!U2oSTEiSIB&6{xz zKpYK5yd(~@HsR-wF;P(%5M8%pnnmwNPjFea!q{jkNj7RXBws|-jRv?Sn5dK#*|R9q z=Ie{(5Bp62j>r95_4QY~!aHx`Q&I;0y!O35z4zV-71WDLitGDIBeOMA@d8rXc!Dyw zQWKq=92yyk-XF)3Wz-)xWOu1ho6d6K@mfoZ@bUef0v0xw)Z4e@G@Smq>0U`tj8qx< zBk^Pe2a0Ufk9v$6{b7`@ew%Xqw3ud|t+Lqk5ZaB_3?mc_AxYoYpFYreM)oS@$?0=_ z4#M94e#7;?Sj+IGJ`;XnL-5-CW$vx?gc&RTJDeY4?lN)At;55SB>YYoWMqf)&8Bq& z1G4o_+kMshb1o~vFI;F32sUpL67T_XKfNv)PUP|=41LbRtX5*!9noPEy4mZhz_#8> z?{K)7dS!Jy;BH3>J}l;aL)V%_?__%QQe+Bq!N@QX2R;%|mG|~65zvU=N=u{E@z#0N zuPTGniHV6r&U^jwEQr6XEBN~n5D~|#EYx!Z1;T?CG3OWeo$42-V(;!eaKvBdjsuuG ztGisE8QH&+K5F{$&-c#|hux`g@LqXp9xsw@G%JizXJ%%8?>mi+jisCuhD#uzlZIu| zIc$$T5m&@#{RDvkoZh$XnyWM0{TCRQ07O%(_%ATNaZ>&8@US;uhaKA4h8-#V8t}lv z>7p*{nyiACb2T>35yT-%IR0{E)+>KneTjKK`G5~^v{uTH)cx$0C0DY2gMhuRQNy8% z%S%*|aSoFvF3Hp5^R;d41?l-q@5^7O~5Du~~1g|uM=hle{BHe!gX zNGRDU{it@ffLGdT?7M{}@#xVxfAm@zkCsU5M!G*D#W3WEoZs z)qtY_diFXHjRc@yIIFozqnoqsiDLEV$%9>^S(4BNM`rbqH*q0Li)~y%5Zbvi)^MNs zH^@HZ8iHzLm8Wto`uX$c^@A)16iM>fd-talVn$Wgll5c5lgrV{8ft~Og_9u**4^e+ zuzyxp+uO%UjgN(&pI-3WoZg)dR~(T&-Ck(mc1ulzm4PulB#|kcD(>m&(I110=@}Z5 z80TM^46gld=wCIJgN7##k<`OFx3tuQ)w@`8Q!O`XY7Qgv`tK=<4B>Wpxc~Fl?2|nWl z1bJYWS^zae1_1HKi01Yro0K4+)RhUJA8WI1SS}rLZtUCwb z^_0VNP_(n!+ymT;4ulAN z*ySl^>H+$r36^LO*29sc#FHnulJ86l0&>i^IKb*1BB10;mEU;nhq3aK6g4V4n;O&! zX+UN^7#gPbXHsTeUB{;j&Q$K=q)=hVjlZo+5LHpZ866!h(rqFH9BcPnOhV%8w{IP# zEe~4Oj#5%mX9o+(?SbeqiHW_1rOkbSC&JXa98;nT96^$~ZJ5=Jd!i`THa3*rz54~7 z%;Pzz5UaUrC^sja+5elE@(veF=DNp++w0{(vN8=u+zUA*#R>r-*jI_N9?hrr5oE$c za@-4R+Z!(r?R;?$B~<|c?Pe8;N5;+Yh$>y_Ve^IXp(dXUVDmYe%I8QEVvvskN& zlAb=e+4F|YY>e7ze^wmy00y<9Kj1DW>(BMRe*N0U&XB$w!G8cD=j4oik?!#o44Gk- zhS_W-J;Mie3_?OJ>qis?1GA6~0skL#C~!CEe@;`=fi{BAWi{VXYr7g09^PrnYPT^! zVBN6K1+EC;vEO(m=yvu8j5z*Tgm2oY{@Q3=n5E^8P5ABz4wZvDJ8JyY+l1<~aM4hL-e5OVGi&2)Aelm9BXHTCquQlHuti~t^8I0%1b#!(ba1g%2e+E_m zws?L4(dg{>bXZscNM*dA{y-otj}PwUcIplFX<=c{>YWee->0nBtdEb4C9s>ILBQLk z0BWKU_~{`l_p_~5Fq#VBnFZ6_cIcZQZY;*e$FIAEA6_ddVFCSO$PGxDq31?p*-}5I zbVh|_lQ@EN)7(Np2RWHgR(NHzD4^?oe{OfH5?%P%{MR7Cij_{E_7q8K)H~2KsFyHS zAMAFN{&P3n1z-ja;ThyR=-hN6Z92{iPee9{Qh6PBaQ^TpJWei_LKmM*Jo6LKh#Mxj z`PHi#ZkAi8inU|FB$Ooc6sxgb0OA?slWvCU)z!}JPttfN@2Wzmbav2msk^!PuK8w% zA&yx`T1^elsUh{-H=NCCAt9k>Bz!nNX@c%-_8YPsa#_|3^?reY>|S>+2lczm2eqqc zZSC!^k_S6y8A}g-UQmEp4rVyJ`2?McDh(}dz-wOwRiK=yoH=8O0($3!I|cBXtHJ(L zkMl|OA)|lQWE1S0Mok?^M>ypeE+SOMIV`z|AWjV=s;V>1p8N=JCR4e|ggkh_647rD zK<$hxEZDJZ_$2(&;{N8mNUI9Phu40C)$8sGYwqgihOeE9n>!vLpo@bA88BYg=hJ%I zlZEm2b3Y%rfY@d-Oo~R#^9zud1a2ErP@4>w+x&<284BifjLxNyY(4X;A&RQ8-K5@O zxp)HW@8i~FKK=Ri!JZsohP(Yk?=0`fhi7%} zNHCvatf!l-7x?7Uh2+u~J%hr+s9&;$09ap_^8m_8lq9KZc1J!=ldi)1_r!{dieL)F zUk}xT$q+`u9|tDcc$533#g0rWpJRfsw~$V~LxyA|=|sMA_YXS&5yJ>MLoW8`#z7x5 z9!O{fpchDrnVv4I;oKUPrkMM4H719PO+^~zD@hj>+BMctR0vig6w~`5W0&L$QTT2C zf6NY)r+)qc(cj+RsERGpzM_Z@pg=u7K5o@#<*{~qQ@-ieL<(y3HF*X`+wR%k%=kKs zvgJYnXA8+qaohgC!wKdVL@1{c^u8)(!<^g&w#3=tQcK4PCY3~)e(M*)t!Ruk9W3%p zElw~7hb@oI(C9)QtR0FB;AYy?A|TRGD-J6LJ$N{>C%4}mDBflUN9s3k5Z}5Ce~Ntg z1Hj??VIYS7@9Ch_*;KKXx}z{OKanVn_*Tj8tBkNa9cbh?w7F&f@Cg6(JbydrTotCn z{maeqi%;ToSCeyojbw`|fJY86C#9E#z?;lKmjdMF^_35+)M9=|9{`q$d7*&S!kHGG zCE=FoW}Ax7Yn~0<4&4DNn4ibK;bIcvW9*GD;1E$i9 z#4F&pY=#N~XnXqLeh9S-AWF*0iJ(wFdaW)Y$Dx&qZ-^L+2+&!0a59%>jI@IlE9EM3nZ@Tx5Yi&-;rV5Ku&H(RH{3G&g% zI65vZVAS;NZF0$hx8~oyAl)7+bpwKMiDw9KA(IX&++OTIBjK8;lLN3| zS+EVbLqnU+i?*AwCp=$_dsk>cO<)C;5*RAd-x&7QDm|7jhD$u+fdAuhHY(W&7I{Zl zsKHg)GSvN1&XvcVyYPRmt3UtS_8C5_&;9Ks|E}l$8_(x6` zYfBE);v=9EcRbwRx>^s~L+}2}2L_O(@4u@7$upVgQ3U5G1O=NqmS#;kzQ)9~8%7Fs zzZ-7`w=6&}HluJr-^6wp70H4 z$-QQ7+f7>?ptI2P+{XI;*+|eipjbL;iz2U}FDRM{pNzd3z%}ECyX!m9UW}HSJ@3xO z6$TPs`GP@+1kfY)ssTXB|B8R7&h0qx1w5l~^7eN$Ha7km6(u5Vj`DXI;Q8$(({RyD z#hODLhHmEn?39(TCCUyRu_g~f(cPdn*Lbt1djv6W8<@^1b9jRBrN9`A{GW_5Wld30 z(V&P3T0Xv{R$oN+?axvJNvbE`Ejb7kaXK|^jOOZ+7OW*zRjX~54u}&~)C__;y1MFB zb&;0Sve&Yutq!MV7Ux<3k#(Mfj(UX#W9Q8@XsTFq@CXS1m4LuprOX4Hzqc!k zwA>7B5;wVg0(L0 zBs08Feyx$uNS?8#rcgf%h-iy{#m{CC}ZH@Xm5pG-O< zAv{r)7SQ-kwup1!gW^XfW(mmsUuOWSoXMA7SfI713vA11$T3!dn){{*PA4X5ffnHI ze>-=O*7kG8av+H_^bR(>Mg9SsgwG*w7Owt_;aNrjRKdtME!c1=DgZ`2FgZ(`r$&_V~2S~ZJBa{i+jgf?-2E@BW zr=HED<5QaVgX`u=PtV)0F<-BNjM2~JeY_%0E65rQeD5{2TPXV^TAcOCu_yj*Je)WP z$kY0s_L7k2_5O&B>LRmEz2zpk#*S>-%_zB}!FOa5@^eV@EPS6uPJB^SNPVCA&NNu4{$f9+b`0gW5#7Y-vb(f3+VDg zR=OU?;#}U9iSzUCJv=;IoF*$O%_j?f(`6hT!=VfOD$!|pDYHAuhDg|1dg3vW}AUau> zdHGnSnX+0(2{{J`jt{%Z(9zbsB(LWU2VYaf)|P2AVBrAr1%-sPnX>-0x~;aj;jiZl z_FC(~O!IQ1q3Rx9--xS;jy9qYY#%t3BFO$hYcRx)Jy9l@?tQE`q*wdv4Z7Ux(&>f; z7IE8@wlSPRR}`6C-nKWT7Ew#}@Ie9v=dp3Q>i!H879J3j}DFEavw1NbYaDUcHdRO_b}DW zivs-~P^=$7M@W#(`LNp}f0x8*F%^}X8oprtf{Cek!VLfy=X2))1BdNdV7Dv8&*U&5 zGN#IRe}C-@!RPY82Wgo2-?Z%PF{Kw?ot>f2HR~rZg`AQX>V&{(k$GQ51Kn(-t_X}9 z(416$dl}W*`3O575St9^Wa`wYr8JmsbR4&PR9uoMeMSGk%GqJwn?cTd)+J}crrG@gg?qqw`hrM|=#i1N(`iFS~3d2pBDO9tcYA&n(ZC5cf0BGh+qY*n` zk()pfd`84qG{F}pk#$<0WA@v!TB+tK8X7GRPlBG;!;jx|Yrq2Y zR0=Fr?bdPBbiGKq8YG<1a6abPZ{;pzr_V)7z_=O48Vq3?9v<%gP>z9x1^X+YhD$}t9bL{d$n|t1IyxGL zXM-Matpqls5PKrvQvinuhqC0)?fO0~il4)9$8`#AEUT|fJbqQZ3+_c!@$K*5CnFDP zoO1zZaA>Te;^u0J{?7Lr|15xQ7e_Scr^*~sHV|fHJzdO$*Z)Ba;IN)Z@QS`K$Zi56 zn_-n!-HRJi-~c2Q90TDBlhkWHv=fvosJq3*HN_jOo8-7Vb?mKhPv+@%`8s#nfWC~? zXVp&#=$!*Z$1O`VluI)7W6vJAH#w; zxOjw6*M-xec;oKmltngy^|R;FUg35LB!cXl+oSKL&g@0cGL=A`{*(Rs$Jp`i7Mk6* z=`d1UIiQ54*eeLpl6iP~>LguW9Zo+ooz4khV`CvBqqdrId|<^-xkPA!$%@4EUG#~J zjFioMs`$q3VsHB-p1vBmD-*+=I)ncnvpkVHE8JgfO6INDWcBPiOFEE#Rgxxe4&0mN zni`tp2B!ImmtV%av3rMyU$C-{xJubCPlo{nP!$EKlLpB9+Uc=|b0Hk-ed-#QDT48X z6~gwTMq97)(pcV%l}Do?deiM0ZLRgESWo|84AGvscPz_&)Nadz-CON&-q-AdL^D0Z zO~3qce%GI4v$3-&;#Mg+B2xgoA=2nqkk7mXKEc5xZYtxwxAl&eA~CGqKYv#A_71ih z*QgdSQ~1$^rVJlp#gd?2C3!$)Bmn#zwmnk#9CyBtJAm+`imwNM3C7B-l#ferpO@16 zagHxvzJN4XCh&nscVaPCB4q){n3x)u0AKros zIV%`A9?U0J7LiZ2TreZ}eg>(8@6)@5MS4Sj-Z2LT6nuYKz%HU9=NR$s?{`p4EGz?6 zkk{pie97yUNe@Vur9Dy;R=>llSejdP?%N22JTzi2insD#%1si(WabaKLxGe6@O6$~ ztr7sA)cfHyJ+*(&i65vAn%8^MZS4%+j{g928a5tiXlO=j6!f5Ry>cVPXvMp`{^9BO z-l}$v@OCR5$Xu2#fuZ@v*4B$uJ&k*WS25=T|4w{ z*%;S!>O8m-B|bmtsN3O*{bBwxsel(&Ow|aUvcs__3x@5}9}#GK01Q$T1chN-E>oSM z4+EUn|2-7pLL(LEq4M_j`|<^rki+zs{jjhk5T8@2!az(kCLy8cx2<8Qel=y%5kkf>Tn6n?b8j<#*{qS~nrCj&=z9@gB@lk7T6?E2 zpL2~Gj$A?{>m<*WsF?_yI19cehjZ%s(}~!e3}r`vj6sII!?ABQW(&kCR-2D6kFT&J zD~wL@>K%6_G&JymJnT_*$-u1J*faJ+2BvIoZ^({-fZ*<`J<{W9IdI6xac6?!#fw~x z`|a&*Vt%JE!0zE#Ew5O+y2G4HrgzVu1(Pb7FZH>pzb9H^Qs+PfMwtI(&ev49CyCp{ zH)h=1n-^J%B59hD>8-Lc8*)fy_+LO|8>EZrP`Hx!lZ3KOYvyDa836BDdaNgeDk>}kyxT$R@1=xOrU)wvsaqKzy%b4XNA6+ghNeF%RdLnkV6AtJwV3n1Y zGhfTfSnoXU-@Ti^2?O${ZhX2 zi>Xq*!=gUNlUp}m8w=f^DMJ8cT{(gG)Ym5m)}G;N7X#V3H&_nA zK|!?_sU;uOlB?#m^;1Pe-@x)ZZ;(4Rpf@<$J(+T zGc&R%CXR}E>tMjpSeaNi$MpNAWQSqxHE2UkE`1TBq2IDzXC>Y zH~9@Cvl`0ns~kmdfwBBogn?7+ucj$u-tHbyVLRRx!i^*PJ|2oNpgUD2xWM~a$$z5o zA6=I`Hv|MdqCK#5{(Ft%-&*>(4%FT_N?Rtic>}!_G$z4R|F@XLvgg+!TH9g4OBGE| z5D}iV+in2>gYH>KTlx(`HEs$bVwS60`*cA1Y=NINk9;G6G1|C$oj6udHq=U)pg0EeCKim$4MW z6dDq?vZ?1)a&jRcw|tWSQe0e_lUcX62N0;*^*C+fU0nY<`^~XZJz>aDnqYsW*?7;u zz*-lP&BybdNier2)&Pp?GpPFJiBhQBRzyYvb@&pBWHS)BNq4emo<*_N?5`eO}pAzI0sBg9wa=AeS64VwDK!V2Iz_Xz7WJ2q7IB;Le4>}z|!b2jG zU=TQUu4k{Vk6%!j7mi7ggPjB`7Y8-`zU?2`czxH3QEf2CSp5KBo)WPk5g;T7Eo2#N z^1%W{h*_s$q*=%PM*JcR#C#!)I`!X5v0IFRH9W)y*pd-wmq1K`Ei)UZg^HO(Hq9_R z609I@p$`~6v{?eT$9th)&YMkom^Jr`K-%hMv8^iRiY?pffx)D zg-|{zFP{VAL3Xim7*!hL>IRb%r1yVBtgV?Foc3Qjd7efJKlGq-^8^^v#vlW|_B|Os z{@chS(jwg|!iI%cCv-roi%<8qjjPdM^tjp1g+RBa9DvZvtkZuqzVt4Szcs$R+0-J6 z&Ea(Chwvgb2Ak$$m|>vVR9h`|0eExOlKT(| z+Tr){-7*{ve12<2tGTKt#H~@lF0r&Mvd3y-1X7yOL6*JdWg8!eIe?dqW_}v|u--+r zCl~hw@W*n#7PINKLK<%*;27cF_q%#S=Y?v;AAnc|vJN2Pqy5w4`h;+=81xkNND;IL zkEo0N*$QB0W@q~!ID%{oo;dXH0%U_NR6C6<9*vvA?mSngt%O8P|JqPbQ9;#V$gdoB zy2AuJGqA7-0a*HF$_gm)(O>quKC7;#8qYL{(lIAi~amUw}D0j;j=~mQh_+)2i zAN6*pAKjxb#cOS3(4(u~G?Z!8nD393PyPpAc02$zhDf7$O3CK7Wo|fZo4u#EmjdK8 zfc_|SeT9ADUDGnaHrZL&+(*sGxQEVtgCTnN>KnInIVi-|E%#1cOWbL4MBL!8nXuuc zfUXn;?3}69Rpp3`j!F<2K1!perkzM)sD_fqOuSF)b1p4cCr{(63xNg>ZvC|9@UK5H zAY(i9!R`ljxqUmKK|y(O{aswb0+QGLn<&*R=P1<;dEjMmnA1{i;t$K#L|DQWq77PgRiA^)>1QU?Gflfe8m5(^W zk0%v#!iq#BBywQM#lb!W!Hpk|$y1O@tMRxe3QT#UOI$2g=^+Od4LHo{1xhL$s_jbp z1|Z@Ez#d2j=4sb3gV@mzP#0CpiNJ;^wMBHX$wKu=u;cRsTVjHcAs=`W5HHK`T8tf9 zrGj>{O@86ctK-#qhjBSorA-hY`OJX03)Uf?wx06xvXnn4Rbyc1A1FU|-Koy{BSbE@ z`!%3Up#i8?x?KW#^}8t~>TClfpp0~Z2tSa;dOv=cIWd|5_qE>~R<&mdJ$3QfI(H-W zx-v-9z2RVKx>L%Z8%P&U|EHc)GsnOOOXnf*FVlM`kNXR*@4lI&As*ShAtOfp3QuLO zZCfMq4?Xd#Gq-O@63EbA3kuP(6i-BZ;QQd{f;R1=p6iv-d|$SulHH6??U>EwL+co<6Zc^M?M17Xu&NI7;oR`?L)vq1f#JEsxyi{% zm&5x@R@)UZh=`mVDwoY-7|8aBvZ5fNqIMpHEyO(#UmZb&_)iEtID|0ZVV*u`68rEW zbF0}Y@wrx9S!2_m)m>kym=~|}l|=JZKCEO1|88(*nINn>y?G<{wVVrXd%BdYD~!ZY ziWs!_II)xX;fF6m3YV?mBX~bDhbLc$@bhjdjtW@LAimoTcKj_^r-L#8(ukmpgy?KH zK)-+uif^Z?!Re8_jJI0xen2TUygpg)xuJUsDnlDEEsk#)kp z%OO4>4PGRp75F9)9rOiqK|vDkKI`v5y@B`utKG4|TUAvRjit`Dwa^If#JgWZ+J;6& z8h7F)CmXskrH~LQVO7qYCne?PE)N{?Q&c#}H(ll`?Gn8fudC~H;r=NW_mr<9Dlc&t zb#9qKiu?#fNoo##l!Af30)gm;d*jM@SE!6ta}uKFD5Rr7@IjIc2jvOSZV@2(ymr)H z4|Oz0=jZ3OXP3Y?D-Z?24ahG`HtikY=ZH8saHutvqr772(gz!CgGh1jHQcL(q%ADm zKYc2D)0=e;>$WRy|Kq38Mut-U5s0*|fT<09WC0FBS`12s30nla+Y75vqts5b^fs+B zeHieTRseY$GRG2;fi=7Do|~I%SP(8-TwDYO7z9!=^NfXs1qTmLwAjmo;BCe`@<%Zt zU=4jb-%-uZ&CPmbzbBIk0(u?O^Q&+Px>%-VPW)#h=2c%wl;_-q+1S|?-@Wt6%%p_w zYthA^M4z0=Et`)X#|ny%f6iq+8^lDfJ!{2H7*6-{Wm^~l`=_6OsJkLac8i#+u<`MO zY*)JtmJn~txXhTq2qh&aAFmFQVPX<|?&^}je}*6?4$ZZpV7{RQu~73uXgrvbg#{e| z9$3g4@!)G&*|0Uwp`oF!a>MRVH)m$R0hiJh#^hD#))aGbsckm`aVm@SkFg=jhj6az zvFe}xw8QON`vDj!W^4NjU|GiJqn}H3h@zl*#A@rA5PBB*&q_c1%4dQ)W$>sd*9f2^^E}ST z>ikJ_W&=#u?_l0P^RWIt=}8q3`K$TnBPM6W`N)<9J>KHVQzh-W^- z{lue6;d{w4%*(=^D;{S`N@sGUFO$=;Hl=^|Cv8?iI>*%9TvS;Zdk7do3`@G@nq8V# zbl8-X-1>(xD!`k<2X0~qb*opOF)-^s50x0=?1sEDxPu2@7B;Z8 zWy!_Ftbax49zX00KW>cNruZZK1@)jF-HHSSy~S}((&Pz2?sx+h?B)(LMzk!*A4h#n zS=q66Aixen#1}SbRBm2M2zuX*?cME4hJ=Y3+y*ZyCYH$x?iNi4y*M=r_J4DF-oHTHqZy)8zi`gS>N<84edZ5EW>F=K% zUiNJ-p30iuedRV`>W7XTSU!UU_6h@+9`OxjK+lZl45ahj&ZRPFBJ31VvU9eheKP|&HH(zl=#|v0=yji>ZE-R-u!9i;)-z>-@s3V84 z-fClaDFAgWV0|+wiO_Pfk$~G~(N7--#J58h2pTZ4u)ct(MrL&m-rR#B5#)PyHC_y@ ze4B9dHR9df-CmqkDm@??IDDyS(9IN08KmhX*Uy9q$&kMI_=nDbuV<#y}RAgBTh0fKNjvl$5*iICrur+E5P1DbE;r2>@lJA&`9 zU0iSak4{f_D;XhRWj-SlBJQQ{WyODnPsoe&kJXh|1szjSVYL!|rH3s}5Uih|(9k!I zj+{vc+!#N;(@6P^lJqdaF2qUgB zO-;zVe3b+c*M^XjlS2R<);RBa+0lsa3lf0jZYq^;&K<%e)vK{F>!@<6G3ZM_gE-Nh z!8lpj3q$ma{UyYIC~j)nObw=^lwh*}B?lu8sJ{68PK*#9m8t3J>96x(ot`MHWfc`Y z15HBQ&5iFyc$^Gm#CI#xs=?@vOiaLozvcj{E)rlcm0DK0M!`Yz{>sdmGOnm%p#Akv zF+rozphZN0Ey-a-!f3Zbrc$(!k@@+skP{S{L;x%@v$NsJj6D6or=c}#mu;yX9v+@o zR3rwrK!B{aW0779DNX%X=4ohM1UZAXb-^2ipD9_qLBYYcbO>T%2fwIFKVRM68Up_Q zyW9{F5TR%wLl$dSf9MNU{;ooAV9E92_-kiSP#9!{Ei~bw&jHlP*8fwcr_uOit+C8DGlL$*+Mvd!2|D6&kYBU7QAa@DEGSVm(nWhjQ2u}}8wLzA%_ z%Q??zcpbxqk2an|I##dG6~FkiQiCYm)buF$OU9rS+~j*E;lm^yr9*ti4sr($(!v}b1{`-DS7i&HEl}-n1zp$E zrI-APcZeX2iBMD!xh0SwBp47La8JFuNBLCe93tavC`-e&)F8(+*#~av$oZ_I1dl1f z%P17fu}E21!(2p!Z5frN`>${GPwqcz@=|4#9!wXibA|Jo(LNHeg0JHn6bf~k@XgqO zk3@-b%ukZ3E0+Qcm#^-AQLPX?I=)FngiNTm>CanCDHnSDJPm9@q=204r%}v-R|#hS z!rc7*a!KW4jML?A*;(}4JoVO60in8-f+;DB3C%lgLBn`P zg+k<3#kc88JU#iWd8fJAYU;8 zugUS*bAw0pzBcXeBKgUbIOJQb_^0*7POwY9lpSN*6!L@*2smS~+;a zY<`$>!yVd=Kv-S-+0g&miM+`$4D>?qknDEoEv3gmkig-Vqgai~Mk$kM}#o;-Py6P-rRRwY7O8{LB;y76+V8E7<`%OaCO09id^095A@W7*-rLl~?M-d2hS0*^IQ=)`%L=o8ygEDyyKre(GB^YGWWmeU~xd?4=X zD)O+XSb&x^rvi%*GFtvdJ=6mh%t4Ef-@p}|Pm0+9U3g#}?E7!r_uEH0e9M-mS0QFTb z{vhV6PSbLyPFJC8eDgkG-7uTVKEKt9mEf~#j4zcentfO*#@$^J5Vt>89YcEIv;sS! z#e|(8183BI5NdK|p|!*jVIGixN;Jk=)aChOrbP^c8|eDm;mTaz)(_;0ysVI}|eUA#jTHUz`SZGbOj!@T7ncgiI>L2C zAYv-NO!Lx^lIe})dJvcd&3@7!PY!)r@T{KcRIx#?yh|ml*`8YJ87>n`Zlo6|=h!hu zQ^R;~BOq4K`eW!<4~&P$PS2KmTa1NUTU%YUHT;JCXS3KL8t6B;r8xzwY(3tzqw#%N zjvq+F6uhE>LhhRF$G(`!@i_xTjne{#Q^XO$x~>eh8%9v{fSzfI-y}4*5*~9y@fcnn zh2jD|14o&p7W$0tZK1;}u6fsibpNF1{pbl5O?hEJCP%Soookz=-S%7IX^~5FuC}(e z1Hg6F<)rG5_tzLgLYn8Q$rVrp8Rwr1KfDot)93eEMt#5ZhR#*Na;C#OJf#LFg7K^o`%33&ZeH9D;oO9MX7vKWH z8K2(IwPPDmDk^-C+^9|OS0m~)N6r}vIdmjMZaSigY-nu0WM@qozPN^#dHAlFJEwGh zG-UA7eTo`^M@dOZe&efJ6ljn^C4p&9<;h~=0?#+^qJ$c@=?bR zZPjo{D(kFFYiqMv@>$!5Yq}`gq{sKjr9{>aYew!>mw45?r0f2>5tYQ4sbr1VhfOEu z`{Cc_IbkEmiUnFeFoPR6D;e&U+waxnTNYqX(*&REs6kGJ1RaD>1FX>xT{W?WH1C6u z1@u~0egCN%??-)LC8sOGr)6R62`bdHm zWM9L*z(#Ii_SXmj1b%9}2iW&ICBjXjE;q2GZ>G`3xwd;aMQ%`Cwiy?5Q}GB}io9+T zT=pe=qfYNa$=7EUS^MxE)I5Ce^t-&7$eHZo9IM=lpk7%~*#!A~p?llBb=6z7AMc&d zz$NbKl$e?Wjys%ure^&Q)uG|x(~gdPdC?udy`(K*>FkMaW|=D=+pE6R%V^c88clbZ zzZRnaV>)pi=b%=Bqn>Cyucpf{CySqrU8-(hT=sroOVFTf!>+Z_i>utc%uMCL(=#vAH zDZW4R-bKncA-*2*kGt^Z`^>zk{wM0r-m55qWjY3WtT8lKTV|KOwf=oOY!0dpHg5aAQ% zhmze~%n$QXj9Dz2N&J;``yLykprG8(k(GXrh5b6JDW|{s=7C8keY9Aj3`}gG!_RRg z23cd`4;U3k!U1et+lT&Y;)7H zNWUKYd0|rd?(uO}nhv_w1gp&0bSF27z7xl+<+Ovfk&zL6vE5NVUwfsLW5T$L2jAKG zFgWY86C1K$y-fsd^_yIWboxuBenQxqK5a+N=QNct%eu~LS5g`pah{lmF8LZ=O4}^Q z@ofIKRA_mt_(v8jRn^teNl`6fF%(bD27P>dKDxNNW)7`)_IEKN%$9l+X9bMEO)i*h4+j7-wef=0-D0y>_6OOnLL) zvwt))&FF($@D<);wnTGdrjY$I%+}diT1`z=4NdBWa|Cp2(lJk~j4=?8s->sZulCC0 zy(&{kj|Q(yy)o<0&EcOvp*^G37bLZoWxC`hVwujua|Nq&s;W{iy6iJmzdGY(WF-;v za29`+@l)Nl8UMU-G?`sY@sazAF+N&-?`akYbi@K_1e>vH)+A5X|=pE=Q<%M*ygL-p0e zY9yrKbpCFjqArV_PRKcBKzU_}6ZX6%2gR9E?ni#Xua?%jjW3=*hu~5?Te=qOxrf*> z*x_5e3^n>_FQ%b>SE(t!GpAR=UeSKUIR5H)rWghZ-*tC{M_M@<7{>BBwb?=nl_Q<9VN z%UJX1f)ANnsB|J@t`B<;b3^GB{R@Q+UekFNYgziRc!YI;XC zAU+5tr?ec!;CR#>Zi?4;zSodvv@c-^hK93XEOOA*zuZ}xEVoFIXXGj4**!SQ z^rDLHo2~rN-Qb8M&Dd`huiZZ_Q5ZE;A=VVFrCJ?GXX528>n!EC$TKhc{-We=3O9vP zUtnSW9ofBhuW%eRB2)=~kQ0pmDM4xy$OEM$^@D`ab3Kil-cj zzT2^v?qYE{H9ckW2tuRqz-QwEBJJeWe85%L>AhmJu)fMzVqtN|`D~_-jq7l6xH!-U zb7Qnn&gd}E5_UQLwP1i3o#*GQ=d&$J@;8Pn;zU{%E>Up%i zT~(XRwUg%<(Y3OpI#X&7hZh*@c<>j~A*8KQ=X$=K?486mDifnQJD)u6K`)pv-p*iQ zp2n*>4E;j|6{Ge@xIpGcRUyT5)^+0ZLt7|CTt1uhB}c>8>9+YKe>g6(8piZJTPJsJ zc=XN<&vnG&h#g{QXIHn^&Pyrg8qjQW^Vz0$`obDf6U&HSFWH+zZnO}Xe4z(P5wH6w z)OU`uJ7v@Od*KHecLz-IS zWoy$AQVz|AJf`cyv}LZ!3$xz^EFI3A8O!g6Hb*IJZ*~{FQlZ2wY|?=sNvXHDb8^1C zl~?R=5ca=57ba;mU+EF(4J>4JK6ANa%cdu#tTsJ8y}Nrz&&$9&JKHgBJo}0te4dHv z0(N{Da*dXHhml0z<>X1aqBWLJaaO=E6PYs<}No${{l{bk4XV=LZ%y3T9Hq&^}7{|I@mJ)3K~ax)lb{QLLs zx|=S>Yq2YXI*X^YC5w`^Qz#(hS75H;gAG4Y#D4moimv4&59csl* z5LuKix@_==NZ>kIpC|1Q@3oFq@F)aw@wkP(uB(hC>=yYX~jN9bKTlHYi@Lb&4_BuYoHzGmY+soH@*=m)o zxDI-GiDty+b*g$`-0ND!0Z~-4nu0%j%+V;x6`HOABjvn&8l7%tSiBj3v*g(?4 z1Xbs}*4Nk99E3K83#DIv{WRM@-FY(gQ=7q3 z>xZT_!H7KP^wY4N&&6^XF_Sgqk9PEYailq_HKVAr%d4SSM8DY1GA&{;x1vS080&Y6 zrdz=>Pg>VI}z3PAY0bPjN27wf@vQq!eO`WdzSdcf!F{q1T`{f8jhrgE)_OST z628V{lI!C?vfX}L*nVonr1d{uI})04S@-&gYt~wBp>cM$n!dNYoAIXg<7kK-2YYr# zM+BAh>es<)IWoBXw)~Y5|9Ad0xcS8Ku;L9)M}%nc&i6$7C6wNi)u6+GKa2 z#ptz613V<-n%W~rIj%1c6t7Pg@jU==n{DvCP5bzI zgF7(HH%M(+^xT150;PfYufC4l!~BrXQBhDgH=)GD#GKsR#qDj_VtbhDoG*s$kb8;S zB8!;*Ih#fi$)%*N{RDr3F~6A-O)5-URu=nZcI4rq1E`Gw$;lMHzP=)dgA!HiqOU+J zJ}o{b({|GLnz&ddP{VvJ_oUf;6+B?$u6J*uB0(9dk z+pGg$qYdRouoEV&WFnuJWn`bbs88}TVrz;rDk?f4ym9d!->;yN}BCU3}1?#$&`*=is`gusgmcTN?o@C<{pCOh?3~Hm#FK!q0 z@gRpJdz+c`1VDVn3HS8!TYt;QlD$#DRIXm`0!y(-MpWy_w*m;VvbvLvg?y4%%dcs0Q*|Vb zQ7-1~j{RCwIDlZ8%_fe8O4vzNI`qK{B_)Dd@0nI)u~b|SDi`iG`gY@u*Qi%5X}!Lp zlhd<$_ahS!iUFghyZoPHQjD&+p1*vFo|cvtU~Qlu%-UGBMGO^)Yo2Y2Wz&F+SFL;h z@)qI0q3e-jg{vB6A{STNbPOtY2Gi1=E+sW{pEzwzOTD@vINq8vwMt=lu>Y~M?$i|` z?`A_7&8V1Vm)+im$L-hXJKq{uW;+i}dS)eCs9pX_PA+>WJN1FMSDjVg!kC* zI#>IZ-qhBtfDp|x6I?Mdv79eo?$7Y1MAAv$DKTum6X#jaZlHBMnRq%Y$@ojYsi!9d z#Qodcwm)ALlJ6inwoh37M;YkpKYOrL%NxfC&avaNyxK-TUPlB5gpd-BvV@jfjPaZ< zH;*bY_vUpf|7vgNdB30Yy1aO55iwYcTp!BC2iLaH9!BxgY^LR*Ed){PY(QraFj*Na?ck79`9?9*D9~=hHANO z=bj^Lz)c|2R<~wSOv|yFs(^_6*}e};6VNiNCpEr`m&2TI@?pc1QeK<>!mGlln5m+f z>*4()>?Pf5e=3{07SU{S=dTk+QVSix2Y27JPE=bkfdgCl^F@wbtB&4a3N9xvZ*+dR zUR7Ibf4r$x}pAoe8Ze4x7jH06HN3&R{J_c2sMkln?e9Bqo4C9NcvkbV#gAo^*52ZEkkmk7-wn` zg4FJd0>$nhA5HP%$|nf_>2gGZMACYi$C@P$Hn5KQ>6D(=97PP0f~qw8ZefdKs@k5Z zar-PbJ1|_R%(VqA-vQqmoTk6Oe^m{6%L~#g`};HcGbu7`9uwtkW4jGK$s4N9UUUH} zYSq-b)?-Dw_Krl7_R+0{hskMh##(r08OdI_@BVQ|QMxMHaB)pE(D9l;<2X3p z=d^d1YFmx+DZBivQK)U~?CE+pm0_BFRj;nT?wiKvg$$hOxkSJ4&4=YZM7W!e$+quZxvDR@$@p@0+xsm@&SIW1 z+V1xIje(>$X3dJZ+o4e}5BU@|c^t2sq48gGzZ@Xb4EFZ-v)aV9WA>thf;)`^^Ntzg zmDNb1%~|8mowldndv1L>iK1~tTkM>bxSVz|S1o?STViN4QH~sY9)a`BEI|c>oc%_7 z^_rV4_$}{VFzol6*9xa&2hL^)aEx@KTTVL)ErrmM6Zg*VRgHnuez;>pMXMB=%w~yT zb+Q}=IUFN7i@7b0r$k^AmwEWR8h&vt{q#>+bP7rRq&mE!3>37T+PXq-EdS$9L%+_R zFJsNi+dpE*eySTFIVvhnjw_}{LEy%B@ll7Mr)c{u^T86GZZepd~hn3YWWn%b!3#nQ^5 zz3tw?!f%!p-M$Od3U;pb#!;ROCD+)Fofqg7{sD66b3xNEJEB0qss1H>jm>}X*?*T#|C)J%OX`I| zL739S01n`(t@y~jdSxpq>`%}#-%V*7?)EB^04k7_;`e{k@n6^fSD8y{i|&m&FWR#H zyB>o|$icAr0~#I|jp5n;G9HHp=+J_W3#&T~H+Vjvb`NbwI@O(Te8($(CqMiE9glKt z7al+mtC)z&`ESi`s!l^K7SIT#fktXbM>y5Hg<2vY?*epq+j;WU*ho2ae^3KD{jm$O69j@bZ}t zKN4V0P|1Z&SlQb(;L}R}raTIj38cy*WqQw1UxrbVPK{%x#RMRZMk%FI} zAJU+E&Tz0gz{JNu!e6h`&-4(T$%<32=2ujkT(BDKg%v4Om7Nny zKuS4Jz3?HZs_#ZOwIrpa=GWIh{Wde2uCjwXz(IHWc=Btd7 zLQb1`;Sab!fS&1eQx`a95b{&d&LE~!ITBBhoY|j%^h*~B2or$yAtiQ0H$gWpMY^|1 z1}^cx?pc3JlI192a$SYAV_JU;fs3y`tmL+j6fX&~SU*ds{->*lQ2Xa>4Er|tp6vis zDpHk$adK2z+|}RjBsFrz91Jze*>bdtjEp>^wz0MmZ!+OYsk8h55shotoOm)p+@O)6>A~%ov;Ur^;3+o8%fwSN-WQKR{9ey$_DOn)irJKeb=fr;jocx zY)&e-&@4A60qK!&eEn3tK)3l2KbMG4DF4^i`gApKGQSPFA&4%K^R?_z$7*+BS9dWG zO&Ero<3AuS?(Sr@Fe&8+!cOc$so@vfwGkkGc6VFxiHL~amGupOQ*qsG#&BK#5)Vn> zHN^v}Y&N*=pH@?G5n|_^HCMffyjyX`#i{Pco0)pGP7d4CiQw!e{A=pn?)_=>_Qs?# zP$?1x?M*%*@2*XhF>P;e<2-yCbaT;ovj`;5TTLB6TLge)l?fYC<>Z@C*)|+^Gc9uD`yrWcUIq~P~>gmyJ_OykNot-X59F%iZs(n}A z15q|NKi{0lYib65#{2j0AyRR%ItMF#6F=TzfSboWRcVte6+#N|tfcYMp-+z}!+et| zI?pcoLFf_DOsZiSVu>YsYx~{K(WK2-T(zDbI&Rkcp|59dJm62jE{p-uKZPg;Z{bip z3k|qO7MDK*2o2%=`!B!;c27>21OyVQ?N|4KlsttHd-TW$fOwU9H^#vXz?h=^sI7l9VlLG+t^P(%S7TdEuYenIdF02SNuF!he)1UsR0X`kjP4ZX8Mh z0-xENQ-p~gNR!(FVt6fgfjF5JEc(r$swpg|Hj}_zaPfu;Sk9E9ZZW19qCLeI-j14Q zP&2K+fQ$cxNn<4Vv9JiT%v$)k?j1l94rk~Y71AUZUxrzYlC^_U4LB*gZq;XyYOlYm zbNu=9XYJ68sXc-f}W29%7|60`ZoqXk-iAaX!#`=8+4Ru2ffW{Hon z0auSkT)h+HHGd=)H_`6?{$o+m)baN}eu7YKay!`HJ-n@lhg(zeD}Biat>-iaNcLGj zAPZO&H@3(1>0nwC2F2%+1>)0u)haV7&@K-K0-W92AZ?LBW52W=%^pA<+C2hJn-7R) zQ-kvJjf{=&3v6D%{((q?YrAFKgw?|ekV;9ITpj{2$>W$_*J*YMXr zZot+W9HGX-&k{!Z%RhvYxUiW?`fx>D9$+g z)Vy8Bc3jGf-1rzqF$_T1(b|vfv+k)n<1)AXVHqTxhKA;-!%93~rb}jHoi}&HnW@17 zQIS^)Zv=F_`gS!Ri=fQaO0vx`py|ZgHZ$Tn71qiId$e1^I0z3M$M;y1#nS>NZEQF?2nCUJqXm zc3bWyah%w<84jls&c_p$}5;$o+|qM6=LRd7Hee!BZdGr>r;ZS;20+H|1Z9g-zZjPL?zCinbGkel6c79LKMZl~`ccJJ)eMY`Jiz^$ zMj!;;kJ$QS zB!rHSk8k#b-{P1(D=TaF@DSK%Jl4}yf4j&pf1CK=etY-Dix->MuK2}`q*|Lqr-ou! zTc4wSvvilJO73UzFe?-R(NDJ;j^-1Vd@X(1VZRJDD6|;Pi~OGa$iL@R)B9;fVQ;u2 zk-shZe}@KByqF}^mJ9}FS&k$nCC5eTrGoNdclu?PVED8tig?NaKnfA9Vue!cvasGU zovq|V(FmZYr?0BPf(pb^W?=(m#LbpO=}nnlS9XLyvlvztw&jM$lyr2XaA|pn_G8Iq z`oKIAC6JRKkqFJ8F_Cw5(TsQbmypd^w6ZVn6y52ju>KQGl;w~@eapzWcYckthqy9* z9V9}=T?I?1sgZJN%U5>P{LXgAuMr&$^X521MH}s^&0gsQYz6+^%2MHJ?xL zWijf-$E%AI02jmbiESzGQ*$k1Vryv7AG=@+yZ>-! zEIl{PBN$)ow5diBR9h5#%-$rv5GHEx55J2e`ZbQTq(TySjIqHk5P)L1UH6ShIkb%s zj6lZ{tG^ihVowHCuy-mQKi+jb81#l*T^!{Cl0Yd4zw6_Nf&T~m&~vH7#V=$Aj~N&O z{!!X+|fF(%f5D z?+Y}mKdjThn9LoBAvU3&epov&L*o|NwC$s(fO@@CU1ElSHltd@weW1c8cSJB7ala3 zWqc2oD$>@M%rEG*AOI}XySGJ#{nP;k90GIA2U8E5$)E3id0WPc4bpi{`v(iOc#)+5 zIjb~!c_J^IXtyAk_wFqM0Q~HNMiA~_GWZ1PeoF;GQnyRsi{4G3ky~OWw1&pe#2?NP zOJ&-}_sb`W1i;>;7Q6xTQ?@gyr<^~A-hK*YKV8}V(1L5&`I%NeMIdr`SQP>wQlfy} zV~LN`iOpW1SU>v!GYy6Q@td z`6m-B_ZU0#90GwDk4mWIsH1Sy7~Ch5wa=NS6qnz0ayi3LDau@azx{|q_4<`e1^d+T z`Va=bGd>Rw&x0qnJ__WYK7Hy<;P#7&Azm=~HL)rF&$*v+M&Q&QO8)EDuesILK+uC} zI=pcb{J3sqPk|}8tZa({W{167lh!pMKb~dE4!xUxbgq1VWka4PvDBNjl1v<`XFmte z4`gLzP%;#fpA}p=Sv4Hti(V3l7u?X!?r#ZKOmP&`(@*;|)4;hltQ19$h%?`0!U}m= z1iRc4%y;=;bz;pM653X7jsIw6IFjweQud;sV};0d%2Z*^Yr?tA(UfQA85Ivm)FKb( z@-Y)f1q*AkabEwm-5IbB;nv;4K@Jcg?_+v{S^vtwal!9+-}TTGHw6$gX=K|t>hj^U$mH*6v@}{sJlr7#`Gu}FP2k}^f8s;grHc>*hZ(N zfNC-9<9>5>k_f0xUnys5tt}9(3FFIwk@C8dZb#;_1-2oaTyGoQszxi@@eKupt~h`t z#-85$OEMxNBB0sGeCl~f#Md6F@SOk~o1a#4U4U=ygP-4??aAD)PehQ*Rq>ll8%cw| zMX}E{>e_6vI1sj1IwR>Ix1$Zz2=_s*EE=x*Q$iLNmfnzbjHa9u#vk4{UI2#M52S%nf84ey#z=*mq|xH&H|g5aP^73uF*Ajwk}~CCoROZ$`Jk zGy}wbU^_FA`p)J6%n=;SWQEneCb})^`K3?M&yW&O=w=0|;lxre)J96Z^LRen5@lTq z)MIFrnJ9et;Floso(B|)a!!0aJQKj;=oy%PIM3>v^roOZH#B^7ak7IkH*0V;wL(e# z{O@o8#qeYsaTjozg0b~|?_WMX5Rj91n;Pmb%s~HZ6*G`|RfVP8pbKY`xVgR}=Ytcc zdz^oAoG6$m3knWy85$x2h@{GH5t6|D4xO8u8x-jI#l_Z+JsQ-NxsdR16W|ia2POJc zR`LTIzBh%htn=J-AW`9v;`iE-n>-_t{YpPeI==QDP>cl9VIWaS^2cWeQd3eJD!W~=7kyTOqEcpWs)e^?Um zppCo7*4#wU7;!8CCLrqVY%qdp&o0{h|J2HOsjSBiSIxNv3qzon3mg?a1a15IHW7)M zFIy2tEbupCWR0sDwfey}lwTh!WZ~T!9~eLUb)>Kb0iuvhT*fUACIra@4dP*8?q!8` z3X0B+-jt*&t|<8ER|f10QqkOkHTGf@HfOc8eOZ{r{V zO7^+&W9l?&OEBvLqWTYj+{l#Ne^XIKc-P1o8-(wxsdaUCKX%e)2Zmh>U_|33ZzzQv zf{-EBsHro-QVaq00eZ+JdqjBnN*kGh5$GiB`gIAQ zS(n0>Wy#84W0rOAhf3sPOz$uEoGpZKVeZ_A6;751g@=CyQ+c7mlv0+K?7-Dr=weEv z_tF;u4VO~fD+MTbmg7|@J{{EVpYKZx8UNdm^bf;g__OiAHG{Eqy#>X`;aj$O` zD|d>S5Lo=pQ$t(ZCn029U+oOvMMXzXRBXW%E&dshBZThUxg+4PMgS;<$?S~hQ}DfY zV&SbKC)4($V?ZygyE>kNs21y|Qt(?VWxvEtE+NXwVzwk07(vAadrsJ!03f|HH^2P? z2E*eu=`ShzhbgF4W_q85Bp^4J3FsX_8PckhdG+cMCucb5`U?vS*adXwVP=PJqKwg> z0LdLk6g^J$qY!dn=4v>73_|I0zlZB~2m%7++1OvdB*9#V;Ao+a^jMLe9{A0cT8x~P zmD3{tmu^i}nt~|{r!lM9ABc0etxAh6YhH`vg2zZqEUY(IACIK0HI!R$=L#!l-U8CS zw6p{!<237BxFNhIy@tDU&Fp$LF}=O=Vi%jdW6xAEh4(+|N@4Qn8SzhPe3a<>gAJ-5 z5R=a0_$|jj-(2l@bDBjGFucR64kol#>e@CseZQ($Wc`64i-3e>IwJ}VxRf!HUxXw{ zpsG0V%wlFz*QDaSP}ZIubx=WATic?bs_JmO|H!cXdkfCa<7DKW3dxr=sVM%y+QTOW zjgg9VnfpQjrC@F4OSxS-|AfQ}UHFzgNObldLopTd^X%{6&VP4MBNb`W-eDJ|}G&^SAm`R5Jm658I{4}D2|hsd!36ITa^r@4x$E5L%6 zzp)j<7r(Uq)@?JL_v7enx48cLq0TcK+7g*Z`f2)G~*8@nxw-OMj5)Z=KdHUX}MQPOvIc`XPS1*L@9vsk#iq;R`Zfs<70R=;tgWol{ z2-PROWU5UI#qC!@B{s|lGkg(a(&3b}>`!~oXZreZeYoPix-QQSWE5oD6n5HyF1r=? zJ)bo=DmYC*wSJi2ShQekp*oCi(z17fCSy*w6IKwx}7 zS@6Dk^cE%m)kNVvsURdGN)+=H0#b5{sC!(IUJZQXkR{m@^`8l}^{lKry{RNB|MFskdb z0q-nk*>&**0vL$))u;;zd=HaHsOjVhHm>?o0g^MG96R=0l_$6P3?_-+{=$42`as#t z6S&$1vn36KRvAXCbD$t}00Bd@_869oMoPfp$rKmBFipywOe`OENN_TR?<{laMr2(pF&Rd3B#`yO1b7tWHK zqVw2)P$+&nUoFKIM?Sv`i{n1jEb(t%sQMRNfga0a(VCMCi9kG{;x&yZbTjSPZ`?~x zk-(gHi9LV+IBsH-3pjYS(vy1|--~Oiq@Y2;Ij=D&69!iGz*xE4^$`SUatR1>WV-9h zZ7Yq8E7acKs+`?F7!W_WJQ$clkoMLW-j3@SbrEV;T3hiBdB$_l!D1lE%!$h2aWR+X3}lKK2-f4o2OA z|F<(Le_>sL)0Q;%@6QLl1r~ZHu+aB0>4B6EjP+>gM_9D1tb#zF|7#HbW$1?PQm|)1Nrv>n?Sua9ZGa> zKi=;{1we$=;C~S$+x!g$0~D&V@57;ha{$Vvw)X7$=rVQq;nt_1AV4oYGN(FEbllp` zyr{s~2?kt8!!>%R(xdA{$Mt`wx7~i)u9f;3wPLu(vfN`sSdR+<>*X?72 zXUHUSzeim~z5W(8JNzF@No5F72Od0gcmRe#i_A;{oPqBTK$gqVh=!GkI`1iki_L=j z;nq+*V6`RAJ2TLDoltw4y0B#7&LeYekWAtzKK2q4NRc+Q*28&37f0aVA)eV zOPnS!P*;egcHiVyFVt@n=HA%_AeXe7(t6e+*|1^E2~1?*Jb2QCm7evs#%1p@?wyC@ z>=qz(+^$mnihjIn-#-?%DdTy=u-Fk{dTYbpHq_oU-eenf4~driyTnqoK*<`KNpBC1 zWlOl8cgT7vEqHWLB^!%V1-xc3OGutzzW zTEcyPzk}5sc3}YRfe?*07wHtC**Nfz_Dl}$AaGnWT@O}(_;)LM;asB&iBBfJ>j)Rz zX{}NMmq;t|@rm7nB+#%>UMVOTFZ}w1Lk?f1{L`z&>w0~*3c7I3_av>%D_~XvOXefU zAutp>4h&gPXGeXL5VgI5Ny1K>88Xp~qgUA4co{?MYruypZafz9OCw*(QGCrUdNEyg z>i{c8P+n~@v#A$k0H!f&_2I*Z@iJ3<2=H4N1q2@W0EGNiF}=S<>YnSxR^{!rg8@Ep z;C^7wl+gWzJt+B0x~jbb8}YkXvgRlwzl=}T4$Sv%LTc#jce62?;vbT zfUN4ow>-gUVKA6>baNI>=R6&DgW>hwU@HEVyAwhDnx7Bsrkx_TI{JPl|B?@y_r;)o z^jBD6KO$|P4}vy0>xsj-(nmZBbLaYH-zaNq>s$54&SZ!+3#`LG4oTZAsL)Kp;C;(Z59k3rk|2N-%4yIN8qRA(Tr(Nj|zKVfTZTZr~4 zlkj>j#n$J1IMknxt#<=@^*(sTRmdbgZhX;^7v+Zo4a$G<@3V>UbHOT5G)*WUk*p7L8S8H%IVneFH4Ik3a8dlICW)F(LCVtoMu4wAWpBh zEvswv7IB%O#BMg(4wWtMfwQff`jhm;=<8#N3w%&St`(q?@ zV=AF%a>URe?2HoIvJ}7CxTt0W4V%5y*-D=&(JG6vA!U?-r#56ybuekMHGl@!-~1)V z7=Gj?1Ua!4o(mJ!$1L84#ou$$TR>@%<~yCw;GfqdOK5$3JJ8OW6Xl=m z$dfUZolAPFpJ3X>wre1)qZTp+?DgVpm*Uv0`Pe68likBC(J2QkV21T%`Q^rkdEM#A1n20~gLAeg!_98TdhI#2mNwpNkxle4PVpRqzDD=-DRIQh$Q8$YSGJLdZ!1-} zoca6fXl0AAd2;~ruzkdZUpZB6vYzj2b%Kk$Bc--|I6&NaN|y#oXC_9>6m9M~dc8G= zZuwwYO}SNo16nYhrJgQ#H@`w8$IwQJ7v rK1akWGqb!cDf-*ld`)owZ!oNWPA@OV6Sjkg$00IOFv%jQ;fMbNPJg+6 diff --git a/doc/salome/gui/GEOM/images/mtrans2.png b/doc/salome/gui/GEOM/images/mtrans2.png index 62b35bb0c172183481c7f9e6240c7ac577870097..1d80d6547b9b3e69748f229dfe1eca610f10c265 100755 GIT binary patch literal 28612 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%0DN4y=;N}pvrKz z9(VHPr#6|`91Yxa%6BRf1inza;Kx$ofOS_SyaAHmZ(Hq1Ub9+bjgeR9X< zc%b4|{{FeD?tlpkfhIIBkTC)|Xm_fNj(+^|?jCEdU7NL@%eqS4=^fhHu|f6b7q>)`*rE3gQc`-`wGO}Qd5`r4UBTv5z&En zULC8;NVc8r`BVz<`FiK`PrFqm{5QL0$!mb@>t`Ast|$trRzJkC8&-j72s4k}#~y}d znM=;k%8ht00?qnod1ftJP?IZA@wo$l<2&Y94{>sG%6BqA1!CiA?YH6F8F)G-rq2%z zcee-r4@Z4m3(tl4V{+OH98Z#7YLU!@08TS1Rm*=uvf)e`ukcr_u-oJya;_(q9|0ki z9REl2@PPpViyJBK)Sw&<4!&`}-!gpHR_QPjLcn!?LwR51aUc9Lp|V(a{L}p=CJN{ z7QDQ4V{~$A?dTZEQOXE5Pe`v36&u2GP&dKntw*a@2y6Nn4tvB%j-IqZ&EaXHmxtcy zFZj$E0cX&gy|l{LDj6>8LuRh~<9EUN=FJ;nDJg`WWDSWMz@1K?%MdSEbr6}(RD|sA zn!bJe_ENM_=$-lj0K$&I)(ZUg?QyC>PfTyJKmzbyq7lQdPBzL+CYS)ZXD)J&16yqD zP7>f&C!G{wmVjRYSXA)7{FC(Y^LQ=`v_F9DI9bknCvsaoO49BC&A$X99N=-3l$0Mi z@TTevPQ>qs+>*qEfMx=O>9_5Q$sH5yc;yMbLCL|RU66{yOOJ_76mV*{1*&UsoqpUdJva)aGrUW?OwvU9mDc7RT=iLf#0+YEJ0yBl7&G+f)1nguxwCK z!#O=^)P z0UA0G-nENj!5kn4lpW?qMny-rWyvRO0zI8N>R0de|H|62V?YF^S~tK2EyJ)V8H`T) zFs~br?v^dDA36!zpC2W9KN2~rXF0)|as3YlU)9pFX6rPb(D(WN;_kr_#2y5C@Hvcx z-Q61|uJc-AFTvO`)(Olrpi+CfB$HF|_yY3bQc*Iq=X$y14>6rB zE@|#M>+F>JwDL*gzSmld$zdR)s_I9I`)yZQ0{|}h+V#_A13>==VK4x8cI{n42*Wm> zPtlvp<8#4fhp=n#tgh=@a&A11z@XL=_GaNjMD(uSpWfL7kZ-PVs~y{{kTmx-*3%+Isz8MDXW#`o3_I(TgQ2(jf=-UwuR{auysYq%-n7wZGPe>3dPz5QjLJ1FN6io}RLAn+Y$gx~M<+o|l} z@9C3~FdSyM|Fm8hf+MP_X6%2@W9h!fX_a$ z!K}Os+zQ{6;M#CH{&=n6kZ?A=Fpku#|;s(_Ofc~jX& z$anwh<@<~Ey8=Eu7E8zwYKF-!gB(ai&ig$@)S(`dH79F_?q80W{Wf08%vt1e@A)d9 zAV@lp=%1T2MlXv%Mo$5&{_|Ef}vffNrS}20#l7I_g8fX|OYYP6DW26hA3_ewkptz^kq+m^OgyiJV!r}pd z;&{HN^0^d<0yW&uj@uZ-m&)fJlZm~IfW2WQ!dGaKI56=8nQWT`F`QHhQ^%gx2l`4H zKnfuIr2VxT45U0C!@Zz>E;1@^XY&~#BC#Z}Q~z&L#lI8+HQgs(zdsn4zxOZ@q6K$$ zgWVahm%?c0o3kC7SPWz`dP>l1u=LHiUIQ~C9DI)Ep8-QXX6OZoWOc}^(BA+FwU1&ZbHh8B=;o3yl?wOAmn;eu`~ z*}n5YYu&Pq{P828{7=_c$&KM!hlBVBRUO<7Q86X{rnKBIaT~+%80q)0$8e9Pd$u{` zO(=_%H&GYZ^f47EftzR7_$IM5+~2{4fq$}%2vt!Q5WoT+4moIit_`-Tk`e}3`fEEy zjq4{#d|S94G^hy`pU04ktXmej+e3+zGt3wS-u?U)&nL_=X2T3>+a1;*BrcI7F0IAS zdd95MDW+PB3B)+nYfR~^ti~F7Nr9&IswiJ~JwFb2t^ug>Pf-b58}4qp8D#?$7duki z>o$)~B8vpV!Q(8o-y=xus<2YIng1s1{OupWQEL5aUh9F3hiB>=9_v?X`FJhcTAAh+ zO#ECvZjL@8%J_aa<}1(z%t1&si0Em%F14}2!FG#xDpZ`D<3(&QagZ6*3Qrk?3DG16 z?@Lpdqc(3Y_BMvD!r1MH37?klgiL*+nJ`_Mux00&+L}Z%6XV=(ZNG4^VY|aZpY?bU zM>nj-ioHR$8nwaP$aSHW9ec;2V)HB@R|Z`yz?n7`4(9d}J0Fsv5%Wvc+V4RePeQn0 zO#v}i5WA5icJhILhPGJDXEc_JEgKm-Sm$H|vnIN{Pl#7r12Mr~ClP|*27Chlwof1! z3zyN<2{e3IrV)Mi0n*mi#$i0{6FpFv3HHZi;&xzgNXyDnSiSue$AU~fPdyYI96Z(F z_6**CRw1~@#gdIZ1!$u@_Ny+({r3`Sea&&bqUttbmZGkNN8V5M%GE)ctIc^M;7|}< z`^?&WUlf>M@}kNdr}6VdjMh{!&@%;Lc#tGu0S5a#2xSr{J<#F=`=Se8dIFUb@)4-e zatWLvmzR!^@gki8AXqt_m8-%15Om|^nzO|OwgdbkfZ;G3#b7$t_4cSE+4*x{VjB?E zUhr5`Dhga-AwN`vgAP6ZW6C)KWcqdHA0(ZksN5C;;oo{uLQ{Ivl@HSNlS`~lJK-9p zubyhWaAExszg)bbY}%9Bw-$>r$AWLt5X~=3{4`@J-7l6YQS1WcgE2m@ioZfp6o`Io z|MFB!SB&Qf)TCMH)*-oP0HiikF-5SowKY68wgZ>1aj`d!9cCgxsuGz7+yUTvaC;D% zcf0s7Q2G=VA9z1HS+_s~Ln9IF1>QOYkKG<6DvH`=9EhbL(ygI8L+_%dg}d<5B>}!f zosm0{e%zI|zsKMKeWt7L_G!o`Bs1q`6wdb*#?ob3eJpq=Kz+axZ`!ie9`(oiz@%1f z@KdzShR%ZMHUWu@N#PHCrfe(|hxzaiz(0=K6D%B^F+mViMP;hg0Qspm*~ha4IqG-i z%N7ObsHi_vQz5l;p$Z%K${?)V+|mL+PVC`C&>Zvy>N}D=5SLG=#pGMYLlc02zLZ}b z&{_QH`hoz4u|Zz}x+Y?1v* zd}ZcyS7FzUSM3R>2MZ6&=rw*kiJ|ls5vb(G^Nf+bQ7%^1iJ<&$o;?NoO3P{Oy&Mp9 zHfMjb6Y<)oj;$3KLB}BS*-M~UFsgx~Vk7-XA8?1;+mnHBL|hfUDnh`Y;0M;;$3;&s zKt-aUDT{F=aE|xB8&|eB*{25+DL{N5uPgNfRRc^}(FgatYOB@|NWOaY*Pn{a27`ZI z@6OlPzCR(#Q!V&3S7V0)s2SYdv+(4I{)`inf@<#~G6nyU9W(I7MBZaMg>3JDr>v=X zfuTVF$#VW~sC!kwY#}dqf+t5tjfJJ95IgY?%mGR|z#6yKx3NgELS?scG8e&tflFuQ zMX{O5wQI1ps!}Q^}riDti{D;LJesR#6O{>0W*M~icLeqtm z6@Le%e<;$@(o%AuxlRwJNI-6<;`CEQ3y@pLhR6EBwr2mHtI}pWwx}v!o}}X7l6jq< zok@!}_bYO&qCpol2HH#jDgGStcExqhKMNy=633 zihbn$Z1{dc2N4||KyoD`1~J5l0eu9rFMhC^x9=(zK<6`V_I{*Beuu3mi7ESr3nY4% z$)!CXBUXO_L5B%YjRR|V)9x1Qp239ofcLP1w7pDK4ib9mmF`IwsJ_s%NN}-mu)4)Q zzz_zp=Art36x&B^?)z9VFy3{PcjJqqmpYaRJ||I0ahDmMc`0|3hU`DQS&wk4)es&sunq6dN&Do zgc1S9`D&a=(UNvUL{#Ms_82B z;A>RlTNFNoCnlOoe8YPkMJ>-%^MPt<2@!RSh%kN~?YaC$L+mXy{T|WCb2icunYrQc zQyk_gh|2+XG&!l>*!^3bF<+~CxCjEAb%S-tqoD@jBZKE|Kpx@eeXwd*h;K=?uV>ZV zU5z)pjW?&J;Um&a3+Zf6n!LO>SIA0P_PRM}++1ReUAFch3w1VM*0Mu4`1Mx;f+(qM zc_ApFgL54qe$fs)jL_u$%ounp5Q~N*>PpJ_uj#b^9|Qz;7=Qw9K`J0q0Id`sPesGL z|9>H$|EYKvAC5QFw9ZgE1NU;K^5ElQ_>8fY6S~6Zb(`&X)E%L&it|$ow7)gDqnr>- z_A$%@!YJGaKjz~wfXplIs}lG9_Y4l`tFyEISzmzanPs&3s-91MdvZY;!RqJ{KIv0$ zuacGa<8=ayLACNJt-pWe& z!D)sMF&s#y0xA;V>8mSYLg%CGChLsgG)G@&1clRfSGM|PrEk8gJrx90P7n@Y^=P{N zQdz`wG!Ea@*}Hhz#mIX`EVKTCKr)PQF)zs?Jh}we`xhOWi(p#?%CwgI3&1K$)-}7z zR&`nMnZ7t~HA~wL3`S?ADcb=w1Y_OFNSBn?nbJ{JcE<&`XG@KxRxJ|Or(2@Hi~3I* zz&|ejt|4c_)xyQY%ACW(8KcQyD%{o8l|lDFU*8%ydI50bBTrVn4i+BcQp0-fB3RII z%v|TgiWyq#r;T=kPQZsyoKAyXQz69SGPy5C!f?2|@QSyX-ToGl0L36~*08~d&}}_Ct=^l#{@|mdFzn!NQttdcoU6Q3w!~)b|h%gQnFcxc`4H$!|X2FJ0j#Z;b4v z3^(d{fT)!ENjE;|As+i@l)Ia=jdl#KN5!AkkYWVuzrTimRst3e(gxqHvCfBOTkiUK z7+Ls5kpg^<03#@TP{d}A5tzB6J3X2s*T>@^4cCPAN#u1Ckbzz*{{;zxQg}diVeatw zWeI|WDZgwR0o>8nxpA&u0}`X^x)V4=G5;OqmnZ8Qmkk5v0)-YS%x;4MC`iA}N8&*Z zj@8(=<(X>)89pd3j1hOLD2oKtNPwS4#}N0PZ3w8tjxdfshY@F7=3gN@1RdaL$(Py} z|0>F`HvUtuJ8<|_Vc!j412^$R!3I2){ED*X?|(?}-yX^7R8fCTYNqxcR=F|sm#^EO z)S-b}4FOI(P`ODT^ma>+OzcovD7s&sYwn%i+8Mx(ky_Wx;Q7gXO0K!HYD&1w5{rB1pytM=E8KJ>Wj)4I2HhS_4-i<2@Oos$OS1B z*v1E>Vi4lh1OD+39+S@@6A8)5{i$Bwla(GiaR!J-h_{y`VXw4xQt1*2a^C`ixYBE3 zhzIO6H66Edm-=)Ta3t+1Ix)&0kX!k|V?zx#F)gb$Y(|}iMBso=^8@t)oAA8bzZn13 zm)7E?7I4;}x5fcS2{pa5ySv7xAWvNwJ`+@wU&>jf=Rzi1KuCq{y+9&|F#hGYC{muI zTvSU+!y_QX=;P~K0@BdVNyH$LoMoKs6z+?R%Vs=GXUd0ttX53CP&cR|o<;3)Q%F#?F+`CxG{ zzmlGddGF=1ZtvHG!OFtqHzSS-$1aNTdr%Dir3?pl^H{d3wv+Un{2S@lAzEUr2QpJD z_x9}AJ*;-(j4NH;ubtS~hs^B87NP`%5d&B}YkSwOynjHdQ97z?QZ9C0F)#IAB_CY4 z4s3QDTqWDIx4=WfTwzx8rGHC zR_UVB#=fLseV@F_PC7h0D_=9`MyJD9)a}X)@5bNYTSekowdTPJYKKNhQG!4qEiJ8Z zKOYbD`y*<_xNpCIb1-T*GkcI*tD1!f-`?F}a5DB164FO^6H=1w-a`a0Zc;NdTj2`K z^hY3D0HA3nozau01hrzODUwohKhDUI&;vF<#1kCaO{C}d1&M@&9zZ*vftVdQNAU<^ z#DNbE-!9&LIDj`IZ1VBUMT^j%4RgW*giHfPK^1+3D%;|IB>03a(lU&4Sqi^2fW;2}<>#`RHe=?IAH# z$>n{R@b%+UI0#k}({^!UW22CJ)xCG$^cY6MfEUQoVX+$m4PObPKSe04+GYc05U5vK zE)ngFkB%;`s?jKEYlnhfKs>vQzD#|rCR}L`frrQiBzU&QKA*|2te1U1qq)Dgw>P>p z#Njp1VZ6Vx;$75ukAGi(r^^-}o}3)|1R3We@K>Ra;hqORmNC%#`1?L7AW?A#qZ8P4 zVzK48wOYPw;I{zyYi)1;bbER9}f!k{?~W(;sAL*eqEKvJ2y9{q@x3D2K4GW zE3Uk}yfoFkgD8qv#UPDG=Z!Do8vpB6a zfxRvq&j-Rk;H)~jZ|WZ*iw8_mKa?hygL*@E4=~07VPPG>wi+tZ5z5ynYxgRkO7H(o z?1iO6DetZ62;Dldulnqu5hg=M9FCa> z6lM(Rko9JhUX+SoUlnY z6vS3hz!9c|BKC#Erdy{IB{enw>ucxHi3y4aBf)-Go2)su^X0c;Y)2<2Hl__Z1b4(?8*=Hzths%gL4cnc>YW?QsvN-V0G({>oJG>G#hX+7xWQv{3% z%;Ht!Ivv+5U-6wOWO$!|PQ=3-;eY@sEJJ(^^&q%qa_}Dl5Y9a&FO67T)z8fS$yf8@ zLp#I@4x@!)_xP?|Y?Zt4(joD}3yKjzivlGlf9?zJC6>l4JXof20_P^7hwhC@w}dwJfngx@un9$ky&4eh;{^?`o`4 zz;CPHWKmpC1LUaL{R8EwZEP6=r84`8hxVshFfnQ5ecl&Hj1|!HmFMblqJ|F-zx5Hs z2#S5KBVun~;WYIlhqcP`=<8-t4oLorySWLRqB`HMkUR)4dJ02?2R%tMnH3#29TF z-6VbeU%v8{9FY3*kM_PZDyl^5@)9IU5)>qsg{UA&M1o{2#Rep(EeeuR z$vNjJAXy0lB9c@Di2{;y5&_AvND3lF&XW92wf(x^%sKBqYFONi#EriLsFK*SgsB=y(E>g!R9)i~0y z^TX)ttzx4!MEwlIQwb;jTMu%Y$|c4u?2-T zrL;=S8yBU@Ctuq8LD`7Tydn6YgSE?ILFgxDS>Gs~Y<>0I|L%#vyZp`YRP?|mP8;pJ zKYR&utEZo=VSJoJzrOBcZOZk`k8-QEi!>8<)ijEVimac8uQMqBJrg!c=1{w z4M!7)#y*|GYB++-e2n)?Pd|yde3<|dW~PE`e)%A0OI=$#EIXU`nSgWzWFR02Oot8w z3ugrcO17gD8M>R)TLfO^e-RRAusuW^;Jq+X%*oGBttjU*V1Y*Onn@9UqyI#TsM(jj zu7?bmgYC&38WA%Mh4~{WiU7h~0e3dII&N2cdbE+WOf!jEvLbr&qr@kxqK*5?VidW+ z6-j`Al-3u6t{u!bg#VM$G||WiJGx)HMy2BEaAbOVy5-|XV&rM)sWrzkr=@V{cRsp0 z978KyL7N*h$p`w6sq4DMbr+Y6j*N_?E*mGvS|td_wXrC$!|w-uR&C5#jpc8zlI1gv zylG2Q`#B>)Q56hT+p(O&Z1qd)V3magaQh~?JOsidS9@f}gyORsW%7jL4?~0oq9+uO zicyS;izAhLza|_Bcj}Bc2@w2ZZkxPNl0WVGj5!gfmY2JICa%UqT)x{+h#KGF$BRTCk5uD3P%5y%Riw^%NuZy_ZMy7>2GaXyuU*fRPMk_q%``2dHS2C*D2ZA z*~ucvnqP(`<_Wr-IC+GenVH%8d-px!L!>Fi#mD;k`k2J5Q6$u?K`#j8o{C!OB#w|% zQ#T##@16slH6r^vvQ@TAIL_CA<}ip;A-txir)O^DGJi!D!|&eDZ;d-GDBd#5 z$9bS&fE_HmXBNVuFDWVc2N;o-iHPd)fl&W;zWbpoVXTKr<*7aV*ug$YMnUZh85Z3i zPxkir%kw;uKcRuLbGV;4GE{8Aa*R*M|Ji~#G-+^{{H4bu_o6 zSNj*-0=a4t%bbI#1mDD0Twr&>bqV3H1O`*e$-DH8$I%hOTJLo4`{tWZI?dQ-(bgHBqD{c z*TA{K+L*FP#jf$#Z$G`gDm*4owO5zAF^>n9FT~p(C=BN0qw`_Byp4zr9dHQYmV|Ue zS8Z*Dx_i3Wu%Y~h-tWDGCg~i%dm5r`SvB?~I(`D$PcTAGpwa3~_;XOeF9^cud;cYJ zm5&DNyyly?Pr{$cn4FI8PDndZ!+2-45-u(}cJMV924i#$pyOp!^T30uhc|iP4Leso zyd#z8rI$Fu&BxdH>BJ>EF%<0%iPR_-n{SD|c$kb?uWe>T*~EnVIs1lv$Px!X9QHfb z5NTb(7>SpE^tpY69Wb%p0{TC^%_BK^n>D!SNK`_CX~fHtiASBd)98YuKaWc~bk(k& z^C72%#K@l8y?b1-{MwIT^-}vn6oo<|W`zTF0|SgKBIY&i9};hWpHW0=+7m@rz670K z8Q1+G3V)RZ?}+gAtIEn4ef<*<)uVnx+YjsJSbyys35Z@m#H|PJ5;n`gpjjQG0py$c zNrOySY@)@^4DRhd6Ss?uj`jyC2Jya+^ z#FdL@DG{h|osH6@2wuK{H+Hogt{Og3jln|XUof%RU5wATD+`n|9`MQPGYe$!kKsWksV|{8y^}-B&Sn%D%T0Luf z`m#`hDR}@Nqw9A*Ckq`6b2i-=xZ!VN-xS=)x_EyL;f6X1wsq4tW`ME!!p!*q za|VWn>Njrq$^596`CR0Zd#7>?CRRE&`Y;efCB}h}8{@B_xBqY>C@62A_{oJ|mfJFU zf*FJ|4^NAJIA=L3Cb=`47Ph2x^7cDpx+@XvRLB`_?pm|l%7+OF%#!P$E)Bjjp&uO` zWi6$|^b+`0?ccbqqoWgaoRJ7RNSC#*wS|GFp?uE|mK6^P%L3pouX5gpzzT@%4b-c( z9F1(7j)YgmB@%26^yK8^c+&p*jT?CH*4`wIm-Vs^O#QabWgm~7$e zj#vwOh9Gc%ox9-q2B#vT)a6W}bSmIxzu5Q*jg}K}Z7FKP4}$=_VK$YM zBd{H7^?AV{=<>lRJtISZ<#8kR7y;T;Rg06>%gf83it;>Zpkjs)X)9^DjCbe0^cilO z(YQ@`dBL;hqw%2fQOhgz3TBobUoB@}ci}lW1O?^q6@}^~6o(lhyP1!2V5fkF96^}F zNB|9;y#{s>W(7gmumYD-laPG@{|{8yrPo@t#0}R%FG2IetE5Em*HpKVWJ5-s=y z1e!mNw>LDC$`m__-VXamZ#y?Pw=6$T`QBq!1jaI;X9#F$Xhz@L5ZRWpj_Hgc-lSe@ zD8+*kVnw-c6H=(uO_-?H$!Cd>GZ(dc^~K>i?pg1XCKhFJiX;==DYNIk-|;LMQ2&{X z7duFm8{e7qgp z_>xQI(i}^snEf&>7-1-6WU565Ha0gM=YDT*w^mkaVNFQ&W9&fi__eF5s?ENKDD&L5 zEXjP4U<_eK!8t+AA1auRR~uwsAj=`OZ8$_br*3s+MGnlhaEG1q+;jf8hy5r*)L-9NjqRV)ZF#6EKHQZ!)x9h--8`bifVFGO1xr5 z9YoNyFX0IoNi=Jsh^239uh^=wv2jf!C1d+EI84AgMS}eH#Hm>N^;tmjpU3aUmZMYp z2rkd8#bnNX&=br^3o#uYEHY!n6SN56SWtNQ709|n^uW8}ygBrMt^XE!?wOpG@ygsl zNpfRu|GkCA8P3RRplNOwn;*Yv$s;T*JdqN}QMW^dBS4-%fBqD_8bAeN-~@P%($>~C z&)_>nD6=?)Z2&8@H_$oIF|ZQ9IA;VmI#^}epUkqwi@NGK#&mO__5>EwmNjQJvWmwHyrs36A;bdpcNK*Mkq4bx;#Mr;MY!x)NaE zPaG&~CyQ?epui;jFyHy!@b$Esd&;1G8spz!&2Wl|lW7?RZnxTNDRPG`Lrsf}Lze?C zfs7aaC^Bn1JAiiD=xTnm1RM%IklJOue05x5*nMe5F2WEx06xNWm~g)8&%Vznm*1Oj%wWGa_4VtPmFNyC)r*F$U7O+P(G$G9hoP@a8OoJYSC6XCsW9!x zAoPb8sBcK}VX<1sBwamp!x!6+YT-$h(|WBv&ehwilp+0vjK8rq6F(W34&j141^_4E zUd77DF-DxNt*uv8m7MI)?}0ga~&oc-Hz zdfxBJ1gr$s(uTQ?{8BDMABE%Q<8Fi~0IQ+}5U~zV7wC}$g&0#%zgrm`LCcDEBOKQ_7;Tt4W(R&)%Si+(JGKeYx3Fn(kZLMwDHRKsp;dDXJ&65iMpC3 zm5K$ZIi-?7R-_sBM(bBc(_fp-nNb-T8Dt)41_7=rf7leP6`WHyw4R(g)TOJ=!om^) z)EM+JkiK%@Q$yf`c*ERxRrmSgrzH_pcW%0_b6p_mDszc%HGwT|rB zzEMO6DD(JL$wfp*Gu*BAWP|Y*A37&={yg40X0|{9qhOAFI>z*C!ZYMD2mih8k2 zx;aD5tqXr^me{U<0w_vm`*Bz!SEms|5Y1yO*rnZ>YI4V;Jc0W?wj{wLiRhW`-K^N{ zDCZ-@WcA5IU6GW$yY84+mu8ZFBI@cgtS}54o^Ybh5JM|T%FWFU?Pp<=C2dqvktpFx z={PBP!Tih1C2sN@g|C8squRDMN}2t=CrMgEkK2hbDQbG)TECrC%DlAbT+;5)-Q5jS z>Yv+!quRP_>eqTY@!UATlI2)MFmTmVZMjtqak}ooaBo#q9$4U)%ZS>YJHe1ZGX=_2 z!C5LYGP0WC`J$Okb1aMp zqv??%;qsp1VO(*oDUoO4y)z##X0x%eQKL}I*S?IQ?sX;ZKK+6Qc`<9R9ykq4mzDYr z4)gw;@IfwF28u&Ey4x4wD$57Wdn{FC8@@$DYW&}mUv=m1dgE|5MiDYrh!9Zl5eH*@ z0ageRsOg~`p2qXr(BnMYn>+cTtt~1(o*V(Bn^~}58e;>3{prRWFD5(`Gx$l+pPJmF zumhB1%1X~3_KIG&nVmQRIid`no}LytxP=7^b!XvgFGQ~;v`vR`(geu+K;t&?A?ED% zdXH+#O(EH!yXyb6)6fpM;Ie9je~PD7pTEI3~N_U|?6)z`!8Sp{@UzXdO&lvRQp-n7}22 zsqHN+Yc&539--YzkN@TM+qVHXPX);5$j;1tbS$|5eSgLGnZ&2kh8GzqE|=qi{|yh6 zu|OMTXZ)Y@Kp(oC>JfzI0sb=r{y!)5-;)!XQVI?V4{m~qzP$~0))3H_=UMNH!B`7l z!E|);+o59p12O1t)-2F#LN0Lg*VEDpQ|~b8FJBI)edD{0bJ@S~`IUk0V%4#>Kc}th zq;yelhqz>U$s;-l(@UYHSdo$0i}=0;+#z_*SYY?SbitOvQ(~b6+EgM03+L)AlpRbY z=e@k}LU0?%0a=SH`fJu`$(S9VE&^;kn7StmeVaDu>FN1~RqXyK(u4@GMyqRUU}A~p zU+1BVG8~%b;Z>@;#IqpQ_J2$$HGUA)(7bsJfqMNs#Dg071d=5GhYt<_H*6I~N^v#*Y z%h#_zzC0Zi^emvQ-3RD5Ufq0Fd|VJL!6*K)03KvIg?#$-$vcFRKcOv@Lx%m8N>ZJK z_>$g-UhbJPUha{*78ZOTK70_go{&{emWFIyzPil18`@(kPyDxuv)gn6vovzhr%pAc z?wTmnXoahrgX7dsLCss))cx;Sq1_-7yb9R&@*JX^o)zs(FU|4xyN8gd>eKzFv{&jPrsO88)NQ}uy|O9{M0UshidKwUBk8`DBY zflp{?Xn9W7yLSv}SHkKbQE97uEOu}wEj878WvbC}Kpd>DfWY`m+-o1F>pbB@nrAz$ z2;5p=aV1~zLGoCoh`o3~XfP~cG&4S?=F_#H~`7AxcJml(_hDAfcBxH=E$4@5<5;Kx%*k&v#nVITND@ zq4#hXA1}P$E)Powh(g0x{n-syVq#)F2x9_m(n1~GZp_=$XOq5dk0kKzcK1nZIJL1q znQfO*THwRI)=kJA>3Y!LH?*h!2x8pY2b{iEU$W5VW9Qftn>y8`5AKYaEr@P0H8m9! zHb1i(J~Nrw@+!}?k0)fz?2X-ObSq3pmtYHe_zDrkUj#7fI1~6@H!hTVqVvo@g2pq{ zFqyR;96I?BU3P4P3ewF;Y1kU3xI&^zFZSHEoU9ADs-n`AQXh!YXc@tNee{6>PigrO z5stW5yNpm>A;R-GP&KDu@vsc+8(x!CYh2U*Ch>NmBNer~JEE`_G4(`MrWV%PdVDEy$9Ac0UzIu5s;H<4SQ(LO zuwL}19)#~?xKul>#}{q1^|OkQK2A&wfv7Ebkwe*~m`&Qc)vjMBnmaru4}xCa%uObTIx8pKQ=5V7gy4?GHfgj`y3t;TLXyXZhMQevf`ZNUaz z#T$rUAGygB!?dw}2F@?JIcT`OvJ(N0p4V^Q)B${-yFZ_6F|=`zBZ4#5?AO_EAJO^s z*8nh_y&JUbkuEDQ{~TPaI#D#BQ~!kXIc7Fe?J&C}6GUCgrxep3oj!WI{63$z?rE0B z=jV&3OYc9BI4HiK<*L16=TI`Qo?B}y3x`^7=LWX70m3Yg7IuQBSoT$q!=OO>Ze?0$ zc9vZWcQ*dE6?2~zj8^2@oL)RHusd5HAqWbi*h`mhw56mqE)i@myc?ea!+*1f)KWc! z>-oYWVc5JA=(Cl;@gD?mtelz}ZO+|NUl@JXL=MRb#yycGOv|?^1;tkh-&+^^E!kY1 zO6!zuLXyKwpDbnW6ks7`XcD~XzZvM^uD~yr;4>1go;-p#7}FA`^cd=qYbEhm7k{>* zDSk6>R0b~S<0|^!Sk~D#Lo$-@Xnc*laXZ<4hkR!f7t*Qf9{xF*t$C$0{IiVH!D)~r z{lK}B5J~T^-+;GqZ=*$*j+xoC%dH*f4&orZ5DF3jBA2hrm)BQ}{HVY>tGtgBg^SyE zYr1$)1-Ea!qm9)LBjs@YG#U#!sbTB`zb__(C~OL*Px?mgays$Taa?Wt8gW;>2z2Xu1C8{LoV-Q995x zf-_6l>eYsb){lc*O@c zQcgZTDp;2L$Hg&1bShC=ZBW7-Gw;)C1eAn8c&eRYxT>V&*QJNq95x537fGkoE-OeQ zVaaz&TpA?%oGOhJEhFJq?+{{$6$6;$wf&qI7&0Z2WE1XLp;= z7a7-prJ>~(u;5Rn%pmDj64VYU+7Iovn6);BCYni|%2eE%-+#~a2^Sk#aWc|*tF(p!$VK|1DrTz8e{^gg5Be2Ls zggpoNp!4GTf~aMbFU;aww2&yUBs}9e_;E@>6qE#a6`WiA9{(WHLMyGz>Hq2tpU#K; Ma#;nFBd_QCU-x)Nc>n+a literal 19494 zcmd74by$?`x;H$4f|Q6zNhvAPAsq%OB?1D{Ez;d3EhXKcfFRx79YaZX_rTCy?={bg zZ>?wTwfEZJ@&568IHTgsaL09?=dUgT-^q$&V?4%yKp@zX5+d&*5F{S(xW0!9z7qOT z+YADE0+AGXrTEEfd)7%kYPIEdf1oH=GJzp7fwJmkLqRnVGt)53^L0Co9CSZplI5pJ zYYC@Y^t=?RFaj>&)w_;(l2~Q);e%glBbGIXCf8A(*q=`ul8&(C|F#* z^3^I6q-SgFI8t2U6htrKRq!bWTwIo6d{=>?eRhrJ;iy1=dVkW^NYmCt>DE~27}Edh#BDJirir8X!{tx<27QlV$(8Ovrp zEl`fr2WWA7)Mx`qP{$SZ4*i~mmet4VJx4z>ywfqVrxP@)ujOiO(OE25SeVs&%Lf;wzpSGRidl|h~N>lXLA89yTPpLXOJ6fL~;P
^1rM*708dIF)yTrtuwv##Y?0&aQs8@NkVF#;dLd z$1e#luB%ORf(rNPVr96a&Y<|X<7`MFC<`4Iv;ulY3@4O0vXnj6&vRYia%ltFzQ22J(YppMFd1og?hlt1z zi58EXJMPoq_ov5Oqk6YD*JtNvmi6G^xO-QQQkAPL>9e|OSTcU%t5*6~dIZAyqv=|$ zaW*utd0=cjD6RS}QM<3R8D5kip-^?Utq$jYnp{Dyws=t)y`3Fj5)zlcX39yW>>n#| zl6gFq|H@vLV0|Dt%Xm1G(_}1I?ShHHy4Is%Bq3Gqx)+;!rYQtlfalnSpfRPmK84F; zwl9$z@meCk=004hiE@FSOxKBku*vgOB=tJS@JQj*4D;C<-!W{JQfL>)%R}ULc+j#*!EkNz}I{{ShgKYaR_>w2F3xboM{ zqp^8hZ~jM9a=1pd#a%>=ASD$98*pv(Or=s=`4xTVT?eB~h>AaCm<`dmI zSKJyic{wb`YdW3yF|EeNx@7-|)#|e8P6bmS2wd$Eqo)hW&Q#th0d{Do8LHe@s?Nb?!?I z?_Cp(@2ONU*Ph`p+a+s5u7nH?h`hB~5I!@EvvA9HMDj z81^_?OX=iR1#kJHWW#rOI3R4Z+7qn{t1#6gawKR@;{W-2lvE=X(dSSAgi1iNP0U0th zl)a0#S48C&s|%s0j%VTG=bvt9$sIpYYMDtc)J%;ZPEeunT+F&Z`6?Fj7?trGmhbzXQJ5!FMCgKo(J{8;u8H)9Ya(V{j%dqd|_3A=J#29HD7_v2^Ni@p88-ahsx1~nuG?3dJiirF=|Rm%Gue4HO=u`uf{MZm{4lCtg{&Er0RHy z(aUXa$G9h*p5mGUO^umlC{4q|r4uzf+0CP#wXQUkxXYinqV=!rl^33-z%R6dd$As$ zB`q(d2CCP=S!gCoR-1J|ad4TgOQGZVimj@>$2m=zREA>DY6%q*!=fb{=EZ@L&#()7^yH}+Hyg@rZf&3~a z(mOSkg;tJ5_Bug+p)$S_espA;SaW;PA|xQaR~T#2aYsO4AM!@)BIWdE*ANS<#KwB> z_?W)Tyvqe!!u-oBdKD>DRVmoSNF}Ij(UO(qeptWTvW=Zi=JIVx{`oc$j1YUVU-M12 z)f;};L71>`|5(1-`PN{0Nxak4?PjbZ0ke7+41GLi6q8({e!=T*&y-8!(K1CG|2}!Y z260QgP5hPZ7NeZ-H76`oe|>Uo%4#Kcg+Eao&FiGwOzpWU3DBR9&p*j=8V>ky%m)1I9&RH~F3O&+N^ z>MxOBxnA?6IyX$zG;`H5uH)80N-%0UCw!4F8BrHD0&O^V_(Bx4Zh~l^vZ%!hlU2qK zqun$|2Z2J-g?E4H%_D_fXugTH*@6b1jhcySr-FaCOcm#q)}>Y~nA}KzY+gMS-#^L^ z%CaCE8rW`a+%!(SU|gNotO(mIbn9uKZ|G>vrR7y69>IS6QaiQ%s%l@gpm9^P*6#Rm zg5K}|MdM9E1C{b#=MN9PgQMoI?hMW8A6#au9!yKmrW-G#U!9gyez($-O}>b?S?{;H zJ{~W1mNlwfm7&Fv&YXEe7lML(@7_J_@f)r4rNpQ|F2lU-unfQgJ(G7~T0&GlNlB)% zx9$mkA&+&q5;5~@Su+6|AZ|RvW;!N(N(t|TLcNV{>@mY|wz?)uJr0h?wU(Ec-;^5m z$OycSR%_3C+fIw}{R?8h zR|lI?cjguS$Gk$S7X3)h4#R}c54TgtNESIbI3(rd)+^`Tm)BE0I_Bq7zkPdfWui6k zRW58#XGte9(u07P7nR1Z*_U6JAdc#&|zq18BT$? z_AsBi*0leyN2bk6R;lZ0>#pm`sAPnDkK2m8@!D0<$n13m$>v}U5>q0+hJ!Kvf=HX$ zY}`IGc>&xfKtfa=(3I)ttQvh`B>uH&6qJ;!V@q&RuHAZw0Ml;4+}gLKi0wA!z<{V! z-X`@YP-~R_(iQH>pa8`W=cT=vO;82@C6SCRXsUrS3Vh3S@Nr9^1b&P#;&rXdTS>oY z5~DwgWU%+78dP^K)Ja!|UERN=n{|JM!P>mVV!U*eN-8&u zP;4IX9y}br?kAK=$~TOqLNe6cXPiEG;W|llh=PQwS?%pjvglPy|E86-B> zuf?dD>-0^%06jW9I$CtTt6_VtzP9V67s)U}AtL|wZk6jfdqYEmXiVX=_ED`N_pbqZ z@hH7Xyf&zwA&Ej%H+|d~LM3%&Y2u=U)k5x?b;owG1sZ48m$5!4_f~Vsv~Y)Ld;n2a z<2OS0yL!sb;!X~U)Jo`Gp^r5FT_+m&rk7OPuq^2Xn-r zFg5U2Mt{jC@a+6NJUsl>Oc@WK{kF=dTAFK3(HV``uaW5+Gox}ttsH>~r7%!yQnXX*FIzKEk z8y4 zmA&xRGL!Lwm&EBlaxdcf44zvwUUOB>IWtgr99V@Lym|c^aepx9G+*vam9tG&+oUVy zeuz6rGH~+fzU)mEPQ}b7+&enZ-&<%Nv(u=tr7tO{i-?G*S`OuhRFxhkQJ7d0jClXI~ix=hmo2IifJXF83a4J-r;YU zdIc!R8ECOiM*IACFJhE+bt%CqcTP_y;?c|q$}`D`<5OWwtWzYV2 zw`d8?KhMQ7hqzIR>~3VJN~eCjD0il_)G=`(|~%FHqs#mviSN z&%YQH_>=M5Tb}f)f_IqsR?z)a7@PM_jirFt736xSYQasQEVV@jFRngE)i%CAuclsL z6kdsDP@dAz!hL0g&JDGSeeC|?lX_!u>vZ@K!|rbLz(82+`tCC0OM| z%Rn_~;eDG(gy4c+yy+Ld{j$108|v(7IERNGV+rl*nq}Ir?Z;_^UG>cRMTJqh(4+sAO`c))#VSO(^mS4x7*uo|Y1$p9@byH2fGy`p|kTy07?I=8~^r}Is3MNz_q z-+sHO;pFgOIIJeZYGwE7O^D;xShk6cZu4A8>3aVcLcYm`jwI)Z=7T~zc@86|IDsxU z>wBL_7X~W^Qh24rrbd4!w&cGrI&}f7n+tD0>ge>_seWs9nay2U#zz&>bR;v0)0(up zyFRa%FGBWfWfwoFu3~dVb}KH?Q#09?ygIOfdNOSLybghVR=Ir`aQV9%wR^yYDeK<&w~p6-Ff# zW+BH>FfUlUMN*52J<&2re)p^9`O@k4NNnB3h)Ap$3ey{fTZ2jL-{`(M1L2KmgWagr z9Y2lap%*C3-DDUsdKT~Pc$VP!&*qb{mo#&(3@G`2JZYyN?MAg?P!d`IYfTC)#p-k} z-$eBnU`d;F>JO}jo}s|D(X73<)juvm+uRhpJzes&$dccE(>-@OmtU@V%$aEgm-NYP zJgKqUT3TN>a)_^reNJrYnbOA4UbA|lrapVuimkFb@|6g+@ZF?J*JUP(f5OY$1F{wbK zwnV!b*?%0T$aIq3e~f`rDOQ2b{pKt(42j3>f-`w{yBAMRU~!MDqb*nmbkF;R$|5-_ z)@bTSzcwhxI|qU)oh*n@vt*OgtX}Ft?vwGgWf0N?_^~QrG*?-n z)KCUYw16t%FX2?;y7yTllOnLR4G8#&{<6=&&W^24q z?&HVDg7B^8v;F1#)l}yTdZGC%UN0t;{lnwsCNGpS^Vx)rthAkz>WulofJZD(pZ=J^ zIkfD$SMW=mc6H~w0r$g#yIQ>)L`&=Kc#j^nEw=gxlH>RJg^)M`RYLW2lkdxyFA@OF z&N|F9RZyg-iQ^IyDnFTFY-wpBV$;3T{HnRvO^-QCE|u0@Q{bOxV3@$cy>#&~+Fu3_ zw018N0L*wu`l$DJx;Qu*>UsZwM+5Q$akdl8pCu#4*r%py9azGI4xU|Ko~|!6d;8eq zl*jBJ9o<>DrrG82xN&99&}*apP2NgSZ3g(th^EBo!jan{R90jif znFP+_%bFq~wGG_&l+oS_Va=+x8-re8^ym?xHa9mjYSzVp86hDlsRJ9!hfvefvb$Z_ z*45YZS}onFcR60$C{BlDWM$bLtaQJxOyr({hzSUNA=BFV4hGuQ1+1{H^ep+|sDetW zXoj_wWK+B}EfBNYyCdo11&z4a*x1f4E+SG=`m3y#A*_jgGZa?BH{+K!Y&(>Aw6c)z z7L5%@A=^^BbM-r8WJE*~rlyP>hP}@!C;)*rI4fGb6NmC?qzIP@S*^(Nx2_*H#fKGp z-(yvg=Y$HC=Ci?csjd;Z>FKD!V$Xi%*$g`=G5@))~Do~I;pAJ*w{c04VM zT5?8nRZ5+)2ik;Mw_fC`R$J4srR&9=^l-)$s`MX?XX0`2WsY2LPL|Roa$BHkLt~g` z?8Y_5?3~2;&&7qnIz!V2_zg1hOFq5LEJ2#KBa|!%2p`~>IqIE{mjJ0VYVkqmGSGBC zH!!c=;kr4gY(!#pfUEO4z@@>us0Q%M5s=^fRinNHgGy$X>ltwJ$@~tPMgu9f@R>>4 zk)3k2I4=}5ppP{?^f1RYvhKdu-`VNk)g|%pgL-Y^_q5DChQOz9{1BgdakSZ5VgM!L zwax(G^xdEF1X>FRDSU`fIr zFuxZ0+Io={(_NfrQdZiRa={ju<3~fW-{K{+uPG#X!0WEw+{vy>OPdE zac?crf?z{UlR>#)CBJg61zhyy&amMhZ_q#&hkVUvDC9DmDssEDhu6TEE6k?FrYp>X zOqDa9TRS(cCP!HAd3zIIX~Tn$@wAdYDVX<+(A!rQpE?7IwF)2q_VmrC(HteO@Luq@ zjk$V$z#;4_O-6I@!-Q{mFbSC%6>6!(L#e?z(8?q{c<|t*r6sFH-99Q1qsnFvWD>c4 zf*UiEt>6z{JF)$i5O7NOhQoe-f#VT{kv!E%1od#r(x);E&&ik)l4)xxff19EnwFA$ zcDmm6xSg)qUX9gaE)v?EY)!M*J1i`%^VlgLH;oxc5uAo|#f%ph7q@kE5U6?F)NCIE zi6*)Iq&%Z`jfRPCNxCNT)mJbuw19kpan1kiU^at<;38u{D>+0%=1f4mrFHWc! z8S}cFcidvZav|k+4hAA9$94JUjQi!zSPjm9frZA7+pj$ctjc_Rd=7+r(}COG0o1P$ z(D5Ey)Dc@i#H`<12i_j-&cC8hg#RrIF#qi9Pf~5unX2DJR}0!yyfl-J8$bMmfnTdK z4V^BiANS24xTU-0Yf@>@t!A?xk;>v%RrO(vJNdM;}~MRgqDLqk@g^p}Ni&%=IKXiQU1GrrWaQ4WKc^-SpiZF1w9JWuHfTGNt|RljWs49IhvZoa{_bmoY3!$EefG5FmBLa~K74 z81)l@ffM#SUyZv}hhsXH+IYIc1o}H89pPZMir*gw@DteptJP95HV@Fjf28nEaTrm? zpdZi64Mo!U8!6Fx!s3`#DFFF>j{QmtzhZ!q0h=YAYWCoR_XoXr* zRMex#oS)vA*1y}U-6kC(_8c617fK;)UJCyMYBg3!?QU)wPZy8}(I|auMJ}M0rbWo0 z`dd-iNB4H*7g+3p&qF7dV(VD@e~01Ers*3QaUkZC__5KlUx?_K$!_h;`KWA--EIfy zoS#N(qWfwV7PJXiG^K-@2r@DU~BrDDz@mxDjv5DS^|Agw_jzc3X6AHt|v7N^tdKgndll~^sjf+_buP@%gf7i$ywlL z!yj47rtu4kB*_8AcBz8%OD^qE)7xyUB)9n*)psIa`j`C-^XRgnIf1;Q* zrNQzMf;q+SwcJTGz|)L-x8h|7wWk4OCy0~{qbjn)By@s9M4fMfPu-4OHUHJoo4@+9*N$h%-=wnA$1ReNx=Ah zT|!cqi})pCEz$~tJM`tIEW;nb_i3!wuqi4Xaj z?U;C)+Uj{bSE>JkPf`qYCTPp7GuZs~H zBmW{M-uDDfK+(d^-H`$fl1TAIj)qFWZU%`L0nQKu4MP@irhF*q`5htLbD!Mic{4a5 zKYsim6?UI7yaX5G;gsOW#oX{Po+m(ezq1wSo}3nogr-^IW%Do-Hv_KZe6rO&La(ri zJJtI50~I+%b5NuvwfRTV-@kq5Ni|ifkg!O&f+ZtqtrlDELYUR7nldCKiMY0>uuk|J zr_h`J))`I!lQW%fNCvIBVfLDd!>I4h6IRx5f-WbJz1^R;hQOpZI9sWBWKM|>HE>}6 zhi)-u@Nb!xh)e~e!R0Z`KdcfbmPN~OaN!k~9fBa*tVtv8D4UI6-%06uFD)%Cs+N}4 z(C{!ZH?sqwJwU6{ajZxl9v+{^^12iEEs(352}wwx!Ne8EQ86ttZTm^&mNAWOfYd$W z2}qfb%2vS0V=*U*>~7oZ^yj$RUlgrK)%yJTIRq$k`Tz{x9doFu$4f1^Eo(Y3o35P9 zFXTj=$(z$OO*?>De+!n?DojhuN>;!#6Ht1A2Z5&0q)`rFXKY#SH*l#js@^s|w8r4Z z?HsEA6)hs_pO~`7Fd8mqIqGA09I+)q^>;yYO4JTnd~S+{k|xX3<_id06u`eolxJut z{u{-UFKFuy2v8*r$pTHff8y)P4^Nwiv(IUkT&G0wf#!m%{sLDpXOEXzB#Gwf)8=d! z4vebLB4N@ITVj9jIlV}0ug5pD8xh|#x9y-m9;3R{B2c2+n6UieTUkk3UK&*|+V`^H zB%a^qodRJN{Oy@Xl`%EldoEe*DrHS4UoiNl8DXQPgq@*e40alTgE80$A5gThY<+Ji zo&0N8Q9v9vm)rm9;tpkr9+k3aWqX^|1>>BvSRBqa?7cU(M_ z6loznOeoDm(c=%z=DU|S5$G9iRF~F(pFqGY7k5zwaq&qDrq>Zd6lf4hL-jrF){i} zAiHGNvxlrQ#2^q-TW~1SLVWQ6>wbG+o`gy>N;poD%c;4TXc)5gK~#4z8Ar^zmSYM& zIs=igyMSJ2Xt{CWfS_C4(GWGAd&|&pmrRB(&oy6FS3|gn&;v zE!;<>ZBg9{8}p5gc20nKOjlaa@zTUwICwyNRXLFEVPWY5awP!xmg*7kfO1xOOXGo23C?q9n8`~jMS3J@T40M!b9%=@)+&K+7~ zdXhBR*4DNFgGmA4vD^`YqW$lx>|fM;{OOydYMTHzS^~feLEb0svSa4!`S+jSE%B@b zV(+LsI`S;iwV1`&ZBK;1Fd2XJY~FbwUuM@h9mbOrLnA@{dGvZllrM^Z*tc`dt0yQES>SRV0f!*Y1o^(WuZ zy@G_nJk9rH#$aUrRYs}(C9Azlz=50Xh`~b_kV?3_#SG$`f2p1SO0O*aCHr8Ir-^T-KT7m*vl8C#^fZmxySNV@K1{0N27_7bsEaz={4dfCRn^-r z;5gVOr(7_+w+3~@xSN#yjsG$REJb^Hh997P0wWLq6Xj}#XKu#9fHMo_Pf(P9pY0=_ zF00YXal#%AeI=TLE>=L;ct2haMA6vOAC!Na-v3>lIZ=@27g^$kmsovnx{HRkyu8y2 zgigrWMtax=#V7@0O0a!ec!GMLNCE&juudO%f~km0PSEf93+Za-cVjrfS9NDj5NUT~ zc9)awr=Y-)Be_mHN5Bx;7A-m zmPkCgm>Kq$WRZC;PoXaQ$Lu_UEl^&HJv@I&4WQRZu5uU<2#_p6n|NL8{}Jls?2KGZ zRSV*JNGC>FZ{NOM3gw4G7W(@gB5bL<4c#OpBmyrNFfhOrUOvKA2eQyTjQhGhEA&UZ z9%kdLJUnqgNCi@GZ)I(x!CGECVt zi#La)oUv`W2Dq zp~wXfi+qy6Xe_p6`Aj4KdoeTX{HoY*<{GG?!%O^L@F&R?6-v`+CfiTP5 zsK$frn18EGN*T#(Fgh!i<<>q~;zUPBm#xng1Le6PB%gg>-AeEm5D0oQp3ltZ=>a{0 z6>$69TJ1ML;k>VdUfJ`=8fc~Tl~+GLsJ@m3UtE2!5~t+%&BnPY|JGLU^k!8P0pGOX z=a?WRR&6&6bT!f;F@x)Ikv1}#ENa4w&QUPwfoP_)nC6@JvHmNs%{nWsVQ;yelcq8^ zm{sW@k1_*PG{ghQlK7qoD>Pjkr^bHg?Wa%A5CqFgPBiC!mKN>OGOQIi_@Lbin@yD! z_dD_Z%^mlCL#{s*6v>L^-P|ncepr$H|(x8^7{-gTFW$UT%-T{g{(y-&*11g;JutpoX` zR>=(XR6B6Ft(AN+-IB>IfvFGFcZB<0l|3or==ewgi-?r87f?TA+=(xML06d9a}7=X zm7@YUU_4p!bCxTC%dF?-`f_vd2TE<@tjytBAH&u%PwyKXL47weGO|998O3>-%xA~r zaU%d2Y&klAcu(4|NXG)9-wQ{ci5w31S?czXh3141gxF?G8dlTP^io$(?_cbMJOj|< zfiQ$h$gGZtJ^EJQUP?1+YHEV`Dnh-nhbm?2Spubd{kJ#;4JT)mMZ>utq6ZDuI#@i! z!*c=xiAtq882~8u;IvIuX_+f4XAmnE;h}&#W{$ovGjR#eB;J3qxsJ){n)(brTFi3EbxjRj=?dd2qvr ze!T~H@jWkaFz9gw`;>Fiat>;hnyOWls#M-*9l`#|-2ebpH(^pU2d~dm3tK7L zqTm`b=3U&9h7TMe{&V$@+Kii4)-Bd79-@ zYi@J5F(dz)oKZX@R8zeze`w{~BT!l|)t~0Rw}>V(L*W&xJejx)ECE13?pUL&Ez1d2 z6kP6SQ9x(KjV_nNgdLB5i-SJKe}%A2QIpMZpdI>8tg z60$n+TMua3DVv2d>%c2uQMhJGs4NnqxXI2+T{`Sb#hYM%Agm<}*78fh#RA=*CrGl$ zwyb4cX_(I z4hkGdzV7r2wUqcWICYFIKzViqmdWOHWntez7aHXz`BZWU2{${lJ!z`NdEJbe;6WEv zFu7pD_n23%^)QpIv3x1ZcdX)JwL8F z3LGQS-sveF6;*og&R0cFaI5YBbWTY{C8?rwNwb<O0`Ll{ zYg}<#8%Q1S9l>;Tc4Bwj)2=;!?B~_353Yd!QK?+25X5w{#20{Ge7^Nu2?Ke2<|Dhw zWGs+HS^Ci^q+i<0ZgTw>5~<`{LGh>Z?jth;(EMNhK(1*ZkVXMx5~1|ld(=)p9VRw3 zG-S74kpT784%EuciDJEK*dr^{K2r<-%1Um43QVW%%}UnW+C&WdlOzFK;4suAX;y5* zI{FiXG$(}^md0OF!8>oAJ(x2!^jq4{?^Yy(zEC{SwzRq`Dl2>6W;MyQgaW%V@NLk)Ua2i>XHEVY;Ms!4G@ zkOYrz%4tk=be(IzW6>C|Au?~Ew3305qu-Zc;>KsW@G`KH(254sglGwOZoPz3TKtY^ zTfS1JB?>}}V%tgkDv`bUzpckVm8Wd|AUBY+vwP^MsW)D$;L>vd6|2a4wdY|pw7)bQG{>btItjtlx4(iklZzgk1{k74%K zc1=ZuH1{o9k|5#a+rokt*Al>f2(({v^i7+F}4IqyAlwRge9!NIBJm?f-C76n6f zve84BjL%m4w6fNCuFlEV9fwjE%7omn&n}<)fk`$+Ky@Sd7=nU&e_?+yjKgkA@%!H7 z&S44n@HMctK5pAXz!^L}iC01BaoycIa1tAaHOvRNwP09G@=o5b4&c7M3X&9$gj8*2 zCT{nu;8>1pIH*FAYym?UEQz_mOx$cJ+Bv}Z%W`Xv!2^2Jh-dC|j{SfD7t7C0n;lNL zR+-OT=)40YtR5k(q5t4%X36j}C$CI_{;Q%ve+q^o0@smiWZzFqOG}!|{426kEBFK1 zMVqbhfMv_$Lo@SSp$kMvGiIK{NShG&F1Dp5kKHF}7{&ZL3s!x~aynFKA&gJ~&#n#! z@?nVBBuLjgt>S}5V^Nx?JfI02z`Pl|Ac3!$`hbY@$U&Ja|mD>-0!3? z0(-!c_#HyWjq3W%DrXH9JOC{RK!OwiJrI}N2Qc8ba8BcFgYE8Ea{lzT-1)jGP&sr~ zy29Jq+b92+HsCb|6Gb|RR79~}XNhh*2I290>R5&XV+KrcngHQC?$)0IzV+SR`vU0d zLtq;cP$VdsnL~k?XtS#YXR=*8tKDr#q*ur)vRW2PaXV23hpqS>8~V)r>TDnAXC=0q z?`!`+fz?!fK*MD>8DmV~w&(}%f+jo6A>3j|SbilWAUJqs(kK;y$$IRqoXe{QPyKg2 z7Qlq+&}T0;fD-uOkn}fPUz+wjda>-f{;eP4N`;z&h~q)Ue%uBwdv}peE05&@1UQ$=ekA6Q?*NS_3A&863*vVxAqItWQ+s%a$>mF~42CQDtL9hI@dCa#*E_o@AGmM? zkG>t-+1hdr2;T}o?6yW0K@t?)@NwF0k>^2a{V_EcBHqJt?7i{){)C#2UPYHJh|-Va zHOaKo(AItetg|v`#QXT%0ddFGTg@9`!`?XgPy8ro_w_-a@bUG< z|Cs4g2@gGgcc0bu%(CHZ2@}$AzDB}lw{_w*#=62)SE;)a?1pMaZDivE%Y*pCt9qTi;!MU0l!@0e~sMUFVNvcKl^?0!I6*Hv27 zl?=~$i-2rqe`LV_^t8#C6J%`Yk}bh?lWset|=ec0#yCMjGi9Hqs_vWO6ve>RrF z-8DoK%zv==gmNi{v$Q^-3e31vf8M6vEu~zux%F!cNwc}Scp%_WwotL6#pM?^P8^8( zx)&GL9bf?SvQl*{*N6p3-XC<#zA73fObVs`CF_!BJ^H)UNKWWxMGx_Sz+i*qKd#P( z!$LPQHDY*`nSj2wx4%zs>sJ_Y0Wjb_9Golwln`m8W7v3XWiI7tiWD;*Iwqzb5bCgq zSep!;KpdzulzbVi9%&CVKCpwpC4S4|cb)I?`JSBM^`lgao1~@~ue0+DtA!?{kCo;! zM+(0YlMKWm0oS0?iBuQu+i>XIep1LJW`7ITx13s{^Tcp+*VOVHB1iR{gFA)(1IXmmzR;@;qsXS3`fc+BXtJ9zY;ha_cx7EHO!x{FeAzT zSeY|;;_dCN3YZVj^1nqyw2b9fr{@EVmnoMT3Sb|dY|?j!!Z}hw`w_$Gf7DFpZ{Wtp z27iW(>A>R8{uJ$G=n{K3>AyjZQEMt6B>Pf0664~Czz%G%xx{Fu$_f(KX9y3gqPT@! zSI60hqvO#{%)0-7B5Lj+*W2M;P=&ui%f8tU^8l*u+gmRYb?V!U0jJp7gkcosU4L@m zo}&u$R5cx3eZ>sCn*KPqu3^4=oKS9pF><^TDR%%K1e4@1|00?OF)Ady)BJw{Hm2y~ zbwVJRqllji03hTy2eF(q{dIk1OMn<>t5-fSwX%L?iqu=-`9Vjy)c;2~gv#$?5>(YlacTZ(&i9H6KFoH{F>QJUH$6$Ec5m4l&2=)nFe!kCVnb)L2_z*Y z&(6*UOAMq4Pu^xYXAdEvRd*gDHs&sSc0fq^Yy)1Qps`sty+kx`;H^Uh0M>N%*mHr5 z6=*=)0`V}JFsrHBfH9bn zAUUA8Ky<}ACz6YWz^DW2^Mi~f1SQu({t+rfEdTtwLPl+A zX^DvQ(}Q6RhvcGzea#$#2)`kDVG2+5k}h%XOQ_r+dJFq zjOVj^j(D@vWa8${n3@HXJ%5lF3L5+8m1lF#mrR`=mbmm0Uxl@bd>ni4p#y+%g@*g$;-XLLJr;RYTr0*bRCT5JKyi^7Zv_-t z?*5726DRXCx3^JXYGpoR zLI<0D;`^%ef%>ZK@G9diz}!egev8|*vtqy)0$L4YiS)~52;FhVHE4&pU?WNw`-MBS zfO@_#omX(-Wu=`Gr&}Yw)V#&$4+Nn8AMiN{b`kqEFNp?i+Bi@EBOLL^&3V6YKH*bX zXi!8Vp>SBHOoBBCBU+E9@6LPxJBbnFwchz;sljD;`6l4<9B4;*uw%FAU@3sa%KsbJ zzqZCj$xnv}p|ARrI|r1TjIo=Zu_`-so7KIzWs*(eY0iQPw}X8qKngpY&*?U`ykPejQ9k9gfJ?(JIr>73q`&GP=q z3F>zs_gx*P-cr-ib$$f%RS;3`Pd-C%7jd^|YY9C?F$saZ+6;Wgd$laVh%nE;1Pf|b zY7+i}GLw=IVV6B0~i#MX2ONKHHkoN!SXdi$oO=MIPm-8R-=hL|l0Eb!d8>8^)O z|4hyiwT_^C8ZKdL@orOun9{iPZFEgO<-L#svWI4oj9*8>zXuZD(^X1@{KWW?kQq$x zQXJ9{_lW)X4>1LPO)LhcfEv-r63X|3)a?GqQXEOz{5~_9NxR#glJ}%cJ8#@HRT|cr z9R`x~v{GDBIvYYy?%yZplepb?ubJCSORuL&Uyo$EOKdqhI;!5_>Lfb}(vZIj3hZMC zT&?|n|CV3ccg)PKr0nhOwOndLN7#}|2Keg(sSd5^+RF~y$nUhY2D;kA??RCPeG%Cx zebCz4dgdwwE=sf)N4Jc7qes86x@YUGKS%_tauSHJ>{6@%2O--Ks?`%$j-Ew(3Iom*9ZKknSi}$6x zJT5ji_V&djv*z`FE-_!^%+ZvbCL;51e%eKNd-dh!#{J5@u~tS#1{*LQ6vPiY7#SNw z2KJJKvNEAtBTNsFg)+{{cWP?T!NCWM#jHODUX#Mv5bpW!#l_)+Sx-~W`#C0a%w_r9uXv`lB=@5b$N|J=1rm(4l!2=Y!zsU0fp8sACo5uDvkf3h>*d2tNe+}QYDRu=V%vj+q! zOYA-qD}6&U3jR_3Gkz^*tqhh-5q0D!0Jf&FM=Gfy?#wRz<%R`C^=??53-!+YY@vVv zfuX&9%)4i8fbBnHU{Fi=TJTP@Ft-0CU9wj{_<(^8G;fNT(t`Z_kcx^5m!A1s=%tie zH~#l0DCSQ$*N8TiZPybl$j1OWAXI{Hz+lT87NP8W>t0Tk40jGSwA=_Nl8~9P-8>0S zSjRVj9Gv3dW@5sSpP!GT_OmW+U}5N4*DF+9dMqGFbR#yHb*mBYdINf=mWiYK&ekn9 zwqUm>V&7A3quAl#w);qL5+elhmEWGjUEc!qBQ6$1s4V~=`k$Vdx<$0y+(bo6vWK+d zD`qfR&&F|@FTU~P6fci-wg(32fBe}vWTsy~x^E*uTiuVj=iR~GtRfQh^=#P1LuI7D zvmlg7Lq=4D;OUDQh~||%o`J(Q8pZL+cIo9pUId0=5W_R)kyLjUN=jbZ7c)r|ul8Ki zALdpegWnQm3kB*So_A9^rAif*aKq6Y9IANTEV(<m9rQh8s*^82QX1L+!OpnZEDQ5b* zjXUUcAp)-`7t;2LA(|$!ypj8nGNP3L&wTS4xV&^sv@ z8gb9pAV}*`{&dn+$rq0#;=7m*%z;qjYvRjxZ5`FUqsp6p7LR>!kMx?hp!p`GgMEKBO zT5u>|#q_-Yg9t`w;mG+5Zia9()L;^aIFTaN4{62G5#oMP7VJ^c&JWdUOd=UErQg2V zN>LEWvNd6#lj!2RBcysFvV{2`oPQ_}zC&~2P zo=F@;{3z**zYTaLap|So=T@l0YHd3EsOi!pECOB68NM`s7ksb%vzH`0H#d<#P((!E f*Qy13!NV$7LTAObj0F7rFNmb5tVqFY?JxfagR2m2 diff --git a/doc/salome/gui/GEOM/images/mtransf1.png b/doc/salome/gui/GEOM/images/mtransf1.png index 207e920f9ca612daef5a63f9dc5447e6b35f1581..ee26e0b7cb235531f995f5ae60ae6f59c7ec0091 100755 GIT binary patch literal 22996 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 literal 17130 zcmbt+by!u=w(mxyB$bjDk?w9#Qlvz>QChk?l#&K1X#{EMW>W&vDY@xx*mTF6oO928 z_ndpqyXSuI558})SbOd@=bB@TUyMcYTLo#%N5qdH5D2EsYl(Ld2m&AY@j^ugXQH+o zt00hP5E+SADrTQ{XWevSS8wkQCWJX#d_QYhhY3Eg&epH7N0=DNaeT+#|1$=CN|Czi zkAqzJXhaTe!aFYcQU?ZQ<+p;X!GaUU~+%+>TU-2|k-Z%RAgmDg(`XM5=tzWpl zrr8jayhS;5Hg1)#BQBawZADS!znDe=?ZBm|Jc- zNG^%?=+V2*>t%73mYEXhnG7nW;~RlJVk!Y@vZAk_q`GOe$G&FQM}K#ZieHsEZA^Vd z8*eqhBKz5k&4#N!R?y|Of_$^!rw`;*P&P4@H(EtvYVrIKt~WfYGb2M#5<6v%Ve|eV zzL&3Ld8T%_xM1dVA;BwLihD-2%A*5H`LS00EDl%7do!=rb4H?5lHQZCBGCHVP85tD zvM*&Rw&_~zo&U(rjgC%xrKUze9FFYb;vys@WIK_)nA81Cu-7j+pWMilkW?aD?R0jh zygeaVA!uN>KYT@Sla4Mg@2icNiv6BIo;IhSmWZYqw*UtRN1f9VjV27HlK&2=NKMwn zgof8iwwY<@j=%s$CL_YFpF|4W6%+KQ4Tqdm-jABHJ4$WYVo=xzM|C?CA++tfW0MTd78WYd1o#ax(f> zvLxF&F8N&eTZnetU6xgclJ&KB>P_?3Idv1Urn<=YUsRDtg_jTHg_~D$1;zJV8qq0x zUSir{%6kg$k8Xo!xfU_p)rMV@W4GKJt4|DR)|N1@Xd7&u>Ijebhw&fcR40$`|GGP`za&bcs1?*W+KeCRWUjK% z5MK^;${TbM)#uktb2(WhE^2o-Ro_=lNP zifJeH6_YD=I>JfrFI7=p{T`*r-ykw-eJPUFyt1&4C?hYwdKlL`nx{lHUyfkmoX0zlw>D)x&{O(&%JR(ZgzQ;@F&ugr9q}RY|?r6RF)BXS0 zk|r^nT*&ACVs1kmNyq-0Z9-r?yS6l+hs?e8aA{jRx$UaD?8PA>agF-}-?5{sKQ=RK z&l6N*Hw!nt*M}ljE4PRP)v|`V7LqjSKv0s1*uknrjJNqVM#POYXRs+vBAba09icBdU zHUDX(kr{oVFp{P$>LoogGF=-r`dK2KXlO=Ak~k^}!N|96H0=5jqe@T|zYwWL=(bPN zxtk3a_l-NkP?@3hoE!6($}lFOnMx*2uP}WdsN~Bm;xM0syVtUVt!6z&dZX_xG$X4I zvMmG=;hwHv!un=(XHo@S{`|Q^_^K>lX|dWH*?g^FuuKfG47+BG3=cyv@NmpK;cOAT zJ-~+OZA^b-rsbFA^un1mm)L8$Q4EmCuDfn)Wlv`p1!l+@w{l zxw5eu_S@fB7vl*PH<_LsqXnOX=KT8ln2y~Qxri~PvK}`=yuFieZ=^e<;Ml_4i*wsf2c*sb>9 z{}~xUXP)MWESS>4{7k(NmgxI&&Po;kZHP1Zn1rc-aA~@q4-XAv(F$ce#q^cYoro#o zWkD7DY?0|$fhyCrExJXP>7NQ|UX#I;zR(g11I_lQYs}NF>%%teD|MeXtg|6L#*?M* zk6nL=yvJQTy!ws!&>2%Y%dVo(ray^W&dUP9M%r6;e}3xdV5&%HBDc=zIzkl@jkum> zV%_a%jooEWN6%xIdy5;6=zqBD6R6R-{@bXcDSp5!alRzX*m#B1yV2E8%ZYe@IuU-+ z8Ov)nYQhGAD^U1v%|^sriLM0@-gWpSc(v&VDXh2bJuProH*60@)V!HbClWT}#-)*4 z7%d?@(h*gqIIbAKuxOw~RP_2yVwm2NrA9kIswWFA{yw8n-*%CH*O{Mw`b1>Y!P)vE zQaAZFhUZ)9Cu|rqeDbaMr;}AnAA@yv>S;QOeD~5o!aeJ~S|~JGoLV^b=T9cNP0b%a zW?tngcMS~CFf)^74R=xS!Zp^%>gpEPOqv?9)(~ON)2;*M73JkWjkP`NxW0%OoRSHhX=m6l|>1C@rZZSk`wh3#&{A+czBZE zWfNE|XKJG{lkY-?jr1s)wJHsCM@P=9-P1%Xv4=A?pP8PPWSIN$PVNtDgR>D-6WX>% zha!-A7x;jmNR;a?3UM`sv{pTGS9u}){9u{OVlL&!HvCT)TlB2phfj9SBj5h)^&6Up z7S$J}p%~m=Uo_laI;8L=x0Lc$uO814@`CYBUXr@>D;b-sjSxv74? zyZ&TMY}>gwP|;HpWpzuO&f;7y4;pzEd}Cc^gI5=*oE$@K<4 ze6late_nhi-p{7gD;zzVto^#^QsVI%Q(8RbUB?ZA;>?L^o&Ans!=)Fh*S3kH?TpULjSUTX>YdYDNKXVUzWutq^1H`u+Ye}@p0v{!TZL&UQ|$Yo(JYV06&Y?zdF)#X}u`E ziI&Q`#LgTxd#$L*dse;|7?t3`v$?66=c|w_snpWn-@vNzTeb}jgKeCU(`k{Zmn7TY zL|FCm5QjS(i;AA`5hL9mor=@7ppPiB?G)*spQmGg&-@yf8Xgqn(PZqm%l&NaVFg;P zWv`~{sE4TrdgYBAWO`7J&Bv};kgctZWcL#y%8>e5mX<2EiBBntYCp}gH5rvu*fV?B zBMy9uh62~4E$#FLy|ILR_^$E6*X*Yi1yS*v9d{m1EDrkUVydb<6sK#;uveD10$*i2 z8nAb4Zcl~ur7;(W_1gA5GqRn|6QC@m0B>WZH1S#m_8;ClGY7{psvlbSHNMA27V7mw z7+g!@DS;O@3;n(tp`c~=LPZNEx^_MxSniB8-7eAOIhql)cHKS06VX594NJU>WYF8| zyRxNF_ttpOfZjrae#QZx4X7KBv}&yGq}&ahziF_9m3vOdI=CHOc}*rHyLe?@^EuEb zE<{+XlqmVtp1b~$qY)AoMsW3>8oU@VApeedr|@K)TXSngZ0h9p$(y7vsv>Q2Q)~| zu_dznl;jMy{(*r3zEA;oRU!7mOtu8EV`|$N{7(F4z(zYLGQBZ|gjVE*@QF)~Ja0Nv zX(dv|MCpmnjkmxh@uzd)cq_8>342&Xg=c!j5)SX6^|Rem{z`K0A$OI|Z?>fA$h`m# zsGdDsJG-LG!&1845p+*|rHHhoUBjYYqDRTj9{q8wplq{I!A+rrju`K^Cu(MK32ReR z6Y1@R!2AtP`nF4oIxL)+8|;%0gsUt*H`fD3rlxkwktATfQT%>I*}yK8K7al^YH|7g zx87qh)QPMSbJv^f>M-KbKeSt z7mPAodE4?C`eYa<7?2m#)bBYGL6~>FEJ-#iG~PKgDc1xqqT*J{8qZm$!ZgF*f98!@pxi&5O2Qj{eL2k>k#^|^sK?rl&6+eh{(34! ze7WEBM3z&97MGQVE$lb-J!#bhqe(6ANTE_nm`8(AYk%sL6xP*J^%3pjh<&*lUtv{p zo_B(1_0~XZ_}hPX#=Vd6$62~1^2Dqw?<2LH%A7Z1^~YIN9bg(k*r>FpQ$STZSnVr^ zBDkDc4gCqg6;miiXQh*9ot%r3=0sZS1*-W5(RSUme-gX(p4 zoNX~t?0LDF>%1JIt)`Td$m5hWTWYSHi!V@Od|mIfeOP3(K9K5vj7j;!=8IFE*k$1U z>>fO%9#xWOrH;}+65YkMjvv3WK}-b?e9K>Cj4&d<=4Me8Y%-H;#>MQz7FoZNUs`)7 z+Y@M8#O-xQ>-OP{)|yE2Bh^;gJU(SasS477|KFr-c1DWcYTOe?tL@javTbc`S?yMJ z6v+CB6HCS4W9`rC^LiO2+>H0RqoSf9EfF?N)b`y=Gm%WJ#jWmy(Xv##O@#$Lze5Sl zNAsd*_YFHE*uAD4kKKi7VuE1~CL=lWBoP#%10>3GEh8f_45|gCFYJSz(k3T0ZfjP3 zm~^Z0TwKm{oLn}i0^ny}iZy$)e5H4gRH)-xCxy?$ox2Q&z|lWl*^oY03uI1{fee{t z8c8g6zmiYGS<)5ut8X44BIavW(9qM6LRdaucu5x-Dx=pL2iv_c@6hrMtB@W_8k)fK?SnJ**KglO)w`d3JX!eV zx3xqa&5+UYyA%Jyw8aqD2`O^DZ!gwAhQ>3G z)}HfKsTQhzl(P)GKhF}Zlj&W(#)p!3dK6j5G{@X$zQ zkOK;==gVg6J*#^YC)Te!)>Rb;;M=@E)jK0d3c+7=@2^r!6^ScsNQF8Vm=2~^VVxZw zzH6R7O1=M@v}Rj9FU}=-=;4vJXtk4;2!(*>Yhjn$l#`0=wALw=*m-I1-I{CEMbvm5 zdIbW6k78nWYWoy5K;sc6kPAOVTU~x`D}VAY)IyEx}!<% zw(=N4zI#k(>LZMP58F0}z9T}wf{$-v?})aH6{^dCoz~yaJb0;9Y5A+JV*NEx3;Ie- z&0yum#pa{WMI?>K`!t#Kn^K&2rw&%t^$GZ_KsM9|bL#408 zK`P%3yt=w_INyI?@3`6e%MS$&6&2DlI2Z{w@-U#!BHA}Z?uxpU;)qo>FY)E+*zk;F6C0(#DdQWng|K(y-P*wW?6 z_RkQ#xI(MyYD-vagWHj()>14Qetr_J=u6*an2yRSwd#fZmf<~zU0tm0R&Q26oR@QBHK1rpgA|Lo} zE>D)bu%*rBzk8)Qox&&5i*=#pSI}AKwyP7kbhGK@Fw_Muw0?ASWccTYOkcWavqZ0e z){V;eUBp*q2W8Zc5Ec zuF{))xVauz`*{x{jGTctVe{90xtOCiAadSXS628KXG;Jhf2gugp0e9KV0U1ba(RJw z1s4_z&%@5zAN44|OJThlOw5h*`K_B^iT#{57g=Xu{cPRSN8D~_zL~<8zzLT<`&(_C zYv^`xuu6&6tTp`^d_GbySGr_kWNDFrx>%7f%@VtHIOU0LJSIO656|EMHLTQzdZtww zZm##7Y&1^~u~9EFcP^$qmUKk**&|k_4yQiiNI4#S_$-HoU zNq3iWq`38tuu%_w9)SB>O>0_wa)a%tp^SaQ$^D7)6Qauo{+*`FB}TbK8n8+Txv557 z+s3Q~1%Lpk{sHBPTB zM+Zg4SjLDsa)_Ew1942ZKmCZmUI{G?4>CkK2Muhwtw>`JTPI^;+jyTMD_#>xr5!zk zOeHR(LfHBENqDhckzdb$1{nacS4-MY<_OQHF`;)(6LZAoPr#yp2)ddeVrBhjwq&i1N#W>@SAe6UvJMq zxpi%I`Pk0$gzppE_iO$7;S=QytCP?R1q=T3>p|mY2q9dTR$Y|^lMefhp-1WQA4~B8 zj-64bqk~EC43HXc@n~XXs!<44*ANKnxc<~ruFv=~w}smGD~ASYYuMBvyq1$$*;vd9 z(2KU_kNR0sz^gyTl2TAvjnd1`*NYZ-UF=XHM?39jVgCkup#0aG(20IZjmEko<1bI! zi>0w@q&ZVp#zg||f(eLyx+eaB64ejd+6LUdY z&&e_BG-B6ff&2CdmH&41?yJdyeFRgFnU&GOHO>z-soi_#&o`o^msFmV3!`e|i!4}n zcQ9CXpFU%_F47W1jix~3qxA3ndJk=x{=Gx{t|Bc^@&XiJ_~RJwG$FFk&~!WoXc#pJ z3ipN12jM-s$I6BPbte23LO=Om92yhY0)$5CCB8A8%c=`?HvS!gkHt!1FkA10#jK91 zWEZy?n%;c9B@3~hseP3zEqHL)%PQCqp-$V>18@qNUNL~Zb#PyF3PQbw^RDb@=Xq7t z)vd9@(UYRTRP10^&IhWh-CbPp5Y5bknr zNd-K=5OaUTS)gdCb67vLbWj=(!pXFaaPRoh=ByO@wK9HgTv7C><;jPL#XF*j}W@i#aL_{UL-lggZJlb7UKm6$^dXAr_NN$f8)!8j07Zg0f!FlQE$R&TBghN3A%uf%dXxM#juf?X>{{>zfJxue>zf;X*A2F1 zeY6@uTm5hQc8gg2PwD(|2&lX9K@Rlye+Y5*JYtTPCFl)k0_6YSj0J_dm|w6Ja|$s& zY0Y`OxAcfuE5Q_ED#+!b41kUP^H4G-zYm&Z9_#We7Jr=VU-ZJY+!hm2iHVzG1rC7H zE2Ih>Y-B|~dHS>~h{D^9x470A-#BUC_G){-wXF?3b%JB=bXAal9aitem@43ushq1Y zzPdG z61v>Tx<8Sd?w!=$F0n0Cs9s_M=KLc&dsR~%Y+)G4*bsm~bEG55$L*>cV^f6V0jfsW zpRy=HSOB``%BnJ6z=WO$CP2{Q*uoMedW{>CWmEv^RwS?O*39R4U7a=@|B;0>+}&O| zZjA=dHF_L%QAO_WLE&2SF6?$o?Vb~nR;fT;5mUm;QAmArb-GK$VT20SHrHypx?#T+ zok^#bZIEZRsv%$u*h3d?r!Z4~?`zlSiS)dTdnpPqltL72auq_>U=;*z7LnpEQ4r*B zK^z|*#~;q8-WAuI4L{#LQ&jgUz#`>)OD5u3EAU|j73z$4tXVi#;CmunI7U#{UvM$& z=PYV5{ALg(~@(X#!4fzyR{{@~ZP*XS)B%{q6vx`S|8d z$X~gi(N$gPrG0fXn`Ej2pMv>H2sQSTCr?H}pgQf=4~}JIJR38w`G`r(^#vfeDsPuH z#%mQ-(5BIJck6L^1|M`76gDMu*&3w>3kgBR!dgqv_eNM)Pxr|I2@B%fnduCl>(7== zU`vz(F8ivcKA14S(-t0J@F_xWUwN#iR$w`q-?+@5pc61H3`^kI16T0obQ@ho;S)Tt#g@uC$$L*w+|~!kSo9h+emD;T zLiM`j^+TX13tjD0q=@=}W#6*ho#KvX()q^PK;PWIMN+f7ZG_vBG4HUr{fe*Qe~FX=*fI znHFL_TmKsjwA)dnRTZMH=Y|AIG!Qlm)e=48!M!&e_Asgxs)YmPWxty?9db7C6&VGk z!spIgz-2GRG*vthgOZJnO&!~)D~j?V3d%^XV!F^eItGRjuh!mV%Y&h@?ngKL*<%13Xrh61~)w6{BrC_E0d7tSO+olPRU=2{EjCC^6rc zgT_pwfCfUMB_pi%0?Km7L()e@0XeoeGg=8xv0p}gMdWU8Nt2^amcwMD2QLun z;{H+sY=V0{PE@O{r{93K8a@zHgV=6qS)CCAKRqdXvaYadTirPUY${5JI_|cfT{Y!u zpIMVm`uGm$3LGs*iauB~2nmhsJ^4E{H}t~}7kYrieop*U*qw_}z4!$iTNKd7zJC2G zc1Av%$YC7fl+^8$-Zy?{l?@VkL-V;;rkYfl`3OxzL&Iws8OoJS96U*cXV0I19vXU^ zqnI3_R{{iZc8>voC(RAjbEUH0UmUJBaNOcM@6H71D~leJyDOydy#l4owf3a#r)~w0 zdh(&x9P{1uI|DEN>GT+AkRYfaCO~1khnH6RHWd*SKNbB-DCes?IyyK&>;rkt^a(Dm zo69Y<(q?{6s{@Eo{|IS&1e%!K8(XW|0mQs(6Z(JTee@5BSZ`f+Cck5OTbJI;XINwc zDzi<7&?=E>_oK^{`STP}{!WA~P+!N&mOBcjT`bj?mzGDBa}`$^Y}SiYw_pyYMQy-w z9EG2H<^p{%f1Nc&eLl=}r1%;npTc|P?*0RyRO?s`mrE84FsEaaiTp?t^clE>y;FQ| zReqzRaX)eAE)haWjP_G=TI zl>oj@a1|5~3gjx;)%22buPrdVQ&mP=)8Wa9skaf!7|3%hM#svQb zvi_%9oZdgGf@D)UDFA$)G@jjh$fXM4yYRY{mzQgl+P*5ACc(vRyS_M*QBW8-@zD53 z_)iG+q$HL9?^c4Oh%fe`vw*kj0M|dcJ?2dq*9~^dxiR#X?V6O#)2x-F1IiQR?Uu zN(LI3By$kZ7QTc=#=OK`5|L?%Q%2SoFD6gH$#eyme@|JY5$30SlhcPduwY>@rE*1B zE0-)#)PlGje-Q$V%gn4yw;k5V;TlDK@~d7$&&n;T?QK+ahTJ@-Nv#@d-LiH1*LsUI z&_c1;Fl7Y}QbFf1;14K2ULTJr1`IeH)Pzbhc&HvTG|k;|mysAAoSp*HBDl1a z?XAK2{vuX>+jt?ae*ek9=+_?B8Bp_KN5q1dJBtfGPk5@_r6Gzo-)g2H4VMMgy> z)+q@PxM8pl-A{IYgKfUM#piX&<(Ed*UV)gNJgowv_s%z9-IZ>$l_9hjVR?cWZ z&_Sd5z3|a3cVsXw&4c|*ixSS8{!Pm-uonIF3r5k~bE@UmP6Rf?wXm;6U!XtMX(Tpn zdsy!M6h4S_u%AjY+L@;<|8%+M&FtI-pSV3GQdn+7UO*aJ0K)R z3)KfN8~>JY&wua7Y1_s2CR^_ z!ek)Rqh@cslvwy9myJ|I_YQvr8usAb+WvJbrol>Aw1k92R7wiQOM82c$B!R}k-EV# zPf@T*9~uBs{g4N}GFkN5Ghe`I9urb@MpHy;%tPSo>zzPdft*{On6`Ix#2a+)%G9DM z)u%Yqir;zPYywaUZJxFwRAuCA^IT*Qe&um*If!LJ87^2vb!VguWlDOl&hH$R)dcmy{33U=TY z7F_{_ju%~`@s_tIlNdB#`qXeCyU5Hee%bB?$=#tiv~|@U3RBy z2I)`UbfGD^gV;on?YjSF4SUv){7O@cG>S*~anZ*M3}|kJ33*|EMT~!?`_Me&mgpL1 zG|CW#2gMi?Ea8sMxc+&u_ulyb+lFAlrAKUX^6LGO1^`Ok3rSRxzoZ`|{QsJMP$?4b zWIg@q7}?p`jq7=-5Y&Ua4)~Q|U4KhZqyi3Wa!t#Y`ew}jbl<=oek-qEkw8^{hM6Wi6%;#uf@{$db9tF_O|03zU*Ova-a3?NT{#?cDz5?v@yp@`P% zzB|B!o3JcekJCLnS6DWEiS71qW6<%2KOI7Disa2EXh3%r)K)R@Y!3m$1 z_acoyU822RV%I+v-Ts>!i)LqMC(%Iksi45f$cPQVGOc^Opw~4*d5pO!+lGvpS}E~c z{cY`U{m5J(RoEk|e)(YkrUjTWsE|ypjp}wb_8Qr{}ZlWYQ=c z3UDzlC_BJo?wWB~ds4^s#K*^HAcbH2yw6R zQuR)g&(&_t-$FP11DW^bvAKZb24u$LWGCfY@wa6|TE1?Hdt67T@}->iuOAhzee)dHd!Up*{FfV_VPh7f8g7dth9~E4iyzid@#;%v zj4xvlUZb)hc&P_)19|ELBERn$(pf3o9;1n&9lxq3%TQc@4d1i`M1 zpZ8{=f|U_}zN*)rY|M$fJBr2nDi36OUyLPWYuyGhiu?fT07yW~fDQ}YT_2GOyH~1g zJNjR@%A+cAtS)gx<1?z2I`?aR9RDfv=FOv74@c9USb9=X?-bsghEKV&^U~SgieNe9ZW7oodGsJ&xWxjP60^PSUoOxn+G0G1BW+?Se6SQIB zwVruqZ~g)h@ukz<=}NP?&!8XSFV$;%SJQECCh^<1r{32G(rZne2|#>42gdVS9}#c| zE4(_Lp@&c>IC9JF%~j%MhsvD$b`ghe(-H&I4AV-W7iCB%Jpv&ih3VPNv`w?|f0*EA zc-#AcuaA5eM_HIFJk#@Bl)Nul3Rz19fh6;rhTUx|=Vibf+tyfl2sJtbzhRyYi>*i5;V^0jXz>sXbi@ZURT_>^+!25x%^nr-$H|+ z9ud37&d1+G%RmK_#Q#s5M|YINpsrsIRjC?mV&8^hMbz~uU6p_B1y$s=nu8}Q2t~^b z1Lj5SrY`pr+t&OQa#&9r(S+X{pgO$y@qA{UsS_CEScX>}4Tmr9WeuEoTSi4nTF^{Y zYr`*I)Zm{2q=}`b6+)9$$`#-t16hH`YR2en_ViA&%3)mrv;^V&;e802d@e7bv-5GG z_>2<907E3eBP;kt~Ec1yN?B5v!1m#D*(3coOrv5B>KW2PkWzp* z^ynTt%hANdXuo)*{1v^Du|J?`Z*NcNsE@PVvQ%FtRlwyz1|ZttwWVK_PGf&*IH6Tc z`=M>iyX{h>hTihunp1)*#aG}!Gek5v+nWs|;f=UBS{JO7%%o#z1w{cG^L{Af6^560 z-fXEK3f2=m(sm$7qFEAX6r7+ue27CvCXd@p)85%xVH#PdUTxe<091gW_R4d2|Rvv(aP7oCv z+kTC7c8kv%Zm1VJr`_HjjC-)Z58h7Ua62@DU?3wZ1_^~La#OrhewWDOrB&><`ZUFm zS*JD%MDEdI5Je_kNJTPLNVk21V9DZu+8Tl>bjUBAqz@>V>%?iw@85rQ(Cc-XUUc)C zyN8Cx;Y6H)?1mk98tMMYhE}unai9yU!tJPWzB3q?Hf8d;k`BLkv5-GWSN~}y>13Tl zE~r7IEl=!Msb^m98R3ZWy>)xU8+C8UvfalkUb4;xqXgxOc@w_6*HRsFV!pS6F;?vr?!^dfn{*+6AtMSL7`&w~`HG zQTmqx%;PYxZq5gCQXK(^?$;6ZZY}R4nG&`affN}|>i56!ktYM1B;W6I#~M4aFaoR$ zlgG&vqZ{!>e5+dZv(S+Uc+7w#5b%ZHQ|OQ3+h~}W)b{2^pGLYand>rt>Ps^o`6AX8 z6;^g%GV7LmGh*eE`B}_YH(obCy(1LEOCM3>Amw+LxYh5vqh9f+Bg#ceS;f}CQy7l} z9Q0UMMTt*S9ne|;Xd(anKrVadSAM}8&@mKwv&w#Xy4h>!;}#aF=4I4~TGudZrNn9+9ntFbjsdzPA-nhi$-g2!91(A+f7kX-S!wT#F);yp4@bV7f{Q0w#elMRe424(a1d(jcTF< z)cQ4$ioGv4X(2!?ef)>l|J5K?=Ag2dMztjoP~c65D*RlX7b=cDawtGTaqO{=t9s*x z@!$C~Fi)s>XyT12nA&D%8-FI7>IV5_HxLOKIdf!odeeP(Y{J!Wi{zeo z$I>gi?p94efa1UcZ@eQifQD&0*SyAV*V@jZOKzGUD_rY- zvSqi}iUfVXKA4`X*XTYDM>(Zf02v9mfpJbp_Vkg$wLm8U1)*J*wb37l>wxzDTzoi` z4?IH91=|7BA0!YUy(jUc7YC?dA=*I?DKaK;?60q}iohwWxQ)h2834DIH zm1t>*YvoAR_{qh8nD9~o;rEZ|UYfqQm#lxyvYiue07?Z`nFShPm-z^}qP%7y;!N5w}VX=Eh7v$LWpC(#yo#ZnB^hg783#uL!iwNk2y$A%5ZaX;1 z52X*91boIUkZZ>;4oR>whRrr$6|~FxM1xW5fw9Bjeh0C=(!f1xV@IZ3uHpebBo{#4 zar1kF-1D3b@>jVL;tOO8Hk&yiHL0SNaNaosl}Wk>4<6jhi=f5reihIO)FNhmK%bWx z2;z}jTV|BDt21~cG+EHx+#G{gsB7<8T_zm{1$&D3&86K+5LG37p+PT}b3)Y{2nH<~ zzs{T~wJR+@fsm5+W~<=@eXO7c#iXS40U@MlWR-U&Q@`2U^YDOHXlyHppc(liHn>#BVDROXYym4LzDJow}=|cEPbmB zhKX8GRoG1WzUj09mkd@G{u9Drj9tv;rfay;m%9<)>7+X3qydyFmT}uq@D@t>wcl!c zdj}q$uJPNU%Q#vALS2v{@N*ihUas2d#u<@$HQ!x5=xn||>}>!))K*_*>20PBB=2XT z##LT?pEA=VolceQ8GG(}4Y3uzguMLkD(deo@}Nj`S{j<1*Ms@I=fuEEPBYgR0|g^E zJe+y|Y*~9kecT2uAQGMRkF2TDO}w1ac*$<1WIsOo-*-tQ+_2XU4GonSm%ocX(XKbT zQDXw4OhDtQ!c2O(H?y`e)ppGX`Vrq4PI0j>`lfLOwe$9gVTQAgO~~ab2||d+zH1o-@*wg4 z{{n<4Wxe0cy`xuKJTyY0^skrHWrNoR z_zg*{kOVG>zR0%R>? z+w>W}>T1=vNeuotk_qaynoaYy<}X&I7-qagORyHEDCp@PsZ8{!Qi**zECj0k>(^ZN zM=lOQn0tCCXPxp?J};ii$Z@Q(D4|mJeEQr9M&DC=N9;4x&<6LJL)bfAu%=FWix7#Y zNXw;-O8H1lqgFHG7j^az2hQP#Er>Iie1=*ykWC`$x+e;#ly4N3TKf-$g{gXzOrOmcE8SG`b+pG*I68~Hh;Kx{e* z>gF*XR;~$Ncm&V2sV|`5Q9MJR{+^n-_6S)_{&Bn-s?w&byGGht&Rjna5}w7(_Zdtc)y8R9 zc{deOvLMkh`4m)Ht8*@^AY&4vlo=MtuIg+RfD>UjK#iW97Vq>{4`!qvXbqY?fRDU9 z$2TLSz^$0ACB9?51#@2R!_Ayj`9>oQ5ESC(Y?X^c{~uMvt38r&gph)n?R5I6Q|%Y` zRT_oPMO@+Jl){Etr|PWsElyrAUN-EtT-H6iN-QA!d9U>*IARyf-CEZ9jNNyUbO~YCH_df5; zyfe=^bLRYU{Cv>Oz3;v6TI;&LwTyhDB8!1WiUtP74}-a4 zIIVk6@pYxuu!-I@IWLQ+e28Mrm0NzJCdK>h!*4tzCE1hxc9gB+F=3QefqcjV{bJJ}`> zit`d}?-dR5l3hut+j*Ow>@k#vO_Qd_KdlWj-9zSob#tP@WWKECK;QG2%xRx3O-}70%Er_f% zkWX{6Sl@v3_SfS*0vdTmEWCVL9?=w8@`y z$3`*8dQaQ!-qeoVh(ZNZ{q^|o-H}@E9Ok#I+*$lfnZC{v%&T+^ttPLwF=oW{^-2`lFMsAjMK& zkgxa#-DUhRpNG1zdmy*pC;vL3qnJ5s$6F~PNgFxt@ebr5@~3;R{_#U}#em}K{OXl2 z#gZ>AdOOL=RgrUG+uL-ei74qe22-b3vF_vEB-kw z2Cv{bry)lzjgGxFs{JCn%GI1v*W-)7>Ml`Q0-3m18`6B0y7nH0l}-i)Km0~dnH zzWJ+JOkrlSpNOIUqtj!UlWHpEB!~R(f+u$#zaCl)B(DTekyeZ=3ahB@O7QL=`<)@0 z5$ypBHAVz8dG8K#;+{~p&6QlO^Jk8->Z~LmZpu-|)r$%s29$@3b9{N^aYqX~Ql{=O zH-btD+6$oRTz|9>6-Gfwm!#nEQ+4X1ksGa_C0m&aJmU?Xhd(JaK3@G@EgIvX(MWl% z84=0x$n%1&SEIe7mE!Q#xszj#Cp#H0Wf--SpZ@C=Xd^g|6-Vzh{rB^W>N)+zw(@SB z6;GV(v*YEh;e9_JNX298q9O8JqRcpipbq0t8Am?yXMFz7hYri0J+2rr%yP?PD>9q; zbE0&fS$?kvc)xbBj>zG#DXNzt&1K=Ajx9PZ&uM1=#53f$7I)|8kjFCD+MuBB<_Ebx zTCv=|c39(sS{yrK1*9)xA;N9wE@I(VJQ%A|UbGx;-Nk&oSi(k8D?30g4S8YFSIdD~ z;2Aa|`)k!)><7ienJN5>JS{cd3R>FLm5k>0XLnYrYt_nkiYZ#Fn%CIGJh;YZE{V_=7@Y1mOKKSRR(Cz-#mz*@KM=AezpYEv> zKAYvVU8qLbqEb=RQmHR+S5i@{SS>(=4A1uW=8hM6f?xB^V=18SZuPk{;Hek{TRwq? zjAL0H;~s~T@n4<9 zo{vwnNV{ZDpxwt`wj+k7FPQCaHEWO6YYjpncdktDV_LQy$GoNya(=ar;AM`jDma&o zBCQbNMHH)7epeMyVv}_aI3mj&J&qj1XkA9vXjEwR7IR9yk9B%;m~+Qq*y20z%1DFy z@A{ML4^4mTT8!&2G1Z^$849C(-%jx_qqsmv{YW)7hbO6XD>=^FE{3q2K8M$zAr_*h z#b2@G%A0RKUrm`>U#k4R2j}Cf;T1zqr9t{h&aQ*)x@avh3Pnib{u>5tpJ)s3;}f&27MMxS@24tAx@q*gkM z`MGBX>!<4O_T_))4nGXcGUEFMI-MbE-cK*(SNm2Tqi?ANlO^ReHa$G`JXroXW5QbO z^=6Bffc;%kr(c#SRmOwBKww?s2KCyP9FMAJ+G9VR^_$E2%(v!KM_T5Dtat2=MUrMl z?Zi5gRG>6bWqr(XyO(axeq^_WGd1(j6%_rLi}lw%idZwzRZqPMMmcoH^7nNXn#Jn# zUWO@NYV=i07p7`j1*0<5g+D$ZwP)2;SVcGIJB=xBI14`>mfjc4zV60w_Coe{)!KE? zJWp?|ULh#UQE6(qaJ5)<;bB-KA#m6j3cxsOX8(14wVXJTHO6R^)A5rrLrdEbnMlkg z$%V^!&DVj-z@6;JVkM1ez4_br00g@Qqn)7_j15EW1OX08#Q{tk`YHq00@qO0&Mw_K ztOXAx=Y5Pyj&V`3hK@jIlF12C#|ma>;?_mWvweBKu4<}3RI$ePii7?R6b`oO0hxh^ zPV|uc?S;N6KO?KhB;B#aK=}5Z8-B_RHfSG4z@XvfpnYL=flm>XPp_?q(oe+cRv>o5 zl({S$N%VJh_C5KNx$r9PvIAZgUuFH+pSd;!Wm?jU4a^%!debY+3%#kgr1;8|k0R6L z8da-8OCAOi9}gG9D+lkjutltPhLHqAs1R3mR;qK0ci7t)#-KH;c604t>bLn|6SiXS z;B4h_Ih*=nd3Hr_J_p?>lgZyfOwd}aN|0+Q@Qo^0*CQr=1!GA^Am-)@=F2vWQXz9O zCIiyMypivvoe*irJhz`Pty8^GQ{op4vCOdj{Um*;1ZDRl2G)vc4ss{2*!hI2tr9w+J{`4`0M#0#C--X2l+cYWyy9~T>HPq$hb z2+L}o-gP^2mkTzaeqGF{LPEJL|@~-jZ;K8;*&!JIQ zR6rojL^Ax9`40B>Sk7^#=o%C?Q^YSN>!)Y)l8UD%FIB)5P9lRUJT(tb@_dcu8Fa8A zIyp_)hSRc!B)UgJLIVEVw{LK@*5epVs#RmDb}+8<=Vp`!^oPPK(BTs&^| z<938{=_66pB-MT3!BtqCE+@*XsPy*DhF|2AB2$ZsW?SX>q`b#Lc=9q$>8pN=S4hd0 zG6P;_{j7grl!lo(YG-E$cZzX>)TRu_wi#&0hfgV*dBfuY<*gF`eU|$1OvD7sI$bhqYy-niqmBAy7Z_Sl{TclN9X<288yfPndWhm4x? z+${w~YUu`9OG^d{ArCr7MRG7Ep9>16H?p}L%r%7|Q~C#ApFxQ9>fH)Q?dO|6GG=>! zATl$mWn6C&HuT-4=k0UYjy^Q1bemN4Ik`6VVZ1fKge-F5Y zb~{9x9VNP@`L3!rd+f_BrSNBG-qKaQsv5muW;u$gSCu|Vs&Cs`wiFhY{2YNj-A{`u zRWX}4yMJ2W4KY!eX`$CYoAWJVXH5A7Yz-KSjdvqYsH6gvOw8wwEet*39U@G?m3u% zs$%y^m=uD4j*pF4HDy`j^mNYH4UQ%t`E`fh_AiMeVq)AyA5X%mNC*U?^k^OFc^Oh@ z!{hlOX-W)X=oB9eD+=vq%kSUeE6`l)Wn6g^a$tFcFk}bG=IEADZR+-l#xOh zJz#D+S7`$F67<*$&1FKTKF(?~s0AqN4~ zk^DeYQZOs7O3jQ!%u%?;a?G_PPLTv1soC>z5V9x=sb6alz`C;_dF6^2F9ziwO5tFk z%*gGstP#k8q@6KS3?Ux}b!0fTqIR6`PLgn0Dn(kfw6>1#9tbSj^Ku2;xbr$L$Su}8 z2>6~e=~?SIosLZ9U)k-t^b06|bzI`vVf=VqdH;+I!kD1=u=WeQGg8?}MTyt$+9)|6bKS{#<<6vWBskpwni0 zP~)?3=nqRudFm3)^5-{k)~f1kh<3B3$(uA%7;m;vyIrJ}3=Ov`%yDy{?~58T4oF6j zcG8Mq%i<;&trKXxaCFP0!-BQi`^=yIzZBJZy!uJmc*)Yl+(GtIW9L(lc!-PGv3zxh_%&#zrOco z9wEK1^68TO{{6f2`W5P1_vI>WR#wAvN-%tAzssZ0%EWG{yAnD$Ch_I`Xfh8XtXn2f zratl8h!(**#yN7GUyUz3T?j|Ep6QRjNg?m->?9U2r4wosdTsjl`Jq$H`rY*z9X-Pd z*o8kivuCQR>`FEoNu!li0Od=QL#dfXu!^DyO>#DOj%_%TgHsZy&sFoFSN3K##|<}k#wFs z^%JJ1)ITRC+KlHuZFrCjZ)o6aYislN^D}!%jDm*N zxw=Xf@+-K#U2NlKCjS~^WMFV`z4POGzy$ z^jQQE@}$e+MQluxCf!?3?q3`%)Rio$I>4UoT$Nd^(`q)TTEEK;gh;uqgAI*b5l78A zT{dF*I9)g80Nj!1Pxw%ooqIe_pdC!lp)B``FeEixu1#`Fx{a^$&>IvuF_E)3Ygqb9FIwV@Le5b@-S z#70koWv6%V-epaWSk^4wp4BdrVkb3)+)YW|aT>#~UXaJ8-x4X8p13=l6Gd9#+DtC# zL9Ns_yw5pT{!*@WAIE|xB)Y{APbuPC>3HAFx!+Vi?-3dn_WASY4;2+oRXz-fkqpY| zfA;tF4&JS`1>AxWlG`)FCR_u?@wDvCjV$MoH<619Sf9&lobz1>JjNx|K? z@MEvM6i1Wgbo`I2+RWIA<5PcpxL3?F#F18$8`I#=G0D?;^Q5`v=hf+u((~ufuh!zv z;6fYhy1iBdWCIpy95GSXu6DU`RrH$5<-3XvNL)tFx*zVQwbIauUj~1-r#i(@wwbPe zQK*uYTXp2*h-vd2)WU?Mt5p^2*nMQ&9f-7}rtZh5AIOjsza)7-m0&3cqmiRsWH>E! z_4*?9_=M9ZAvLE@{*VyP@y+Epf8#5Lyht)9$B}Ov1GSEnQn#3gHd8;w3F5UPPLmqM z00K#0XxnPuujm@uq`$3cd=75?=I=F00(QtDk(6&r+V`aMg)_SrFpD(#5Z9IQ95G{` z^YNt)$0+gMo6>P`#LuwlP1ZZ;wY0SK4-9;BE5Y{n5BLj(mLL88$n-7uzR7GTu39Xb zv|@%1yN{?LD$wT{wW~VMQ@U;oa2NG4HmOiQ{+~0;f7fst0-q^9OvwONoR24G`ZiZl z?3yJMdwq{VQu}|yQz;)67w5ictMaMsk7V-HG)n>(Lg7psUcmqArAx*Jv8ZWdVS1x& zcW<`>E{?>MAn38EsHoizac1^Y+N$b7(>s+1)BFUhC*BUbfv&pnd z8{7=bm3L>>SXdy2g@T~?=Vg(p%9mD>EO z0b7cfO)4ickb6YtON0}Y!Myk0w?6Gww60PU|RA)l z;G9amL*hkmP!b11r)@0`=Bm)CUS$FbeKI*F_T*DiQg_4}?bTWzRa9Mr@dLbTwOd3~ z6!`vXP(n>l=;`TS+3&nOYS~w5Tev4EvMFNKt_%is1+LO{OQF8ofrgKdh=YT}Q2QJn zbS3AMpLP=l{&lx36B83xV|S0(pc%IMUAl^12#<+93NQck^0J{&-F7LW)MtD@4rugh+tHze+xZ~T*U2LVuWyBv=zDU&%^?rCM<9%51y8R zZr`aR7iBh$Rs|}JtuVl4=e{Dot=R_$_F?EGoq)v+j0|j@IphFRH84Ev9%yP*YmEb! zuI!eA0m`ZyWK`Js5#fAyF!FR;&(ri4z$i!QCUGgX8amHX1W-xyBNYj?Pa zQMIWyjv!6IuHak>C_B1fia2i=r>0)O7#{Qx0QBsuAXT8&46!I0y`JQD7o^Z@aP)wZ zN4>@W2*eCX$9sgkyR)&Dzn#yxZ5BfNsQkz?Mz;0Y$1=6%|7MX(+Q1bT3-0q|j40)Z zX2oXkPJo&aM=3J+qhGCO@I}-*tCpq+L0KLPxjY>MLvPus1d1BTzi0}jTt3LhIo^6lkuA>gd;SjVF*9PORMI$Ub_A3uD6kE0Y&*yk++D4KzmHpKIAVH{uz-3Hr{ z5G+x-WnYh~d3$mp&zRr8-|*Tmy|MKJ(#n?+OIE^Y#T;n#;MiE7X%+w2yHbOi`nOvY z@bK`12C`cGzSPOfE8tXg*t&EzZz=?ZIYTY#bgOjBtkc7$ZJ%}w4MpElHRfDDrj0$W zJW^G(LP^I&&sf3v^?c=fWBkIn^AHckjzk9V8JG?*KR^GYIBMmq)x(GD9e2TP5uSK3 z+3|33C172`VQh6Zr@vp$_i|79%^U2D4c^p<3Tu1m6vb1Z1ge!o#ar$_$c=F( zCVf6iql}ohhf3AWhH9{A$%FT&(Edk`5TK#=)3OX8f2lGx7)jWAW0-xbC1(&l6VRga zIUGAz^F$7-J3(qQ)!P7wcK>XeIhh-468aqR;|uI_4x8g*NuLq&z>!-wIUN2!SM#2{ zRjG>I^~+u@FBBjzs)2ScqIt=aB@VYYT>-g^cav5d^k)Tv<;bwCRkh>2VElB@2qU&^ z?i+VBLFw>ZrXBa@&RwD$pn5VLrK?htk_t*&wHqjr7Z>MF5(EK}G`G=C^gWaQLBNjt zjygrLinPYGsk~H0`!-)9wnUQi2#^@?-RJN=7Qa*TVD{AjT80+`POBjYzSRaNqd0PbbxpVO6jddq?`C~*F(h1J7DFilg;=2ZcXvxYTy0>bE`s{7ndP;z z_6wN`k(!?Vqu)_ecq|zoAq$uPm9wjx+Y2V9KQLr%JB=1RQ>ItrzWdfobCw=UOZpp zm~m8Mqp^G|JG`XA1cfVi27yx2hfhSlRiqA*73ynB`Ms?^cY7Th^%U!C14Bb*;*U?1zPx-NP8HZV z?BHv|N-G;j$IF{?d)%G_nkOKEgC!MhgXIQ4=j!Z;Uc7kG@^G^c1TN%YEkmFDsYaFs zQG%X#GdC%{=G?EWe^aaEh#J_7;pS>aJsyU7K7XaGI5a#xN|#;qx4W2$v@NLiNjWL@t+y|lt}rsvYjVxEtkUL=?#ZR6qqFwdn{p9# zT5hg`f{AHO7%iP4+c%eYe!)HhKy$%H$37u!PO9Wlo@dXQXPW zqWz&5gF;Z9g^B66Zk=sDg|PRV60HiuqAEH%x+KAh+N~&2juMAHGjYA2o(@$P&cY8n zdGWPR5RmZoJi*vX?=c;pDK{wb*qxBB(Pq_EP>3p+-H%RYYZi&BH=5yX3X^;-ys@yKa%YvCogXTNG_Z;?@0a}H(IKj|8W-pUL5Ur zxOw9d#l^ypcW1)42Q@GqZj=U3LqlF!d8+vILUT%6_3?{7bf6@bqnc7Kis z6y>@arTd$UR~aLl5XdB`ra%(t3q{3Kh#gWZ07@c|h$;i`eVg5PKeV^Ey9JJGv$t~W zyVzV>)EzR}y(DhDhc0G`dbIl$siw#azpt{3s0SX~6ea|I8 z$Y7_J%%WxJX@Ciy7C6ajP>xLZ^-_Q=!{xBRebl%Shg&63|KyJ_u~u)fMhUo~2o!?u z#z0fbXWsySlqj2;nxtf9Yy7WWG0FKm`ly2R*LmESZb)B5bsjDM)M<340cMr(^=9Hy zz~ypsT!S@h95m{P7Ko+!^+sw-N6dBs9~%kvs}OT1cfIc(MMl@9qq8PY&(1)z8FfPf z`lCn5QE)I^bGR2IITaww1Cb~I<}e=u|DGZsi{2h^Nk~d6Dplw;u$!2ejFxzaUj0FU zc>5U}Q-epkHLYdj!G64B08S^0faQl#yC@jev|?iIOVG#bv7pmAvv?dF95s925F`ws z>5>b&qXYvNqJ8RAR8;iK$o5;TFNut*+o?u@YvAWa!dHbvP_AFUenLY-1IKQ}lboE~ z1B&7qH(6mM<_kTL2ZiDK zd{Wit_OLFr|j!T<68@*03_o9SW#*mJr*-5T|Y%KbaY zQh`lK*b64dz{m(2SGG(n=_{an;C4}f=RP;54TJ_1EG&+*Nl>0V(q5Xtv+31;2kL=nq?~v1|(<-qRPv18`KB?OROx9JiATh|X#~q`db1pnSYtHbGf) z;S8mRh5r7F5TJhs5#Jupez!~mM1V4PWyViH>7u;v@}UWBO#hb;{{Pmy{x4tLc%gir zV!~D;_>W<(^e=rO$dBp&t-c^x^pCzkBZbOkHBx$n9oo3(!}^|F)c;H4hzsD_OYf9X z)C#~pfbn{Nk;Rn*7BozGAmf?An|`MD4VX{BXI?V_$Q@|+eH{_+VF2pWH_0zzL2Yg; zp^J>p&;uR7c6A&n1_lOVsQ9v%jSd-vgfikq?;_+A8J~Ot4f{Z+#>a1Kv1d>zo13I& zKBmVMOoR7;F~RB9TK}pU6Va<<(dqubvAQ=m&BIoCGr`{YSs$iNfo4>`G5Yi9JD8@a z1`Qi^<-;veQmZ&@@=_>R#ixk4fJ$!uWK7J=i~$m15algi#z+_toMq$4Uu$UKOaC(G zOxBD4pJfa|PaN3vUn#Mw=scan8~Ojm(6$9oF6iN!aicHR z>ioyJQj-@Nn0xuXrz?KP;EXb7je@dvBFE7wIFrDPJ=vSkiUfB0pI;%@z|6}!OeOG= z{#Vbbt}oh{0S+Byz^0mJx&E%J-d5{OG$Gq_TYG%qyUVMpa?~vYTu2#o;F8-b^NQIO zAGoE#Zu8ZS?+TTZqXk0$!o>rv`G<>IcTW#U5L~;?rlL~_PR%2@u)aH>));Jg`iuyu z!b9~Ai?Ia2cPvoIp&(|7`;~A`0QrNU3xtq5iY@l`66P+3*$9Ho=0B+hG8|VZJg5X zjirKF<^Xmu0?XVjCv#}(wqT-6j}Is|C!0%*Ac)~nuBG#jsTNgOd%@xZY99?Uk+q+YXlM635MC&Zb%l2bHOT=t6=u z_6g)u2+sNiuv-lQD+F){z&L5(VC4kfya1KDV|BH?o71;-MWC$KC!bC0+{fmShz(#4 zU|vfV)0jQA>rsqU%^K*eNU5WjzIUa zyH&?m)!Elu;bpV)m3BzJ)ZM@E4a4GS*9Z5{@A7ENf6s@ItvbhU!d|!PW{?Zm-Xx>A zxo8@K?-BVh%iU>dW#aw-+GjO?YSB}$k59pyF>);o6rbH@G4DqN7;u3rP|X?r^2$ts zb>r~xP>IsACJjb1Tqb1}>K%s0^JIZ*KiFhHUgfEwk#z#v_>Jm}+nr*VL)fKFszQ3_>=S~RezgA`K*UcCnlSF2H9qh;nlp-@SU)mxo7I>3uI zG<|5wE&rQ{WI+}g6(vz)bAGg(QDZeGSU6jzMU*kpTV>XVf`MVt)r*mzatVcc8X9=) zGL9@VE{z`IIeH1C+}-)J5GO_!m)XmLGrdeaW&N|u&k;K#HY zOJM6gefpGK#5HNgfmy}$&DH&}Vac<<{ZH_WzTW4CQJI;+!GOYlbdX^T7 zPMId8Ri)4jNXf(?hX5+~Ibfhur@*NI$)Jg!T23JR;Jq=zmw7g5yZWkq#|-ZOz>Y>T z9vD)DO*anVM|ccUZsXk&#i7#nQYgUC9I%Lp#rg~1pk3aP!NKRI#)yJhn9)6*7<@|| z`z(fqAU*KU1s@(CkMa4n(O9~m%j6|AtOS-!5gYj(^1wuAz=)z>JALhV+X0#t_6%of z?(%1lB}rIgp(*}^`?!c&=5j9%f8WwSqEJ#P?!58GRjjqAx0}=9rnWdnEn=wNf8G^1 z(n(#@lo9_emL@WZ0O&yW4^5PYQr#v6AXicTNkFUyK4I>01XOBTLVXZK4uE66MgvrJ za;>J#EsY0eGMeIv=J;8lg>{AqPawF^;at-jsu`^F_Q5uF2}9kE;=p|O__RqA3h_C| z%HLE5vXd6awW8kt5N`V~0O5a&Do%Fz#-*o02FAXwz8%sNAG$Z4{TS5r6jr*)bCZ@U`j&BTCe9Qr~v)-J?dY^?_CSlSo28fbRViu3+7E zHi8@b>kqmY7c&4pIKL_O*@Y=-ek8>z9t>E(dTvQI zVWlZo`R@`MtiUeVRRHOWoc|LbMuB2ieob5N-oAw;CFUz#Li7&Xfx`#nT0#vcvC5Hj zk!Zlgrb+Z31Mdaguihj#Jo}WEHUJBXAz+FA@uZN}s7HSL=1s?%Wcc+(gVB7$F(VS@ zp^EXnrT^a(ODVFH@zEmK8Wp)(7dsff=f#x3@h&a~53>=?rv-T(j9@C{ zM`}h!WWb>x_^*%!d+JmtFZO4>ZmA!jdQLSSLz=L>j<`5n(BnNHD9Vh~)WN_8@hLS3 zFD+#?47ivsR-{hmj|>D8sYU1<1sMa!`NX|6b&*pA+XK;t|^YdLE?tF9`Yz*vu3*)l1 z8;wn>ZU8SD1vjiOmx%CW$!&~)%+~FTXn^3m0wt3_9q-{vjoPz8s;K6sz2wOkK@Vmi zgqaT}y@1nibbb$jR9oz03cw;-o^Hv5$&_+{Tdwv7sXqQnL}@CgElhOdcVkEk-MAfS zagGyqBYZK?*ROD!_z>`u^J`EL+Uc{GI~b`KB6!k;bE?@!!Vr^}#4m{t2D+@dOE`grXuFkCVBl?)-N{~ z`!HS&03FDaXq-w*L%bx|10TD545h*CTJ+I0nSRj<8suvb*cJ%@#Y}5 zrePo@uQI(5G8*Tkz}+JIMB?SQx8m9J!4>05lVs@=KTK#_T3TQFq`f4@_~Bb86Er3T zYOg_6o(v$tSi*ndfcePIDCF>s*S^!dWY@VVY-+3R~GW3EJ3(b)4^I`;2b&pTGhFn(;<(L6VWTXx))3CE&-X!lZr}MC@6o{WGO8HS>{Hy=?s34Q2f0W z1o({WbV)$O$v1>jqwo~S4S1A>S6!w+<2zXXnfm1mF+~1+0;bj8-R=fWRyc`)Kw1j? zGduBX`pTjMMyML(V?M(i}0uMuLlg_vG=E9ovZK|17 zU}50K3~`L;*EE1f$U$J*`*toIb02Yv=DU1^+m1q5YAE*68@TJdSgMt8YFHZt>ebsn--ncFM$$4 z&p7_^2ZM<3x$|`&zFt@z>xG|7>M8WubCDsXw+hYvc=vBXmotTy&I@1t4wwl zX}<}{-dOUPYq{p)RCg4t*^%}Mk*M6JGGnZox~@N#j2}o z1_nlc70fehqyocAx|ho~auAB--x7fG>={g4RiTIng_#0$wT$VoQKt4dme58Rpokm{ ze5bFW0gr%yijMvr=suKD3MejYiQq_6Q)}Nrb%S|s5w_1!zo-0&WUTG-3;pRI+XTWB zw6HBvR6_U?5yf=i^<1NinMXKvD0Yt=e9=?$FLEeqc+_VbN|2UZy>4fFN@ zjkP>=os_Z?HQdGCECSPA5YAKlr1eR56##5>+$={EW3ftd~v?p0+3t#8eKMo=UG91R;k$z7buJ@gwY=*!?BXd%m50CW=jP7 zgCHz`PCsQgO3}6as2Noh(Y-f0u{N{Pj)igQ)FX^a+@_*Xu-O-#Hc;k73Q zC8Y77k$j*ljoTgC{jC@(mAiL%`B^Nq@x~iKAPA%nG#Qa)rB^^>28yy;`|ALic+vpr zMJT?ON-mYC`xi!tNZ(Fm&CY7>GZG!b39jM0tS_&1ZJ%!ob3M7xtJ$4A7Rd4rlcn<6 ztPZc?maciEjyqb9bju20QY_qi<54W~e#dRL1kh#gT$| zwBrGxe{`^ScJ{JbrPQcpW^e_e$@@rhx(LAD;vdB7AtF`%$=VY7pcIH#S672&5YD0i z{9VG7*2`rtDmWmuTCBAA_=7WqQ_2!d27Ul1u=?QG^&8<}q3<+K3p9ZB5RHL-F`Uhl zG5u(8xU2C4hk5Tk9X+GV>A8=t7m1Q~@$U5csMQeKz_Ma;fgl&!BhK)y*ozt{q0|7=XuYIhPiDF%UrVTX^jK&}i6K38*?b|4nZ{tw5XL z#>i6X18n#eX{-ime0)3>z^x#6a_)P(-QVBeF*a7Au-K$efMN1<2DRIAfM&~|G`+x? z<`DlO&``g>pRuDMShV#Pj1g&I4uBjHH9tSG5tR`>enXoXSZ<_s_bC1!z5}=I6iRTN z-HagQDQM2$B$2_a-OBU?x%U4~!+WkH8$fa{q@Akez#D9~o-DxFpCJfbehj%3`wEhg zsRmve)eEItEAV@WzZ=!y1`4sh+VG;wP@yBy=E=sJ?gc#N0VcC zG^ALo%BJ3RpFkp_TK@zQ7aO~yD_(f`>+2BWz(wafguCdGpn#rz|E7J#oAV<{DJjI` zwzKkpoBay6y{Q*B7l(ZyW)lfg1xFR0sq>@1X(UMm&6!}@+TL7bxRtQ}b~V84Wyva=>o@?o*BeJ7A0n9cr6y5+jJwhSK)kn;z^-SXrTu5$ekYS@+~i#hZu==9 zi6i~JnDrAV-vvn_8Wy2vMq);gWJ|Cju4&Wyt)hAX-&d^*Zo7q;_XsyQ(96}U>+5gx z+^54nOopdf=rmH(pFmSohx&)6HW1D7wP){V7#Z0&E7#0Fc1eQXp9o64M0q-{#1uEI zucrG-+*S$1Yy1!0Gj%HL62)ry#)E)^2|!<1Q!__VL{XcBT~T)6-tHdeYZRI&(B+@? zze&K(W%%p_Td4OxEuH%>>H-k0>%{L?u52B|T4cTJ>N!Gxq`}%5FfFGi9FJF8w{T5q zq>BFOaC#$mY^*fhb&9xhY-)HxgWsFOXF{RG?Ld{*=_F5b~sBWBH_U92h)q{T*aeh|$BCqleP?lcMD% z3%|Z|A4SZ4=P^nd1+d0H=wnzz8#FxFq8F;5yM&6%gKw7|enpFaeN)P`N6HX7Nkn|r zlY2GYe<(~BK@oHJGB07=UC@X7J;;?!)G2D|*4yr8daedszH(gRSLIa%q~zUER%aw0 z;~R}+K%c9vPoBd($Ji>64}mQ$nX8R>k8>CJ*DJnPhXh2YR5JO0Ez}(+ezx5%sAP|c z3?$77wls$nXR2yl8{b2KN5E-6_Y$Ppo#$NyK8JJJ>>NZ&Y8*yNO)nnP2cfuJoOok( zkB!9xQs~#5hWl_)5j0+-r3xb7t(PksYb0RpBmGfSpPGigKxE+6Z=-F3O&09(UQl<#h+(?nTq`%H;#)9KYvnT zES3K)K4pTE@qv}$xrzLzuhn#z@aqJ9IV6N0h%wK#;73C+OR8U>I#(E0M4`%YQ{#{$ zNztKju`@A!=%B!cPZyy;`JTE;^@{C%X_g_^YO1Q3yq4CifJgCGqMM2a5gvn*F^tRu z#tU=E0G9ZNb>##r`rttB=0s_bs|AEmFlJ~Rlu0jFyei&Z z4lR@Jz0YiS&YrY-wzJ}dNOa1=?{P}}c*Pp>;VgU{*}cQGP0pgn=ef|bIEXO5XxCOr zD?)G0X#=f%RwZ{ayque~wwSO?g$0ze+BcLWoeNa~$RHt7(9!}@mNIH;IB-C^@ORrG zgT*;+o59l1q~zqPg5d@wc7H)AmBzpY+ak-tWoa@l*moe4R{!+ z(Hi-8&(%{1&bk_YzG(aVl$5zi{~PTaqhGNJe7FlV_@Jq4mVn$AfZR3gZ)@kv#W1zP zqwduWIqXzvq|TZGP)c%hKLAjc*h-%Pq6V&aS1!GAMUSP_z}71+2Dk6)>^_-+CRhgw zRC}6?l|?CWaq+T!kW!0MOl3FW%^0^WNzbdT#Si)Q`zp&dBrL2_;)7&mI>%?DH=!d1 zZ{E6xQHO}p=WD%0(!>?AehFl4*rF?tfa>h(LbWG|_^|$)hXEMH(A)R=O|DOC=9R!& zTsX3odE=lFYwihPd98SFVBA)NM;0SPJN{}MD8hpeL{1hK^s5xt<)f|udh`LUYoLF) z!u}3H^RfzII^24|_kG8{%Zv%*$d${-o0}5(6ocU|nYjq^xaz*yj zs~^4lyLOY;=9i4!m{Ig#MKIqZWTbd&cNe%GVKgD(*hECK{`$gxqRa2>NWj`$E{@@# zC-2fCT{e1gsHnzTFQ-J1t1U-Jd7V~FRdhV=Q9by`v`fDE+NG?H%!<;iv9` z(EBnz0inq&J+^YG-s zJ?=mW(m%?RqUSJE?B@;A16=aKS11B@3Mgw1bmIP@4Jy`Sfu8k+CDfsRu~D(9)?y2% zdY4GLwo6AaDwsm86JR^RuBIgxF(Uqpm{S{US8N`+;43&1W?Ttx+9q5BuzF6C4z^N` zUkV$C;p&zpc5UvKMYNQuo6tHwbie{Gs1( z6JHXe3H8a;-zVkiL^Rvl) z_AEE|DyFIFX60$;U!q-^vf-L}Ie`C*nw3X`J+1kx;i0BN(@qq#O$F#$A`(bH^C$zg-Vdn>)&pqOj z`m=GAoLioVS3ZCfqq{RdTqEheqrkHn7Qc9bOmk%v-BRF+E*Y6h(Y(sWX1HFQZxgP( zvl!37eI9t)?pjiV_T|fTva+(-B^VaV;u4;Vj#2v5%!hRfjf%nadJKU3W^H!Fydu68 z{Qh%AQTwD~0%(ho;Yipx3%{OSD7jl?Qc6{i9{F<nL*^=kF`FGA7D_2o{-w^VcR;Wh@0nMLWlrO6DoSVFWU#QfIt) zOiYYPjgN4U@?gh^-WtMoh;&%}!Km5T*_S{#r zqul^)Htm_W6OY8HQ%<>PtCFnfaI<4a~|em%4r8Zun{g7R1V#O5Ou@tC;v3zf=U2&!zz-;yvBNCkIC2i3$J~a`W;`Ut3dZ zvrE{#zqhZBJm7pqq_({LNp^kU<0TzB@Hg8o{cL}Z)dk^_ECSXyHmn#|PP*(tE(!Fi z2RS%sRKQW*{aoS04fjTk+qZ>dIV64!ei#KyAcM-KOP9)ssc1B*m#^v-S@AqR$kdj|Lq-5?c00*DO*J@&KP{D0JLnN5Oz?(4Hk%}+6 zW7GjkDoW0b^C_2@uXs82gTn10=NYOygKo8q8do`$g3nWgY^;p05HLT*MMP{z9X65V z0YuCAy-0e~7x9=6R!JD->zwrU5Z$xE{LH!D zSP$&WaxkZ0@lLPe`l(fbW~M%7}jhxa<3kP}D;*TACBr?22^gi6{Pe>6WRe*Q^ns)3o=WvpfW zG_H_ixE3|lE{HBd$ph4C4ddoRUS*y;;1C1uX}DgSXR$+~5o{w8J)l7Y=~^VXAU8J= zfK1O=mlo^m%KUR7@x#h&Z&J}(nUIjsv)8YCcFH!^6w$NeaDazc|8`X_AtGY0WzcE` zm+>{OI89K&n^wA{g&a7lASsgoE-3nCE9?) zni~1IQjgvyvns%hxU#dhMG3bF;25u2o9_D29P4a>$4{x0;2J`Lz}OyZiEZuf?%pw= zz1lcXqQ1M)gI{SVmMJvC{s1*QxfSky|8hG|gVG8ruf*E#klk)ozKhMAD(#uy-tE`F zjU8$F&;-)=sr#7y?p4Zu$~NOR6hR)WtgJxK}Rh~=|0-iOii+u!oM zdGL=ZKyW8Ub(^jr#*fs`lt1`1Gnf-PawT)s9HP{XAwK*`U|?(OjK#(b^l z$HqNYTVa>xrB1=y@Et(1U%2^^*Z!9WUhFB%-_fGh;`NRGbT8`sh?~ z)~0FiCkfLunYF{fP(^9xdAc>bY_apl++=1lG;~%#CRMR`xDXE?+Csp5*wR!%K%oQH zEkIbn-78ycNgmS=Wn?tGV0b;~P5~EgM2%IoToh>>gdJ=ws=Xp1%4WGcY$vH69n$jb zZL8zg97*TChUNvEGbaQdp`3p2b^csB z=2)*|Vd&*h+TNwNbu_>;ey{ekZL9bA36*VproiyfPc@> z@WG=;z9_>Z#b=VHmASX?R==XZnEAA+M|@jIDot3tcr3r}S`6KC!CUjYr51jb!9EFP z0aH(nz@-#L~6gTgov z@G;3E(;z;jK%}7LvNBokUkqkhDOd9}&)Bvw(9zQe?5t18`p$B)mqkWL)24{uxNKtb z9W{t|s$hsY3aT>8aMY!X7ssmmyFFn_0X;aCioK=)e3~^(Srk{gI<~0j*4n%xLv_&E zqw=fcvyrix@_u)BVqa%5waiz_*0Qdb}r$h7S-Y2KS3)=J z86_;_AGq<>d~xi-n3c;FL#NuS8gPr&xs`mh$g)0tX~_##mxhK0#gmkjrO!F;{s3>! z5vgft42+Cg8oJ3~a_I&u0Oe~_*DHk+A0HeHaQvdyx!x`7(msNC+x9av`wft@a&lx@ zK#JLnxfaTLsv~B7d~le}>Ngc*vUy1lYXNqwrR~W6IhGhu&_V4MqBAP2Fy#;)aKZCN z6{r^^Y^Z*7rf zQKkJw(<{Y2gcaBi>}H-Q_f}b11+L6qfNwv)oCXUw46B9joyz)ZE%+h|Vh8tpbUb&~ z_7}r^!=~GO?V8fPhZm$Q^{g_w1Z$P~eDy^a7Z>Z+mEDcR^z^2{M#XSgA>!@Z^Uy#O zv+_C9PCriEe_U8ZWP+?zB{}ix@M@n3Vdq4{?oJS_sI0)8tTGd^K5AY_N}3#M*L!Uy zws&7t_zx{&LLVX_t2S^zhDLvr^OQT3LPFn*Dygf4k+GJ*V&w1dUyQfz%#=-nnQ;K! zoi0__5;W4k(1jx19F0IbEx3eog~z*c+gO46)+{bbJ!nQRpl`VU>Pfxv zw%S=VU+?EYw~r(z1Np&xiyJ`0GsmmSS6SgNXIjLrKbEK^@Kv_6vpQ@${0LazgSsg% zcU*=&?&=|z?_3pP|2+gkIXPz!61mb`%&9fOxR)UwhYwA12#J4PTx_isJ|zm{$+K>3qYtB=>+_4=0u7`))D{9uANzDT)GBk2~M}pz~-1J@xD&Kl4Z>wO|z|tfS zQ)@KrlK#(!E`(FJ3j?cah77WWIQd3;ZQ4bWHgahb#%cb6j=HqHr;V8|Xv1N529`UO za|2XczDcKmQcdp&wGfZ+z&aRYqX;bJ@VORR+$Z*7sMN0N7u0;UK{*P|tae1Oh{YnM z^JnNWqr&9<2L<#)+dtJ+clUtX;T%_-w}|~j6$_}$JPI&o6V=E!I{+Dy^VCeBxz1^0 zYdYd?5Aq&DU-1#StghRuZ)l>HoE-~bWF6R}jw>JoB%Eu9+&NuYdg7;K5v2JI+gV1> zZqG_mH!EspFlCvRk;U#a$MT)=EHWVauIeXi;;!$D)~wilLcyAA=XLuI#BTI9T7~7- zX!NJ*rk#xhP^J2fiMUmR&XR3ALM_H=s%1#Kn!NGZ-?%wUD!JkJB|M2U@$@}#y?t+h zXdTvrM?Wkb>Ui*A@lotF*WeyVieft=eJjDr{$Pr@5%7}(XdB{Ebh4<9*UeO(htDMRI83o-&N6;}aZNR8fQ}dL#MbHboIc5Q3 zyhy|(XxCyO`P*YK3STS}+T`C?Y+-y{1zKHzMLzYoYSvBinsn zg4U~c9nahQlqZv~U4N?8JW2O(uBL1y?Rdn8toM(vnd{e-2gCZ;iIAJxShbnxs3p z&Jp^&?)Qlg6E~xe$UXEjkiC2N?&oxq-Bt5K3{M-@o0rQFkcSI-jy<=14B!9Ia21a5 zU`nNd)B}DcrI8&4(0{>-JdKdBP%bV4Z4BbIKin)xlEIUJ43zsRz+x!~c?__DQUI^( zFEDv{Byh8snwU^25En$Mt?I)=D+pSZTlTlk%Amj^`2aBevZ=3%k4WY8=f3Tc4I5X; z?`H3*AEg!lY3woc^UThoDfPZ7<~-)beBi@-XLMIch{*zBdEFX$+n`fEo$(pMHK<;X zXEBoT0QZ7|>lb*JUrUGx3%_?fci`y3&zR)G*|0?;Bcr9^MAD3?1GMyre(qr>!$VEm z@YVG5HvAG2L1{^XS0Hq9YVYAb#H5&%$1ME&eoBBU|cQNwWFq-xWJaDk}Eb0?_ zdJrq27)U;bxxvPo#ZSw$Uo#J9U13TbE&)q@^Bm>Pb6ja>ys1HpD6=*k#CxIT85cGm zt2>o6jAoG+O8NcUe`E_SQ<##U@BORu@O=gzRdaLhMbAZ4m%*Q4h10wHbnFCxfY5@h zsI?J;P40^o0Kom;*(6=kx$H9&>DzU)!sJLW;sNm%RDSPN!NSJP6vJDrW_IxK;Y$GZ z5{6z$j@yjy{Y~@inRVF!*U(Gk%3i3MjE|3VZ;wx-IskiVhpu6++u?J%;e;Z|#eb@1 zt=w%mJ-N_G8Z!ivNe^+7dD6^44a#{3wPB?j7%wknpAG)9drDO!ojDR!9^QD9E9kZg zG{GKpiU)_|hO^;KwA^kJk8^P~y)hAc_U?GR&P(s7Y2LdVG&1UBhqdfIPg0U^ez>1| z>icUcryKuWmZ5SucCw`4ZUP}Rug9gkId=BcCkcJ?mlG55eg@Y~BAQ)pulORwX)nvV zxF~P$lM$7u9;SynoGl~u)tTkDg(VuJUk#~0<6|i{Vyb3olKp9Q5IO6PQQpZPEwn%G zGv*NWltHWmEvtFS+lN0S@V99BGS!gY0j1QW{0`lfm_^|3uWs=w{A`9|X6B1<6oA>0 z&q4Pu6nCL-|6G4}7un}f1Pc!WQr9g$8GuUrJ+q?!D-Pz?Xr$uviSk8MA!TZL>hl_M zYA!Xr$}u$!Ra*BG#($VyI1dt7qb}Y-5>o&9AT#nLccrplBZ3wes6l@qE}=%HeolMP z*R`-=*qAbMw1HrJ)oDjOqTt3zwSs0m&s_Ojb4yFjM7M(UJ&AZXU%cA+BZ~cCNUV zoq|w!d367^usacZqY`|=4p47!UA#v@!P1NTkAU#IKOWzd!C^uXFq)0+`t@^{4NXis z+3i1PHY4T1@f;+w+}DU@_v{d>@~^?D`b))D&+`?5J?Qc2vv&dd%-&i~f>+kp*B@&c zz;(T#1dWf@=-}qk*mIgcFpen@AX*LbszB8ut?4wgRz~?S%zK`MFDC)d2?ZS$lyJ(P z`Wt?~KBHT0cS&cI+IHR%HotNv@nn9Cj$l>TTKGV=gMIVqG-nFd3ypc2JNh2EefshgUqrL-9YSWwJ@VdGpKf z`qx3%JjpTLY7suKieQ$v5BuX)jEYR|j_8pH7`kzs6Y;JO$jm7H7+%w8si@phya=5& z6I_+7-+U&G(~agy%0Kqn#a7dD4_0Cywh)yC(r#!C7Qb#TZXCfLWM}{75n#OLgb53q zEp0_MS{UX;Eoz?Bqvz~M`9Vl#MDir|G~5D;e>XupVY{6n+4a7k%ou4ZzWL_(-9_fp z(5G=t3Z6KzFf==L9%eAujVX^w9#2|4*izM2miWYK*C5$yO8GjYSsZ(oQIuuAATXi; z)B@0@U}4BtH&CINaD_FC;=KQubv=m)Xn1~irmt!J%tVT8LVLW9J;1;EVHY)d_qbWx1fXOHTS@==NnA|qg#$MGxk6GCtSBVo0O&MWcT6CohN;T#e2t_>BgHX$f67bTGZL13fz}UM|g}28|L%m z^dV2Ft*gr(q7T4J7ElwY>R*2!h6GJFd3tAvw0K^8$rd`(`BMi9=n`gfj{hBQ#t76H z8lD8(L;cRiVxY#=wm{`r1ls}wcB%j3O}Dp;_lZ=j&j6AscOHEN@0ysHcEQW*O)R-f zz8D1ZzyXy)vIImYD_9)m3vQ~Yk1i-E&}>|r?tPgR{ZrJ9p2g5Gz^%(0Kb($pkuI}s zWzu}a-JUWlHsslQbRKh!5!98_PaTm|!LP!4c|vqx&E{72&74=PF|f3}0(3xq;A$>} zCisy0vINn=Z@T7mGfzX@Q++1{$f~QV-aE4Pu`G0b5^_?<_d&udB3ssH+Xqc8INQev znEm58par;LW0LIcQl~ikaGsT zAw&%|4}Ggv!419pe#Um#R1s1O5ll*rnwd{r{L$~X{+mOQ(0Hzw-n!3p_%c*=h;ysTxM0SDLrcw(RPm8#4U(^zcof3e~S@w4sE`R>WCr}FK?Xrh#Z%O#}BaX5AkHRlH@qlnyEe^|~Y`nK&q%;(39K=wF* zq|;AM64>;NFVLb>A3tuY`xcO0qL~EGjcNwaIAv3uev$N!W7q0&P#oR=D4PGdoc`m8 znsKfc%5|$g5XR_o9bKjb;LYP|oRcBkEkzf)?*Hp>{k+}5CNe6rHkSu*ZUs?Nuw_!8 z-?Uu9OLheDuGK)rIW3*!LVB5h#lQbEGX9SvOcoDDOkjGi^;&M)4{Yx%R5f?)%cM#l zp4-|}uL{Mo-oK!vI&I&{Y0SaL4Z$tR z7@?wk!iv|p>V-r|NqWao#e@MR?YQ;b+J?0%b)GEsFjD;*CrFneU`s)HExNZC#F1-nt8!blgBE z1B0-ip1yFcV&)CVr3eJV7MLsQz==cw8l1nPnfBAtzAX_)*f)@A{xwot2236b-Q64= z>R2!7}a~(4SQ^)N$z1w}=O+a3XIVdL17kdlJrjsbfKDq5HuS|RE|SXA^DD3Q69L%Bg9qprRe zaej-67VX!Xl_|+CT6sA^aw>7rw%Rn8N|hJr#qNmWDvBC>s{@BOl*$^qCaqpNmYO+* z1TW9YJh2kZ_d}1I5IFfbG0`UMvs1-2BO}dS%I)@bp{NU`;r2> z&d$!Hh?A zXvJqq@{IUyWo#~7zY#bw^~rc}X~0)RLc-x=G%LAPjal(}-qyyzhU3^t4oItGWhOPZgck;H<>lG7lyEzfE0MqaDLjX=@#o1$USdY{fT*}^dlZKBLpWhI zX=D>F;i=Bcz`?&hJP{xX)a0i_m2UkpfbJZTlo?2^uOcV{Lu6D|=vdf~a#?YH7pAbn z+nFvED_uP30quW}aIQh|>Z^hR>t7Gkkk9Qy8p%2+c;z%)^rrM`VEuLo9i5Rg&MO0F z4Ztzi~{9BB<)fTK|83vm)kEE8T@mo{*L-F`W$QIB*_%0x`4s2HUU` zvyCP-y4A`I`xwN9%tFQ%tVqCqrk1)`abhtvEiihbHzaA8c~11OT!inFX;LM1S+mP1 z_W0=0#hM%{cln)p&Ql(C{UhY+rOC>=N*sT0lg5VZ{J6&vFkd}&QBO}$POhdagc`EQ;6DLKy3U;Iw3h^S z1R|c0j4@(mtz$3$H3I|FYOj-EC$ejQd=i3;KV9zdpXt`~T>PN{A#nL$AtWpYchj!_ zi=C+Hn~2T%dgfxI*nSrQVc`d(e(NE&OgNPJD#zohqhWsVaU00hPU3#tt+4as#S5_( zC6-kU-9=afa#+wO_CDxF!j)5XG#DG89A_e>eBk%a&^9QLU$iIJc#Km)A|HrnqzM%R zTayxDd;nQ!@rIPQuR0Qdh`TmbPsOe1+cg&3I(lR93r9tHrOS*%U)qdwhcndjA24zr zF_(DPlYY}+-_&w!{c;Ce6f-Z=yW*-5Ga`{XJm>w~&QgbjPKF#KgvdjKTKhsC|K%;_ zGsyVAj>(~pP83E_&rGp^z)xTYOlm+!$4$Al%;1hqZ*=qM+t7rY^3UAJH z3}6gD6l;^l-%d&mO@06X#^_j^aoXFhLH|Gf)IXY;|K$UwkmO6(@j?!GP|`=l-}bum zGppPA+vGg7SZ2})wL?1&;yUoyGXX^Lzj@G06~Vc67ZWrLO(IKN&ORY&L;o72V+($G vv#kI3*1~STf(0uaYdBux@O){P^7+{bPr4Vv$Kd}UQe4uwqF$nEeeb^jYbrJN literal 20345 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 diff --git a/doc/salome/gui/GEOM/images/mtransf3.png b/doc/salome/gui/GEOM/images/mtransf3.png index 628d8b0a634fd410686589d102839957e8123888..8211c1cc30bca8f71fd4f16e285726b7f4619d1e 100755 GIT binary patch literal 19866 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 U{_qy~n`>~AVsfIz!XLi;Uw%{78~^|S literal 13844 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 LELkXS^6`HG?=De0 diff --git a/doc/salome/gui/GEOM/images/mtransf4.png b/doc/salome/gui/GEOM/images/mtransf4.png index cbe904444dcf774e376fd082cc7662371e33b5ab..f401af3aaa44aefc907ac71a64e919d33de9f84a 100755 GIT binary patch literal 11361 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 Jl*+vc{4dF?0F3|u diff --git a/doc/salome/gui/GEOM/images/neo-basicprop.png b/doc/salome/gui/GEOM/images/neo-basicprop.png index 2a9d7ca2a908d5410c921653d07fb5f87fc65d6d..e36d937f3061296781f6202d02eebf4c0f9ab385 100755 GIT binary patch literal 16322 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 diff --git a/doc/salome/gui/GEOM/images/neo-scetcher1.png b/doc/salome/gui/GEOM/images/neo-scetcher1.png index 7130e8b0827131d778bceb29f058d6fba5630f7e..23ec1f3e678a03d07daa600ce187b1f71bea2086 100755 GIT binary patch literal 23570 zcmb@ubySq^x;G9gqJkhI(x9LqUD5~!f=YLXba$tMAV`Twm(r37(hbrnHFS5^(DA#* z@80|Dea_zRdf)Xsf4G)2Ff;c&&wXFlr!M@ZB}K1aBe{l#hIaks3t?F_H1tgPw|eC= zJmVd_^d1fE4%$oMC-P2lt7Fb?x8|mrwz@1L7~kHwAk14Ky(=pG?arM`_c5<3y}Nlw z`Ci8JEv3gFizeS*p{K{g_ImS5jbS((y_kl zAN>4YIJX#UTP#ZY`T5B=T(F|A{#t&Qib|FZ>+#o|zx`KKI{cv>x3I7Qb^INtp@ ziz=Zfm-tOiu6^jL!n-}x`N&a;REubbRJo+7Qr~n$(Nyb78A3!WlHXTo z2d&VqnN1q{SeSoRz(2T~Y~Y@I)$wRW|AHEMRZTYYh}JI+r1gNgs%6wpODRHXY)<8l@ub_L#r zi#3;4g|5b)uN-`SIL{rde?Hi|weeo4#<2QLG2w1Cx<%Cml4x@363%nS+?>6$?&3!e zEwPuJzk3Lgb>)L38`66UPwz_sEv5Gpvi51$@?7B!f1*|p=je>@~DAhAkF!{ z!@<5|crmeE;mlO;mF+Tg*uI`IbKDaR zmN9!iqPO$JZ%N&mwDV}W%)@5M)j^3s|E_&`$kdQVFkcOxWU7`Dg6mC4su!L@%=wL` zu$!bsG@&OGj_3E5ysuxAjb_I@7euaCMR2CnEl`?BL)le@FbzhbF!n ziObA%#?BwrE>MA z;FDDHaIRREGTR?py%IGz7W~+0lk1Abh7*Tlu9m)ekrDPqzM6?@uV=*Cg*<8c1d0_N zN}RSQBVX?`9){??bJ6d$9qG1rDd=-x`k_=Mk!ez|qNOn)#f;k@6t&EkY> z>9WS5n+isEiVSijB}u;ki!8aKEIU#CsA||VD%)$Xkl7KDf~&25T%U`uq;SaVWN_=e z93J^ChBx+S9SP67mClp!M68XJ7Non$kU}X@e7m>81YZKTB{sFCgByKf>?KXZ1!AX} zAw0yA?Xg^2V=(u2lUHZI{`6{t%ucC(rMR@L3Go{_!`6++&cm)-@eB-f)`5d?Al}Nv z?8xieGQ`SU`^IzhnI;G6vUD!w za=X`_Uy3tum8IHarrz8(mf1;Yea=!|v*qt9>)7O>3nd4NuYgsT>%o(q3S z$J_bsk!M517JdYMMDI+G)1?C*=KSJa>k5nED=u1VC5m%#n0GiRHP5jJ$I3L$!qYL zXH4We{e>GmNTszfMzrEaEgR*%WJ~_;$vkhLW8;IeS)@^$4p z+g`!UfXjl5LXm{5ZKh>1^NP}Mu5hugC{r9I6-|4Q62rN!wYI*3?S;Kj*Z$YV%iNWp z%!(76vs`HbBP@@EON>@VKNS{EdHWzkSol}>XxWMsJo;K<&EW%hqyG0dAv`>`hw(@F zczDlx{ay(RV|QHmzG0>MZ2uYjUfhUcqa+LDyHW4 z7Fwo9_+uNiR8+ocUv9!%$VsDc2;HC0y7dQ{T%$*Q0LCAz;`QhKrT{80OKGuDrzd71d**iSMyR(gT7HxP zYcyQ-*5&m$;gN{pdc9UwI5+=8HAkE8IPZy`fkFQ2n*Pb_6H0nUtsgcRXiXuMhKt=_ z334N8gWRpMQ7adtAeK?dQLLz}WP6>-8raFw*4(VUXIpT1cD#Z5?B%Syc^^WpFZL?~ zDXFP=ybnHMdYq$Ct{wRW24ZVEZDD*0`}FeFtLfQqVHLYQV!O-zZEI!go|7Je!$`bz zc1bqFPBNGM^^Q2gg^!W3qIPx<$H&LBRSMGT>>0-PxzG1#nu5t^h87Yq?mT)FU+aiV zV{J&4E|o}QBYm&l7ngdj_ZFWWS)%1n8ilp{JRbTWS?9G`#C|jB7?2YLibN&xgv|PS8i?< zSyelfsmBx?G`>t~Mbhf(f&C_PmHXq=Cd#+Y&dzd+P~UU_xA-Or$*a*eYYSvSX47XO z$=~sxscclXn*CaJerW$t-b5nxNA}DKB4Wj97;j_2vT{RzS2*vWeUBV$>(eb%^$!gE zrN?f4yjHBs9!y@LyL5iAI&EsV8*tQ%V$&Mf1*)B9clH^}apvC)Z4(Ld&NPoL zLJp&sj|C5z(cHaT%c;tn*l*IH$BsTZH>WUfmlPREc>n%=&djVNebbfN_Y`_P)L~by zT$xOZwU|C4&CPQlc05ucH&kwDXy`X_#tZfR6ceGEd}zviV;(u_-5r>Dim(p=dbe z<-@l|OBH!tZhM?^&HTd2*1marbX=ebq0va1d3fUV0-VXZUssVsqV=(Cx|b1}u1uZ> z^`&Yfy*)id53O!!c_8&Gi;#^gmJd>dXOrgE{aTxfF`{`7Q&J6G41~iI6F2-#t}p!Z z$3NMqKMzPur0h+TU?>>Jz`z*%fmkV0-Wy=|`Ru3e0HvjET(xmA>UToMuyhQ!W#_VI zo+s9`z2n0_;gPzTs88 zmFv^o4GgfF{P`b=hgQDfeL+v5I5<+AP6=1GeDHgrv6Q~}97^+lD3=mX?*Bhk*W`%= zkE+>}S@t|{7fg-j`R62Y!RVne<#(RU3GkFVtX+EpdrwnSGk1wkc}_N6_i@UefX6Zm zFI{x5MtKDPyhbjEsSJ^`i1>Qmqk?~C1%k1QXixF~6g$WFC%(&Dlhd?6zvle#lx zR&=zO>vz}bVMbiyy{S=j7i7OuZ;|;3JEp0Qj!t;ugPrZ|=FZMED5JT?9v&V)Ehom2 zM}6Pq#G_c>Zf;sVefG4}vfUj@Y-y{|dDp_I^Fq8Z&Ii5DINs5orQ2w-a&lK!iC#ca zfoJb!DBVbOJGuJf#}9avvOxZ5sM57qZH;He#d*99n}o+N!EtvsEJO%h`)GG*c6Rm# z9$xKOs3XFCruF&PB;CoAk2VWLR;q<21R>&X?x!pEvF>{wX-8T-0y6~aM&$UJF z>~sln&=_Fft-bs1{rdu|siz@1>3*~tAMq5HKH8WJ<)@A$K8S@)N7;D(c2cl5kc9IC zVS?w|l#~?q9q~Ax(8WcgBFl-+P7QuyE;phO3DwX)-ao>ivOY8fqt3|-F$O$;#Q0+oj#DG#-Z1I!xx+Qsh-}w848jn_=O)MYf&8rH*enD+}q2w zrp!@fpb2Z~*UIWwO*@D3j%HCPHKeso{>@Sv<#`7qo~NJh0c>ZmaADALnoJp zHaRonJ(MjJ^jR!KbbtBF_!GCIrF4Cq*3r>Xo4ftxj+O)28gj;u3_IgqLpQ%gNLZfc zzSF_2?z&d^X2wM!?~5j*i#?u0x$ZkTdHG+C6CRjvs;h+%8jj?Y7NHW#c3H!>O$f^&)Z$CWEEYqFz#ufac+Z61!HAk4@7V)&zkS<%b@I!x=k`hlf z)JBamyVpbc`nkpc8geJX@k<}04t0#j2gWtZ^8?J<+S+&f*J(?nSVxL24QuN#a<@~( zB5igTW#GtN#l@wi67bTXT(b$U&YvVmh&?6qzKkK?!B(?(mD5m_ESzb{mi9W~{7B;D+eo{DJ$@xz7oh>5X(RwC` zTZcXNJHbfF-mq!u`P<{A(Nf#^<*ts7xiQb`wvDDUiZ^oUl3Rm6n+}fEJh|oL7f8uD zRA1kxl705y?v{P7mB*-CqaaVjOj8Jl-Jd*|m*vpqwEwqXEn3;n|EUPOA%;n`B zHJp<=TNzzVqXAK;T>Hm;>g8}e{X4dia6j6e>he6|u&hKzn5t@OQb-AI-TO_Q z{)JSXkA@mLM|A{>1xcg6_-cIE;)Y+VicT3 zwL-w+x&!ShP#dmYyQchI8$EWKduyr)7lp9d_Jdwau9C%YnYTg(@(&4N>5V8Z<_2JE zS6)dPi_f*wCnvSldZMJh7DVwV1`xN|#EkUM(PK_UP}*jB~AVy#)mYf1@7lvD~<5uKr`3 zS^>A276)=j!ziMKtzNJ??v{94jFrnMD=Vk1_t>j4-Udj25%c<`FQOq7?J>M8|re!5)10^uqEq`n&i>TrAzd4!iF^I zCKo$lNndo$B&aFwVw^xqm|1on2z_>X4+V)_0~sA)$NfA z0%r#^3PrCARW-T*z&xO%L%$;=l<1F7oBw*|vPC6Q5r;zHMPGLYUyhW*T4_D8qP4ZP z{rY>q=7u|*Oobvl2oqt2UXeK1hR*;9RBSbpq8%I_{$|J^4A9j01<0N)TKpCPf%RrJ z=8~Nlt&Od1OKWQq02sUV(P&9-N1g52mV<+XkBNy=*497Ns0q{S>YjcG2mofqiN+9- zXBDoXkPd~JoX<|XErJP~DOXRHQl6^0_YSY9eBoFc6%}C^AaKsJZx2G^jtT&6 zn{nCL*!W!usWIb{1LTfGXmvp~gd)ofKSI-VUE?$m;*S0J@dk+siHyAZuZ)SHBwcOM z{QP{P{cavu)SXvs*y1f*->teR0(;pa=EA*@j*A)Ja(`AE5CKASr zBu40kPP;;4yWaWZFBgPFrf_R|KD&FLDw5n$R6f;GYQNc!UPx#Hzh9Gm*AX;<^_>^e zOs=NH$+{x0Ny`D_e}QN!PU(#&a}@zOU%q^)%Bot-akfMOkCegNH zr&$gn2l+fN!+Qp1)p{?3RDhBvgm?Y0#`pXd@lZ#{+jR4b>drWc;K}AQF7shwYiqXm zxRmpaq?VUZR8D7ar{K}>8L$Y{FJCn6{t`pUo%jPcSRaH1bRJL^p1sG>2W5fqC#5bW zS=RTPcx)M$t5>>E6%ELI6f5lL!v&$Um#cBgN-7QxT!0uqfByV2H1vsd-W@E?d{@-3TJ0$fx};6!XbV%CPug5oXV$FBsBr4M;@zy-K1CY#YQrK7{4AE-~(pn zMw7zran}tzPR47Vo}Qot0HRNG+!!}IwPN`C_3N)nvV}~;<;3)xkJw{!C@u6wr*V9* zQ#JyX%*3Y8>Td=1Eu-x3MRLk2(HO zX3TAxto3G#?ZBpFi;Mcrrp$O7VBf#im`ZiEaO*SnACeb8_z`)F{$bJfs%QU}9{(4$ zews!1Up%=@!bCN*X?gF!FOxaG`fxth_;(Tp5PB*ut|D<2xIJn`X0N-yJTV*n9-8pT z^}^)Bg6Q8c6x1Ie=rVw!YR@TBdYR%!O%S|E+q1rec%|}}9I*Ay-=0!rRoCXp03~6^ zEg#dIM`pN+zUGR(x{mY#GO&({~LI$3UG?{(N1?||(BrKU8E;P&kcn|*=l z^x0W2!)PiV?x)g^WHyuLRe${m`y}czZYBV_Yw3wR)?VlC2c94b=nnrh)}Lp1@SrBR zvPa)kcSx-bbw)1tO+G1H&Cw4GCf2ZU*_rQ9Io;^bMWl*817&4(xG-xN?^8M8(m(H; zarrv^!k9ghfT!>WG=Dg7uyHr>!a1^;ce&G13Z2pmxa;cPm;`ZHS-wU}a6CG0Ji)kj z9k7YA_c=MBq8AGPJ7B1T^`FTsr?iyta>$-(XbgwCG%xNf@YM?-r}#uhMw*u4n3WP4 zSKt2j=vn-cnB=Q8Q$+3@jsXh`iOe1EDc7t^GIP|N$@|8w!-d51d22_ZT>qVY zXQ`ieWyzmmC>W>W8U!>g&6-=}Nqwj~}D0aA)TgjmO22MKH=p zzg+8Y@~A}C=b$G{Jr;7~ zu}K93o6;W5$9Vn^DymrCrDQLz;6Ucz_xYl1B}IcD@)Pf^re4|GJDEf?4AKgh`vnD~U->GhR?99s#~@d{oj)Zs;HV{EB2 zFO~!DdV_XpwcJOiT4Z+hF$fqzI0mq?9(E3nvGw=;CQQBQpFZ6zjwIksqM<|Dr` zUa3;xAQ7|z@>M!~IkTaBj5mM7ASC@$Gc(UTJOn{*B!t4SI={05zK@Voe@jZDsyg1|S8|SI)=(}oi#Cn!O_x$C?LsuM-Jiy( zzZ5R#?m5k9zV)er(Mccu_1D)RU$EK^w39GxY-~u$%ipSX_p;~k>3iY6is+OZ?i}fz zI2nmWA(K?skaY{DYP%&_p!2VcUObqZni75|ijo%=TF>)8$NTeNUB?%PW4uvuDp`2! zrV&Di=NR>A|IEk|e=?-nQnzzfPrm%|2$%Uw2{HSu?U?qJ*@_)HHntz5w31&Glj%Zz z(@s^H_1}_T9P<3KT&sR5D5pxOZVh$2AA}YEiCbNOVF)YMz*M=V2t5KZ ziO3kJDE8g-vsy3PVfHw$*+3oj_mmz{x}qU~Lm1p==jYk2>weKMfDHmlM1f61>#H`= zrogJnbTUvd-LI3#@660|?A87NE)(<6yl&Xubg0Cb8g#t&c>dy6G?S4crgPP^JQMHC zj0``0OO`B~1gL}xsD;UUhhzYQ_=9>%y{PZqdq*uAqW$m46|Chiq9z@^U|F$sc|W); z68+-kO(;&F@JH`VlWp7V_yq?W>@NNe_wE17)ByMs^~FXIBqXz#a}|3evg6YBC)fHJT*(6q!J=zrWu*-|ORIQWd%K;hb5{Sd z%lh2h^OrCEN7@p){?M4h+-JhGHsB8||0sLp;p(EnhdN&GamWYr^|8D!U)P!O4Fc~d zOT_*k1cmK(fNR!Dh5lF=siyF(EZ!hnce2n@-=wFge!edYejGFl+qwEVTT1OKG9WiV`+mA;3-`{3Z{Z8j07k;WzqW$$O_m%Lk$0Pz7KxK`F z^6!Hne;>s4xmL@vC7JjmwBdzd%#oI1 zp`j>0>Zv#IR77QA;BU5M(x14%q@+>kL*Dyx_|AG+reu@zaLoPyi2cIY*|nnbo!`s4 zC*n{thb9mZ9jogU@{hewLvv8?bbyT~|E2o|Ug!tT1EmLGQ_4So^8X~Q|0iOBy|cEo z0GNY$hcClX`XUlqEy<@TuU2Adpi&q$ZEaWpLlAZt5q`~c4btgnVCyXn7n+uS+}_@% z;^B$<{+$&Ri77=5Vq#)-$2I%*INpNx-M&8g3;dS{)Dp*XSory4?*~Nosg+YvMPmH{ z9?zg>lq8g!uEiAYUf*bIyiQ6-Prt1#H5L{YR{!Zfl#0+8c5!K5Q8_E-l-#N#li?zB zHJa}?@$tt<6mmf16QvQXv-H>@6+D>qwwVKo?4E!?T=SDqluVvhT{O$NUa=zySQek; zX6s5`HBL>H`|;vLo)DCAl&>lo$0L*5xg)Cd?c29MDtek!qNJoG4hU2zScR4@8Lw0K z?&`bu{KI7+zUv>M@^07u3mpXgCsEl2x!eGH^VRFu=iod$N+j|-GDCAiVJ2`6VEq?s zW?zOm+qEX&TNh7p-Cu9_uy6<(V1QoxHxLFUBicVSa>t*XW(TYkv3trv%LI6(eZHjFw+pXaY#Jo25&@NuanM4UsOiV$*;?TfIL^)(=GWAJ*#A{cQVYC0vQR8kr ze=SgZw|4aR3{IK-hKPXy4IDBmcJ};H_QLS^_>Ofchp>bMNi#D>w7r|I@yoaHN^cRf zXMhh0S0hQkEdp(JVWFH{*2l*uTdSA?C=@VXG_dY;kjwqz(d?LZ?65>8k#leoX1MiB8V%FdM*9eP^!VmaL%I>;6oIY|YAHP7o|mtO#8jRVP-5 z@ZXG%s`vEtERL3P>`!s} zt-GMOOi$~e0V`P~=nHtB$6ROO7?|?m!-s?Qkqwi|>#)k_z9cf}1mjB!oiAFA|EJvB zTjlNwFMsjs6%{ixPF8VvaYQ8s&w9Hn$ZAktb@teMn|u5QBgxX|ZnLPgC!X&b&UeH& z5h$tGenPZP)FLuus1uy`h}Vgoag{Xe30}L`tLp>F5q|z0ZUAIIbE$fpxGKnX1sMoy^7teN( zS5V#fGJaw=ON&?mWXtxt?h=p-a2n^T*!DvsA{3|cJrCQo{K#&-R5l_)c?b{`K@(3D zj0a)`Wu=6Fd!3#7hYuFvc6+v=x;@H>6iZiYZfnc3J_g+M<%>-weToTtrj5(_>3(Ty zFH7dC)4n3! z*S696;3T#9UMB_ZCG&cOs2MOkasRBwPkNZmqxj+#u^78J`>vaM^}t16!@g z0-X#I;ozAc3)f9YR~H>(2n;!fQri@_Sv18Vlj2Yw9~c;DGE%jinRSpDd|n^C#=j`^ zMF`H=eCbeEehHEZZ!#=hMt`sa~!PKKHM>#r{DR9R|M_Fu~gsP%?*{_*r?p601J>& zZr(foVXDA40psfODnY{1uBj6OiD3R{6Jj4s$+6qZ*#O2o9#4D{JTJF=bk!1%s z!9*wv-u)#^O#Iuo=a0S}WuiD0_>$nbEs+jHc7K$H1~#im`Io7!oQ?!%9A(qzB9@kx zgs%r>%EbeQV5kquhWd`IcE<}9^M5TO-}(ENJcTU4TCm#aMHQf+pipy}y(!`$?3&?X%MBNIAhk5&QIA3Q zLdh-M^McS<=(F?6oITGD4I6(2-o3~34(|MIX7%RXrCxC7Anoo|PQAg*{R(J3C8*J~ zj1L1{MaJtv$$w*;TpGDh+5Y9N_oB0?l;Gh(n5wxHtj6cHSL?UTk2Z$#{T0r(XRK$q zm-eq3^kv9YY@T4K{b-1x*v_|qYnjK#E1iWK zmBE=M($n!tNwMBk{?dH? zsJ|l?t~$4tXMLIdih3{PO(fwqr@8~`pY8toOjtzZ!VONw51^ao+GO>=sy;hKE2$h= zBYWiXa~KJ@<}=`o<(smSIcmiQ%^&Y#6SKc-Zhq1D=wUG2NuA;m&|UA{yEnPErlC*H z8C_fj{0w0Ws1yJN^9w+gBKrTP9K^g@;kBK|=66{AQc^O=xfW|#H3fnu1{osjzhr>q z`#fB3@Q;I9DH zgquIV-dx_+U+UDNbGst{&G&9rxC>FdrUpR+Qb3h-{-sKU$*f&4ANhG7Ww5rIvgd{E z1XrQlV`{oDt-n9}`Kdeo5ec+CD?3+aM!eeN+vR+iP@ z?+Vc-2}=Jo{tsOJ|2ic3&!uJOpvw*P=UqE|z!Fz?jHFZ3Qp--WLZJ5%{4KxvPw~os ze&v5iWByci=kTez{Sv^-XA;ctzy5dcuMFsac*(<%^STXij1w%92GS&Bhr2a^NSQb> zX5f(VJU&Ttx{OP_`i*AU3|w8vPx{q5-^;+E6cmS_hzN&l3L}vQe}y*TC$l8|K-oUV z#kHqN#DayI`yLEU>SWP;%ZV!XUNIriy_P2OJX7b8r$po&!``IqP;^*?MO7hL)Ua$C@H`n$}~Aa(5$BV){+o%0oTH6LQ-A zo+CR@93{ZGp;C?*Z~uRpvv;Z1L0qv|WcKS*mEO1$(x3C?Cfi4dm!gv6CfQPng4rtN zjk-vN3}I|QLn&X&@96LlYDh2b`l)A+@^b1F3^6~J5@u$G=g@y%GxBNCyHKOYu5hHD zQY7p7a;~`g)V#8vkc@0~;2R!B_zP!3eQDl{EoNMh5H2a$kFP1XK9*x6c&_u}nd6h? zFL$5TD<*xp$ve?NEFZ-h+aCOWsKjwltup8O7{)j6>FH^cg)JoVJ}qtf_%P#-C6e&w zL*~{mb(f-Q^|)T|v0F$xt5t%)C5zcmli^kM=5qK| ze1mqU=*mrYSM-mcwpkUkAhKy-V~cgTlUV%SbzcT8x3Y+rK`Ho)^G@T*el@MXze;^H z$K1rb%$PhbeG(asQL~2d_aa$}IYc~0cLW6m#XaoU&pJ+dowxPkNBT58spcS+f-1Fu z8i8b^;0&4*_)SB{9h&1O$FYUE2t9UQ5jg`6P0iph*RWh;M@Om9d~w#A`8Tj<8c7M` z&28^kR-Y1h9*+<*s@!bp`&Q{ZToz8w@a}GD=q%E>mH1MdM$(7J z$AFdE63-53i_FIA_A#p$)`}v4s$lQqTZ6wMz-{N;X7w&|Jo; z2*spO#;wUzIQ9!z(PGYkYg44phjg^gG7|33)!<)Wbbin91=x%F+d{Vn8&$2L7$`TX zd*&b#nLzg36(y~~DURZ|WQG9VH#zrCbC0=jB~%uhQscAB{Fa<2NJrWbp7_=2KQ|*K zIA6MuKz--V7fJh=&ND-58cc^Euzkap6c;iO*rPvNhMMZS9reJ;R z4o;7`KeBNg*BI~ejR>QMjQ zs|n3^@^AdICDykJ-3N0BP1AGDKA4=p5sRe) z?Xims-{}#OnvU)&C1s+o`dZsCMyUvLI*xGZcO@odsJ?Am%0Uj37~&%+wN~G~Q>|Al z@#x|eELThx7W^)uiOBn6RK&d78fXYf<@n6`EQx5zQ;pG1N}1DxnUF%wfwj4ZNtr#x z6CPp~n#_Q=-_dAn5C|v(4jPv-*cCq zFmZYPXy=kfa^^6||ZbGg!aZ*s=a5gMX(48b~=v~e)-v*u62b)uI2gplzzurCB zNjy*S@x%h8AgdoO2bTX8TwKGB7*1>=o;TqPO8M3^A|U#Y9@%1SVTWM$w}jC~bK2fU zIjX2U*<7TS0mNXDjRCue&7EUO>YKEpM)3YUo97R*w7&Y}N`1%g#A zGa>vI^CjD@Y1t~axb8=cSvFN=pIaJMU^iD;?pv=g73VvQsY)gYv;ZAZKj%x_7%mNP zpIFaA8i}W$(HDa$K5Ex10eR2zr!bT7NB~6Xz(iIGHUI0e9gQHlEJEgLn!5>=UR!l= zE!3ARx=BiIvHAx12Hb<`L&AjgFJIoAc%58Ux7{+5HXkhseI`Vv(_$)yW;9;m99@n^ z%4s5R;Nh4jqmUvNnHnB(y4!2)<#ncMapaF*n)@-+L%uwvmp$dxyQUa2V@9>*XJS0 zt*tG))xps7lLaBPitSbg7*Xo^X)FgSkf6u+#emL&*){w z?9)$$=Jqu2@$=KefXwEFka_v$8kC?YU1qmi?Dk!+yPph*M`3(D&s@VZb7a6i70}R)(-#vy z$>#1`C9s%h4yDSawkE<_U+t!h)U*U(-4~1qx?7RSel%gV&<9!X^AZ%!hRq5=;H!Mew zDFi^4xVShMQ@LtU`@cTtpHR-s+}zv&Vs*~R!a*GWTY!#Q|C70i(L``SXI56k=9k)C zjC=8uOF+;BmKZo@u>hN*dR<5WIzWFKTZ_a~SgM*5AE`b**$h#&mJKvb-+ywg8Ddgl)0G zi2@g5)N(bj%JCssVgd)<-hT&FhN6-{v7BueAag7sE{@$Lc+3ci&>1PuBe_z2sD2%Q zJlf!JqJler(#(JjT2jB|<0-5#sNvrvc^XC|0RtWYr{0(D%=cs}Fa#&^Xr^E5YiPD?vF%aqG*Cb`s~Zzx9s{_#;1O~~ z6nG7NHZ|b2^|5kW7)yW|1YuZSl#r)jJfD50wP)bZoR!w(C&>1Ku5OkjO2-Lz?lD(8 z!?_RPw{G8NhopdgCc+|LmpxWJ{Y=~dpVIS$4Kk;Gsi8iQOK{qYHgukDp>1VUl9jCk z45NG$nd+ogN$lM90<`%Sd?`Vh74}j)g@;Kdh+J~V-HLhwX~4Ru!&&M)~=;+^yBGv-ES?}acUnu!v)Fu{E(>}tkO3up^$e2f(?BrW}(T^&S zXWB+n#_+-P_dv#JqbDkA5j{P2)TP`Tl!ZTx!z@Nqijjv-HZL|hPMNxFJ6QG|EiJsj z)|}e?tAhJ+*}f9%MC9t2|eLAOe}78&UaKCrF9St*tsM{xCWy54j($#TP7hyqJJh_|DEa6?xl>$gzyuzV z9!>Mj=fb0RbnwIcE0J`9N7Y?RV_Dp{0~$|9$8f_*;LN>EkfJ*@6g&2wHK=xgF`d48@4@I(+l@t_0&)o%|`QqG# zZ4Sf4a(3VRvi6qWw(7Ct-MH}>&Na{L&B@w~4`?U4YRZa5mEA znk3_dJQF}1fYcf)jAq3{_N$@chuIK&QgSkS*N_X z>*-61*~(LjimIw4U=ifnLxrpOzKzkL(|sdHN5iS=V{7Is7rXT*kPe&h+<){nLb{!X zqllh#BJm^vhn%mQH;LnsXMdQqn34S$g{l?S1L;<)n;jJBd+UqrA4! z&`zH`d15yF(;sTf*~xIC%q<^q?eamUr6@T^k6_kV=6fJ5@ALELLw0udlJm1;XPAX* z>FBsm%bhOame|fhCx0bo<07|Hvj2iRmh zAA8d!lOJ3IKa5PsBX0Jy-mT}aVHUvbVC6ER3^hAuUqBhRR?ID#vkWuejYQI?npWFQ zVRlPBsVFevGFt{zoLdJtUZGe>W z3JNHwKfW&T>VsHwOGoWDMM`IkOP6j8@qV%lcCX)>X^OVrUzHyAb@c)Zs!r09V^U`%&8vHt$D1s@IoY* z=;ibq;Xn~;P!tsu4(AuSFZl|~dK^AfGLOv2_&)uee_5l7!VD)ZDe1zoLitL)%1i63 zz!Bl#WoAT)(* z*Jx3Uf9uw}A+ttp)=Bwz9%~mfIaEKxrAW!n4ury>=`@7_aKL(yoCy1J)zLCT$XbTK zAsjoUTy<*+Y8SQiOnTTZ=F`V|=G)tLQVA^{z>r+y3QZ9`FnJfjqJ>j)xU&$=XHT!? zwuONPvc)tUegjBO?5>Z+0s>JYMs2I~GEw>WA!G)R&(Y1?9T|XGC1qqZBP~02x*Xga zr>Nhnxjmc@2*Adn5nx$(e z$Xu;V@~2e7y14b`1ZL?{W2|ze0Ve?gL9VE?GjHPBQK0v^;9v^Bs?$t>RI#PSxTO9s ztEbdD(h3m}fJ!h`GB&CM<3jI1(yh4x&1WZ)Ll>lV@h$q@8GcnrUu8+*j7|Np3i~m;ls~RvLW2U za{cL@rS_oY81k+e3vxqW5_oMI5JM%93N8S-gun18Tk7vmKYQHs-0C0!NWkB%# z%5&=)7FMYX(!_hA2*$}EbY;)~o)ZSW6P%{6*45QPV({b)L`WJMU#MbnlC+n--$Ji! zZEanIPlJ(%6iDM|m>?(Rdl9G))Ni{DVF)%NY#uTk$#}l|gmPDYM{wHBjRSlo7Ifp; zA9cl5n;2?^hiY!AiE8nJQND)~%U8~dPM?5?;GZP#N!x1l@FoRC=lAhP#MV3Js3?Zy zRJ>IWSDM$)FZx0qwFV-=BrPBkA58ti9c(qTIQE9W!~lbZt(mPN8%D|UbYy&P&E_go zhffjDaX(~k&a_ZgT4$>jizNNh~o$d|0s7LcO|G<&ctogr1IXz7rJHkdU zxCm0DE%2tSMmjn=NOl1yJKNEtYR}KU)YYMLQk$veqI?x;B=g zEgz5m61B}m7wyS3_qSP#Bp}8a^t-hC+k{=b;cJX8grv>k+^GSY#t9%hCQjZWl`f=#-Qu5xOk2me@ zW0O+H*L+BgN6o&6HdTLj^q|AH8VGpbno%evA6Q`i#I-pf;m%a{=E@6FjEt;4V^3zA zXW|ZgVmV$E^67AD%p$E*ept8*uceVrqY`Xsv1XVPVYth}89fBIM)3xt&u3(-FX?#d zr0=}B!XLs~Dp2d{my7AA`(_*Q{IiK>L$jUV8i`w#fj?wFERQNfHd0ETkw4_qc^H9J z^;_BjBlyiz7bYCS`tuQ~GFT@()PnY9wArz$5-mKL^Ve$^EHIbh%lV=KI($`-hi>&& zC@b`~FO|anhfWEzCEIp6H~e~7V2C=_uB`y>QKj%*rQpGsVGoZEQeeTQ6~r0@e9oR=r) zQZ>%u(D}3hhOrnj2~@I3%Su+pHMfmyt*Y5jPjnQlmK4u1)<#B2*m;*)jN35*4Wc`w zSP#~Pwt8;*J^B_FGy)NceqO|MwXkA9_?&iG;!B4vE;s>SsgwHq7Yn62)B#9TE zNm=O$9Zihv@Y-akU8gcXan{wmO3NUkPLg)8$skoCR9#jVZNb6%ZhLXWfRXUc1Sa0t7OWdma^56UZqg)f z{N*b%N3u%bhu5#Xq$^((yBA0JPVCsn$7eL=MI>+yrBIJ|An~FaMu1y9_|miu4cUVC zAId@01%N&1tX&hsKa*8oayrx$DXqCfnSKgDIGZC9HuO4gK|(Mz+5HlbF_=f2s$~fa zo#(n~r{wU?=4M$nU@&(f-OMHkzU+pq37DHS##tW^jq{McEsCLE*d(lr7 z*HYWxm4w0CRNW2D7~%o+rU6Fep+Q66&FaldPEM!j*yvvZ`Pv2k=J7W>;@NoNnGaw0 z4zJ-qtjg=j8yV#{_-DJ=P#gGA#b_;{R^at6gFXAcbi3d~zR(X^4Jo7(hnUHWe<192 zV;rQqx$yEggT{fhkRC`qvztU^h?J-TwWJ9@Fjv7yv@M2|DudzzQaE>k^G3x$E9qHF zepE_pSKGeZHHSsoyTdzG@ZRI?M}b^6ebD8$?f?Tdgv~1kIg;$Soa^~3h8q2C@*xlJyEy~{5C!e6Jj#S%oW8hjVt%*2*>awCnicG5%ctc z{rN>qKyYxFQ6=JQ5EO*;Zg1}hL|P~%Wn@?d20G7JtoRxcu86_X<`oox>!Ojmv6Q;A z?q{TSQc^OuA((!tttBhgM?+LS_i#A*VS_C#ef+6TfzL|6@`19=^4-BCq^?i`vSv3O zdU}ghrq)#vVr#P$PfiHV%Fqnl=o~|H^R}SneRm)#60k*y%gX8o^-_tqmZ*3S{V|I) z;puwgT1UyI>*bp=nDS_+nT^?Fgg8)^VtAAxb2W&#eV)Vg!9i{rHz@5&e}Pg18?f*-I$mE} z1paEH`6-CTY&p;eK#+i_Xi$zQNRntY+G;$^LRC{o#~wtivbz$T2rmV5^QCzLA+5#w z+8oVWPm_%ENby!E5@CYVlM zB_C}25RKcgoS1&&dT@oduK*^;f$#6q^@qrThr#r%qy*v^HhEA>-uK7p1;z!Pth3LA z`!ekz&klfD2pa9TwsjABrR2>PTSu=TN~o2~J^C4G6?4RGk|j$z8*}OAWVe|NfyK2W z?F6TqI|&hf;P_XJ^15LOk3q54%09+!rA;2-r=Vzol=s1-TX}L-lTduY{Ixw}Af+$s z>Do6%T2Od#XdDU=NqYC%@1dh}m*W{i5v`Y}$l;RO$Jm8*Y#Y}h4I{k5sZR(9EySHU zAgj41tIoiNU2dMSeES$w9g|WEHLw5!ALE^I(L!+d@-E7Q z1x81ReTny3`1>#QAa`u75Gx#ea(qZWQOKzz!`@7tTpTXr!Gm2vK|!sZor3kO^|Yj` zS^8V-P?ZCOaI10e+oqSdh@vXucv!&dxyxIA_uIb!uTijJGP!XSiug9(~&p?ZV1_;yn!tiYmI^ZQ$c&3fGOBqkdh#=-h0EWXUVCrz zTP>zD938q&YD-s?S9D9L2dbU)bIax3<{t>5rjk@vQR1UkzFaSB;?jE~f5Ik{4X`w2 zjZF871upA#$Z448uFqC<58kvHd!!{DHFj-8P-QUAY&x9B;CGl6D?~>r}cinROf#XT5Pe(@0Tj`6(u`}ub_@LKKa#wpAYj%K(IM) zlZRB>ChzHS0;nzv{WG@yH*jka<&u45MAl};3-C58?|I+n7fjvCG%tP!v=8*Ds<&r%q;pa!nTE(41%msg?7P44Wt5UxX>%w$Ojpgl%~#?R W$I@GSs|9L(@6v>Fm1U~7LH`BLvhq&= literal 16921 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 C5tZ-& diff --git a/doc/salome/gui/GEOM/images/neo-scetcher2.png b/doc/salome/gui/GEOM/images/neo-scetcher2.png index 330e1e3a355b324b9fb6c1aa96a2bda1563efb19..837031035d57dfe4e1a4f1da760e45d133ccdb46 100755 GIT binary patch literal 26003 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

%d%&_lb~aFtSA>K=V@OmnQ-L>0KEUMO^8SM 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

D++MEBW5D7JJX2m?OWe9#>9D5N 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 ZFl6w}e1nsOKej@1PgeO(uJofn{t4!5ZifH> literal 21323 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 diff --git a/doc/salome/gui/GEOM/images/neo-section.png b/doc/salome/gui/GEOM/images/neo-section.png index 0d58ad2449132e77f5487e0ccce2808c668c57ce..f73794cbf7ee2ff83e3a614ac1e8b0d461075c91 100755 GIT binary patch literal 22052 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 literal 13547 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 F|6kX5(i{K) diff --git a/doc/salome/gui/GEOM/images/neo-tolerance.png b/doc/salome/gui/GEOM/images/neo-tolerance.png new file mode 100755 index 0000000000000000000000000000000000000000..2ee3a4ee276ecebe3288d827cd2594ba9126a537 GIT binary patch literal 16290 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/neo-transparency.png b/doc/salome/gui/GEOM/images/neo-transparency.png index ec1fb7f7065b0f3bd5d2cf710afc863a80455529..bff078966b45ea79ef3640cd4c16040a452c55f7 100755 GIT binary patch literal 6412 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 literal 6912 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 diff --git a/doc/salome/gui/GEOM/images/new-tolerance.png b/doc/salome/gui/GEOM/images/new-tolerance.png index 796115ba90629a1d9fd8841230e4389b771263d7..6629a0d26d83eafee65993b452c67bcbfff2529e 100755 GIT binary patch literal 16319 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

U-6&s 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 rB!>Sa)<3SvMgw&KH_s+h{^UWHq0|Oh5J?Q$ literal 14146 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�@XC*@a;G#(yaM=%>7=c&@CJW;{<1i)o^d_(e+7pK^8 z1}fOQ@pb5c1_rAEg0BZqjE7iQw0wLClHmlu0ETFD`HX&3_&bZ&&>#ROId1UzuG8^} z1_+Mm`Ew2q4onKsrb|C|p6^ACQw27ujxE)ZM<#kuM-GqyfS7}b-ma>~ZiwXhpXRNy zWu^M{la4t07WDaJgPnwnE0Fd#kN@uoF^v|<5yl2Kx$1E*6UA^fn@HaFcN-ane<8g8 z97eX7vG1`X-GfrV?5j&s$#nNc;Ws<0EPvL(VYjCSW4yU^=Ao|vU;gKBA3xW6_DlJf zuE*Nfu5T=URsxiil=&>0G4ze0p{Z8azXN^YH)mnZvcXQ7eJ~h3E9>yab+gx*3Izgy2m4*a8mv%2!Q&N)Y(qYIc*} z$2HbdDkVP0?x#~`#KP|Ez}qkr*55#{j;uKQwc>3}s!nSd%>Q?+fb6uq+en-Lq0ZED zeIy3~Q{_B;^luc`s-|6XtXSv1!w$KN)XF9)JvR0gSn6`-aIid;pxrFz`o02k+Eg5e9r%0PUXQ zru~9Y@<7oZX5%3qLGo+-RVZlCwars_qlbkXLqf=I@FXl$#^LWq?&(Y8h~@C<;IS|M z6oID+$=>^kW32bcGzRqXe^t2<4DSd52nz)Nxw2Nm)(@N1)*px(f;?sMgqItQe?zwa zGkxLCr0`h91tye%wRUNG^Z9-wykD<-r?gdneEbRSBN?DUfN3Q(kid543wRkH04vaj z_G1=0o8j!|qE;*qXmw{-*F|b8FndZ`Z#_XS1D1x!WUZY+ak4&n%bzqJD*|ANp0$A1 z7c?C5qTZ$A@iE>p-XE%wsLs~b%#=SVcc-f{{Qd5(7LF-KDEz_pLdAO4**1gbI8$5; z6dyL+69DGD!3uue8?9lmH3P2`o^MJiQ5?Zyw@cAQI<@;%o@%Ra7UbfYvjCsjovk0; z-~^g$1AHJ;pkXk{1iv_}bdUeoT2t0YnyIxj1EDdP!WRwh|2y+#AgExZfMnu90h_2% zhAywH3<23Y1PWDys)$%D!&Hl5$JWa;xLpLtn*J@^@2-*9YvJ8JI1Nnenbzc5a{%P} zCp>3E4~<=JL3i87;LnkmfFGyNWP5qp9?F3tqVw^#Sdyik*WBY znD?BVoP)6w3+$jP`CE4>P18w@PW=gAEvI1{goN8%9MC@`KorqL8qN+_&1z@Dizk5g zFv{>@vC|?rqn(ppNV%$TnfX&$V%O*SWxY3sdaTrd!XJ#n;rw7po5u(2rKY2PCa~i7 z>vHc7+>fd{njC0G=0G$YI$`1Kh@Kr?kb+J{JyWA?a(;|~e1}EC{hW?BxIp#W?^ZuQ z_%ZMv|CH#3a}D*am-2FX4eu^Lt$teiqjU`e9sRx_>aq9%Em73R^926*ZLO_d6uAgG zzFko@)D!49KnuGnn5S#)V1OL?x8G%J$9K6*=xsRZ-P;FXivzAE^Yt0b=}qQM(KxRq zVQZ=>A8=5>#($k5>eDp3F3ORRn@e*aW8b}`e&ssEsZ7`an*c=1S^f2O{>EsfnG$eD zC;>ElWztO7kdpi#BuV!fk@Y!%w#bF00y_88fsP912#&7!PvPOzpo|MN0S7P?U%h_a zH#7tV?iJ|5E&3zBP-TG!K<6IUzJBehvKZZ*YXp6}C)KQNfjFWvz)%F4r}UOW9*c3u z*42_UKh@4AM_5bqA56p-nLaNr&o4J6zy|3)q8M=XXqDkjm}r(K|}0@sXeq+u7>Y@VPpwNs&q8?&9o@n2VF zUH+Ik&_ul{3iAXENtN+Z4gOoLFNjf)5ZIevel)n3_LF<$A+jVTe#CeG--O@4<7Dbn zL5z;Rp_Wh9;EZG1D5#jvFSbnlG+$fdKB!VlEFpPXKuogyS+;&Vtnk?F!7V`n=07$z zbOKT2hV;q!N#SaVf{Ks?&nK!qaS}~Eho>pE)~9YRmJeX%vd`kaQ$`^q{*j@QSE)s{ z*IzpqD zj)|FpVKGLUJWCU%e{Vt5<-u7%Wv5F>OpvibyVl_ASYUkr?;u8%7vS3KjcdOO0Meq@ zo1p(b5XeJ%5F=(lc}-eZ7aC-N!NenLGv+nG0)4mg65K&WLjGNdP6M)-bqClYQ-n6>TP55tt z6%{RX^MWti*r^%5m!HB@^mMJYffpCMOc-hgR+=vP6V;|Mh!N=7R4 zI<-XeQj6xG*;U{Y182K1wtU+1Jmnsn$Uh-V3LsOZ@}j4v|JmTr?>TEJxBic zkQe4Igg`y-=e6H3J@_XIyO!Hv0G^zuE#>o2BO{~9ItOZ?nV^8|b#`|nml<`TlY8xQ z+)s6*8{4DiC!vv%(53dE`*w$_DsIpLs8@W#CcDJ^w}ma(*I)8Eo9m(GqM*#uLie`ppU7`PrK#^h`*%c0 zOB?$52=7PnK5YRS%ir(b_6Qw)Ijaxn5ERd3)8O@46IV?0Vm9-@g&-F3Jhm8J0HxF) z#U=tTQuF>6jQ7#CBfJqdYs2yQ`@h|$z=l$nAgEGJV^46!06DlMis@g&w11r?<>vNF z?DSFX{iJzjhpB~bd}35_@XYSN$oY}}J)6V4;4=~m>UkqN)dm&_>`+gCDjsR$f3pey zov-rG4}Yw_da9>KN2TJStdK36M*dgXa$t0ux5P_YbbUanr^e(!gBHO!P5(@vg8U_y z>&{rybN>`OQtWuj8B^mvCN_=l_H+E8k-;%6n5!)kMS78e9Wt1~Rc?^8goUPx$%5VqOu?16ydKgO z%>xgRuH6^;-#yk}JbkS$DKSiu2ONH<%Pi}t{0xXH{~+#P2cv8~<;>r$CbZl@3s_!} zJ!&t1>`+z)hR~q>k?PjBD9 zXGblm+iaE3;LS5VeI-HDCc^E3uESZB`&-iGwUZk8m}%rZ22KZ zxiNFEz_!sud{sN_-8+r5fGpW1Qg`Lvwnv{*Gy_KHJgSnvq8>r*NPl7^5*OU_r$t67-=HKK&tqwT@ zeqUnKY&V-dv`Bx)55s4LHc@(WR)@RhU=VgPR{VT+0#ZlQGs@Gr`rR$Y*N6LD^N-@o z6;GmBdM_xGs#;JUAs4lOR^-LyFm4Vag;4}GAGOC|DL(Knk9&EvB)t(mUJ*w{Rjq74 zQV_Q)yZ((&RfO1Uo2944Ck(t9qjk&bWHWC5Rrb7&_BD+#E^dKxx;^T-U-|G8F_v(w SZScQwkT;Tw5+$z;1O6A!eJsTQ diff --git a/doc/salome/gui/GEOM/images/normaletoface.png b/doc/salome/gui/GEOM/images/normaletoface.png index 5f8a343993e30665b396b5f4a00c2cc8c3c13b44..10a40abd17e274191944eb3f2e4990d9ca4b8117 100755 GIT binary patch literal 17389 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 M$Osn;>3;ct0OtSu-2eap literal 13984 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 UeLqp~%QMJJSw)$GXYW4$A9|XZYybcN diff --git a/doc/salome/gui/GEOM/images/partition1.png b/doc/salome/gui/GEOM/images/partition1.png index 440dc3c55f20b5732e1d02a95c10496eb2fa7636..026d13d09704133bd1e870222f46af3b89cf4680 100755 GIT binary patch literal 26300 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 Fe*ps*b#DLw literal 17101 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 J!uL8~{uhI7M_B*> diff --git a/doc/salome/gui/GEOM/images/pipe.png b/doc/salome/gui/GEOM/images/pipe.png index e773731d23220ff8bde35e4232d9fa8e4e4cc35c..d75445374e6f1fff636e58da8d7ed909c0a6f9be 100755 GIT binary patch literal 17835 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 GU;qCNVwf=i literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/pipe_wire_edgesn.png b/doc/salome/gui/GEOM/images/pipe_wire_edgesn.png index 4424b6bf11d3da2a557f6c9ce17411563837b155..fca02823d66e541526442d301caf2e91361b8fe4 100755 GIT binary patch literal 427113 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/pipesn.png b/doc/salome/gui/GEOM/images/pipesn.png deleted file mode 100755 index 11ac1096ba903991420643febf924d929b84ebe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11225 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 b+~bZEwOn|uqI|F|yEy8~+DfI0mS6t|fkIjh diff --git a/doc/salome/gui/GEOM/images/plane1.png b/doc/salome/gui/GEOM/images/plane1.png index 47a9b8bcdabb3ac9d803b779a0c07a9c7ebae69d..aaf7f12d5ad4e74d3d33de1a7cf2dcb8b257eb10 100755 GIT binary patch literal 17501 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 literal 13114 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 literal 13745 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

8rDndWMyR^K6;eb=13aZ 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 literal 14227 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 I{`SNF1u5nI-~a#s diff --git a/doc/salome/gui/GEOM/images/point2.png b/doc/salome/gui/GEOM/images/point2.png index df151abfacb404ddb60470ad3a2a828d9f892876..b36ee3fab5814609c695dd76614c7715139a52d7 100755 GIT binary patch literal 23893 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

69x+mx6_M^Np%-$oZp{^VB~SXbV(~Jr0fS2C%S5 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�<{QE5ldmWUA{v)r86EMC;CxmjS(O@-+h z=8#Z48OGM>bT?%!jD0#=ZWmhYM_Vhtytanlb9HJKjk32Ev84RA;R)A74mxbHOm!Vx z?==>V@mx|;A#a&C>mEO}B~UBEMDzv*O11R2!QzNfV=2 z3||n%cTXCUwMY&;yV-?XHK#LFJU{!HXzku^(4JX9H`RHW|m&C5T>!8A9+KO_^a9*xUkec^(*7gPR?**U9 z8)8el1@y)$RDpTap(T_u*La_`{X#9wk@tw}B=;)R-%3}GoC3V&G`uvL^4{l{HO5Ej zdw!PN(R{4@fok`N^zq{)ZkSz_Rh7xtj@hu2@wU0g3hD^hgUQnM3Plxtmq~?ru2(yT zDphbNmVBb;W%4)*#KoQJwjM-6;(8Wk>L*7VJo_fp5VJl zFuT8nn*NkCpibOsa#gGO*f=_OGo@m_@Wa=+89Z3Eui+UkW(lb_3}wr1xQozgL^ZYE zro`@eKgaYRVJ*}LGw!b7WOob;3*2Wuun1h87mY_HS`gK~k~1-WMThci7o{=1#q)rM z0+kU@#x`Pw8N1$vmQ%h#3bcyp%_Ln=jspAOV9g4KRx=19Pdqg;-WZ;Cwh9)?R4)a@au zj%!Hz`lO`dy%v$F!+;pQ2G) zEZVLe#@pEMCl`u$qC$Bj6pJ1h_MIYKa=m7n?{}^|ecZZx%i@_Dy)9f`G`QN#lnOW{ zc|<0f@EbN>J8zrhV<=lVK;3zc+zeY}`q8=P6Uc@$`OT~pzep2x8+(5(&9`W)KG)q} zB@gG`dfgv=tUmsU0;~(%SDu0ex4sd!zMUKmcSG@&n+la&Z6|`-YSrE!`O(5VL^1n> zZKsMl7)YTaS`l*&9wKiR#4{)D-V^RsbIhSvJc(BlfSb9Vq&RKa{~achX}O%PR>E}L zJ7WK9U8bPm%Bn`)69<}jJ!4PTYrIxuh_h`dB+{%jo%Ud1oTuKEKKFz<4qF1oZFg0r z_T0Ro83|ivhB;nM-||bvp6-BQpT%y;tpB8X-#V5C=6DH8$%^{!aCB3UOK?dRM}Fym zjJ9A887GR_g%GiwYbVG3^-R3^i`}KHDG5%&woNnbcr`u|>u~p&=To;Hcsi6gqSczu zySrsNGmNP7MhzIRM&KXs`#cd!)nGz9JR6N9d4u;%h_s~pDyRe7e}>L|AG~?#sN&W} z+Ze+ncYS-%d%aQ|PqhR2FW=;vZ0?TwqHKu7qEG(G`&)h=R9t zU%9-92c6ELP&)Om_i02l{`A4W|Myor9Dyd}iBXwzfV5JwmO>as3}1d5gtNpLjlgU^+OQU29gpOOcnwK7Hvfu=nzhVfUM zeFECGAx>HuL2$?y2UpBE3~uhyN)gc22|~v(x_=pW1&4(jci)SoPKd^}i*`w3fWHst zDE)-nX#>gOmxCx$guVE=YX~kenH0Dy!tR%wLTY{u$wv>%^E0>dou7%@R!GnKa}%u9Usx0d5GG`KmBq$ z)SF`o&6@tEs%r8(^Zk}H&zm=IxZDnOeyrc!-EA#4@G|i|J|XcrLx=O@mJEPJwm$9i z6qWxHO9>W;YyOFc6QEP#Q;l4(MZWCu6ND_&rX%#<>1s*0*B4) zQ5&k@Yx7~!M%_yWey@w4N<;?-2WuM}Ml4Cz{Ar&*Bh|X@OHUQ)Zjb-M#H5z}uA(cJ zaG_?F2A1xGi}}*~?5;0r7I=B{a7G*{%qasJ^w|BTr!J>Bj9T5XJ<5rYS$R$Qlf$#3l&5YnN^T{a&khb>rzqp;92qKZM3{I zAuvz6*VKCc)ze&3!~il2$=~u^*1E=||M?sAc@LSfd*vU|RywH!E$IH!zLok5IsccN zo$I`=B=EZx1}0|D&``0;%+2|(GMF723Ch6T=%?hi_+1eso8a+$l}nk#(t6%UpO6+e z5VhoMyw;6=wmXHBCjTH8y2WAJ&SoHF6GXNXjDJ5QIUVrT1H-9$r5dEE}OTz1tcsi>lolcj}({6$vWDtCN+ z&vqvbQ4qeCIIOa4`u(C$?~+d?wVUT+!=J*3PIzSMDu{Zjbk@1xxmyTjUZGX4Rk(ki zavvVMuiUs}o6+7bDsXp%Nso=Fsj2DRxPo}&+#s63J1AWDMj-6f3<2IvGujs-UU@A` z`~)WbqEm!+^bC@P&T#MR4)hy({h-4~AAh~#rlNkcP2_TZw+{hwH|UYc()Ty#y5u3< zj|rz-{O>9Eq)Qqc?9T_rEGy2o$KVRp`g|@Ix^~zL(ukzf*82Bj;?w2ST!~>D;>D30 zi11v)9ojFzOy^mQQJ-x&@ah*oeDd|V9o~)*lzg~g`DVw85V0jwW;$T+=C-*SkuaJm z48zCI&y172dxtWrn2}L`WKYcH9*O6Nw9+E7SzRHctc}q#!1_zz0rz~Cy#@E4=|NIn zJR|;7M8uF>nNMin&=3tbHy%`2hti6ohDLDDyHb8IBf532E?1rtFW7kkRqqDIww)`t zcetGQ_;hCz7S~MoTEhK6Kj6y#gi zyJVAx^-p=2JfCJj%V0&ZtG-APt zwqr47Nn+Md8XO#;;NE9>`SRu6FF%5+3cHrjIJ(pl4wnFBRFY7$$I?Z66T1BmMU6+qkL-@$8nRC6b9u$OF(Sw-yG~r{?}*4gm#aBVOAU>;?|dtMrN`3VtlU zmy@$!+my%~Lq|gs>XIkgUeXQn*px?Vl5N{>_~Bkd=e+w{#@APXLAx?XBnai|>T3LY zZRhi2F+)m~J^fG+EZL=#dgGU_+sBsSuxa{%?~q_e-ZH~ewzF)9Oq|8VBKA~OJ`b!P`b`4j*}q2TBowibU}5mXVJ9+I_V>f9 zsyO9R*u@mF=0?iZ3dFL<_YIS*xK~cIX`k!q>6Kefgl19)9Y1Izg?ggPG{3xg)|`>2 z*FH3as;|Ff8G%2}CUNiA(b4Jf#^OVz6t5D~rjz!xB9Gf_I|)U~>EZqjY12H+ChMY>?t<24} zienk0lcg0la{A@!{J2i^&0WHWR9Tjo!RCphTv zn(RC5`00as45?PS`)?;xaPaZ9)(bwLdGZe=vs08ew{Nq4bl#heYHk)v;CbUXc`;&H zQEs&WpFI*>RmEGwtyylp7gDT``2+?gt%3(defHv|fVIitMaWWR_&uDjuM~6gBoP;CbH;!6GWD)cv@J$+esW}J zreOW`mstT{UtgqyiH}VWvl5lew>!f5Pt1$?ip-a?6BsB8_4`a2JZo95h~k7VlLI=tySn*xKE${;P!fK;z51Jv`6Y0N%gc~T zVX;_$jhw-k35y{KW_{jm$p@;vt4lxO`n}}>%*y)u$Akp+bC^OZP?KzJZQ1M=Q$5dj zqHOxVrMvMb@Imi<-*-COV)nd5=@@GZ=DSG?+oNc5zS{5L?@? zI7h?8m--bBwY0AoF)2@Btj5Xg?*4wnoDGyTK0bc;Y1X6{VO6JlJrhsqA5i0|UFw2h zzknsVGm&ka_ocipSNG%o_POWIM1lHFcp@h`)$-I>ypW&1cf)*lk92|k`^;uij2Mi4 z%e`5db=%1lxIS{w&M#~;!f=>QX3XfiyStkQ29On)hFCBy^lXW3=E@=WpjB=z3_z^z zhGZ#EM#hH^PX^QZ`$n=Q5Ri~^jJv*2Mdx)Gk+HI3-p?JDTx@zD)a0S38;eg}Kh;jX z^NTAMxkVx5cP(#qJkayaFkZX~m@nmR=V??&M1- za(H2M5BMO2Rlfw_;lqay_D)W1M!#a~+D^~T+7}iUa)*A*WN!(ep`xN3h78X-H zIzC>$^9eW}=o2ZPnz~Lw_~<0{1f7#FTwDa;0-FS=uu|3Wl((vJwhOfrZ`rbnVjA=Q zNSA+cs{eo3O!A*UWHjYw2(WI;$RFCrtSV0$A{7#M)2k0*k{o!g0H+$_{O9XC+$hX; zigt0;Atd1Z51o7Er1gZ`bq^PCHl!NA;Iiau!@ucVHDMlQB&*pV8V-R(`w_gEieKB` zbZ*%(HTs{~9O&6$J?~l<7Sb%n@wjD18H4(89qB()X;BLUtsMn zot-(yGivvi4e{^BR;I4^i9MeD_IuEQTMUGRe;rJ}Uu^I?J>Wf@P0!2CJ-+Fm z;`TV9q>c#zB#g!Cf*zmU@@aDriFbFtY5}-v*^I2H=u?pclGfkC0W*FEf>2UYQuBgq zz7Myjelq1a|6qJw2CqxN&cryTqM~AUA2vwGy?;7aWkbWx5cmB%?HdshXpPc$2)nD3 zF)=X#DJcX_n*+H3Syir!N8k-y*vv`E$QV!VX@atA0IEVx&bOmZ0=wZdvmxn1V~ccx z%T!8qvOpR8UXyw;gdB4%Rn{#(#?m5jnbP=@|Mi}o{DTjo7`7zEDf0=kTB;|OXjFvU%B#rtn zyfZcy%dyny%5W7GR9_ZWRvU@E(~SX`W+n4q47;0~5|;-H9?RD_TbPqU#AN(izFux8 zr>BZo&(h@0=(Ot_vOGHS`a%^{Rbf%^;e{k6;m7jis^T86n*__;kBvTyQ(%XEEH7u% zZU9``{m1}IY`JpIRzwl&fXJN*YQgSsaOQ^@UB#CdA*qBf`O(Ql)6~|VVqoE_Y?lJO zV!c?87t_;TP+Tt!^aDEvUqnzI#35(`xiVeEAvCLGBZZxi$2k}V4&^nV!^vzmt$mM& zCV40b!K87w-wL3LSH|k7)X_Xw zDgP3u7%Q5UoxQK62k1FD^UGh->-#(JRcg@FzTiEk3!4|eMIq*s1XIoLb-q?8W{1wr zjUlE;OH2E^{TS1EXC5JYL=u1pu!eH2riz?*rb7@gsoypU`+(s5P{;gGlDO?y-`oTM*?RM(T9Jlk?s}NJmsdg^7|b}#kDUwbH^KQk!;KxR6=R^x%)4yrUR__K z6X1C1dUqJpJxq;_#Yn|aGyhJ9X0x47tUGM1>vzfDvh�i28_#-Fp;=mL;$J&mz{( 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 literal 17319 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 sg8u6cxs}D|d`rd$BE| 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 literal 21190 zcmd?RbySt@);GGu0F_cir9}y)yF-zXmJSI4>5}eHN?N)>O1fK0MY^TCyQTZg^*sB1 zzrEkRzwv!zoPW+3=MRUnblq{?*PQcLx4y5XL@;jQ-$Eb|7^1HPWf6!gVeo4J?FM|p zLUbP+fp~-v6?`FY@L_$z!8zdY9&Hx($S*~OH-fo_IT;J#v*K??m7TE5 zSX2e67X)+ALY|7fe?_|#Zsca*KRi%Z@S?2DOI9$lm8tdY;+6ip&=?vD>Y?48?a$-w zOLcmWcWn!z1TZfyF1S3g1wIK3SKAe&T&m_>{+yc9Jlt8oe5^baQgUFi-3T@#MHD%CPOQ) z?Gbffq*H78JKcrLWKC_I%LJU0%tFN+nK9)zVbP&MA3tIyyz_+{yGy{@pP%>wBSRur z-iV2*biCd!xFeT_kcg~XhRDf@+vrVtNb-QiZXIrn%5kuIZSj5T z2wX$M6*4lON8%YJ_9iY;%T^6dqxfYhPs!5X@u+5h&X6!s$l}Nh+wM?n6B>BLRB}(2 znW$G=MDGs?2M0&USNR4-yI_`u7=ijK0kj>K*Y2ZT+iEt~si}?clJJquXrb7w_Wu|t zqqDWO&6KAqjZu|l#m`qe4$M(1kSVdH&E``0nx8UPkcNIyquDde*2u;7nUeCJP%Gb9 zXn5$(;r>Ul$#i$eLGCL=gGOFr2ULU`xtSaGScm#yMYhf#7V(;^tWNKr(r0r%(Ddps zrnWFWzxBZ8e5Y`#r8T^Q#%0P2d)8Mruh{RTt9*DYOH@LNOei(kuy4u2%Bo>>6hA@A zM=Im0(2M;5fk1p#hl3G)PL~rFTQ)X%i|l|mo#>n6;*^Z!)Kf(`VWEGB-so<~FBg?8 zwD_;%Fu3{n&cyp-CZv3s|Ax&w!H3h6+%Eg7dY6dU=B}Ye1)YNNX>$I+6-gr|JG1n^UWj`PoN?8(5Ow)g-ZLHJi=2p{^RmqL`)!`g? zF~|PEp`-Z@^De7v?Fr)E`_dAHH8ou-@A7J9PWe z6(uF5)xkXR-9+PEb@P$%8*0_Af%=IK-b+TAl@}S2Z|nlMFgke4xOmyTcWiWJ|6tpJeUGsG7OX@)flbw8U36yF;`3 z?l0D|GL=fpO%mX?1_jyW6lt=eN!)M|y*6dk>FYLYiF&6Zf-a@*>%7 z60P)x$}wnsHG+&iy3&hH*TbG|7^sSn>f zb@_&v*CK9Z=G{wCOz4=r%9yHKvBF}mj6?7SRcb>;pzPZP@|)jiqqc2xyvtODRD~(Z z2NeZftv>qKPc`Rgu<||JMloE8F_10mP_~R-9axt%tAGt>Z8#@pq)KsMYh+7OCFRXV z-CcTlVI7huQ;SwvAG?)u(dxz)-%wC>yMF4`bo=rX`+=OcXgf_PpM@b~tmS>b2lQAP zO7n-BXfnlWMjYD4`u>V>z6lAu(8mIWJrV+O;~w1j91%hE*e~UCOoT6mPy<2gq1EMu zOL1}WtL|3~S;beo2Ra^$hRIA1KYRAfJt(Ojb2=iq$QxVc-jP{8{ZPL86JFlh??wA- z%hsIv2w@TmeA+MVe0%9~&!3I&t7Vlo9>$y#p0x*dl%}8xyEZx3C6r6zGcQKCZNE;{ z9IWTDxT!7gKnw z?AD1yMd)VgTs+t+dE3kM(c|SvnLd32x6PyVk{$G;ZG@%^S3I7k>0*7aoPCa_dH-S9 z(R-7pq?)ct`qdtj&K_=c%rRH12W7G>ac^KOcc$IcSz&zZ*IU}&EPb_h_#&y|tpmTF z)CIqFgy#JE1@0cnHl1dp+1tSs5|y$e94@=nR|QIu#ioYlXHzQbx%?!gp1O&7i|&DC z7;J28BP7!+EARC5LSqv}Wo2&}l?f;+-iL;7z=D5K6Q!-JWNI2%W^+JZJCNkC=kU&G zy`w{-Vc3yi>2!DW6E7k+e$cai^TI3Tsq&jQ4>+J7_^t;FU-znSAY;v2_DM!)>~Ou@ zUAjBsJbf9G=6X@o#L!$;j&qxhXS!s>!=SH}tJnXD;gl15M7Gk6>G3Kn7H2~Q!tJ8m z=PIT7ondzOiqnH%ZQt%9hPq4;Z{dMg9=o=bbu1Y!_qqF{Mouf3Gp*gn^!D<&($ew! z&S5*h!9(oGjQc_k*2CRxqr^jcTgjrGECCxUGi{p_+!khMY;LNo$y!&2PM@AfR=_75m_^xs7ql5o27>v+^@+f@Y^D^&QNTIlQ{^alNPS zb=f!b6;ud#uSYeVAN6JXYH_;M3VixQ`b5qvA%Tc(aF9nrOfW1~Y;cO?$n7HHQ<%;{ zdi97;owdAW;q^!43O*@)TDrPkfqAqmSbe)^u1kd6qzWDstPv6$solquKSW+X`<(7^ zB`JP}KZzCPds|!f_ae!nr7Z?g@$Sh_n_HgGI$T954{tm7Y>HUpW%U<2JpWVMNv5=_ z`ib>6<#NKJ8iy5j!p4|^G1mv}&H~iO2HRrqZ1cE?{M1bw{xI{INT0Gd9PRHZCg#kE zO$`yBOV_;g!TdGmu8^&$8vR`Srk=(jr zYog%Ot+%zfX)bPIlht%FJdiuF{C!FD+=Rt+ZZS{TX5N*=wL0Xv|JVIW-7VkXW@d*~ zT!C;b_6vzrjRbv}EcvvI4E-(Mv-1yIZ^MKf9Vxh;=amb{d>`dHilOjrDO~UW(``-Y+j_(`)vQ zA3E2|5DH>w{jE9Swb>h?aXgB@)Hqn#J2EwV#><#`#8=3dSR2>FSddbZ{c*G@F}VH= z?{!N{QD8uT2<6wh5&OhXtp(eU&S^LKTBZ-z4v(ijun@~r_56XF%daA`6^hPixQW=HXw+^L*bDU!Z-4F-Ao+`Jxy z(Zrd|-<*GRdb(ydd|madDcrOF)Z)y>0>e++ODZEZRs@SMoBjH9h3U)8%iniX3%1lx zB1=8nl}8jC+RCY7t216n*FoEmw>0!&TaYd;#m{CZbT`Gt`b~V%RqJp3THdIbsV{4> z_v)!W{zBH1rSgtWai=2!H+5w%ZCwvKY7c#an!vm;f~=eMe}=piGW!oQb4@aP-=X0> zbBi4}`$@td=6s4xRd!WnRGy0SG`U@@o4K>KtVFB2YRbofI@sc97;ljFGNA7AkRpsS z;73C(=Kj_DQ9aV4XgeILtXZPJ(l9wVGdZ2-8J<1EUmeKN=MagDOUZm4zW#EI)o3tH zGLDUq&&5Bcx0%Cbh2FoptF4WUjxI<)M=8T}tX!{|ZK0}vVS!u1uc7O5FL}~Rp~L$} z*kYqF>#_5mzx|-y%xb3~Uu=2!mZGZ^QT>XpdMx&1)H2mZpDkAXHlR_o(Q)~oDE-1<==A(jNjKKMLi(+S0N;%Fh_dV2RS$1G#MVi-*iopGvGm~~c_ zELA%0Q%Oll$!E*oOpp>07QS)w=FPMHAx#cW&fXNE+fpa$-^TVp92g8yz z#yy*j>qXK@T%8N;QCX^GR1wrl!ZP<7hV3@Tlf@#aN{t4fd38F>9wM0ykMW{h*z^b5 zZR5?4ig7QKdC1i-lF5+uRIdlWRU4bJOkmlREw_E_7?Sn?3W# z(Fb-$bflQ zdB4CiTza-_(WSwBmIKH8c0<|nStbn$PWW^eu1RxCm+wwL_T194w!3OXS|VbQdA@#C~jNmU*RL(Q*}zDmb&y6$rES z^uaydBDJ%P>f7EGLoKZl|YoLA^!>E2dZHEj1!uYV3v$AJs?3WH;l zOIAIuVNTNhsw`}N_Xv%OvE%5UE+FU}k$ zUDr&5k~lOTkKKin6%Q7i2&(Cb=9o6ykE<>9O+I201!8%Mm7U;0>{ z>=_dC*njU(VK(edx&DAoZMsjIPbi}=BqZd;@E!v`yP4WD7qCjhGP4P;S@Xs>EZ&V; zDfGVxT|O8O?%-R21wmiCcQ;A$JOG-@POk{b9Rh;(=w6*qu_Rs@8I%?l7S{sNwb#n? zys~BBIV;veEk|1TkxRIv$Zece?MlS4VF<|}Z~Ns9teO55Iq&1i$;qdHnzwg%b$Wja z$>*!#kq;$A)|t9oS?)=`>Tv@TWqN(2#M)r$M`1ujL_{xFYQ9sq6Dvw_~hz!#tLa`KQ7VhM0wja&KZEmeB;fVH!S!VbIrl@J40kp zHgB@Le3Oz$#>!2ZIq8>lf1DIhx-pFy#B_gkz44tg$@yn|mDQhs-dq*ty33i%(zaN_McAlXj3dl<8U?siZpqZ$6FK~q z@|odIqwqJCTRVH9$W}&5L*YarjrTzRLCLP=LBt(_Pw+1s#3WBw!+Q^t0_^JosO|{x z+?;0^l3Ua}lQe6Z3g3p}q`n!J@!7vbJdqc!ve47BRgS{$a|^K_b_z$hW3WJ%cle3t;a6LV*cw8WdUlx1&E~)2J%yd`QsK7joYTJ$3PWGu^ z&CNbZ6=&$*y>34^+6$BJU9o=m?j1H8Z$MKZ0l^?M`(=NYoJ2gs9jJZKq&m&muuq^IRkx!IVJa`*Td zRzoDGrSUK(5VBXwtkxl?QzNoVD!{j8dKSo1JlKBtLv>1}4j>EeWxJ!(O=mzs! zoiYu_hb<&d4_V+`&6B)Nc)&{3e z=`~QUbFOOKs#p&}BNclI7kg~A6vJkU@0U^thlcw2nbnuU;dDSlG-}5{qpz#0TbfvP z42|iFZhPeO1D)Si%oUR`ph5IR{odW({Vp$xPCdnDZ4gnqW7?4JABDc_Ja&T8ll&4j zU#&`(rYt`|rBzAOMQFA`Ft=ZEZ)0reow^tKi^rZ%Y13W1$Y^K+8ho&>zAiB1mCs(k z3p04Q!kmPC&fIcuSO)5rO|^U6+0M>RDxTxY_iS^;BG>a1fxL_)%)-m4a|+}Ay*-wG z$L;AC@I~}pOkxhS?~}DoJ7&}BG-YO!H8FV1dWH6_+7wdpEj^?!ciotGNs*_POs~`b z*A~%$x&bx(kXaACyu2I;Yf~_ZIr7d+^t&m@$gWXRQUcQc6ySHQn7`7)!=p3*a3M;Q z$@R?sakg+znjubDnRoY1edJc!*bs%SKy^mzo(!w_6`5l4qr#Hj2)A&*4G+upyz2NWJiX%nx^e!2w zd}Q5=j<>>vKfj6+B26?a)_?3LWOxvJUm%9m_uSP?~M|n4M3~R z?=+ZUM{jl-Wqbfv+>+>uLE^3d7uO%58ePdz-LtW8R&z1BR%$#HB;6P$L? z0+7|cT;)W3HDv;J(`(aERco`%x~t2YLL zcT~oMJG+l7t(Gulc2f<;D;a@Gu(%^;VRvFtK8JqcFR42k@|Qw zr{I-y^rwhXs_ta!1SzF?{My=DnR|`fwJ`bp@6)ANF0?(RBJchK6M*r!tSWYYzUWNg zQ-)+#B6F|P#qm-VTp_UB{|QR2en++eMx7gjgM()~%_P^XZ%+Ryh(hYXYPF7KEn}T{ zWQYcDOr6UQ=SX4rO@&zzi=$z36QfcIwg69F8=1sCp&z}yAz)%K>2DG?1>kw)<SM%zrnA|I-h;mZ;7uVHqd4 zNE5BoU6_yM@F*ThAK(gnnkDn80TYS}bPcm9O>*Io>1O;lcf` zaj?39{_wRk{Q)C7KFg;kB0T>>rQno-jwKJ$Yn^8)6wO37{TT> z*S$+&Ub}z){PZwGB$(LS@ZZ2Zh87CL+wTbBVB)|GA4(rgk`&c4BYOu&i{n4K|FhbR zLyUi~SgY08hahEF79p93+_p4uSaMog41i03cV%Q`N=-&WQ$>QAw11(&yvvl&x=XE; zKYy~n7C_89ifsn8q-Oi)Z9zf7LdSh0Kv<#@5^2&&e8a=T^D%5N4Z%$o7(9zacf@V;5Wj9wI0R6B85rxj=U1!;RGHp7XOa<rCz;46A2&!M5AAt)juH&x5Gv$F$4E2E_h z?6#6!F5C5%R)e=2_ffDev65^C9J_$w;x6My;d8>49lOG+38RTz0>+Jb`K21P|8=EIbKTA-=6;A@RgjLoKfrN zHBh5H>g)M8H#Z$n9v_Mx@wuFAuNBnG<|xua@oJUYl{p=np`f6^E=I+`XF)K$Nri@- zFN+lxw-YQycDOMVRd;@Z!f+hcD%|eEw$B{47JYJZN>WE3qPibRr{0z+lluPs`{${> zh1P}#8hxSU;tyGk?kQx;BilLb*WX`WT)lxw_zBuMcv2DxT(}6ZRL{=NGC}_G_4VzD zX1p3G9Hx)|{m(-C&0DvAHZ>vXEO6f4Jo8_l?(D4&_;cB;POq;AL`6N=UF^L2h=Rhq zr|0$EyLXjq>=_Zz^_W$V7fsg)*#~y#qxU?#yqxyS3?u=!m`=X`)!Jp<`is){Sov4L z2S3D4#GY+cjP71&K1R2*u$|eQs79FhPe{qn^Hg2E5M7*^ky+NoBIIySdFpU6U*r4+ zV2Oj#X$%hroo1cdvaXAZi!Qw|+RpI1?!SerHUdh zcmnt6|4+R4Ul=iUWZZqH{Z$3R1|&@TLW7Cp!15QwY!D=tL<&~_N2u1QWChXQ2U;<=Ul((u8S{`ULg z{Mk-U)!v6c94}H17c)uzNEjcTSeCSRqiudCc*6Gn-1aWUs?r?4W{scu)PT@rev2_M z%ZtN}%kAy$X~2gy2f;%eRtEuE7fq62ZyS|41I+1&W%U;gqreMfwCxy1X%Gz8RLzT| zkc@pl^V92b-eEI|+xBMlR?2`8o9Bc28E_zv$f{0AWW8=RUATe5z+i+MERdsag@(pY1 zZRzH`TUoLsvp!O1#nNBbe!oR=rm1AU$@eNf)PvP2X!0$rrrHQsboyHN?_X;w*^1@5 z+D95eNtZb06-E+xE4QC2=O}mzZ!C=$xZ#c&Q+MB|R|xdHuJhD>xva4gpIzd+R^uKerB#jD*C-ih+s;x}2W!0n7*IlhzFA%S=p6XmP~C zb4`IC)_J2qO(?S8(XOej&C;ml5)~D-UhfaNi9_))67RCt-t}aM5-`fA=m$Ttt=k!okIL7Z10!GmgE}OyuD|!G@N#8>pzeu&_+_+i#&wAZ39m*HhXbKYm<8MZH?6 z(~RkQwj**gv{^nf@Rqo9w;;*W$ZMiqaqE1(!_DjjC6^+5^+|Mp1~RTl5O21Vu#;GB z_tPRK&yPeVHwQoOhg{BYx?or-5zck-25JSA@vFZ(C{B%^I3gzL8W!5mJ_tD1ez4?v z?oSnA!g-G<&DRco_3vEgXjnu80wj+4x*I{Z_O1w+Ks3yOi9I9$Is zG@Cx`rx}3=3d{Q~-{wm61J3UCVmdlHFmjs>Mq9pwczSu=IZ=74&Sj@HTA$IIug-n2 zInrKfG50Ajkd=n}KM;%@t&8@8nt)MN$?im6!+&88LmEzju<|ntD?-0&(D(=sN#!ym z(}92IzNrX;TH0w`(wwg*+If}4=dwIe%?{vQxUV~&vjHAA#s@+?yjB?FZ%YA*(A>UH zgP0CvpPWt&=3|OYii{Kn@rM8G^WiJcr}52IMWq50r3Nd+zExI)Ttpq3HXm(vFGSb) za?tx+#*?&Gl}>wCzPR`=DKn6}D{?MsUd-`vigVdhCH|<5`y3uBr5L%xws)m$Ygn@G zB9{t*!JDYN_FIJCy(2eciAg_C(O)%h@g#5!roKM+w>d!}~R*A&SA4KW} zubyDF*m2L^vD%V+`}PqdBjeH0(R(<|$>CNvP>{e#hwbSr-8{SK2q0i!HJu9YKA=?< ztam+!;rBFVHtDXeO`o<`-PK94^zE7NksT_o;Wryp85y1F5hNI9LT3r@g5s+>2abO6 zTnXVGOX0iurLX#O0XAA$4)?Z3u&}p7Ufkef)Ev9v=|^Uzd~(G0+5qYqwKYNgl>Ms> z{Gd`}jX&(yA|6P_vFNrB(t?CPySV7BYI>6N8j@~+U}{FzBujK0933r>wzXiqa@cP_ z0>~u1TU%4}DJbYGXu-2{b0a1C!M)BAVvU8#4a074`B{znr(x}A0yT_EB{p+VflF~( z%wEe=Ez=%g&nYaapnlJt@)i`tFR+okxAv292njpjF&OrJ#ZbsmBnQ16EGxY0x1U1{ z0!Zmnl&0&m{m~@(WA!qHyOc}fG!kNScc-;nlJpN})@V*QY3_t^^)^<}jbW+jo^?z( zv$X{W1W3qJ;gWQBT{b|g+og%V`y7_*q9$Vo%<-G+F)kf7&Ekmx4u?Wi+@lN@Qnt#0 zNmX$%bKIX3LwpnRVmU846=w^|YNB@*&~IQ63Z{!iK!g4Z2X7rXvcr^UZEZa|K4x@1 zJL1u)tgeQ8kT{BePvIlcG&z~r-!K1j$&-MV{hxVf)4cMB4$6>>Q| z5v2Fk+s5weCW!;RiF4j{$%u)GubYX?7r+|jYSt42JI>dvH{(#_gl-QU z;QBj~$73}P%t*$-f4+xv<;oTB{lm=(@xHH;orxYeLUzm-Ut6C)%gU*_=jP@%u|3nU zv$r=to!sEeK$ZE5;5I(q-Y>r89nso=%0ev1@QfR`Ysc%Cs=7UhIW2!-xBQK(B4Fu9 z3<7|N0klTKt(BD(8qGRFKwAhHN}k|)0EeSWc(8Y^{oE;z`L%>g`I=j~(6P(Ef}k2d zm*|`{_1fdYTyg9awKf;xQjkU0p+8L7fV0|uurVgt702h|STsNpuyXiX?4%CIFeoBe zYU{iJz5!}jL=#59f2(KUx!v3moGLx4Oe6S$z2IZ5lKZgj&yu`Z1BiF7EfFp$kI3&* z2vs!;#=g4=R98vciNfpV%@tDsJJL5+N&#d4)c$Pg!*T5Mk7)^Dj zo7K)F#^z=Tv)c_={0ug$@<8ZbNlEFQ?5$XDj1Cm4bE1+Z3W5^T_U)R?N52yeTsbPi zjK-^|nDa4TdkrLLVlKHFwR*n1Amp^X#?Hbh5Me&W7K%)O|e$X}$GpXWTib^8Gwiv$Ua0X7f- zE%5k21pf_GrDScq&Lu87`eC{GR97VJ8+5El0-%4IuE*ruw(DQar|JlK>_3BJwAh{0 z4Nq02@;xc63`;<@&6*;RH4osY^z~;?45ke>6D4RQ+q7khFHPtK4|YU=LBa);)5b^BzkAkJj( z>igCHXOAC0etpl2_Dy+DjuO4uRGn#Q9>i>iAnmsrdR1CZ0R9J%vE7ebtlxvUK?Ewh^Ix2xzbj@28*t z{OW`E)l1@*7U&eg=fNy&Y>{}H9bX_|04fio?YgqY%88$r6Mfwga#?`lpN$?f>bBhj z$swRgx!RT%crNfj1<-X zC2r-4-=TQLk0Ud)x857pD1N^$SqHW5^1=xP^#&8D(*LG%Aua3k$<=0XaAKHrZ<*~+ z1bn>q1w?ev?^eGJUVp1G&r>pHYhf`1;<<32@QpyEt<=*ku=2a=cHaeWpzX$JkzKb2 zc!VM*Cb?Q8jH%7oto*m6rKM+QXVLKSehr$w!PwPwUC`|xG;%yxkAeHDJs35HJ4L6L zrhmLBv^`Ua6~kpp1qG}-@y&*i+cton@AC1~hP>ea(x;+qp8fPh0=`O=S3d=LBE19g zEsuZeLde;-`k_dwaNs}t<3jt(kI_Md67%A?Cjs?#~Z&$2FZVu9LXz-GO=B zZq=1)81~g<x{7lvRNHOf3*ZOeVhlHR=l|1L*Y`45lAZDP(&p=8!Wn z{Wf?5%j^yEEGH)(KR-YCdr29@aQ=@T9ygP4x{!ozY%B~28=#-mg~g79hG<5e!m=`< z)ZS>q_VKlcJin~DR{$g8+`aoTEDQ&H6+vO4Sr9~~Z9Shp16L&$Jv{VVoA_U^gOKnM zBA0@gs{=LlqhD#!myj0@L4Bebjg%gxM!1euZruwvM;4Ser^ezxXs?#2UzX6eZB_rP zvK}#>{(~za|2x0HCqGeFH)>25_wYRz%D?7);`?-qtEtwi_rUZoy47bW%)wbZkI0c z@$m+Oxp-EK9WOHaEEYTPKmj+krxAJgj*Px$8wDVLu0}1sh=|Bt930TtgVkKA#5~nT zC~wJF_%4F-Xv7>S#j@N5XXiWY;hvf=X#7AQE_OM!eRS$sqX8Hh-9_5bT zkl*Ps^LkxCm3m3KkRl_`6R=j@+uuiqn7}y9kV-gOFX;|gq*wnIE|V$@tiWA3Rcqz9 zNVkliuP-SJOSq@!HBkIb{`;I~5PIzxOhn41%HY8OMtK6)41kBAHfW~7M-B$QhW*U- zm)~R7`j=N%{h-+(=@uhn2)OS zhb~HG-+1>irMegP*J#K1Hk|V>B3M|##dOK9E_Q<5kSO7s-Bu7tJ>ZDws)vG5*@i$|LVKDJCfhHdpcPmzF^{K%q3i;L8= zMRBv?9pG~3(~XMt$=W#BSOks^_q>HuuP~^JWb_q*HRFv*)CT*?zgC0P(;h$Kl%dy7 zP(n(IZS_;;RxuQ>NGzMFQ88~mSe!GW-$04FI(@V=S6NlXXg1EFt*sppsdUc^h%7Rz zIq9^;`>6U<3%WEK8roY><{S=$k+v5kxj|n@Mj8to7AeD1S7AxE;D+Xh?)0iXXpGjS7;a;+E5SJW0D?acPdpGTM*S@Y5I8)1$!n#KjSR)fZXQbfS^H#=@1Md6mQFf! zAduI9)Pm6q=2FvgV)VFAQHKqGKl9LaWR#6!p{`H+?^ASij*Z1ZM+=RQH|eK5hn|!H z7;t^6o&=^t*jntGYo>nw?G(_?CI3R3cb-9&GdamR0d71t)4a6X+O(Er_=Nk+%*-(?hIb)2oDQ46)O0Ko zn)8B6LFEFWlFU747Z(gS05U3%$6#fD%WrPEBRLS#x9aQ+M79ek2gt{$WZGESs-mN# zzXO(_R%Pi0@DOC>1{iZN>L>vLw(KIBL*HeGL_wVN-GXa(8V5HmXhWafE>EXGRz@J( zH=D^YNF0$`2@pb=TU!%f>Pi47Y@sFO2?CtLY4`+o3dH;L;3Rt0G{n%`b$dF;2pud_)GP2aI>7Nf3JV#)(?fp_RvqXrlmPMJKq*iCM(Dt43aGZ* z`U;HA!AKU&eSOfQ|CI_x^SOM}ibpaVm#bx)8Z9KEr)DxzlUiSfLW2i=Q7%(pYC>f@!ZxucJyo32{6dg@KXjP{6)UkI5jo( zE~C-i-Ce*=l@Q1(#7N(Q;x;@wY6(;ktkoZBqG9Ompw1PVPw{~-^b4X;7$oD664C$h z@j5)M_X};fiEbAT|L&BHOgyMCpOON852H`%gU$X*pO2>7c?8(W7IRG)kDomGu>Mu! zU;Va{F%|_)z+W>{2Cz%N%MBP>z-c7nIYQv+&dkqymX)yrtz?aV`C+}w58&_5A3v@H z3OD>t7r*k}#-+|NFGs;J|~_+gszXi=sLA>CThoft&}( z`yUy>1N8{zK=Xez(!$_!lAxgO|GU*StLHqEABloQ`an;`3I+S_35AFhg%?81M_2tL zb_yY6qW;P2s`=xFG8zAS6)CW!yv1dc5XmzYi9PUTY}%-qzGqCa0pze6CP^UP_xfczN=I3w(cFP!*>Ci7D)|!27hS+t8%1 zJPgd4imcMz?~`;%sBQvoU8LVljHtUfG3Gm6XBMC2gZ_+5{-=NXCtq&`Lp#(&5R9^7 zFaO+~kdg6@wHi#adgG-&D4z$8_fq}kIX$Q_$aoucs)ZFy71jBy9|CA{ zRP%Bk`w90UKF}#b;v!g}QH#E7X$!#=!H!^P(^ARF$w>J@kDF!{q}Wf;opG}l&mw7` z@^Hi62C;<$)L4Mwy7$T8ncRa_fq=$$h)W?PY*nxMjTMpsN=YV6==I#Rv1^6VBI?q&|d*#slUQH6#o-~JoWnsf|luM=?@r+1@#xB3@n{yY~$hAw~dJkOAe|2x248|42Bz}(vh36(l$ zJm6&wEaKG+t5Ka3cssC$*REabNf&=GT48Sf=S3I@GyE4v9?*p8rffhX+uq+NfAq*5 zHZC(z0v>gITp=xhDPVc&n45S1`z(2<-<)FW14S4ryU9(v$QNG%SOYQxsP{As?R z0o@UJ2s%U#;vq%?qMX&)kww@(q(Zj4xVNI!Gi1}nkg6yN2?_MSBS?;+VPbamnL<8d z12QFeLNfL*Y&P04L)3d zEt3-g1_9grY@==pZjO{-}`>^Nj+U499RqF68S9I>p%b%^VJM36Pi~r zp8+*V7R0oQC~M};eG<^BMMvuS4758X8J;Y4c)ca1#_@5(yy(VH==lo+IC#i}t60?k zwv;aGYpb!cvnLNZE>w83**Wai*-%#J8GCr?h zLmJNj5%cEL2z&<-YH6-8;t}o=PATogm^b!P@@c%vdd*F;q>${5~3ybb76Lm+fKZz8@czxHXZ-m1$1p)x%!&7PX@ zYg(ECjPVVrJ{jGn{ONmy2y2bkN~-Z}rmyMt6T z!wXzoTy@n0AVmrq8m=STzkmP6T0h$0lywZB?(H50mEW1!%O_ z_&{^He9TNvK|#TsMM2goqKU-y=mqe(J_ry`8Mpr-fAZud1cPo5|GDy|#Ia0&_GZxL z4PP=L5s{qSTnQ+6d~VxZzVkgfQCSO%B6uw$2Vw@RO$6rhT3X3=`0d4|?^^GYQ&JiO z;cIJY0k}U0Yc`IVLs@Qe2*%9-z{)J$g{38G8k$^@F*$j8GSRl~?u^+d?q7!1cyXi) z(yA*ETcc&-00kAq#QeO`@lrC9Tvg#MBQDpoN}%Rxun{!C0U1PYHWvFOv;aDd#2!t2*x zW@ohnN%#}}f)O8MHK}N0dBpz!y<1C<(g@X6fyXYVsu~MPzINF1H`tzjx07(5WQ{AwH*N+Tn9v@GyzE ztY3jk(Oaa`TvLmt3F+J?QSDHQWJJ7<@<25XI0FlGy}Z2kjhvhVUp9&$KHT4nxX*4f z{H3ObM@UF0tEi~=4cFlhR1$f(EKpm%!n;fmP%{L8pj!C$h0pGq)c&t7njH2~W-w25 z_4Va;?mX`)A;k1ah>Oel^-EB}d9Ua`Pkcu9YS$EP#Nq42cqx5)wmTnW&vk6R#33G` zk^iDx1{4>Xc4&L40Fl;Np;A^joIm1@0E z9=ez$^`o1JA2ibsrl}7V|MWFWqg;Ppcw0Hz9y4+~(DeGF;p=BC51e)0TtTzllQ=O=m%x<90G$oCr0M0yp~s(XHcmEQQM zaE1#oaj)}7)3_(r;IkPW|5=FT(#*@h^T02!@ZY%YiST!8wbm+jipzdq2 zx~^sIf-IDKS0XR8D4Nz#h)bai<{w-$?*3J7T3fb3J7G8FGJ0`ftE;Db7+|CyYE zipt2$`(W_Ea#B(RLQ4(%DDu>*e!Ee7eBOu7nK`|KA|xy<77C(t-jJr7`U856y`U1{ zhpXy{!~yq_a~%yrT;TvTT+13ADw zH>%!io;3_cpy7N=NS-%21;uI$mPk!fg~`a{sJ`@2C9!+BxC>hp<#*xYf9Iutv+Jro z*>BMlM{0`m=bMpl%tF>^qayFo_38xkE?QOg?`<+>oKENf(Cvl9%6Z{^G@IriqQ1hJ z22~7DRKg!Wj+Gvtr|%lV5l?)bRU&`=`gQ2)QDnTAXSB7 zB)++bFOM`+=yk(2gx5b^)svpzY)x#1m%#SnS(V}2g6E7u#MOU#+)(e92^v#&a`KO< z&T0vU0|^k5zJRN?@&T3jHLNpe-%A)MqGHEG_e3Ev9=5mf!`uZkDlN|Jn`lImq7kH) z@j2dq@x~(A^kIFG>F@7vyzi4nmZw%ED-y(lbqZ*c6--gl-{x|zYZG?tW}}&~s=E5R z#^6SL0~QA>>M9w_A$oJ?W~}AzJy`GWZqzu>N#S*sj*foNCKTl4o`_~=W%a_JBVtCJ zyXud;v^x{Hm7rOFF#4(l*Nn6v)a@p0va|DL6>K8F7@*DQTdDO;o_%?^k`3P7a;$Ow zj?~cPd(m6BZ}){ilPjH`xgHzF*DP)P@wMHS%b^jdh?9LInr{1LkR8tkS#*m70>39m zbHU`I06oOS#6rn7hKpXpNmVOc6B6xbZ^BJbKYJz$7Mcv4l!`yEziqaML!F@T_IB%B z=vCX#dumUSu@78aymW8x8=V&o>xvIP)3(btouPNebIL^|$x}HvPdlQ17+2hQMoT-e z&d-wMjlUbm2tvHf0_CPHSAtZYa*+TlE30aewwGPafwxl!e34*kICE^Pvi493<#Xx# z839^1vnp5ieLLjW1mAfMUL2}!vEFMvZ(a!Vk~W(D{vo@dKxyZ8V`$p{GvLtvS&z93 zZ^R#6^(|&C*L6$k>sj2B(f9_rW zBc!5Y$Gytuvh`+beGiJMObQ7KD!REL_Wj#W|Nb57*56_oTYY%-s?{YQAGwBxg}qw0 z``snrZlJ1V3mf=>vp-c?FM~lix9+{A+@I9r@p`}Y%+14h?%X+@x4!!KZQI)?>=b}y z!oDq~@s$dzrP&^Dd-dYpZ{VthlFS{)fn!8lzD?a)v}=xRAN!Xjecw`7%_@uY_~ui? zxlL9>VtZ)$wu|@w{oBsB|NP05fxvwQ<+E8zyf^&)e=ofC$=#S*-rHQjV)ez{n8tN+ zH^S@KlFzd+L~X*Tu&*!8i@)bwS!6YL?y9SE1m-K;-nR1f9p6g+rzf8lmHxP|Zl^a7 zxSj~e&pdlNo9Ql(Nn-rFee2$wjJ=x06ARq;-Xl~2MDSBGp z)1Car$h0i^n4fxU4}*fpk>f|Jt@$gv|2aPl`&=$K$)xsK&B;xn;$q9r&i;30>CDez z{tPevM*&-$e{Zkx;mz2h>Zy9P^uz~MHXt@HV;lP7~qe?9e?TfT?G)9Tk_%afDX zOyhVQf*BbOu2`$^vBs`&mEUu}D_+}vhlIDN$o_sgN5}iu^MZFGYz!qbDw9e+`ONi` zEiZRjvh2A}omJ@a`F_`4p1HZ}^m7gd4oz8BkPR<4^Zt5y<-FCu{r28juV&7%3)YVg z`m(c;F~f{OA>s#@(0S9zo1dS1ePw2q=cNSGR?pbOte%&C#_#&Pgp*-`{R^K76?XIg zFTFThR%kuYT`RI3FNp!e(XoKVmR*%b?-|X zjvV~;z4OjRR)&oGea(SZ1s|Hu%~>&3<>>YNg7^k`0ZFx!mwwK#zi9n`hu8f2ijYlD z_txJyeR=i9JO3j#rQW`@qyDG--{+hCf2Zp*FxWm@xzs=V{mGM?bWToFJ-P2m#C@k= zy@+p>H>a(Aabnrz=&!!z#k@US({nv}|A(({u3mk2e(K3hcZ|2{R*F6RcVWwkY2Lqf z?%VhMni#`{Y&N&*RTFRcS|)i;GmlC!ZSBZ4FI9??`K`OPf~n4-q~h|7d-=0(ZcEuJ zaiQp(?v<-WRXhy8l*-vEw!CnxVBb2GdF^w-z_>WQcIPgsiO>I?E9+0KW?rnB7**zf zNBLCN#sh3sY77_Dc{{lBPYL*oyJX$fomk$G8h!RJpLdqU9=E4YpLR`1nL2&?X~mm{ zo!onjx7+^TQEmNhb95Hp;xO~p*a>}MvTvtOWnuWT?nK8k>1uu3W7Ylt=h8 zvGmiYqSa4JCaJU^zWD1{A_K#%hnzy5zv?%J#DAN{E6WKSfnxA<^>bP0l+XkKQ~pgs diff --git a/doc/salome/gui/GEOM/images/repair10.png b/doc/salome/gui/GEOM/images/repair10.png index c3c77164afa8b0bedb00d95174811afe74d01255..ccdebd77b60674cc9bbcc4a6e3fed88cd7b5e0f7 100755 GIT binary patch literal 6999 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

Xg6f4n8iy62$? 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 diff --git a/doc/salome/gui/GEOM/images/repair2.png b/doc/salome/gui/GEOM/images/repair2.png index 488a6a4c9c16326a68fb068082d1b4e9c753e1f9..8049d60e8d601a86def03e5b8e192eae3c15edd4 100755 GIT binary patch literal 16315 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 X2&aTZ3Q*vod_0BcsxqZdO@jUpruzNp literal 12670 zcmbVzbyQqSw`Y?C3!3153GN9HToQsiL4yZ^y9bAhdvKRPf(8ig?he6e+`VyaV2V4k z=B;`2=KJOkSaq5{b*k#@+CSMvh@!j%#&hE55C{ZAN>cPA1cJZ=ekf6pz$bgTjl2-Z zUl1wL_bM6z2Mey+D(Ck-$J5CX2+tBBpK%HNC+L}~K7J^!JRI6EUXA(5J#dg0W46(h zAY=T=&7n`UzbNTvyiAhQP^!hx8tp&qiSsOYzWypxpHq2Tgae6YxubnoPCWz$lVQAD zw|5y&o9;4nLc*dttVdhlGm4-ng%xYH$d`Ff%?hIv^GM!p!Li1O=X;0x9py(lk0WAW0k3Prwuid^6+-XsNWg_v9_p-@`)9)}%UYF<3wn<`a~ z`~Ca1)4uRS#PgYMr)gnSN`Lvj?yNUC%H?B>yr#HJYN}ykld(DV(MEPXZk{HiAx_Zp zfed}v5LpB(3zgr**?uDtE);h*;6=9lA9Flrd@TsLDsMNXSS&6fFVCu8s@-N#wYswtqE3GA6e4v+5*C2{c3Jf*EwajVngULbY|Hy&>>y zE4Q!nL!$U^Bg8z;5rZ0DEqAsVh%DwEs%E@H; zE|-eg!n^4GkGNgVXJEzYU~>pRx3%9n+|~Gm>gFkq==kL+g|%$q{cSBJ0dpmA*@DZi zQlReh{#={By3t@Qd3CfX!SfUIXZ$U#S0AB$4paw434_?p%#>(3ut7<}+>MdQn8Rg$ zEE1nZGi!QJNfl33^}W(4=f|V-^R)ym>y_SUDnbmTU3d4fcDA5Srr96H8ZyQFZ&`{b z>fgG-?5C|_**Ywd&rY5U+o8*gsp7_o5J(#}XhHBM3%|u*@fN4#+PhR3a~{F|F0tbt zOx~gHwpt!>Xpj&f&PtOOw!6(4+$*u#wWje>)2y3M02gl?(6Hz zX)zVvK%u9#YfsTQml9S+U^bEeLeArDr|vKfWx?`!Wx$^GST-W~W`1G+fv4K(+Rf3E z(@Wx}5YIiNZy6cG0bvBDGrvEFI6aNr|9FZq>Im5})`Bq5=ZA)7p&o@$HkSy(9S)W;UdPX&Cvsifxlycv7 zdn=W=;vpV3aQKWgUm@MaKiJaz6tpJC=&!PbA^&YU-JM8Dm3zGBE5~U%^9?JJZIerx z{dVMQ++5=OSgx}B^yZC2y4LNs1C4s-6k{v5ICmnYH*y{kAZ+g&WBkWVJC~L+_xIDD zoNhZ3+dH5|X2Id`;D`ts8s31wnyZ&HGyM-CVepj847uRHNB$O_yvK8^coBan^kex$TJF;x?^&@T94(&2KM59# z9N#0XBANdZMD9hGTtOd)*>cc(du96Qyi#B{hSYN6ATO6(0s^XXh!uc@CZ~gE{B47Mz zq{Ina5L2s0bTDRhNPGxZ_~6owRac~a$53#<>3|8%?zpyHD|M`ccES>4uGP1bm_GBH<*x%&`pS;$$jM{8PTxh$dIVOWLd8pevO=)3)T~TQy9Lbkmm6c zostl(p2B>%_4=mfYvP45Q_iFz<8UOF)Fqhjq&XUwn9^?zmL!frfeSc!iEdNqq&W>g z9hwarR?5{UDUPkUPcGu(NLl3@OM+j&OkhgMdT)Gw=LtD^&}wcpc}HwaYY2WOOX0ZNKt=aF_I~%ZY(rOw62hF!5$J;dkg8;; zyE?JMQQ7=9$w+2#b;p~0dGR?6QGy*L8Ah_Vd%PM*Y+`817Z?W|K3cM$f97 z5pPO2Z`BR%k&%y1CUB1bv|JgV23>Jsu3yFqAB`}u;k-3ObjabVV7*Zd6nFz!nB>$= zkD0kbxT^|-r+OSZj`ZEFYHKDVijZ#~Hb3WT>3dCHTf?x|4EGH~HQSCj zKUQSpOJK2ZZ4oEmzkwn9&kILu7e&thBJ~QZ7;XHd%t~5ymtCUMkg($*{C&@}hTY;O z3_atBY_Yi*f$+ALqLl5Xyw^>9h*0NCs%WXjNH0RoX*(L*=npwIO=m*2f+Z%UdM#o% z{ZW$Fgy_|ZeZ$=bW#5vmC|OvZrpvdPSH;A~N6cDop2VZ~l=C%_H!V851}RWk_%7wN zJ83cFODs62Cist8%v(d$n!NbEY41X^>9@~s*!Pe~XN_+46y8&^EwfiJHlv{)N%kro zTF3NnHa$?vO_zLhilZJ~O1x3c2-X#%k{kP;;RL%KHFZ;vp#{5A0$Z>scz2}@cP}) zrMT#lL0YqpTFTtqnZ-+e*b@~brSn{4#j`FQDoxBc#Y8^xC7XpHdeN38IQu`VS)Euk z@)r^y@M$=#4@?*_zj>QKYkhv4|b*y zh$KG9c0tFTiGr+ZRDWg!kwA!&8AA)RC(Yl~)wH&U?a%>LDGS^L4n6%0u zkJ9U_ex5nY@wl3^f|yp#vG1`)^1C7=##>p44#_l~gfEe!@U{8hK7^&jhLo-l@2GRd z>cZGIG|D|*Wz?tQNL+re7nCZ=wp$l5VP~qCG@5im6oU7G6YmArH`>X;= zcW00OIXUu1ysDq?W^;$2q~{w1bC(}_wl0^vVoL5z94>mfQaCZb*s?*lPcLN{=Evqb z@k-Usy#5OQwZDnCs~}|s9Z*pfdvim;fV@5T9aTb}?oY)Y*}5^!c!>@_m-T#a`!>N* z)A=!bqTcz29exu@U)U+;x196u89^CR3N>4P=k8+-+>E~uV3un=$!OEP(sH&FcJM2^ z_6}t5QdX<`a&1QNpvX#9tUANluH#yxrkr0)OrYYQTq)N-|BgwwdXMPH#}fL)t?7Wm zUI7ckTcemT!kS)_tPC|-%uD`yk1KTuao6i4zQYvv>gXJ*=j`TmDu@Wzpto@-d`=teU8LWE<$_w(Xd$=cefMZUvcvZif?Rpx9>UGuh zYVTW1L=-of$ylXCZGxcx4+~y6xqCb+4((At|HIlsm&|J|fxiC9Q}5VK+wFI;_Lq4A zR$J>DVJxtPCYnr-Y8-CZ<};@xNm~73r@RP;F#oi9@E)$OmHyP5UvKL*DLG-hsox2i zJz;XtO%=V{6hzowY7r)D5P0W@gzE5c`(y`!7aX*XP>yzDw~j zyIjN(`Guk4z6y)=&}c!6t;M0=Wh)H7~T~)%s!Dyj4hIIUVMGxu1)?YPstp)=#x09}IA|aK7oXac1&`CiDH?6n3%J(?O}AV@wYeKNqxnfn!wSbbjJuge9m% zOsrkq{2fE_L5vWThWw73+>7k!Y;T#qp%V7i+KdC&@J`K$6^oI9!1){TL({?5m!Y2- z1!(7~g6Q<{YESA#ISOiimZ|Ck8+YPNpDB2`9bss;e!Yuk*MCTzEUmdUMMGikoE-WNN+y7pmfI9=vf1CJcL`qaKpQLv3LspKi`c^Di^<71s| zMmiJn%hYeO(~(2#TOT_B_0#pZu@=Xuk1bL!{q6nWg^u)eDCMn#cDRL!Fq+#*rxd4V z05XLeN|@@%9_(Q4^uVOB>Ts2_Pdj9@n_Ft=sC9gAtl>7HL7QjfL&x-~VvW14jbmy> z!>i|I8oz!mxdk@0blMHD)Y!tBE)7OWYHe4ZgoK2AF*Y{fN|ln5T7h4mrt#Q4VY6YY zciNK|RA9S59pY_X@GhIFcW|(Bg7G>wSr>~BBy*SqM@7*I3Z{pLqsPR?Uf*3V@jCAl zW}FKQsJcjL8$YA-&*yWgK3@B2!Z*5MjZ;_0nFeujv*dbOts{wrg#{F0OBZd0@u`#$ z)Gei`Z^M0|ZRi(N{)s$_(z_MtZ*(`71Dn&eHutBf7?BBk24Hhhwo}3;J z?9aRVj<-O`T~(r8yk_s@{IRPvR+t;S z&`Vy{h@eo4%6;S+IB`~rZ+xHbpN5@%(VuCgw%?FXOat@XEKg^7Pzj~r5w)!X)PENmP7B!}me187AuR|yx|EDYhZA?rI zWTx4WE;?+9<)-%}G?b7+Y4@y`CK^IGkM41~;Bp3A%H*<|`)#zB@Pw=aIqa^2p|vw# zDTl{?9c8*iXYIh%X8ijHiKxwq0_AlOoP~_Myu5>64qV^Ae`nUKPKzMnUIh$5 zQ9=Atc&8<&BE+gdw$uf}ob5C(~|lW})yrd*SJJ+14{1 zl&I^5DlFXcaqnQZg06JPEds3CX_PnI4=fT-t{}X(V}GF`5zO%!GP1+Ty40&~iQiVY zT$_W*9n)IPv^+e76|;l=@l0VXOpy$&>sJCMhomoYa6+_SN|~C{gDp~NHJ-qroO`s2 z#>T#P{>kxhJ~=6g(CcQ0ZnN=i-pqZR2|p@j2^tnwX^dMT^|B9p?8Q}SkL%s}v=VN> zBR7qv61TtVU3qevACO`Cr@(;@0un}d#fX5Gz9vX{kI7)6-q|6}tg4!>yi~I(G(VsI zqw>eG-AZ(Ff!dk!Roq3fg*pd1nI*l@#6$w==As`8X*}G?3g) zOQI;fQN_14N)~kILdb<2HeKqba9c!*D<6%u8&@O)mj{;~L=?qmosO&fTbS8op{lPL zaYW#^Z`j#6Ic7u?F;`b#onea@tsreD^SiLRHD#P`jf}5-Cr5X+my9mwFd2!Pg^lHi zSD3)aJv=?7BqjC5Di3~qP*lVY!X#VGa6ep$jS_C#wq`C97D3s{ul8{_8RKs}>1QH5 zLjq>nDZ!wN?B3;9;TypzK>6HoHE3yR16@xyqf=7)8(mLBC+d#U17y>9UT|}B4;pjC z(kURdeqkT0QP6ALbC1nP7@jaw?i(Cr{-{RY5rk#39vuBF>51w7bW*~5mJnU?A&`@k z`J5OR7Z<;N{ra27{!OuF6=U_|SZY@)@?We`6|U>+f3_D_4z4d^ulqRvX@dBcuNXK` zJPl|f!I~xANb^|kUbfBzAZ=(zVDNzCr1a8O1SOFMfzIFd)4$W4yr}(=%JLBVb>Ni( z!;5TdTk}>tFA3kfI}ALd=da&5Y|2)8-N~fe+|)Wl_Gc@QbB2S*On)4ZSusuKVrOqU zNVm@VS#<%%{E2N$J1muxs?{+K=U7E7Xl@_jT!T+NUhpb~%(4_UX1J zE{9x0YPuC#e+V72_Px&JYGj{koTrN__&dTRscp2(tDU75Z{GzaRaG?qRMo0%CC+#^ zjPHW;(tNZ4BDK=k|E|zr>B?X!-X@xW>!$O@P8$z*+PnH0x=e!KYd5v<%m8es4^?`! zFYBmZMi>lCw)+~hm2Phj3E7WtGPzR~3YYRZt6RD7%2G^6axZ$UiPy9F=Zk@k!xVz) zgeb`)vKfwgbah|+By$*OX-E;C4;QC86n6>ds~c5EQQw?!S7LHVD}Ifb6=!HYetJJl zVU4l-wpC+<-h~}yW!3zATy%AHZKlEmOFgzE=3AWNCj7$IVtf1>(m8Q&#Dz$0ttOc* zL_Gb)rQ6}vn%-vPW8dfDAfwa~yV3gFR?kt`ic?{jDwZtB-BQK)gUJ+Q@yrh4io|sq zSx>$c32vue_Qz(G`3FM(wPumD_2hGqn?lX~v9qNYY+JiJJ5|Jl!9_o~Q0@A_6o9>I z{LS$HGsy960ZxHT{N1H=ao+pkj#;O^vVRX*qrurKeu@d8Y2kU-NNV%kvv&ptuhI|q zI+NZQ7B)sm;n2PLdbG?~s*a*`J8#=679K_Kz?@}mkxi~ zwBSIiv;h0;nj-f4rbTZ&SB?a~sUi5MOk(-w_}iR#)-!a}^mwc?t^&}{lhm`=Up=bc-bEM*_no(`DRTk5cot>g8sx;Kp{@dH8nn+dDLP8k}4K7cAyPg_v4yT9dmTrNRd-gRS z*hA>vWQLm5r(z|E(jr1ZrbW9nB`kn#jsidi0&M@;GH>}?WzP=A31ByiKk|NZIL)a*ZUh&jyrRwlz-sX9JECTXLCl=-IlUXsm|J&`q%&~aD6C*Nhn2&ToQ4A?B zd|626l%cM!ZrHRwn5_jK6G_JZr&x=d&vCmofki8Afu{9hVog4skM~~S{%TErN5a~g z)oQNNP8upQPoJlaJYA&D_ULB#AUq{C;@-paGIG6`HQ}{ghOlT>E`vG>e1pxKlC=b` zz}cL9ak#KIaWVbtQ^&7Q6+EsdKa_7NMU8lAmIKj=+DE^C*qJWP%-J_?YAKrF4?>a?CW z4IN$2i~2AEw#|};LxZtwF^`*_ysvIKFqcI)W?)K{a-0MX0K>qlUA86p$Z zAe#KzS`DKF#RpBMVYIcMN{^TZs;!`3AMP%9CJJx>9W@4I@9Oq8v0fIo*z~E^mQv62 z9M7;jd?iuO%T9I=TEo`hd|+_CJ6UNq9tgJ38^>)$ulsA0T>12V->1l?h5F_r};$iY=sGj{kr6$>lRtP3v3vCI$L8yp`0hr z;zA+)amQqEOd?a@~tcd6@nc7fL+XK&BWmmUfDGl7=c$A*VHnD?jO z`Ursfm~u{IWs>vS`?KoQLtcZqwBomK9Qa|E^qV2%P4A&%VQqOo+)^wzs$a<^vj^nL zrM|?+7gtnN^j(JZ_VzBr%&nl;ushe9YTg}dwSN(Y`L;cz-~e{4MUj9=d_ zv-zZo)QZy<0vM}YV7j^;VJ&3-KY=cQ3daQ zY3&>L2*@YdU1v47;-h@!pWn#G`!|lr1jhf3YSJ2|5kMd>cpuLK{6}7@N<(lH7!;%~ z_7+s^e_Hb_uUFFnvFX%-KvyFO#4IB((!a}L{~3g;mCYnOVv^}nbJJQwW+nxbkcJYA zRVgSYwD}>c%V>c#o1>{mQoBgFaRL6;`jvZrM`rWC$Q@DrzlJ> zudRIm!f=6NdpM3knaAVmHJgGfk&BCqfS}+f(z>MDS{`HBOy9!7_4W1Fw?ni3fq~^7 zv-Tjl1qTHoo0*xN?LdR<*1CD;{wLD^SX#SF;&LJu&xsx!lzn6g{IJFf$riu~#G}ZE z3Y7DDhlW`G;kV{6;P)6s}6zo_V$S=;d_mR8k@|U!&ON<#kJM7{<}QyhkJ9g z{Zj2{LZ4w0a;g-?9qH3wo{A<{SXp^49o6I57c59&4obFRzmwI&-j7CUhEH z3ha*UcDa|lasmSb3qiXuC@3fgzF$|ddqy-Kb~dJKlgec^ah_SM4jwh(v^P~?Wn-bW z&xf#kGcuJp17>w6e5gK>Cb)LxaWiO!M_-mM24nr0nR=A=_&6b;es?3&`K7I>ScOU^ zteE_Z%D1G&%253{&%7J^Ds0+$TP(q);4YliCpc>J3CTQPHBqY`-ELYD|RjL{kT7(ha)9^_iLQxQ?ots?hhvOLQl+n;Sf z*3;8_`SPX43oHH|Y=HN`xUSvGaKBn#Q+QoZf{Kbt$;X%SsQ99yOn|u!v0Q9Su5;MR zp5Ej2z84TA-)&2-FbTC{!anf`Ya>c)gtRT@jHaF*sAKm)e(G9{7V)Es$a(%x}Ce_NySFh(GDoxGl@ z>@|U*pM{W}< zPnPncEVh1RpioLvHRR)A6HrKKd!#)}!LIUuri}=cteChh$Qe>kN}fCqN)2E4&z~*4 zBTQpx6}`PUAX~bF!!?fELU#|v1Mmo}!Jhb;@fBNyCsA3R-SWmfmLsLOG6qOSrHaYm zihP+wR->Uji$`}9$bmyFN0a_I22y~jiFu9TV8JsoGMFQ^Wwo_QIdVtdsjAxB+b7*^ zT8e!5@Tu977x+@0;C)tBa^9RBbO6d>U29_$koqhg`)#7~6V?aog|s?{|AV1Fx>jLq zjlI97O~&dROu(XC?c`-9olcRyN)&xbN;=pVOBX^&(N=u`P2w=Y)U&xx0q+vH8Q|Q{ zuNbfXUb*180R{wh9%|?Rbf@_oM1O#E1Y+iBOV4oeb8Q_*dK*>VJ*D7pQns&->eAynVGCh($5n`+^GfHR9+@=^GY5&6iCA zDc7f498S9`jZIBJe(Bq-8)#OUcXfu~*f}_KSaNZ=o_vAG(&BjDo^>@ebMKh#$fk2u zN#D?}(25?Y9w4Y|YsjVw6}Mha8#irUH9k6w^37K#VXvIRLBy9C_NXbbS%ER+ zFPL|tl;oD_EnT=xdh|)`xWeY5gzuUO3*6e*tar$1W+5N7e>f&BWzBiXBcLYay_trNFr_?Sy~a>HlX_ zwJ#mrejpY*o3?(%C)OkxAZj5ACXZ`EGIn-u%zvSuojOdEsJbQoyXf{wN=hPWmd=r8 zJ&U(k@yAvzD6}TeFLz<@J%8L3;*o9t#)xJEnm2&Gt7_uF%ET%(JgbA9t(HIK^Hfo_ zsy@|`Xk}%^a_0B<30Gj)6c%uo&;f=6e9)i6RM47}{tC|`%_^|tt#r6kEtgVds%;Kd zDh+MP4iEqGR$sQE6z$@@qwZ+S#Ohx%g0oQ4iEi+)Ebl)&4J+@fewl5b)*QyzPYaa} z?vH+<&GOfO-YAHr;!#z7H0C-4DRO~DATWRWSxDp9ckR`BigS;c9C;f{h_;CS_&eaZ z+T>@XR1c*O8I&DOY1tf)`e7Y!>rwo)$!vzhPe&qm%A5Lo7zl3uc95W9%2xmF1Xbhm zXhvXTWBd5=BO$LnHT}^b#|Tfc9!){P<5RCa*0u!BCzL&|yAs0*dD~}o?1^AvO+6rr zXUm;EK18fu1}tv zTFw0SRicuJPES7wx8|FecribgBY}#J{$()f4dUW2{$yB$#i4WnUR zx9~$Mb_Qqw2v7>f_weh<8uqt?5)_`Dao+OpOQ)ZX);n1UT`fQTrB-B^@gWFvEYF1k z$sa3A0VV`L8DN7v+UY_~x35i?|8f(Y3j@CJqbHK(>qp3=|JNP)UJuwZY2~_;#q#8S z4S-_5fBzn_AD9t!Ustl%Zs)2jX0a=L^DnajW1d{-dSbqda#(SmdA$CO4!FH9eJV^w z_;SzpXJaukZIYjo6gF zrKOfu;abS)*3i~!*Pcx*+hrRs=|W33f#6X9>VR}0UIjC2%=GI~ z8*=i|{4;Ro=SRxa4`a8J0y^N@SFauQ9_vL_c-^_d@9xM>LB-;9ElT*w|6nhWnMPL* zz^RO8PmCHte1sG8h63-t`QhFj*k3$X(mG+bbwlbgtE@8bp!&x;offYh($yrfatR)Z$tCg7SEfc6l6?xD+?-ZmNLLvuWoJz z0;B9?y>A#GiYnbmHe+aeuM*Wi+E z_Q<2aqLLF(1WlT6EVuayT+A2}MsyeMn6msF-$@cOc!8=2Cpr5n$s!QibL_VfK}};O7`o03on(aFk27CQ_fs<`*)K zRF?h-K7R2}0?$qpUDrcVH|>`%=Buv}6+s)qFh(>a=gK3?^^0kI&ee@j>PH^GQ(Z9VN<~8$!OD zo=OwjH}1b1lD<7>G~H|9Ehqxg)+?Z6$P1lyCp0^}aZR)0i^To0->RFfAboQj8jKgVe9G0^fO&X=$B`I2 zs4eq`pcoucH~0C|4mv+Hm&Q*l{c_ZkN%U?J<#4x3R;86?XaRKrUnKZXJf8K1p)G^i ztae=j>N_fM{x~fj?VYo{QHehepwW2(E5;8Q>4tXeM7_nDBEiJJUahE+0w+;4LM7VP zp%I-PwqKAAI7fDOfoW~LBU|AkxZd z5vc_wTty{FmE!$+Y@%vtNo~LUFiJAah(Ur-DH q`e<Q diff --git a/doc/salome/gui/GEOM/images/repair3.png b/doc/salome/gui/GEOM/images/repair3.png index 4c2a41f9001a120b98cd681fde2c6257501de24b..930957d5b661336965fbb7421d8887dac34f6f2c 100755 GIT binary patch literal 20505 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 G&;$Vfqz5Vh literal 15621 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 literal 15084 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 K@gmXB-~JbrWZ*3T diff --git a/doc/salome/gui/GEOM/images/repair5.png b/doc/salome/gui/GEOM/images/repair5.png index b99fbcbafc6656e7864fccb721a683232bf72854..de44ae3c0158f7bf33e08e79e79207a0398cf66e 100755 GIT binary patch literal 20102 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 literal 14981 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 H$p8NUn$nX& diff --git a/doc/salome/gui/GEOM/images/repair6.png b/doc/salome/gui/GEOM/images/repair6.png index 5123d1f841286f649175afca327df4fb17c53742..652f4eced984c654b97751983250c358c2b70b43 100755 GIT binary patch literal 18833 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 z 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 PsSt5t8KD9}t#AJe*oU4M diff --git a/doc/salome/gui/GEOM/images/repair7.png b/doc/salome/gui/GEOM/images/repair7.png index 2b553b9fd6f429e9ddb86e9b8d152b78cba22f32..527b3b80b8f87ab7f557e3171c7c511485e35bb5 100755 GIT binary patch literal 20695 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 literal 12358 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ⅅW*^GXDdj){tp`enqois^Br#m{h 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 l`;pIZZJIAu#{| literal 9956 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 VRsHHH;O#Y#qMWL1ne_WF{{~305JCU| diff --git a/doc/salome/gui/GEOM/images/restore-ss-OB-cut.png b/doc/salome/gui/GEOM/images/restore-ss-OB-cut.png new file mode 100644 index 0000000000000000000000000000000000000000..51b5a4fb4dac56863c88656f1d985e86fbdddd7f GIT binary patch literal 3571 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/restore-ss-OB.png b/doc/salome/gui/GEOM/images/restore-ss-OB.png new file mode 100644 index 0000000000000000000000000000000000000000..4db07ebfabf5ee2cd427ed322bc393719a306557 GIT binary patch literal 6393 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 Gul@-@C%nu6 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/restore-ss-dialog.png b/doc/salome/gui/GEOM/images/restore-ss-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..64fc9d2c18334361847ef0fcf2f0b224561a35f0 GIT binary patch literal 20816 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 VRe~N_2qz_~xVutZs>rmYzW`NyKq3GD literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/restore-ss-viewer-after.png b/doc/salome/gui/GEOM/images/restore-ss-viewer-after.png new file mode 100644 index 0000000000000000000000000000000000000000..d25b113d1ffaffa5f171cd9a3ae324fef500409e GIT binary patch literal 2275 zcmai$c{JPU8pj#?z8$rvMXQujO$kM{K`?DC9g$8g31f&Y5=NqG-#V!1jv?GwTf15k z(uSb51l78hCQ_7CJMjy(6r;H5z4OQY0jf;zk`z4E&wQwNG`p{TQNs0^s~Ymh*5gj2Yp?GF)0ZjIH!75JB+?Pb zPneY=qeNZC&03H`XA}WFcw4U58`En}G#AzXA@()*#0ooXd~$y`addoad;LQ;esMgk z`*45p9T!^1AvFz6%K%y4aQ4nJlQ+swIIZ0?hK7_RPI_CVycowEqqWAmx5sMt5YYs@ zL_XV69;Mc1Qz1M#^;!4|eQ%s^0`vCKodeAl7nZuQzbw>-9h9fyYuaplXx%4coav+) z*@?oi<12k}=n78D$HopQT`nTavzpW)VGjBeP54JqHE?OkCjcBLW2yW#z}9fg&py?; z_d*FBO5@{0cy_Yt?_g0la6 zRkKy;(^jU7%+we{Qw>wnugH5BW}h-z&XFe~l-pQTF&}^Vwmo~1#$>oyjF1G3W}o*w zObZ7sw2Kc#^e>B8+Ytkxg@G?PLs9pgjAlN*38!#=jsmi@8I&5>>$qG%{MNAmzEb@p zecvNz5JT*qrxt}n*7}eeSASr#esnWcyC1~_s!US9chv!jlPhkje7|Is%p1;f^qu;I=Yy02`BeUg~LZa?ckq|6UIe}iF3*?4$= zT1{e7LE0lS9zL&RJGX40seipJh)Vj_WF7dC1s8^43-f)v^=FP%0K+3HdP|7BwVM_d z24*wc)YD9Q$T6Lw_|2BU7k(B)l3yD-x*%_MWsl33b58yOYo2yN&lRi308<~y#%=5~ zC}^Ax#m;_Y6pU{}cOZFq2*UibD+@|%dE>w3x7)hTP ztGiz|;!eCaRTHeer1=eA^m=g^pw+G2)!S*)L$6b8z0l)P)}2u&;5VM}7t^%Q7XMSd z_jmoUMoD`qdpNND>{fPL(h5gPTbuD<{3&XeJRm;C2_4xd%UWWzmiZ4sO~KabS_{#e zr&uI^_}cNq_A!-$giQQ0cu05_tU6fm!luGpKaM~@qGX9tV39Z}X*zR7owiL6%q<;` z@%3kT_tUrn188|24&=;8`J*9ii7J6>s=lqvRQ%!-wGo_+EbwYG?!-woFB`?x$!OGu zj@IA#fH9CA6K6TqqSc<3`&H)PHv)hu&HvQ66Z|2k6+}w&dML$&Vt){p^v>|?V^`Wy zd%J`^fc+uKiH;9?i*eehLdl#>5Rb-nD=Up64)2(7v3z>+e)+zF+O~1HO4_o<+YLUS zNl$*6F?ijec;U6Z|K}Pst5C6XxRR4@Xk~95Ax_Z9N2MQC?U-x~6kTQv2cuEYpdK{s zRB@V|ym(8ehGuy_Y9FJtQ_d;VBhGWTf(i6$6tWuP;LtBcM&^N6n4}1KaWbdl7sJA+ zo6(HmPe*W~ybSEOfY#fM!z*Y3H{Y+lov~YwXa6a2YH-6nBNdQEA zcC=0d7}=}J+Jfu!=*nQ0E>m;xw_t!xcQpjzhpf5oiVC;s|dCVs*j$n#r4D1(6N zTAW{bd>7=;TlZ7EhE0UQx_E zU{HHjp1Vkc+K3=t+-WD(o~=%c7^H?J{3>on zOELVMK|zgnJ-3n|G+lFAqPe1;rFxG$3UhpWin?K^A$IiPP%zph9J*QgRH4$wO)~uG z!BDGT)o%4QtitH@N-J@1sY65aT8Sd5P%*NIQfFv&**YpKs||)#Xi_RMcK~XAotxVs zVSz#5b3xX+vd?B3hwD-4We6}uLvvl7Auf?V-Z&gAS{z6KpR2UdjR18)X>y;BL?{-M z9iaL%E8pWIT`6G+P00uK=sDkL<~ktI(=XWyRi%v7qy&06cMBTR{gh1xC4mJzClri=!IYu}XJA1yIgOxurg5zc49qObpOH3Ru z{7cCp^4`kW!QLoOMv3T?+@_^50H6ee050)wPv1NBUk3mG;x9FipC8?+MdUsZ3@<{i MPHv8kP*mE#0Ad+>!vFvP literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/restore-ss-viewer-before.png b/doc/salome/gui/GEOM/images/restore-ss-viewer-before.png new file mode 100644 index 0000000000000000000000000000000000000000..4fa5b1319671018d052727f3c5f5106974c0ecd8 GIT binary patch literal 4187 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/revolution.png b/doc/salome/gui/GEOM/images/revolution.png index 68761025a732b4a3ad42bc323b6069fda7c39efb..f0e3fa9d81864f878b092f7767d50badfdb185df 100755 GIT binary patch literal 20074 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 literal 16962 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/scale_transformsn4.png b/doc/salome/gui/GEOM/images/scale_transformsn4.png new file mode 100644 index 0000000000000000000000000000000000000000..fafa6f084c7cbdb1c6f4708f05de5bc283c5e3da GIT binary patch literal 11835 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 literal 26899 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 diff --git a/doc/salome/gui/GEOM/images/shapesonshape.png b/doc/salome/gui/GEOM/images/shapesonshape.png new file mode 100755 index 0000000000000000000000000000000000000000..0c01b3ba7b5bcc1b0d1dc4fa5141bf56289ce3c8 GIT binary patch literal 21578 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

    `2H&O4x&mX<<1Z?<#zZo0GT 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 F{sB!<^3DJN literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/shonshex1.png b/doc/salome/gui/GEOM/images/shonshex1.png new file mode 100755 index 0000000000000000000000000000000000000000..7a1c97ea18a3a7df0847dab77a3312a4cf809689 GIT binary patch literal 4354 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/shonshex2.png b/doc/salome/gui/GEOM/images/shonshex2.png new file mode 100755 index 0000000000000000000000000000000000000000..7d16db9b5a9f49ab927a580950ca33633c75c0f4 GIT binary patch literal 4534 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%0DyPyFj?tjUt_eTNR$k zM;OzKQgGxpHpYL+Mj&i%QI@LeXf3{4__w@|_~oSyW&TU>YPu%lo%)h!UaRnL<{C+k zhs#~k>O0smr~cr84@4sU2#-RpsIjYk6VvfNAyn<#{ITjkdL^%~?q9$x8db;+@qvSU zxghQr<*1uw7FMhS2nNOMFrr33YW}!^I|!;nGAM_s>dxCW=taUc>EZ;wVMwOd*9z3S zP0i3=>rJ1jyzTFoFT`G8ilt&SLI(n2zvL@Diu~V*2u357eDaH3k%fQo&q6`CHyfEK z>Xv#KEl+%J$W291`C{sY~uN@m$RLI0buEuwRk zxFNiZD7nnRQ@D96)Ppsv$Z~q(;!4S8vD?mDu5%f- zq=0M$kf{T_7lu?GTvY)BgAX;`75?Fil!`%mc%;?E-jxo|oeqTqF|@93k96CtPq=zj zm$mhuK}d*w)^y!`Se-p&*vw@6k&f;2tECtumfPd?rHSKw>|q8k|xjh zL$LN)-=p#PO%g5TwqoF75w>kXeeBsTnI-+Cb8po*)z41jZaFp5ciYWFY=w_c{9s%2cN}^Ok`F8Ym-da`RF%@H z%qA(BYt?gh)(0Iq!G8g%@1nr~ literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/sphere1.png b/doc/salome/gui/GEOM/images/sphere1.png index 377f1c9ce8c2015df0ff8aca64f65bc068e21565..ceb1d2d2b61ae91c3a49166e513b7ba2274d73c7 100755 GIT binary patch literal 16799 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 literal 12869 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 Oh`fx7bg|T%5C0GCWL|;* diff --git a/doc/salome/gui/GEOM/images/sphere2.png b/doc/salome/gui/GEOM/images/sphere2.png index dd2cadb1ffa8b281b721db56507fd76c3379f587..4d8016bff00ef8acff1fc6cffcd3a5d4a279795d 100755 GIT binary patch literal 14356 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

    C(DM-%6jvuud4_LlVt1RT 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 Fe*n=d77qXb diff --git a/doc/salome/gui/GEOM/images/transformation10.png b/doc/salome/gui/GEOM/images/transformation10.png index 0847a5e0359ddb890c6133b9d1124806e3e6ab3c..7aa59f16bd0772eddda7408cb383ce07be3b962e 100755 GIT binary patch literal 23030 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 Cma9kr literal 13674 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 diff --git a/doc/salome/gui/GEOM/images/transformation10a.png b/doc/salome/gui/GEOM/images/transformation10a.png new file mode 100644 index 0000000000000000000000000000000000000000..c24b6aac5b36a05d363fc2901b62f66a2126d5b8 GIT binary patch literal 26996 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 literal 12912 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


    %@)a&2OLgRK>osHdb)o^s& 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 Pv26ft?9ioFXJh^kermuS literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/transformation2.png b/doc/salome/gui/GEOM/images/transformation2.png index 569752740c6dc8efb08661a0d30dbc976a6db9d1..3642ceda8e5757741fcc4623f3741749eb126430 100755 GIT binary patch literal 25272 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ß)ok!o=7NMyfD_L<+ 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 diff --git a/doc/salome/gui/GEOM/images/transformation3.png b/doc/salome/gui/GEOM/images/transformation3.png index 96a1f1e36c8336df1c6c975b3e18fab731022984..fb9a09feff570bfe898b3ce69c008011c01762a2 100755 GIT binary patch literal 26802 zcmb@uby$_%x-UEt>25_rMCp)jke2S0knZkQKvGf=k&+US?gjyo2FXcx*Q7hnnD4vR z-rqiZ?Y+-;o%4rWQ|8mp82A0FLAbJ_G!{B3Is^j2l6ftm3V|Txf`4nM$lx~`5i9Kw z$Ww@ngs8e_>h7GEr<%rH*WvlVwAfa=>hy!a2O_;AM)XMNy(}|j^mN+h4+*7SAxINT zBR%H9%?zvvrFXy_i=qKsU?X@C1FOA@$g4P3HTB< zP6;vA`p2da`K)BR+0gmKx5P6!Pli!LN8S8 z0}I;^h|5+j%04eSlxS)^n#TMLW1YF$CnQ2H78flJROni2$~4~jRGI^wOfe9rif|TJ zlCc{?Xe1YSTg&*iHuJ?3F3lTOe|gR7vsF#2z|NB2)==Xixeits4xt>4*Z5bH)5g3& zcS$`5=WCl7A|y_Rmn4=uwf+nXSK1{lXkUw=6btfUls9{BSESb=lp^%1ZBrAs5yh6LK0iShp%8_Y z*R18rpkeEg_Z&l(pTwnOS6pQQxzX96%}_=wwEDBkJ(b^q(|PT-CX*hd$+z-gcd{%!q8h`SVaQJX*=TIaGK7jtI$4RyZtnTX`jWoPWs|k9F-JTUZJ`=KoEpuQ?Yhp+FoR5 z&u%tEr<4-Q6NibQG!BuJ1a%_YbwtcZcdlO$VjrB0&(HJZEs1?MnJK;7)c*d1`0Ac= zmSB~aFwyaG%iSDaQOVe`x6pnFmC_e$6u7d6q)^NR8V8`%EUTI=s6E;2h^$sN?PI)Z2@Q$XWoX{G^|A1U9N971&N z&vgQ5?{GmTROn9?v86_A+>T{79v)B4&=5&vN$mm4{k%$l6H6`k@5KcHGP8HoVd%oF zRx^ti0ri=A352{q4}Y3>>gG~P#}t{KYdt|N^@;Vy+SQZkd3!$p@U9#4yZL#Ky2C`M zAf*tuK9O_Pcv)W_O{x09Cp&+-H6&Czv)b-NwK

    _h|t8oL-77!LJZ-$|6(@5@4BKh63)Vqge-{1@Ke2*#WZi

    L;_r{UCMhX- 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 RPe;K>y_FL$71RIn{{a0nTyX#Z literal 13415 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 IZ}h+X4{&_Xl>h($ diff --git a/doc/salome/gui/GEOM/images/workplane5.png b/doc/salome/gui/GEOM/images/workplane5.png index 925ac573bedab021996d5e69304e6d40b705bc4f..24004c1114c61083727a7cd563052beca477f4df 100755 GIT binary patch literal 20985 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 diff --git a/doc/salome/gui/GEOM/images/workplane6.png b/doc/salome/gui/GEOM/images/workplane6.png index 1f65862f8df11fc6a29e1b92754e5f3003587dde..6cdcbdbca5bc25c117dbcd39b7a0589df7ba091f 100755 GIT binary patch literal 19151 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: -\image html image167.jpg +\image html image167.jpg "The initial edge" -\image html image168.jpg +\image html image168.jpg "The edge split in two segments" Our TUI Scripts provide you with useful examples of the use of \ref tui_add_point_on_edge "Repairing Operations". diff --git a/doc/salome/gui/GEOM/input/archimede.doc b/doc/salome/gui/GEOM/input/archimede.doc index 6019112b6..933a8d018 100644 --- a/doc/salome/gui/GEOM/input/archimede.doc +++ b/doc/salome/gui/GEOM/input/archimede.doc @@ -22,11 +22,11 @@ deflection of the mesh, using to compute the section. \n Example: -\image html archimedesn1.png +\image html archimedesn1.png "The shape" -\image html archimedesn2.png +\image html archimedesn2.png "The waterline on the shape" -\image html archimedesn3.png +\image html archimedesn3.png "The resulting plane" Our TUI Scripts provide you with useful examples of the use of \ref tui_archimede "Basic Operations". diff --git a/doc/salome/gui/GEOM/input/basic_operations.doc b/doc/salome/gui/GEOM/input/basic_operations.doc deleted file mode 100644 index a0dc155af..000000000 --- a/doc/salome/gui/GEOM/input/basic_operations.doc +++ /dev/null @@ -1,10 +0,0 @@ -/*! - -\page basic_operations_page Basic Operations - -

    - -*/ \ No newline at end of file diff --git a/doc/salome/gui/GEOM/input/blocks_operations.doc b/doc/salome/gui/GEOM/input/blocks_operations.doc index 8fe02df8d..685f99509 100644 --- a/doc/salome/gui/GEOM/input/blocks_operations.doc +++ b/doc/salome/gui/GEOM/input/blocks_operations.doc @@ -2,10 +2,15 @@ \page blocks_operations_page Blocks Operations +The solids built by blocks \ref build_by_blocks_page can be +processed with blocks transformation operations: +
      -
    • \subpage multi_transformation_operation_page
    • -
    • \subpage explode_on_blocks_operation_page
    • -
    • \subpage propagate_operation_page
    • +
    • \subpage multi_transformation_operation_page "Multi-transformation" - produces several translations of a block in one or two directions.
    • +
    • \subpage explode_on_blocks_operation_page "Explode on blocks" - +returns blocks of the given compound.
    • +
    • \subpage propagate_operation_page "Propagate" - builds all +possible propagation groups from the given shape.
    */ \ No newline at end of file diff --git a/doc/salome/gui/GEOM/input/boolean_operations.doc b/doc/salome/gui/GEOM/input/boolean_operations.doc deleted file mode 100644 index 80d560e6b..000000000 --- a/doc/salome/gui/GEOM/input/boolean_operations.doc +++ /dev/null @@ -1,13 +0,0 @@ -/*! - -\page boolean_operations_page Boolean Operations - -
      -
    • \subpage using_boolean_operations_page
    • -
    • \subpage fuse_operation_page
    • -
    • \subpage common_operation_page
    • -
    • \subpage cut_operation_page
    • -
    • \subpage section_opeartion_page
    • -
    - -*/ \ No newline at end of file diff --git a/doc/salome/gui/GEOM/input/building_by_blocks.doc b/doc/salome/gui/GEOM/input/building_by_blocks.doc index d3964eca2..fa2611d7c 100644 --- a/doc/salome/gui/GEOM/input/building_by_blocks.doc +++ b/doc/salome/gui/GEOM/input/building_by_blocks.doc @@ -65,7 +65,7 @@ four edges from which the face is constructed. \image html block3.png \n Example: -\image html image185.jpg +\image html image185.jpg "Quadrangle face built by blocks"

    @@ -110,6 +110,9 @@ automatically. \image html image181.jpg
    Hexahedral Solid built on the base of two Faces
    + +The created blocks can be processed with \ref blocks_operations_page "Operations on Blocks". + Our TUI Scripts provide you with useful examples of \ref tui_building_by_blocks_page "Building by Blocks". diff --git a/doc/salome/gui/GEOM/input/chamfer_operation.doc b/doc/salome/gui/GEOM/input/chamfer_operation.doc index 53e114094..38fdba843 100644 --- a/doc/salome/gui/GEOM/input/chamfer_operation.doc +++ b/doc/salome/gui/GEOM/input/chamfer_operation.doc @@ -16,11 +16,11 @@ Dimension (radius) of the chamfer. \image html chamfer1.png -\image html chamfer_all.png +\image html chamfer_all.png "Chamfer on the whole object" \n In the algorithms below there exist two ways to define the \b Dimension of the Chamfer -\n Firstly the \b Dimension can be defined via \b D1 and \D2, which +\n Firstly the \b Dimension can be defined via \b D1 and \b D2, which represent the offset on the first and the second face forming the edge. \n Secondly the \b Dimension can be defined via \b D, which represents @@ -44,7 +44,7 @@ Face1, Face2), where \em D1 is a chamfer size along \em Face1 and \image html chamfer2.png -\image html chamfer_edge.png +\image html chamfer_edge.png "Chamfer on the specified edges" \n To create chamfer on the specified faces of the given shape, you need to define the Main Object to create a fillet on, select the @@ -62,7 +62,7 @@ ListOfFaceID), where \em D1 is a chamfer size along \em Face1 and \image html chamfer3.png -\image html chamfer_faces.png +\image html chamfer_faces.png "Chamfer on the specified faces" \n To create chamfer on an arbitrary set of edges of the given shape to define the Main Object to create a fillet on, select the diff --git a/doc/salome/gui/GEOM/input/check_free_boundaries_operation.doc b/doc/salome/gui/GEOM/input/check_free_boundaries_operation.doc deleted file mode 100644 index f586dde4a..000000000 --- a/doc/salome/gui/GEOM/input/check_free_boundaries_operation.doc +++ /dev/null @@ -1,29 +0,0 @@ -/*! - -\page check_free_boundaries_operation_page Check Free Boundaries - -\n To Check Free Boundaries in the Main Menu select Repair - > Check Free Boundaries. - -\n This operation detects wires and edges that are not shared between -two faces and are considered a shape's boundary. This control highlights them. - -\n The \b Result will be a \b GEOM_Object. - -\n TUI Command: (NoError, ClosedWires, OpenWires) = -geompy.GetFreeBoundary(Shape), where \em Shape is a shape to be -checked, \em NoError is false if an error occurred while checking free -boundaries, \em ClosedWires is a list of closed free boundary wires, -\em OpenWires is a list of open free boundary wires. - -\image html repair9.png - -\n Example: - -\image html free_boudaries1.png - -\image html free_boudaries2.png - -Our TUI Scripts provide you with useful examples of the use of -\ref tui_check_free_boundaries "Repairing Operations". - -*/ diff --git a/doc/salome/gui/GEOM/input/check_free_faces_operation.doc b/doc/salome/gui/GEOM/input/check_free_faces_operation.doc deleted file mode 100644 index acf9d5428..000000000 --- a/doc/salome/gui/GEOM/input/check_free_faces_operation.doc +++ /dev/null @@ -1,27 +0,0 @@ -/*! - -\page check_free_faces_operation_page Check Free Faces - -\n To Check Free Faces in the Main Menu select Repair - > Check Free Faces. -\n This operation highlights all free faces from a given shape. A free -face is a face which is not shared between two objects of the shape. - -\n \b NOTE: This functionality works only in VTK viewer. - -\n The \b Result will be a \b GEOM_Object (a list of IDs of all free -faces, containing in the shape). -\n TUI Command: GetFreeFacesIDs(Shape), where \em Shape is -a shape to be checked. - -\image html repair10.png - -\n Example: - -\image html free_faces1.png - -\image html free_faces2.png - -Our TUI Scripts provide you with useful examples of the use of -\ref tui_check_free_faces "Repairing Operations". - -*/ diff --git a/doc/salome/gui/GEOM/input/common_operation.doc b/doc/salome/gui/GEOM/input/common_operation.doc index 21cd27749..dfefce0df 100644 --- a/doc/salome/gui/GEOM/input/common_operation.doc +++ b/doc/salome/gui/GEOM/input/common_operation.doc @@ -9,14 +9,16 @@ \n The \b Result will be any \b GEOM_Object. \n TUI Command: geompy.MakeCommon(s1, s2) \n Arguments: Name + 2 shapes. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html bool2.png \n Example: -\image html fusesn1.png +\image html fusesn1.png "The initial shapes" -\image html commonsn.png +\image html commonsn.png "The resulting object" Our TUI Scripts provide you with useful examples of the use of \ref tui_common "Boolean Operations". diff --git a/doc/salome/gui/GEOM/input/creating_3dsketcher.doc b/doc/salome/gui/GEOM/input/creating_3dsketcher.doc new file mode 100755 index 000000000..bb914ea55 --- /dev/null +++ b/doc/salome/gui/GEOM/input/creating_3dsketcher.doc @@ -0,0 +1,31 @@ +/*! + +\page create_3dsketcher_page 3D Sketcher + +3D Sketcher allows creating a closed or unclosed 3D wire from a list of points. + +To create a 3D Sketch, select in the main menu New Entity -> 3D Sketch. + +\image html 3dsketch2.png + +The position of each coordinates can be defined by absolute coordinates X, Y, Z or +by relative coordinates DX, DY, DZ with respect to the previous Applied point. +Type of coordinates can be selected by the Coordinates Type radio buttons. +\n "Sketch Validation" button applies the wire, only red part will be built by "Sketch Validation". +\n "Sketch Closure" will close the Sketch by straight line from last red part and apply it. +To make a closed wire using the TUI command, the first and the last point shoul +have the same coordinates. + +The Result of the operation will be a \b GEOM_Object. + +TUI Command: geompy.Make3DSketcher( [ PointsList ] ) +This algorithm creates a wire, from the list of real values which define XYZ +coordinates of points. + +Example: + +\image html 3dsketch1.png + +Our TUI Scripts provide you with useful examples of the use of +\ref tui_3dsketcher_page "3D Sketcher". +*/ diff --git a/doc/salome/gui/GEOM/input/creating_adv_obj.doc b/doc/salome/gui/GEOM/input/creating_adv_obj.doc index ebaf38aaa..26b0b4601 100644 --- a/doc/salome/gui/GEOM/input/creating_adv_obj.doc +++ b/doc/salome/gui/GEOM/input/creating_adv_obj.doc @@ -2,8 +2,10 @@ \page create_adv_obj_page Creating Advanced Geometrical Objects +New Entity -> Build submenu allows to create topological +entities: +
      -
    • \subpage create_explode_page
    • \subpage create_edge_page
    • \subpage create_wire_page
    • \subpage create_face_page
    • diff --git a/doc/salome/gui/GEOM/input/creating_arc.doc b/doc/salome/gui/GEOM/input/creating_arc.doc index 8ee49ca23..4537a8a0f 100644 --- a/doc/salome/gui/GEOM/input/creating_arc.doc +++ b/doc/salome/gui/GEOM/input/creating_arc.doc @@ -29,6 +29,17 @@ Point, End Point, boolean Sense) \image html arc2.png +Finally, it is possible to create an Arc of Ellipse, which is also done by three points: +the Arguments Point 1, Point 2 and the Center Point. The arc is built on the Ellipse that +lies in the plane defined by the three points, with the center in the Center point. +The major radius of the Ellipse is defined by the distance between the Center Point and +the most remote Argument point. The minor radius is defined by the shortest distance between the +other Argument point and the major radius. +\n TUI Command: geompy.MakeArcOfEllipse(Center Point, First Point, Second Point) +\n Arguments: Name + 3 vertices. + +\image html arcofellipse2.png + \n Examples: \image html arcsn.png @@ -40,4 +51,10 @@ Point, End Point, boolean Sense) \image html arcsn2.png
      Reversed arc.
      +\image html arcofellipse1.png +
      Arc Of Ellipse.
      + +Our TUI Scripts provide you with useful examples of creation of +\ref tui_creation_arc "Basic Geometric Objects". */ + diff --git a/doc/salome/gui/GEOM/input/creating_basic_go.doc b/doc/salome/gui/GEOM/input/creating_basic_go.doc index a9a1cb3bb..49e3b2f34 100644 --- a/doc/salome/gui/GEOM/input/creating_basic_go.doc +++ b/doc/salome/gui/GEOM/input/creating_basic_go.doc @@ -2,6 +2,9 @@ \page create_basic_geom_obj_page Creating Basic Geometric Objects +New Entity -> Basic submenu gives access to creation of such +geometrical objects as: +
      • \subpage create_point_page
      • \subpage create_line_page
      • diff --git a/doc/salome/gui/GEOM/input/creating_box.doc b/doc/salome/gui/GEOM/input/creating_box.doc index 7c8268b07..817088463 100644 --- a/doc/salome/gui/GEOM/input/creating_box.doc +++ b/doc/salome/gui/GEOM/input/creating_box.doc @@ -30,10 +30,14 @@ accessible only via \b TUI commands. this way you don't need to create them in advance). \n TUI Command: geompy.MakeBox(x1,y1,z1,x2,y2,z2) \n Arguments: Name + X, Y and Z coordinates of both points. +\note You can also use variables defined in the SALOME \b NoteBook +to specify any numerical parameters of the box. + +\image html box3.png Example: -\image html boxes.png +\image html boxes.png "Boxes" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_box "Primitives". diff --git a/doc/salome/gui/GEOM/input/creating_circle.doc b/doc/salome/gui/GEOM/input/creating_circle.doc index 153c61005..4ea760993 100644 --- a/doc/salome/gui/GEOM/input/creating_circle.doc +++ b/doc/salome/gui/GEOM/input/creating_circle.doc @@ -15,6 +15,10 @@ Radius) \n Arguments: Name + 1 vertex (for the center) + 1 edge (for the direction) + Radius. +\note By default it is presumed that the Center Point is located at the Origin of the global +coordinate system, and the \b Vector corresponds to OZ axis of the global +coordinate system. + \image html circle1.png \n Secondly, you can define a \b Circle by three \b Points that lie on it. @@ -23,9 +27,6 @@ the direction) + Radius. \image html circle2.png -Example: -\image html circles.png - \n Finally, you can define a circle by a Center Point and two \b Points. \n TUI Command: geompy.MakeCircleCenter2Pnt(Point1, Point2, @@ -36,6 +37,9 @@ to define the plane where the circle lies. \image html circle3.png +Example: +\image html circles.png "A circle by vector and radius and a circle by three points" + Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_circle "Basic Geometric Objects". diff --git a/doc/salome/gui/GEOM/input/creating_complex_obj.doc b/doc/salome/gui/GEOM/input/creating_complex_obj.doc index 6edbfd9c5..0d0404336 100644 --- a/doc/salome/gui/GEOM/input/creating_complex_obj.doc +++ b/doc/salome/gui/GEOM/input/creating_complex_obj.doc @@ -2,11 +2,19 @@ \page create_complex_obj_page Creating Complex Objects +New entity -> Generation submenu allows creating new geometric +objects by modification and multiplication of the existing objects: + +
          -
        • \subpage create_extrusion_page
        • -
        • \subpage create_revolution_page
        • -
        • \subpage create_filling_page
        • -
        • \subpage create_extrusion_alongpath_page
        • +
        • \subpage create_extrusion_page "Extrude" a 2D object by vector, +creating a 3D object.
        • +
        • \subpage create_revolution_page "Revolve" an object around an +axis, creating a body of revolution.
        • +
        • \subpage create_filling_page "Create a surface" from a set of edges.
        • +
        • \subpage create_extrusion_alongpath_page "Extrude an object along a path", +creating a more complex trajectory object.
        • +
        */ diff --git a/doc/salome/gui/GEOM/input/creating_compound.doc b/doc/salome/gui/GEOM/input/creating_compound.doc index 30d685ba1..d139c2b11 100644 --- a/doc/salome/gui/GEOM/input/creating_compound.doc +++ b/doc/salome/gui/GEOM/input/creating_compound.doc @@ -10,14 +10,16 @@ Entity - > Build - > Compound
        . \n TUI Command: geompy.MakeCompound(ListOfShape) \n Arguments: Name + List of shapes. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html neo-obj7.png \n Example: -\image html compoundsn.png +\image html compoundsn.png "Edges for creation of a compound" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_compound "Advanced Geometric Objects". -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/creating_cone.doc b/doc/salome/gui/GEOM/input/creating_cone.doc index 827db860f..2ce6757d2 100644 --- a/doc/salome/gui/GEOM/input/creating_cone.doc +++ b/doc/salome/gui/GEOM/input/creating_cone.doc @@ -33,7 +33,7 @@ the radiuses are equal, a \b Cylinder will be created instead. Example: -\image html cones.png +\image html cones.png "Normal and truncated cones" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_cone "Primitives". diff --git a/doc/salome/gui/GEOM/input/creating_cylinder.doc b/doc/salome/gui/GEOM/input/creating_cylinder.doc index d6debda15..1e1cbc16d 100644 --- a/doc/salome/gui/GEOM/input/creating_cylinder.doc +++ b/doc/salome/gui/GEOM/input/creating_cylinder.doc @@ -28,7 +28,7 @@ height). Example: -\image html cylinders.png +\image html cylinders.png "Cylinders" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_cylinder "Primitives". diff --git a/doc/salome/gui/GEOM/input/creating_disk.doc b/doc/salome/gui/GEOM/input/creating_disk.doc new file mode 100755 index 000000000..b1e329fed --- /dev/null +++ b/doc/salome/gui/GEOM/input/creating_disk.doc @@ -0,0 +1,44 @@ +/*! + +\page create_disk_page Disk + +A primitive called disk is a round plane with a certain radius and orientation + +To create a \b Disk in the Main Menu select New Entity - > +Primitives - > Disk + +\n There are 3 algorithms to create a \b Disk in 3D space. +\n The \b Result of each operation will be a GEOM_Object (face). + +\n Firstly, you can create a \b Disk at the origin +of coordinates defining its radius and selecting the orientation of its axis with radio + buttons (OXY, OYZ or OZX).This +means that the Disk will lie in "OXY", "OYZ" or "OZX" plane correspondingly. +\n TUI Command: geompy.MakeDiskR(Radius, Orientation) +\n Arguments: Name + 2 values (Dimensions at origin: radius and +orientation). + +\image html disk1.png + +\n Secondly, you can define a \b Disk by a Center Point, a \b +Vector defining the normal of a circle and a \b Radius. +\n TUI Command: geompy.MakeDiskPntVecR(Point, Vector, +Radius) +\n Arguments: Name + 1 vertex (for the center) + 1 edge (for +the direction) + Radius. + +\image html disk2.png + +\n Finally, you can define a \b Disk by three \b Points that lie on its boundary. +\n TUI Command: geompy.MakeDiskThreePnt(Point1, Point2, Point3) +\n Arguments: Name + 3 points which will form the disk. + +\image html disk3.png + +Example: +\image html disks.png "Disks" + +Our TUI Scripts provide you with useful examples of creating +\ref tui_creation_disk "Primitives". + +*/ diff --git a/doc/salome/gui/GEOM/input/creating_edge.doc b/doc/salome/gui/GEOM/input/creating_edge.doc index fb4cebff8..6d45a5418 100644 --- a/doc/salome/gui/GEOM/input/creating_edge.doc +++ b/doc/salome/gui/GEOM/input/creating_edge.doc @@ -18,7 +18,7 @@ of the edge. \n Example: -\image html edgesn.png +\image html edgesn.png "Edge" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_edge "Advanced Geometric Objects". diff --git a/doc/salome/gui/GEOM/input/creating_ellipse.doc b/doc/salome/gui/GEOM/input/creating_ellipse.doc index 78972181b..2beaa9086 100644 --- a/doc/salome/gui/GEOM/input/creating_ellipse.doc +++ b/doc/salome/gui/GEOM/input/creating_ellipse.doc @@ -12,13 +12,17 @@ Vector giving its normal, and its Major & Minor Radiuses. \n Arguments: Name + 1 vertex (for the center) + 1 edge (for the direction) + 1 X Radius + 1 Y Radius. +\note By default it is presumed that the Center Point is located at the Origin of the global +coordinate system, and the \b Vector corresponds to OZ axis of the global +coordinate system. + \image html ellipse.png Example: -\image html ellipsesn.png +\image html ellipsesn.png "Ellipse" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_ellipse "Basic Geometric Objects". -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/creating_explode.doc b/doc/salome/gui/GEOM/input/creating_explode.doc index 515978e33..747aba637 100644 --- a/doc/salome/gui/GEOM/input/creating_explode.doc +++ b/doc/salome/gui/GEOM/input/creating_explode.doc @@ -36,8 +36,12 @@ in sorted list of all sub-shapes of the given Type. Each index is in the range [1, Nb_Sub-Shapes_Of_Given_Type]
      -\n Arguments:1 SHAPE + 1 type of SubShape. +\n Arguments: 1 SHAPE + 1 type of SubShape. \image html neo-obj1.png +Example: + +\image html explode.png "A box, exploded into faces" + */ diff --git a/doc/salome/gui/GEOM/input/creating_extrusion.doc b/doc/salome/gui/GEOM/input/creating_extrusion.doc index 3f3435ca6..6cc92388c 100644 --- a/doc/salome/gui/GEOM/input/creating_extrusion.doc +++ b/doc/salome/gui/GEOM/input/creating_extrusion.doc @@ -34,6 +34,16 @@ shell) serving as base object + 2 vertices. \image html extrusion2.png +\n Finally, you can define the \b Extrusion by the Base Shape +and the DX, DY, DZ Vector\n +Both Directions checkbox allows extruding the +source objects both forward and backward. +\n TUI Command: geompy.MakePrismDXDYDZ(Base, dx, dy, dz) +\n Arguments: Name + 1 shape (vertex, edge, planar wire, face or +shell) serving as base object + 3 axis directions. + +\image html extrusion3.png + Examples: \image html prisms_basessn.png diff --git a/doc/salome/gui/GEOM/input/creating_extrusion_alongpath.doc b/doc/salome/gui/GEOM/input/creating_extrusion_alongpath.doc index 77e453170..7095d2e59 100644 --- a/doc/salome/gui/GEOM/input/creating_extrusion_alongpath.doc +++ b/doc/salome/gui/GEOM/input/creating_extrusion_alongpath.doc @@ -4,10 +4,15 @@ To generate a \b Pipe in the Main Menu select New Entity - > Generation - > Extrusion along a path -\n To create an extruded \b Pipe shape, you need to define the Base +\n Firstly, to create an extruded \b Pipe shape, you can define the Base Object (vertex, edge, planar wire, face or shell), which will be extruded and the Path Object (edge or wire) along which the Base Object will be extruded. +\n In this mode the default pipe generation algorithm is used. The pipe +is created in such a way that the angle between the normal vector to +the base shape and the tangent to the path wire at any point of the +given path is kept constant. +\n Check Box Select unpublished edges - if checked, allows to select an edge of any other shape as the path object. \n The \b Result of the operation will be a GEOM_Object (edge, face, shell, solid or compsolid). @@ -20,9 +25,31 @@ definition of the path. Example: -\image html pipe_wire_edgesn.png +\image html pipe_wire_edgesn.png "Extrusion of wire" -\image html pipesn.png +\n Secondly, you can define the Base +Object (edge, planar wire or face), which will be extruded, +the Path Object (edge or wire) along which the Base +Object will be extruded and the Vector (edge or wire). +\n In contrast to the default mode, in this mode the pipe is generated +in such a way that the angle between the normal vector to the base +shape and the BiNormal vector given as the third argument is kept +constant. +\n Check Box Select unpublished edges - if checked, allows to select an edge of any other shape as the path object. +\n The \b Result of the operation will be a GEOM_Object (edge, face, shell, +solid or compsolid). + +\n TUI Command: geompy.MakePipeBiNormalAlongVector(baseShape, pathShape, binormalShape) +\n Arguments: Name + 1 shape (edge, planar wire or face) +serving as base object + 1 shape (edge or wire) for +definition of the path + 1 shape (edge or wire) to set a fixed +BiNormal direction to perform the extrusion. + +\image html pipe2.png + +Example: + +\image html pipebinormalsn.png "Extrusion of face with BiNormal parameter" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_pipe "Complex Geometric Objects". diff --git a/doc/salome/gui/GEOM/input/creating_face.doc b/doc/salome/gui/GEOM/input/creating_face.doc index bdf6164f8..11cd76498 100644 --- a/doc/salome/gui/GEOM/input/creating_face.doc +++ b/doc/salome/gui/GEOM/input/creating_face.doc @@ -30,9 +30,9 @@ face or nothing if it is impossible. \image html facesn2.png -\image html facesn3.png +\image html facesn3.png "Examples of faces" Our TUI Scripts provide you with useful examples of creation of -\ref tui_creation_face "Advanced Geometric Objects". +\ref tui_creation_squareface "Primitives". */ diff --git a/doc/salome/gui/GEOM/input/creating_filling.doc b/doc/salome/gui/GEOM/input/creating_filling.doc index 82d446f2c..fd4407f1e 100644 --- a/doc/salome/gui/GEOM/input/creating_filling.doc +++ b/doc/salome/gui/GEOM/input/creating_filling.doc @@ -4,25 +4,32 @@ To generate a \b Filling in the Main Menu select New Entity - > Generation - > Filling -\n To create a curving face using several edges you need to define the -Edges Compound, \b Minimum and Maximum Degree, \b -Tolerance for \b 2D and for \b 3D , the Number of Iterations -and Approximation. +To create a curving face using several edges you need to define the +following parameters: +\n Edges Compound - the list of edges used for creation of the +surface; +\n \b Minimum and Maximum Degree of equation of the resulting BSpline or Besier curves describing the surface; +\n \b Tolerance for \b 2D and for \b 3D - minimum distance between the +created surface and the reference edge; +\n Number of +Iterations - defines the maximum number of iterations. The iterations are repeated until the required tolerance is reached. So, a greater number of iterations allows producing a better surface. +\n Approximation - if checked, BSpline curves are generated in the process of surface construction (using GeomAPI_PointsToBSplineSurface functionality). By default the surface is created using Besier curves. The usage of Approximation makes the algorithm work slower, but allows building the +surface for rather complex cases. + \n The \b Result of the operation will be a GEOM_Object (face). -\n TUI Command: geompy.MakeFilling(Edges, MinDegree, -MaxDegree, Tol2D, Tol3D, NbIter, isApprox) +\n TUI Command: geompy.MakeFilling(Edges, MinDegree, MaxDegree, Tol2D, Tol3D, NbIter) \n Arguments: Name + 1 List of edges + 6 Parameters (Min. degree, Max. degree, Number of iterations, 2D tolerance, 3D -tolerance, Number of iterations, Approximation). +tolerance, Number of iterations, Appro). \image html filling.png Example: -\image html filling_compoundsn.png +\image html filling_compoundsn.png "Initial edges" -\image html fillingsn.png +\image html fillingsn.png "Resulting surface" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_filling "Complex Geometric Objects". diff --git a/doc/salome/gui/GEOM/input/creating_geom_objects.doc b/doc/salome/gui/GEOM/input/creating_geom_objects.doc index 1c804ae71..ae5dfb8c7 100644 --- a/doc/salome/gui/GEOM/input/creating_geom_objects.doc +++ b/doc/salome/gui/GEOM/input/creating_geom_objects.doc @@ -2,48 +2,26 @@ \page create_geom_obj_page Creating geometrical objects +Salome Geometry module provides the toolset allowing to create a vast +range of geometrical objects, from points to complex extrusions: +
        -
      • \subpage create_basic_geom_obj_page
      • -
          -
        • \ref create_point_page
        • -
        • \ref create_line_page
        • -
        • \ref create_circle_page
        • -
        • \ref create_ellipse_page
        • -
        • \ref create_arc_page
        • -
        • \ref create_curve_page
        • -
        • \ref create_vector_page
        • -
        • \ref create_plane_page
        • -
        • \ref create_wplane_page
        • -
        • \ref create_lcs_page
        • -
        -
      • \subpage create_primitives_page
      • -
          -
        • \ref create_box_page
        • -
        • \ref create_cylinder_page
        • -
        • \ref create_sphere_page
        • -
        • \ref create_torus_page
        • -
        • \ref create_cone_page
        • -
        -
      • \subpage create_complex_obj_page
      • -
          -
        • \ref create_extrusion_page
        • -
        • \ref create_revolution_page
        • -
        • \ref create_filling_page
        • -
        • \ref create_extrusion_alongpath_page
        • -
        -
      • \subpage work_with_groups_page
      • -
      • \subpage build_by_blocks_page
      • -
      • \subpage create_sketcher_page
      • -
      • \subpage create_adv_obj_page
      • -
          -
        • \ref create_explode_page
        • -
        • \ref create_edge_page
        • -
        • \ref create_wire_page
        • -
        • \ref create_face_page
        • -
        • \ref create_shell_page
        • -
        • \ref create_solid_page
        • -
        • \ref create_compound_page
        • -
        +
      • create \subpage create_basic_geom_obj_page "Basic objects" - points, +lines, circles...
      • +
      • create \subpage create_primitives_page "Primitives" - cubes, spheres, cones...
      • +
      • create \subpage create_complex_obj_page "Complex objects" by +extrusion, rotation, interpolation of other objects.
      • +
      • create and edit \subpage work_with_groups_page "Groups of objects" of +lower dimension, which belong to the objects of higher dimension.
      • +
      • \subpage build_by_blocks_page "Build by blocks" faces from +edges and solids from faces.
      • +
      • create line segments and arcs using \subpage create_sketcher_page +"Sketcher".
      • +
      • create a closed or unclosed 3D wire from a list of points using +\subpage create_3dsketcher_page "3D Sketcher".
      • +
      • \subpage create_explode_page "Explode" objects of higher dimension +into sub-objects of lower dimension.
      • +
      • create \subpage create_adv_obj_page "Advanced geometrical objects" - edges, wires, shells...
      */ diff --git a/doc/salome/gui/GEOM/input/creating_lcs.doc b/doc/salome/gui/GEOM/input/creating_lcs.doc index 106effc00..6b714f9c2 100644 --- a/doc/salome/gui/GEOM/input/creating_lcs.doc +++ b/doc/salome/gui/GEOM/input/creating_lcs.doc @@ -35,6 +35,6 @@ and in 3D viewer. Example: -\image html image145.jpg +\image html image145.jpg "Local Coordinate System" */ \ No newline at end of file diff --git a/doc/salome/gui/GEOM/input/creating_line.doc b/doc/salome/gui/GEOM/input/creating_line.doc index fafdfcea9..3d5eefe05 100644 --- a/doc/salome/gui/GEOM/input/creating_line.doc +++ b/doc/salome/gui/GEOM/input/creating_line.doc @@ -25,7 +25,7 @@ which are the points through which the \b Line passes. Example: -\image html lines.png +\image html lines.png "Line defined through points" \b NB! There is another way to create a line, which is currently accessible only via \b TUI commands. diff --git a/doc/salome/gui/GEOM/input/creating_plane.doc b/doc/salome/gui/GEOM/input/creating_plane.doc index d7c9e8f9f..c6116021b 100644 --- a/doc/salome/gui/GEOM/input/creating_plane.doc +++ b/doc/salome/gui/GEOM/input/creating_plane.doc @@ -27,7 +27,8 @@ of the plane). \image html plane2.png \n Finally, you can define a \b Plane by another \b Plane or Local -Coordinate System and a Size of the Plane. +Coordinate System
      and a Size of the Plane. To change selection type cilck the corresponding +radio button "Face" or "Local Coordinate System". \n TUI Command: geompy.MakePlaneFace(Face, TrimSize) \n Arguments: Name + 1 face + 1 value (to define the size of the plane). diff --git a/doc/salome/gui/GEOM/input/creating_point.doc b/doc/salome/gui/GEOM/input/creating_point.doc index 5e1703270..3c992c8f0 100644 --- a/doc/salome/gui/GEOM/input/creating_point.doc +++ b/doc/salome/gui/GEOM/input/creating_point.doc @@ -5,7 +5,7 @@ To create a \b Point in the Main Menu select New Entity - > Basic - > Point -\n There are four algorithms to create a \b Point in the 3D space. +\n There are five algorithms to create a \b Point in the 3D space. \n Each time the \b Result of the operation will be a GEOM_Object (vertex). @@ -34,14 +34,25 @@ position of the point on the given edge. \image html point3.png -\n Finally, we can define a point by intersection of two \b Lines. +\n Fourthly, we can define a point by intersection of two \b Lines. \n TUI Command: geompy.MakePointOnLinesIntersection(myLine1,myLine2). \n Arguments: Name + 2 lines \image html point4.png Example: -\image html points.png +\n Finally, we can define a point by a \b Face and two Parameters: U and \b V +indicating its position on the Face, ranging from 0.0 to 1.0. For example, (0.5; 0.5) means that the +point is located in the middle of the face. +\n TUI Command: geompy.MakeVertexOnSurface(myFace,myUParameter,myVParameter). +\n Arguments: Name + 1 face + 2 Parameters defining the +position of the point on the given face. + +\image html point5.png + +Example: + +\image html points.png "Points by edge and parameter and by coordinates" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_point "Basic Geometric Objects". diff --git a/doc/salome/gui/GEOM/input/creating_primitives.doc b/doc/salome/gui/GEOM/input/creating_primitives.doc index d13a5ee18..1800330b5 100644 --- a/doc/salome/gui/GEOM/input/creating_primitives.doc +++ b/doc/salome/gui/GEOM/input/creating_primitives.doc @@ -2,12 +2,17 @@ \page create_primitives_page Creating Primitives +New Entity -> Primitives submenu allows to create voluminal +geometrical objects, such as: +
      • \subpage create_box_page
      • \subpage create_cylinder_page
      • \subpage create_sphere_page
      • \subpage create_torus_page
      • \subpage create_cone_page
      • +
      • \subpage create_squareface_page "Face"
      • +
      • \subpage create_disk_page
      */ \ No newline at end of file diff --git a/doc/salome/gui/GEOM/input/creating_revolution.doc b/doc/salome/gui/GEOM/input/creating_revolution.doc index b9d2d7086..80c7ebc5f 100644 --- a/doc/salome/gui/GEOM/input/creating_revolution.doc +++ b/doc/salome/gui/GEOM/input/creating_revolution.doc @@ -20,7 +20,7 @@ solid or compsolid). Example: -\image html revolutionsn.png +\image html revolutionsn.png "Body of revolution" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_revolution "Complex Geometric Objects". diff --git a/doc/salome/gui/GEOM/input/creating_shell.doc b/doc/salome/gui/GEOM/input/creating_shell.doc index 7c87d3d22..32cc8783c 100644 --- a/doc/salome/gui/GEOM/input/creating_shell.doc +++ b/doc/salome/gui/GEOM/input/creating_shell.doc @@ -5,17 +5,17 @@ To create a \b Shell in the Main Menu select New Entity - > Build - > Shell -\n You can create a \b Shell from a list of faces and (or) shells. +\n You can create a \b Shell from a compound of faces or a list of faces or shells. \n The \b Result will be a \b GEOM_Object (shell). \n TUI Command: geompy.MakeShell(ListOfShape) -\n Arguments: Name + List of faces having connected edges. +\n Arguments: Name + Compound of faces or List of faces having connected edges. \image html neo-obj5.png \n Example: -\image html shellsn.png +\image html shellsn.png "Shell" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_shell "Advanced Geometric Objects". diff --git a/doc/salome/gui/GEOM/input/creating_sketcher.doc b/doc/salome/gui/GEOM/input/creating_sketcher.doc index 88629274f..ce1a6e78d 100644 --- a/doc/salome/gui/GEOM/input/creating_sketcher.doc +++ b/doc/salome/gui/GEOM/input/creating_sketcher.doc @@ -52,6 +52,11 @@ is predefined and is equal to 90 degrees);
    • Parameters of an element (for segment : length or target X or Y coordinate value, for arc : radius and angle).

    4s{{uX9oD;cSQJ7fl=`7o5-gId&0 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%0AI~WuU^&@XmR?wB~3D5(cUj|DgVF!h{C~dir7L> z)=jq)3W)TPsDj^udvD@B?u;mrN(L=R)U|8V`4-Cu_}PPdH~!DX+X09B{~Z_mJ7gB+ z+?*wTvwwk~1ndlbY%V;|R-$^D6WYZ(WUFsFe??OK2nX!aL4zd}cI5N=`V0nN@#eU= zh=5JO-<@fQq=g(5NjoTa`)R0t@0VKp_$;h;!PoF+L z7PNGna$l!0`>Y8}2e+NET(GnczDP=_;rwm?ipgYaKtRE^SK%rAgsLSQ2|(+L$l`V2 z@iB<6zF(McmX_2g34q)OA`*o2QgFQ-WoPVe3ZbDO{3A;E>)~O^slZnjBv$QtM$Q=0 zf-m2{dp0>TDX=+wi$Cw9f6vrGDD$jxyi=4~v>u(KG9aLA(kWSpnKM|V&UH56D=l6+jY!BR3nBq$gIz$;=9j3%bCOftgns(h>x8+Wix_+Va&_ICChCfz zEUnn91@3V0A;IF#3I?EdpoSR@XGzl0(Y*sMM#w{~_fpyKLmN>bZ^4|?uJ8=63joTf z!RE<>h=>RX1Vl?kmEYoCU7t!XF1|7~H-GRdN*G~rzS##A2PagwI3%N#(jfT&9R$G! z3@9BO9GJArUI`u-kkLYX>kh>|eSE})zBSzgeev-}afbDXJIzwvsGn``H*ZxPd=D>4 zq@aVO$IqUzYcgwt!gqiq6GC2^_dk+P z<0pcEcyuseFuOCgI3SUvarN*Wm@M!Ef(1_yN8pL~rwHIs!mcKFxwcPLS&Iys8-5?- zPze46vbhuUE$LSt2bMu*PR=SRGF3LMlhI}$kNy-9oN%;oPY}b4JJE?>oz}52kdRo< zKhH89d?9E8a$Z5eS$Y6L#-a!Y&crhTfhYF%_MQie2qpeLM4%wz&+s_R>k00#<$$D{ z=in`0s*npYLeK+TO3Ikrdjkf0B?Xzz5UeN4+S;h1xUnfIHf0$%H@yhopH&@ zu^_l7fm1eW$(il5MLHaw-rmO3V^#-;r)_f027wkzNP{v zGZ)Su=LujL4z`DfhwrB|EEYdEw4|1XU@)|w2@6v|7MGU;foMt1!lF340ZcMSXJ;`P znef%~2^1tGDlRUfH^#MZ!Qx+I%-q~uP?#Ov+>jvUxDWD&^CBZLnyx&JZc%oqP}eN* z!JO-^OE)^Z0?UM-nY&?{52osvyfHGO0^@l&SB|9VYP;}@NPw`anySq&BPMf`oQZ#o z*KBVkdVdE&F|oq*0?)IP;BO?c@$rGeepgT3<(Sq7lOtn9t{z3pN;e6fnDs}beu$05 zy*N1*1u?5KyXzVTKVCjQqd$wHVGB=USXuq(g<;^Hrb>sTz_O}o;dx@jF~nbX42eHv zGrHoVskpg`VN6~q{w@B>yma4~M~(X@*)~ta1~@1o%UI}V?q`3t!1}XH#JkE<5nyD6 zw$-T7D2amG*iD)25M6q=d7g#!n~JECUe(58t0^qZx{qaTnz^kw5uIT}T3PSy#ch1= zbY1m(nl~mD`eyV!^dQ?T{@dfRxqiFNLW$75=jX8exMRojmpcwhX{m3XmVSFU#piYE za#^yR9aMDcAuAzq0#z?ff-&3=VBz7ZxSeVyc=APug~=~zY2o6<*_P4a{a^mLt=Ow$QES&;Ws_{v$JQG|qqG+F0F9f^;pBJ>0L zguI{m_3xr^ogj@ut#BkXh@gaf5u>E#xm~!MX%R z{iV^(!;7m6v0_aVP`M%RPEK4OVq(4uXuW&Ho2>WXR#(gp*Ubj*Yy;m@;V&o!ic|Ld8?F+t?TN0RZoT-6H`Nl&kRql?trI z49OXaKL8FO$f!J^miqWJnZv^IuH7pb8>h3W{`l7!Fc(BeEM#~+?#RpszlMV%3wh=0 z%9)y$=5%#pMJC6O457LHq4>i=9Q?T`U6v>{E zQL<;tlBHs@Q`QP0NwQ?f;K^>x*cDkq_9bNB_uqS-dw$PzpZmu>_nvdl>C8#-ote*k zzMuE&{aW5oNR;{J&~Jd9kAm@&4AGJ-d7_BVW@KQ??I)-U`xUE0Hz#K%CNMxRRkyd( zLjQ0C5y37?12|Fzb~VBhIyQ1@Y77+m@l91#*XyLM*Y*sNwnCZmdqxWm$r74Pga$NBqwvIs;eJCkX2mI^t00vk#XpKR9mY|{^SvaJp=b%bsBk0uI~-k z95LTp7XkfNK&c0`5Xdo(OtvOLR{Ag^DCnu>Zt0R0J4X3&b#*mcKY#{+zXbsY{t?_r zuFsxx1kjf3&KvUa$=`dn5hubTq7h$Wl%=1&*o%%H0iM-s1ap!K=i=(hK$*ltUQkk^ z4zd>qC#U@NC3;c-edRcU6w84i0-fjl0DY>qwzdisiAdbpvu77)#xQH# zxxqYfsaG!!>ukSevYD03{(v_e zu#W-MknUv!DcNGYvv0b(F&nL&c$U|0DRn`+thAIzUY-@oJ)pt*em!TSX*UQj!RHWs za48@IeS*FbbE~P??1`BulR;Z_T50v-L$3H@7yBbRIKrFD`Y|`?n3+?0z@%nX$5)L5x#-sn!N431lYoVxactV_|i(ZGdeam*6 z2i*VKOUs=9=E>CZoQ{{^U%imVaXqoKZ5xoM<~&TV$0Q@F1=@t1&$!T&;G_L^BK8_ylsWSCTOp%%=NL)@Bbr;1B}fL9n;m)a{+9IYV}p zCNOl8o=hg!BCZ>sTZ7j;QGbxC;7tLh)Vl20tOCfP$;rvF3|z}LsBLSb(aP-T<28vF z8*OQBRv8Ewlkn&>KwJU`WP$z0*_<`!Cb)nJT#wnobt6STn~@v1Ai_7>8zji!yT3Jc z6L)8@0smz{ z09Z0xsrHfwQBl@JOiMjWOtd+ts}h|g>umL{L64mJczs;sjYSYeM6e+9Q1I8PSq}8N zjIu1`d!4+3xxyl8MFtL((>UppYuQ`#y9>Hxw8zzY7bQs7BXawlVcqz&Xj?9f31Lgt z3GbjaL8ieO0pw*(gC4)jVs(uOk{mRckl!eod8Ug56lYf7dmTMzw<^SO!G{XU_6x|(Z`7ZUdE9WG%8@B{;V7X6~^PUla3(*z*UcOk#zIXPOjAIxixkdpm-FJ7- zEsT1%eg6Cqe2`XPD1!EqTsK7t1G~$rR`i6xn4w5~NHS+*t*R<@)2S<(>DMo%U$-2} z+L3VmrXj>g0p8XTXc8J48y_pDUxI=S0e;MIdd+nqMiwp^^MMTr?F4-ezOe5(5&-|! zdob-E!3r_ejoFWtY7GT+RIA(}a6>HmO>T_J!27Ft9GHGx=nII?yW6uL;U|PdL~4OQ zTk0F{!Q%iYsJggFf`b=p*Cj&5rN{y<0<~Y0#$erzbukQJWMmwM%>ttZIx@9y_K_Vs zD4WaqSjmuDQdE@Fkw1FyZaeOkGeC>s>FH3`P8*U(YID7*1Ofn=HKn4+$(EEl(mN%L zZo~mBl+3whYb#8{tw7qG*B%5MMhJ;$MaprE9kKz|D7z zmQxk7F)#_Hz;#0FliwRLNZ!~NwujX+o;ZOnDh>U)a5**)``$0l$z8(c84MJv`|*Pl zeu^>m^X}T6mSpJ@Fe`>+S$yrkZA&6QfeMq0@p{{|4}KeHagXEhPBrhpX5dG!o0?MO z8B!V<86oH>UkgK-{5e>00nF7B;EY5}cpjB;9^|m_D=*j&TzetqNds)*bwk6axeG;K zrZKvw#&WOzqa<4OFkZ8BC3wfySJHL$;%AjFUWx>CX8AQK96uFI&HfZpYP>=c z?+J<#Yr@h)$7s1Mm+fN#-5y&*NDun#h~;{DVyp+4Xa_Oss??2tYd@aZy9UcRIY#Us ztvGd;x|Y8-k97>C3>4?TI@j|y{hZSNG ztTOH=PVeF7A}<+v;jN@nP8aybZ^KYlMjzlqQ-5BX0K@>1v`27j%eV_k`xfq;U>4wu z`7P&UX4r+2@y)tKJB5M+1SJD~<5QisI1!2yNM7^7C@%RXXeW0Jp?7bb3;G1hT=x9HkMRb@c6cURu5dL;lZ( z`qiF8A2slOb@^63Ye!FF6+zZ^h-XfVE#LRyZ$lP)%sm|+dG~x2@@>r3p>ZpH?p=2e z1-q>lW>S%Qj6-|JssV1PM{!7sMge~SVlK9A#a1W*kE(Fg)umB>is=>kq?V4IKxKR# z#^{P07bBr(Nm{s(dRM(o4Yg4D;+(gZN^plzfm>c`ZGhab_(`jZ2H_5N6#Gu%P3jVz)BlL|X&*n@92v@4eC zr%)P%syofh(88rxp#sQgXjJdseOH6)3K-M5c1^vy8bN}Zdi?4mfIUtTOROs*>hInY z( zdlES3ey4&3il9pRk%k8UtAOeRx58wt`ZY4a-bNbLy;aYi> zb83>ysLRCF0kywGB-YNPo@{1?;Kg(>jt#{*hhH!pKUrJD@K*yYep&vhPZMJtGgsgBV`Ia^=iJ6Gsz}`e@ z-*EKA&(S&AJ5j=hVoFX<4ocyUCzebg&4NHD|E6#-IsS%E7cHN+FF{&*zxlGM59662 z1RdQ;46DCBD7r0?AdcQ+4e$A;m>Crbi~fN-plix>uk@Tpa?(R{lUGAcl8P%WQnl-x z{h0n&{k7#=D<8(|4Dxe529kE9>SNFYF~Qi>&+*)(l@`;B@L!VbnAe8-$_Tyu9{@2Dg)(tRj9bip*Mn>!V zuM;Ai9bn@cdc(%ODH8vO;WZ5`Zv{m~b=8k2meziLJ%T*gl|ppNXSXG<$B)G|W%It9 zMBnpUSzcZoi$)qYHbcFqUKeN5*3)}F?t5t3mvy$icgfP>wLZFQy%-(Uv~_MuPIjvF z9DV?O0StFwF^!ee1rsXH@yFe6^IUIOyI1+meP(7AjF}+l8Ps%jF@eXn9*#12kwJ|g zbqGKm@Q@$=H8=M>E{;rHT|I}mFg`B8taAhX{rmTk;q*WaxFtPQEeB?TfxT(J3nmJY&H%>nGRf@i@}2pCGcU8g8N(YjZhA%Z zzLPL+l&L=g02dFP6at~CsW~chqwHLwbig}f`?pOPM zVkpt_#ofMxs2wH1YM~_Z#1rM*_&^^Et)gY)1#JntaiLF+{md|Q@FRUvy6?*ivf7ij zzlsg|d!jOPJ(7)569u>Y0_Ju=cE$sV_GLEHV$>u&+uWqq6nWzTey*UeuP6TRe8cJv zgX2KorPw^loE3lrK^P40*k`Juvm?dMJ(ZXDy&!p&2Gu7vK=jH)sf7TBNJxc_a%6m* zEUnxNwuwfi(WcSF$o%bY?C|)&Vej7r8`>I+=3eU8s~crsx`s#=0KmGjIG#f35%E8DI_Wgx}eG*TavtrB^ zc@(@!4J|FXZm42TRGuL}Kfg+$j zTDzMtp(q4`{3hvl1Z>$}CEDHUBEF1CAL~p`WhJa1h}wN&=Ol$`4;?wm!^?ZfxnhqQ zXx16U1Riqg^>=sbOZCSVKwg80Js!;1!!t7!h|S3)=VyMW**Ur9zNBH}p74Wc|mg{V+%u9zg)%DFGP{FelbEHfF1xf#P)qBw)Bp zmKyk@harbXbZftOItmJb04dP~=&=q?U=mM{D0Q8n06Y>2Bz0K3W~;YO3mX`1sPoK< znfoD5b1T_x!tW!hDhkM_H@Ue~z^2rKH239q4|_y49GzI09RO4YI1eK@Cn)) zTKxn=Nw;V5sdNZRs{~A#6X4Pes=drBKZTs%drVRcxY{4G3|PoNfNR1GB*~+BCqd*T`3Y-lc5&UUZ0k!Ma{CIY(*W~vy-|1^GE zb8Bs}J1?zsmaa;?QVZENrMDC?b+^syL){IlGa!^|wwYx0@WOB(NN%XDr#LK?eG;|R z(A3HP>I_o*hZfR&XVO*`Zy-WH;ib3$hEnz0hT~_pH~2o(YyXy>dzRYuo%>?-WoQg< ze(x^UHUe_X_vN-=Ux{-x;PR1X@hUu=5+s@irW}M*xK_vN9OJrv59-C$;OK%J;kL8S_#)EEc=Cyd0A(g$R23wD#*)`jO7s z^e#L2vjp1`4PyYLxBcK`p<`mgK(Yq`1R)-L>1jRF&kuOGpBM1~OH2mZJOCFS5fKWX z6fVgebOCUO!1O*sF-GY{A=2$FG&ZD1ZW)50Or(FCh80`j@M+tm49!308! zp?!D8L)uu!x31<}3{NEkf_G)D{X6pCez*ShRG*s|EZx&J&~q6r&`fJx;k)IUvg5cF zozPq2j7k~Z{9M%a>SZh{d&#WCE|T)(S&4&ty}P?z-9<{1=vEKu4UaD@jmuX<#~=S$ z#d({h1Y?fJhtzVHY%Fq2mQB|dxKMWg~r>Ys2Jx|^s5mo*7XTnGV;#5nFhePl$Wx%!h` z+S+(~f}UO)rhbhx#hrKOfLB#;g6vTCH1aq#Cpo;{3U3eprul>A&#yfb@lr(&ABPeL0)gNw$V;n3AZP;M_3jQP_|Hj0 z=`;lL0HPo*sbTqUf5F37L$d>QJerjliv5}4;oTSVk5&hYAIV6d9jgrlVYXkswiJ)N zdsk2IE*jm-51;RSzVj$@H}Y;*&l?YYGz<)x`(Mh{@7>RT_)a0~>WXnF{ylG>DRVu% z#gNm(;y@HO?-IAhzvbS^t1Keqap1cd6)ykmhx`7UPU!3ke5~HZ0$T23&`o<^$zIF+ z?HlIg5w5n0oTn8J_&ooMB&JyRwk%Ru+6_{l-IwbrdX=9uB&Ofimy@SYolVFhFbH*!s6b5LjX98Kqdj!4vR|@l*EzYo+*D3 z)d~Z{!>9*7$Tk)>;i$|#>XVa`@3XeIF))azsg>dxaSPe8JPf$xR591wQ)s1=wO~7Y zCtWGyD{VyUu8IDvROsl$ui(t;ofv|jkW7LTF@2r(F7Zi8gB5vl{Vt6~nkA&}jal>a zda<;kIBiU1hEkT6ch2^8*4NYXsjHHJ6tN}_Ds#pTvofB<_mOI8boI|`YRt4 z5{DU)n`RCOzADZPTMn{IdoRcxKJ1g0RfE;uR(2NX-7&6Y+zX*LEg;dt3JX`}c3FX8VQ*nZ`Ga4;N9D4om(V zrG|01j2%{{sn-b!ork>x#ln4sZs-58Ux2vw?dUvh! zw8FD4t7GrE94lm2BZra&mz*wYpZivix2qOa_s_LPZ`(K+7kUv6OD%0(z4Fldu_V() z_~-qcB_)NDWq9yu(oUvx{l$1r*(Zf0W`QgfrSUFaWiC8hGKz^(pT}f|zE8!kkI?BQ zB`0F<6!w1+q!vq8zI^OaGUWuKLOD;?f-w+&%1r3|8!O(TT>Nk=W$-1ay z4{Yk`{rt>v%-@YR_U&iL-mC|8APL?6dT*B8NKsj36H-a_AnkiW7hL~0-+GiX)_`Ws zlTb8%{pt4{)4UJ)M`Jqe*P!Jv=uS$jce(P_ZoG}cVBcm)fUTenTueX1>1ue`Ya4~^ zjyQdiQ(F6DUns|pW5z~B1hn3cn0V|#d&ISvs*OW(pdHCndDV6zum0V>%d{Vj;A zub|K(+|U>IxN-5us39!+a5U4mZz-8Wbv$pwnoELVRqTb>ONeVWn_6VnAm>$VsIn3P z$|>l~&~H@L=NA`cOqW&(eXD@2fJ;#S^_ua?(EQ11>9n@4x(?z1%NBJ>M=kmzc&5kg z>#K4>Na^o|;V(Y}#0oD5PGGam+x#b4##{I_o*1}f?73=#2YBRHVr<#_uZ(9aPaEh% z+1^ZTj7TQIt;VnPUKbLSb7YU2sj*ymdyv09D%?zY*?K&AJLJ8KTb$FP89w^&>Il;f zVN{RTsc3A0zKr8ch}av4em_UCIlb?r`QBD9`QOLK-$e>|-~9SBU9Rfxu9C}55Ee5( z-@*7*k+b;&Iu=2^J41{R*)&r_c81$hVRDImtuSHZ@N)WGk`Bz<0V1>j6@zf3L^ZhW zIxn}O{TlzJ_>JnwJVj^uNf7$7hItum@A<5DgP{~tbuV3ME&!TNOiD|IubVojK;-omcx;-NMy9lMQ1aa957NmhFnzBWC<8(U~bM7sJG zTC?QoHOc3Yrmc;V?q$on*jUESHmHoyb%_3=+i1yMb#e#a>8QH^z3FU41=15k)%%=q z$x%xm-N6d2O|&`v`(`h-m_oEgR|wtH%f%Ygjdh~EA3Uf--5K~`#l30Wm*u+|+z(eC zyW1iNwHLW*!gxMRi(LmRJTF_DY|MG9*I@}ko*(%&!Tj!1l<^=)r!S<`{YRJk(^S8o zZiL`b3q@@YdS9A0kEO^&k^U@GlIH?=4+q zi(bVNPuCIT9U^#iX1(gTUDB#AsJ!**UVR16D56+5YB~O`vkUYNHg>mp)rxcd9qh`g z&F+J`1$etTIi}Zvh+d)IDGijQH=N-&16K5^5Rw#U@MlE% zxfm2P!>Da;w8jF3M3`Dwr0CRIP>erue0C>0&}HM6InutwDp0Kj`Zdk<6GFzY;y8|Z z-AwZ!POwS>ftyX)<8USS{gD&1Fv=&j;p{WqtT*M_Z8eYAp670$1v6nAUTdVCVRMft z49R)Op4qThMC5pp^Ubobp2Vu8#daHqT|{q9eOfpPGbQJMlcVJA`uhbXMbg?JjW620TKykhkj? zLWErAGwfo#Zt)e28}<$!*-z&|RD@9oT#8Fi3=>|g)EW#Bk2VjsE~d#vZB{&abMz2~ za3fZD70S(Kh3~-bl_`9<9k=!xQ*p7O_+`$s=1YSd6lwm6o*ql|1B<(ol9KS;#4Ke4 z1KPA%FH_UZjukG)#svUQYoKEzwjUo>5)={_@}N#)6*-*AF8xSLg*iD#b!&UCaD{%l zbiILm6m=2|poXJ&aybfRnN8t)R(AZx<1^SoQU~XcyPeQ7^}t+Xs}MHWhAY6Apf4kkU8R#_&}!>6(_PrTvug zVi^~A-|F~5`%IlZ@4RyAKc#D92}!*6jzj{SXZETZd5#1$f(qt6D^hdhUU1RHL-)q^ zn0+dqOw795*yr*f%^zP0$^FH0C#3D&oH=oH?sLYRpr?`RO9!4Lw zdOm9sxDzN++aJs6kgIdb_|132i9vU%ee-##K!by5>@rQr<+o)%g~^m83&w{J-#;i! z`VsA_mzGwi8a8$qkWZ|}hT@LBUeHRy?Fd2>NVYOgWdMtV;u1QG;%__*M zEKu0o;{+e;7K7ZL_`oc(eZ&&NEF2hm{jtg33sU$jX*N|FqmPV5Me5T@Y?V+Qb(VF` z&%jmJ&9jyx*~;FY{h1un<&JF_b|^jaMr&~0k+PO|`Te8m!@^Z;QnG)aZtti#O3BwZ z!2MuevNIHaXR%qhjQ9$^@s={cnyCBdk@*eSeB0}3Lcte}=N?RUwl7s#&L0`u@=?vs z&cgG)jnm&JU1t^+CM0$g*dxaj$bw%5Rd?84Z@LrTyBBTb;kf*AQwN2_o!WP<$C>n- zUaB$XS)OF!=!G1lT{FVOk;LVQrH$0o_4h>mQaxqYt;Hua<)e6H|Z0>oEp> zf3p(p=Sv|;CQWK>*nUQu*>bv1*S~GMRbA*~B=qO*y}gI^$EeoI_c}p>nU8vIlJ1QHEZ~Ko+}~IKG&K-9N{NZ z$8G3@-%lsaQYBOFk&^Z_F&Vx*bjAwsaib%WfHaKS6u2b*e)( z3QNOn-P|rqHqDxe5v?OQU&eK!nSCLBYGmwP*F5Ms&|2rqR+WtmPipmx872x9=1&r; zKt$|Ryhr(8-l?Wq(zDfHIPh>;9_)WVVWpx($d5u?+FZuG?x&kuYWt35)ZkKAH;D+D z(mZvMbhu`VBTG?X5_J;|HR^TUa+cJP{)s00$QzbTxToY z<}dHF@W@Ekii1S*EFm{;!qEAE5gPg_SoxP)m*p{Rp;|lXaVj#b2EkP?8YsI?$3ZGwV=EGNDuz>M_>M|H+%<~-h3QMv9<#fa1Uj64;-L*Oukkw7zGAW zh$kIB*%iCKGV(_uJe*xzp5g@q`K6L2)a}rU=;3U=mhzMqpb>U|QgyH@y>748rm(~C zxsh$&I@QEVXKyw~))nEH-aElqEO{SdWo2b*Zl0KxrEG4_tWua%pq$}6si|$`ar^kZ zurUpF=|L^1bwb<@-4$CYZ8Yk{oU!Hm_3M{oy&l-j`On1TJ$K=!PoMs28ZT{s*Qa7uqucr;8$+uLbpOi>$s@uM^e;+Pyrq&h_ zZkBb{kdE>f61cm6m#FCb=V==u$X>QXp@WOOg7UFRlC(4{2P^lVZ%+mZ1$^KRm1IOk z#gXP|=xs*RxdKE*$Vl_qoj_p(pC$f^bUr0px)~hJqAJUu#Tvf&f}KH~gk-q#+QgB7 z5#`j%z%cpx=M!NUyaN&Y5OA^=H~Z>qtet*Rp=V*3)NX&`vNkJIO;Jc^S+<}-RMdiF zKARR;#Wo|If610=CU~E^JtADgMW$*9?Jcw^QdSV`1P%x;EW_!tD_Dg)T>eaxcd$v7 zxSvq$=5oBjUT}WfeEWuR=@Kf z+aT*h`;(Xfwn>4d%wsJw@WpOr2gDX;dq)zAU&hbOyw>9&Q%vDF z`zY#r!4-jfZ?xEE{cFNd>eJw&@dEF`SSsOI7UUszS>u7wRH=S%ozvRIUe)LeJqNEE z9cfl(F|kFKvx|qzpL`{?5(#L8;**oRJIKiH(bC4M4P}uGXYltvawIjK-5r#F@q$5= zou;w#K(q{Vtiq&MeV5g8x=dfsXTKWq!)7T~U)UqL!5}UYX-1SVuvHaUawlWBXN>+i z+`3bHqEt5pT>kM%VhV2ZV@htDsc%M8-*kWn;g2}eZt&P0IS_3`8~9f83EWW&e3MGZ zeXkEFu!yKAHn(O5bw7=WK=e8k@`^&lk}E+iVWRN|t+GjarRniKOnh1mTlm+nk1kIS zo=flFQ8CXn{k5*JQOw579D2Og%j0uy3)vjW7+hCK!p6sE;^9fEhi+b)`N-s-z(toM zvsX@ibFOFBrN#@DbF}ujvqw9_2rVv-R?Mahf0ViHPG@PJ2S20xFsr4n!k~`Wc6-BM ztOL41#S@Io@Yf%2Dq0bZh2i6uKw_dn^_zlzye!>SdEfDGn|)(-;Vc%HmXY-m-<>Lf zuDcV@exfhxKFztTbuJ1R)sMlh``Y&?TmJW(?JKN9|F-05J&HChP4NVL%1u;&sYY)6 zE0h+;*&)1Ws`0BE&b17i@=rRfHevmdbXLuhDPQ_o`My zP>{U7J~cO&q`V{@>V}dfz0fD~h<-JqFL7%G+WETLTC)N=c$rHrjNn|NvMo#t%yler zM1Ac3w&K80@(ro1to-=Cv$~T%VVxSIoL2yOffZ@`mY2u{yhXW}OZodOm$Nfh)<`6O z4Q25V5~FSBeNz)ob%jvL5b`XuPOT5F(&nxfg%l7OpD(z&W)l^4X5*NrrE=xO_tn*3UHmC27jR!E4~wN1Iy~2QYuPrOt1y{p{N}cT>T`Bc6fJt0bT!Rm z4OJ4(S#tQPXdhYp7@A*jEUb-C-epl{JF4=qaoJ*vwe)X%v$|;Ei)Hbyl zO3B(7Me4hjZbbeCY4lh@XJu23_-dN0IG~LL`bK=TKP-rz?B2bO5IuQ$`EYSv?S0Q! zw5(kn5%63eJBXJAjH*@>)R}Z&3*cnyunV+K=DdNI>Q64f^*+A@$Kf5Wa#v$hRNgZ* zJhEx?Qpri-%k;>ww+$^FS|jUTNYOs6Oh_-Nys9l=D+`D^uez+Y#_qerF`Bi7puexN z$n%nEA%*PZ*kb!okLlb&K3w+R*MJh@RzsqUx(7rVM$l|K){8g`Z>s>ri$=~v&mJd# z!hLt2V7P3!;3$;8i$0RmkHOJI3+M*X#}-4^EW-istXB$fT8%Q zs&tpOE8hQ9)BkdcjoQGd$mq`=<%_3(W}|k?8e>Cn$u67x12+a!u6`H*Aicg^-GYgG z(glLvGTx%^6N*o@33ZEBCLe5jhwf)k9etyQtqovfe%@~|xVNkDGUth-&AL?Xbtoucqrt$q<_JX_su`jmC zJ$b!&d0X2j!tQ%-C;HTUPj*;D&L&>@Ui=K}>gic^u7BO&YL&K6E@=Ib$9zbDZC=Ft ze6N2j_jyEA%v$|c&f3vR=R*$pe7D`HOaZ4LEp}Zmbb{qYpF=Z%WnFwx8@moI1%OR< zb@x>Gzz&S(^sq(CML?OD)t_H iXO5YT$t?+_wl83G!7As8TNL%XSkB%JiGMu#F;MtH~)#vm1 zY!j(7Xa*a`wR`C~b(2tw`I3+G0zfk9Ph{eav3g-`&1y4UhVgbd{n=3ZGu*=Q{_%_(j>#A@KcG*Ietf7_8Fk&jI!JhI~qtoYkI5c&f zgI^Q!e4V*oN_VaKIx~UQ!YCIDIoh#6F*qTi4P)BU-~L;G`%5usNgSBo;T7F~{*de1 z@0COhp1>HfxU}^xz_$Mt5dT^{OXz^rMov1EbDZi+=X2jSy$y@wM@ib-+dt6K?+c^z zmj~vOR-J%3IQ}4jKsqx3Ya=fq^sL?Bh|^eEufeYm>qOUhlF+syqEnrwT&OZ%+-$ z&CT_N4)gzTSjsNbZ~WEb=fh|BTjP(nqVv^$ZI#=uR?caJyc=;mk>1Ofcfpcl^4dsi z#Ae+k@hACNs7jZq!s4;$#S(yo<_Nm)k>4mhP=7}s>-THs$blMLSy^ei{8IuhE&?#q zpOt2cpvYv@)e~#?Zgksjd8@ycegIS;vu{PXpYP2+Z}vVD@H~0|-5TZ8D6s7N_NF?L%)s;Ar%w;g z4;BVVwDlxqWichv+(;(CJx-Myj^gvrw}J4%5#fEMNg9=$a+bVcSud>E+QNw#!{g!#jXFbt%)duQ)(agKAKm_$7sXCTL!%6q zQvFc}u7av6jMk8?q-=9IgU7V*E)W;D+XgvXhn^FPN(1QtnnQ{q$5ObK^vKr=RpQ43 zyu-$=;)v7nkb=<+{_+_!k(}N*y3vc{wZU(#miic@&fWvSMW`66A=P%!84RDe-;mUP zi_dl@(1_du@#=`1Iw4)2Q2^I+sij%glA(L-&W+BL#mvm!WK-vv=+oB-5F<8_zEvn2 zyDXh={_@{h>c1jd60YCc+M1tQOnA7erogi6TvE7(CVuRxO{A9_DC# zS7PZdIac2)1ZYn$vT^`Z38V|SPT1bI1Rc5u=s5~r&-hv;4b%HTS(we$*qNG|-le4- zF-y_!0TGn+3+u>QC50S1O2pk9)Rl{IdiULX)E#l+NckvIcJi~aM+G8$7~{PC{ryHg zLli&k7k)R+zn5b^S`in|2aUz>>l0}RgdFW=7C;1c?eauk57IW#Tlnj{(er;(fFEo! zWb#)5K(k$Q5$1>xmi>@p_M)tF?tTFhQx4FIG2V`5i}Kn`4e6HkDvMr#wvcvmabL*o zPuJzyuGh|&l!0m_=r1WxO?vLmJ^5JP3Qq@b-X){zJy>W|_%~=>-1ukoH2E*hcMt6T zPtuTm`aDv;`!7K0Q{`u+kdcuw_-C?2=Z9s2$M52GO(jp$Aec`W0nJQ{pYZG=l0K~2A?@BQg?Di>W@}VrzCv%AnpA|$UQ6z zD0A7mjWxR&I#~60Mf2>rSm7^U&RmGve#N_ht@N{ScR!#adn;y^;hTW$1 zdx5nxQrx@YT;Z_P;#|(p!4b=(_;HN40N9pA-}D=6#;y}P@c)k(>rp?=&hTz4B~Z8C znF$?};K<*>O^2BdlPGhG09#f+`R$h*_VYC6Q_c^=>p z8wQ6>7F!AN@e+=XT%aVeiJ3ptD=8`At@Xwg>QtHkGx82J10qLxea}%rLBT?q&GX5S zOULrKs+d^^BQfY%RGzQ}537kfwF)i4)R^HGL?( zmry*yiKcC^(BQ^MPyg=fd{J(VIVMfe#r#voLtv*QlpsDyj z3QRW|JvUMv@n4*~5pi)av7i^yFA4*p^rB|c`PM%E%8J%gfsh>566AS zXYaG6o;*u%SCi?g9!_&z>=%(}GiXgQiiIF8OrUP}GJfA8W>c8;x6o3F*QYnKk zrac(T2i^Yq;&^YiIgFS^g==?5=LU2kymr4n1R$;q|BXTeRNnX*5eJO%7a*}p%@N2k zD`!W4`)BQy)y#ML676#4Cr_fIqw&09JHw#qU)S$Q%&ruCB0gqs#heGHi-?GL%*)Ql z_YrY*?$ZiGC>jcR>SL}>(F{VAy6iQiq$us5^|3sOKa%wK{V&j#a%*TQzjOaLZR;5+oDaeDFS&7rjC;Hg(_4RQRq{?~GZa9NB{ zGb^V{OH1E2GBO%c%_LmMS^}_WHT8|c&l^Vn+5I*Pj|#Wd$wP5FCnFqwBGidZ8%1dQ zGJPAt)e2FJM&a)Nq~``=#L59bk^lwd8|8{w^Z*HRv86kUk~C1{fI!G!7m>w){K)ks1HR zQA&xpXoENX`u^E<2@1S;d5E9 zf0f{uyxkYTmn#l)y{U0p@5ld8`sQ6Az>Pueris}#i1SxTn}uX-bp?lCgf7LklTde;>Qsfc z_+8zK=VE@BraEE@i2abaHz|;<5KqtfP9=X^Znh-tla!W#l{tr2Gk~U$n`(42={??F zqBS!+dBLob*$2#1oYHcD->Cq*#qEubd7X)m#aj)rrfUriFOgq3kB^V_e2=>)O0)?B z!9D!^;zH&i*tkHj9=G?q#t!#B>fon-qr207_4KW=GCyJW{drAGe}KHKX2K&O9m+sE zi3K%YtVTt|M4A1bunNhxBLxf-Fa!k!Wg}>9MjDR?0R#jawzHKOf&56MY_5qX1hkhM zfdH|cuS=+_tCND-)wE?l(yEKNtpY?@9pZeBLeTgjXVXQH$M65^0!tHi;7DRoX6EJn z0Q?$YpHhV@vyz2mga=?eT=qWuBU5hZ16D(UGSwm=##I9~%?0dqe%C*B#-~dSw-DFu z>4cH`s+u^&U>DSm!NiM?iRr5g$}y4A>U|Lx3AaWF?>jTR%MFAQtM)wx?M)8$`BLpu zhq5X(IsFA=9i@cBRU-J~?>4KunqPk1T%YvA@Anw`UyYJ1k2NR0*fw@e!Yv!v8Y!eCr$G0JW z?j{t|e~ME)d9T;*$ToUhKW*R>Q@iL5JOykC(Cs}plC{A!2w+a18S==5TptO096aRb zC;Lb8nhq?dlTGnOkY8}nGcpG6I@D!H5VKVNZ!3t#W3l~1Z$W0Ytt8Xrt1%#;yj)lF z-iL;&muRtXvW!?9E;cJ=^QM7;E^Z#4w5KkZfWFZKiBA7K^r(|i+!2JG*=YzoZ9~6j zCcUv6vBC$Rz*=rXUhZCl$VTM)sFP&hpJ)*G0=hi%Y#u^DDy9U4*q=wj0tjF$iG zEtnSo-R~iQOb`QtcJ)XMeo9P0C#JL-B>kq=ei&S?S})D7E5xGX-5zd9CgN_69u6r{Ydxz96HtM0QzC`7nE6Wv+ z8}NMJVZ!5JPko{*jb}!Sa?T?w3FhjLc&LQQ$j=&RZAXSm}?bqff1kt3#bZ3P8WS+_Y4%GfHZd0r=DYuDX zSMJg$`6Ce>ohnFq)d#-@jNW8!$%O%a!-r^C4W%WOMFDInm$jE;f6++)ZIbtlds%7R z6!@v9bro36-shiz$no6R(B@Jm4g}%}Qv3b#b$ngmcIZ#w6W2+deI3Oe92{KhXUWOe zowlEMhO*zN$-|bb5n)4wrWjiN82^}o!3j5Az{%5+MFSZiWx&t_9<2yD9*{m*w-%bL z!Pf%*!4}~N#w5gXO?t8xl23MVHf?yrVZo%|jj+I?^Nj}**SKo3&#B+5C_%K^^VqmR zHAm$i^ig*d85wJ>^(1R39<7wSyZeK5oejjrS{#^u=CPgmF6E#F2-NEF<2aYO(%PSZ ziuzz137P{)0!;AAOPV8sQOxKOp&pH&;GL;S*=n?90;7PqXD+^W%tHrvl`o3 zDZs~e=$3L8o4uh3*b@485SM$y{tO4sVU0mQW`m|%0Xik-yjbAe)sjkU3u30mPFJF4 zaLL-VjYh;XJ~cH}YWyb9Z*^#eU7c(U>LfQs=94Af!NEE4AT9|>X47(>&hq#P`~is1 z`QGtJ<8cp_&e=IDl5fZ1rqP?JgkAfPXfu`HI=Kn}CZzvNWbw{&doXXb{cFoNAmDcr z7};};0jang>iiMleB4f}(!i_5YI~(B+Fdm&I;hLG$l#^P9cuLNT=BX=^qo2*dKnN% zdkc-VV?TiBJO)JBAq?NpZW$ywU|tj6=rt*2Z_fb)jA0ZXsh_*SD-HAk46acV_vMFyS4Rqh1 z^SW~RYYcDPw@e>RBm5DJBvk%2<&XjZeX^92_kOrAwfQW{=7ZjNJv!8D3Ioq zsF1|s1SXLF$t=2UJ$_vbOjaXuJX-G5_UD*n!s1NNFd&T!Bf!er8ZFSI`ioa|wLY%e zl(Qu&Tt2h$B0W1XJ!o#<94y7t{karCx0ZN+q&o{xi|}ncrOh~bT>%ws{Rtq+ajFSu zQy$-oqpE^d=z(yHo$0feVDUZa);C#)ODeSdD(kfVmESL@47-_4A^!?aGjP6s^;4?T7)q~1Noi}$zYj4C9`-J;uB{=O z2PkF!n)*g9p^q$;7H2()H>c3j^Ad3h0_Bja=c7ESwLbr+ssx4uSBNq8l{B7{~bUVU-qWe%zk6P6wOFu7M zp5*15I&=!H=B7<7$|2qm#HOpc~!N!l)@4IX#0poI_Vr3WO^cUht1 zRjO_rEgm%3E;vGznx+#yy<`Jqktp)iRAxP|{s2$oOAVB5NcihTlUD^N3kkbV@wlEs zs^pRP9feBpc&Ns?u-&s4pAL)okv`+?i?x!NicoU*Pf177pm+9_Pw*anV?Yh=Xp-uU z7Yz*!%)KEha*_%bRdwM}wa7pVDIz%0Kbn#v2Mapf1R&8L$gr)sSp%}u3_fiUFutm;;}#aGObFb7W-@&YGwUvr5mPPm084Txl)LBO}^Y(slv&$aBmkt_ik zsjU_RX@O5%x%tQl@~MyDn33|s8?Kr4eR-A#o;>|YY8GONEmvM5_2#J j^3u}96smP-*8ypbt9g2)!o1-7fe-~573ngmw?Y34gW}R9 diff --git a/doc/salome/gui/GEOM/images/transformation4.png b/doc/salome/gui/GEOM/images/transformation4.png index 323c3d0ae1722a8526914e105011bb6621b2bfa8..42f4bf79bb941692fe0b6f88999d0f243317cf9c 100755 GIT binary patch literal 24062 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 LGlNn+r>Oq|VM~?h literal 17189 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 SMEK_;2p!EE8hMxRJ^v5jtZ4lJ literal 19586 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 Jh0hG%{(l#?!chPK diff --git a/doc/salome/gui/GEOM/images/transformation5.png b/doc/salome/gui/GEOM/images/transformation5.png index 8d1cf925423b5c265e48f51d23a949b2404c5642..48b632622bed3ce4a3c2f11ec6c7486a8fcb0ed7 100755 GIT binary patch literal 22783 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 diff --git a/doc/salome/gui/GEOM/images/transformation6.png b/doc/salome/gui/GEOM/images/transformation6.png index 3e3828bd8f4a43b77b55553a8f840ea9611a5257..b77c7450f27746a40fbd0ec5e60c3ae53863f8da 100755 GIT binary patch literal 24458 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 literal 15455 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 AdH?_b diff --git a/doc/salome/gui/GEOM/images/transformation7.png b/doc/salome/gui/GEOM/images/transformation7.png index 03a16fe0156568f616a7d57674498aca4dd35bca..cadec9ec2c4cdc580acf25b766ecd2888dca5164 100755 GIT binary patch literal 21736 zcma%jby!s2zBi(RA|cWxN_U5}5=se3H%Ll%m!dR?NJ~kHbaxEhFw)&I^w16St~tMR z&OP_ubMEv0;qx#vd-mS5_FCWXrv-hIUhhJ*s+XAvfVHb96<`Q}HL|SK}~r z+vAYOP3UZPmM1OQN%2YM+zQnG4MJ!xI5>DT19FDV8J@E|w^u?~sYif|o4dV?*P=WV z`xqCO(d4eQ>$oegq@<)mpmI@uRsM4-DrI8X`;~fFxVX5LF_Mz)lB3E`aB)YJOLyc@*!RzA@ox@hw$43>GA(1qN|{ z`sm|z^s8u?pbO;pmZv-hv}ME~wt+Hg%BR7vDa#xLm(!WwU$hIny&4X}2UP5}>RX z<8~-uf)cU)N<7fKP6AIF8u0o~DopDYiNOa`-sUwnKYfqh=}we7o}kRcKiMSKas|3m zIaWld)IzOq#M+8zpiN$>=y-L_-*>+)3!hA`5}xz1SXzoX+U9>vEuZo+oL^TNInz@s zJ-o|8TM;u{05c{Q&^%K3=COgt#<6TMkxtO^_R`SmsX`TZbcF$g)?voXcgm0ajUhL7 z@&vipA}1=U_Qs_uh1$7)jR-EA4F)86U!JIGKgeLwBen9u7lfOD@MS=b&Nf018x9Zj zwRtwVa3n5zQMP>a^a>T#nq$YPhNFF?qwmt1y;%~i`{%0A#BQebLZFT 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 T<&V(86k&lrW0HTu`R?BV#s77_ literal 13562 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 diff --git a/doc/salome/gui/GEOM/images/transformation8.png b/doc/salome/gui/GEOM/images/transformation8.png index 77d0303855232f3b1845ddfb9e427f31c6193be5..316314320b7576883df49fce5ec0099e5c8fde71 100755 GIT binary patch literal 21901 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 R{=EuGUPf8EP}0c%{{Z8_AIty% diff --git a/doc/salome/gui/GEOM/images/transformation9.png b/doc/salome/gui/GEOM/images/transformation9.png index c7f6194d3b0eee40b39a155608837ebf405b113f..1b633a4909331017a6aca91346dc275405e9403b 100755 GIT binary patch literal 21900 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 PRmREwh}|<=|7-sNzhb+d literal 13736 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 qp)niw8XPtYm45x&Zh7(s!>xVV2<IEM(Dn$8zs; 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 O5Vvk>tCT2Nh5QE*+ZfFN literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/vector1.png b/doc/salome/gui/GEOM/images/vector1.png index 46e3b20f3fd00fc38ebaed0e22040c5167796e2b..e702853e0c17c7a9259fd8f52c4b86775ac27f3f 100755 GIT binary patch literal 15229 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 literal 13801 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 SAABhrBKuN7s`&ZGPyYw7Rc)96 literal 12610 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 diff --git a/doc/salome/gui/GEOM/images/transformation1.png b/doc/salome/gui/GEOM/images/transformation1.png index 8dbf8fe11bc93a7bdda2dd756c8013fda14ca5e8..0ed8d8d93dc55bdd6175b1546dba94524c48ac96 100755 GIT binary patch literal 25473 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

+\b Buttons: + +"Sketch Validation" button applies the wire, only red part will be built by "Sketch Validation". +\n "Sketch Closure" will close the Sketch by straight line from last red part and apply it. + \n Dialog Box: \image html neo-scetcher1.png @@ -60,9 +65,7 @@ is predefined and is equal to 90 degrees); \n Example: -\image html image204.jpg - -\image html image206.jpg +\image html image204.jpg "Creation of a circle with sketcher" Our TUI Scripts provide you with useful examples of the use of \ref tui_sketcher_page "Sketcher". diff --git a/doc/salome/gui/GEOM/input/creating_solid.doc b/doc/salome/gui/GEOM/input/creating_solid.doc index 139dbfe3d..48a05750e 100644 --- a/doc/salome/gui/GEOM/input/creating_solid.doc +++ b/doc/salome/gui/GEOM/input/creating_solid.doc @@ -17,7 +17,7 @@ ListOfShape is a list of shells from which the solid is constructed. \n Example: -\image html solidsn.png +\image html solidsn.png "Solid" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_solid "Advanced Geometric Objects". diff --git a/doc/salome/gui/GEOM/input/creating_sphere.doc b/doc/salome/gui/GEOM/input/creating_sphere.doc index c4437cadc..b772bdac8 100644 --- a/doc/salome/gui/GEOM/input/creating_sphere.doc +++ b/doc/salome/gui/GEOM/input/creating_sphere.doc @@ -28,7 +28,7 @@ Point and its \b Radius (in this way you don't need to create it in advance) Example: -\image html spheres.png +\image html spheres.png "Spheres" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_sphere "Primitives". diff --git a/doc/salome/gui/GEOM/input/creating_squareface.doc b/doc/salome/gui/GEOM/input/creating_squareface.doc new file mode 100755 index 000000000..4267a400f --- /dev/null +++ b/doc/salome/gui/GEOM/input/creating_squareface.doc @@ -0,0 +1,43 @@ +/*! + +\page create_squareface_page Square Face + +A primitive called Square Face is a square plane of certain dimensions and orientation + +To create a \b Square Face in the Main Menu select New Entity - > +Primitives - > Face + +\n There are 2 algorithms to create a \b Square \b Face in the 3D space. +\n The \b Result of each operation will be a GEOM_Object (Face). + +\n Firstly, you can create a \b Face at the origin +of coordinates defining its boundaries by the height and the width and its axis by the orientation +radio buttons (OXY, OYZ or OZX).This +means that the Square Face will lie in "OXY", "OYZ" or "OZX" plane correspondingly. +\n TUI Command: geompy.MakeFaceHW(Height, Width, Orientation) +\n Arguments: Name + 3 values (Dimensions at origin: heigth, width and +orientation). + + +\image html face1.png + +\n Secondly, you can define a \b Face by the height and the width sizes and an \b Edge defining the normal to the center of the face. +\n TUI Command: geompy.MakeFaceObjHW(Vector, Height, Width) +\n Arguments: Name + 1 Vector (normal to the center) + 2 doubles (to +describe a face sizes). + +\n It is also possible to create a Square Face from another selected face. For this, switch the Object Type button +to \b Face, then select a face object and set the values of +Height and Width for the new face. The created face will lie in the plane of the selected face. +\n TUI Command: geompy.MakeFaceObjHW(Face, Height, Width) +\n Arguments: Name + 1 Face + 2 parameters (to describe a face sizes). + +\image html face2.png + +Example: +\image html faces.png "Square face" + +Our TUI Scripts provide you with useful examples of creating +\ref tui_creation_face "Primitives". + +*/ diff --git a/doc/salome/gui/GEOM/input/creating_torus.doc b/doc/salome/gui/GEOM/input/creating_torus.doc index dd8b63412..3ad048c85 100644 --- a/doc/salome/gui/GEOM/input/creating_torus.doc +++ b/doc/salome/gui/GEOM/input/creating_torus.doc @@ -24,7 +24,7 @@ of coordinates by its Major and Minor \b Radiuses. Example: -\image html toruses.png +\image html toruses.png "Toruses" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_torus "Primitives". diff --git a/doc/salome/gui/GEOM/input/creating_vector.doc b/doc/salome/gui/GEOM/input/creating_vector.doc index 0a914bea1..331180e95 100644 --- a/doc/salome/gui/GEOM/input/creating_vector.doc +++ b/doc/salome/gui/GEOM/input/creating_vector.doc @@ -23,7 +23,7 @@ coordinates by its End Point. Example: -\image html image34.gif +\image html image34.gif "A vector by two points and a vector from the origin of coordinates" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_vector "Basic Geometric Objects". diff --git a/doc/salome/gui/GEOM/input/creating_wire.doc b/doc/salome/gui/GEOM/input/creating_wire.doc index 34a24b0e2..54cf6c79a 100644 --- a/doc/salome/gui/GEOM/input/creating_wire.doc +++ b/doc/salome/gui/GEOM/input/creating_wire.doc @@ -19,7 +19,7 @@ button. \n Example: -\image html wiresn.png +\image html wiresn.png "Wire" Our TUI Scripts provide you with useful examples of creation of \ref tui_creation_wire "Advanced Geometric Objects". diff --git a/doc/salome/gui/GEOM/input/cut_operation.doc b/doc/salome/gui/GEOM/input/cut_operation.doc index 1ccc84b0a..bab9ca7b8 100644 --- a/doc/salome/gui/GEOM/input/cut_operation.doc +++ b/doc/salome/gui/GEOM/input/cut_operation.doc @@ -7,6 +7,8 @@ \n This operation cuts a shape with another one. \n The \b Result will be any \b GEOM_Object. \n Arguments: Name + 2 shapes. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \n Dialog Box: @@ -14,9 +16,9 @@ \n Example: -\image html fusesn1.png +\image html fusesn1.png "The initial shapes" -\image html cutsn.png +\image html cutsn.png "The resulting object" Our TUI Scripts provide you with useful examples of the use of \ref tui_cut "Boolean Operations". diff --git a/doc/salome/gui/GEOM/input/explode_on_blocks_operation.doc b/doc/salome/gui/GEOM/input/explode_on_blocks_operation.doc index 635f70561..abfaf09bd 100644 --- a/doc/salome/gui/GEOM/input/explode_on_blocks_operation.doc +++ b/doc/salome/gui/GEOM/input/explode_on_blocks_operation.doc @@ -24,7 +24,7 @@ faces in the block to be extracted). \n Example: -\image html block_explodesn.png +\image html block_explodesn.png "Explode on blocks operation" Our TUI Scripts provide you with useful examples of the use of \ref tui_explode_on_blocks "Blocks Operations". diff --git a/doc/salome/gui/GEOM/input/fillet2d_operation.doc b/doc/salome/gui/GEOM/input/fillet2d_operation.doc new file mode 100755 index 000000000..43701ed90 --- /dev/null +++ b/doc/salome/gui/GEOM/input/fillet2d_operation.doc @@ -0,0 +1,27 @@ +/*! + +\page fillet2d_operation_page Fillet 2D + +This operation creates fillets on the corners of a 2D Planar Face. + +\image html fillet2d_2.png + +To produce a \b Fillet 2D in the Main Menu select +Operations - > Transformation - > Fillet 2D + +Define the Planar Face to create a fillet on, select the necessary +vertexes on this face in the OCC Viewer and define the \b Radius of the Fillet. + +\b Note: This Operation Works for the Planar 2D Faces Only. + +TUI Command: geompy.MakeFillet(Shape, R, ListVertexes) +\n Arguments: Name + 1 shape + one or several vertexes + 1 value (Fillet radius). + +Examples: + +\image html fillet2d_1.png + +Our TUI Scripts provide you with useful examples of the use of +\ref tui_fillet2d "Transformation Operations". + +*/ diff --git a/doc/salome/gui/GEOM/input/fuse_operation.doc b/doc/salome/gui/GEOM/input/fuse_operation.doc index 5eb168bcd..ece199c5c 100644 --- a/doc/salome/gui/GEOM/input/fuse_operation.doc +++ b/doc/salome/gui/GEOM/input/fuse_operation.doc @@ -8,16 +8,18 @@ \n This operation creates a shape from two shapes. \n The \b Result will be any \b GEOM_Object. -\n Arguments: Name + 2 shapes. \n TUI Command: geompy.MakeFuse(s1, s2) +\n Arguments: Name + 2 shapes. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html bool1.png \n Example: -\image html fusesn1.png +\image html fusesn1.png "The initial shapes" -\image html fusesn2.png +\image html fusesn2.png "The resulting fuse" Our TUI Scripts provide you with useful examples of the use of \ref tui_fuse "Boolean Operations". diff --git a/doc/salome/gui/GEOM/input/geompy.doc b/doc/salome/gui/GEOM/input/geompy.doc index cde054cb5..90bc578bb 100644 --- a/doc/salome/gui/GEOM/input/geompy.doc +++ b/doc/salome/gui/GEOM/input/geompy.doc @@ -2,6 +2,43 @@ \page geompy_page Python Interface geompy.py -\n Please, see \ref geompyDC::geompyDC "documentation for geompy.py" +\n Please, see +structured documentation for geompy.py, +where all package functionality is separated in groups by purpose. -*/ \ No newline at end of file +\n Also you can find any function in the \ref geompy +"linear documentation for geompy.py". + +By the links below you can find sample scripts for all operations +provided by Geometry module. + +
    +
  • \subpage tui_viewing_geom_objs_page
  • +
  • \subpage tui_creating_geom_objs_page
  • +
      +
    • \ref tui_basic_geom_objs_page
    • +
    • \ref tui_primitives_page
    • +
    • \ref tui_complex_objs_page
    • +
    • \ref tui_working_with_groups_page
    • +
    • \ref tui_building_by_blocks_page
    • +
    • \ref tui_sketcher_page
    • +
    • \ref tui_advanced_geom_objs_page
    • +
    +
  • \subpage tui_transformation_page
  • +
      +
    • \ref tui_basic_operations_page
    • +
    • \ref tui_boolean_operations_page
    • +
    • \ref tui_transformation_operations_page
    • +
    • \ref tui_blocks_operations_page
    • +
    • \ref tui_repairing_operations_page
    • +
    +
  • \subpage tui_measurement_tools_page
  • +
  • \subpage tui_swig_examples_page
  • +
      +
    • \ref tui_test_others_page
    • +
    • \ref tui_test_spanner_page
    • +
    • \ref tui_test_all_page
    • +
    +
+ +*/ diff --git a/doc/salome/gui/GEOM/input/glue_faces_operation.doc b/doc/salome/gui/GEOM/input/glue_faces_operation.doc index 340f4afa7..f940075d5 100644 --- a/doc/salome/gui/GEOM/input/glue_faces_operation.doc +++ b/doc/salome/gui/GEOM/input/glue_faces_operation.doc @@ -9,11 +9,14 @@ given tolerance value. \n The \b Result will be a \b GEOM_Object. -\n TUI Command: geompy.MakeGlueFaces(theShape, -theTolerance), where \em theShape is a compound of solids to be -glued, \em theTolerance is a maximum distance between two faces, which can -be considered as coincident. +\n TUI Command: + geompy.MakeGlueFaces(theShape,theTolerance), + where \em theShape is a compound of solids to be glued, \em + theTolerance is a maximum distance between two faces, which can be + considered as coincident. \n Arguments: Name + Compound of solids + Tolerance value. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html glue1.png diff --git a/doc/salome/gui/GEOM/input/import_export.doc b/doc/salome/gui/GEOM/input/import_export.doc index 8a5219ebe..1cd5cc459 100644 --- a/doc/salome/gui/GEOM/input/import_export.doc +++ b/doc/salome/gui/GEOM/input/import_export.doc @@ -22,6 +22,14 @@ Select the required file and click \b Open. Your file will be imported in the module and its contents (geometrical object) will be displayed in the Object Browser. +\note It is possible to re-open from the initial file a previously imported shape if +the file has been changed on disk. For this, select +Reload From Disk in the context menu of the imported +shape. The reloaded shape will have the same representation parameters +as before this operation. + +\image html geomimport_reopen.png + \n To export geometrical objects into a BREP, IGES, STEP file: diff --git a/doc/salome/gui/GEOM/input/index.doc b/doc/salome/gui/GEOM/input/index.doc index 45eb2ac65..c5121cabb 100644 --- a/doc/salome/gui/GEOM/input/index.doc +++ b/doc/salome/gui/GEOM/input/index.doc @@ -1,137 +1,26 @@ /*! -\mainpage Geometry Module Reference Documentation +\mainpage Introduction to Geometry +\image html geomscreen.png + +\b Geometry module of SALOME is destined for:
    -
  • \subpage introduction_page
  • -
  • \subpage import_export_geom_obj_page
  • -
  • \subpage create_geom_obj_page
  • -
      -
    • \ref create_basic_geom_obj_page
    • -
        -
      • \ref create_point_page
      • -
      • \ref create_line_page
      • -
      • \ref create_circle_page
      • -
      • \ref create_ellipse_page
      • -
      • \ref create_arc_page
      • -
      • \ref create_curve_page
      • -
      • \ref create_vector_page
      • -
      • \ref create_plane_page
      • -
      • \ref create_wplane_page
      • -
      • \ref create_lcs_page
      • -
      -
    • \ref create_primitives_page
    • -
        -
      • \ref create_box_page
      • -
      • \ref create_cylinder_page
      • -
      • \ref create_sphere_page
      • -
      • \ref create_torus_page
      • -
      • \ref create_cone_page
      • -
      -
    • \ref create_complex_obj_page
    • -
        -
      • \ref create_extrusion_page
      • -
      • \ref create_revolution_page
      • -
      • \ref create_filling_page
      • -
      • \ref create_extrusion_alongpath_page
      • -
      -
    • \ref work_with_groups_page
    • -
    • \ref build_by_blocks_page
    • -
    • \ref create_sketcher_page
    • -
    • \ref create_adv_obj_page
    • -
        -
      • \ref create_explode_page
      • -
      • \ref create_edge_page
      • -
      • \ref create_wire_page
      • -
      • \ref create_face_page
      • -
      • \ref create_shell_page
      • -
      • \ref create_solid_page
      • -
      • \ref create_compound_page
      • -
      -
    -
  • \subpage view_geom_obj_chapter_page
  • -
      -
    • \ref view_geom_obj_page
    • -
    • \ref display_mode_page
    • -
    • \ref color_page
    • -
    • \ref transparency_page
    • -
    • \ref isolines_page
    • -
    -
  • \subpage transform_geom_obj_page
  • -
      -
    • \ref basic_operations_page
    • -
        -
      • \ref partition_page
      • -
      • \ref archimede_page
      • -
      -
    • \ref boolean_operations_page
    • -
        -
      • \ref using_boolean_operations_page
      • -
      • \ref fuse_operation_page
      • -
      • \ref common_operation_page
      • -
      • \ref cut_operation_page
      • -
      • \ref section_opeartion_page
      • -
      -
    • \ref transformation_operations_page
    • -
        -
      • \ref translation_operation_page
      • -
      • \ref rotation_operation_page
      • -
      • \ref modify_location_operation_page
      • -
      • \ref mirror_operation_page
      • -
      • \ref scale_operation_page
      • -
      • \ref offset_operation_page
      • -
      • \ref multi_translation_operation_page
      • -
      • \ref multi_rotation_operation_page
      • -
      • \ref fillet_operation_page
      • -
      • \ref chamfer_operation_page
      • -
      -
    • \ref blocks_operations_page
    • -
        -
      • \ref multi_transformation_operation_page
      • -
      • \ref explode_on_blocks_operation_page
      • -
      • \ref propagate_operation_page
      • -
      -
    • \ref repairing_operations_page
    • -
        -
      • \ref shape_processing_operation_page
      • -
      • \ref suppress_faces_operation_page
      • -
      • \ref close_contour_operation_page
      • -
      • \ref suppress_internal_wires_operation_page
      • -
      • \ref suppress_holes_operation_page
      • -
      • \ref sewing_operation_page
      • -
      • \ref glue_faces_operation_page
      • -
      • \ref add_point_on_edge_operation_page
      • -
      • \ref check_free_boundaries_operation_page
      • -
      • \ref check_free_faces_operation_page
      • -
      • \ref change_orientation_operation_page
      • -
      • \ref remove_extra_edges_operation_page
      • -
      -
    -
  • \subpage using_measurement_tools_page
  • -
  • \subpage geompy_page
  • -
  • \subpage tui_scripts_page
  • -
      -
    • \ref tui_viewing_geom_objs_page
    • -
    • \ref tui_creating_geom_objs_page
    • -
        -
      • \ref tui_basic_geom_objs_page
      • -
      • \ref tui_primitives_page
      • -
      • \ref tui_complex_objs_page
      • -
      • \ref tui_working_with_groups_page
      • -
      • \ref tui_building_by_blocks_page
      • -
      • \ref tui_sketcher_page
      • -
      • \ref tui_advanced_geom_objs_page
      • -
      -
    • \ref tui_transformation_page
    • -
        -
      • \ref tui_basic_operations_page
      • -
      • \ref tui_boolean_operations_page
      • -
      • \ref tui_transformation_operations_page
      • -
      • \ref tui_blocks_operations_page
      • -
      • \ref tui_repairing_operations_page
      • -
      -
    • \ref tui_measurement_tools_page
    • -
    +
  • \subpage import_export_geom_obj_page "import and export of geometrical models" in IGES, BREP and STEP formats;
  • +
  • \subpage create_geom_obj_page "construction of geometrical objects" +using a wide range of functions;
  • +
  • \subpage view_geom_obj_page "viewing geometrical objects" in the OCC viewer;
  • +
  • \subpage transform_geom_obj_page "transformation of geometrical objects" using +various algorithms;
  • +
  • \subpage repairing_operations_page "optimization of geometrical objects";
  • +
  • \subpage using_measurement_tools_page "provision of information about geometrical objects".
  • +
  • \subpage using_notebook_geom_page.
+Almost all geometry module functionalities are accessible via +\subpage geompy_page "Geometry module Python Interface" + +\image html image3.jpg "Example of Geometry module usage for engineering tasks" + + */ diff --git a/doc/salome/gui/GEOM/input/introduction.doc b/doc/salome/gui/GEOM/input/introduction.doc deleted file mode 100644 index e1005c6d0..000000000 --- a/doc/salome/gui/GEOM/input/introduction.doc +++ /dev/null @@ -1,26 +0,0 @@ -/*! - -\page introduction_page Introduction to Geometry - -\b Geometry module of SALOME is destined for: -
    -
  • Import and export of geometrical models in IGES, BREP and STEP formats.
  • -
  • Construction and optimization of geometrical models using a wide -range of CAD functions:
  • -
      -
    • Creation of basic geometrical objects
    • -
    • Construction of primitives
    • -
    • Building shapes
    • -
    • Generation of complex shapes
    • -
    • Working with groups
    • -
    • Geometrical repairing of objects
    • -
    • Geometrical boolean operations
    • -
    • Geometrical transformations
    • -
    • Building by blocks
    • -
    -
- -\image html image3.jpg - - -*/ \ No newline at end of file diff --git a/doc/salome/gui/GEOM/input/mirror_operation.doc b/doc/salome/gui/GEOM/input/mirror_operation.doc index f852902b0..629012f61 100644 --- a/doc/salome/gui/GEOM/input/mirror_operation.doc +++ b/doc/salome/gui/GEOM/input/mirror_operation.doc @@ -14,33 +14,39 @@ otherwise it will be removed. \n Firstly an \b Object can be mirrored through a \b Point of symmetry \n TUI Command: geompy.MakeMirrorByPoint(Object, Point) \n Arguments: Name + one or several objects + 1 vertex. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html transformation7.png -\image html mirror_pointsn1.png +\image html mirror_pointsn1.png "The initial shape and the mirror point" -\image html mirror_pointsn2.png +\image html mirror_pointsn2.png "The resulting shape (grey)" \n Secondly an \b Object can be mirrored through an \b Axis of symmetry \n TUI Command: geompy.MakeMirrorByAxis(Object, Axis) \n Arguments: Name + one or several objects + 1 vector. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html transformation8.png -\image html mirror_axissn1.png +\image html mirror_axissn1.png "The initial shape and the mirror edge" -\image html mirror_axissn2.png +\image html mirror_axissn2.png "The resulting shape (grey)" \n Finally an \b Object can be mirrored through a \b Plane of symmetry \n TUI Command: geompy.MakeMirrorByPlane(Shape, Plane) \n Arguments: Name + one or several objects + 1 plane +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html transformation9.png -\image html mirror_planesn1.png +\image html mirror_planesn1.png "The initial shape and the mirror plane" -\image html mirror_planesn2.png +\image html mirror_planesn2.png "The resulting shape (grey)" Our TUI Scripts provide you with useful examples of the use of \ref tui_mirror "Transformation Operations". diff --git a/doc/salome/gui/GEOM/input/modify_location_operation.doc b/doc/salome/gui/GEOM/input/modify_location_operation.doc index c25e0875c..9ce13b3f8 100644 --- a/doc/salome/gui/GEOM/input/modify_location_operation.doc +++ b/doc/salome/gui/GEOM/input/modify_location_operation.doc @@ -12,6 +12,8 @@ with the origin of the Local Coordinate System. \n Create a copy checkbox allows to keep the initial objects, otherwise they will be removed. \n Arguments: Name + one or several objects + End Coordinate System. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html transformation5.png @@ -31,6 +33,8 @@ the coordinates of the End LSC. otherwise it will be removed. \n Arguments: Name + one or several objects + Start Coordinate System + End Coordinate System. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html transformation6.png @@ -50,12 +54,31 @@ translated cube at the position (-100;0;0) \image html image4.gif +The third algorithm modifies the location of an object using the Path object (Wire or Edge) +and the Distance parameter (ranging from 0 to 1) defining how far the object will move along the path. +\n Create a copy checkbox allows to keep the initial object, +otherwise it will be removed. +\n Select Unpublished edges checkbox allows to select subshape edges on +the other objects. +\n Reverse Direction checkbox allows to REVERSE the direction of the object movement along its path. + +Arguments: Name + one or several objects + Translation path. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation + parameters and subshapes from arguments". + +\image html transformation13.png + +\image html transformation12.png + +\image html transformation14.png + \n TUI Command: geompy.MakePosition(theObject, theStartLCS, theEndLCS), where \em theObject is a shape, location of which is modified, \em theStartLCS is a location to move the shape from, \em theEndLCS is a location to move the shape to. \n Our TUI Scripts provide you with useful examples of the use -of \ref tui_translation "Transformation Operations". +of \ref tui_modify_location "Transformation Operations". */ diff --git a/doc/salome/gui/GEOM/input/multi_rotation_operation.doc b/doc/salome/gui/GEOM/input/multi_rotation_operation.doc index 7ad469f89..eff4bac5d 100644 --- a/doc/salome/gui/GEOM/input/multi_rotation_operation.doc +++ b/doc/salome/gui/GEOM/input/multi_rotation_operation.doc @@ -24,9 +24,9 @@ the same way, but the Axis is defined by direction and point. \image html neo-mrot1.png -\image html multi_rotation1d1.png +\image html multi_rotation1d1.png "The initial object" -\image html multi_rotation1d2.png +\image html multi_rotation1d2.png "The result of a simple multi-rotation" \n Double Multi Rotation (in two dimensions) rotates the given \b Object around the given \b Axis on the given \b Angle a given @@ -46,9 +46,9 @@ but the Axis is defined by direction and point. \image html neo-mrot2.png -\image html multi_rotation2d1.png +\image html multi_rotation2d1.png "The initial object" -\image html multi_rotation2d2.png +\image html multi_rotation2d2.png "The result of a double multi-rotation" Our TUI Scripts provide you with useful examples of the use of \ref tui_multi_rotation "Transformation Operations". diff --git a/doc/salome/gui/GEOM/input/multi_transformation_operation.doc b/doc/salome/gui/GEOM/input/multi_transformation_operation.doc index 2bb30e7f7..668f04a0a 100644 --- a/doc/salome/gui/GEOM/input/multi_transformation_operation.doc +++ b/doc/salome/gui/GEOM/input/multi_transformation_operation.doc @@ -22,7 +22,7 @@ integer (number of blocks). \image html mtransf1.png -\image html multi_transformationsn1d.png +\image html multi_transformationsn1d.png "Single Multi-transformation on a box"

Double Multi Transformation (in two directions)

@@ -38,7 +38,7 @@ integers (number of blocks). \image html mtransf2.png -\image html multi_transformationsn2d.png +\image html multi_transformationsn2d.png "Double Multi-transformation on a box" Our TUI Scripts provide you with useful examples of the use of \ref tui_multi_transformation "Blocks Operations". diff --git a/doc/salome/gui/GEOM/input/multi_translation_operation.doc b/doc/salome/gui/GEOM/input/multi_translation_operation.doc index 5bd20ff65..2bd2ef3fc 100644 --- a/doc/salome/gui/GEOM/input/multi_translation_operation.doc +++ b/doc/salome/gui/GEOM/input/multi_translation_operation.doc @@ -20,9 +20,9 @@ step value + 1 value (repetition). \image html mtrans1.png -\image html multi_translation_initialsn.png +\image html multi_translation_initialsn.png "The initial object" -\image html multi_translation1dsn.png +\image html multi_translation1dsn.png "The result of a simple multi-translation" \n To produce a Double Multi Translation (in two directions) you need to indicate an \b Object to be translated, and, for both axes, a \b @@ -40,9 +40,9 @@ along \em Dir2. \image html mtrans2.png -\image html multi_translation_initialsn.png +\image html multi_translation_initialsn.png "The initial object" -\image html multi_translation2dsn.png +\image html multi_translation2dsn.png "The result of a double multi-translation" Our TUI Scripts provide you with useful examples of the use of \ref tui_multi_translation "Transformation Operations". diff --git a/doc/salome/gui/GEOM/input/offset_operation.doc b/doc/salome/gui/GEOM/input/offset_operation.doc index d2b4b6766..41dd6dc14 100644 --- a/doc/salome/gui/GEOM/input/offset_operation.doc +++ b/doc/salome/gui/GEOM/input/offset_operation.doc @@ -15,12 +15,14 @@ where Shape is a shape(s) which has to be an offset, Offset is a value of the offset. \n Arguments: Name + Object (face(s), shell(s), solid(s)) + Offset value +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html transformation11.png \n Example: -\image html offsetsn.png +\image html offsetsn.png "The box and its offset surface" Our TUI Scripts provide you with useful examples of the use of \ref tui_offset "Transformation Operations". diff --git a/doc/salome/gui/GEOM/input/partition.doc b/doc/salome/gui/GEOM/input/partition.doc index 7dfc5310d..532f4c375 100644 --- a/doc/salome/gui/GEOM/input/partition.doc +++ b/doc/salome/gui/GEOM/input/partition.doc @@ -10,7 +10,7 @@

Intersection of two shapes.

\n As far as the intersection of two objects can produce any type of -geometrical objects, Reconstruction Limit box allows choosing the +geometrical objects, Resulting type box allows choosing the preferrable result, i.e. a solid, a shell, a list of faces, etc. \n TUI Command: geompy.MakePartition(ListOfShapes, ListOfTools, ListOfKeepInside, ListOfRemoveInside, Limit, RemoveWebs, @@ -23,11 +23,13 @@ only to support the old scripts. \n Arguments: Name + 2 lists of shapes (the shapes from the first list will be intersected with the shapes from the second list) + reconstruction limit. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html partition1.png -Keep nonlimit shapes checkbox allows building geometrical objects of -all types at the same time i.e. no reconstruction limit is applied. +Keep shapes of lower type checkbox allows building geometrical objects. +Only lower type objects will be preserved without the upper ones.

Intersection of a Shape and a Plane.

@@ -37,16 +39,18 @@ Plane),
where \em Shapes are a list of Shapes to be intersected and \em Plane is a Tool shape, to intersect the \em Shapes. \n Arguments: Name + a list of shapes which will be intersected + 1 cutting plane. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html partition2.png \n Example: -\image html partitionsn1.png +\image html partitionsn1.png "Box intersected by a plane" -\image html partitionsn2.png +\image html partitionsn2.png "Result of intersection" Our TUI Scripts provide you with useful examples of the use of \ref tui_partition "Basic Operations". -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/propagate_operation.doc b/doc/salome/gui/GEOM/input/propagate_operation.doc index 3882ee75e..1c7c3482a 100644 --- a/doc/salome/gui/GEOM/input/propagate_operation.doc +++ b/doc/salome/gui/GEOM/input/propagate_operation.doc @@ -18,9 +18,9 @@ is a shape to build propagation groups on. \n Example: -\image html image15.jpg +\image html image15.jpg "The initial box" -\image html image16.jpg +\image html image16.jpg "The resulting edges" Our TUI Scripts provide you with useful examples of the use of \ref tui_propagate "Blocks Operations". diff --git a/doc/salome/gui/GEOM/input/remove_extra_edges_operation.doc b/doc/salome/gui/GEOM/input/remove_extra_edges_operation.doc index 3be4c4d3b..ad32a93b7 100644 --- a/doc/salome/gui/GEOM/input/remove_extra_edges_operation.doc +++ b/doc/salome/gui/GEOM/input/remove_extra_edges_operation.doc @@ -10,6 +10,8 @@ shape and unites faces and edges, sharing one surface. \n TUI Command: geompy.RemoveExtraEdges(theShape), there theShape is a compound or a single solid to remove irregular edges from. \n Arguments: Name + one shape. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html remove_extra_edges.png @@ -21,4 +23,4 @@ there theShape is a compound or a single solid to remove irregular edge \image html remove_extra_edges2.png
Improved shape
-*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/repairing_operations.doc b/doc/salome/gui/GEOM/input/repairing_operations.doc index cb41f8102..542f5c25e 100644 --- a/doc/salome/gui/GEOM/input/repairing_operations.doc +++ b/doc/salome/gui/GEOM/input/repairing_operations.doc @@ -2,17 +2,27 @@ \page repairing_operations_page Repairing Operations +Repairing operations improve the shapes, processing them with complex algorithms: +
    -
  • \subpage shape_processing_operation_page
  • -
  • \subpage suppress_faces_operation_page
  • -
  • \subpage close_contour_operation_page
  • -
  • \subpage suppress_internal_wires_operation_page
  • -
  • \subpage suppress_holes_operation_page
  • -
  • \subpage sewing_operation_page
  • -
  • \subpage glue_faces_operation_page
  • -
  • \subpage add_point_on_edge_operation_page
  • -
  • \subpage change_orientation_operation_page
  • -
  • \subpage remove_extra_edges_operation_page
  • +
  • \subpage shape_processing_operation_page "Shape processing" - +processes one or more shapes using various operators.
  • +
  • \subpage suppress_faces_operation_page "Suppress faces" - removes +chosen faces of a shape.
  • +
  • \subpage close_contour_operation_page "Close contour" - closes an +open contour asnd miodifies the underlying face.
  • +
  • \subpage suppress_internal_wires_operation_page "Suppress internal wires" - removes internal wires from shapes.
  • +
  • \subpage suppress_holes_operation_page "Suppress holes" - removes +holes with free boundaries on a selected face.
  • +
  • \subpage sewing_operation_page "Sewing" - sews faces or shells.
  • +
  • \subpage glue_faces_operation_page "Glue faces" - unites +coincident faces within the given tolerance.
  • +
  • \subpage add_point_on_edge_operation_page "Add point on edge" - +splits an edge in two.
  • +
  • \subpage change_orientation_operation_page "Change orientation" - +reverses the normals of the selected faces.
  • +
  • \subpage remove_extra_edges_operation_page "Remove extra edges" - +removes seam and degenerated edges from the given shape.
*/ diff --git a/doc/salome/gui/GEOM/input/restore_presentation_parameters.doc b/doc/salome/gui/GEOM/input/restore_presentation_parameters.doc new file mode 100644 index 000000000..f97527a1a --- /dev/null +++ b/doc/salome/gui/GEOM/input/restore_presentation_parameters.doc @@ -0,0 +1,57 @@ +/*! + +\page restore_presentation_parameters_page Restore presentation parameters and a tree of subshapes + +\n This functionality allows the operation result to inherit colour +and subshapes from its arguments. + +\n To activate this functionality, check in "Set +presentation parameters and subshapes from arguments" checkbox in the +corresponding dialog. + +\n For example, there exist two objects: Box_1 with two published +faces and Cylinder_1 with free published edges. + +\image html restore-ss-viewer-before.png "The initial box and cylinder" + +First, we examine the case when the resulting shape corresponds to one argument (after transformation, +after the boolean operation Cut, or after the partiton with one object shape). + +We create a Cut of Box_1 with Cylinder_1. + +\image html restore-ss-cut.png + +The resulting shape inherits the subshapes and the colour of Box_1. + +\image html restore-ss-viewer-cut.png "The resulting shape" + +Second, we examine the case when the resulting shape is composed from multiple arguments +(after all boolean operations, except for Cut, or after the partition with +several object shapes, or if the resulting shape is a compound). + +We create a Common of Box_1 and Cylinder_1. + +\image html restore-ss-dialog.png + +\n The resulting object is created with several subshapes that correspond to the +operation arguments and their published subshapes. The resulting shape +has a default colour, but its subshapes inherit colors corresponding +to arguments and their subshapes. + +\image html restore-ss-viewer-after.png "Thev resulting shape" + + +Please, note that when the resulting shape corresponds to one +argument, the inherited subshapes depend directly on the resulting shape. + +\image html restore-ss-OB-cut.png + +When the resulting shape is composed from multiple arguments, the +inherited subshapes depend on the arguments. + +\image html restore-ss-OB.png + +\n You can also call this functionality from your python scripts. +See our TUI Scripts for \ref tui_restore_prs_params "example". + +*/ diff --git a/doc/salome/gui/GEOM/input/rotation_operation.doc b/doc/salome/gui/GEOM/input/rotation_operation.doc index e546f002b..a2b6d11f4 100644 --- a/doc/salome/gui/GEOM/input/rotation_operation.doc +++ b/doc/salome/gui/GEOM/input/rotation_operation.doc @@ -12,6 +12,8 @@ be rotated, an \b Axis of rotation and an \b Angle of rotation. \n TUI Command: geompy.MakeRotation(Shape, Axis, Angle) \n Arguments: Name + one or several objects + 1 vector for direction of rotation + 1 angle. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html transformation4.png @@ -27,14 +29,16 @@ this case rotation \b Angle is the angle between two vectors directed from the first point to the second and to the third. \n TUI Command: geompy.MakeRotationThreePoints(Shape, CentralPoint, Point1, Point2) \n Arguments: 1 shape + 3 points. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html transformation4a.png \n Example: -\image html rotationsn1.png +\image html rotationsn1.png "The initial shape (yellow)" -\image html rotationsn2.png +\image html rotationsn2.png "The rotated shape (grey)" Our TUI Scripts provide you with useful examples of the use of \ref tui_rotation "Transformation Operations". diff --git a/doc/salome/gui/GEOM/input/scale_operation.doc b/doc/salome/gui/GEOM/input/scale_operation.doc index 65d8d9583..12f4bc63d 100644 --- a/doc/salome/gui/GEOM/input/scale_operation.doc +++ b/doc/salome/gui/GEOM/input/scale_operation.doc @@ -7,20 +7,40 @@ \n This operation creates a scaled shape basing on the initial shape. For this, you need to define the \b Shape to be scaled, the -Central Point of scale and the Scale Factor. +Central Point of scale and the Scale Factor(s). \n The \b Result will be a \b GEOM_Object. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". + +\image html transformation10.png \n TUI Command: geompy.MakeScaleTransform(Shape, CenterOfScale, Factor) \n Arguments: Name + 1 shape(s) + 1 vertex + 1 Scale Factor. -\image html transformation10.png +\image html transformation10a.png +\n TUI Command: geompy.MakeScaleAlongAxes(Shape, CenterOfScale, FactorX, FactorY, FactorZ) +\n Arguments: Name + 1 shape(s) + 1 vertex + 3 Scale Factors. -\n Example: +\note If the Central Point is not defined, the scaling will be +performed relatively the origin of the global coordinate system. -\image html scale_transformsn1.png +\note Scaling by one factor is a simple transformation, it does not modify the +geometry of the shape, while scaling by several different factors along axes +is a general transformation, which can modify the geometry, for example, a +circle can be transformed into an ellipse. -\image html scale_transformsn2.png +\n Example of simple scaling: + +\image html scale_transformsn1.png "The initial object" + +\image html scale_transformsn2.png "The resulting object (resized)" + +\n Example of scaling by different factors along axes: + +\image html scale_transformsn3.png "The initial object" + +\image html scale_transformsn4.png "The resulting object (resized and distorted)" Our TUI Scripts provide you with useful examples of the use of -\ref tui_scale "Transformation Operations". +\ref tui_scale "Scale Transformation" and of \ref swig_scale "Scale Along Axes Transformation" -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/section_operation.doc b/doc/salome/gui/GEOM/input/section_operation.doc index 911b76545..c4f450d30 100644 --- a/doc/salome/gui/GEOM/input/section_operation.doc +++ b/doc/salome/gui/GEOM/input/section_operation.doc @@ -10,14 +10,16 @@ \n The \b Result will be any \b GEOM_Object (EDGE or WIRE). \n TUI Command: geompy.MakeSection(s1, s2) \n Arguments: Name + 2 shapes. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html neo-section.png \n Example: -\image html fusesn1.png +\image html fusesn1.png "The initial shapes" -\image html sectionsn.png +\image html sectionsn.png "The resulting object" Our TUI Scripts provide you with useful examples of the use of \ref tui_section "Boolean Operations". diff --git a/doc/salome/gui/GEOM/input/sewing_operation.doc b/doc/salome/gui/GEOM/input/sewing_operation.doc index 69da0597c..1c478822e 100644 --- a/doc/salome/gui/GEOM/input/sewing_operation.doc +++ b/doc/salome/gui/GEOM/input/sewing_operation.doc @@ -23,9 +23,9 @@ your shape: \n Example: -\image html image112.jpg +\image html image112.jpg "The initial faces" -\image html image113.jpg +\image html image113.jpg "The sewn faces" Our TUI Scripts provide you with useful examples of the use of \ref tui_sewing "Repairing Operations". diff --git a/doc/salome/gui/GEOM/input/shapesonshape.doc b/doc/salome/gui/GEOM/input/shapesonshape.doc new file mode 100755 index 000000000..b0caaa396 --- /dev/null +++ b/doc/salome/gui/GEOM/input/shapesonshape.doc @@ -0,0 +1,35 @@ +/*! + +\page shapesonshape_page Get Shapes on Shape + +This operation is a special case of Explode operation. It produces a group of sub-shapes of the exploded shape, which are located in a definite way relatively another reference shape. + +To use this operation, select in the Main Menu Operations -> Get Shapes on Shape. The following dialog box will appear. + +\image html shapesonshape.png + +
    +
  • Name is the name of the resulting group of shapes;
  • +
  • Shape for exploding is the shape that will be exploded;
  • +
  • Shape for checking is the reference shape;
  • +
  • Reconstruction Limit is the type of created sub-shapes: + solid, shell, face, wire, edge, vertex;
  • +
  • State is the position of the created sub-shapes relatively the reference shapes: +
      +
    • IN - the created sub-shapes are located inside the reference shape;
    • +
    • OUT - the created sub-shapes are located outside the reference shape;
    • +
    • ON - the created sub-shapes lie on the reference shape;
    • +
    • ONIN - the created sub-shapes lie on the reference shape or are located inside it;
    • +
    • ONOUT - the created sub-shapes lie on the reference shape or are located outside it;
    • +
  • +
+ +Example: + +In the images below the box is the exploded shape and the cylinder is the reference shape. In the first image the edge IN the reference cylinder is highlighted in red, in the second the edges OUT of the reference cylinder are highlighted. + +\image html shonshex1.png +\image html shonshex2.png + + +*/ diff --git a/doc/salome/gui/GEOM/input/suppress_faces_operation.doc b/doc/salome/gui/GEOM/input/suppress_faces_operation.doc index 2d7569e03..67dbd6313 100644 --- a/doc/salome/gui/GEOM/input/suppress_faces_operation.doc +++ b/doc/salome/gui/GEOM/input/suppress_faces_operation.doc @@ -20,9 +20,9 @@ select them in the 3D viewer). \n Example: -\image html suppress_faces1.png +\image html suppress_faces1.png "The initial box" -\image html suppress_faces2.png +\image html suppress_faces2.png "The box with suppressed faces" Our TUI Scripts provide you with useful examples of the use of \ref tui_suppress_faces "Repairing Operations". diff --git a/doc/salome/gui/GEOM/input/suppress_holes_operation.doc b/doc/salome/gui/GEOM/input/suppress_holes_operation.doc index b9e25e065..d353f5f40 100644 --- a/doc/salome/gui/GEOM/input/suppress_holes_operation.doc +++ b/doc/salome/gui/GEOM/input/suppress_holes_operation.doc @@ -25,9 +25,9 @@ your shape: \n Example: -\image html image109.jpg +\image html image109.jpg "The cone with a hole" -\image html image110.jpg +\image html image110.jpg "The hole has been suppressed" Our TUI Scripts provide you with useful examples of the use of \ref tui_suppress_holes "Repairing Operations". diff --git a/doc/salome/gui/GEOM/input/suppress_internal_wires_operation.doc b/doc/salome/gui/GEOM/input/suppress_internal_wires_operation.doc index 8aa245d4c..e33880de7 100644 --- a/doc/salome/gui/GEOM/input/suppress_internal_wires_operation.doc +++ b/doc/salome/gui/GEOM/input/suppress_internal_wires_operation.doc @@ -29,9 +29,9 @@ checked \n Example: -\image html supp_int_wires1.png +\image html supp_int_wires1.png "The box with internal wires" -\image html supp_int_wires2.png +\image html supp_int_wires2.png "The internal wires have been suppressed" Our TUI Scripts provide you with useful examples of the use of \ref tui_suppress_internal_wires "Repairing Operations". diff --git a/doc/salome/gui/GEOM/input/transformation_operations.doc b/doc/salome/gui/GEOM/input/transformation_operations.doc index efb331f1c..faa58dc93 100644 --- a/doc/salome/gui/GEOM/input/transformation_operations.doc +++ b/doc/salome/gui/GEOM/input/transformation_operations.doc @@ -2,17 +2,27 @@ \page transformation_operations_page Transformation Operations +Geometry module provides the following transformation operations, +which allow to: + +
    -
  • \subpage translation_operation_page
  • -
  • \subpage rotation_operation_page
  • -
  • \subpage modify_location_operation_page
  • -
  • \subpage mirror_operation_page
  • -
  • \subpage scale_operation_page
  • -
  • \subpage offset_operation_page
  • -
  • \subpage multi_translation_operation_page
  • -
  • \subpage multi_rotation_operation_page
  • -
  • \subpage fillet_operation_page
  • -
  • \subpage chamfer_operation_page
  • +
  • \subpage translation_operation_page "Translate" an object by a certain vector.
  • +
  • \subpage rotation_operation_page "Rotate" an object around a +certain axis by a certain angle.
  • +
  • \subpage modify_location_operation_page "Move" an object to a new location.
  • +
  • \subpage mirror_operation_page "Mirror" an object through a point +an axis or a plane of symmetry.
  • +
  • \subpage scale_operation_page "Scale" an object by one or several scale +factors.
  • +
  • Create an \subpage offset_operation_page "Offset" of the object.
  • +
  • Create a simultaneous \subpage multi_translation_operation_page "Translation in several directions".
  • +
  • Create a simultaneous \subpage multi_rotation_operation_page
  • "Rotation in several directions". +
  • Produce a \subpage fillet_operation_page "Fillet" on the selected +edges of the object.
  • +
  • Produce a \subpage fillet2d_operation_page "2D Fillet" on the corners of a Planar Face.
  • +
  • Produce a \subpage chamfer_operation_page "Chamfer" on the +selected edges of the object.
*/ \ No newline at end of file diff --git a/doc/salome/gui/GEOM/input/transforming_geom_objs.doc b/doc/salome/gui/GEOM/input/transforming_geom_objs.doc index 487387388..adab40078 100644 --- a/doc/salome/gui/GEOM/input/transforming_geom_objs.doc +++ b/doc/salome/gui/GEOM/input/transforming_geom_objs.doc @@ -2,54 +2,30 @@ \page transform_geom_obj_page Transforming geometrical objects +The objects created in Salome can be processed with Transformation +operations, which can be classified into: +
    -
  • \subpage basic_operations_page
  • -
      -
    • \ref partition_page
    • -
    • \ref archimede_page
    • -
    -
  • \subpage boolean_operations_page
  • -
      -
    • \ref using_boolean_operations_page
    • -
    • \ref fuse_operation_page
    • -
    • \ref common_operation_page
    • -
    • \ref cut_operation_page
    • -
    • \ref section_opeartion_page
    • -
    -
  • \subpage transformation_operations_page
  • -
      -
    • \ref translation_operation_page
    • -
    • \ref rotation_operation_page
    • -
    • \ref modify_location_operation_page
    • -
    • \ref mirror_operation_page
    • -
    • \ref scale_operation_page
    • -
    • \ref offset_operation_page
    • -
    • \ref multi_translation_operation_page
    • -
    • \ref multi_rotation_operation_page
    • -
    • \ref fillet_operation_page
    • -
    • \ref chamfer_operation_page
    • -
    -
  • \subpage blocks_operations_page
  • -
      -
    • \ref multi_transformation_operation_page
    • -
    • \ref explode_on_blocks_operation_page
    • -
    • \ref propagate_operation_page
    • -
    -
  • \subpage repairing_operations_page
  • -
      -
    • \ref shape_processing_operation_page
    • -
    • \ref suppress_faces_operation_page
    • -
    • \ref close_contour_operation_page
    • -
    • \ref suppress_internal_wires_operation_page
    • -
    • \ref suppress_holes_operation_page
    • -
    • \ref sewing_operation_page
    • -
    • \ref glue_faces_operation_page
    • -
    • \ref add_point_on_edge_operation_page
    • -
    • \ref check_free_boundaries_operation_page
    • -
    • \ref check_free_faces_operation_page
    • -
    • \ref change_orientation_operation_page
    • -
    • \ref remove_extra_edges_operation_page
    • -
    +
  • \subpage using_boolean_operations_page "Boolean operations" using +Boolean logical operators.
  • +
  • \subpage transformation_operations_page "Transformation operations", +which modify shape or location of the selected object.
  • + +
  • \subpage partition_page "Partition" operation, which creates a compound +by intersection of several shapes with a tool object or a plane.
  • +
  • \subpage archimede_page "Archimede" operation, which creates a +plane corresponding to the modelled waterline of the object plunged +into water.
  • +
  • \subpage shapesonshape_page "Get shapes on shape" operation, a +special case of \b Explode operation.
  • + +
  • Operations with \subpage blocks_operations_page "Blocks".
  • + + +
  • \subpage restore_presentation_parameters_page "Restore presentation pareameters". +This cross-operation functionality allows the resulting shape to +inherit colors and subshapes from its parent shapes.
-*/ \ No newline at end of file + +*/ diff --git a/doc/salome/gui/GEOM/input/translation_operation.doc b/doc/salome/gui/GEOM/input/translation_operation.doc index caf1fd7a8..32958367d 100644 --- a/doc/salome/gui/GEOM/input/translation_operation.doc +++ b/doc/salome/gui/GEOM/input/translation_operation.doc @@ -17,6 +17,8 @@ axes. DZ),
where Shape is a shape to be translated, DX, DY, DZ are components of translation vector. \n Arguments: Name + one or several objects + 3 values (coordinates). +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html transformation1.png @@ -24,20 +26,26 @@ components of translation vector. of the vector. \n TUI Command: geompy.MakeTranslationTwoPoints(Object, Point1, Point2) \n Arguments: Name + one or several objects + 2 vertices +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html transformation2.png -\n Finally you can define an \b Object and the vector +\n Finally you can define an \b Object and the vector. The object will be translated by the length of the vector. \n TUI Command: geompy.MakeTranslationVector(Object, Vector) +\n Activate Distance checkbox and Distance field allow defining the custom distance of translation. +\n TUI Command for translation by vector and custom distance: geompy.MakeTranslationVectorDistance(Object, Vector, Distance) \n Arguments: Name + one or several objects + 1 vector. +\n Advanced option: + \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". \image html transformation3.png \n Example: -\image html translationsn1.png +\image html translationsn1.png "The initial shape (grey)" -\image html translationsn2.png +\image html translationsn2.png "The resulting shape (yellow)" Our TUI Scripts provide you with useful examples of the use of \ref tui_translation "Transformation Operations". diff --git a/doc/salome/gui/GEOM/input/transparency.doc b/doc/salome/gui/GEOM/input/transparency.doc index 9586c9546..c7c0a3ea9 100644 --- a/doc/salome/gui/GEOM/input/transparency.doc +++ b/doc/salome/gui/GEOM/input/transparency.doc @@ -2,8 +2,8 @@ \page transparency_page Transparency -\n You can change the transparency of a shape in the range between 0 -(absolutely opaque) and 1 (absolutely transparent and thus invisible) +\n You can change the transparency of a shape in the range between 0% +(absolutely transparent and thus invisible) and 100% (absolutely opaque) in the following dialog box. \image html neo-transparency.png diff --git a/doc/salome/gui/GEOM/input/tui_3dsketcher.doc b/doc/salome/gui/GEOM/input/tui_3dsketcher.doc new file mode 100755 index 000000000..c9760fbcf --- /dev/null +++ b/doc/salome/gui/GEOM/input/tui_3dsketcher.doc @@ -0,0 +1,20 @@ +/*! + +\page tui_3dsketcher_page 3D Sketcher + +\code +import geompy +import salome +gg = salome.ImportComponentGUI("GEOM") + +# create a 3D sketcher (wire) of the given points coordinates +sketcher1 = geompy.Make3DSketcher([ 0,0,0, 50,50,50, 0,50,0, 50,0,50, 10,20,100, 0,0,0 ]) + +# add object in the study +id_sketcher1 = geompy.addToStudy(sketcher1,"Sketcher1") + +# display the sketcher +gg.createAndDisplayGO(id_sketcher1) +\endcode + +*/ \ No newline at end of file diff --git a/doc/salome/gui/GEOM/input/tui_basic_geom_objs.doc b/doc/salome/gui/GEOM/input/tui_basic_geom_objs.doc index d9c30a23b..89baf140d 100644 --- a/doc/salome/gui/GEOM/input/tui_basic_geom_objs.doc +++ b/doc/salome/gui/GEOM/input/tui_basic_geom_objs.doc @@ -132,6 +132,39 @@ id_ellipse = geompy.addToStudy(ellipse,"Ellipse") gg.createAndDisplayGO(id_vector) gg.createAndDisplayGO(id_ellipse) \endcode + +\anchor tui_creation_arc +

Creation of an Arc

+ +\code +import geompy +import salome +gg = salome.ImportComponentGUI("GEOM") + +# create vertices +p0 = geompy.MakeVertex(0., 0., 0.) +p1 = geompy.MakeVertex(100., 0., 0.) +p2 = geompy.MakeVertex(50., 0., 50.) + +# create an arc from a three points +arc1 = geompy.MakeArc(p0, p1, p2) + +# create an arc from a center point, a start point and end point +arc2 = geompy.MakeArcCenter(p0, p1, p2, 1) + +# create an arc from a center point, a major point and minor point +arc3 = geompy.MakeArcOfEllipse(p0, p1, p2) + +# add objects in the study +id_arc1 = geompy.addToStudy(arc1, "Arc 1") +id_arc2 = geompy.addToStudy(arc2, "Arc 2") +id_arc3 = geompy.addToStudy(arc3, "Arc 3") + +# display the arcs +gg.createAndDisplayGO(id_arc1) +gg.createAndDisplayGO(id_arc2) +gg.createAndDisplayGO(id_arc3) +\endcode \anchor tui_creation_curve

Creation of a Curve

diff --git a/doc/salome/gui/GEOM/input/tui_basic_operations.doc b/doc/salome/gui/GEOM/input/tui_basic_operations.doc index 14f7c07f9..1250c128d 100644 --- a/doc/salome/gui/GEOM/input/tui_basic_operations.doc +++ b/doc/salome/gui/GEOM/input/tui_basic_operations.doc @@ -79,4 +79,62 @@ gg.createAndDisplayGO(id_archimede) gg.setDisplayMode(id_archimede,1) \endcode -*/ \ No newline at end of file +\anchor tui_restore_prs_params +

Restore presentation parameters and subshapes

+ +\code +import geompy +import GEOM + +# create a box and a cylinder +box = geompy.MakeBoxDXDYDZ(200, 200, 200) +cyl = geompy.MakeCylinderRH(100, 300) + +# create translated box +vec = geompy.MakeVectorDXDYDZ(100, 50, 0) +tra = geompy.MakeTranslationVector(box, vec) + +# create partition objects +partition1 = geompy.MakePartition([box, cyl]) +partition2 = geompy.MakePartition([box], [cyl]) +partition3 = geompy.MakePartition([box], [tra]) + +# set colours +box.SetColor(SALOMEDS.Color(1,0,0)) +cyl.SetColor(SALOMEDS.Color(0,1,0)) + +# add objects in the study +geompy.addToStudy(box, "Box") +geompy.addToStudy(cyl, "Cylinder") +geompy.addToStudy(vec, "Vector") +geompy.addToStudy(tra, "Translation") +geompy.addToStudy(partition1, "Partition_1") +geompy.addToStudy(partition2, "Partition_2") +geompy.addToStudy(partition3, "Partition_3") + +# Restore presentation parameters and subshapes +# different methods can be used to find the subshapes in the result: +# GetInPlace, GetSame, GetInPlaceByHistory, GetShapesOnShape. +# By default, GetInPlace method is used (GEOM.FSM_GetInPlace) +geompy.RestoreSubShapes(partition1) + +geompy.RestoreSubShapes(partition2, [], GEOM.FSM_GetInPlace) + +# The list of arguments can be used to avoid restoring all arguments, +# but restore only the passed. +geompy.RestoreSubShapes(partition3, [tra], GEOM.FSM_GetInPlaceByHistory) + +# To find subshapes in a transformed shape only one method could be +# used: pass GEOM.FSM_Transformed for that. +# True passed for the last argument, means that the transformed shape +# will inherit colour and subshapes from its first argument (see above +# MakeTranslation). +geompy.RestoreSubShapes(tra, [], GEOM.FSM_Transformed, True) + +# Also we could do this directly with method addToStudy: +partition4 = geompy.MakePartition([box, tra]) +geompy.addToStudy(partition4, "Partition_4", True, [], + GEOM.FSM_GetInPlaceByHistory, False) +\endcode + +*/ diff --git a/doc/salome/gui/GEOM/input/tui_boolean_operations.doc b/doc/salome/gui/GEOM/input/tui_boolean_operations.doc index f88047f48..60563757c 100644 --- a/doc/salome/gui/GEOM/input/tui_boolean_operations.doc +++ b/doc/salome/gui/GEOM/input/tui_boolean_operations.doc @@ -24,20 +24,24 @@ cylinder = geompy.MakeCylinder(p1, v, radius1, height) sphere = geompy.MakeSphereR(40) # fuse -fuse = geompy.MakeFuse(cylinder, sphere) +fuse1 = geompy.MakeFuse(cylinder, sphere) +fuse2 = geompy.MakeBoolean(cylinder, sphere, 3) # add objects in the study id_cylinder = geompy.addToStudy(cylinder, "Cylinder") id_sphere = geompy.addToStudy(sphere, "Sphere") -id_fuse = geompy.addToStudy(fuse, "Fuse") +id_fuse1 = geompy.addToStudy(fuse1, "Fuse_1") +id_fuse2 = geompy.addToStudy(fuse2, "Fuse_2") # display results gg.createAndDisplayGO(id_cylinder) gg.setDisplayMode(id_cylinder,1) gg.createAndDisplayGO(id_sphere) gg.setDisplayMode(id_sphere,1) -gg.createAndDisplayGO(id_fuse) -gg.setDisplayMode(id_fuse,1) +gg.createAndDisplayGO(id_fuse1) +gg.setDisplayMode(id_fuse1,1) +gg.createAndDisplayGO(id_fuse2) +gg.setDisplayMode(id_fuse2,1) \endcode \anchor tui_common @@ -104,7 +108,7 @@ gg.createAndDisplayGO(id_cut) gg.setDisplayMode(id_cut,1) \endcode -\anchor tui_section +\anchor tui_section

Section

\code @@ -136,4 +140,4 @@ gg.createAndDisplayGO(id_section) gg.setDisplayMode(id_section,1) \endcode -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/tui_complex_objs.doc b/doc/salome/gui/GEOM/input/tui_complex_objs.doc index 29813a9a6..254846e07 100644 --- a/doc/salome/gui/GEOM/input/tui_complex_objs.doc +++ b/doc/salome/gui/GEOM/input/tui_complex_objs.doc @@ -45,12 +45,14 @@ face2 = geompy.MakeFace(wire2, isPlanarWanted) # create prisms prism1 = geompy.MakePrism(face2, p1, p5) prism2 = geompy.MakePrismVecH(face1, vector, 50) +prism3 = geompy.MakePrismVecH2Ways(face1, vector, 50) # add objects in the study id_face1 = geompy.addToStudy(face1,"Face1") id_face2 = geompy.addToStudy(face2,"Face2") id_prism1 = geompy.addToStudy(prism1,"Prism1") id_prism2 = geompy.addToStudy(prism2,"Prism2") +id_prism3 = geompy.addToStudy(prism3,"Prism3") # display cylinders gg.createAndDisplayGO(id_face1) @@ -61,6 +63,8 @@ gg.createAndDisplayGO(id_prism1) gg.setDisplayMode(id_prism1,1) gg.createAndDisplayGO(id_prism2) gg.setDisplayMode(id_prism2,1) +gg.createAndDisplayGO(id_prism3) +gg.setDisplayMode(id_prism3,1) \endcode \anchor tui_creation_revolution @@ -186,4 +190,437 @@ gg.createAndDisplayGO(id_pipe) gg.setDisplayMode(id_pipe,1) \endcode -*/ \ No newline at end of file +\anchor tui_creation_pipe_with_diff_sec +

Creation of a PipeWithDifferentSections

+ +\code +import geompy +import salome +gg = salome.ImportComponentGUI("GEOM") + +Wire_1 = geompy.MakeSketcher("Sketcher:F 0 0:TT 100 0:R 0:C 100 90:T 0 200", [0, 0, 0, 0, 0, 1, 1, 0, -0]) +edges = geompy.SubShapeAll(Wire_1, geompy.ShapeType["EDGE"]) +vertices = geompy.SubShapeAll(Wire_1, geompy.ShapeType["VERTEX"]) + +# create sections +circles=[] +circles.append(geompy.MakeCircle(vertices[0], edges[0], 20)) +circles.append(geompy.MakeCircle(vertices[1], edges[0], 40)) +circles.append(geompy.MakeCircle(vertices[2], edges[2], 30)) +circles.append(geompy.MakeCircle(vertices[3], edges[2], 20)) + +# create pipe +Pipe = geompy.MakePipeWithDifferentSections(circles, vertices, Wire_1, 0, 0) + +# add objects in the study +geompy.addToStudy(circles[0], "circles1") +geompy.addToStudy(circles[1], "circles2") +geompy.addToStudy(circles[2], "circles3") +geompy.addToStudy(circles[3], "circles4") +id_wire = geompy.addToStudy(Wire_1, "Path") +id_pipe = geompy.addToStudy(Pipe, "Pipe") + +# display the wire(path) and the pipe +gg.createAndDisplayGO(id_wire) +gg.createAndDisplayGO(id_pipe) +gg.setDisplayMode(id_pipe,1) +\endcode + +\anchor tui_creation_pipe_with_shell_sec +

Creation of a PipeWithShellSections

+ +\code +import geompy +import salome +gg = salome.ImportComponentGUI("GEOM") + +# create path +WirePath = geompy.MakeSketcher("Sketcher:F 0 0:TT 100 0:R 0:C 100 90:T 0 200", [0, 0, 0, 0, 0, 1, 1, 0, -0]) + +#======================================================= +# Create shell sections +#======================================================= +ps = [Vertex_1,Vertex_2,Vertex_3,Vertex_4] +theLocations = [Vertex_1, Vertex_2, Vertex_3, Vertex_4] +VC = geompy.MakeCompound(theLocations) +geompy.addToStudy(VC,"VC") +vs = [Edge_1,Edge_1,Edge_3,Edge_3] +hs = [20,40,30,20] +shells = [] +subbases = [] + +# 1 section +c0 = geompy.PointCoordinates(ps[0]) +c1 = geompy.PointCoordinates(ps[1]) +nx = c1[0] - c0[0] +ny = c1[1] - c0[1] +nz = c1[2] - c0[2] + +faces = [] +f1 = geompy.MakeSketcher("Sketcher:F 0 0:TT 20 0:TT 20 20:TT 0 20:WF", + [c0[0], c0[1], c0[2], nx, ny, nz, 0, 0, 1]) +f2 = geompy.MakeSketcher("Sketcher:F 0 0:TT 0 20:TT -20 20:TT -20 0:WF", + [c0[0], c0[1], c0[2], nx, ny, nz, 0, 0, 1]) +f3 = geompy.MakeSketcher("Sketcher:F 0 0:TT -20 0:TT -20 -20:TT 0 -20:WF", + [c0[0], c0[1], c0[2], nx, ny, nz, 0, 0, 1]) +f4 = geompy.MakeSketcher("Sketcher:F 0 0:TT 0 -20:TT 20 -20:TT 20 0:WF", + [c0[0], c0[1], c0[2], nx, ny, nz, 0, 0, 1]) +faces.append(f1) +faces.append(f2) +faces.append(f3) +faces.append(f4) +shell = geompy.MakeSewing(faces,1.e-6) +shells.append(shell) +faces = geompy.SubShapeAllSorted(shell, geompy.ShapeType["FACE"]) +subbases.append(faces[0]) + +# 2 section +faces = [] + +w = geompy.MakeSketcher("Sketcher:F 20 20:TT 0 20:TT 0 0:TT 20 0", + [c1[0], c1[1], c1[2], nx, ny, nz, 0, 0, 1]) +[e1,e2,e3] = geompy.SubShapeAll(w, geompy.ShapeType["EDGE"]) +arc = MakeArc(w,3,-1) +w = geompy.MakeWire([e1,e2,e3,arc]) +f1 = geompy.MakeFace(w,1) + +w = geompy.MakeSketcher("Sketcher:F -20 0:TT 0 0:TT 0 20:TT -20 20", + [c1[0], c1[1], c1[2], nx, ny, nz, 0, 0, 1]) +[e1,e2,e3] = geompy.SubShapeAll(w, geompy.ShapeType["EDGE"]) +arc = MakeArc(w,3,-1) +w = geompy.MakeWire([e1,e2,e3,arc]) +f2 = geompy.MakeFace(w,1) + +w = geompy.MakeSketcher("Sketcher:F 20 0:TT 0 0:TT 0 -20:TT 20 -20", + [c1[0], c1[1], c1[2], nx, ny, nz, 0, 0, 1]) +[e1,e2,e3] = geompy.SubShapeAll(w, geompy.ShapeType["EDGE"]) +arc = MakeArc(w,3,-1) +w = geompy.MakeWire([e1,e2,e3,arc]) +f3 = geompy.MakeFace(w,1) + +w = geompy.MakeSketcher("Sketcher:F -20 -20:TT 0 -20:TT 0 0:TT -20 0", + [c1[0], c1[1], c1[2], nx, ny, nz, 0, 0, 1]) +[e1,e2,e3] = geompy.SubShapeAll(w, geompy.ShapeType["EDGE"]) +arc = MakeArc(w,3,-1) +w = geompy.MakeWire([e1,e2,e3,arc]) +f4 = geompy.MakeFace(w,1) + +faces.append(f1) +faces.append(f2) +faces.append(f3) +faces.append(f4) +shell = geompy.MakeSewing(faces,1.e-6) +shells.append(shell) +faces = geompy.SubShapeAllSorted(shell, geompy.ShapeType["FACE"]) +subbases.append(faces[0]) + +# 3 section +faces = [] +c2 = geompy.PointCoordinates(ps[2]) +c3 = geompy.PointCoordinates(ps[3]) +nx = c3[0] - c2[0] +ny = c3[1] - c2[1] +nz = c3[2] - c2[2] + +w = geompy.MakeSketcher("Sketcher:F 20 20:TT 0 20:TT 0 0:TT 20 0", + [c2[0], c2[1], c2[2], nx, ny, nz, 0, 0, 1]) +[e1,e2,e3] = geompy.SubShapeAll(w, geompy.ShapeType["EDGE"]) +arc = MakeArc(w,3,1) +w = geompy.MakeWire([e1,e2,e3,arc]) +f1 = geompy.MakeFace(w,1) + +w = geompy.MakeSketcher("Sketcher:F -20 0:TT 0 0:TT 0 20:TT -20 20", + [c2[0], c2[1], c2[2], nx, ny, nz, 0, 0, 1]) +[e1,e2,e3] = geompy.SubShapeAll(w, geompy.ShapeType["EDGE"]) +arc = MakeArc(w,3,1) +w = geompy.MakeWire([e1,e2,e3,arc]) +f2 = geompy.MakeFace(w,1) + +w = geompy.MakeSketcher("Sketcher:F 20 0:TT 0 0:TT 0 -20:TT 20 -20", + [c2[0], c2[1], c2[2], nx, ny, nz, 0, 0, 1]) +[e1,e2,e3] = geompy.SubShapeAll(w, geompy.ShapeType["EDGE"]) +arc = MakeArc(w,3,1) +w = geompy.MakeWire([e1,e2,e3,arc]) +f3 = geompy.MakeFace(w,1) + +w = geompy.MakeSketcher("Sketcher:F -20 -20:TT 0 -20:TT 0 0:TT -20 0", + [c2[0], c2[1], c2[2], nx, ny, nz, 0, 0, 1]) +[e1,e2,e3] = geompy.SubShapeAll(w, geompy.ShapeType["EDGE"]) +arc = MakeArc(w,3,1) +w = geompy.MakeWire([e1,e2,e3,arc]) +f4 = geompy.MakeFace(w,1) + +faces.append(f1) +faces.append(f2) +faces.append(f3) +faces.append(f4) +shell = geompy.MakeSewing(faces,1.e-6) +shells.append(shell) +faces = geompy.SubShapeAllSorted(shell, geompy.ShapeType["FACE"]) +subbases.append(faces[2]) + +# 4 section +faces = [] + +kk = 4 +dx = c3[0] - nx/kk +dy = c3[1] - ny/kk +dz = c3[2] - nz/kk +rad = math.sqrt(nx*nx+ny*ny+nz*nz) +vc = geompy.MakeVertex(dx,dy,dz) +sph = geompy.MakeSpherePntR(vc,rad/kk) +shellsph = geompy.SubShapeAll(sph, geompy.ShapeType["SHELL"]) + +fs = [] +vec = geompy.MakeVectorDXDYDZ(0,0,1) +ff = geompy.MakePlane(ps[3],vec,40) +fs.append(ff) +vp = geompy.MakeVertex(c3[0],c3[1],c3[2]+20) +ff = geompy.MakePlane(vp,vec,40) +fs.append(ff) +vp = geompy.MakeVertex(c3[0],c3[1],c3[2]-20) +ff = geompy.MakePlane(vp,vec,40) +fs.append(ff) +vec = geompy.MakeVectorDXDYDZ(1,0,0) +ff = geompy.MakePlane(ps[3],vec,40) +fs.append(ff) +vp = geompy.MakeVertex(c3[0]+20,c3[1],c3[2]) +ff = geompy.MakePlane(vp,vec,40) +fs.append(ff) +vp = geompy.MakeVertex(c3[0]-20,c3[1],c3[2]) +ff = geompy.MakePlane(vp,vec,40) +fs.append(ff) +aPartition = geompy.MakePartition(shellsph,fs) +fs = geompy.SubShapeAllSorted(aPartition, geompy.ShapeType["FACE"]) + +faces.append(fs[0]) +faces.append(fs[1]) +faces.append(fs[2]) +faces.append(fs[3]) +shell = geompy.MakeSewing(faces,1.e-6) +shells.append(shell) +faces = geompy.SubShapeAllSorted(shell, geompy.ShapeType["FACE"]) + + +#=========================================================== +# Create Pipe +#=========================================================== +subbases = [] +Pipe = geompy.MakePipeWithShellSections(shells, subbases, theLocations, WirePath, + theWithContact=0, theWithCorrection=0) + +# add objects in the study +resc = geompy.MakeCompound(shells) +id_sec = geompy.addToStudy(resc,"sections") +id_wire = geompy.addToStudy(WirePath,"WirePath") +id_pipe = geompy.addToStudy(Pipe, "Pipe") + +# display the wire(path), sections and the pipe +gg.createAndDisplayGO(id_wire) +gg.createAndDisplayGO(id_sec) +gg.createAndDisplayGO(id_pipe) +gg.setDisplayMode(id_pipe,1) +\endcode + + +\anchor tui_creation_pipe_without_path +

Creation of a PipeShellsWithoutPath

+ +\code +import geompy +import math +import salome +gg = salome.ImportComponentGUI("GEOM") + +# Add a section based on quadrangles +# ---------------------------------- +def section(s, p1, p2=None, p3=None, p4=None): + if p2==None: + q = p1 + else: + q = geompy.MakeQuad4Vertices(p1, p2, p3, p4) + pass + s.append(q) + publish(q, "section") + return q + + +# find distance between two points +# ------------------------------- +def Dist(p1,p2): + c1 = geompy.PointCoordinates(p1) + c2 = geompy.PointCoordinates(p2) + return math.sqrt( (c2[0]-c1[0])*(c2[0]-c1[0]) + + (c2[1]-c1[1])*(c2[1]-c1[1]) + + (c2[2]-c1[2])*(c2[2]-c1[2]) ) + + +# return middle point +# ------------------------------- +def MiddleVert(p1,p2): + c1 = geompy.PointCoordinates(p1) + c2 = geompy.PointCoordinates(p2) + return geompy.MakeVertex( (c2[0]+c1[0])/2, (c2[1]+c1[1])/2, (c2[2]+c1[2])/2 ) + + +# Complex section +# result - 16 quads from lines +# pnt - point from path +# vec - direction from path +def MakeComplexSect(pnt,vec,rmax,rmin,nb): + dang = 1.0/nb/2 + cmax = geompy.MakeCircle(pnt,vec,rmax) + cmin = geompy.MakeCircle(pnt,vec,rmin) + faces = [] + for i in range(0,2*nb,2): + p1 = geompy.MakeVertexOnCurve(cmin,dang*i) + p2 = geompy.MakeVertexOnCurve(cmax,dang*(i+1)) + p3 = geompy.MakeVertexOnCurve(cmin,dang*(i+2)) + f = geompy.MakeQuad4Vertices(pnt,p1,p2,p3) + faces.append(f) + pass + shell = geompy.MakeSewing(faces,1.e-6) + return shell + + +#======================================================= +# Create simple path and recieve points +# for section creation +#======================================================= +WirePath = geompy.MakeSketcher("Sketcher:F 0 0:T 60 0:T 40 0:R 0:C 100 90:", + [0, 0, 0, 0, 0, 1, 1, 0, 0]) +vs = geompy.SubShapeAll(WirePath, geompy.ShapeType["VERTEX"]) + +#======================================================= +# Create shell sections +#======================================================= +shells = [] +subbases = [] +locs = [] + +# 1 section +shell = MakeComplexSect(vs[0], geompy.MakeVectorDXDYDZ(1,0,0), 60, 40, 16) +shells.append(shell) +vs1 = geompy.SubShapeAllSorted(shell,geompy.ShapeType["VERTEX"]) +locs.append(vs1[17]) + +# 2 section +shell = MakeComplexSect(vs[1], geompy.MakeVectorDXDYDZ(1,0,0), 80, 30, 16) +shells.append(shell) +vs2 = geompy.SubShapeAllSorted(shell,geompy.ShapeType["VERTEX"]) +locs.append(vs2[17]) + +# 3 section +shell = MakeComplexSect(vs[2], geompy.MakeVectorDXDYDZ(1,0,0), 60, 40, 16) +shells.append(shell) +vs3 = geompy.SubShapeAllSorted(shell,geompy.ShapeType["VERTEX"]) +locs.append(vs3[17]) + +# 4 section +shell = MakeComplexSect(vs[3], geompy.MakeVectorDXDYDZ(0,1,0), 40, 35, 16) +shells.append(shell) +vs4 = geompy.SubShapeAllSorted(shell,geompy.ShapeType["VERTEX"]) +locs.append(vs4[17]) + + +#=========================================================== +# Create Pipe +#=========================================================== + +Pipe = geompy.MakePipeShellsWithoutPath(shells,locs) + +# add objects in the study +resc = geompy.MakeCompound(shells) +id_sec = geompy.addToStudy(resc,"sections") +resl = geompy.MakeCompound(locs) +id_loc = geompy.addToStudy(resl,"locations") +id_pipe = geompy.addToStudy(Pipe, "Pipe") + +# display the sections, locations and pipe +gg.createAndDisplayGO(id_sec) +gg.createAndDisplayGO(id_loc) +gg.createAndDisplayGO(id_pipe) +gg.setDisplayMode(id_pipe,1) +\endcode + +\anchor tui_creation_pipe_binormal_along_vector +

Creation of a PipeBiNormalAlongVector

+ +\code +def MakeHelix(radius, height, rotation, direction): + # - create a helix - + radius = 1.0 * radius + height = 1.0 * height + rotation = 1.0 * rotation + if direction > 0: + direction = +1 + else: + direction = -1 + pass + from math import sqrt + length_z = height + length_xy = radius*rotation + length = sqrt(length_z*length_z + length_xy*length_xy) + import geompy + nb_steps = 1 + epsilon = 1.0e-6 + while 1: + z_step = height / nb_steps + angle_step = rotation / nb_steps + z = 0.0 + angle = 0.0 + helix_points = [] + for n in range(nb_steps+1): + from math import cos, sin + x = radius * cos(angle) + y = radius * sin(angle) + p = geompy.MakeVertex(x, y, z) + helix_points.append( p ) + z += z_step + angle += direction * angle_step + pass + helix = geompy.MakeInterpol(helix_points) + length_test = geompy.BasicProperties(helix)[0] + prec = abs(length-length_test)/length + # print nb_steps, length_test, prec + if prec < epsilon: + break + nb_steps *= 2 + pass + return helix + +def MakeSpring(radius, height, rotation, direction, thread_radius, base_rotation=0.0): + # - create a pipe - + thread_radius = 1.0 * thread_radius + # create a helix + helix = MakeHelix(radius, height, rotation, direction) + # base in the (Ox, Oz) plane + import geompy + p0 = geompy.MakeVertex(radius-3*thread_radius, 0.0, -thread_radius) + p1 = geompy.MakeVertex(radius+3*thread_radius, 0.0, -thread_radius) + p2 = geompy.MakeVertex(radius+3*thread_radius, 0.0, +thread_radius) + p3 = geompy.MakeVertex(radius-3*thread_radius, 0.0, +thread_radius) + e0 = geompy.MakeEdge(p0, p1) + e1 = geompy.MakeEdge(p1, p2) + e2 = geompy.MakeEdge(p2, p3) + e3 = geompy.MakeEdge(p3, p0) + w = geompy.MakeWire([e0, e1, e2, e3]) + # create a base face + base = geompy.MakeFace(w, True) + # create a binormal vector + binormal = geompy.MakeVectorDXDYDZ(0.0, 0.0, 10.0) + # create a pipe + spring = geompy.MakePipeBiNormalAlongVector(base, helix, binormal) + # Publish in the study + geompy.addToStudy(base, "base") + geompy.addToStudy(helix, "helix") + geompy.addToStudy(binormal, "binormal") + geompy.addToStudy(spring, "spring") + return spring + +from math import pi + +spring = MakeSpring(50, 100, 2*pi, 1, 5, pi/2) +\endcode + +*/ diff --git a/doc/salome/gui/GEOM/input/tui_measurement_tools.doc b/doc/salome/gui/GEOM/input/tui_measurement_tools.doc index 27483708d..ff70d793a 100644 --- a/doc/salome/gui/GEOM/input/tui_measurement_tools.doc +++ b/doc/salome/gui/GEOM/input/tui_measurement_tools.doc @@ -23,7 +23,7 @@ if IsEqual(coords[0], 15.) and IsEqual(coords[1], 23.) and IsEqual(coords[2], 80 else : print "Coordinates of point must be (15, 23, 80), but returned (", print coords[0], ", ", coords[1], ", ", coords[2], ")" - pass + pass \endcode

Basic Properties

@@ -68,7 +68,7 @@ else: dy = math.sqrt((coords[1] - 15)*(coords[1] - 15)) dz = math.sqrt((coords[2] - 50)*(coords[2] - 50)) if dx > 1e-7 or dy > 1e-7 or dz > 1e-7: - print "But must be (50, 15, 50)" + print "But must be (50, 15, 50)" \endcode

Inertia

@@ -85,7 +85,7 @@ print " (", In[0], ", ", In[1], ", ", In[2], ")" print " (", In[3], ", ", In[4], ", ", In[5], ")" print " (", In[6], ", ", In[7], ", ", In[8], ")" print "Main moments of inertia of box 100x30x100:" -print " Ix = ", In[9], ", Iy = ", In[10], ", Iz = ", In[11] +print " Ix = ", In[9], ", Iy = ", In[10], ", Iz = ", In[11] \endcode

Check Free Boundaries

@@ -217,7 +217,7 @@ id_cut_without_f_2 = geompy.addToStudy(cut_without_f_2, "Cut without f_2") # display the results gg.createAndDisplayGO(id_cut_without_f_2) -gg.setDisplayMode(id_cut_without_f_2,1) +gg.setDisplayMode(id_cut_without_f_2,1) \endcode @@ -233,7 +233,7 @@ bb = geompy.BoundingBox(box) print "\nBounding Box of box 100x30x100:" print " Xmin = ", bb[0], ", Xmax = ", bb[1] print " Ymin = ", bb[2], ", Ymax = ", bb[3] -print " Zmin = ", bb[4], ", Zmax = ", bb[5] +print " Zmin = ", bb[4], ", Zmax = ", bb[5] \endcode

Minimal Distance

@@ -245,9 +245,9 @@ import geompy box1 = geompy.MakeBoxDXDYDZ(100,30,100) box2 = geompy.MakeBox(105,0,0,200,30,100) min_dist = geompy.MinDistance(box1,box2) -print "\nMinimal distance between box1 and box2 = ", min_dist +print "\nMinimal distance between box1 and box2 = ", min_dist \endcode - +

Tolerance

\code @@ -262,7 +262,7 @@ print " Face max. tolerance: ", Toler[1] print " Edge min. tolerance: ", Toler[2] print " Edge max. tolerance: ", Toler[3] print " Vertex min. tolerance: ", Toler[4] -print " Vertex max. tolerance: ", Toler[5] +print " Vertex max. tolerance: ", Toler[5] \endcode

Angle

@@ -286,6 +286,13 @@ if math.fabs(Angle - 45.0) > 1e-05: print " Error: returned angle is", Angle, "while must be 45.0" pass +Angle = geompy.GetAngleRadians(OX, OXY) + +print "\nAngle between OX and OXY in radians = ", Angle +if math.fabs(Angle - math.pi/4) > 1e-05: + print " Error: returned angle is", Angle, "while must be pi/4" + pass + # not in one plane OXY_shift = geompy.MakeTranslation(OXY,10,-10,20) Angle = geompy.GetAngle(OX, OXY_shift) @@ -309,7 +316,6 @@ if (math.fabs(Angle + 1.0) > 1e-6 or geompy.MeasuOp.IsDone()): \endcode -

What Is

\code @@ -319,7 +325,7 @@ import geompy box = geompy.MakeBoxDXDYDZ(100,30,100) Descr = geompy.WhatIs(box) print "\nBox 100x30x100 description:" -print Descr +print Descr \endcode

Check Shape

@@ -333,9 +339,9 @@ IsValid = geompy.CheckShape(box) if IsValid == 0: raise RuntimeError, "Invalid box created" else: - print "\nBox is valid" + print "\nBox is valid" \endcode - +

Check Compound of Blocks

\code @@ -357,7 +363,7 @@ IsValid = geompy.CheckCompoundOfBlocks(glue) if IsValid == 0: raise RuntimeError, "Invalid compound created" else: - print "\nCompound is valid" + print "\nCompound is valid" \endcode */ diff --git a/doc/salome/gui/GEOM/input/tui_primitives.doc b/doc/salome/gui/GEOM/input/tui_primitives.doc index 827825605..538067c01 100644 --- a/doc/salome/gui/GEOM/input/tui_primitives.doc +++ b/doc/salome/gui/GEOM/input/tui_primitives.doc @@ -64,7 +64,7 @@ id_cylinder2 = geompy.addToStudy(cylinder2,"Cylinder2") gg.createAndDisplayGO(id_cylinder1) gg.setDisplayMode(id_cylinder1,1) gg.createAndDisplayGO(id_cylinder2) -gg.setDisplayMode(id_cylinder2,1) +gg.setDisplayMode(id_cylinder2,1) \endcode \anchor tui_creation_sphere @@ -97,10 +97,10 @@ gg.setDisplayMode(id_sphere1,1) gg.createAndDisplayGO(id_sphere2) gg.setDisplayMode(id_sphere2,1) gg.createAndDisplayGO(id_sphere3) -gg.setDisplayMode(id_sphere3,1) +gg.setDisplayMode(id_sphere3,1) \endcode -\anchor tui_creation_torus +\anchor tui_creation_torus

Creation of a Torus

\code @@ -125,7 +125,7 @@ id_torus2 = geompy.addToStudy(torus2,"Torus2") gg.createAndDisplayGO(id_torus1) gg.setDisplayMode(id_torus1,1) gg.createAndDisplayGO(id_torus2) -gg.setDisplayMode(id_torus2,1) +gg.setDisplayMode(id_torus2,1) \endcode \anchor tui_creation_cone @@ -153,7 +153,83 @@ id_cone2 = geompy.addToStudy(cone2,"Cone2") gg.createAndDisplayGO(id_cone1) gg.setDisplayMode(id_cone1,1) gg.createAndDisplayGO(id_cone2) -gg.setDisplayMode(id_cone2,1) +gg.setDisplayMode(id_cone2,1) \endcode -*/ \ No newline at end of file +\anchor tui_creation_disk +

Creation of a Disk

+ +\code +import geompy +import salome +gg = salome.ImportComponentGUI("GEOM") + +# create vertices +p0 = geompy.MakeVertex(0., 0., 0.) +px = geompy.MakeVertex(100., 0. , 0. ) +py = geompy.MakeVertex(0. , 100., 0. ) +pz = geompy.MakeVertex(0. , 0. , 100.) + +# create a vector on two points +vxy = geompy.MakeVector(px, py) + +# create a disk in OXY plane +disk1 = geompy.MakeDiskR(100, 1) + +# create a disk from a point, a vector and a radius +disk2 = geompy.MakeDiskPntVecR(pz, vxy, 30) + +#create a circle from three points +disk3 = geompy.MakeDiskThreePnt(p0, px, py) + +# add objects in the study +id_vxy = geompy.addToStudy(vxy, "Vector") +id_disk1 = geompy.addToStudy(disk1,"Disk1") +id_disk2 = geompy.addToStudy(disk2,"Disk2") +id_disk3 = geompy.addToStudy(disk3,"Disk3") + +# display disks +gg.createAndDisplayGO(id_vxy) +gg.createAndDisplayGO(id_disk1) +gg.createAndDisplayGO(id_diks2) +gg.createAndDisplayGO(id_diks3) +\endcode + +\anchor tui_creation_squareface +

Creation of a Face

+ +\code +import geompy +import salome +gg = salome.ImportComponentGUI("GEOM") + +# create vertices +px = geompy.MakeVertex(100., 0. , 0. ) +py = geompy.MakeVertex(0. , 100., 0. ) + +# create a vector on two points +vxy = geompy.MakeVector(px, py) + +# create a face in OXY plane +face1 = geompy.MakeFaceHW(100, 100, 1) + +# create a disk from a point, a vector and a radius +face2 = geompy.MakeFaceObjHW(vxy, 50, 150) + +#create a circle from three points +face3 = geompy.MakeFaceObjHW(face2, 150, 50) + +# add objects in the study +id_vxy = geompy.addToStudy(vxy, "Vector") +id_face1 = geompy.addToStudy(face1,"Face1") +id_face2 = geompy.addToStudy(face2,"Face2") +id_face3 = geompy.addToStudy(face3,"Face3") + +# display disks +gg.createAndDisplayGO(id_vxy) +gg.createAndDisplayGO(id_face1) +gg.createAndDisplayGO(id_face2) +gg.createAndDisplayGO(id_face3) +\endcode + +*/ diff --git a/doc/salome/gui/GEOM/input/tui_scripts.doc b/doc/salome/gui/GEOM/input/tui_scripts.doc deleted file mode 100644 index 08195e67f..000000000 --- a/doc/salome/gui/GEOM/input/tui_scripts.doc +++ /dev/null @@ -1,28 +0,0 @@ -/*! - -\page tui_scripts_page TUI Scripts - -
    -
  • \subpage tui_viewing_geom_objs_page
  • -
  • \subpage tui_creating_geom_objs_page
  • -
      -
    • \ref tui_basic_geom_objs_page
    • -
    • \ref tui_primitives_page
    • -
    • \ref tui_complex_objs_page
    • -
    • \ref tui_working_with_groups_page
    • -
    • \ref tui_building_by_blocks_page
    • -
    • \ref tui_sketcher_page
    • -
    • \ref tui_advanced_geom_objs_page
    • -
    -
  • \subpage tui_transformation_page
  • -
      -
    • \ref tui_basic_operations_page
    • -
    • \ref tui_boolean_operations_page
    • -
    • \ref tui_transformation_operations_page
    • -
    • \ref tui_blocks_operations_page
    • -
    • \ref tui_repairing_operations_page
    • -
    -
  • \subpage tui_measurement_tools_page
  • -
- -*/ \ No newline at end of file diff --git a/doc/salome/gui/GEOM/input/tui_swig_examples.doc b/doc/salome/gui/GEOM/input/tui_swig_examples.doc new file mode 100644 index 000000000..43b003d42 --- /dev/null +++ b/doc/salome/gui/GEOM/input/tui_swig_examples.doc @@ -0,0 +1,11 @@ +/*! + +\page tui_swig_examples_page Examples, generated from GEOM_SWIG test scripts + +
    +
  • \subpage tui_test_others_page
  • +
  • \subpage tui_test_spanner_page
  • +
  • \subpage tui_test_all_page
  • +
+ +*/ diff --git a/doc/salome/gui/GEOM/input/tui_test_all.doc b/doc/salome/gui/GEOM/input/tui_test_all.doc new file mode 100644 index 000000000..caeae7be8 --- /dev/null +++ b/doc/salome/gui/GEOM/input/tui_test_all.doc @@ -0,0 +1,75 @@ +/*! + +\page tui_test_all_page GEOM_TestAll.py + +\anchor swig_All +

GEOM_TestAll.py

+ +\dontinclude GEOM_TestAll.py +\skipline def TestAll + +\until vxyz + +\anchor swig_MakeMarker +\until cs3 + +\until MakePlaneThreePnt + +\anchor swig_MakeArc +\until MakeArcCenter + +\anchor swig_MakeCircle +\until Circle2 + +\until MakeVertexOnCurve + +\anchor swig_MakeVertexOnLinesIntersection +\until p_on_l1l2 + +\anchor swig_MakeTangentOnCurve +\until tan_on_arc + +\until MakeCompound + +\anchor swig_MakeVertexOnSurface +\until p_on_face + +\until S = geompy.MakeRotation + +\anchor swig_MakeLineTwoFaces +\until Line3 + +\anchor swig_all_advanced +\until MakeSewing + +\anchor swig_all_trsf +\until RotatPnt + +\anchor swig_scale +\until Scale4 + +\anchor swig_all_trsf_more +\until MakeOffset + +\anchor swig_ChangeOrientation +\until ChangeOrientation + +\anchor swig_FilletChamfer +\until End of Local operations + +\anchor swig_all_patterns +\until MultiRot2D + +\anchor swig_all_measure +\until "CheckShape(Prism) = " + +\anchor swig_all_partition +\until Partition1 + +\anchor swig_all_addtostudy +\until id_Partition1 + +\anchor swig_all_decompose +\until print "DONE" + +*/ diff --git a/doc/salome/gui/GEOM/input/tui_test_others.doc b/doc/salome/gui/GEOM/input/tui_test_others.doc new file mode 100644 index 000000000..32d3c8b21 --- /dev/null +++ b/doc/salome/gui/GEOM/input/tui_test_others.doc @@ -0,0 +1,159 @@ +/*! + +\page tui_test_others_page GEOM_TestOthers.py + +\anchor swig_TestOthers +

GEOM_TestOthers.py

+ +\dontinclude GEOM_TestOthers.py + +\skipline import os + +\anchor swig_Import_Export +\until print "OK" + +\until id_w3 + +\anchor swig_MakeFaces +\until id_f12 + +\until TestExportImport + +\anchor swig_OrientationChange +\until id_Orientation + +\anchor swig_MakeCommon +\until id_Section + +\anchor swig_Partition +\until id_Partition + +\anchor swig_MakeMultiRotation +\until id_MultiRot2D + +\anchor swig_MakeFilletAll +\until id_MakeFilletAll + +\anchor swig_MakeChamferAll +\until id_MakeChamferAll + +\anchor swig_MakeChamfer +\until id_MakeChamfer + +\anchor swig_NumberOfFaces +\until Bad number of faces + +\anchor swig_NumberOfEdges +\until Bad number of edges + +\anchor swig_MakeBlockExplode +\until id_MakeBlockExplode + +\anchor swig_CheckCompoundOfBlocks +\until The Box is VALID + +\anchor swig_GetSame +\until id_Cone_ss + +\anchor swig_CreateGroup +\until id_CreateGroup + +\anchor swig_AddObject +\until Now contains + +\anchor swig_UnionList +\until Now contains + +\anchor swig_RemoveObject +\until Now contains + +\anchor swig_DifferenceList +\until Now contains + +\anchor swig_GetObjectIDs +\until print " ", ObjectID + +\anchor swig_GetMainShape +\until BoxCopy + +\anchor swig_DifferenceIDs +\until Now contains + +\anchor swig_UnionIDs +\until print " ", ObjectID + +\anchor swig_GetType +\until Type of elements + +\until freeFaces, "freeFaces" + +\anchor swig_RemoveExtraEdges +\until "freeFacesWithoutExtra" + +\anchor swig_GetSharedShapes +\until "sharedFace" + +\anchor swig_CheckAndImprove +\until "blocksComp" + +\anchor swig_Propagate +\until "propagation chain" + +\anchor swig_GetPoint +\until blocksComp (-50, -50, -50) + +\anchor swig_GetEdgeNearPoint +\until edge near point + +\anchor swig_GetBlockByParts +\until "b0 image" + +\anchor swig_GetShapesOnPlane +\until Face on Plane + +\anchor swig_GetShapesOnPlaneIDs +\until Group of faces + +\anchor swig_GetShapesOnPlaneWithLocation +\until Edge on Plane + +\anchor swig_GetShapesOnPlaneWithLocationIDs +\until group_edges_on_pln, grname + +\anchor swig_GetShapesOnCylinder +\until Edge out of Cylinder + +\anchor swig_GetShapesOnCylinderIDs +\until Group of edges + +\anchor swig_GetShapesOnSphere +\until Vertex on Sphere + +\anchor swig_GetShapesOnSphereIDs +\until Group of vertices + +\anchor swig_GetShapesOnQuadrangle +\until Error in GetShapesOnQuadrangle + +\anchor swig_GetShapesOnQuadrangleIDs +\until Group of vertices + +\anchor swig_GetShapesOnBox +\until "Error in GetShapesOnBox()" + +\anchor swig_GetShapesOnBoxIDs +\until Group of faces + +\anchor swig_GetShapesOnShape +\until "Error in GetShapesOnShape()" + +\anchor swig_GetShapesOnShapeAsCompound +\until (as compound) + +\anchor swig_GetShapesOnShapeIDs +\until "Error in GetShapesOnShapeIDs()" + +\anchor swig_GetInPlace +\until #END + +*/ diff --git a/doc/salome/gui/GEOM/input/tui_test_spanner.doc b/doc/salome/gui/GEOM/input/tui_test_spanner.doc new file mode 100644 index 000000000..5c9df4651 --- /dev/null +++ b/doc/salome/gui/GEOM/input/tui_test_spanner.doc @@ -0,0 +1,41 @@ +/*! + +\page tui_test_spanner_page GEOM_Spanner.py + +\anchor swig_Spanner +

GEOM_Spanner.py

+ +\dontinclude GEOM_Spanner.py +\skipline def MakeSpanner + +\until vxy + +\anchor swig_MakeQuad4Vertices +\until id_face11 + +\anchor swig_MakeTranslationTwoPoints +\until id_face12 + +\anchor swig_MakeHexa2Faces +\until id_block1 + +\until p_15_10_1 + +\anchor swig_GetFaceNearPoint +\until id_face31 + +\until not a hexahedral + +\anchor swig_SubShapeAllSorted +\until ii + 1 + +\anchor swig_MakeHexa +\until id_block3 + +\anchor swig_GetOppositeFace +\until id_face41 + +\anchor spanner_continue +\until return Spanner + +*/ diff --git a/doc/salome/gui/GEOM/input/tui_transformation_operations.doc b/doc/salome/gui/GEOM/input/tui_transformation_operations.doc index a05846a79..7fd356e7c 100644 --- a/doc/salome/gui/GEOM/input/tui_transformation_operations.doc +++ b/doc/salome/gui/GEOM/input/tui_transformation_operations.doc @@ -27,12 +27,14 @@ cylinder = geompy.MakeCylinder(p1, v, radius1, height) translation1 = geompy.MakeTranslationTwoPoints(cylinder, p1, p3) translation2 = geompy.MakeTranslation(cylinder, 40, 40, 0) translation3 = geompy.MakeTranslationVector(cylinder, vt) +translation4 = geompy.MakeTranslationVectorDistance(cylinder, vt, 200) # add objects in the study id_cylinder = geompy.addToStudy(cylinder, "Cylinder") id_translation1 = geompy.addToStudy(translation1, "Translation1") id_translation2 = geompy.addToStudy(translation2, "Translation2") id_translation3 = geompy.addToStudy(translation3, "Translation3") +id_translation4 = geompy.addToStudy(translation4, "Translation4") # display the results gg.createAndDisplayGO(id_cylinder) @@ -43,6 +45,8 @@ gg.createAndDisplayGO(id_translation2) gg.setDisplayMode(id_translation2,1) gg.createAndDisplayGO(id_translation3) gg.setDisplayMode(id_translation3,1) +gg.createAndDisplayGO(id_translation4) +gg.setDisplayMode(id_translation4,1) \endcode \anchor tui_rotation @@ -111,6 +115,7 @@ v = geompy.MakeVector(p1, p2) height = 35 radius1 = 20 cylinder = geompy.MakeCylinder(p1, v, radius1, height) +circle = geompy.MakeCircle(p2, v, radius1) # create local coordinate systems cs1 = geompy.MakeMarker( 0, 0, 0, 1,0,0, 0,1,0) @@ -118,18 +123,25 @@ cs2 = geompy.MakeMarker(30,40,40, 1,0,0, 0,1,0) # modify the location of the given object position = geompy.MakePosition(cylinder, cs1, cs2) +position2 = geompy.PositionAlongPath(position, circle, 0.75, 1, 1) # add objects in the study id_cs1 = geompy.addToStudy(cs1, "Coordinate system 1") id_cs2 = geompy.addToStudy(cs2, "Coordinate system 2") id_cylinder = geompy.addToStudy(cylinder, "Cylinder") +id_circle = geompy.addToStudy(circle, "Circle") id_position = geompy.addToStudy(position, "Position") +id_position2 = geompy.addToStudy(position2, "PositionAlongPath") # display the results gg.createAndDisplayGO(id_cylinder) gg.setDisplayMode(id_cylinder,1) gg.createAndDisplayGO(id_position) gg.setDisplayMode(id_position,1) +gg.createAndDisplayGO(id_circle) +gg.setDisplayMode(id_circle,1) +gg.createAndDisplayGO(id_position2) +gg.setDisplayMode(id_position2,1) \endcode \anchor tui_mirror @@ -337,6 +349,27 @@ gg.createAndDisplayGO(id_rot2d) gg.setDisplayMode(id_rot2d,1) \endcode +\anchor tui_fillet2d +

Fillet 2D

+ +\code +import geompy +import salome +gg = salome.ImportComponentGUI("GEOM") + +# create a face in OXY plane +face = geompy.MakeFaceHW(100, 100, 1) +fillet2d = geompy.MakeFillet2D(face, 30, [7, 9]) + +# add objects in the study +id_face = geompy.addToStudy(face,"Face_1") +id_fillet2d = geompy.addToStudy(fillet2d,"Fillet 2D_1") + +# display disks +gg.createAndDisplayGO(id_face) +gg.createAndDisplayGO(id_fillet2d) +\endcode + \anchor tui_fillet

Fillet

@@ -461,4 +494,4 @@ gg.createAndDisplayGO(id_chamfer_all) gg.setDisplayMode(id_chamfer_all,1) \endcode -*/ \ No newline at end of file +*/ diff --git a/doc/salome/gui/GEOM/input/using_boolean_operations.doc b/doc/salome/gui/GEOM/input/using_boolean_operations.doc index 88152d543..c7fd67b75 100644 --- a/doc/salome/gui/GEOM/input/using_boolean_operations.doc +++ b/doc/salome/gui/GEOM/input/using_boolean_operations.doc @@ -6,10 +6,12 @@ complex geometrical objects (2D & 3D elements):
    -
  • \ref fuse_operation_page "Fuse"
  • -
  • \ref common_operation_page "Common"
  • -
  • \ref cut_operation_page "Cut"
  • -
  • \ref section_opeartion_page "Section"
  • +
  • \subpage fuse_operation_page "Fuse" - creates a shape from two shapes.
  • +
  • \subpage common_operation_page "Common" - transforms the common part +of two objects into an independent object.
  • +
  • \subpage cut_operation_page "Cut" - cuts one shape with +another.
  • +
  • \subpage section_opeartion_page "Section" - creates a section between two shapes.
There is a general TUI command covering all these operations, which diff --git a/doc/salome/gui/GEOM/input/using_measurement_tools.doc b/doc/salome/gui/GEOM/input/using_measurement_tools.doc index d7dbee6bf..ec1a69f0d 100644 --- a/doc/salome/gui/GEOM/input/using_measurement_tools.doc +++ b/doc/salome/gui/GEOM/input/using_measurement_tools.doc @@ -1,223 +1,238 @@ -/*! - -\page using_measurement_tools_page Using measurement tools - -\n Measurement tools in GEOM are necessary for getting different data -concerning created or imported geometrical objects. They are: - -
    -
  • \ref point_coord_anchor "Point coordinates"
  • -
  • \ref basic_prop_anchor "Basic properties"
  • -
  • \ref center_mass_anchor "Center of mass"
  • -
  • \ref inertia_anchor "Inertia"
  • -
  • \ref normale_anchor "Normal to a Face"
  • -
  • \ref boundaries_anchor "Check Free Boundaries"
  • -
  • \ref faces_anchor "Check Faces"
  • -
  • \ref bounding_box_anchor "Bounding box"
  • -
  • \ref min_distance_anchor "Min. distance"
  • -
  • \ref angle_anchor "Angle"
  • -
  • \ref tolerance_anchor "Tolerance"
  • -
  • \ref whatis_anchor "WhatIs"
  • -
  • \ref check_anchor "Check"
  • -
  • \ref check_compound_anchor "Check compound of blocks"
  • -
- -\n Our TUI Scripts show how to use -\ref tui_measurement_tools_page "Measurement Tools" with TUI -commands. - -\n To use measurement tools: -\par -In the Main menu select \b Measures submenu. - -\anchor point_coord_anchor -

Point coordinates

- -\n Returns the coordinates of a point. - -\n Result: Point coordinates (X, Y, Z) in 3D space in the form of Python Tuple. -\n TUI Command: geompy.PointCoordinates(Point), -where \em Point is a point whose coordinates are inquired. - -\image html measures1.png - -\anchor basic_prop_anchor -

Basic properties

- -\n Returns the properties (Length, Surface & Volume) for the selected -geometrical object. - -\n Result: Display Length, Surface & Volume in the form of -Python Tuple. -\n TUI Command: geompy.BasicProperties(Shape), where -\em Shape is a shape whose properties are inquired. - -\image html neo-basicprop.png - -\anchor center_mass_anchor -

Center of mass

- -\n Calculates and returns the coordinates of the gravity center for -the selected geometrical object. - -\n Result: GEOM_Object (vertex). -\n TUI Command: geompy.MakeCDG(Shape), where \em Shape is -the shape for which a center of gravity is computed. - -\image html measures3.png - -\anchor inertia_anchor -

Inertia

- -Returns the axial moments of inertia for the selected geometrical object. - -\n Result: Displays the matrix of the own moments of inertia and -the relative moments of inertia in the form of Python Tuple -
(I11, I12, I13,
-
I21, I22, I23,
-
I31, I32, I33,
-
Ix, Iy, Iz).
-\n TUI Command: geompy.Inertia(Shape), where \em Shape is -a shape for which the own matrix of inertia and the relative moments of inertia are -returned. - -\image html measures4.png - -\anchor normale_anchor -

Normal to a Face

- -\n Calculates the normal vector to the selected \b Face. The \b Point -is a point of the \Face, where the Normal should be calculated. - -\image html normaletoface.png - -\anchor boundaries_anchor -

Check Free Boundaries

- -\n Detects and highlights wires and edges that are not shared between -two faces and are considered a shape's boundary. - -\n TUI Command: (NoError, ClosedWires, OpenWires) = -geompy.GetFreeBoundary(Shape), where \em Shape is a shape to be -checked, \em NoError is false if an error occurred while checking free -boundaries, \em ClosedWires is a list of closed free boundary wires, -\em OpenWires is a list of open free boundary wires. - -\image html repair9.png - -\anchor faces_anchor -

Check Free Faces

- -\n Highlights all free faces of a given shape. A free -face is a face which is not shared between two objects of the shape. - -\n \b NOTE: This functionality works only in VTK viewer. - -\n \b Result: a list of IDs of all free faces, containing in the shape. -\n TUI Command: GetFreeFacesIDs(Shape), where \em Shape is -a shape to be checked. - -\image html repair10.png - -\anchor bounding_box_anchor -

Bounding box

- -\n Returns the dimensions of the bounding box for the selected -geometrical object. - -\n Result: Displays the dimensions of the bounding box of a -geometrical object in the form of Python Tuple (Xmin, Xmax, Ymin, -Ymax, Zmin, Zmax). -\n TUI Command: geompy.BoundingBox(Shape), where \em Shape -is a shape for which a bounding box is computed. - -\image html measures5.png - -\anchor min_distance_anchor -

Min. distance

- -\n Returns the minimum distance between two geometrical objects and -the coordinates of the vector of distance and shows the vector in the viewer. - -\n TUI Command: geompy.MinDistance(Shape1, Shape2), -where \em Shape1 and \em Shape2 are shapes between which the minimal -distance is computed. - -\image html distance.png - -\anchor angle_anchor -

Angle

- -\n Returns the angle between two lines or linear edges -\n TUI Command: geompy.GetAngle(shape1, shape2), where -Shape1 and Shape2 are shapes between which the angle is computed. - -\image html angle.png - -\anchor tolerance_anchor -

Tolerance

- -\n Returns the maximum and the minimum tolerance for the selected -geometrical object. - -\n Result: Displays the tolerance values (FaceMinTol, -FaceMaxTol, EgdeMinTol, EgdeMaxTol, VertexMinTol, VertexMaxTol). -\n TUI Command: geompy.Tolerance(Shape), where \em Shape -is a shape for which minimal and maximal tolerances are returned. - -\image html new-tolerance.png - -\anchor whatis_anchor -

WhatIs

- -\n Displays types and quantities of all elements composing the -selected geometrical object. - -\n TUI Command: geompy.WhatIs(Shape), where \em Shape is a -shape from which a description is returned. - -\image html measures8.png - -\anchor check_anchor -

Check

- -\n Checks the topology of the selected geometrical object and returns -True if it is valid. Check also geometry checkbox allows to test the -geometry as well. - -\n Result: Boolean. -\n TUI Command: geompy.(theShape, theIsCheckGeom = 0), -where is theShape is the shape checked for validity. - -\image html measures9.png - -\anchor check_compound_anchor -

Check compound of blocks

- -\n Checks whether a shape is a compound of glued blocks. To be -considered as a compound of blocks, the given shape must satisfy the -following conditions: -
    -
  • Each element of the compound should be a Block (6 faces and 12 edges);
  • -
  • A connection between two Blocks should be an entire quadrangle face or an entire edge;
  • -
  • The compound should be connected;
  • -
  • Two quadrangle faces should be glued.
  • -
- -\n Informs of the following possible errors: -
    -
  • not a block;
  • -
  • not glued;
  • -
  • not connected;
  • -
  • extra or degenerated edge.
  • -
- -\n Result: Boolean; highlight in the viewer. -\n TUI Command: -geompy.CheckCompoundOfBlocks(Compound). Checks if the shape -is a valid compound of blocks. If it is true, then the validity flag -is returned, and encountered errors are printed in the python console. - -\image html measures10.png - -*/ +/*! + +\page using_measurement_tools_page Using measurement tools + +\n Measurement tools in GEOM are necessary for getting different data +concerning created or imported geometrical objects. They are: + +
    +
  • \ref point_coord_anchor "Point coordinates"
  • +
  • \ref basic_prop_anchor "Basic properties"
  • +
  • \ref center_mass_anchor "Center of mass"
  • +
  • \ref inertia_anchor "Inertia"
  • +
  • \ref normale_anchor "Normal to a Face"
  • +
  • \ref boundaries_anchor "Check Free Boundaries"
  • +
  • \ref faces_anchor "Check Faces"
  • +
  • \ref bounding_box_anchor "Bounding box"
  • +
  • \ref min_distance_anchor "Min. distance"
  • +
  • \ref angle_anchor "Angle"
  • +
  • \ref tolerance_anchor "Tolerance"
  • +
  • \ref whatis_anchor "WhatIs"
  • +
  • \ref check_anchor "Check"
  • +
  • \ref check_compound_anchor "Check compound of blocks"
  • +
+ +\n Our TUI Scripts show how to use +\ref tui_measurement_tools_page "Measurement Tools" with TUI +commands. + +\n To use measurement tools: +\par +In the Main menu select \b Measures submenu. + +\anchor point_coord_anchor +

Point coordinates

+ +\n Returns the coordinates of a point. + +\n Result: Point coordinates (X, Y, Z) in 3D space in the form of Python Tuple. +\n TUI Command: geompy.PointCoordinates(Point), +where \em Point is a point whose coordinates are inquired. + +\image html measures1.png + +\anchor basic_prop_anchor +

Basic properties

+ +\n Returns the properties (Length, Surface & Volume) for the selected +geometrical object. + +\n Result: Display Length, Surface & Volume in the form of +Python Tuple. +\n TUI Command: geompy.BasicProperties(Shape), where +\em Shape is a shape whose properties are inquired. + +\image html neo-basicprop.png + +\anchor center_mass_anchor +

Center of mass

+ +\n Calculates and returns the coordinates of the gravity center for +the selected geometrical object. + +\n Result: GEOM_Object (vertex). +\n TUI Command: geompy.MakeCDG(Shape), where \em Shape is +the shape for which a center of gravity is computed. + +\image html measures3.png + +\anchor inertia_anchor +

Inertia

+ +Returns the axial moments of inertia for the selected geometrical object. + +\n Result: Displays the matrix of the own moments of inertia and +the relative moments of inertia in the form of Python Tuple +
(I11, I12, I13,
+
I21, I22, I23,
+
I31, I32, I33,
+
Ix, Iy, Iz).
+\n TUI Command: geompy.Inertia(Shape), where \em Shape is +a shape for which the own matrix of inertia and the relative moments of inertia are +returned. + +\image html measures4.png + +\anchor normale_anchor +

Normal to a Face

+ +\n Calculates the normal vector to the selected \b Face. The \b Point +is a point of the \b Face, where the Normal should be calculated. + +\image html normaletoface.png + +\anchor boundaries_anchor +

Check Free Boundaries

+ +\n Detects and highlights wires and edges that are not shared between +two faces and are considered a shape's boundary. + +\n TUI Command: (NoError, ClosedWires, OpenWires) = +geompy.GetFreeBoundary(Shape), where \em Shape is a shape to be +checked, \em NoError is false if an error occurred while checking free +boundaries, \em ClosedWires is a list of closed free boundary wires, +\em OpenWires is a list of open free boundary wires. + +\image html repair9.png + +\anchor faces_anchor +

Check Free Faces

+ +\n Highlights all free faces of a given shape. A free +face is a face which is not shared between two objects of the shape. + +\n \b NOTE: This functionality works only in VTK viewer. + +\n \b Result: a list of IDs of all free faces, containing in the shape. +\n TUI Command: GetFreeFacesIDs(Shape), where \em Shape is +a shape to be checked. + +\image html repair10.png + +\anchor bounding_box_anchor +

Bounding box

+ +\n Returns the dimensions of the bounding box for the selected +geometrical object. + +\n Result: Displays the dimensions of the bounding box of a +geometrical object in the form of Python Tuple (Xmin, Xmax, Ymin, +Ymax, Zmin, Zmax). +\n TUI Command: geompy.BoundingBox(Shape), where \em Shape +is a shape for which a bounding box is computed. + +\image html measures5.png + +\anchor min_distance_anchor +

Min. distance

+ +\n Returns the minimum distance between two geometrical objects and +the coordinates of the vector of distance and shows the vector in the viewer. + +\n TUI Command: geompy.MinDistance(Shape1, Shape2), +where \em Shape1 and \em Shape2 are shapes between which the minimal +distance is computed. + +\image html distance.png + +\anchor angle_anchor +

Angle

+ +\n Returns the angle between two lines or linear edges in degrees +\n TUI Command: geompy.GetAngle(shape1, shape2), where +Shape1 and Shape2 are shapes between which the angle is computed. +Another TUI command is geompy.GetAngleRadians(shape1,shape2), +which returns the value of angle in radians. + +\image html angle.png + +\anchor tolerance_anchor +

Tolerance

+ +\n Returns the maximum and the minimum tolerance for the selected +geometrical object. + +\n Result: Displays the tolerance values (FaceMinTol, +FaceMaxTol, EgdeMinTol, EgdeMaxTol, VertexMinTol, VertexMaxTol). +\n TUI Command: geompy.Tolerance(Shape), where \em Shape +is a shape for which minimal and maximal tolerances are returned. + +\image html new-tolerance.png + +\anchor whatis_anchor +

WhatIs

+ +\n General information about the selected geometrical object is the +list of types and quantities of all topological entities, composing +the shape. + +\n TUI Command: geompy.WhatIs(Shape), where \em Shape is a +shape from which a description is returned. + +\image html measures8.png + +\n Kind of Shape field characterises the +whole shape. If there is no additional information available for the +shape, Basic Properties button will be disabled, otherwise it +will show a dialog with information about +dimensions, position, orientation and other parameters of the shape. + +\n TUI Command: geompy.KindOfShape(Shape), where \em Shape is a +shape from which a description is returned. + +\image html measures8a.png + +\anchor check_anchor +

Check

+ +\n Checks the topology of the selected geometrical object and returns +True if it is valid. Check also geometry checkbox allows to test the +geometry as well. + +\n Result: Boolean. +\n TUI Command: geompy.CheckShape(theShape, theIsCheckGeom = 0), +where \em theShape is the shape checked for validity. + +\image html measures9.png + +\anchor check_compound_anchor +

Check compound of blocks

+ +\n Checks whether a shape is a compound of glued blocks. To be +considered as a compound of blocks, the given shape must satisfy the +following conditions: +
    +
  • Each element of the compound should be a Block (6 faces and 12 edges);
  • +
  • A connection between two Blocks should be an entire quadrangle face or an entire edge;
  • +
  • The compound should be connected;
  • +
  • Two quadrangle faces should be glued.
  • +
+ +\n Informs of the following possible errors: +
    +
  • not a block;
  • +
  • not glued;
  • +
  • not connected;
  • +
  • extra or degenerated edge.
  • +
+ +\n Result: Boolean; highlight in the viewer. +\n TUI Command: +geompy.CheckCompoundOfBlocks(Compound). Checks if the shape +is a valid compound of blocks. If it is true, then the validity flag +is returned, and encountered errors are printed in the python console. + +\image html measures10.png + +*/ + diff --git a/doc/salome/gui/GEOM/input/using_notebook_geom_page.doc b/doc/salome/gui/GEOM/input/using_notebook_geom_page.doc new file mode 100644 index 000000000..d793d55a5 --- /dev/null +++ b/doc/salome/gui/GEOM/input/using_notebook_geom_page.doc @@ -0,0 +1,18 @@ +/*! + +\page using_notebook_geom_page Using SALOME NoteBook + +It is possible to use variables defined through SALOME NoteBook for +creation and modification of objects in the Geometry module with the following +limitations: + +
    +
  • \ref create_lcs_page "Local Coordinate System" dialog box.\n + The notebook parameters are correctly applied, but the study + update is problematic in case if the LCS is defined using an + object whose dimensions are given by parameters. +
  • \ref color_page "Select color" dialog box. +
  • \ref isolines_page "Select Number of Isos" dialog box. +
+*/ + diff --git a/doc/salome/gui/GEOM/input/viewing_geom_obj.doc b/doc/salome/gui/GEOM/input/viewing_geom_obj.doc index a9e42b2db..701502e92 100644 --- a/doc/salome/gui/GEOM/input/viewing_geom_obj.doc +++ b/doc/salome/gui/GEOM/input/viewing_geom_obj.doc @@ -1,6 +1,6 @@ /*! -\page view_geom_obj_page Overview +\page view_geom_obj_page Viewing geometrical objects \n Newly created geometrical objects are automatically displayed in the OCC 3D Viewer. @@ -18,25 +18,25 @@ other useful options by right-clicking on the selected object. object.
  • Delete - irreversibly deletes the selected object from the viewer and from the Object Browser.
  • -
  • \ref display_mode_page "Display Mode" - allows to select between +
  • \subpage display_mode_page "Display Mode" - allows to select between Wireframe and Shading presentation.
  • -
  • \ref color_page "Color" - allows to change the filling color in +
  • \subpage color_page "Color" - allows to change the filling color in the standard Select Color menu.
  • -
  • \ref transparency_page "Transparency" - allows to change the +
  • \subpage transparency_page "Transparency" - allows to change the transparency of geometrical objects.
  • -
  • \ref isolines_page "Isos" - allows to change the number of +
  • \subpage isolines_page "Isos" - allows to change the number of isolines displayed within a shape.
  • Hide - allows to hide the selected geometrical object from the viewer. TUI Command : sg.EraseOnly(ID) -\n \image html image18.gif +\n \image html image18.png
  • Hide all - allows to hide all objects from the viewer. TUI Command: sg.EraseAll() -\n \image html image26.gif +\n \image html image26.png
  • -
  • Display Only - allows to display only the selected +
  • Show Only - allows to display only the selected geometrical object. TUI Command: sg.DisplayOnly(ID) -\n \image html image33.gif +\n \image html image33.png
  • Update - refreshes the presentation of your geometrical object in the Object Browser, applying all recent changes.
  • diff --git a/doc/salome/gui/GEOM/input/viewing_geom_obj_chapter.doc b/doc/salome/gui/GEOM/input/viewing_geom_obj_chapter.doc deleted file mode 100644 index c6eec7218..000000000 --- a/doc/salome/gui/GEOM/input/viewing_geom_obj_chapter.doc +++ /dev/null @@ -1,13 +0,0 @@ -/*! - -\page view_geom_obj_chapter_page Viewing Geometrical Objects - -
      -
    • \subpage view_geom_obj_page
    • -
    • \subpage display_mode_page
    • -
    • \subpage color_page
    • -
    • \subpage transparency_page
    • -
    • \subpage isolines_page
    • -
    - -*/ \ No newline at end of file diff --git a/doc/salome/gui/GEOM/input/working_with_groups.doc b/doc/salome/gui/GEOM/input/working_with_groups.doc index ed0909498..ef9fe6f95 100644 --- a/doc/salome/gui/GEOM/input/working_with_groups.doc +++ b/doc/salome/gui/GEOM/input/working_with_groups.doc @@ -8,7 +8,7 @@ viewer only.

    Create a group

    -\image html image56.gif +\image html image56.png To create a group of subshapes of a geometrical object in the main menu select New entity > Group > Create @@ -19,29 +19,45 @@ menu select New entity > Group > Create In this Menu:
      -
    • Shape Type radio button define the type of elements for the +
    • Shape Type radio button defines the type of elements for the group (points, wires, faces, shells or solids).
    • -
    • Group Name - here you can enter the name of the group, by +
    • Group Name - allows defining the name of the group, by default, it is Group_n.
    • Then, using the "Select" button, select the Main Shape (a -geometrical object on which the group will be created). You can select -the elements of your group in two ways:
    • +geometrical object on which the group will be created). +
    • Main Shape Selection restriction button group allows limiting the range +of available group elements, +
      • No restriction button enables all sub-shapes of the Main +Shape.
      • +
      • Geometrical parts of the Second Shape restricts the range of accessible +elements to the sub-shapes of the Main Shape that geometrically +coincide with the Second Shape.
      • +
      • Only Sub-Shapes of the Second Shape restricts the range of +accessible elements to the sub-shapes of the Main Shape that +are sub-shapes of the Second Shape. This is useful because +sometimes purely geometrical coincidence is not enough and it +is necessary to work with shapes, which actually belong both +to the main and the second shape.
      • +
      +
    • You can select the elements of your group in two ways:
        -
      • Clicking Select Sub-Shapes button you can select them -manually in the 3D Viewer, and add to the group by clicking the \b Add -button (keep down the Shift button on the keyboard to select several -elements and add all them together). The indexes of the selected -elements will be displayed in the list. To delete elements from the -list, select them and click \b Remove button.
      • +
      • You can select them manually in the 3D Viewer, and add to the +group by clicking the \b Add button (keep down the Shift button on the +keyboard to select several elements and add all them together). The +indexes of the selected elements will be displayed in the list. To +delete elements from the list, select them and click \b Remove +button.
      • Clicking Select All button you can add all object's elements of a certain type in the list of the elements of the -group. To delete elements from the list, select them and click \b -Remove button.
      • -
      -
    • Finally, confirm your selection by clicking \b OK (also closes the -Menu) or \b Apply (leaves the Menu open for creation of other groups), -or skip it by clicking \b Close button.
    • -
    +group. If the Second Shape is used, the elements are added +according to Main Shape Selection restriction settings. To delete elements +from the list, select them and click \b Remove button. + + +
  • Finally, confirm your selection by clicking Apply and Close + (also closes the Menu) or \b Apply (leaves the Menu open for +creation of other groups), or skip it by clicking \b Close button. +
  • \n The Result of the operation will be a \b GEOM_Object. @@ -52,12 +68,12 @@ created, ShapeType is a type of shapes in the created group. Example: -\image html image193.jpg +\image html image193.jpg "Groups on a cylinder"

    Edit a group

    -\image html image57.gif +\image html image57.png To \b Edit an existing group in the main menu select New entity > Group > Edit. This menu is designed in the same way as the diff --git a/doc/salome/gui/GEOM/pics/angle.png b/doc/salome/gui/GEOM/pics/angle.png deleted file mode 100755 index fbe753880e608ab5b15dad1275d069a7b2816e7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14153 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 AUjP6A diff --git a/doc/salome/gui/GEOM/pics/arc2.png b/doc/salome/gui/GEOM/pics/arc2.png deleted file mode 100644 index 2bced2ae0eb7370d081b1ea8eab4b4a8c9600e4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16382 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

    0h7z!HJ1y6uNa^R3s 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 R@VS17vVw+u(IbnO{}0#hW|jZ| diff --git a/doc/salome/gui/GEOM/pics/archimede.png b/doc/salome/gui/GEOM/pics/archimede.png deleted file mode 100755 index cd620020e4e2159eb4888c2eacfe267efc1a3765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15311 zcmb7r1yogUo9{uSB@94Xq(n-(K}l(mZlt@r`BT!}DcvA-$U{k&NOyO4!+rUGb7$^+ zcjj9&E?u5=*!!Hl-~B$%uO0%wNQeI1cd75*ZP^Gk-ck0fD@M zhzWg?H}c+_b5@r>yYD)hNW{}_X_?b|h5Z_r|=UTh%dJDjrB_5YJRy zwANG_7=yMZMbi{m5X&!RZY#xHQq?l5{%J&h{9EeD4ZNWqo`YV((uo^SZ=x-1!xgsi z-4bSa_r5EPh>U~dwU@IBvfh3tS5-h77aw2z;r?#yH=`|MULyFrJ11>TAXbB77@L|F zukk~7T~$yT1qDU6tGVh4cK6Q2+%>r`78eDYQYcDll%HacNLB)4k*bXXZiNCnlkFU1 zRuP>2hJHLn>wFqJj)sW~7qzhpJK8&E+trCitm-JmqKM>VTnK)LB+-QAX(^?8458h0 zqa0yIMn}kaN?>P7V5VL~)RweM4UPUD;apsO$yDsb{phKk9X%Hjwei&W)e9>DWTg^u zU51yM*OKbh&P3_`#gY}36+Ht3!db(M+uK3O$poeKlIko|3AS^!aqIq5>NZ$&HT9MT z@f0w1J1)CYdiv~a!yg$Lnc^@M*}l5%4C5>_eAl(ivCZzm!KLeJ)77Mb(E>T75=9AV zX^e?d4fqV%c9GhK9pl0Qa&A$IrTRE^+a7!NNe!e9TO_ZO;e)zeMs_b@5p z;@SmeMkJ-V7s=zvwAL9j9sbVI>35HRnY7W(N~5zFlTIa98-T|IH4tm6lAWC_QOr%jTK%h@m0nZ7lv@V&tdIMLBlBYM#-hBu@F!}!EcrNB`i#sZ zY^E}|zdTP~?VAk$ZaFAPMICFR+Elq04;j!3Pcikm!4qlt6m z0ks14E9Sta8_(5vxt@1)l$ix1Da>5x^ivjkw^I@7ta-FIH4tHMX`;rd@+%tkQup5K z)duU6e5Lg@{)B~e@0aYj32b)9hHi~cA0xN0^-YOtc+RyU=-b;@Gg-Qvo;v*IJ~PLy z+fY2-JBWSq>!NHrT@uTo<54dl|n+u;;9UG!=Bo ze?k(umnIS=TOWQZLdn#@Iu@HIL!bA>{pYpNy0Xgaxiua>2Vy?+8@O^Z1FWA~xBfr% zd1uwD^$gZ@db_{P7YdG_1cK|+YsuJ8sY~c@R0ueZ3&s~p-yt~?8(p|EGUXxiIaqC5 zdsR_6aCtMjCMm$QQ`5<8J*o8xE>)3qyPbs7ejm~N79Z=re-3Q2=tI%%lBVI7IfJWP z;@#<}C0)(6?X?rT+Z!Ghe4;Y?EC2Qe9Ok#TylEsJxQSDBwRJ`+*R8VBDRmZegAW$h ze)Nub9JY*so?UK3S(vZ4=6V7``qgL8xL|kpPkIOTFTdZHOuEp{)O*TfBl5rcxFGv; z{Q5d9h$2JZUDIj14B=euf!G6K=R5u{UzZu@rGhYhi)1S||4w_Wk%q|V=wQu*Fp;cQ zJ*FRyV-;tqd(S1dwK_d^^N!#NcCqYRY;U@^YRjX znSy0vVunrWqq7Nn%it^wU7c+7^!C25w&-IjOggZ@qJ=Z;g&S>bS5$z@F`JNO-t50a zKR=mEFX2z2QD^wGii?(i{^M45KIBc4j&*(Va?OQO0iy!p-Y9xY*}?=Bo3d zey1SYU;+K3q~x>VgM)P_837)j+f#21O32}wXF%&Vm6LOuU@a>w{ZeoTwAeRMQ6rpZ zClAB4 zwvF^m2izt{eUYtoYX`-_d6)=#Kf-+zPANA#`-CdA!>~_all>bz#8lI=D_!Y9NcNSwy1IA? zLAimFCX&>rC4&}yy|@Rg7mKZ4y0c@nekDkJ6bchC0sG0!vG+Vyo)Z4|C9J_(1kYN2 zfATck8${dWZGyX8PqsuxHS3sfay`WG_^UmB+G=lB)6U`ua(mpzQ02Tx4Y|K`XXkSa zrzsDsG#omPuZf1^sIVmSbarBd>`mhby63SrGNXE_SBl@l0*s9lI;S1qGFG|%CDE%@ za`v>USZ0?yD=5Zt#4xP7Kh|{Xb&}J!an_cY$O~L92P0R$8&w$^L5=Y;7wm&Ysw=^n zFt!r-z=h_N8q9vWdZN7MH9t-*M%pU$=S%5X?=8%xuw|qNWybAU(LMgudxnsXl#DPl zS>C<5x*64NcP*QmwY=If8p%c9Q9^%bJL9&GuQsh!lD|}8%er~yqOPI-Sz4+!Cer)L z0Qv675LMIu*kYxd+f1RZy&c`_^cl9W!mvqoZGBy2Y>NJ!3RJ=It3QgI2x1*4w8HRk z^kDd%w&GHOQuxt=iaFeGlj@vt^I&dvczR|UON#A*Q5uPdk~}R!2D>}{(cNeG4fAjI zrWOC}JLNxnL_$KuUjIo zD_h>6{Yu(7O#S@BpYh2ExsB-V&oCnm*rCH|EtIno$E|N{VWFezOZr^{-*ROMcaT}$ zlv!s74Hg6w6EkUU%b3n~UB~9<4V@>EwYBw{NpguhEn!~=Ka=rPBPoFH;^N{)&G7-O zV=LC^*w|pyO*_?B2V-AL{KkC{lb9P>`SidtQzlp)4sV2Qr~SH(??IZH>orr;U2Q*qrAz&oX`&x3(n|OJCB($c zWaa3HwAj;~9;`u6Mg|Y~V>EYiRHFWR{D_#a2eH{$$;6JV0(R&V5}0*7tLyksLvWrZ zXVAQq%vYPQ1@?liyA|r9UjzgMMuV>nX_|Bkr(<<#4vlOu?UQD8Qyq>PR9K$jd&5fk zn-2&>58#WsKXY}YTa#oC*JTaY|EZlbV&THvacf!Mh*~Gucl9%+8vkKrmtb3&f54A* zfoOg*e%9wXTszu2R*BHF;kb0u@}4PrXp%NPy)dcHgDLKmhCg$7OZF8Vx+-S-KoNFg zPxFc4Y`{BJC3#ymbT$6KWThgVnKU~GZsT~&%wcEk!Jb8o1A3>c)8#hU=hHKI&F3RWST{$eqWsP zMc!1#JN#D^2X?|Mlv10c1up|UV81+dJQg<=?u+f_3~cF-j*eK&M!yfHa^tE&=?0h- zCuY4~3dr-PO1B3O&2}XGAgcAa!$-m-{xvohi$kZXY}r{|u8t5I9xR%rusPPiUT1)- z>3PG=H|1QRx>J**(rHpfr&^Ven0aHmmE(scEu*0DqBQ&E?+W6QyZ!7>K8Wf!C-@Vk zT9tgr>8YuqJ$lQ>YkevFp2Q3c3|x-;A@PP9Y-aqe^(99L^d>3^1MdTsMi^`IMNJ&tGf{rK-MeNs{gUkQ^^Q3afy+RSX?P@+t^M=^K+iE zeR9(|pjQO5h9go^LVEPT@jl?Ys#NJbJUr}nC!d!L#!fPLkZt>9QH*OOfN$g!!WNiZ z-;j&%BC#0ANS0YvcCmopa zPeUz2JcFZl=o!F``i_{y{lpJ#A|Um}f(AcL!D=(c#w%UFNX^ z)rLY!sJukmhsF`QzMhb;PY|mL4$f>-iF3q|&RcETS3>^#fChVv(kI~p$fQD2Upe|L zh%?`_bKAeL5kT&Ws_TB^Yo+d2*?-Lz*|-=@4=(U0_=rX%sQee%oCiu@ zD>J_eNhEC%Vb*waAy;t61*nFJh;R00x&925k?qZjLhaZ3GUJv;W&=PQiZSK%f&Ne* zp~-x|^Fm-!bcuEZ65?us^^kb;!UyRbW=^B15G%vx-gdauK2_l?5j%QylekcnO-$-* zJ6Y?2Krm6J-8M-DAt<9|C@T;AMll$!ii6PdQ@88z=;+&Qt+iwdN2F|)s7l}KM)VLO z?l|49uy0I>po8T}r*hGTss_c!<3gCVl6zq8H^``{%OyFMaEmj&@xH&FKAT5O^IUR< z-EW)T-roIg*y429eO;mkrQE&xV9>|~ub|K~IA}09%lQ-u$@cQ_Tdq{He|#QpiJO|r z%nMvx!%8<5s1mX)tB$U&SYwQG0oQvXt2qBxU4L58Nh}w8zR4`_Y@oFi$mJbgTtMS? zZnU+|_viX{Ck#jGYz@IlS4#mTn^TokkoGjfPKgn%wuPYue5)(ovr#$8Bo>sc=189a zjIYfe?oUGCQh1!B^7Un3hl(t(te_;n?hH%iPPkr{H)v$@(QI-#8em^2_n32mv{CuZ z&}zk*V++WKg6dZg<5hTJ^)XN^IXb!>T)%RiO^*F^=VYjmWN^91!E7BffZWFldspub z{=B15M=+jmtQ#2W3Ma{Ph3=0ZsG85K&B&zjh<*Ny4AH2!qpo&SsgXmLt(5O;=xx3` zSL3qV{3xLF1SJqwKkUg%^R;K z*Ndo#gq9@|j7sgLzn+Z1ogd6-nK+aBt`t-dtBbLjO}6~*3Q%o^8qXlg$jD%LdM1Qj zI8;e%m21OAMn*aTKwMgC{ga;)t9g;x5sZw9*)=eL9^E4(B&1n(wD54x{`~oK+5)Jr zgQv05KR!3kD>y8So{8?knXd1HAJM^H_c=oiE_Jf!YeBViiR5PIzV)~E4vkPUE%&?F zvzwi=W{i&k7(`}qxB?u+c+wKcOI75ce@II_k^W!4EL>9=ohjidBN%!p2Gv-{>DB^z z!7a^o{MWuFrXO^Wn~MX{vXQKb9pjUDHfV#h05Z4Drr_wYZ*tD;SE2TNXX0_ z527|ZnR<2geASO_>b? z73dfaO+iWglkd4q6jfF+*_$-O8|I0cr0JQEmv#xS`D!aPKX#K?obBfa++#GU3u9;E zl$*8`6q@YSO>t2vMI94cY@fL_5;$iylQFEWQfiT=XjLPotes;D%NBbpa!mFY;)P~X zTR*+Z4NZ!3o!fVD^x(cDn5(yowtATvS1y4`KapaJUU4hl@E7WrX4yN`k`bFhsWz$a z(^=E-0NG+#CsC1-^j*Z7pa6W~%XO|$JHrUnwy%%lxlh}FpjN9OFD2~$@u_^OyrlL? z9F>jK_Z>rnre6NwM;g;`8RR7%!fW%l`V>o)LVK&fFIr2KVVRO^o{sf28cnESiyk!n+=I0h}vwKMo)t!9|`4z>VCsR_~4 zedQ28{9w}~m90>|EN@TrPsiG+gFb3})TCDZxl zRPV2F(>8X>V4Xt?m`%xPpwkc6+nctfVOCD9SM0we71{z#mFA8q{QXvI>}hZIEqWE9 zNL$GwTKX&L(TaB=B4mJm`AR+0?HVL%yjo8-n}MNc4S(;^(>dE7%c;@TnG{;@Pn08{ zrM*7e>6-khi}C@ne6@r^z0SrD^j?4h(J?VX$r)_pUhq!a1$hZ9#xF!X$&fIKvOVsu zpT36Ya6Zl+V2juH1VyE!aF9@3Avjt=UXlYnTM6esK9!R>nbZxpzP+@rcigd{%NjF* zQ?7JCA08ggCeOXshs;-tz zt(zv>Hy^L?j4(y`=6tWtW(~El@C6puqfY|!fRR&DR=8eRKx!=JdK;ZjtgNkGbM63?yJ{LB=gTgI>Ye#?%{8YXKNY3cP-B)IQGfQSexSrjM6%wa0tuh z%jIEg45sQ1FAMty1OVOS54hRew@)BGtu0=^;he_K-qNv#b}PMwdwse25s{B6g3tYW zvUp}_C>)?3ljr^I*O{Z;${{9~QKLrm`Pr#eX}3GKKo#uv{NXHd_0n24G*S~B3UYEG zB7P4Zk*vrA4B}(RXnRVmbX}$Y!QO;fXw~Z=Mbko#l=6q|HeTGMMLCuGcry>IhwCsI2+;D*@eoqPg_-M$~KbTMl90dhY}gF~2R6!E<`tI@L{Q7QQEOKYgy-8B$R3DNBk{E_PH7Z)dzD z%l+p3S6A0e1GT_psD{NU5u4d-GLaDN#TM^zW2h-|^B+P^8(+l|RYv{ZSN@nJgJ=wm z+NpW(P@}12*1IFgvh(s*0F)9r&bB78n&vB&5kus1C6@sFr_%k#;R!ta@Xi?_uS?A0qIRxK`e3$Lbg^y`y+(aZ^Zi*FA%~Th^-8BK)IuXf zB&(VZL`{_{Fb+ZgXWtGNTY>W*<=(N}5xg~=g=9KWy4G+2Tlo<{{6rfZd%L6ckO_F+ zxL2Pg;DSOTA~sz_j#lgacpy{wo|i`j*iErULtIA2n=lgo!SBz>IBZstvqZxU?r*Pd z_bfeEf*D|oO&9a<$B5lO6<{1|bC?1gWDUH9tah7U{P{U&ujhybFV|LA4~IobemWiL z>{Ma$U3yJb8mcv4Y!3URd)_C4dxw0``StyYeUn^Vw*jrx zftl($+wSB~pD-eB@cau4k3kQqaM+uE;v;U#f)Abpr_=Q~=?XR%M# z3uPhW57JD7vA`&Dbv@F?=6>^o$JP%N*(Y1AD5NQhCC@mVlgqHG1xt8@ zN(LR<&`5Xl6wd*5tM>U@s)@CLqvHO>ONE|L*ww-gr7sq%a1OjQvFi(gQTbR54(DAl zWLdc$&PM_GU-yiE@otF;dM$vwL*xDSSQ@25+v>Fnk2@Dv_D{&N!i98;;CV$$rGId{ zw5ly-o!>$h1V;T3U= zP6V&H9cTevr($Kr26TD4#=I{Gn+8bF@;K`KlM@D>p$RSb(DY^!7j|B-s9E3%`tp)= zhA0_=6mDv2sy~rC0Mzo1%|BrR4y_v3%2?MMbFWP`XtnyPwIC1=8R8EG`_z!u=y$A*| z*XO(IGk~^M$E#wQal+qN@B_ocsmyf1t?if7Pn2o#cZLy3crkiWSkis_2TZs3t1vTO z6HL{(6NqFzkM8-kJyz6L)dVi9sL)YTajN^Ag2EhRu*q!ZI%~bL@OJU+OC^y zHwFP^87`2cg6uaO@Fm+96sqc}o~#d;d+>SOa?CZ@Lp>%;suAMQo;?HZc=C?Q{|nO2 zw?|ziC#%@90v!JD(Q2dIZuX#do4>s;CK@qY%9?L`L0?V8XB@--fFFwJ>FJ3<%<~!K zz*qM-2f?Gd|3Kfw34(uu>-{Gu!9D_IMGy!<(Bmus8oL(|qD%m2fH}|MdQR)^a4;X6^jy6?3I>KqR-HY%-eML!-evd4>(ec{^)q_a#_xxR zRjW{Rl~Nlzz{%aiU{SV)Ka0e@JyBdltIA6X_8=M0uJ>4)kQdM>W|?yB33 zHd@?g4*Qd0zp9WyGwX??Q!^T_@EhRDZDJ|uuIO-|Z`7|GV8e#arZu@1r-MDI)uxC- zYEo~4Qd_Y-*T4>R8;|WZo@$Lr&upFT-W*UF@I|t4jxt@YlTC(>TL^wwna@^b>Ha4* zRw#SXIz~P()l{U<>w}110sAVBEL%;!DE`J0{dwEZ9#WvTjKwfZ{iC5sXog?0Ew|_} zQ8a1cZ03DZ&q$K=o-d|^9&2u3IEA#qui^9)|EYJ6ccVj4fd!sK%eF-xa zBY{!y;>Any-@f^u$QKJET4%mw0~TIRf>QhbE5~d$6_xLu!lRTC?=O6P&G$S0kz!wX z!x}I4UB`b)OK{0*{b^i&WZG@!beL*OlmSHolUmi9dQR-?8nDSD1Ooo4N2KcM=?Nj` z#eemh(?&0_@7`nm!lum9=5qB3Jlg_BhhOsJV`p6iSl+SyP}(^%@)80ZJcEIx4uCTy zaP0Qm^3th1!e76>IJxHycRgsrg)At-+^)vr`_cA*7MRmme;lz zR`&NnBez$^ua03oD1*~pH)RIWpA*zeTYJ0D=%~B^k}uP@HeYc|8RI3&PgK6{;5IcH zou2daH$NExWO`#L73$%+dJz7*#FgD)e^%_*C^GDR-E^n%P;5zvF1XEzMY{T>!ZNx_LwBCWR7u86`;N+<}{{xz$~D`tcKHxv{IUNJGR z4EhsV^JTM&^6D92tPKL3qFP0S$*9(gK(*U=IMzkVq;3 z&w0{kK35+LI^<8AF>y_gEB($8V!0*r2&w2NgA5Ov#dn-jB=bMbhnl8u_d<~w&2zY?5?C{-a-+*P< zI`f8_3k5(+_Dt3ON!9~(vL5V z{RB&LeNzC;XMPPrt4zYO0UHTyl8xxlbVx*MsuVyHhUVKB-2_j$KD>$8-QCrRXD|=I zX7>azgl+Z{E0YC0^p1N&OK=`3DJdb36PA}?0LCzwX)tZM11t7unc?Eb>%>3Y^&eoX z9;_brV5<(|t*)+Oy?Q0DJq-xrBVPq9I>+^5KZV<|^w*XEN1;iR6gfG$Z-N3N#O-WM zsgdQ50*6lhY0D3v0Av&tQhNF@yt2WM3JMjKm5I!b7_F_Xkjt85{TtkwL>xx+|3G)t z+uTR_e7-j$`sE9jC7pXPpclm>hCohd@XiU;|8yPNH<`4#QHEL&fwYy9j}O*z3MAR_ z>4*%o$>=*B9i0RweN+NAvv&^lSbm(nXy1xh7gcM_0)fDzrVey>yJ3p_lr%WSLv51hx3mSb=ekEWl2xaYB0XcUXzm4|(k!C1-JVpuxZ7*dm1(D`>^ z4avh`_aYVa|KN1E__k>oEYH#Tj3xYGH(B@x^XaM=d1$iA!WQIZ*zDI1Tho3+{5L6F zj-#!h9|2)muDgLDoz5lI;IPN>Z#W(IH%^BK2WJ8Ng3LNDxC?J%KB9KaOv7`G%tKfu z;7W+-_$-hNAjj03J(|E{m|R9?zgBc@u}9nL1pNmzTyhBTBn`SFNUJOth{5RA$Bz(3 zM#jtQtEhy8?)^CgSC#wwd$0*2N;Mje?=BW_3$)rw?0{)N2G$CA1-Qu7%eiQ>QBm~w zQ#S&F)eDq=ShHzx88ovEhteQb$L4-uung=Y2<<0E%^5Vuu7ie|Ck_R|{O8(5Odi=!J{{*rA@Tnh4Z-!}FOfG&ouUIB;G+Wv((CivrVQ z(+y&*X@!LdFsRXRn~STo3b=8cxQHU^B}9zZRu^`SdE@7ezWG}wUu(U23MqW8bTB4B zsZOTPZqn?E%&*f}u!~;dMSIx_gjvDoVvT(od?fDw4JB6>wijTkXv#0p({q)jAY9|4 zkaZmm!qr42P4OX{wWNLwbrfmNL&`49FLd-nn^hImR`jO9o z!}Q}$aBHEAzscqNEfZ4|$dpkh42wMS)d~EpgqSMsq+*GtU=?Jep66GFZm=_309l_z zL=aClhRWpKukJk79W##2i%n`oYH%}a@~z2c7=Y5TCn?F2%@WDZ&Ha;QhzZoNrnc`j zl|OImKa=Y>WmK#VyUHy1=**hQ-ztf?Qp3ceDUUW=M4fkkc8M3$=%_xOxwjtvO34H-OByYZiCpaQwbqLb;)Hl*rDl)2N09;735jd0_GMpi zi#DHu0+P;{D2X7F*1OQj>v~?!=s*VOgbwJSLZYI$#_fB=YMHf>dw%(}cvG;~IiY3` z8|j`Ex2bDRE-slyW|+%v|7L{UX*xZ<0H$pGbl9(7LSXVs-9!Uq5eSIUn*U6^%`FY% z>HAYSqd_wV{3R?rT&BRh(B$u1R;$IW3G4eSVhBGA}i*H>w}bzAoY;| zTu>yGSfA*J$3J;znUXsgdn7@Hh1oed!$1cEI}I5folZ#u(Z~Bgk#C#?OXC$FtuL)dDIbCT{UdR_84LjJFh-Jb!i&7rkM4ujELMbO$3tkcyQ(bt6})w z^6VW?MH3cOP>OI$Gfl5n3i!ZXky)aLCnuGTa=!U&tkkoQV7v6|5y@pOY_iJA34q|P zog-W`lzcLX!r6wNARv$QuY777>@k#{?(@vtsK`CxSgV+u7@<8`8cio^Un`6-tLB`) zfju$lgS@r}FuK3LC;h+G%;0M!&Q#&f2Z}lJftDle(<(n1O%=1nMi{FT0rDP+_=CsY z)>tJj$cXgx^Y5k}{{U!rWClw7Rrl6ui>Lzf$1KxJ=pKH3T zex-54bkEKWHGV^24eROYeE`M|LFKM-umAI&)%eq31z6^dU0Y$O%4y4wNxrsETH^Jpiw=4 z`LaERT5huZn_yyZu^KcC(3F=XBwD%lfzutbnob42zP|Zj%XAsB9M821HXgbu*VV@X zI@W9NSkXGu0*X|n&V(WuhwiP8$TK)X%4W7*hCZAuL*)fDEWb331U^)^)(F` zg!OJtZ?2w;^JbtuNoKc{2CNH+DdOFmH=qlC0(l~!M*7{0q-;>=;UXTePcN^ohilB$ zlFexwLx9fOJwJ8NV5rnemjWhqU}$L0w|4(i;AQtB?v~%CvKamLdPybyJ71QpRI^DO z*o9XoL;PqlbfuCO7W9RMz({@TGyeTOqtWjSCPQIoTZH5L0gWaXY_HS?7`e%o+WA&% zwegI9baN^>9bM?<%Ohal;k@(sbsZ%V&A@Z)_RVjj>py$~7!#C}kuee!1n!K8S`ZBZ zF0LrBQ@m$xk`KX~;A$XVfC|`x{>KzgZQS4s>8c%`poar)Ym>``&Ux|F>E?Vp{>P3` zWvxF(#}t0aC0GBMRm2xG)z#I}s#N%PA@X*XrZ$+>496|kbp1nf*Z{BX7|4!H$BD-j zA+~^SO}0#vH!3PBU#r=}`wfjH9;x_SvYDAffGS(l)ieukH=*{b)@0-HY)Nj;w18!7 zF-YZsnSYRDWDURaOr@yud{UVKLm>+GIHK5w{;${xR0{0R zOJG-<4+aMZ(^NlugZo-2aqJgpbs8;mBS&dAXMg!(=_^IIq5o|)yezWk1@kLwoV}s2 z7go}r|CbcypS{FK12OD)(jP0+p}?+%vzLqjWP*8r;Hbh8fEDsD6TDbh5I!4Y@%w2o zT7vMavs3Y!KJ0P}nkw`c?cj6p|5bpZz+{4-`~tk*z8a zHji2iDSfHa8HlHEX;dn-JPRI8B) zyLC07$-4_P66a+rTcmyP65i6& zLXl;3;1|NqiFT(D>iCQ~2-gjJk*Sl7v;q11XMcQbAr)o5`3b61K5`1NKo>n${N2r2 z-T}P3^TFIjF+1r*6&1aS4W@<4D3e>#4Im}4;$w0n=XFhM>+8pz1eU)Wlq`wwXWE}3 z6SYK=i58#ed&WM7AqY3;;`5=-@eB@bt(`J#%UfGwHa1K^y(1!sgb^A;9kBCq&;PUc z+6H2&-8u5SBZt$O6kgZ3JuNfP0sJm6ozh(QIUNq>Lq&8i8X5>iN_Jbp41W-4pDSBi zC|+R1q|#tOXRJ^Gq1Sx2Hj*)`DlKioidY?OHRKW0@BL=-`+9Z6_ygI8Mf_f&MfEY^ zY)3He(a8zThXErNoBLVkor|-biAuoThAl-`wzpO1q-Zn1vaq=|dQ%1P29~8WK)@hP z#h~k=H`3%~kH|gVl?<38QQWqxy(%_0o3E?^W8#LJzkiICW3!Hc4>#T)X>6%#Y58bZ zuZE-{M=7(k<_YWfpF{@{ZYs50F60o53RgJw=-gi%J$#>g9h~{jR|eH^pTPFYslBWJ z=7I-sPNkjmNeQsXtfu23U@{dq!C`xp8bnkEcOKdgaF4;Wfq{WNd)fD-NuR!+o^OCG z^PKcEgApLGI-~f~kPAl`iP!#I!^uqGf_N&%@5jX9!7AZDXd|nc*uW^rXPz`$!Qu34 zwOpM*bMJr_ebkT;yZYv6d(Tpp2LH`XBVg&Yul7WvfZ3tTqZPY@aUzi2Y4W-P{jcOs zpetHkfy53ZHSmx=iHoB`sHv&@6BvDDvn)~tRe=}#n8(dGI-i^5DoE|Ny8oM7{0~!c zvf30Em|^2+tP4cl+@rHVKLbb@Ukggc$QU--94o?Q;CXn`p7vT%O6@B%FXyco$ftFA zd5?D(nvajVNFIO3!W1uSxci4-0OS&w*?{Ikv;h+KC$opg7AYQsF34R1>xk{|m-Of3t7;Lm5te;@HTxM6gRpz)0Mk}R^yVyc zx2`Ox@>@HiKcB}AR)y3I8zAyFmp6?Lot>Q^>vjA3^=ksZC#+iCdW7!rM8HE1t(pTY zA4EpAqba49L+dPm13C@(&2ZhOli?NjxUEgZg~VlSw-OlFq5?C2e!)0Tv_HIljl~5i ztJloV$$fq$P7WT(qj3x(CNS3pV5)o~SD{GN8Cya2l}I?=z$Rms`5?6M%h#f@y5(Fda!PHsWKOrs58*t=$SzGV6a4KAkmHsO zI>jm(Hk#PN)(lTiO44x?*#V2`1n#xoHE__1Y9cW*K!zl)yF*Oo3KND>?iWSvx0`@! zugg^{RPlx1?^Pbmq=hiH^#PT$bgg&iA$J%X}?91{_NWe<2e825s4JAKDZ z!=zEV-~f3D*e&`lGEJ>BULX*ZzClF=lVE^-NZj5WS!~nYK>uo^^p7?EjW^YdEf;r} z+-#;|+tIdYz6iuUWOw$ALRMm-@ZQ!680Llh3gho9JS`cfn!|FY;Y+K&9SE(-UzD3w zhwf^1eJz2bQu6o38WWpuc>6ydIZ>cszwTY35kPi5w%9het;f*bsbTnd_tz|{e2Ql+ zh|cmYfMH*fT3mjJJNzEHz6H6)bi;Us9WBycU;RL*w03NOK+QQ+Z_eD z{<{V+(8P)4c$O5nOF(JLNz~#eQIO#!S~`Uxg)Q*Cq7vI8?m($D@pDrYB74`y7@Ybo z8Md&ui)x*z5VEXo>?;e1l4U}z17}$~BKv{Q%}P=re`!)}q}hAbEG&Uh2%v9kgtKR> zlJ~W7gKPXF-pRbRJM2tf;Gpu3+$?Hf{zFlM>ZWOb+a&p|y)P|lJ_GaABpb|r*?-7LR+6E6bV^yJo!d)l4P|4& zo?!j-K#Tf&cGBzT+^RSTIF8JCm&9iS2`$vc;9IzL?dOFNn}QL)bc+wIk3@%FZM7hL z`8hA4qrY`W?ffA3MOLA)ytl14a4!rK<7>Owmjn*5r%_+^9iON(F`5D#G*e$wmFmxu;+-4O%VmUA1d& z;Fyj5%%FxkLwN;b&7izsdtguz#`CrNg4}0b%C$1vexI%o75viVmFZwt3}rx#!1u!F zcnO><7u9jGnu-E#qWZZ8$B_~>c6BwswE?*k@q%%zhD4XE25V;o+2fKAaxRZrFxzo# zzMoY>2_4m8pr}q<25F?CyLM0a3>6GtRM*%fG5^#*UjCHNVYAQbV6qv~)}o z)<#$@)tF@iN@g=WSKpImwXe+F6D14fi?TVU1F)XznDcSKap5!6Vh(j)=&dgnM&}C) c$OER9F?zw2Ht7cVMO}!Pu(VLAfc9Vi2g@CTU;qFB diff --git a/doc/salome/gui/GEOM/pics/archimedesn1.png b/doc/salome/gui/GEOM/pics/archimedesn1.png deleted file mode 100755 index 402092052787db07dbd458ed24104632937e32b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3678 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 L#k~09oqzua>(yZZ diff --git a/doc/salome/gui/GEOM/pics/archimedesn2.png b/doc/salome/gui/GEOM/pics/archimedesn2.png deleted file mode 100755 index b3b84b155b3cf1df96dc019203969933bf825104..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4140 zcmb_g`8yQc7at@fFO{++#2|ZR-@Ph~-5`5Jc#R}kGh@hFWE;a+Vw9Q25VAF6udG?i z+DrCj?0d`%GxPPn-{<-M1>Ya;y`Ou|x#zj(bI(1`eeNqO3nQ*`g69AL02j#kF8Flp zJZ)|4%%}Z*WlB8&z`YN;`=@RAn@v}p$3k5Kk>@LNSX_jd_<*x9XKa6Z@nd*c_#`vF z@__NYwrAo5zj;KH`^2mS<8QfBc=h#=oOdqIAtW-yL~Xt?BfesLgC6S3vFBXFIfzPo z2Ly!rcn54h@oov&UcQ{nL@_Jao^GNn_Y|Bi2rq14+DEl412!LqU%$&Os+P+g1X_y66QIVUD{n3-f6b(*jcQ|*k`m2a+Uw^A%Z#yRaN{eRBbaAB% zvw=Y#d?8-1DSaxHIPkRgN41zvJul!qH{h>nrI=Nng_+PIUUzDWR0}cTF6Vd)HVB^- z(HUY^)iXjh5~6oVR44^&5eI;p^DD8c0;6J$BRhaB4BOw~jStE_dya2Ma#fG(T&MJ) zM=qyt-Y#X$IMw6a{*bBbUG>aJGlW(&IN_QUiu{ZW?~4^h$Z8i%XBwksQfxY56h= zVvVra0JG$_ntM;x)Os!sC|6)BoU<@CYJ}iDzZNNz1u?b3FxUi9qA1%|S8-Tf#LeZD zGXv2(_8Mb4x%`|u4 zF2z-)i+Mj$&wgF%(L$!clAXI7&c?LVGq-X8UVM+lr;@p47q2H>sX0L^w8#KKM7h`f zIPG1lKcBqwel`k*^uacZgYclb_%a1Yceu6E=m^*~`gxwd)c<62cU0;|N)!Vo2wK87 zTxD9l_1oaZ@ypy%!pBzlY=gidwL_Wc?Fl1s{0r?zIUGOs=1Q<1LPp)ur!qIw)rC+m zV>spM2)Lpl$v?wFTsk3_ho$A?7QBOSWX|`(K9OqEg{o~4^qn0Y3g}82B#JfY5>;-9>ud+As@CT6>O$YvQ za`GSqCFM&4V*}}Ge;0@i6Oj#jgGnB{SG}yW&btPt9&*I`XS*p zA|Su!bMA}C1I={|)u~i@8EJj5d6G!Hz{~H`wa`;6%-PdQ90?2Z*Z}i;EiDK5pV0T2 zGOrqWHu9GJvr(!h{(W}o-ru61FysTNTXU1^z~*d0t!%Fu`yC2!^`H)^`{Yi-Vy0fx zUGrsSf5Q%7QIZsXzE+(LW%d%GrxBDVS?qzp7zImb=klmT87wQ?8FnnfKfFW?LD=`` zKm}N{#Zad?75f49ho9Ror=*TtJyg~2>3NN=*yDqH5iTI>BVgdw!SCWKfo6pmBZO^W zz^%{SQYBrwG+&p17vY=9BruGcnX^+)vm8D&&4umRJfb=!Ip60^*_KGI-t!&T{qHof za>iLZpcVNAXMV}Uc+E>yKfn4NKg`V$nQWOO*`Cfz_%~iU&i5EA2h+UkNQSJRU#6LT zA&1ad|MmRUX7L81v|I^NNT@A=ZGuKJ*MWRKVra-Fr@}ueHHvP3F;l|uoq$WnT6)>; zLhz7+IZZz2v$~Q;dJlWx(z59Gk`+Jc$UfCOd;MsgpuAK|CaRN($bMh?$zCEV$jicJ z7lb(Yh!A{~IEy+>P}1O=_w!wrLoAK9*a6XPOOMa!(trJD>b)$)B)X9u-cXbTq1zdG z>ZvZ6L=NaJY{@gk2dl9=!Apt0xmt6@>0}nrG!ihJ=1oKk|%6@MhA1&13joVN@}(GiXn5B4<|T0Tp|0U|GasFfHJ% z_&m(WmX?L<-<3LkwU9Q@D1l^5$E2xVFGEw{AB2F#N zFc3qn1fu$+3_3`|XTLh7_&}Ur_zFK=0t-#^8+%_RSMCv-wyUhFEqC+86ru=iZ)YK= z5dsbjsF}a&p`r9mc^ZjELPHttvh22|RXfr5U&kJrGQDKbBL4)|NgXf04(=bnvN>R| zV+4vQf=k~pJJGSJM^&DDxWlpR_2np#vu<~b|2D)DlOv{_ydiooA zXe8(h-6z-H0z-Ui59@m6jmgee*?%b3QC3$eghtKQsRDL@;J}EaR&hKjaRr4qdm0wx za~d=*8Zpr;tdfg24>jZ*oN4$GTWoQg_D#r{@^v=x_(MqCmJVUCSF*1A;vVhL6ojNt z(#vLFAq`f1#D0>zGMyfAP=t@MpSBBOQLx5#ZnUv<{#LVUf+#U1m>ygZre%+8&7#8w-30}m5i2?>}ovbI4(Q*Z*eMrE-5kz#TwgfSI(dy(2dr5l zaZmTyxjnJQ&1A6u!qK$HrFKLqXz28)o>QI{?ylBrXo~I8I4@f@BDFwa{TtXNw9e$o ze1}$z8-%o#+dv?eU_b7Kl}-o=0Y`zL0C2J#>&#f9f_3B*=1n#eMQQhEh-u6f$Fuam zhkq+RIEnc%qA206tM=leHn79fe)JDrxfy4(@PI0gD+rmwErZsw`9ULmHW=3tVfcHt zgZ1HcR!IbN^sAc8d}p5B(~7Zr%x6-^t3ot}R35G>2u;PL>O~9!(~s}hXN#TX12N&% z-ma3(3nkf+LHpLN8n^yx(A<1FIH6pT`ogcfpSzT{9Ea;*<*&DG1L~xVu8qb2JZWBA zT&y0qaR*8(n+^^0=W6#_W~9KS&(2EVd#-JbX-vGEa&*w;VL+4fqfwY>aGrZX@#aJU z>->?fF00k58cs)E;WJ*_z8kZ`uF-I%re<#|ztz+P1VJ#7$1={pVd$90P{>dB)4doWS4$X^@i3)Leq71cJxK1hOy+!w3oEn(VIzqD}9!bSlILBDUTX zL`*65aD))o3KOC-+kV<|t8;Xp@k251Gz1a*rdg)fs$vMHO#Ik*&513Y)=9=UDq}+P zx5JkQ;M}GN=%h-``jMMZXQS$GxrAVsSp_^5SO6!4?1#`Z2~g7#VOgT-xf0VMaUXlC zWxJHr?aX2l!ZVD4ldw&@ET7Js35-;PB4?uBRV?{jY59_`B^sV|{Z6eu`1Da^KRP^X zA&J0w?A_G@j<&nHSlG0+iXQ{s+gTdu5J_OxWwW6pWW>d<#S#jvy=tkF+jFnRj7=;r zC9U}=;uA%j#HAO*C``s{54qq+yAriRATUQ^1~6+@;QtO7Y#R`%8{K!og{Qv&0MI>) KyA=lRG5-OcdrcYu diff --git a/doc/salome/gui/GEOM/pics/archimedesn3.png b/doc/salome/gui/GEOM/pics/archimedesn3.png deleted file mode 100755 index da57c0fb966fab409a3f0b3e876563e6e782d314..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1841 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 NJYD@<);T3K0RV+-O2GgC diff --git a/doc/salome/gui/GEOM/pics/arcsn1.png b/doc/salome/gui/GEOM/pics/arcsn1.png deleted file mode 100644 index 564f12edf0277bfb41fc5c5b34e469612c2ea82c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2245 zcmaJ@dpOkF8lFflB_zhRnVMWn(?lj=X1nK3N(v*lA{jJ=VK%vs+}gQ}vMY8+w&NNx zsqu4Za!q4r$G8ld=z_s-Waj4}XLQb==Q+>wK5Kp7yWV#_-?P?wo^NHkx!B3dsL8-! zFj@OE)@McY-!RyYy;5SLD1lhp0E02s{p!=fUt95wi&%#%d>#w_Acftao`H~VcGAZ6S=}{{yxDC9tXYKx?bVpt z+7xX3ILNOmlcZfj+9CmZMfZ2t=h?lI80Jqjed?#jU0+x0o=H*RzBX2#KqGO~gE(rX z+SICailJS9&?2uhd z^tcs8#Uo%^iS`d| zrYqC-Qja7>$Ya`n7k7cs15;g`a|DH%@mF}~q@I7mr zEAieUuj0rU4sA!dXRKEz{K!j>98+p+U@%NbyNTA66Uwxa5)x|(p>BR?2UF)VkxWE;g%Q_+C?8x zm@*@igXsIffv)y(8E{}w)9*m1_-J?&{Dant^q?-1Tp9)9!>&CYJH;EJ32C8yic@=Ff#- zaeI}ym$DW#7aI?cEA4TvP;~wGQ=?DMO8c3m?810~d#K`PNW& z#4u?>&-D%+Vo$1ab%5YejG(z;`pG+UCOvk{{n61C&>%q?HJfRuffzTPcj}_!OuHtv zUqU;gtfpK>w??xfHoYa>COrjh=EC9Cq?B93s_I~Pv1XvF91jdP<>|UAeE>lhxAeE1 zWr-%RkUfbJJa>otm3c_a>it6(x3{t8uYG=h@k9olHON8Etk1*o1a5e=EA!2TFDGOI zT@CNYXmcJC@CfS!!~JCTL#Aiz;{3tXdb9wh65nUv1y^#o%m1FAXtligtpV>FkQ{Pn zW5&@~BPrWlai(rX3-ju|y2aPB5dQ4&;U0FQWdaLJ&AGh0zy%0elnPo<{lgpx2}mxu zn)Qcxx752s$3}}OEsOL1_4uwwCJu5MD6U0nBUN0W?RT%PGuu3C!5K*H#|*3HqQ@Q| zX-U%G+5 zpd2UIUlsXljVq9P{soS^E?X7p+*QQ6#`3zNR9jjzPZ^4`sTXt1cb!X9qZ7~>h3pkh zw{5+A5y##u&GC5S!W=p3urx6(IL5eEiuk5$X2?)*BfDKBGw8OB)Z%()?Su!i=(5Ji zyH(gL-zJthol?K&2FCVa^$N}Zi3Ki&TB<{nbDLhe& zU6R<`kadcuc2`Kl!dY!#wf-$yfGpQgJ5A*XB|dIrzJChTiGoxe?n2cLO3|Wb;GYN- zdy_L+45PU{0}QITBvT&oUxZ}m#fRk#svy+LFu>+olPPcpFSEY_gELBokm>&mwxN`X znUJLS(4ZJs)UuYhe!zD7uMm#C@KZM5~bWWEqT?v~HH3EFlY2ix+gQHU1c@*uM*~EC7`+qw5{~xz@ ZxQ{vOvx+=;qVEaJ-p0kc*79=lzXANZX;J_H diff --git a/doc/salome/gui/GEOM/pics/arcsn2.png b/doc/salome/gui/GEOM/pics/arcsn2.png deleted file mode 100644 index f2bec5d298ec0aa5e257fe49b65fc3392182acbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2415 zcma)8dsLEJ7S~)oZdAFKS<_;}&<^z?Di+`483o%Qhyx-zea*LJ-2b@RZE4<>ir^#VE^CS%oh%>`1Mzh&*df7j8m6iiZlo> zyo-?5tH1pZo?2gTOQ2gEE4{-LEW9W)hXDtT2vlq7hET5QqkumPEY_;^_xo$8^6R$G zCRMc+QmhgGQp=tp!>{qKE(*pqb0(=F^n&PX+Tq`;nP(htjJz)l+lv7Dg{xrM!LX5P zrfwd;Sk1}hrwkLSw)~VY0)i4FLC4xjI~}W_EX1wge!~a(ur6BIBjlya>?JAMl+k^U zdCZ-^T;#*o_I$pYP7M{HlovyN&0y9$);Rkast^|IT>cPxHKIDxr+zbrgwNiB({808`&XA*k6C;WZh~J-GDV+W zk4q%*-^E?e*6IX<^ujALm)XIv2-PWXu&qU4$v`r~8xr9m6TU@AFhFA@eo=}H2}KPb z1n>C=H(8@$Q=_miPVOdZzL}_^7zuD&ilaU^jaDfyFK+gL3nEnA4_?`$q>;}ZCCRkg zKUt)N-BCL+NgH6bPEZajq_v#oPl(E)W6iBLr~@>f$SMm$1xA^Q28qL!f}AwQ3`?D4 zGBNK5G9<3yVdMu?nJtUhen$<5!Yzim?o!v4k1O(_W-w(|%u- z#U)n~?K>iy#EIy>Rzzo#@Q`H*8`v`Om@|Kzb^(|ye{48VN4y2J9;fXCMk`+|LNUkF zWvz(Vp*o^W7^<=(fJiFQVDR)+tZn_)DZ8VfH?ldlP?m-zIU}a*yus2>zvMkla*<3( z)w%9pY9o~M)xN5}SZG%UvRZD$R19pM>I;N+8E|i8rUo{Nqc{0OxxMkE2k0&c(&4&_ zhc1I)13bfl$>ut(_LI0EYCkO3UB-)0=HI7F@6u&I_eC3&Kp-aJZn^He2kYj%r>05C z+CBt@#lh3Ufbd4)*xtmDiT3(52nqApc{sKUqKH_}L5xc4h$j!sKq=f}`k!8LUY+%~ zTDgxUEB-Le6FPr+7}os=KSKGs#_8MT2-;U?)dV-uu_<5`qAO|0HI<%eT_cy6B4-oT zAqtdk=5x;#^oj`8i3jMHJ>Vk)xyRJDO2)L&;6R}2VY51K9K+>HV>^9y!_XUthIHR+ zPFlPs#~f!UU#~ve0UxzQ0IGTKkBwOOdLFql zqj4}x_3(F%#9vrE&MF1tH4pU>J25Bn9qO@QbVonU4o|xR;2d#dmoV=4hfpRHt4?gs zW#06cA};L%O{^EVI=4vpv4>Pi*iBI6h)Ww=uRbYIcNV(1L>Mo;NfN5}{KkuxO7G5m zW8z>?g@}-%`u5!`U}mNUY2p?&xncI@Vax$2+sZf}_sklI(%|*&3m=8h5kh~&srs_O zq9Bs7)vNUJ{D3Uu*<-fhD!YGz8+(YX3p~+r0GFbmAF}~X?2kiq=jtExL|lk&Z(cVK z?Z!{GZA}_~KinbE9-UpC_T06w3Zk=-ID|7CK%EgK#InuU)#S>h?QDv5BDk^Y`S6=( zmiQsWrR4@T#U={^fqSd?cnz$Fc0iRJsM)3T9eP8a4$xSwTf$C|TBA0gFA(dc6$iH)BPNR{BXFI77kt#nf*(nY8a$U#-`)Ogx zGU3#C*O?b}o?z0Wo3^b!QCDR{B;Dc0@3t?WYG&4mDQtU+moATvvr?EGnOl} zU3q*zu+4OpCg+{4`N9DCK3Olf4DZpYY0ka|nx*4yTc46)%8YEy?8t@e5^yu zk2z28+NJMwju@h&52+E6M5hq<2eHFD2h-D|R)Y8=3S7b$!3{OIDhmpG_pp0QB zaMaeR*JPq9;!c9uO|dISt?y5#ikGqpW>=!cZc@}5=A1b|!YPmWfTsPfA%R(pRPj2( zblz3anx#e=k6Tx%IVR&ZK45`;cPLXf8gt{YxTjXIHf1qLqj#?0Proe7@X5gb;;A@H R2=tNC!yLkT)p;I2|8K=I7RCSo diff --git a/doc/salome/gui/GEOM/pics/bezier.png b/doc/salome/gui/GEOM/pics/bezier.png deleted file mode 100755 index 3c0e8df2b69292fb503584a104246bcc7b204e2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2442 zcmb7GX;hNi8rFteal^8*!8yxg$|08)n0BNzha5sQzyzmbnTk_lRN|aNn&yyk%yNiI zCB8oN=7)wuT3H!oipohWvqh-aFVjpg!=X#3Kew~`aqo})thL`^?{~d(HUaO9L}(+_ z)YOnJ2OYfB)YPq22fK2Kioz1pW7X7FdAc~*5zmx<7_^PrCeca}0d^|}oI?Io(-?Sl zIX5V1=|&6xG(E|`*2k||`eIp8*7M_9OYbgS@!@s@J22%`+eSyvOAdu3#hb**()|VJ zk+t$^1!%DGeNcTf@)~pKlE3=f9h3}R2w@$nMejC~T_bha0R?H~tt&u#jsKr9=~~m~ z_Gixf7UQ~MZpW4VF_`*Bf8WkODx@(b9!(j%J^^yRA$V;S|z z&x7Xa2+!Yv_m4>J!_2A0MYpC~YgKnm&6ozs>Nn{$jy+KV4^Av{3BSL)UO#uGW|Q}4 zLDHPubF2r{?y7N`-zsg&N{)PSXNl)9_JqT{iPTcclhgJ)nnfrkaD5APx4Y{Q)WJ+< zgTF7!e+$Pk1I!d4Jj4>XY=P8&*c;eu5+Ot6_le;mf`NZT$6?@V+!!g)hF=!Y(){)A z`Mc%luf#KqYuXHcW8&09<`jqw>?gg#eoT{mGOzSjH}i@H+ID_-8f;VFZf9P4HBQ;B z$Y=P;Itb8}w%9LV)QE80x$;$8-LP;k`aaK z_-DcSMXGTrq~~w(BQ?NYI{oyDJ(-_hkCmi7Yl(#mA>l`jkx`W}m#MS4|L+=KYD-@((I;+Dgvc4Q;J5)x_ z-Xpz+w@toNBuRLt*Z_zh>%|@8XSP1F`LI#PF_}P#v|FRY364z8UH;@YS*28IXma?( z^N~wI+P`0LRgnjdTpcl?uVmEUkWs@z9k z^Wk8(AHXMs8LgO}rer;qydFMCK|eMeJ_J!xT&+{dCY4_JDseXF(ylND0(j(G*{P#2 zJaMMAa@9(fT`0rXK6nR3uaK~%fc(UWn8_OH_qy&DsrxB-br_}d!Jgpl^{MB!6Cd9Y z-(Sh{3}bAz500Sdr4UL|j=F`!bQC`gRh)cmdiV}9!H8{X0hZfy+&zHkUx??w)uym$j!ajJ!>#A4RPNGoQXC`+CoK-A5P_y0)(+#82U5z2-I`#-ZDIxxmg5883 zxlS6`JvUXKiaQ;q@X4et#R_=QBXxyC8r`^!AE4Rf{6SQr8?u%QdhO!JM zVh0oEW807C%U|{YR(Z$39&m6I_IXmXU-ISTL-M(rUjBu$o=u^c2Lw>;Uop4ltA$a} zOt^XL9JMt*qLP0;dI>Imkb~iZkNa9 zB~i8D-E!+oNz~xql)4A1L2YhY?`XeGB&JZjD>~}Li7)LYbh&k(6*<||)Ovg+3jQLPVF)qBQMjX4DYu+2usid*09{XKDoNuqe?^s zijbs4%a$sN9t&p*l#!oo<|=RMUw~`^Im(;(Y^vVJh1&|3g>?;$i~)k!L;!WeQ*syo zF>0d9oFc3&N+BR9T;lK4+faEsciv0L&Kb;jH7W6+9iNa6$%;76&IjB&_ESlpw+4nO{-I3XIQ-oBf|tL zM20o15DaZ4g&x=hYJkb5y(%g_zdCf*QjyGFQB9y*AyLji(|7 z7Z0_njBu%Z|4m#J|4sa_Vp@5FwHi{gd~cPK4LVp?!W5bUFElt&gkto->hwx`RbBA< zoPe&2D3S)ZdWL*@rTUZv!GV{c&(tkc0d3n{Vm$_?PX5?@n$ zpt=Cn+Y4vQgzXU1Mqp_SmOJv?oq*AcsNQZ^O(t9h*{l{=V!sUxy{=KQ<4v(R+B1fp?Hz3@d( zE(9fQiP?<*gZ)hDvvYCjdARXdiNi=)bi I_JL>r1DNL2;{X5v diff --git a/doc/salome/gui/GEOM/pics/block1.png b/doc/salome/gui/GEOM/pics/block1.png deleted file mode 100755 index 71a93b0c9bd2d768396d783b5aa5ae7a4cde33b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15732 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

    J$SI^9TIybEAV_b7-N$I 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 Na#G5$;ui*={twidk;wo6 diff --git a/doc/salome/gui/GEOM/pics/block3.png b/doc/salome/gui/GEOM/pics/block3.png deleted file mode 100755 index 61aad9b43a4ca7540620889ad23c35d3fe2a7241..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15635 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

    ^@O0#8+KGvOeyHUH+FF8GXiOoPcC3 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 diff --git a/doc/salome/gui/GEOM/pics/block4.png b/doc/salome/gui/GEOM/pics/block4.png deleted file mode 100755 index d0661b6e98b1920495af89e0be060960f749ea52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13453 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 CQja76 diff --git a/doc/salome/gui/GEOM/pics/block5.png b/doc/salome/gui/GEOM/pics/block5.png deleted file mode 100755 index 9810f6f0dfd56691b09c95349195cc4b63d8c9c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16710 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 XnY>uyS}X8*1=0s8CCM@gqc8srt3cwM diff --git a/doc/salome/gui/GEOM/pics/bool2.png b/doc/salome/gui/GEOM/pics/bool2.png deleted file mode 100755 index 4e9b968622f6087d707521eb3f79ef268c368ba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13285 zcmb7r1yodD+wUMsN(d?;AyU%P45>&+i=?E|odVJ=(gM;cAYIZmgh)$wH$%tJ3=DVk z{=e_Leb;-}V%9q6EY6<2&v~Bb7tfyHw~EquIOI4G2n0{&jl??$1Wf>ZB(N~Rm5TId zgAmA5h>XN5Rn5TNIaeLk6IAEnL}EDFJr_f#SC8X+ER*tsf0{HW%URg)_su9Mmj(yt z%=OHb#Qii5tgelH&#z*a&#EvpILj6PhmBX`1*gKxFHZgYksqa`K0pG=NJR%a+mbHQ z9Gl?oO&iJkQ;*cteuaGfT6-voMZ^5#{QPtK<$Kd>!Uqq2piEIgW_VPqMkcj6#+kEB zIC%(5`C6LPps3j*`Df3bsake16%-JG|2(DO3^IA;RbrDxC_WoU3y(fGI1K&M*~uc? z89_NVbmL0>s4Q&T#)C*4D>XXsm7#d9(GRuqq30%l3*vOtl&ZI0nUpZDKN0e0FPe$g z9lz^ty7%Uj`Q~P}-at?Ct6%a_x}-D(bj9j4{1ZeF@^*RN*9=nr*sy4SMN8-(G#stJ zW_^ife-od}V&o^LWt%>EzPXsEvsG;z|MMD*vT-a(nLklsJwm@2K!{N+D?&{y+97{m ztG9)bnFU#OoNJ?fS$9EwU!Z5w0J=;BSzS1%^lDvnD@p(xR*yYq5R z(CP4)XSuMCPDq;m5G=Q1rGDEDo-tpphNII?56Pa&D#;?g_~ zONglajs}euf6CF)xsY}8wsrBc7_F+)V$#-43@om#z0P@uOK^gdD7#DKQbPFK>0!$R z!JRE;vnscDD(`CJ9Ku^#Ui$fwf8Zep3tL@X|Mro~ert3;MZ`VgvdQJ`NM|xeNKd-? zluo^t&fFKS;wR6)>4s!#M$G^GX$sdB%6OQ9YnFFI^>%3cVS&3vp2_I4_AXAVQ%P3o zDZiHSKJ7(h=#D_iirqUrhXGHCw=+S|646)00~`Y1Q0Kd+4TQh3EnF?lcHq9b%F2Eld-dBk3d&4%4&UyM{P?!Ho$Np`#68o zB*-Z@=O?sCJL`Qor|iflCSDE#q(JQbY4n=r@~PBQ|1G6F*#30 zjxFXVmruXH+o!Jn5kLt)QbGjxn(>gcr!FXklaIZ5_q#SNP13yBqgaS>0Cf*X^=P!> zFlgbz8UFs^J*uYW2dR5_bc_>WiiJzaIrt=EgbZ=nvGmDuPDy@R^H}icVqZw8yZ_fG zlhS?#(u1=X9jG(ylAk8iY&8cl*E^H(8)c~9W;{68HymN^NfV4ho$@v%J<{6*j)+

    kGq#R&ZE<|#vhpmz;lqMFYryX#hj%;qzp)ZPd9 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 diff --git a/doc/salome/gui/GEOM/pics/bool3.png b/doc/salome/gui/GEOM/pics/bool3.png deleted file mode 100755 index af409a15e4f92d69e4b5ea3925d8b031a75b79f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13184 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 diff --git a/doc/salome/gui/GEOM/pics/box2.png b/doc/salome/gui/GEOM/pics/box2.png deleted file mode 100755 index 85a737afb6347f3d7445455c6dc39c9ff42f4321..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12087 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 diff --git a/doc/salome/gui/GEOM/pics/chamfer2.png b/doc/salome/gui/GEOM/pics/chamfer2.png deleted file mode 100755 index 24d6e124e7f5d56888f68e6190b27cd0cc925326..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20370 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%0AixyMrFk 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

    JDnDEPxPAFlp!0(696tP0ar(52oihp_8$3S7 zxL0|?|9=;l)FO`cNGw~{)#0&XhoQ}!Vujx6w_oPvm0#^<&G@lUl;=n1-gJpsKsy#D zE%;EdZ(qgEx!1aL6Rh--k23vv@1)(vXutWzx;Vj!8Kw~x3?^p4c}(}?4a`;ZnRgcK zoXg$&)+9dn{eCw=!On{2*7jn)B`>qo#r5JJANRiAa8J-9xR_ndU{UE61CwYMm$u7m z4;{8-FWS1b`}A2^29*oa3UB9LXMFMM+fz?q-N+e!uciHSY54ZLQ^gnb8v%`sa^~!B z1XZ4kE(CydKHBs9lqYcehfr#pl$`l*9UWy$%bPalMV4#^g+)yJ=P$J02psjloPPi4 z=eOn8GxyzKb4YUEm@HJA62p^lp>*x+zh57(u)W8iwywH1cFtn)!yl(Nc4i)OPX2%J znJ??Xo7})%r@Hx1#6P4y*5P6H;W@D9;h%TQ%(;0sb6+-)6ue&jaMj}PdcgTnF&}2D z^(7zfPJb@D-q3*OxR)>Ub2S9$5Z4 zu=RjJ@4k<%jC23rJofX;(IeN^SD#F{>kZ6xhxa6Z@?JM}_PPBsi=~cF)&9kF;&Ix# z*B1)bDH>F3Dk;^8i{CC6e%JfF^t$E!nT)memxBJw0j;-AJLJ3lcUAhC84oKbuLriE fq|+-H{>XP9nqKUl(!T(B)*geWtDnm{r-UW|kyhwK diff --git a/doc/salome/gui/GEOM/pics/chamfer3.png b/doc/salome/gui/GEOM/pics/chamfer3.png deleted file mode 100755 index 801f8db2f47e19d0e855f91d6dd781ae5fc13402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19509 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 a@8Eg|*LOjgY`D|60Ier_8sF4jM*JUMh|`n+ diff --git a/doc/salome/gui/GEOM/pics/chamfer_edge.png b/doc/salome/gui/GEOM/pics/chamfer_edge.png deleted file mode 100755 index 8ed8fc005926a6edda8b640141caaf8313e87a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9146 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 G%>Mz9tj1&j diff --git a/doc/salome/gui/GEOM/pics/chamfer_faces.png b/doc/salome/gui/GEOM/pics/chamfer_faces.png deleted file mode 100755 index 961cf0386c27a0258feb26e05c7c43f885aef7dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10302 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 diff --git a/doc/salome/gui/GEOM/pics/changeorientation.png b/doc/salome/gui/GEOM/pics/changeorientation.png deleted file mode 100755 index 95322ed6984d2e59c0a267940801ddd3dca74da9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15333 zcma)@by!sGy8j0dL1~eYb^wu(?p7&9KtZ}&xYWTN5+WDMZeQ`l+)DE9u zfn)BjEe)8Mu5zWFbqDhAdYG7)VrLD#@}&}S(@MoBAYfcw_xT~!XsX#52oCWx(6cse zBK$-cs!cSWK%wP|&v|PO1Lp*>UbNT>rW~#hGz-iZKe|(n{dim z;kcycq>mpz?k$dtAB_9DJj1llbD1=P9zK`k+(B*|HwIym>dpwO&0JZt8RXN zb$(Q=k-xmMVt0OM1|gdn4stv4Ff;FY!q?Xk#ig>1JLbe!#fq2P`r6qUcda+2b-_`` zZU%kgZ6wjGj?OrCGtHI3&WfV74(fif(SoTgL;p2iU8(S=8U0A(LItY2aW1c>zFoJH zuz*v3g=nkkb?3D&LBq;-`?(>Be4IrZwUxHl!fU;0>5?JDWtOg3b#--WEX2rdS0iH+ zWHa8)QvZ);ZZkJ7oPzprO>Bm&K?ec5Uo};=%;nbKC3r~#qP&mjt_)cDv0`K2L~7Pv zqw(*TJUSgKeLFYydgwe0j`)RLv+0tdv|}w#CH5z4ZerZ~@a}dX$xw*}-JF2*;ICPC z4=20RnB(f8cICnaCt?kZ)3<$NfBZwSw7R=9UIq%8jpPvN=;-jL$S2D)klu|Y$06gh zZj$4hX{qzP*gHC24cID7SB}<_Pwic3k__ysV#~;?&YN0vs-1FLWBx{PM)IB&J;)WO zC3uLPJy}x0U}d-zO+FddZ#z2IY-kZR#TxE^S8lh}`M}f2#Mlyug{LHhAgUhlvt;*t9)X%Fj5s)^0u{%z^)i zop1IdZ4bGoj7U^laT!aT6U=<%OYAevMMuH26(86{x$rNUGq3cyrBau`$f&5sAI*Uu z#*6e5oX|{o`LS@=Eg_E*&M-crp=B+!*b-Cvdc;i3Tv~QmweFya?eEXhUn0Y2%08?t zFK0Vk)+^K-+?=d&SO>Q%)}xC}vV2@Qk9696vfV4}az4t zL`bc~7B}MB4ug;T-W|P;xeKnR&Q|`L`PTJbnB6EAdarCZX&PMYk7I=C{Era|C*Ygv_4Pd5+f56JI@@}%swg^YRqoy zU8t_j})N5?;qV&C|u;p{smvBAgm@U z394f_OM?@6oIH!dVf+RgO}>SqKYJRz51P+tdUbA4%lg=&aEz8w;gPx)*6J}aOh{E2 z=VI~NDU5nZgW~k1K75Ilm~TeMI1z=eaZ85O>XY7e4ov9|Nx=3%D)lA{_%$!k zFz_X96&|F!5@Kv5z*j~+_ZKA_I_l@P<(3UKyXV=l)vmlxY)|*}?d|P5^Q-kJvr7AC zsvh2vF`=687Rz7ZZm``I&10!@=nG3jPGqZ$mogJSDBy+;9kdgUh-_3BrVvIe#r&X!f;EzP�ZS;3}ys<3MKgg$#MiQd)QFVnSWLOcx6pI=!~ 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 ZEmVwBQ}($z!QZ1ml;qXq3ZIw;{vVfrG>QNK diff --git a/doc/salome/gui/GEOM/pics/circle2.png b/doc/salome/gui/GEOM/pics/circle2.png deleted file mode 100755 index 7500eaf2c907f0c50c8dcfa91e8d95c124740952..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12343 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 diff --git a/doc/salome/gui/GEOM/pics/colorsn.png b/doc/salome/gui/GEOM/pics/colorsn.png deleted file mode 100755 index f0c440147a1882cad3a24857712b80770d4e7bb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23078 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 S6iyw^pa64Iv`G!pE&gBX<_tLi diff --git a/doc/salome/gui/GEOM/pics/compoundsn.png b/doc/salome/gui/GEOM/pics/compoundsn.png deleted file mode 100755 index 33e1012edfc52e977657dc3ea0a8f2da988bb778..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1653 zcmb7Fdo&Y#7@i7I@}bh)P90{mB2+5Z&%K%3){5kk+p=Pn&O$ClQJPCOZINpxge_r2 zYhM|&G#sR|mX?L)(lDgCe5zH`3sul{)7-}Aob{NDFG&mYg5?(ONSqO7G1002~A zN1Twdw@nt*jq7B2LySor0H9zEbFxRp7EJN$qKA&?uxI8~e#-%NI+Be4zC|Pd5t~2Go>-KQy?K8!SYh9n23kzf_EGjyeJXy9#^%qBGFb3}O57RzH65ZrqvW!r0 zmHsc*1)-Ruzr;u{_xLH!1yPgIN0J0|j-@mYTeQXGABL z0G93u{m|_sCLJp{enVBvR0HDncjFE6skK&ziObh$q_)VRh|F3FNrU47=S8ka=>E$s z(cSOvHGjSdsS=kPFNJJiQn`a)?I^x+!$ZuV zHv}Uv-F+cDF(-_Tpk*WFnHj>#S}cF>4se;R(<_Q7DgwBKU_C=5*HE#X9Y<{HP{<*Z zONrq0jPDvg$PRg`bW@VK=$OPE8hp-34mfWdjypOf#`@s@g7kZ(iPI>h272=2&4Zhl z2hS<=0o37ct!5rW4EihGt}VcZ5v$udNnw3YJeNyhhDcp<0-* zBYFn~w?l9I$mgC|oUi`$n9?0?}IFtGtYO z-PRF9Z&XF22}0UkI=W7nYI>9~VL`fHEJnq8v3Jj!-aCWF%@Ov}@QD^Z$4?Fr-mF#? zB^NKf%c&zgt-sPf-4pO_x$DsVzAgQ(Hns&E0@Q<6n`Y-~b>2&Nt<^T`;aig`Fvm+` z3NNCpk8>w2G{aw{LKqKky;44dGssFq^C*T=nt^HZS64LlC0U)$Cq=ZwE)k4D=dHc z-2Du3X4dkw&=i@vLa_kurCqED{2YZH?dM2Vm*&MxUz381_3R1}K8sgymC!x@EsbCK z)#h-MNMFQe4#!COquA+%X#uaN?Of2P{~ss#DJ(rtNl>TiX=z>q@9Q#C(JYFL-_ze2 zYABz6xf+%oZ=vB6E;OY2O+Li1L}MXq?yEN|u#m_z@ULJnBwn%(jVo)uD^Ew#c zI?btA9WSkG-)ml`{>Mg9xAM5zR@FaDwQA=BwmRreJJvmSzu)?xSk5sJ=<$3`ksfFp z)c8S$<|GpN}xPbaFw Hsg%C~37R2G diff --git a/doc/salome/gui/GEOM/pics/cone1.png b/doc/salome/gui/GEOM/pics/cone1.png deleted file mode 100755 index f5a95922addd087c2a81a1cbddfce7f2c021e664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14640 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�CoEkC1n&RX9KSpdw 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 TI|h7>2qG(`C|M+7@aaDQHVLYo diff --git a/doc/salome/gui/GEOM/pics/cones.png b/doc/salome/gui/GEOM/pics/cones.png deleted file mode 100755 index 4c8108ce150bc09b0d564a0e27914fa27255be14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10676 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 C+~YO? diff --git a/doc/salome/gui/GEOM/pics/cylinder1.png b/doc/salome/gui/GEOM/pics/cylinder1.png deleted file mode 100755 index 71b619df8b8ba3f097d2d5dd93daaddd185925a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14719 zcma)jbzGG1w*4T|C@3Ngq6kPg(t?E2BOpD1ba$uHE!`j>jUXTl9U@&4(%s!NH2faU z_ug~QJ?Gqee}Bw}nPJ{%-sgSy+Iy|F_XI1-OWngJ#fCs2_ujq{e+Pk}yaW#yOmy&0 zGu;aK^91r%TvXZQ=KVr4YaaA1ehbE2ebe4o6>1JyETTIw&mW+~@?6F=_`vt;ssv^;-l&~q!!y*)< z&9F@iOuy#kWe;!c@9#Gc4-??M#+KA3t#VLcnLGYv)FTqqUA)`7UEYx}sM|cR$7Q$l zo&g)1p>R0`KQ1*8#lt)YIz>m((Emy!IgT-bHO8s}T4|?ZWSD6S`g6;-jwh`GLA z_Ha`@9X4d2C*`on6(Fi)Tm9g%!h z8PQT+yQOo-6743*t8;|u?=RG}F<5Exf!s6FHY#A$@V=I!fern`>Yfya&8_)u=b`^xiFO* z$*CV#G}o>lwWaP|rYnXYR}`82UU(2u=xefxc#dH$q&|dT@w553Im@4X>bhviVY9S) z&q|$X+Hq`#%W9f9doZZ5FuxExjP|91tj4WAG*r8jRcQ*#m4zpM0K z?;h`jWm>5+b@9Fp(;3jAgU7gBKIBh}2wl6c_)SCQVXV<~eVjCO-2t20+gh^jz2lpT z$u|nB>Xir1@~I8UYl1~{yKP@O`yw*@p|PeilZ{!Mla0b6yF#jFj*m|2Lb`KQmKa6~ zb|q^2x+{yuOn!esxktwHbw}U)C~eQTppVaemxzCHV z)whQ_+;3IC`K!b4M~Xar6K+O(eV|5c9J!mNvi07h-tIvw?RKt4nvdYxg^RrPyKg%C z69S$aB4+xT@rZ-eS^xB^uRDw(-# z?p&3#THS$E)vjQlwG`{%MGNgnzR`z2xvdedB58Ah>8jVQYtWnJ)_YCEHQ$m%`gNAR z5xSdh==cU1PuU*5Cp{pFvGUF)g@w5tT7U5oEyYK4iOQ#Tt%rM7JWWje)}g4PcDPZB zR%NaD3#0zjLG#_v&;i$`>)sM7`PEWLcFDG-+jb_z&B5Z8oism;78Qg~VDv--ugnU2XCLK#&{bSoy_ z$jP*H)L|nw$KRBHB~&~4rU{3{G0V6gcH&Htg9G-@1WxRc+v@L>lyHitgd+=$YDn+8 zH>(%>B$rJUGJJWoD`>`%R^8Oj;&olbzVSi=r|fd10O~(8=PA~MaU*A@A^9r(?ZJ~T zM>3alk#yDYF6JuBi|{~xp*N?ee5w4dcdBO^u6A4L^i~M!g{D{ zCxQKA@3uf3orMJ{%GEv59u(q}>4tj#3;V{Yml>;lchsu(@1E`c|@(V#D6!(neUE@}9g>*~tPG?eq1O*wocblvjuXyfhnHFbbM zebK=sC$-0An>8-ZSz?)f$GcJq)+ghG0iRoS4t6f6?+RT}K^i?p{MJQSI0f7|GfEP> zV-);!tD}E~C`_?4eGONlc;?&Jt65v~+tPg0RJ`Cygplxc-=@kwo7?=tLev9>f&x%F zVp5ak-wiS2qNAnsNlHsIJP!2_O|a%$`c~;loHo(^c*3k5*k$mu)nwUi2yCruoa6QSq7LtVL9#80RJ&DCH-(BIN_AXu zRz8DU10|k|3G#NXNjnSzI0uC!yel!aPLC!OLDtT)(A6O~t_uXli zC=#0&1td67PNh<|E4bCQZT)fcO=j+MrKu$bURLYXRSIv`U#V!Ca0Ib+gHXcT(1=e` z%*os(@_QI5Z2IlEh38Hm);>15ob<8R-<(+~hK=La=mcaHGK6%E9bEsKFn4GyMKeBT zHW@CCS8~me+Fe^8d^S?5laVgu{-MSxet9G;&ZJ_3?VQWLexTHouHRu{wk~DgI1ZwL zHnI$kr_mAFOXPJ=p{y?z9$vfd%u(7KZq`cEp1N*LNNKY5NN>0YQ7Kf;glSuMaCxUT z^=tR_X(6qo_pGkJe&t#0*;81}f5yU6^2V|vA+&qxvh5M+pVDCYyl33p+}R0nBw{Lp z7GHC7v+tn$Qc9p?v+L`8HzTC*p0r4mO{aH5U1OnH8}}+7wJcLh-Spc0qciwof5F^R z(ML4qKD)u@p2x8pnX>YbC6Azx&|xuIISe&AN>}|(zmZ5$h}#9Od1E8r!%ki)N#pv1 zP9|B#G@YRQNIbSeZ*E~7Vp%&k!s7RFQ8A-72g@g1B`26VmnU~oudnf`>c@yO+=Slr z7}uDZ!tny+y`1Un*O=!e%RfFdw#x8NVsjQ?6w&hEga$IG6ta1@MUGhN+Z6IL_lW+v zoIL5S-|6*or+nWA{@Xyp=}1WFe9AW#mm{}!BfB_!g05e79a^X&nAqSzXMEDwLA6F# zVKKom8)0kJnlP7PaDm*}j;On$(D5|J*lUF2%ebk$E0(njc2(#i^2vl4-KkA36vvVj9Xh2!RVbhO#h zNz9m?g-FdGOO7N(6~eST8TEssQ9|a%@Rg*u7;LV|)lOF$A02(|ohAmJ5krbywMn;W zP2ZE*kJ4})AQq;j1%vu^#h}L{jaxe7%0kZEMQyp(c=lI^uDcdTyhFu2msBv6&r8Om z1ISCakAdkkT{=zPLH%lRL=9wjzTfOih)M1(91e2R^P^TBD;M(a>~UF-`t+1~-UwV0 zT}kb(lvXP!9#iI5ahX+-M`yEKY_*wt8zMC|tIyUb9Re7}i@TKZFf%(o54=1Xrjh-V zvT*agk9`h+U1l*e=j-fcOmNJuok!`cp1>L7E`b9&tAiV!8Jr|OJ3`4F`P+NBRt(PE zr_or214TORHoaQU?%O{?tW4KbXf?RSnf)m&TS&XGPlG`n=%w2i?&*k#TwY$DuE23F zt9hwAkTIGw;iTMRDk`G`1L`-%_WXJkIWaEmQT&cuA9zxZiUnA26@}X@*Vj(QpV|Qd zKNkE^oDT-_@(wSon-q&yICrh0@sst~)?Lmfs_OCG@Kj5*j0Vz$TwGj!f7g56(N^t* ztoS0e81ZG8(P3}U*C8cp?D19a+8m{`=}b*QLj6O})_{9?Gi;aN<_mg)ubOlWcI#bJ z`S)K`YTTE!u5X=@dnm@Ktnys=;PJ=s-LEy?+GZp9Eh|kd_GjIO9pU??rlx94kFPI} z6#CPJLL(#b()b;JcGQt>RgoL^tv-{dYuUEoiSv_zW16_o^`#h%q=DUq60v@$)PO!h zEBez7>h$T+fXLZWq{u$*wz-6QHky_eiFnmEB|#`w z9pLS2hU@WzuO-QOcii3Ta~Y0$jx-@yCa+&xA8fC9$}Nm>44decp*mc0=8F8@ zJ&4;yUGEh6BEh2eI1RNQJzqrzpH#fz-PFc?-U%FPao0GZ9$W}|19=F6n6k%21rz5y zhm>zTODcZWot|_<5|q4Q!-!ywYG?t_v4Y*;osM~2>GmZr@bdNp@W>XzrT3U%WrcEM z^;MR_=!t@u&tNSr^@`pAPa>5(1L5CVPD=jxgsP)Vbrd#kSUl9?Z3)~xL!Fbp1Y$wh zEbj3n5C>$Y3C)@xKA{?tsR#3ATD0q;s5}QIHABg^`l?Iv8_E5*MDm!>GQ+;|FfzEZ zA~ffQ)-Qj&+%O5HIUvN0aXJVoh6#lk4sf70_i>tcJ7jKbY}6x0H9aa2WFSkk6XW)} zSfX1_RrT3ZR%9fd`nhxr{G{*xA%?lrm2QacvoL@`fREoi;O@21VYwyanHiczWP5&W zT4gcwY0zZ3GwRuG_OqC4q)21Ak>XA}Us5iBOJQcpZH=*@%}-g*JwVLX@lmP6lozsp z9$g8V={=(IJbsYjb^by!`+?7DU&>Jn1{ENoE@vwVu8YBR>*Hn5id0Ki2Sjd`R}yrb zdgs2{5=beq*m=W!CJ%@vfU4e9 z?wHYUny4fV_20jw;UGe~O6o^z`nc-z}e?K?`$tB?rr8x}WS`?ziF< zYgat>2^xGL&K&mi$rGPvQW5yV45`+QSMAV&)=0r#R6IdN-6?1LEO z+Ha+$ti}VWIl&A zo=B3$#>RCA{#xg~ei_!rUoi@TN!CKrRm1fkKYrYvt|9Qz7TM{BQfA-}G~Vp!@7CAI z9}zlCD_~~c%Nh0U8CW08cGVvxJKi27u(r0wl|&6qU~(dl*_vw-DH7Ib%Wj}#e%D~# zfOs4g6~$C-k7BuNwnU$C)9>;0>C^q=<6j@j@JUG23+JRTq3qQ(^SJ1!F?q5^hp}CJ z!W9!1+f(pJud8!CjwJFGWRFn!P49W_mFLdc-pP$)Y!hJV_DHy4wdt9=Kc9^X*njyz_j zI!G&+ebGJyVkYr-Q}M+rXy*O!lb_$F1*X3xi?_{K)Lb$#C~IrRPR<14d{3udujJJD zR9N?xLvcRuWR?$WH9t2HW~LEMCw+SR+J0+TygV`xzmlzR+%c)*(*J!$LxL2I3U0Yj z(9mi;II?qVY)$x+DwNj(0BS7TyGfg^JZ{(>yeQ@I^zSmrTG3_>oz;cr8o1*dwymHL z2{TNWQ5O|%9w%KzElZHd(RH+^hJpk0PDC^xR0s#OHc`Zf*OEu=h{isLQ~35YvQPC4 zS#C&_m=ATn_dmbv&SBJ&tLUueyn= zO4xWr!Sg2|qf{sJ#;l3*s%}_P2|+NXZ_PFDA-i-oG9k7xbxpYpQINK|I*4%7-H3yoV8-b>43JPbM-4b50Rn^mOy z@v@K5@UO3(q%4o#$vm{_VXt=3tkrMr>&~4FQOQ6o=1uTSn#%7TO^y3s#37KMuZXpf zI|~OLzAN$=;dW;%W+Ol89YXqTotU;n++CqJ8pbn;bm12MpN?|w91_)CGHmULwrw7B zZmkjMr2PUl-eu($z~tOp3TwEWuzOtd@9Yy;>{XBs_V%?74bg% zlK`QirM2_!xF8Ysa4BHbm;FVIexF=z6M;?5kp2)u>okAgLnKmzc;y(Tq5?8!U}**` z#MahUHc1doMdhuGjQ(nI(hsYdWY3|d^SJ|=&A%b9?!}BGZq2u%Uth+9HO)9rn#lL z5vrKH;Malo2kTw!f9l{4RQCC6(}@LrYWwvo_Ee8DXUMl_FY2v2naNzZ-&6|`JO8JA zf9T!2cWstCAN-W^Kk9?e?XRX-A0pyQu`n^4Ka_p9Tj{g_kopDgB#*0 z6H{2T&#TAvbw0m-iDx~Q9ISOTFVU`(?0L*gfr7E$%Q?X2c5HGd8U6cOf{=14EDd}* zf=VRaJO!sh*bg6#@td)1{3MH+Ui9ef6u-;<6Wl_?qv&Xhj)GFNw z2L}hItG!SgL^Jf^N-BSz!pqbvjOaraUFK@+jpLbMpWtxb5cw{4Pv9xrd#0(T>?}Wc zCl-sxB7|=2d@|!4lb8q`-Mi@M7dm8c+hN(Zct9@$+;t;XyUx%FFs3^cJAB)AZT4BAEfaYsdG8p%# z>Rk&Q1qTJ)`tzY}Vg?2@5TlBuM$hv_rM|$Fx4cO&O`k%psJ0YtyskDTDvV1UFD@=P zt)^eD_9iLm3IyPi{QRETy3ct5h0AM$6Vz)vB*dlQ;hH-;G^@bR@_>H&^l9Y5GfDja zphY=Et!ekCiD*2OT?)u?ABkbsEiQ*l4D{y6BtTA`rkuqaPD-@a8U22<{6oR{pAoSV zFF-OamyV?NbFV(n^^qpAd7^NMpT+T6Tls&)Qx9tYwy{y`8d>TrpswmRGI+Zp=GVS| z%p5zi(tzu9v{_VYH>T}uJLh>aSfE6Q+@6Tp6GV2T8+%{6>aD(bQS?VT^f9w^4huB{ zDqIU=tVorW$71}|n>Rt(#l->pJp)tLO?_Q4bQ5rEDoRSqU+wLOgh=>B^6TFd{ zO!14QJ|EO7jP7w7_09uM$f8|>Pne{6XSa(k!{GN9(c`_jIq3WMuTNKu4;I@zE_UER zWkG&}7zJPB(`TeV{#{S-WZK?gW5^#|x9HEGn@0+iD307*T{D4ul67mY+@4ShkL4*~ zT@wxNysd$Fc^Z{w04Oh4`5e~qv!x=P{0`jr8an2#k-Sf`6L^h!i5>X0OP1c^60`Yy z{)`Wtv%&XO_;HDvclujfeF67)P_c`gxogPnr{mS1%J+JyJv^-&tclhP_}A&_Qsl-^ z4i2zLmtz!!yDHK0lNbAab~*TtQbCCjy%rQ*hRqI_CjL5{WaISP-sNoeCotS8QH}+vLG4#p_ex=SM2# z$v+?_UZ)2;Bz+x#o2d!63ZoE+N5#0Wm?IrWE}E!P^!{6FL`7R$8=vIW=IFPS?91kl zs6Q+wh7N??O@vP8ef_QK@UwKS>STYJaPf!3EUA9(>D-(X0m9A~u+JFeiP`iUCDX3~ zKfqdhP7JOGF1c(X+sD}0M-Z7Z z4kCx**7NgKIvdQEf~v$-fcp5s|LBBqy*dLw%S3C|w}+o*p_vYyV?Q|T!4{od`ZCwd zG0Cuf8XbI$jMtLsy(X=EYA0i9{ZFBjX_AqH5NQ{D5p_kO+D^LEJV*XpiORtE{6%RN9xp$cL3xy6Y zghkz5^bjL;8cE|vU%E{EKQq>UyWHQ%?aGjkCUNCwbOhPw#KiUPw#QwQmF6=ucd5l+ z*s3=d6n3wX39oJBWf%>&%av$YM1=~gW_aEUII+rBjwUP z-CqbJ7PPEnFN;SfH1Mk!Af;JHY6Hv_D)WD z5gp5>i@!5pb6L-(?h~~pakyd^7DmU%xA&@Zn$FZ#>Nj>CM0s3!>kMZ};M^81e<%)0 zB99{}Vr$G8xGKs8@BG16oFDJBf^33=Nb|>kPDDVUv>50b+kG^D=xz|*@Nr96vqMQi zSc2e&7LxkX_EWB03V*KqX;k1D*j*xrBetlhC{Q^uAfY@qI~x!@!UZ{k_KPXR-D~1C zV)G9cF6Q#-!P37RuUra`AuzNA z_nT3-XX<#Rgh00eP=-ftH9-FrtCfACy_S3P=8Z0}IOQ|e2(2I~yw*mbHV}tP%4Z16 z4Nwa4c`dqRCNTTih$P$v;M>BaAl`JDD_4;LH-7@|OtrITzDJ+I>rF{;E%Xskpj+1A zP&>8u>ReUW`@W{grgD}2?jgJ- z3s}`ady^ZgNBU1F5PMwo!NnsYzk-}-G5I4nAe?knqvO;&a)8|$R?2HNnP{GJm~7qA zPZ2TpOfsx6kK>5}K5wbjhR4S3_Si^%b{wl&kqET z)&|!0A}`YhS;NtF^+v=XxpHam8MeNBv8l*#!54cJsp)2;?%eR0S>x`j4GvW_tg`eS?%WheQ0kgUkuOzaozl%(^K#bdzev( zGVmh{3jw+k)-v4Fy{;|>|B(gT%GQ}77_zdnYizI3-F(x*ra2g$9{(qwKGJ^g)Dc0E z4a5P&p}y%^M+9Y$K}9{X&^L{- zA^7Py{m{nK?F3~W@Ro>~2I|)VY!>Tmm%Uyi-;@$Seo!m(K>HW^yfaz(?CH}x3JMBL zk8yzcBcX9!e|D6}W&02YgVE5@aav#3iw$h;?G04hE&-Ax9~GZOhQ&+W9p8h>QmV85 zHinL`AwyWdb_o&m;F+CllkIT(2i79sLV8r56?v?6d3~R=0(eGafwR#}`_a4Gu@;6- zlv=wppO4)stsxML4ZE94_NEhSf%Kt`6%e+!Ye!6nZc3J5^13FM=J(#hkfS`|_Q~I^ zo-P(M60H08fz9KWe@rvq{Ra32&b*>Q(h7fp^Z%;YS{SO5mmXJI<*C3WtXY*05`5Df zM_n_hjd>FN7dgk1UjmA)t`1A=<*#4AsvQO-Z}A@p3;AdKbCSSCgBGKF7>&y#-0(=2 z^028xq@18V!2tHal79Z%k6z-T%}S7Gu`;#z#%CW!y7Iu3<7Hq|C!kN0S=Wm?IQ&pj zkK7e{X}c&MwWU$#WNFIXvtx(DJE2Vok^`v?kX6MxO|u8rfYRJ{G=7*4KON(y{UB?~ z(`We~h~}CHfpEa)W^=p_g*2Wn;!xswk^B5JXdnCNcwfcMHn!3Ao3V0^*kTIP zz-<0eF#OVH9s;6=n&zb+K)%iXylBT^ua^-(Y? zPevv)#-dFzyn%3gl5IQ&dKOPk$|NHx1SCN}>rW$L3->N1?uh|DBjFc}#B9w@)d$ox(0~9A~By0?x5D?8`8k1y8ZA=o};Kr0>hyO zM7^?Gc__nwcUJ$Ir)tr@^Vx?k>{@-oPkul^urxG<@q8Xz)JlygYkAuCpbnU{S!xVF zeaUahZ`KGfV!%fUfN~Zu_#UX~ip_WXG}sWY^6;VEZOiCk7h`Yt>&}`>8sCWl**d2k zMU}Xsu@VlKecb>&D%jVvoyhZe_IrLdO^25P>+u!&I$nt9kl^6p>A8dJr)XO5^R8d2 zB=<3V{$rK{_|h*Ruet&G>6>ryEz|h6j&OTl3X=nj^oWT_tU6+fg#bt&ASf2L)^KjE zDYc^v?vX;3P(W5Gw~Xl4JYGodUM(=KNhCU5B7;4xu$t6}39RNhESXDQ4HhmrFQ znO?JqYL5dVk~vvt)JJ+NLZY5YrFM6OlXZY|AmMkQ2gzI)$d6)8ILm+?^^Y%Eg1`ST zqa--aO<(JF{)^j_1mLj*qwD~{Sf6bWxE<3lA1h`a;h6O}l53nj^>0p_ z`R0d}>ZN0A8eWJ^70?Dnc?Ae~jopfL&;~ch zJjI?OEzECSdlm(C3a_fU=O0OA0=AmUXCLry3*LY4X~dX=;h+Dsi}JF2EqI3E3OXKz zXEvN0v;=f=z3e*Bh?bQcbw1alU~^FPj}Dst)L`a$xsP+ z;riSbzc_^q_L+n8rn#H3gY(KUSPxVcWb|x{%O=hU$8ciyPrzSVo{EnKw`aP>o`k~y z6STx=xw-$?7PFRu7@&9Wj0?0ut(j=-ET>#UH5va-4FtM&#Ks{5kyuf=&Y&V?XBsYW zXO+@_-n&(Wq_lPUVnI)1a6Gxi(pMS9*sr<0(44j5wRD^e6kEhza#Lz&dcfwufU6`ZDffBK4oP$7+!ASkK-97<8R5fKNyT zoRB*ll2zXOEf}uzA2HS^D~t3EO2IY7FHy2$AqWl))$d+@kzXjSp+U-N-1pUSYxGq+ zCQ`G?O3!22<-gRa<2eqy&Co4+nQiLt?_Xv)#goiy z-Cv-TxBfd56{H7n`uVZT9}~_xEfY9CINSv^6B85j*4y%n#9m9W2E#VjhvNxJ|4nA{ z_uVWjDID%$-Q*T{E6sZDX@mOp0r-l1KktR`CXa&PHJPpF1Jk}hi7tYv5O7Je?4p5i zjH+BS#H$-0SF3f}*rXp2j`q;fBBu~=y88u?L%vN5& z^I!H5F6cuJ4GpPPnh`#EHid)2QSKT1uOg2{+snj+J~K0uuiMbToth)IBWj0Hws~gi zdiDdN9+a$GRCEu%MF-t^OTt{h5a~sh#dN|y=bd3kDM_3)0K)Z3qB;?Z8707n{&)WP zfAum{7>Lf_$4>G1;m64Yqn2b%ms9)Ydq|Vp*fGZ7XVpjR|BtQ6;)fX$_oxVAq&xUx zm~`yy?9Usevz1wnmrmn))|f4b4_yxHN~Yr zZF~G1=VxJE7mTyUTfCa;H)n1j5!85H@q-eMik9xa%LlJyWL>Gm$SY*Xus%(_P1bT` zyzCC+iq5=mIUh@~E`siZ#Y8Py_8`Ezl*{$m+C-zL0Dsz4>24t#gCU;P+2KlWB0DOG zM2LrnN20JNKN#J2PPPL5j(WCjG%zGPGbkH)IO!|!Uk;l5v!bM{UfDE`xDG1!RB-0s zt>+p&dUo2wNLs<518y@=Ur7SaC0mWMd`E*)RO}0L1ZCZJ^w_t+$}V<#!*`5XkcLlPv`ci(<{jgd&x0eVes` zjE=dvxdJ9IrBGqq&p%rV<{J>~TfwkL;emmHMJelF>yh)Lo>dWf=^i0K_(6cQ@LQ?~ zq;v~HWR$M`2`=UEx;(wpLwy9BN(^(i1cF<}#3Uc5QR2+u`qFiiH-AqV7%ZH)0aF6n z`W;~_ajH6c+P(a=vWd+=gP^z^_3^qIw+MKgPvre7jueGHdMYW!wiT}KQMJoy)Wn?v zrYKmhgm>S)aJK>6U}?E4M&6K4KJ^Pw;Sncw&O5815`O*qwYt`oFSdg+^^ch$xTk^_ z+ZBK#lE1WRejpDyajvEE0bMVF&>y@5pdcjrr>vgd|A4ppxCniv#BC3C3W=kI}tIb5iYaFk0-$GEYYq7Cd_by zrt{+BqSlGwbUp~&fcq5Pu`iT>!bOLGnSEXG0++(=f_MlJbYdZS_3?H= z=U^Gc9`#?o4loxaWo5&b#QO&7IGwnifutDDm7_RXQMvzRc;l9|u{NAOR1iM+8rt~w z?095YfgQBKIu@c@o2XVR283J3#>Uuh-HoQpLmY_6%_S$W^B}j>19Y=0EY3J!t}BEv zV&t8_raWSRrbJ#@Q`xVnM9g@@(+sNNI}KJBZIx8G-rHpzU_SYCbhOxdvtpj_a!A(x z^wGdzleaf=XQrcJXJ#zaZmqVv=Wo`Zi#t)dVNtw`yL*MTwWNUlhYz>?kK3(-=E*Jf zfdAuU$OS7jBAikvnb)X66gY_oNMyS%*LRn$4;}1$ou|(PO&4kE>+9dh%NxyJxed?4^0=r^XXVu5SI~nnV)my}XYF!iGVmzES2^1)gfwvTu<5f$Gl$hBhjsUh zY?s<47~q;!79^oW%(O$k=x5(_T(j&KRJtj(M7yWZl_|$mY)1zb>b!u5w$K{L z>2bQh$n#dIdx}R5s?uGNPZ)li4?DgYLuamHr$Y`a1d;Q8`IxcbXH<^hByLsYQM!)H zM%(^V$H-PGe*$2A=dX>VT=nJ`G7S7+%>@bysC(hL8xi0}mV1T10L{lt^t331rl7xi zlX@PrMaeiwI9jz1SU%QpPpJ|2z1nMHEnr#}5vdn+o-=Efdoeyvz|azHoehq*MSQo2 z3oo7vY0E*OGY$X+l4d~r!T&xn^I!FcAr8lL1xZNlCvbLlzM^3T8NWolSA<8y!a^$U z6M;#blGU}XwRHo3sroQj%~cZ07w4NbQE1t^L$UgmUKB$D9U~_7^mFrS6hRJM`rPBN zkC9nxa=kCn^V~+-jf%rd3axi5!Egaz4EOXlp6Ktng+R07aI@lj2FUq-STzd6dXZ~w zK>-+ZbD3!E^TOR7GQ=@eWscaug@AeGk9SmtEUip{HTwu=wP56(;W8oiZc(n2JYx)E zbN%6A$Q|d+mBI(q;%9L>)hJrEW($WIBosWI_4jud4RMHA)vMiRqAMf;Q@}XH;k{t5 z2D6maE@zLuuN`qZw_CJplEbiFXkBYEC&VzLnm+x!Jps3O3<;&QsEWS5J{4cpP~ONf z_Q!$R4|T#OutJ^`m~KP}qSmO$U_v7ZpHJI81HKb|LdZj_h!!7?f%M5+n$ew>6`%<_ z$zlL446}MuOl(DwFX(#O%d&;|S&I`MBfizy?@MTB?>4i#8n(YhkAY&)f1QtB$C45s8-#d7PMY0D~j17}kLA!X$F>AoWu@!CgoGxJoPAI0# z4@*bp)f6O6m5D*fs0e;+USuG5arw@WF5FK20ZN|`X02~FL+|EHajlchg? z4&Aea?egOvPzpzlANBSR!e8ffg1Yb2Y)FUG`)D0f=opcU^bZ+>*!W0Q{R zdYzGEjw~U4={#rih`!LS&O7&2Hx(2pVpQKO194sa{83;fuGy?v0 diff --git a/doc/salome/gui/GEOM/pics/cylinder2.png b/doc/salome/gui/GEOM/pics/cylinder2.png deleted file mode 100755 index ee6ed12e614b00840439cf70a41f58bee0e0eea9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13539 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 XWU~S)a}$B?6OfXex@@hqdFcNEgqMG{ diff --git a/doc/salome/gui/GEOM/pics/dialog.png b/doc/salome/gui/GEOM/pics/dialog.png deleted file mode 100755 index 63f984b751d40f27a552e768a767a6210bfd115c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9626 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 O6k6)~YG@VPH~$BJ@fCjn diff --git a/doc/salome/gui/GEOM/pics/disp_mode2sn.png b/doc/salome/gui/GEOM/pics/disp_mode2sn.png deleted file mode 100755 index 36223273990837b3600ae125b3b4b76b4886583f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20528 zcmc$GWmuE%`!^vHfHz2m;F^SaOL%+Gn=`)Hu2MMuL%LqbAA_wt3h5eW(DKg3TN z6&dlD)gxXA3CRPJm+Gn}0bjRUbjx_PYM-15kIe5dkozf=)G%48e5duaJ2|-X{4S;OObXY^&fh$!-_}H>sbwf( z{4Ujv2!TJ{1@aGwqvt$PkMB}FA?FbaS9!`xWkY=<;-?DLs|R;=ZmNOF!mY*ccFp535 zrQID#)}BOMk`wIySeA~geTO)vP`LQnfCYWS5E=F_If}RL8t&mL=v!1a7WY$wyH+V5 z$2`8fMWqHF*DOWi4@7rf(!P2yArOVGpvVnAhF&Y@^)_;ZTbJJLXk-qU>8sTs?m|A| zE)Hwsjhe%seau)C!9NftDo{bQ6Up4$?^BiMN@Yn` zK|lKUGCg|-8d5;h^=RjRpA`PS(DW4QUjT9Mi3GX->~jpa)*{lQdGT`Jr8lHvZ={8R zDv4PQoS_-C{D7eT;O-VtC^BM@0rqxaDB;Z5Q@B9o!313tT7<5zF^I_C1%xQ{JSoxf zCDQPJwoW7D_$k*5Wcx4E_xs?xgo}~T%%=g;%$3+_Ze>}Y(i;&)(TIl)%>QzrvBs@r7$RnRkH zZlG^OJXig{1;3HwjROB&4&q7w7ex>urM9NN5gYyA6a!K44@tVp+qeH!o!D;tJJIg_ z|2?sWRh)~FO7p*OkNv^F53Rs|dzLiZTD|`C+>Q>JUms0IlOHXZ>M^)VQjJ?l>766w z?aUKmaLl<`3k+T;PHQiGh+0YW@GXWpV9V5GH37ei zpr>n=1tVk>QLVL9JVNcx?M`KC1@AXlV%^HMcN#K9NmBX8!J_B~ukxa5FJt>x`!mOB zp<>vRq1KSq?cv<5^Uh>)RPzNMb!RqqUyTf`6&bA0P5vV3Pd+W+7#vpiE!m@5{t36C zLw5o$>>!exbM3PZeIfcrPeO2>a!iC^>dB;wm=$=o(@elQ7>rPNHes6Rt&A=YG1Q!I}f&|fR9cQHm1;0irrL;VxF-BfrS`lTe z@ftNMw%)H z300U3y^@#1G_2Hes+WIATSJ9EmL-S7t_F^Iwh!f3`S+F%`5-2cV!>Cb$FSNf-`#b) z>SvSp3Tde+QdE0DF`>-ZLWDMBzN~y3B9iAe%me6Bk!s|?g;q&IrW(Qajxw?-m%Jk^ zek*VeZ-ngN_dK2{PcTI4n?t#*6OV1b|2b#n-@|1CENAeoJYxbF-#G zmmQGg^$g4a+e}1tVfv;|@xmR~VTgXn;qWd3u^xgZY5> zd59VF6RU&+i8HGG8?vu#!PGBETuq)%Zb%y!3~GwQT<+?#Lh2hjSj_B~dNP?0yBaMr zG$uWjuc68<=IN0U<}(`|-V|$2PL(*<(gR7Q^S|W@cZr6ZMRe}$$~YTq269m4HszNF z6|cDP>(|(jDD~*>Et+-e-eQ_cbgS_g|93|m-gNyjt)Z*Z=B39++C>^4KQk8JpEkN6 z9+o~Y>~Yj%mPb3G`{25)Obr2z9}gkO#~*-nra(rLIJ1wC1+wXsD*o{x3)mpSM_|Q# zQ;J66oRG`=oB8*)d>v{2dzZm72JbR8;p}3wpWsv{)kRw;r!}HtDN*G7yELa0(4tt7 zkw5-33RAg%3@8)i%3DA%B3x?oCSr?B9-F_;Lw@bb3i3T|ZOGn{01LJH?&C2V2xm4p zrnl9^-YnJEn4zEBf9^*f(DS?Rno`0o`ZhTsep?`;Mgh%C8zS@X%@H!0ky@nt@akc> zo5n3_$1a3Wf_uDQ%p}_;s{;vrZRX#{TmGbNbboF-WV**s4tg>i*JsdaLXfgcs$E(zNfr9tSf47vCFBg?B_+lGFn_>p&X*8pP ztrTK9)P$YLDulG*r6dwuWgb9mGn?GauK*H|OgpT!!u9Y|ZC*s0S*P=>!~ z^tBW!W|&+A)@A#>7h4xGY?ag%_iHW77MHA3RwIq`UfG`B;+_+ZkAJXp1^NDz8ufG>8O_Za(JlqYlce&4EAfJrxX)~R(L_O z`5<5uuFMj#wz4(4i~?XO#$(F`m2RqkkKlh6?;Bld>u#?VL3OZRfPK9V5`{$@xfs$7 zdXhN9^&Ce>FPNB<+sVt~1l!HLfxt9b2UiDb7)(y-U#WTaH0%T`(WYUey_H~QPBHcDe;p8V;{#8!Lzh%!} z5zY1sq7|Ef@sOmpt6W4EO8ow=_J;Gz>_bF{IIJ&Oza5phjN1fr+kY2X)gNGT5%Iwd ze+AotdE=LJ3f_xImJg}>QUXTVT7w*1Mngsv~NSR8z z{&o>zS7jHM*5Od@GJC(i&8F#SsGp?bNNq!X`#l%}g!OfQBtwdsni>EfYZw2v%`Mx% z>m)Zv>0+fCKk3vGA3;i^J&2vW8kl;uhPbNh{2JZybzDuDEaw^e%I{QV)L#_)*j--(Sa(P=qd4^3Lh4BiJRca{;$H8< z-{BkKux}mjHMd?OUGVK6cJhZvg9usG6phhyKA-vbuZ2zd`YR}Pu+wTLp1HSE4rMa> zm2X}6^;uKN!sWg4F-k<2sGC8Q#T%F8m1)42dZTSusE_?;ZpABoVYa!AL&`X_7m1{i zi-&&Vr+p?LU#x#0Y%mu@Xt_)XPfS1jsV&%g|K_o}?|tD7eS_;97mK||(@f)?X5%dx zlo5B+t@Yo!b=3gbSLEK+R>1^6D6&^m=TKND`bwd;Se|CQ(%1$AJ`G)19xIyjNp{Y2 zSrrR@XZM@_hE5nXRVl^*;y*k769^Z2l%oL~+(2}N*r1lw$@kR2W8E05X74o-TC#DF z!>0$yH`?PVDPVo(+6_Lk3t_d5K(L7x%bt&c$Xx0O$U=mLQ#i9Jp(ai7yHPGoJ87ui zmS(~1gk84(2A*j2Q(@UQQR8`F$M#jFelvy~NyZMcCoFA2SMjZZ5YgSui@(8l@~#(h zK8>ZvLu&qvTKSk!pyli<=wW@PVAW7EbU?ZhEX(u+^eyv8ra!m zS^(RyN#v@bke7bb%({XibE-6`@bO9>QVaicR{QISQTCNfBYDb0M4f5>v)!1jAE#V% zc$p&kTm2yI@@MdDZ(}2%Y>9D23E2bF2>{Tpap*iGntgQ8Hdg}(XTyT|W?fJMEMbTSE|(=IiJL4e$l!6r5%D&O>YNhXUEkR_yRU&#B$32)D~iaTl9O4?Y=_u7Ns zx=Jz8meKa^2uuV%yRsn1n_pZGAg2`g%S`75QHgX(BrnGB-+lAzsZ-+%+SU+t$6maP zokU|VJ>`=7GjVA@Ke6wFIJzMpY2Rc7EF;A=e#E@p9F zj^lulJ;v##E+y&^pC4GIQ|R6fIY}%V->+PmpP%yY|0w)pm|L2V8Ih5~gk~`UgwM(` zb>CWnmiKWsw|3|4jZx#{SPgi^rL!B?cV8y(EUL3L$*Kpx-UJ=4Q*AnQNB*Yd%vHxqF%Bd)2AF0rFZ` z_LJLQ`Spz-z4OTkUtxXgh(8QKLB-8XGC?$UkmfN=Bl?$}5YGp8$sS z&XC`dhb8sszVr78mtb96YyK!Hk&(4s(_O`*1>@Pn{K%FM-usAN0#QQeErm~CLQcO2 zBrwNA;uH6G@u7_aNmBg40_H;sbYP4~E)tW=7~H3USkPZ!NzbYr5Xx>@hXh~4e%rt>Q1}pA=5y>AnA50DVRP#Zc zB?vKS{zps*?`(^2nuMkQaVBLcFu z5F+l|IwCbzZ5!o@+Zzri&99s4Vu+q+MoH1)$YN|m?OXuV!_4g{#S$~@QHg~62QKi2`i=V zK+QWP;T{`2S2y6pQduSVBsz*u{`6Z%pR>r}OP6km-tEFk#a)OSdzNWxX*}y|K$slJ zQ5dEn5+Qx_s}HSfUX=aO?`7}ulU?ZYmhgSo*o;8~piuXKI67#eFS;VA@YwJuP7@k% z&&&!!VfrKVAR>{qX!7}Vp3k?0%hHQxv6!?EE;V0vt9(fX4qwR})u^7}%wvP=vtFd1 zIPlfrrjifFbrUN!tMtrmwke+!ZNM5#E>EFnbI;}VIKr~H@&5k4a0?`W*^II|fZ^Kr z2R@X1L;tZIaE|4lNv<4RGWw~$jglpnr#R4S)&dRC%jLBD<-gyTswK`O(k*T> z>^^nCDO|Kt8WkxpMEF&6I(||%1k0O%rS)g8pbkSKmn+<{gdhIgw(tLV1#Z8^+6@Fb zB$3keFG0@ne`$-nV10{4sT~UkdAu5(3bTLRdTqEc|cdQ#8?yms+Vg3TxcF%P0rntEueuZ?5odFMd%Bk z^qo1GlbOca1~&Hy3~t*Te{C%Dv!nBA!_ zUBG^Rn6Mpw((o+h&&3i(A5Vl^a;C}E(xh>EMZ$L|Uc`?Qy5#y5UM1Mu@)s-6VT;fa z+PNU$J|DEcgXZcMlgYt!PKWlU(Co6zo@)ws^s*+|`?nAHoc3{hSWWD4JPI)BR3iyd5Q>C9(6n1ffwB z`S6y}4Vf0P{C#}~iGkOC!Nr1QXhOmEkYu$gFV|cH_!ZN#u0>$(qTWDPwb9qv-2TvH zWy5HrFkxfQkg4O&+8=chNa(!opP18(ohJr`M??M`M97gtCubp-W#pfLk$dN@`z!3Q zwUcJR3}iMQ+182P!a>?a2BmYOd5#N=WIjCL6vKRU1kpci!R@pb9ey=Bx*EpP zub%P7Nb%+p(aDpkl?Ai#+CqQwS=7b0rzyDo+#F5=9E58F zv4h%7F8QCQ@|(?fE%)#@hI^_S_ZX=+jYx&quCF&w zx%R*}7u?ndrY;swpqqKE%X8Zr;Gbh}tS`^!+m#MNdNMR>(1^dsvD_*465!2DR|nip zqoKxa?~aoM{6l?tt1l}hyheCU2BtC(5WmXgId%}H6==^isoRBO+D&c&k>n2q9jHLQ z_%+?$MI|~4*ssz6O=oRrpJ{ZkeYkA=-U`F)b2>i{-SbpNyJKFe zc+dCx;%@QtQ`j#UOQ7hKhcC03UjlvUT>VcgKLxm?96V&+G_+C8_WS+;6-bPVmuV}I zZrLku6m@6KU<)cuzhG*Ljq-84Mm&fcTOv}jvpnuDriXpbDIwc}mh1on@XYOtxi7yk zZbNdOj#9s$PM5+eY|eK^q;E6T8CvHL^;vk&={W&#Cl#1sGwV-?Wc+Y)?Y^7EeLgMl z^`a`fF?VDbYv3hPW_}@$Z~kzFLHab$80?6h{Kr$vU<_6oYVY2)O6qUjP}^5SO8eW) zZ`nI}NZSQ4t(1)c?0PfP$e5Nvq<<-J=p~^)pZyS>qdvhe?tVSGd|FDO*G-6oUWOkR z%nsLBCI57a%dZN)xzZH0=u}TlI|6$D^6cP9O;3M+HKl8I?E!Um|835lJEC`#zOST< zQ4X?HA?lWnV`sg~#z4{;v$eBQo<*)k^@e|0XfAW)Y-Y!6K9;Y}Z4~|VWy@9`ypZLd zRdn{Nfaz{O|HO7DtD!4l=dI#?nu#7{A0Ld!7&T^_qBTF12pzhe&AN4Js%* zPn3xHN_l=<>REcZ>|*jjy$h<^;N`XbnT9DuP<8xfe1*hdFDx` z2dDkM-ySeBAiQEHCsIY;W_2g?w^=h`=m}H0Q9fI{8&mE$VPeG_C9*sZ{l25q@8qkO zk8ujCeLDVhP5)ucGHU+Y$>f#JBS?=!0rQmOFY<+Is(3Q6P42~-caG-TFq5{d==R}F zP_8Odc_{xwcY6X5Ar)V7Su5fDNjC#)YvkBNgE zi|xQ}gAA?sNfuCbW80gyWu|lwsYDvXKZ&ABvuCN>jHMc268t#fBDlbh#q7HL%)$;iaE=xM$Si|$M&Ou3XEjDBSnMhyBylKRP%v%>9PSn%csdHkAxVXLAS4VHvPxs z9wv=1h3HK{&wZS)hdpwl7bz}llPBUV*F}=Uk#atZ-<`OGt+5kw%y#=LfAMQBFz}ON zn5CxoJ!wJ2*Qt$RuNOI}>vD5HgVBV7Q8U*c+91b3t((EmkGj!ivqfkU7S2TSWE%Zs zbfeWqveo7Ox$7#6|8@Dh3%lDp+*eg&m40w3Id_du_YSo3|9ln`>J|^DV>C{7>}VyK z2r(9oV%_90yY-s?e5EzOD_r1r9@|I4!DjLCDouX^Xa2y$)#eWI$`hyROwP0!lThfg zzTu}n=ibX{bD5*o2I+RaC%9qPBRiERl>SMFw{xrvKgCa+6vL35lCG&fx5}l~cs49?{UmpLa}6C@c7{ zVRmzbJ%oq8`)khIL!GI!^TcRv!Gc+Ur+KNCwEgnNm$yY`T3&Uc#rK8KEqpU+)uB!{ zDCOj;ZEikIFy2$<^k%JLV1@j}g8bspm#G}6*Fc&*AbYIs_g%C=OmxL(9efzYX{xK_ zC2g=Bvg!0fyL4H@m2hQuLI>P>Tm$IcKp+Pl% zLDOcwY$JxuV21xSd-P#LLDC#l%nFf(^(S04QAcAp&iz+340&Z;{p|dVXFFdp^6$}W z82))|&{i8+#H3-fd*70jW-X(UKdw!X-(LrquVMJ?)%?)(NeU5R!87UTOLNU1ZO1H( z^Hm#Qb_a-<`j$M#bjoxpL%59*m)J|@WEfKF)auS;vUxL|q)oZNZ(m#WD>iKU0CQ`o zPQ@_aY4m%cm09cS4F2g1_m977ZrP2Cj+2;IYZ$T&1(nBVP>_VgGjDG#(~61#9NedC z=WFlaFN0gJH_k)GnKl9?#e*-Xu!SJg5jPr?u8) z?wU#O{tdQv7XYIr5|F4)=Y>yXGam$o4A8mb;S)Yr1~$Iqyf*TAoeD)Y9DYNjHc|Wq zm`2tgiK}btMJ9?u#=`OK@>V3?YTJfg! zHhb%y?WdMp)F9@e|Lp}Bzc(9DI+5vPaB0*U)juAN{`3fw>}-0jRAG7#4+@@!8N8zf zco_R6^dOmC44EGzH4EcRRrSv-YW3-6A3-o%k%Z9L%i`0;C@KI5Y>H+~8(#l3<~)zb zZ*w?GHBwK~RO~!%ThI!d?m|v=>M=-vPQ&OizOkJiy2*K_{JIq~u?TPTq!|Yt?!;hsS zLjpo4xux&^ndVbOAxDsun(R9%awaxRJDKbV?1Ndk+%Wd9msqBBR4siLz{tCIm?dWQ zv$KqDiaZ-}>7arcixnkRuI})+^idQ6qcmwB<=@Q10|}iWwv6%Ai$bcwRd@rlA#sJ` z!sbp9KL+?s?~qFiJQsspTy~Vdw(R$Kt)iDXHT5-Xe_vO8&R02%t=pYZy2MYO=Nu9X zYR6{~xT#!r@lRinskcR4BjI$#qEhEy-O&TI$7`6gzsU<6uRZi{;+TAQ6#iB`%6@(+ z5TyORF7^ykV?RH=Q>S$C8n$`Hmv;h#dFhvjrkfbZ_QNtoOy^**nSg(+pcwz=MBJk; z10vqF3H6f9FwzMb@IASfSU^qtd#qkD%yh!niftj;P|wPa4P`5ufJ(wMD7Nut|2iK$ zKY#F;XSge*J=xRi$?fn(KB1}KVFP97+xNsR^~P&icNsPz0;0c zjOn+%P=6Fn_Z)9->mBU}5Hn8^zsOXLGZTo$7p}o#a6)oJy(08@=HUM6>f}KdH2fjya_em^=$)UF*)y* zKFbT-Z`peo&EyI=eLec=x*mHs+MZRSNB8Ddph*0$uNi$4AG(ID6jx~g==9d1?@-Mv zU;M_oL3Eeb2zl7nd5it9BnbRnWHDq3i?!MOMOubCq?|4fUSz0~|9ZoQ&O~R%ay}2o z=aut0iL%Sw!3!Vl1$QTz-QfC{iKgcJF9Np~J$lz}bItE7zuOq7 z6}aS>n(Feuk3|yk(#npwo-Q8_%jdI`{5yI=Ak@Yms-3gZU0sxMWYyBS10#bOs_-_Z zQW+UYhV~c_di=b@!uEr0U&~;{dR|3~6t9CMC)84kk%ZHGju5-ytyhqu%dtXpT{FQUC>8ynYOqbLlePlI0# zacQnr)ZD%r%^Mpj7oHuY55gm5t3rFWxV7}a)ejwsl)G-#E^y=K*ytttx{|xsQSwYT zW#}jG{y10^4N=H62CMSM!v!l`UvnGbygCog#gWKDY4fW!UsHo(p?)tAJt22i4!*)f z)QjG&cR8+2*QDN<>JSTFI}UhcL~V3KZZ;!xoiBv%+MV{*OD^0F+M>&c6KVwUP^wh^ zH&sr=DI4g!4I<-1tM&9r3#J-VJ7@$s0$}Q^t28fd_FGCQ-~4DY9*+E#4;7&Ak-SM1p{f@X1M1iidQs;RkmS5ZuW2cAMtRm9w9=Lh%> zSbdH**e+9(X7V!s7ey!+u z#72^GGRFyA}Dc3S@G%ILkD=)uZ|gw@^OhdhPhIUojTaA;yqy@hOG9h|W-_ z>EzUFxhK`m*B6=t1g~^Yz!`^`G-&_^kP}&2AFVy=&{sx~cS%lJPYjGIhs;fGiFW_a z5p@<>5cSy)fTNWzTa__ZaUECVr5H(L1n#60vn8e4v-mQntBQLDmEbvdE5VCygP1oP4jB7@w_vDYmgAd zJ>QLt$Ym+{;7A^tv+S^cu-bIB`1uU(%r?-*#9UW0q@(RPSr_4Wt7m9#5^3yxk24@U zIcauR*a)o9=b;rJF4b2VZxed9tK7WsC{U3@-sV`dJ+ktBa1+-MVQ03JO8#5o{=Cwyb=gli(Kg& zTEI5m9+o-Y?q5Eb93PGt4ekW-U`XF7<1{ zSYi^8sV2?nqs|fODt^oPe(vsIg^EcuZ1})iT{HY)!kc0gI*(MJkZl6Q9mucQLSx%T z>2Vpvh8G!P6kTfn#3s4u1T_0wMMiB&EcGnMDk?~DZXY}-?F_fBKr4HtW&x_Vm&{ue zSA+MDI<9GgF@QE(h*@-6f{Q(4I)DEJXGqP`=3P$O z7|0@f?lJog72_4BKZ!J^(w{@hX4!7;rMwrEA#K<>Zblx;f%i2Q&0dZO(uN9SKaDDv`;SB{Bw zXyum`TN>XmS*yA%Em^Un09TnjPs(6uxXw`yjvj?evJdf~Dcb#pu?!GHY;kC4LfWko z?^+Ssf?T=GxYGF%!jDRwydI&P&x0>bl6g*D(8Tm*`2ha7(DBE0@Pxz4d z<&K6g)dK7D3ZxD~u?X$NlBO{4sGs+4*>*QWHq83(I;Ve^*P?3wYl&jV7FS^_m39+c zvTypyc<_@7DB3S}+oJant#0GaYHX-8zJKcC*)_%2o5*Hdfg@(sdNy6};Oe~nrbaeR z!L^YaBE61ZA~jG!8^F9w}aBslky$=A%Y-{H%5 z`~Xfjr%bp&yZVgSBILGf({dvz9X$i-Hw7rhIW*!;f&rY$aW!qYO&g1!&~xm;WXA9r z``lOOZ!mg^7}ZX}52Ta#)?h2I$>EH51w~;q?;qfD%Ug4m=2akON1an<>UXG6`W?)( z*tVO|#WjA04G&HSH3uKX&|ILdyfUUvUw}y+WqXV1T~M3V?5e@X4WIPnv*8k$Aclr-*Yn&} z%xX`f@ob^vAW8lnREeiMX!+#v@z6sCEl;0CrNF;uieT;})+3p%;7BRS+1)qiAz!YT zgRQD@gNNO7qHrBjp*&Fy8+V3E^T{%&r0)486}JSj#PYfH``9=W;6qsPwZi*^j$aKH zwQfqE5=ZkPbXofIbjg^xDP4mS8HV>mRltUXwl{n0;R>-V24}S#KWZ& zODBKv$Jje^-HsrNDL$%cU*W=5Q)^|ns?JNSXY!1#9ACT(rL`z;W_Y0}g z!exw2RGpE7ZqAH9e!(k_)_C52jl!Y~B1UnV8WPTg!||crxfa*?FV38Az9c1T-CiJU z^*avdD)q0_AL@J209b5BVY7HnSMW{eLto5Q(97DMR!i(R5WPgCK#l!~fDpT@{!@+L zP<==-BgjBBVVL}2^G^MjkxalneuRj&lc{mxn3>Pl=YJ=t01XfMWP;cVosxdc!-Nx_ z@WFcslVgteTU%eOGz9}_QfL515ORNn7}M9uw2+fyOo?-D=(W)LFqXy$CV17!ofAkb zOG7Hn-F)n-nM}bie%~r`yLl${G@?OGo=aWN(f5l-WB+Y2SL&uRtMpI)$##!~9u&xX z6_xVPEN5N~TgkUxPR-JZmGJDBx11?A1gNZ~2eSKC z_4bkb5*%Sh^=nMypsyH`&g)%6@O}c%HNM>rJXYNg^H0=#aGXU!lvXq<#7yU_;&cmla+YLX{?1*!?2xip& zmHR;%)xzYG_iT=_^YzK5CpH}jUK3BaU}Tmr83P4I+rysh(NZfXCm>>Q$l8a|00I0` zEL4~za}Br z(-%Pd7q9bhWiW$EvfkDDp6xeBg5%PPdG577QaS>mb26>E1X;Q+i7DVmvSPs&=(LM` zBf^)i%cYy^ww4z7(TGq=tsSZbi_%oi+}tbzh~t?-Jf&7N`HkDE?$C&g03Ou8O$=CfvTz;NRe-GLI74 zY*6C|XfnZ3Uup5(*Q0j}ABKmnwp)~1y(l-`vm6MmR7b5~TJz*^evlZD!J@m)nn_Z8L}+>=X0`MZ%1@=3Zji4IS8 zo?W#}L1ecvm#>B8mDKJEm%R zJNtzFS?=KA^G@@1wqwjlB}-6MrB&4R9bb@t+fw1_>)*b_eTqz01?H$89e0Ni>@Sojy^6%3U`KEG5qWP0wi<)keyhS&L zGHa=UU$mTlc6qq^2%mAlR}-C^X(FPOcDg$Jlt|GSD@C~>gpd3?jJ)pLxc%HE^?D?t z_d{w1vdUH{bSRJ}FuJRPddtmv8s5905F>SD-g64*eOD?TwtwuiT5s+RJ#A5iZq+4_ z^gIVQhz+Sw@Ze4Nl%dxOO-k>GUvYX6vcAP4S}M#?VOX@jC~L+>Asr zV@CX1D|xg1d{%b=2EaY7m-XK|y!H{+l$@6qar<7Ihicz2I&h7M0&&-%7=RGmc8kA$ zexBHh6?#1w`o-VW(z8C-%spDf>UUC7JiW^7??x;o_nn1jRPp2LT!jznnFzucd?yD# z$A8fH8f)56;Qe=J1_gxdB3rz#%38;v-S=g4?5qCDyGoGIV;!g}JJfn~XClN*wmjQc zX~yLOuUiyqUO>9W$Brn?+>2>6g6|nY-LRawl>RClAgQ8Ro^dNj z6rb{BS4g-t66sSX_#XeU{0a;Eu@Z02L2WZxcde;$w~Ty${*!W7?SNq3z}lT3jG(o7 z6nY{do7iL2y#0m{{xs}Os)=|X*HzlG%3DPie)Su)zlzW_GLAB97yiy5bN?bWLJ-b9 zQTkIPvnxO*qwhdrqr`7xYvdVy2ODPL**oZh&=G$LQc$P}V_t-*pIZ1zf6_eo=INWl zm2OMH9zm8{a3@gG_5IiSsV^*{=BrM_NqI$;!W*?KhXq5m)I`Q$CFy*BIs|}y6>jR} zq62i_oZdQgPkwlpU~y@6g@0I@Nv25en$kA+-CMo|4s5fMJe{v%eJL+k{i$Zj3~lyQ zR8(Lr>61d!p3b?Yd{~0$j=rr0Z|V+AD_|8{L;Ym_;nd<(|AAH+^6V;KF-h<@pE5^R zz+EjBunI^vo-=y8{JRfD_T-n@$uGuYyfQ*s@5_<7Y{cHCgnEH-VhDsBGj2JD>oHiY zXm4wnp!g{^Gy|fS@}a4 z+YLhcT_+K`oNf271Vse$Q(XSzX+d_nZ%OO-+1`iQ$bC`ND+ur`CpZHsObPK;u_`wA zwr&sG^*W$4rER(ZUY$up9{M)-M4ga!?iz%3euo?BtkzKJ+!gI(oc!%WpUS<|mA-Q6 zT+@3lg>BwQr0!OC<}c%K&1VgFZ56u?pZXM~xY?g_R7+4dvVLmr_)UH5`rSVRO|Py_ zR|u24%Fnged3Wu81vzm#QcT4W=sWzXCA{++1`xKMTR&^ewmt%ckd#*3Tw1|4sf?2W zM^Za9kmM}T;7PEO2WWKQibB$xhC+|$60jq^0#`SXQVPXcm)wrU_P zYAEPauljP{1iwx`rrFb33M;CSA-l}U^W{~vUf{8MXApQR`)ydtu7kr0Lu0L)xjw}v zC8-m#rTHpVw~EQ)F~q$CUM<07;bFSC5VJ z1(^q)o2|Exp7B-6J?}*S+#Ew>zu^^;$y1U4mSq>QZ(YrWjxBwmI4an|>qyjmvVN@B zt>o2OF`JGmfY+0fXT);l!q2W9Mv$6gIJWV5SwcPdj~oF1rv5-Jd+&5AOuAe#-eH#4 zOyEoLU$4Ql*WdDPIrtKDRW5yvCg5oTW#G+pOXujyH+9}RndtX)o3r(tg;br;Cj5yA zogw(D;>ooql;GC}O2=d|83RNm6Yt)W(AeZu#&<8(Jt}J6dWsoV4!rU-+W&4Dtr2az zW#*mJRm0RM_1yaMX#|j8DBg=0=sUoH;u2`1^3blaq~s4{^n=6f*5;bYr2FfnZYe{%gm^>8=f+ z>Kmr{#Z|n4Bk2=S#_Uu>y~pbwK<|+6C(1$i>{{xi6n5$pej$kDmmb)fOJ>tZ=p5$J zP)sOtTh86KMRRckvUp?-i?WwM|A+B;sNTuQ4q~!l!Y`_jWADoy5OeV)XIZJCl=q4B@FH|?&*@4c$XIj*)GKm1nfCGlCB*gomLi~&la z=-s*s?fM-)-s=bGWTEM^LfY8%uTGbsldNrtc=CxpFOV8iCAcR!Xh%qHWx2llcy#`0 z^oLZ9Ui-flW#wF-Ifp=<24694aBAkVym1)I;=qHRC~5#6NgK5Ikq~wznr&Az3T1&5 z#5+C)?KQs*yz_ULuaB*iiqTDHLwj7SbtJXmHgA2mS-_Qjgf{umQPm^WY9}8Cl%Hn! z@?r6KUZw5lD0~0nyw3~I9uurJhH{zG$HaxRr2B@yHOG2bDZ7rAfT*U#od3xFxyY<~ zZSD8IV=5n6(E~!K@zP)sY{ugwxx4k0kx?({ng78fmv%hO97xAX-w!K5V!?p;m1)W0VUGEMiB`QgcFl z$1#@JM(m;^fGGUpF0Z%vw@w5l!A&0H;L3AELa}!4dZTG|@g*A#o@#Xd)#SvIl{aqO zirQVOjTqm4keHHi(}<<3_+}3<`s8ao-6S2Rla4;v4Xli`ky)WZGoJ^M55cfCmDt>aHy|5zy>DvNZ&(a}6 zIdM^srO=ulqG8Z*PJW?kenTAGoQK$KZbakWczZSGqR`cPd)qY2GF&Gse)@$wt9w_G zb(p%_ohfZs3z?e!i9RR5tP32e)F44u+rdbEYxF9=uS@kn%y54`r?pAz%a`^o#n~l& zroK%ea*Im=L6-VaZrv?<_zi*6TypcKa8|8h*h!%E?74Vtp@p8Edzvw%yJCh*c}V$7 zFxG{!%+$9&*0mEvnhasD!X9P~1q)8aJ$>16F!#@SDgU)56VV-dzH|8JJQA6Vk$a`8 z+Vr9o2qd9*0Tg3Chk8ui6h1PK>}mc7Sz`T6q)azXsiv5w*mP*#xx%BHWN(TF=CM)l z=fn*Wo0j}kyOE?UtdoE~H&3NLtUu;)UlpwTs23oSFPll^YP{QmwbC`^wVB zD~cjYzxM`XkHGmfEdmJ;G7Wz3!yJ->g&WWU)}Q8fP11x}#4ho%O^IiC)ZntJfyvN= z6iu0{42~-pIgZ^(Rk9yMH3<{yYb;+!<>9T>n_kg&9#H`Trce3Fc3b%H!H3B%7+OOx z`?Za$Le1=s=$gyuBpwV*`$)Rq+N~|<)RPy07bdBn3d@noJK|{VmtgS<&6in)Oaf!W zMIx2?SkPE?F~ts=xf5B9e~c*?TD=LD$BYEueB}r>{c2ODMXE7?61V9$sr!Ej@C0!+ zy~n;-t>BB@%y=S@{=i*o@1nC|D}T1`eT`)X|9F-&Aj)y0>N%v-O{$^&fsJ;Qz3CFI z;f;cBX2R?xpX)=)tjG9G6~cp<~D$;gNdHNOdDvRownfI>m10K!!=_=f-Y)>ALnhfU(PR28A8_*UWko;IglP? z`o$GtQ+?Y)-jOepW@jo0$7+ybZ<8C`R{|qaC5a&pI zStJ-lN}?y@duclvmc`)@_4tHgn#dfzUgge1HxL?)-|p|Xv!LJG57by13;QkHm(!Yi z;!bhKYWaS)Ki6m?$PKe$;LIS zjQ;@WutxL*wUXzQBKOaTQhCV!-|IV$yunHHYN}Y>7M!b3Fj@Ch+>{^G!TU{RBm73p zFQkYEW22ONb$*NG9%rgdpA=4F04F+*vBed3(dARr2~UBDp9RfuvWsGoI5JV2X}G6p zSAU^9q**cf}w*=#XYt>)L!9a8CoM8A@7Zu`<4NRGRzYr=E*Jr{uA)f?LWZ@Gup z>C>sTRnyZ>gkDK{9UwO{+dR=LwjEBCNQx#lz%e6FTC>6kW4z1s zZ+K(5^QVK85cw-R7 zNixtt;_#OzBJ;kaQ%}D1r%EY2+jd6RH!9b*grf=)P_q^L|OQdhk1$oS9I_K8;h7tFdDQaSrAHgFRKiycqSyGWVZfXZ$ zlO=nixM7raOPX7-2lS~{Jji7^huHP&0|s>4!P8=Lm*m=cGHHqJyF#Jw?(WZLKrh0I z-R7@3{|s-IJc?r=We+F~vmA$KZKYwE<4lezaCzqAPO7!g#}EE2fF#%8rZuO+zju=K zD+M#K%d1tyJ4@~*xv}($k#_WLf3llXF3J*+HzVW>(%#HXl@F52VFLHR9yhcc>R9ro zD8kSYGmm$Vg}kF50husN=1w{&+kxVzq#Y51TtfqI9_KyYpU;L?J@HDm)%F@wAz&bm zk{f19Rwce5{jSql07_K>i=_J|Xxgc}1JiUR&n^kq+Y%pU;_$sp;l5e}Yeg`RJ@_9n zJe|+z`1N)_ix_fv_>4*B4pnWgSMg3WgP7|6M zrn4jM?6j8_30w8iXWhTp2whUP_^Z6e4pZNYXpLxH}d7by1_h&xm@j0K*``O~D%##cB>nE+o zyw)TY)vs!-#vDm{q6T;exxxH<7t(y`1*J**0!EOcA>N(?DtPLbi-gRf@orNDeN zr+kOd^D3>@jv8KhCC=(2o1Q0hIAgVM{KO0yN4(7MeXV=RKwUy~O%b@4P-#vG+x)D00?{WD&Xe=6Vj8P*RlqCYWMx_S4@|^I5%X)Zo}9WMjxB0a=M@B|C^Lce(fzY zjiACe$d*p=jkv`nkliK9ghWNf9+9Rw_3gR2efo#=J3$2^o3_^BF3uL3x+b!13T7&Q zbJZ~v?Qk4E)kkA`<}A|*;qbDWbs5KB_V`rxtexW#63*$5mx0q_OA-wl}?O}DZl2~ z8sN9NULM@iR~=AWe)Ax79<5@ALvOFV%N3IjX{i}sv@h>S5yis%{HLag z;Wvu>m)|J7)@`|;Jz-aeZC$m=sJZ&0RHL#%Ci^XP{s#?OnPnTD7FL}R9C$1DhKiUj z%qcJysfCART_q$xt(DhdP{g?g}zb#^L1(qrAQZ9I2tt&-Ic8BEf&t%1Z)^-+E zRKa)Ev#!7X6S|)E@RwEM8xu>>vp>nr`tJ{N{$)XdkQ1$KqYwYnChFJ3W~;78W>;9u z+O;D-^C33sq$c!%XT&#|8#$PohhocbbT=8hnIpE19HytbuH{mbs5MmG5ADqj zFX2;r6^jR(`{7patMYn(Pe>Fq7%=+E=X_4j|-cqMqqY8KH zOzvBL2c^N3eOeT%vhI#>{F=V#&seHhFlSa>|L|Zki012}=|ZDyL;My+cn#_*`OGn} z_*uIb8Ei9YoJQN;E|3gMg7gl^PBd?b75&{kC6=>Y4{b3-d>LiKpb^m3i77`Md>W&n zm%TC3LGG2Y6WaND#)t&SpGm$>^X6yq&qR`jXccZYNM)SW??F$WLvZ174<@JCqxT5M zt3u%kGLO(*D37K#Lv$hFqriV_L1o9M)eN9vBIXv!gTdfT`S8;x&-!%}1MB)6B zO6N_LXDMi?V1hhNIIKch+t^W}N}5_=Ze10a#T)Zj23|rsm9*Gj~ltLe>s54weyh$YO+dFl=2x?Luds!r>$$=mtsBG7%e+_TX+n4fO>TQArgVxqI|u_IKiN0;^m@Z-*Sk@ zQ0V=tNp(lTLr}eo%*)831gMHRC!%?<{Rcicw~mXEBcjv!0M1$ye(9Au`?sr!d z@n!1aQt_2YESjsVv1MQV=o)w%$%$icWU{IQD9|#IxiyO49w&ZUylp;Az%pn>(5@%j zFD8iM3Gx^Y!Rx11UvGY>KRT8wEh(9Bi5&Tiw}x3jJp7o|ZV zIY!N*Q--?knAUVRDEITGBC7_y`g^*X$$0$kG2AI-xhojafxT|E+V6rT$=~N^wdGgQZTpT!2Z!cUg1yMLLHXYtwG<&1$X}NvI>^)ZHzWKoC)|GfL-_Pb4T&gAe zjz^fBeW`Z#7>Onay*Vd+@aJN#pu0XvY_KS#cBT89&k^J5#G(b~P( zB&ppaj_Gui=a8-}N>~)?6OyG>;V&FnCcXc88lNksqX>{ad>wg94AQVD^B!X7v%02m zPGY&10kCuGI7QjtxEBc}%YTRM*ea?Nm1hzF8YrW(Rh`>$iSZ+`aj~jPk4Y%EmN3L% z^;L;~&qYh5rwpP?Ng8pa;Yr|u0X~wuoS3S-ujO)C!H1*P*?UJ!w40-NY~`O%&VICkc)n=Zk|W;-?fdwWSI|-+Z6eCW=#DIDp5^v_lZ74M9lIg}`z(5%K&Ln- zAIRO5Ith&2045Rf^-(=Jr1Zb9@I+iHT;=W7JvK?^_HP4T_BL0TODtbX<(YFQBTp0x zu5f_j+vIsAqRa4^qnj~PPsN_RC%T0KQSDjv3GC=yIyhzhd2wpC4$&?~a367ah_yt1 zr=SCh$`2}xjyJAPxJvH08QkLaaMv|K9>T9|40aZ zDS4qnK?kJ)KQx|cjQB9=NyxIrQtMn_rLbUJu>zB^IIrbWbSYF{@lZo@tMbEF<-6^@ zko4%bh6Osc?gmE>P0S2BcnLV5kbsb6&GGQ5xwoZ# zmRl0=N(a_+(g&c8YA~54oVh3+m$8SletYcj62QQ+iyzB&GX%sXHbZQ5BH*&n-IA&B zd)&R;(kccVGL5jgSb=P*V?}2>sDKPcWdjFc-~b8Z4&d%(14N+(sc6eUeE>tM;s8Da z;A_;1ZGb(96Ue4FKVHvv3jpH2$AMA{Fu4s0Obf2?0bE9bzL(`8FpE0`4x}260VzEo zMG^s~Z7v|C4&Y_f-++|Up_D3+qVoVL2_%r}0zM=s@EIM(f&d3h;7Z{WoDrNqw465% z01Qfm6b4fJ4P@ zrjJdJx|_zagKm3vIVhWHOu_?En6z)$@^~K}+U~RQ(lMW20=m;Sw__Xsb2>jRf3Eh- z0o(1U@JO`N`GINBH$FH_meZt~ZuZ$PzcJ-vo*RGTf5uxTf105+xz>SBnH6|X%JFBD z{}!N}=?1&nZ~|siH1GBGJp*qphKje)9SeIOegOhX;Dv##-al90Mna({nkUj{bjW_A zW+cnQu>N?JEOT?fR^nu@$Z^9V`-BtSL`6KmrtL$~Pv0XNBS-T(jq diff --git a/doc/salome/gui/GEOM/pics/distance.png b/doc/salome/gui/GEOM/pics/distance.png deleted file mode 100755 index 141ec8e5aa6f67876c3912bbb9170f61960113e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17080 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 diff --git a/doc/salome/gui/GEOM/pics/editgroup.png b/doc/salome/gui/GEOM/pics/editgroup.png deleted file mode 100755 index db3e235751c30bf972958ebaaff93fa8bf7fd71c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15719 zcma)jbzD^My8QqW0uoY!got!0-N;CYlt@a7q;w;V0@9##gCH&4T>{dQBMs6uG(!%* zcfRM`-#z!7bAu230nFaB-@TuAJ!`FJO~^}SxjVR2xDW{Bj{I}!R}cuA5cu)L!2*Ag ztxU*=KpsHkrKQv@KJ3o9d#O)c-yFcwIPWI~a6bBQt0Vq_ro*!zkczsmxR6u`ZqQVq2FmQeSWZ*Ns zCk}5?%J9*FMOwYnp7475K$EbWmbyllX`3G!#XJsu0Nr$pcjF%q8~f&akKg!R+^qTf z&6D~K>a3;2hx99}K8^G34#1*BM=wv%r35e7!WEX$(7?jKmpLzfVCvB&ecliO#c_}) zNdNgKCWrSoI9b*sCZ@uen*~EvwDmf82RnVhW0uuKXL9@(!X7#3X@AqHYd;A8D~Yg2>W3L$hL4P3~k>bx3<-%O&JkySWO_80zVSwp%=Yss3sSsfVtN zV>DV+C8+xtTj$AU8U~$JeO%}v?vAUdNE$&*uk_QW5GH@J>=N`KalhGU2zBJN|3*ce zw?w1ffhpg;$BE&xp)dMXU%pgjTnMmOQp5_j){^q9q-h>{DiavdG^@8mfK5+Nzj5MW zEpWfSz8+F#H4~Yc`Sjt5CYv=|lDo%F(Trrs{@LQi?=aeK=R~C`7JE0tg+3qDVx~W99LII+|-gjAA^4q z1f)C*(NG^E)3O&REvZma(h+#c*hnhl0B>gJDi-pE`@M4E%B*x?&wR_rQiVH8d^ew& z=TSn5jl$zk$4kkfdp{+dlGB3jT*Z=oy8eOt_F}%<=tQak)4KzagV48Z#iMV^bjgpb z%ZGeKze5^Fs%lxjpR%AQlfb3_m?|Q_Fto5RlVxL?rOJ*@YNp2K{Gf;KHeV7BZ_p@X z*2kS$$Iurv)$#i3dU{qfVvGcOnaQkGKU&LWgp^;5|eKTmF zQmZVZM{-}`y@@YA4c1#$c6w1KnsuLfWmj1Ok+jH4W&|-gIW&GWCVJG7%5v54lhg70 zmY%8`Z#N1u0lBzy+SHcb<&(B;(em9^X7M#O(tFd~@$}bk%cnFHnZzYCey;D`h-?Ud zB+J5V%u;wvTxX8^>Q@@L@a+ z>7sm!i(8nLm7mT~x5p`1Z@A6Yus_#sIECz#({t}~bKc5|_Ac?G5p7-1%MN5ISNj#{ z{3lT=sQjT{g_BKrQO(7%4cVM%ZLUjDI_(%%xCdq0{Kk{r?AXS8!ln$ydEOn#f^egp z!U~g3$G0S(8rJK@%kg0Pl)V@+Yx~RaJNF{cnjT-W%FfQl1l|mElm0GLwIPKnh|~~1 zdi?maQ@t=Ks=Jhw^6vHPkhV9!j2bO6iHV8Zdt;bcIat2A%$)vkw%?yX1fH&iBX7d=+2ti=zG ztjj$;%5y$)lQWf9-AF)an~LyKP7U)Bwa*%!yqh)@DnsCv)Eg6Eso`w5IM|ykS;fY! z*iU@UJA3PXw;+S=t9ioYy*nb`$z0LHJ?4=XbU{(Vf>*8D=|75>)x-^a%f&)m3{8Gz zI|+TIXEN~hCB*g}vN;yPTVfyCeTIXB-)2@xa_?S%a$e`#aw3b-%6A7ZsR_)>SVKR~ z8TGufH2Ogz+S}jXxn%#+z^IFwO0fqAyDL6aq@RnE6H{H{a{HxiN?jL?btwAw!bVRB z2{Q{fcWI?HjHgg%)0#*R&Ac3~(5X^G<7vTy!#Iy^mSIZTjsy&|v3gVRh|Q2WCCz+k zzDIy(HwqSAakk*KKU6vEF;hI7UNR|Q^g|!v33)h!8B_C) zQk*1jG|vqmFP+k>W#tL}d;2)gb2kI;Shs|$h`jXVXVa&p_q_U_uC+W)TexwjD4ur3 zd~@WPE$_8R2ZwQJxg)B3ubfAp|8Yr6I@wtkJ6kWsv4LgxUP=e|7uamSQIsWNis_|f zTV4IV>)O}1OG=UO_A!ePHNp2uM-Fm4b0>wleyVWUaM|@un%!xk+17%szM7d`c!j=% zJM)(%-)Vxj(1el|y&+*znRW}l$=3plLtN(8EG(&nbv#zf0`zv<rk?u{V`5@@os4+vB~;z@tE%E_a0@eiPJP0Iv%#An9aULRH3`Q06qa``p5pP=iSr1r z#RKF<2>Qjs=Qam#bgfhC^>hPG1D8N{l}r0&sd=w$oAj&xT5XqI97|8kFim(NPig1U zVnR%yo|^`>`Nu{l8AJ`Wxa!l_ORNa7_V#w?9ilB&Slb7TUfi8tjRWE<$37Z+?cfP`$8H+&+X3AT$22~h*I$lSP-DyFZwdTCg1 z9oF?n_4Jz8=V@LWHn)BVy4cyQ53L81S>kGeT~)PQl={}KL`#nQY#A7T6w6+qt=rRR z$TZsrRBIZ3Lo9|JGpE`qt}|=$?Gk#xO7w4ia&u|TIPWGfYp(V`FKv}qP5N-WOcD7_ zUA^$~cL6k>OTW+X6}O_N@3qehY|3+%)mn9;7q9F4LZb-nm*c)_#QUC}lqMn)VCAf4 zAD=;!POoqki?j0c%Z_>{Gp1U+MH>m+Yfjp+>AtyTNCgB29jyzqKmH``5z87N`TV9j z7)|irZM(VTf$tpOO-*lMVxrmK4A5EWm3;q>pQbD)9rXPBDuK^MeP$n`wV?t714C7V zEDhb)ca_TR^n1G7omO94x({d{NJ+`ZUkki9OR(CDk4{X?PsjDzh!$OQJTpDIh2GKN zp=br$juP52O}*U2aPB5j{8~<${u?@5W(qg`^NDkL1;%^ZdM?Jb8L9p5UEIgz6jq69 z8W}pjEJ344N~l4%h{#FCc6n3vKE)8tg=pw}z*c^y&DHg-#74;H=9|*kgjD*vIlG@X zt0d|gGODCHG7I6w#~cJHfv(LyDo?cq?VMwXl-546GrV`|emc;O)pEU88yl~)F{GAu$$fTk-sZf=!6PM@^;OO$&m5F}}uQ^hB zu8_h)6SIU-0NMxoqNvvFIJ_F2lCa%E)RL8j9@f>7#A`0(@aL9UWfHi!+fEkutRzJT z3Y9iB2s+S&sM%f%=Qu~*VQxvO+}Wv|N)`7cPZ|7_#q!%);Dv&Mu+tiTPb3Y)IQ5Gg zAk4WzEoHyq=4A6_m75YckA;P;!1JMEGYWZVGL!% zo3NcgqOAG`p?-V_R`X6M3G}Qrta8VzEzOsz3V$hp$YvRk50HVQ( zuGeM|7U7ny3N1Z7y@7hC^_QfW6JJM5yhWi!~U~YP2~} z$nmShM)c#ekKCTu(BS^0%zxKo!7Z%>7ppbj7Eo45Fj`m>L z0&8k&>ej7WL}X+#wgy~*n1MjwQ2!-#s;pp<$H&fq#YR*Qgw7e|JqscL>oKa<>6J*? zokePDh&XRN1z&Ne+Qph~`RFUD{q)<;c9vT~CO z7FT04^UA*FvD2n+$Q5Q2RgCCo#a_c5Ffd#?YXg)*>Jf#MIOSQ#+L?plGzj&eV9$4(aIZMDad&nVKal zBL@e5(ZmZ`Su9FQN zX(jBWT7!pLHf60ItCg8GD$-Q#NkRtrX1$@gnOXGb&rdCiUVhhPzdSsxm+T)N?$NQ$ z0e}(H8!+yJ2m;FCYkodX%Al;GBECRM z#Lu7431~%vJK=5cG7@59DIY1H<{5K=6jm0N2Q_LOIXO8A#kBMRi1(a}AN~Dr6B71V z3pAGEIAK0pRg=~$ovF2p5*`m9vG@TmTP_m?MEU^(gMYx;Ex-;vnrT4~m6AgH@ZrOc z?(Vk){1`(@Jy}^|3}1;fw@GMk!GQ&YDPAsX{; zs~-B=>Knpp#GnrREajBIPDt$+*V;R++X4@Tfm<+&R@@UPl9w9Q^58C`!NR-To z#vJgA<1Y-9Z@W#;rvQA0udn|C$!I?ks73s(R3d1lmq*rKmtc_d9Cc;R7a#j*)VGC* z#BCuMo&8+HmR;2RD`e*U7Pg)EQC9iN<>L7G_2=|-gJtu<^UGhcO|j14n4pxi2SCM2y5-9K@By;Gt)uwS+>U1>&3fdloKYV`dmsQgvblsI_f4W`x4)r!b^sRRADEq zpe>8>gb})yHv98Sv@3?$!tEfi;iKp_a!&mvE&BHS15%hZD-e*oYa#Ky~ z(-qNKk0DOomOr2BdloyDxJge5-va`R{URaN#FbTlURF8f`E-SOiGzxb{fhnLnyV;6$r z=LuZ`n?#>dFfl zeMnK#2yd{Q;qf}N7qI@_wlR`DHx|$Fx}(tddzOBqD=7s9??$|o*wFwlT!hy1>Pd}H zeO$?0!`*vCKatm$AyHAx=jA45!^shah3e|+j}fc&$MCtv`Rj)P`TCZYTZ{_>+468~ ztr^Z3&@LVR{J7oVx{KR(YBNJAXq$TJr1b_3rJJp1Y9bPl2u9nMbF-FdB$w;>eQRkr_an1(pNmbZ_13+X%lG^3*p$MK-#m3(T?OzKUO(TPZwC062|ANo z8`>2T(YhYOoSx}f3->zO6|AzIOQxOk{QTuhJLtHh&7N+fV`K8^(E}7It@&CRIP{h< zbwr|dw4eX9UCKD5IGjQ`2a2$Uw8+oty*Vkv_@$yPa0FMK+vL3#A z^~%yFY{cRbD{Dw;%LT4q5Uoe>?PX>nG8&nnV1gem5ys~gtKk`sTP7XJo67wP)bj2U z5&3n!HM(%#qkT*a9aoZ9R8$8Jl_FT;)b(Jk7*e~U$EUpEk&3)+blQgqjq^5tBItdp z7rI&$%t+ zsANbS@6IH!mo`NQ(fK6K&gx}U^_W$D`TTh?rXldx!;D+0+XvopoUbba+H3L61~#6| zy7#0tU2GM>K~KqYUyakMyRMl@5_9Jn%T->UG^&jjV@v|H?uqMwc6T^!=TBk=Vf)3W z%`@dDy>}KKe~wsix$l+H!)eq+yE<)OWK%Es@S@42gI1 z`B}^Kw{PF}f#*v?OG_Y>5nlbK9X-mORK{q!>fO#%B{rZ)FJBUohXn@WQ8-?oz#7*b z#5em-bW}-mmDBp>n>~962TeCebB?!RrQJ2*l)RrtvgM5VsJ3At&|s1CM~h9U_n;Pa z4Nn*ML`Q8^+vXEZgn1mD()(d?#C{h*r%7GAC-3*))L2h-oEmQd~9(cPr zh_~47B$g{C3x)h7_;O;~Nunaw4mNV{@Gy3&=(+h|vWBSyAWlFTh`R1T7K=(-vb0JK zXpds!<27$L+sxFU?XM;n-lf|+|7=D7V|D$6SZ`JCD&lfZsQcQM8ZtcSF=X6AVc_+3 z+O*KK`CvIB!m@ukN;0x@>A{mHpooY7k&{-9Eauts+-vSJjuMvzI~F`L#C+r9 zjwXPKU~~lO3?f8mo2~Z64J7dfef)?H+?eTn0bF{j(yn=>TU^vn69sINdye}U6kulN z3oYJL01K;Eudere-CBJ%a}s7tZ%%7l`RkM@?AE|hDkUa$iVZH?nx@kw`i(D1bNX&% zqiA>i$#K7Wb9&rz6E-z5QBRsIHI$_MdV5KR=OZ9pnql}t^(m!9oX^5$rBBwxmja1e z#vTIA7aTA3Z~56jZ%h8(ke0Z;7J4A;x)`xj^-doJSd?%HFRoND(@Q%sqIC5C+TH)g z{Qlw0rI>oo>U_NB1ILL1PTh)N&u#0Kv`F0SIKk_#31lOvyLM~mhQOw}uc55=-h4^) zhjS>ssAyw*|K#}O^kgahD&IFfJ46bRQg2bzo!MGDI)Ris{_TE1NL}u=mO3RFMqa<# zJIqr`>CVgWegT*|suGcx@byOT1^pK>_rbt!(oTCAgHWuk=f0%bRltGLEBLBT>)NOt zl&@NWpl*e=x7w#=KP?aryS9T5!$e!m7BfHWOxK5{TrB(md+>FI$?YO!d8q5|v?@@! znYvg91H8i!A{b*N=-5~5 zHe=Y`hrrPHnjie3>Eu+GfAT&J+2D^564XQp)blzwtM5|7cF8h;_2J)CW6TTPst7UwA zT%k2d?(N&G3xEd&jc$9I3m%?daq~eRK0z)tBj$@HyZPxdZReX_(;ylhEP=&w(S|{o zZ)lB#Vvb8HoyS~st#OZoJ94u4)t?rORI$dnYkdl6dxc&Z->=QJ(V(Ne2~Pg}Ig^Rt zxw@eB?4s&Wf^MsN6w+(F*-PmJeQRr?XaaS3CmCH~bIC@InVD&!mcC0|gUzJ?KQFu5 zwc~bzCEy!HHa+0JO%O_)JslkAQ@=dk%(lI;^o(;=H;6hrdw-JM>iZ3K?2YzGlx(S? zi?^n`xX0$k}`Q`ohrqGkM&V`8$`R#x(hG;h?DKtoKi zCaIQ?pVemU`&GziT}Hk)J^97u(RV2<~m9%ay{k-uVxjp`HeZe#5x9jsBKM zuB3Q#x2uVX$>+qx4O=y17-4Ek4}Wpbu;dMXTNroK&p%yZ^{3NT=PL^tXWthzzw5PU z$%L`6aX{^U@!HM`A;cW-bB&NTH4rMRk^=v50Ch~}2me{gWO)+iawnMbbgkVmuvOgc z&OQ0L3{!wza~BW=fJU3tGn8pVNB8==`eB-TaQ#Mk>d!v`b=jCKz7G-iIDT_}xC+Pw z13P=z?o6%LyG~#~)PWv)Zr>H;#~VxQb7qvDjErqWhRuNfMCiKnyPdOkwqvN&O~B(C z$lIPMIz-}{P88rMq3H+WXo=TX)@G8DGwati@5Y!I3ZhaV5SoXmEWp}eO3;YK3e3>g zbmQ|^6Y9ZyhwDHKmQpP0w)`*Ib)fUg&&02#pZblBGN-kh9Q4;iX8FU}%W+AF<|fpxPRjkzUwx-W=_MDeWtO zSJZ#;E9!=cww}6>Tty$JSlIpp;Qm`xes~dw qq5?h*L-y0nrEe0oGkal85TbI#k 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 diff --git a/doc/salome/gui/GEOM/pics/ellipse.png b/doc/salome/gui/GEOM/pics/ellipse.png deleted file mode 100755 index 0888b5021ba27724c0c253d16118e4f3417bbdde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13550 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 diff --git a/doc/salome/gui/GEOM/pics/extrusion2.png b/doc/salome/gui/GEOM/pics/extrusion2.png deleted file mode 100755 index b56dc5d49f5c5ccc0f5d2c5b65f9aec1462b8b75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14907 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 diff --git a/doc/salome/gui/GEOM/pics/facesn1.png b/doc/salome/gui/GEOM/pics/facesn1.png deleted file mode 100755 index c78703a1107594d007746d04cb8f069ba11af690..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3142 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 diff --git a/doc/salome/gui/GEOM/pics/fillet1.png b/doc/salome/gui/GEOM/pics/fillet1.png deleted file mode 100755 index 7fd3db53f71f6be1e357bb2efbb76b23569a0897..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12606 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

    RjOkg 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 U2T;Gq5a0r|p6RJqKe3JaUxaI(tN;K2 diff --git a/doc/salome/gui/GEOM/pics/filling.png b/doc/salome/gui/GEOM/pics/filling.png deleted file mode 100755 index 418c22431a22619f4dc692f96e22f5621d389b47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17649 zcmb8X1z1#HyEiH`|wx8c9N?~I>#(+Q|*fP=*$`A<3SMUdR9}OHaa!UqZ zpFm_JUcUe6voqu3{(hzTWPdJRrpq^vIug>8=}m|^?rose74Y!BoS2w1W4Xawu>n;x zg}X0Ew(ba3q1<8VVI+B=|1M}eYY|Od6~)6(84HE$E98NO>FPC&QI`=7|3uW*<@t9z zxJT;cw4JR<0e@|TJ>zG0+%K+8K0!g!4@L_#EtVU3UVkA$X<}=4RAg*Q zD5zh&Ve68v|45Dg`18#Twx-9`}^+Rv|?fE-}Iy1u3eSMVZ6|4Lk?rt>*S zdc>Bq#LTF>sjsWUd|B_s_Be&AC61FVIi=A=UD1*%<|Mo~;Odk5UQb$8hIUO``_XnU z;g>pm$-*G%jM5L-mKAku>LL1BHfhX4WXAK*)}gj5IqaaDLp3m!z?n#XZg2X0|P{ zE1IxWXC`{gZT=}R5IuCd#JX}>uhPYubq2Mz{)p{@(c;pUXSvg_HjxY(Iz3bE%s_^U zijK1q7$i+-zKmw|VZ~be9hqtf89#q@dXivZA2iEmsY5+q)z;3A-w8nu$uF?-kBg(T z%F|e07Lb-LHYkmobu=J@Y)8p#eB@+@fvpCy=VaBDW z4{_z5&qB@Yi?98tm~jnD$&4l+M}^Q;93dBXW}=zX?oo!>8IiK|)>%tRY%-yKTtcFsm!HI5;`Z_B&JgY!*#FR92^~DkNI_EzDbf zz-dg^%HMe%Gs*Mj85ve(S58ru)<2MyjK3v;73|Gx=spI zOTMuy;|rGSQB^1og}^)l5!SlUv|#P6uV-dvJ>!sHeKKjm@4WXUCG_z?o*98a8GK>P zZbGZhh^>4l#LO(C!pa8rVYTA$QCCp!8sFNzphJ=%)IfbbJ}oB$W48$iI!^7&(Za2b zX#{mWw904I>SDq1TG+@a^Uz{YD(QOP&Qn3U!=QLiZc!wG+u}FFlF1;O@jD$R9kRA! zf^7K0Fs8_ zA~Cr&B~X28PXBZqn9q zIvp+zaAH*kr`tx zjY<57#qxSM0jL0Yid@IgP!x~Vh&&wE)%!GzIFX~AEAtfc%a++~?_WZf+eoH(46k5{6JiT@FH1@o* zNx|WIjlR}wqRLNIt?z^~u~Ymd$T@qFiwB}Q>x$+>#NRb_LYbckqj&k#soKe!Z|6X9 zLmf$V1Yztx47nl0y;O}i`RubH!t#we4dkLODQagb5x;?#E!aH~Jh zi*`IRqY>;>Br7DC_C)FybD1|&A&Gh`Q{iif7ahZ!%p|_l7*Fxj>gkxB_~T%vfF{u9xHCzhC)KZU47*X8yo)Z22W{dQ2Sr2 zRxo3=LHjXrTG@*xtct@fsYRmQeL(k$2Xjcw_i%C3T8 zaL1-tW07aFi}YWO>~5+9$CU^mO7g!*H`<6k|N$|GO&irO^*&_|E|m0kh+d; zS&T|ZY8KMt6rb_{cMYDTz==j#le@=X z(AdbyEcGkZi?!vFjTh@vYQqpMi

    oKQ`PxPA|STZS<6tZ?Cm6+>WQK-dR=s?d(b6 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 z z5}@p1%ax-`cj8ba_jBW7U>E>I-#)rETCT}`ns<|(W30|6R7QK-=q_J8%pH*hT7W~p zDx-|e0tonI52J2TD~paKXsgpHCh39ug!3Aw$~*7H4aQzgc|Ri`O#puaTD|7n(7jgO9&I191{EQo#Y#s_GakgwmqNvo@q zpj@MpJm!gRYm->x0zGaa^c?n3fIeFAVzwE8l6XNU)*pVaHm0)JrYd1h*@9dC8h7vA zyM>nEqO4=Jttjsix;Nf7$A5G$hX+f8vHHgJ3_=p=`Z*^M&|%sUEeQbm5a$S#B-W(><@gloN5S7gw}LtF#oO37yusj4cXzIDJnRlak9x&Sn?E#Dkw75 z43wwfBLEbAi+hMSl4YH{wh>ILZBImV52S{Pyr$V+bOo&?pa8dOn&hBHiS}T@XjIpBO!l!&m z1nhswO#l#d(1OYK5OAO2>~}H>3J$U7mzSJYlUzJ)(59)WT4~*en@x+?p^xv0Ep>z@ z?+_t+5!$uMLnHysdkd{7VEm&4!}O`Xcv34E3pVjmGCR>c;e#XrFTpK?)Vm%p9&HTK zR%lrBt9+^e%gpDnD)2S30c*!mkc=1F*4vvaJ@FqDMGfBIilWmp^2*B2D z8(FC)qj?(g?ncxham=fr?X|VGwrZGyV?r0}Y0Mw0?gJhfH}m!uG#|#9p6T_W8yOo9 zRNI-(x*>%jDG4W!7#JA9*Z}fG@R9L}T&c@dai_*fzcCO5OGO-ofypc(Dfz%zA6*Y2=C)ybg*N^GHWk_EkW7e@0`;4T=;dVN#8ovpE+ZV=*%)> z^|u(fcno=ysLNSPqJ)As9b_=0sS_*s!mnRU=z)Tcn_YlrFRre30KPun=+#(y+nVcY z&t?p!uGm*wl`p~EY`vu-9hI=Tl&Y#KgDe@o*m(~3qsz1m93bvKBGbv}qe0&FbH8n- zy4 z3KdsyN}I-ju?$Os!wfRX_aA0!oIm{u*4)>;PeWa~Rz=Er-Ru*!Lr8^K`sgpXDSwD` zyBX#`G)utLK$7kjD5c{ld*6rEU#luOy_DE|vh%<8<#n!Ej08X?!RvFxt}#NY0pPB?*$FJ9ec>V+RUmcn%yJ`;*tiR1pv4R+gz)y z{5uklldf>}tuEPvqceF5Dls0Ky}|H0Gam|koBpiap+5fvvN8UH#<25?11T@iYXltE z*U2e4jHLb7hVm^cF)E)P%gIpH9C(uW-3soL{mo&~Oa;Hn~?eD~AE{j>wli!`tt)n@4*_cd4ye$er-Uzjbo10XV1=@*S2m^B$nFn zw-<)@u`t@q%MZ>QMNNC68Qd>6vczUh>AZ9REH_-FAtUMR*j?t#}zq!5ND?>JDkz9LXi+ zbo?Uc(yVL#uMM1KztwfI?E%^+tS5Z*-zMIcYWD!bODYN#0@DIu-i0O~RCvi!XE*^E zL10Bd-4RaOp0`rnG!3Ll-ReZ34d`8+?PpF!)-ZrY0W$yXUj8i8$1Zy8>>w-2RK$1vcSEh~N}^|Nap$@X7hCy#e_%=}*x{xSI54Dkk^L*1KtY zO32Q3Eq2P)B^YVuf|BlQePg}9s;d7mYYvp1G(B464PH(GIbE4LXZ73y4bsOOe zx;#4|n;jy2u_L*vQ86(q%pqUC7!4Xm?VX<9-e95Y;h|gcAHr$++vpz<*)G1IuBD|V zsc^Sui&Zg2$gGAXn|#Cr>MkL1_jYR)1OnZSS+nBzdreFt<|ogdrMDd*W@-Xz3>;S|k&ljgaG#JVXK}uF^C2BLP7eT!77HEKbU>&>j4=wG8X=rD% zy+sle1xz6Nq10sPO(@|W@EX;6ipjG{IEi~ymRoCYPoVX!QY7>~)!Rk3^IQ$&fU8LG zc@Qu#bkMd>lr}FPo*9oKtM7oV?lMs%eNan5$MOE6g{X1)~D5e&PE2qk*9zpy2S5 z8`(878-Chgk_IRL zyR5F2Z6!cF`M!~=1v z$-jn#g_-mtgaKe)^okQbT!q`kLl=Dg0aydH?J3B%D4go=OqL6sPTN^dRfK|Gp|XB0 zy~4!sjFCy`$*$ghj|$T*WCMSF4i09l(2=R-1#0grRaGLdvsNk~CR5wL`BnPcq?BK2 ziQ;sg4}5evA=KQuS|y;Hc!H07uPK<2iGnR3$5FKU12r1O3r%LZ1oo?XT2FS?Np?gxY$>no}L~rF~$T6TjNC{eRGw~ zQq|4H7AcP<2?VsYTgH+(71eXPo=WL3fuH@+`H>D4z=yhv&QFJt*^AoZ?rXFgii?5 z>1sxx7njlUy_qLDOkQO7r0T?r#YxG%KlFR#DIo6As1lc2?*c!KHt85bM=ai z{Kr`P#k6KAH!&O&QpMS>@;_)8iN)-e$pM2W$C#6XW(3V z>Ln_AvB`0Q?Xl)&X3qy$?yGVtiOLW8=^0rOfFS@+7ATw4w6yIjq^k}wKxPH<(meoS zr&eU3%7=_w`a%Fm!^eQz+3&@E z#Ao%HJX#UrdLiX^??{DRxj<#L0CBL~Vr;O?Y{(W=7?1Ow-U(u+x7u#4tE=nRo?AA| zd`dhWBPT*z9kkpPKW-{Wk?XN}#}|qvWf3shFXqNl!JG)dC4x%4LkJWAz*;sX$% z&Bh=tqWY53RO98pQ7C49{`mc+4uU_T-e2b*;*j&rGYkH+DXxuRAvAVf(56r7nF z!t2P?zq6`sKSParb8euV!b`fkq@N4(JOG#&NEyUpgA`tO5?R7D9 zMj&n@9h!r%TcV++CJ{8rvzxh{hoCF3KuzbbQTZLWNkA)REmj0l;rV_iRR{|ihtYk2 zW|$AJDxfo)?k4Aeg+9Q*SOjVqi<)q$F)A7sy`3moaE&dCa_C)YKx@vE=KutK5jk1hD@+m^`KuR}oD79T|q)ReZLY|u;KHqC-OL)GA02~dIcr{;~rbR0HOzy_~HmgwBa1k7*>lu%0D8hVtwDJJgJBm(eaVxP> zX{NI?@Lg7LBifHLfHu;9ZR)`Ka*8n@bcT{i0aFe*VZqS~$pSIwu-~2i{o#3e%r#E6 z2a@iHX@1rWU20ysIB*EG_+D<^e;7>_)9hak>Lc!WUhPW(Evhv~CD(a5Lh5WWgiXGZ zHYSTz>#Ir<*k!gr=fdv||F3x{_4j$0wSNMJfBHL_EBLOHWDoEY_xATu^j3mnK)TX& zg44?-;C6ceJfP+1M)xqR=PrDb04(ckT-wLNh9q{8c~tMNJ)PDmn;m2G?hGq@Ji zCIB7fuIJ_YfYr^iuWP*FCN&50-WTdu7iTdR7hs^wR?qH$Nt#$Yt7Taq9sS4zp42T) zK$)W+$aZ*qOv}KqtGAQ=E-NXu@nHCNH0FjKkLCf{MOwn>E=@rAt!4qgvh8rO-T_7X z=hs_sj07Id@D9`zm7o)Xnd2JJAoUu12B5@}3)pw9%xl@(bGbS0K4pLM5LtT_&+C-Z zYmZ6H{OlRuCvkM#7`Ls}!3;Tw`$0FI{kFP87HtSWZE~M-ylFL{Z^gDFvH)ckfxmwK z{283j3*eVQC-RUAxm@7sgh%qQ>!*LnH{RWz3$xORq^$igH*4~Rg$3Fa9~I?G+G^y@ zrAE0qA%saaPj9}-XQjZjLS9ylVk=)Gps}%WskoCe4a|D?QVU)s`DEpSu-j~m&P+8I zFE24KFK>nAM9Uzp+~@OOM;;O9yHwx3kT=ih=%Nx6dn0M(sf~O zHOIE51hgZ4x1fM0;0ohHTy!yIWqbheS48ac z8*+M%M}G?-wwB~ljt$ahAURkx=sy;vFcJQU23=stlTR5!v zGDrAs_PFLkvY!YK-PKs+~~Wp6!t zGC02+82Cye-2nXa`y(7||DYfjpvq7{x0^t`qRm(fB$<*5Ye8TN!Go#DX$mJlOpbER zPcM1{l)iU6=mUVx|J^fOIhleL9-R<3)_xO3p7*aLfULTH`3EK;7#kZ~jpGi6cV%T| zZ`5@9>PSW4e$cSPNW(o4M(-E8!~&*UocbED^_~N6bZhk3EK0;r;Q(mH!g8yCL;jO0 z)!fpnf0zgHUgGz_17s&VQ=OnTZ^f3~kuI}3psX7Wv`AXcRV2@U)r-4z{sPGai-bJ| zbJg-qfV2g8MxOi**e8I%@&dsCCFsAWFxA!7R~2ip_~XSq>K!anj!&UvysFy@viaXF z1SE14L+=KGgkN>g+BXXBMDHeV>XrXevP}9}UF25G9X%VOK7G2oX6^c+=CJ%PMV?47 zd14P3eMg9y#ODeLMb-{Q%t_oxJLGLL5CfzXm zRGxSvLaic&qWrQ(T0!D5RG=@pdpmd^0{qZ(TB-{V-@?@1>^Bt3V zz7QZI-ud%W5)%wM^*y*RwF4Un5r7oUM2&-mgH!3Ktdi1gG=lbGh}v*KjBR$x$7riqsvw8?wXro9!b;7hDJbJ`+1c4;&enoV>%#wspYRTcb_I z-KDK=ykN~o!f*Qw=tIjXZoAnVh+)QmbuU*crV88_u*pQQZUvfe!fqA4Wf?Ijz-WKr z+@%NbBZx|^s<*rV!(B}UmI0qS?qell)w=&kI}@a~4Vzeg~M>o*x>M z601{BQD6-21mIY#OBj@>4E+Z+lYdO~ zc7{=4e7yrW)jp6 zJcz^CjDDVah%RPn$?S1)ViVs`R^m<};P@R76=sdPPe4&r>m$ooz2TU(^nlvje9+9NJVNx>Ta38vklTp!^a2F4`N%<}^A1)CrY_7=c2e-dyG_ zM~|T=m11bqqTV59#6U}pwwnfuouajMk(@AqL09L8E&!!F0}sRbYQHnLHn$u+Y@z;K zDSn%Sm5VDHlyXqh^ELaTA0E z?#u78lvH$-K=6N*o`e$eH0>rRs}H3~(2fQ?dBFErJ8Y@ce_-TP^2hT%;?jUzzSub3`RsFZTR0n;8ijSLJ4&4#>{rlAjWJC<6m}6Kx(@Ovb3K-?UHJGlAC%K^1#DFF8Q%TvQ z54(L{1cg!Q_UgMuFB$)Oe#D0X<{WL$#(Wz#j9BJJLH#(EK^s1s&shux^++t$W1FKu zEoCnS^d>qxjoFv>N=}%1Up*KCLm!OU%x_6p&kK!>F?emYcU^}2pa!D4mS2ee)N%je zIt$3a`>sPy9X;4VJqa2gJ4EWo?&%#?Q=f&d4t>5o>&Chz#=`>*b)C>WKCCW*)NWii zr4?*LJrb8t0jvYl2wrQK*n4aC44kE#v-#j$jBMdoSuT96rhzB{oQmwM=z*;^E`~pv zPU~O#FbxO`=fznF$Q4@iHPN&G)a$)xlx{H=7bLA6aax~R*c9t)_ugjiy1=R``LPg2 zssg6ju)eHLJWXM2D=B{5yNr1gX&uQgcQ}6!5`mO<^1?)yD?jf6FL#r}A?n)wR(-9B z2KFagXPSB1l|+@FHk3%@y?kqT8>R-*dkNqj6z9n9shsX9JMb`yEq^={F@6+&?y5G} z3>kJ#wYK=sg Wis$!j!GB@`k&#rCD0rpk`+opkND!U? diff --git a/doc/salome/gui/GEOM/pics/filling_compoundsn.png b/doc/salome/gui/GEOM/pics/filling_compoundsn.png deleted file mode 100755 index 9d3846b2b3837d8c700726b63290259f38d7e71a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2507 zcmb`Jdpy&N8^UAX-Jb4 zA-U5PSL=h<`u0xab z?<2S@TzTOxlr!tL&EZs?=Y#j*5cv2Hj-a@~^Ao+NU&1)V@!%^RFfVKE-JtQMxbru; z?nI{CRyBEB!WIYuahUlJ1WERj8=rYMc*Jn{dVT(V7%u7JT$AzGff(lS+)Wk$x4|WK zIQkJ#aVudxb*SibgGAQUnqY0PL)cK8ih*2w4UM0k;3iMb{Bd&80sw*D9i-hFIcJ%E z7o&0!hbz$$2AdwzR(0eJbl!^ACZJ3|vN`yN>`iEZbWyL+qKK7YgDY97he^t|j3<%& z8;WC=jiRq1p>9$NtK40YfGV9ShlEy8595;77hcV8uMi75?U>IAsQSr^VQb6tUq7z3 zJFfR(S}ub@4^0P_8IdxNMHHY7+OQL;zycsUa5xYR-7WvWUvo&X0*@#CEZ*4ivol3I z?Z}J&ikXzF*eLF&{0@MmGI)~kDpG}l%I|K0~>DMJRmfFT{H$?q#>CU=KBXes|=( zI5wEXyOn=L5JnlA#}wOBvA3DoZqhmVZEbpNW_FrnVI&EX66RT4f2hH?W-TOs07Mf1 zSx0Yc)vcJ3>bG86tv#Xpbi8q6FKQx@Lv}S=$MOT+6;t!4>8yyN*Ep5PXAG?<=4_N`zY1vO+gM15 zYq6XrM(u=t@N{GFn{uaD&|wc11bN+yHaIie*pTB=C-E zbOM_M|Yd>p3|Ez43yiyKXQE*>?A{+?(9i|rsbvDgtLy=iHuRZ4#(6E4qnpIit zzt3o2f`}-Ox_9`7E9?tTVFg)5CFHW|Yqf`4>{2g`$wPR!&M%lW#Z@dWzP!Kh^ehW39^mY}8 zPZ)O^!mR|lqvZ_=cTIU&fc{4ZbK!iiL9=4<@O9hF7G$^Cq6%Z1*lEy-13(Qq?Uxn< zDtBArRwBP~o!5$7$~&_rRx$Z6#Ddo06`XyZF7)bjbbyu!4am>B? z!szIxH@1c`G42Pvu6ti5I|!YcQ!%u1o!I=(XFrTkns=B0^v4lk^rnx&33@MmP7A!w zA`s+7OOFM#1HqnV^$Ig{0O>VKA&6>P%SDJ&JCDNX9;;@lt1g3Xsk$$SN4Y?g5u8PX zCKWKXw<$MPo4}kDt9I~lUT-u#uRAFoKN;V`H9#v>%|c_v9P zyF?UM0D{E2sXIG!_M2Eg!=9-!z^4DjGcj8V9X+}?h@LmZYtvkeG=qcE-+6>wdj=$* zs?0Nxa8(7qgyRUmc%)EbdmfC>_JLfsxYLU(osU33&B+S|Unlp*43i|&4YGZ~W~R3* zVWv1LwkTZ@38T{vlm}PEFNFT53`i*GMv*L{+f30(r<)Oa$;Yf<^nE4ww1%gQYlQTY z8fuCq5~LPy6p1f?G8|UDo#4o$h6Z=Nf8H3sP7b)^#Li`le&g-GNELBC;;K6N3?7-n z9M>X!R+;*VGZ91P51SSgu2XL%&TzfdrvDw|f8~f|b!gVje|LO9zfoc6^#+n2c(Hc>gf%UbHP-{U5C#`1p_|4?|gjNJ5V+(7R(kh0Q zJ78-37&=O(%m1wVI#{3IB{}$HVw_FQ@FKT*U*0uFj z^;b|UJ??{V9QyQ@Iy2Q3)RHl{HHMjyEgI}`qPruzA@iljqL>-UbIcbyY&%?{L)~Rp z#cvE`cXg$)S!I?ENc5)iPefnaZDwHOY`(qn!LB3g$o+NQKc->+A4N2}U0>eW5OBSJ RXI-Sp+2e_}MYyxke*;1+j{*Py diff --git a/doc/salome/gui/GEOM/pics/fillingsn.png b/doc/salome/gui/GEOM/pics/fillingsn.png deleted file mode 100755 index 2446e89d514b049117bdfa37efd9f13e2e3088d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9402 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 O1nBD+X;)}EME)PCg75PH diff --git a/doc/salome/gui/GEOM/pics/free_boudaries1.png b/doc/salome/gui/GEOM/pics/free_boudaries1.png deleted file mode 100755 index 20c29f96519216cc0fc638364dd71297b4ed18f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12909 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 aYF{Zms#hb+dg001OLOyrk4#*LXl0Du9Y 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 diff --git a/doc/salome/gui/GEOM/pics/fusesn1.png b/doc/salome/gui/GEOM/pics/fusesn1.png deleted file mode 100755 index e0118cbd2f9f1166d6f1b448cc6029f0c779d8d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14030 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

    1a*as zavMy+2|D+3|7dZ!*pmFrgS(QV*q!NoA5O*D9&&gl`xqUn@(|}57Sa&7)S=OMS$%*4 zx$t7Hs9cV1{}4SNj{`3L4lO<|b(x03ziQ7qrfA)*BQiZj4m-U~1$}f>YJ=z65BJ}L zY9bMQL*^to>T3LDs(rkq$%+1-bnO|iHfm)6qY|2ivzdusq6dwiFn+}A{-DxMQ>+%b z)fpMO3Tl|{@mltE@!;kH2TqTfzno052vAwVt<3HEJ!&syixk#DO$gX zU9p96p^f#UW#UgSQ`S!MTyp~Nj;TNIBtALqwn?|1+f)NV06YT!!A@4ndq~vpJxhrxS=?CIN1%X)GOWkaKHV=cTqoN`sq`t zix0PZ->$NH4i{CLPX2uu&~Iyep`X6>l#1exi*tY+e3o?@9@P()>!liZ<$;9byzRgr z<|3~_30ayo^P+<2^CaJy-A>L`K1}D{4Ln>;m*SVJ^yys5K*xTXJ>k~ag)txpjYS|Z zwr6^CL6|S3{@vHw<YDYSS#9AFUUb35Wv#JWe_eHdemCQ$+ovL(!nH*ddC2W`-4qksnzNW9R zl&U!z@%1#`MdoSCgH*}W-fqXK>uORc!6iiY)VIGKqQdP@P01YRC*Tz(PrfmWk3+fi9jHB#pOYvY{||rK#u;XIEiu1cNtZn) z`F934h$o)tjtHmh^E6yry9{LNa|M+lvp2dbmeS8&<6->}>sNHaAs;8?sTv}IrCBoJ zAGnyig&!uDb%>eVs}~Oq!dI1roxH{kqNR*&BX<#7BtW>nTz7XJqGR9|WP4cQ?{7&! zmwVAq+NGz*-b6o(epf!anY6!=LM+hNCi+qrZOa*1C$I6VbNGpC47CdEIl&+6{FBhC z#vE2SrafjmI};TrtTf&>sxS8h@7Fapft4Zqnp&Y!uo|LYs!0xiT{vQq&>*^Rh)2|1 z1$~|Ke9xyF;w1uSKQL(Da(#>(ZsasUPLGpC=$)z2l`NWK+_-Lx{CEss{Oi0uzd9mGd_FiiJg~(virx?T_K#UX5Do&x#ZKo za)#sBQ8T%|1xLTMJusO;%E>V(%7#wLB0niJ0?y|)kxVnuDidxrB9XG1jjVFd9M08# za8JN3=|?Fg-XAHf=fuC?psXlH{%ENOb3`|FlB=)?OVM||LCGsGf?)9)s&j9~J) zD(^q>&!Q&J-pIvwQ%%bE8&k@3DkxLF=VX_hO(o9um}E~bQdb>gnsQ!C5kw$*!Ks|! zetid^7w^7n?4ZV#rBQSMj(%!IOzE$=ROmEhl93Eq^U1j`CC8>{9~XPt;`?(pK+@(*HxJfy`8ybh`PWxBwqeQ|w~&icNoE)z1)%zxECD_;~OrRlP6s(P?gm zTM)65YO!(L?6Ej^3K;rbtl-ju)n7e4E6LBW22iX;DIma8|)v_(v@c;VHp+N`0`wFE~Kq6pdwGDpD*#k>(`n zuzt(-@t9?M>AcO)s#!A1#pgRu?}hpd@+kN7m-@2?0r+^r5y9`*XwmMg2MkkCR2B{f z3r)^xWE6+iio}-XXBxu8lTb08!cnuu4F2oN#9CRMy2Re$Nh`w>!%>(rpi3 zWvvrMf*PXr!Xb{Qn&`|k>e|C-&kjn!2=P}+sQVLNDeT;20Z*>=uh>JX2JF%2{Oo7C z4Q14{@4wK$lE^hp`E@mVLzLkB!O4!g;U;Xf7sqYoscJyKd^$IgXJk|pn%O z;Z(hB@jvV_QftwB{2l?SmhHROKRmm%i}K^i20UIgJ_n|#zn?Gvq)1*KUtP`XGM6AU zkn@Zzlbsqj=q@e;#R+`>Mpe*5_WCsINv?Mi9fzw`rf-D@@SzLjvtb;G&Xn?o+)mFl z^j<>*Z1EG%U{7Ael@j#z_leSlx;|z=aoFqjA;fv@CL-im-tq&L=BO_xq>B_&R&8ga4GM|+cRxLEcr+)r>!GX$?@6n z;lI3Lj2HhVStIiI)E1**I+rNlYH`Q_t~J1%GC&c^=I%(sYh=W zRKX)}4qx*DGczo_gYZno6ERnfG}4_J((xMx)>@@wXHR=_9VrN|G3Q4N5?k#Ht+6V* z%m*7qV-@Ltwg3+R!{qxcm_>pm_L0;S4ceSJ-U4o1m2&0L|eV3!ro0T zBC-H}PJowp5*x$W$Ht4a0;x^!+tlE(2Hx)x5wRbZmUjr>zx*Zf6F6lH+uyJ$wpt<( z`Wh^tEjx)9j(HyP%Rf*uN96CTcdag&b0wm+g$=Aw-DjIcG)PElXAOqF0-ATn`Rejl zI{os#XGsK_Ln*{9xtJ-Wrc}~>9+=~}|3F(NBR!Dcl40$yPZIpUG8FS-+)Y!ui!{P| z_=r9W5@JOBWOffRg$jSkbnTP+Aa=yf-5t~wp%9sb+|!Irpe+(#$RhZ& z1B>g|PXeX|($B5NimLPO?ZtDh;qL|0L#|t~zdXr1M2-5#6)R>bw(|g)>$)} z+F$dXQPcb47wJEpY@%^H`LQ1)*j(jwrm0y!kYMl7%q5rMJ;^mAAi}eP5^M^ujOf#; z8;YkgwMFlH671~!x8|(zWAL?kp*&nI7@AV&B6m3;`}jVS4{B1R5}t1F`vKdF$mF(!jT-6%WMsdWsNI& z=k{avm|=7bBxA&nMw%nbnkMK8j||dSPE~B*8~ifk7luvzy0AHMK>xzQvGAsEcFfF? z;#q9*LdK~tOOlm7)=f!Vt!%&~CAuf<5vqKGt-f}|V0h#NUaJ4f_;L28_4sl+#-z=) z0f4Ui>4vKmQ0on#QqBhL(ttO_jWxIQI`)jLanePoq@&%|h{j4L$b{Ug9= zgp|B|A(6MlS;*_bmDIH2*p@1@YK@j9O!6~qcu z5eubcaSDLzSA%IACDe2xr6U(_RINj?%1!>l*lzF(f(N)Kl;V6@u$^X{ZzX@54aZHt ze&OGk^N@GJ3bPrUupGkQJL;g+s)9U8Y)S0mU!V}Hsbs^1scjAl3-MlG*jD5<&K$)KbW zYGy)e{8sn=A|;G)a>X{aE=X1ixLTwWO`~+FssbnU%?f_yDSv$8QTl94fp;TL%_6== z4>$!qJqF`R{S7q*OXaUg_%H$R_h#R=_${6G7#6Feg^}eXWxH^>a`zsg%;w1>2HI@D z6aaR%QD=`zF=gLN`R)}(>OrzH420**X5zfQR@Y$lIc?xB)*Nmx`L25aB9J2buX4^oq zk;dG**tp%Tz;@1bR(V6&z9)QVv)x{LwfTj{q$m>KHhi-@`+&<-`b=skc3Z`L{e_2V zjcBHExkeO?b@PLWx#92KT0UfNPVJ2TIFWi`F<qD*S*@Uz0=eS~_lvU?twRpHKW|F0tzIkGJzuyf6?kkX*Qvaj366tM%GC7WR zB=Fint9YLZuz;UyPt8%|C)CP{;ytqh+0XJyQWTE%Kd*4!Z@v6ZoM6Rxr2Hy(5B`Qu zBcBc8f_O}#BbF0`Zi0fuBBM)-(P3L zOEI$egqKk_+ivBJLNvi${jy; zRTkOrvCyvwFSUmk21N|m=y^rb!YM||f4PEboKoGSka@)P8m(Pgf6p(K;>U)n7rpM5 ziVqn6>qSzk2ij)csaem~^PM)DqoI4WSax#ytIt1Dl^Si{s#}Q(^W@rZMjITMqz&(}y~b zfG5X{FY4Y1L`fdS2G^)juP7~oVh?~plovN=PA%m916TU_@!!%7=h3&?jfYb=O5{6X z%I=A!+{)!h5t%R*JFD&IR!}AdImnsxo^^Ihi@U`157ECg6}V(IV07$o+d|984H)@8 z)6>n3=!|i@abkMadPSzSOk*vd$*uNV{pFh`W zTNj^Brf)D|EM0t##lFuX+RlD?U3>AtdQ;WPSKefWJm#3n3($7`CWO81MZUhT>i!hj zN*`efW$EL6Ce`(0heuL!pQ!a&mXOdM+Z?C_)JIt?IKUEF?nLUeMmbHI)M=tk5UiYu zMo*i5(!=qht>Y}G4m^GOY~%7>-*MaBYn^%+4R}`(vz-+?w8o?#3~BbLNq@0R6=$y) zKr>q7=^Q6{Auza6rIaseo#mME%6CDylICO(jw0X+QK@A2grUx{nPXmN{;8(R8dX<7 zE8gbjsoeQCtG_Xp{nIkV(4*^4J6=P)a2sMNX3!$KP(SjCJ#KjURp>%hw_}A@&Z5Kl ze{nHy5pRQVVAlbVooJ!vfeI2%;B1c9sB!N97W}@4b;y$FD)CbCrw6i%o-F96+lqWy z2l?VF)Oi#mHn8eZ?A8nqezJqdgM5qYl%;-yekr&E1OU-Y@Xb;Q{8zj z$nN|8{*Y;OAjpCie+NtK^giUXf{_{bT|XR!y=FLRqmAyZgTwQZF1_1G&F4rtPWddZ zQ)L7+H}}Y;k z)JKKl3I;`|y=N4NhO#Tz77S3IY?9AJD2szr%>iVKtg@Qz%NeTQZ^pO!L$mPRHeX78 z8~m1;+$$D^-3?as0ASKQKQ6b}t_!^-c{M#EL1+ox5;hUqgiZt(!F@}zOQyKbW^H+8 z%e5TPHq`qf0V;-|xS8J6^-tI~lB3vX2c7n=&O1JG%enjf`H~2a1_a7OZz+{~ELai% z@ctIEPu4SHx7!ujLdkR9ex!+HPUkGMuYL!y7c<2cL*Y-7P`u@?QzHx`Vx`ocTMf%K z%%pBxY>=!HVJtcZF|NNc$R;<)Ttxq(A$$=HIdqT!ttkzPx*`o1Vyh!_4>N+X*|+$E zcUDu!-mmbGo)iDjp={B%qz)9UtWZ#jH6Zc06Mg~>f7b#>Ns!OqFv(@&&xrgy{8?r9 zc0V+M<9JZMU5Gb-kXf;Yb!t;emH>n0 zj8fp+$PQ!-p9F5=94PnP?fTX0GVLh4@(KS>6G=+1=0llw*PcXMjz3b@yy=0_LYr{E zUx`-*l6yr}E6kkDwN(r7&5zEXcD~ZFWH@FQEfSLqi^x!w1(~Y-8v9+Ygk9w?j*2qE zpA_Q47}Y~7u6aJ0;UI_GLw!@5@TCBYw^1Z1ZX2XYo#82;n*Fxl(uSZVDyH z+9?*-1Me|tJH2t?X$6Fj{24&JO5@wjwa5y>U6Lu5&!b=1gWi%~asGXV-r2`X!k=(Ff5nXF{yKFOSga6?Qht%)`%& ze6I{#`!fIZi#Cn#`fN^Qe8H&Ci#Y2#_dTNJ{zgXB<=sB?J?4cWtv-U-7Ql{zmX((F z{8lJm=yc=w`^8$knl7XF-^^;+Gqa)AJT2L^m*#bI{i247+_@odg@*sS+YqpK)8p>V zUlU`piXj49w}mz78(a(8bbVT!d^JpdmtN%ipts)+2HuQPExWvQcq> zDi$@s4E?c?c-N1=caF@RihlAB=Q!O=I-Y{|ZTWL+o+Tfk_zdWKS+SGfNIPr_Ki5}y znhVy+DoE*<6|Pm2TIXJupK=bJN* zE!4FZ-#8gdI5w)s!)tY%mqI`kT{mJpOA7|!RGrmlPW!c@x$1ai>+L7yvl$k6C6=M& zfC%(?1+#)DYn0M0eSQ4X8Lcmd5OeJ+;wLI!AHQz%7#23Zc)Y}{arOgDab%?qY&n5lyO^D>lTf|aeK>qh!;k!v z&&+E~mhS!SSE)2LNJHN`oWJblFmjovEsWV4Rk9%ejfT0>PT_^Rm?|3!PFA>tFW2ot9Oj8iwPSS3QDNzvqFVw zh$hTmFl}e8vkb=~1lv$p3a8!MI)R>v9m3arkh~h+lyvRP>iiF=J|4ioq0MuHB{Gb=a79+;^Tznji6^M<4m z_7YIVXND?Al*GBlh>Y=s&)l(-9SQO#nv8IFW0ZFo^l|-qAsf~vpS%5o6G{H*VNlfL zBsmn3RaHbC{KE8PAxXMzJEX$*ijF3j*GohH8j1cfc$<_!%FJ*)QRb|Q5@z{yQ?i&l z`16Oh!}oubTe{{Ye#SUS21-je$rz=A0ouxlrq_K=#O{7|U|GKS4m8DFi^Dypgurdp z7kDp#;YCmf!~vyJ039Uw`q$y}P~j1jx7GsZpnuhC zWZ0?uHq^IWd4|<`&C>H`1)BXL{Q7UApg#f!!0DLAoPUA_8MEZM1R*BwCKI}UzYFRR zn-9gHJ$^W(%hLLmgT);LKEjNj^&5XV_Xc5yA$x#KOP5B^2j$JG(mtkHXArZ>@5Qud zv7RxhcD?Bh;UK)mdjG4kInXp3&>3@lf%hc;%@<5zggEa+y+kK(#5KxFnCGv0cu2+m zEDkzdwvKJitrrl&TDEk+x?>^DFQC8z9fo{omxIA!rHVaU0U(q_;4R*R(<|Oa$^Ri^ zo7}!W3h;VZ_1;S(g+Nt;*WzK1I? z{&pI7hu?l`b4KJ+EoYt^K|uTY2Q;L(YeXtHTK3RdRE#(b z#gQuC(JRq*RV*d z=O9;w8ZBvkuhKGz_7D%DetE3{w2zIw9S675|BVeUOP5vFHvB~+lKqvS88lf;FRC?X zjpSD?JZ!^_;+^lY%-g;c-_GGgo0SkuuVy&r&-cG+@64S5aoUF&+}SO%jx8sko#$ll z87{;VwhqS?cbih8)DA9}7NwpKDznfJ{&}Q9fc_!HZcp2;4vdfoOQ;!!;2IR}4PWZF zbR-tmRuNGDFgfi&K{k6X8{Cy?*Dq1 z;9TAM665}#`t_3oafrtWz1~QUfeXfyA~5GB1%{OpOh?vzk5jpl-5l|LI1z(4_PyZv ztP%S4-OKnwe?m77xv$B(`A!I=eX!z4u>Fx7t=02%RYQiIc2%HrPz?f>&GE}JUaBJD zj(Y@vz>U9VBf~+ENmRVd2+;?P^&C2{~c0 zn@6jBA^?hpS|xu4WE#H@zgoo!Rr8F0uNFEjQ3FP?bFo&+7(fm=>1~%VRX?!_iSWCo zH@DXD>)>;ye?ey?66O*uNCDa1R+{uxwpMbX&Q>?k;&hYuXEiAR)P~vIr8}j)5g(Mc ztBESQd-|hq8VV%i}RX<`Kxp6!2TA_ z&Iy^}uDc*&rM7G+@pF-B1qs9b^jK@Ki7%b8s1QwrJuomxQ1Zyq`awaMeb-JGSRdAA z)5Yuxw4a1#@0cBuf3s;X&cg-TrF{v2=Q(e(Y!jbzQR6U+Dp%P%Ahm*7(~CMF=8k82 zryu1rik108B&J94>a-%V9tJ`a9!yVj+u{RHv~I6&3N~bEJcFw8td!lt1s}#My+6E4 z^(6f;7NqdBMY3$(+i6#FC$9_e3@&OBcBAZ_??o~w{pL~i&?=A&vBhPn;lh4fbS7Mh5! z>?zo5H2D38E2vp|_Eq7Ycv-Vt`sKq3=6DI7D&rqeJLW8NYxY4B7uH?F?K0<|t%4-D zb)Lp$R{k>^p=_BO>}^uzwHhm~qqjx-8-iIC)$uf-lignrgL^`OlsmYxIbDy;bQ>0Z z>vJ$&VCUr#vs>!{RYfQ`q3!hgB=km*aS|CU@~@_p7d%LbC`(vPRKC#2Ik!D$#5Prq z6Pqu5nr{z(wR3*`j1gG1>^GG9POX*yJO2Y7hf09Pg;6S6*F|&_R_MR_4XLaDn)JC` zlse9suXV#3Ftz|U1&n}Q^?w(x#WoPa0k8AP{b77c9dYG8*0!uOVmI& zk=oq%S1CdeTHGH(<9ciNlj-!Nul`r87qz<|X{(!LMQSBi_|81F-yn+_dy`3>$YX?& z+W0r!YsZn}d80{_ljL(@XKr$oG-bL$XwH0x1ju#eddB zo+2SWLXWojZq%W&^=zS3?}}>0$!OGQP|Nvp<>mK+5ayt9E-ngv268uaazlbDfFig| z)(qJz!?K!LVwdLq!kXksURJz?Hn&u{jiI2Nw(r_7eGlL+FVY%K%+P0{&5zDQ$)A*^ zu9in5c{m?hacI0mpNrYP&!awBes%ifc9&`%+h?a<&%~QuYHOrRYaKu}(Jd7->(V3* z2q3@=!E5g$1JWH;k?Dar7F_0Ul+m+^aq~uJIS8CN<$rVN%Pd1v8}IE<$|=^Fibn(DNKH|zxNve1vX z=Iy(7K3)@_3+kbQzy5>rmxOJ>s87< zCLV2Lz(HyQf9;vmli{53I#tD`U&zLt_v5ZDa6FCAG#tNLR1H{^Rg2hkIFtT7!$^AG z8bGpI;5W8T=^a=SDMqEYYIdY$jwk`*RcymfEDx6`yFMl)Ky%c?pHXI!sE?5mQcH^O z>B@ypCtK2B;g==Np#T;J@;MAZ1k8sDdhb8d{~1>)=1X2A(cqb}m?GL6=H3c|4*_jC zlO=3L`(So4?Iz?;@BB^-LV^p`JcT}4$*zO-Q=W!^k*<$70i^>SBTpA-)ic3~mzN%S zAed*rjEtpXBxeV&V?3^A9u5$>R>J`9(0Cd@0>Dr zhk3(2LZ6d>-x09jh+w0mRW*d+uy_m`f2Ok{OKPE+`x_gSu{;k$ZIiu;aHs+Yi{T}} zjU&~PKuKX8g8;o2I-gv4IX!1EhT?!$FC-JOqw^W|skJW^yN({ah?fRGA-llb%^MoN za3!4u{8r<^;amyShQh0cJJ5L4nS#H`oy9!cSP(`jhL8|&aSf~+wMQ2$5;36bqXCAS z-L^J7@?iZ!Cf{b;CephRCC%96B5OuauWN@4RGS6)1t|Kv$TTOBghl~~-@Cz5)Fi?i zlC$(xto?55W7JaK1x!#^q<~q=K{%o{K%}XKHlhcp20WxSW&q$t3jNzF0xnrY(UxyG zi?Z8OL)%+_YC=GBQu#EwjplfQdA|-M2BdD6_DrgjTFjZuL zfum-3w-Yp_kF4YEC>(>XYJJi(c^LNjB*Raj<3$aM!xmo%^1-2V(1U!U{hg3nB7L*X z)P+kHW}?R%P_PxbaM^i+fU^LkyDRaTxaW!Px0j-{mzS5xzA~960=<7-0p!JYO9)wG zMNB-t0bjgoKN&%)U}QxSr%iJ0b6!Td8qI*EQfx^k9exQp{hxd>qJ*r=Ih^aCC(jx4 z74R<%_e*W1pW!&Y+*KMWB61Z!o965u^v9ar-DrN1?YWjs5MRHmw?G3s!=KtFE{aUz>OBQ818L44W1o$n zHh1Q|z*uX1C$7IixL&t$vk3`Tm#5>Eyk#_Va5FB^)Auhob^MI7hCtOjv{^Qcn{mqi z=^tTg{6vm(O~JB@GSh9pn`_NjWS4#<(QJK#4;;z*ldiu7m>fXzXn@&gxg2!H*%T;0 zom4N6uyG;X+^cLYx2e@sHvS4K~D@Iq?yh>YqJA zy1*wBi?O=`nk@kE*;rW)iBF@KN%Wgw7ks&MZYw$JOWFPVgpsdXg5)e7%0DtKd3Z(3 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 Ux+)5M7#<=g4SQZFrT_l_12wWEMgRZ+ diff --git a/doc/salome/gui/GEOM/pics/geomexport.png b/doc/salome/gui/GEOM/pics/geomexport.png deleted file mode 100755 index c37713941297964547663c1cd0891e9d6357156f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15829 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 diff --git a/doc/salome/gui/GEOM/pics/geomimport.png b/doc/salome/gui/GEOM/pics/geomimport.png deleted file mode 100755 index 516a819bd1b416f1a551d421384390d76ae2bc36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15403 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 diff --git a/doc/salome/gui/GEOM/pics/interpol.png b/doc/salome/gui/GEOM/pics/interpol.png deleted file mode 100755 index ac77ddfa32a4e2cd51bcb98a20869e128a62bece..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2888 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 diff --git a/doc/salome/gui/GEOM/pics/line.png b/doc/salome/gui/GEOM/pics/line.png deleted file mode 100755 index 3c931a1e9a4f2270e5d79b3ec2f3d2762eaf8911..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10742 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 diff --git a/doc/salome/gui/GEOM/pics/lines.png b/doc/salome/gui/GEOM/pics/lines.png deleted file mode 100755 index de12c1122618c3e63797d3b8df0932ed7991a3f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2403 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 diff --git a/doc/salome/gui/GEOM/pics/measures1.png b/doc/salome/gui/GEOM/pics/measures1.png deleted file mode 100755 index 6d5d698b4ef83462a01fde543b1f0deb367d696c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10455 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 diff --git a/doc/salome/gui/GEOM/pics/measures10.png b/doc/salome/gui/GEOM/pics/measures10.png deleted file mode 100755 index 33023cc49af841d9fec69d0c50c0b0ac4624c28e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14601 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 T%{1_eBS=9;Rl5AGN$~#y693AM diff --git a/doc/salome/gui/GEOM/pics/measures3.png b/doc/salome/gui/GEOM/pics/measures3.png deleted file mode 100755 index 9a55aad4afbc44ba5e49931cdc14584185f9edbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14450 zcmb_@byQVvy8i)`7EnMMM7j|q4k;}S!lAoCx*HS_B&9n93F+<>kp}7RmhOi8@|`AjJHZp`L{=)u7yw-{6j(S{_VO+GrL6eS@wwv=S%v_RSYRu{)xfO?lhet#4 z;jSGpC2TLL{@i-5QL=tas?L7x_x7n8<8$lzMwB

    }VrmFm6ZKSbZ#OZ!HPYX`H5%2cL57{C?gj(~S{ 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

    Fb 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 diff --git a/doc/salome/gui/GEOM/pics/measures5.png b/doc/salome/gui/GEOM/pics/measures5.png deleted file mode 100755 index a323426e60197e1a2c0d314c054ba611a1e47e21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14641 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 apWVuw%kl?h``}+8A(G;07FO) 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 o`uh4Y?q6i25y)90Q{PhpHc>a_h2|FrvqgZ_7U9 zYQg!cWN$D@jO~r4X ze4p%gY~0=q%tFF7!Bb2CxiBDMHAtnB8zb?Hz6JP2zLBvEt{j z3fK0(Dz>uHQ0|kHD^l~Gy69CW5j}i7?IfOlv@zZ%w)U0!eff?24dL)G{qft;bW3d? zc%AHq4MIq1Xg25$XHrG6VAba%%%m|JgO=t?wmr?3=4L`J#Z<&}Dx4mE&<|3h%K{Cp}be5OJ#e62h5wBdPqBd4dE3|uhdsk;_$mvw9YWfEI zX6w05j`v$Esc@|+U3lzQR>;dUS>kjn1>bE4B7;^QZ4n2*@U?f@@5(?6RM?C&_uXh8 z@($t3{tCm>l3RA6mW{jnW}>^<=6J!+h6AZK^t;~MRk!@j$EGG3iii*TzC6j))R(7A zs&vwR?>m)?vL7|nmJ6n(sq`%@PmT1R6b_fZWty_33b8#A-+oLidN@I$yte6&CKBB* zp&r98ehHsbikr52B$hes%xMh=m4AkcoW!43}QqEk~n3^Yrv|-c8(DJl&W|n}$Z;*WRqCW|ih- z2NBT(Cl2w{`Qe=neg87KU1`ImD zmo2qUS;|fj(P8Y>bmCT%$0t@pyye069JaF*%FGU_KTMRMI_~e}k5A4Nx$rz2cPEUx z!79=9DH9rx5}`L9LgjMgpiB3D6d@TlRBUvG4`<>2PvI^X+yiGv1^1zF7PTn{8;yw0 zw^)<(HEGYqx+RS-|^+h6X#-RCf#e}`MQ zym{TtiBFbB4gvCE^VcVqD`X43T+vb%h0o zNYltk;93!}hz7DY*1s^wD0ppvV{xTIP0sm7CpNjIxBCFYWFQtqb&=UR;dkD3XLdSR10FdIG(gLrLM zz^VmSJ&3PjdpRQ-b2Q3)B58l)6Bg?bSvFk|$82!%9+fWmi_Lx`O<5MszR_OXPCR*F?`q|Z??Ws>6mk*+D*zBq;d-^w2i&IUl z?B|N((&nzp9!g`b#M_y$K$tNHaZL1651t51@KaulwhFg*bROY%nXDHLse)}SRSqhP z9rcMB8eHD-JhmliCQy}XemiEwhi)7+UzyxLEIH^bMbL>Zr|eCGJ5Hm~p`-Y17Zpnl zQFE?+&?4sbc5fFKx^nwhnNQ@^#ZFzry8>ne=5Zmdz?4c{lv zZ&ta#k$boxrTaPAf~|S3GuMb^A1y=jWxe5^TI>(lMCZ_4^o+g)8jYpRMZwR{zlW+Q zbq+A1BZhf9P~m!nrbiM`69)K6SPf-#EI55mk9*osTk&RM@{#T{l{^chY9}nG1E|Qw z?c-qz&xf?QztHePIx&~`TU%RdeS`3>^?pwwdT*@s7y?m)Q3jRkgu6vc-8pPk!ZU-E zxq2o;9C|krbDZ0BwXn zeEVn&y)1i0+FBHi5<2g~`DmSid6~q*A02sfVFm zMyu_r5^pf6``TR6JHjvgtU09|(RawQaX+V+EEJBn%pu-(F$Si!UzgdRPNmgp^x`n_cR&uQXD(E!Zf6Y&*+Y^J z518phDVq1%i6mtz83SOmy(lA|+&)KB(L|rOj3*9E`>FPkf#+9DS6&jE4CsfKmKlBr ziYW*$yjyLPNk3R7w5kg?kq-BK%;_YgKjx|+&LvOb3v@FTiK`+A9g|)9npy)gZ2}`k zBR_wCgRe>HQ3wY%0l13pG>)C{_0YCQnwrAY)YNH`t}PAFfi65oM%apT6pi={GA*}s z+oP^-OOkOAf8|q2CRVZA^gx=5bd(7ds0d$lh35wiVUVfjc~e;{%Xs^nOscQz9M@;I zBxyZ=u?(n?ut{B@;I{`d{4mc*+f73p|hX zfZ^Si!Jr;uP>@M_l}3yo#9mLbueXYo?5M!^?A+^y6)^@cXtu%ERar{mY=u+TgI->< z5~td&SWhsot6qrxMf%xYDRDv5{Z^4Rp-c4*!TikvXp@tjPo(M#^$UhX1(ffyj z49(ob83WZgBLtqTg2D|>3WScG{|ET_WTuQ|d)BRtk1t!KQuSDT&$-0#-^H?YiJL%a4NDUVRN@R!*aSe`ffsbsIL2h zKX3}kFVNlH-=5*iE)gnob%)|QoyzHUX5-3so(Pt4h3<21cpQWW*G;ps;5M>j?8NeN zCU+o!;bMR_O)Ob|GxhO#a#Rj%9odobUGMBS#_O0@;A5&M#EC^M3Z+?^AT*iZFvbzmJ{#Y>I+Kcp9ce?`-l{g7>}=ClHZw)boX%hOnL7@AdLGl1QQvie+T|^2 zY_;D;6pE=^1t=Y;2If8;m92F2jwTUt;Hey9vN-PR;VNC)rb%X}|MiX){vK z*wtB2x~vPM2SkF9hF6rvpW~p>XPZVRCQN0E-xPWn9=RwHhsF*bOqxYwJ+v8n5HOx6 za!e~YpU3`uKM#>Jd9q6GN*GZff;m7M!84x>%LU zknk+(3b;HBN`KOnQ|h$v7=3$p`lJPq(fnivhXs}hEo@3tSh^C~VPi(UvVk3}#EW3s zVxY5kMO`wwq$9qJqhvC3wL}Q{{#gdzN3Dw@t^K`^i&0_rErLcntIsl#aTuRGk>g7YV)y6h zk;t;4=tpLe;Ai(xll|=miQpz`ZU>C4!)wIyn>?Q*MO_@UuW<_hAI(4f{=xjPqw$oKle+zkeNcmU0u#bGIgL;oy2YRYhB>LRGHOejVoJYV`I79)X0@ZtfaS=iC+`O zmrFCac+Y8znDNKJ#k+BQJkAO`)f5Y!mg!Q9K6a#iy3(93PhYIig@R0Fx(_#Vel0tb zPzIRcwLF6Ix<)LK@|sT}M6@oeN7RF9QcI07uT)fs|5Q9t=XcEVpI$-@rF>4d6dP)f zbx$*QHB$;2aF6!~KT0J-QqjSIC&c7)YHHsH0!mTmMeI;w z`fm;mwKE=Y`|ki@MTE?cQ zD_dH!N=r+ZJ0Mbc3~G%l&Pv4>?mE_&MJ$&+ZCcSP-g4b3O%-tr=`g(~BorSRNyslC zP~)_4O|u|g*nZlnkGl%oa~ty;lhk16`O$(>lh?EAhp1eRrOoI!X%u1g+oXuO7lX87 z!L~QQX%^}NSQnrq-gOW)S9Xw%aXv}&#PVV38yw|w{di4R&gN6A(bCCr$;ir&&iC$) zEzoI$C#e)fKaF6C>Q?-sPHS9X>zBHBnV>zp-TQ_|niTyN4W}Avg|nB4U?Y_lJr;@a zpqciZKWm~k9(9Y9bclSIiHTKX8EF})boxZ2{E6IhzSil*ZDEM*Y*~bnfTYjX8x~M!z!lr-<=hq6f_JbM9snJOkGCXF9X6hg-@_9}x`w`%%zxTc18w3O_gt{+tbp6%K`UTv zRFpEJW1;UsAK#rQ>UJ%WHywz+K9$Q?Lvwlf@5Av`(r9EN!d`!WtYe4eG~d2ZeK4mn zRcvzo>f)G9ZNMmoA};ryz2zOvMz5!(msD~o)L5PwwjUCfmhZqFgy%@f&&86Wg((sXtjo)|BPTYOt zJ;DJAFy^mVkFYS=-&~at$pd4;z~p_pw$S%RCE>_{^sWfrMuqHWQIKNY!kIwK6##G5 zRmoSKb~{u~cv7{fyZ7$3G)RhxCBI^p|1+T1=H$L7Th34kpQ8tSZKgL!2&`l=Sj)@H zh+^TlZao8Dpls(FrQ&j5tTuSgnT_Nqa_N-jj0JePay`vC4~vdQ zPVSqnaAeP5rNcfidckGe9)^ATgq!7x9Hf&8m}zi;Tfs%W_OdR#eROLt_CIY)Bnem% zLn>@x9=x97>4c2ZX+3eQuD-i)sfn}YI8}bP?w8V6Tj~is2EBvn5@(xpXk8oM*w|Pq z5eK?l)yz(tGM7_i8%{4hzuOH+n`sE2|G69V9E*ifo-|L|)YOzCC+#Nwn+H;1PaZ#> zEVCj3b9G!jYg$5{wDU0XdE%uQ9q|OzNL5x=Hsuy_uMKoNiY^z&k zt^DEzA=n0c`BG%8FN`NP%ho0eX?1jT-p^2}*`1xmkCE)583jmd#9vS6x|(%Hn)EKS zr%C(MI4R?B8Pt|{r=FJ1mf{HPJtNx@G0acl{@DaNrlk%lw7L3Igd$`v7fAZkB@#=_x+orau8(|g@9bP$S_+0j zd7%v_DO&y?qarLOhfT0?aYxvGkpu(;?6`xp8!SV2pP%V=+e7X0(~+T{iDO_Bw?+;R zzeFbSncW~JUX4gMI+%RFPbcLuwt1~Hn%3xE+=9?kC%7>&+Nt=6=xI)8ZJNFv&DfXa zWpl{wN;``aTBz16d1zSJm#AyC@2rownC?8q;$|{cy9p9eoSJMzSkjlj(&}Hi^m`Bm zDIYsdd03btd)8CA7fS!~QjYC_;S6##QDgla?~!Jzhy6@+;AJM#Xc>K>7ie`(2pdxQ zfVye*dydk3Mn$gOF8_Yk;XCi~d<_PeFWH#=bj7_TKis<5d;2eM+E3$m?Ls3WVinrTF_ISn@C)=m+O9DGKCevr}48u!ZQJ#3N3z^})7YG?gN4Ip!K^gz` zX<-%?9E>>n{*JQwg%%vKkQSTpcvG|R9_4Km+rgPtrhr3#_064RkgM}c#nxIE(yID* zihT{98H#pAA#j>Ymd(t6Si~kL_aHO4 zX;I1>BXyfy6AKhYMx`7k=nxVR=LTo7K4SUwE%0(Ky4)IhzMzQ_zlC~CmzJBM;6GuZhGjAG!%!wu# z0pvxXv(MX=QL7i8(HR2ZrajLOuExf9`A{9zs6Lr|utKRe{>g|V>QSA`RZ~=G0MUlv z-7FOdB;9exk3Gn~coS~$p5zAG&IeJLI9TL@k)T1D@day@+WTPcO*VfN0&R_K^6s$E zV+ZnX)zE-zcLhYqf|h!^&aT>;JckrL8*2`~=S6Webib6#F^{Kt<()W09kM{Y+}g6` zBwkEK0WDet0-KXm@grkqEd^e^TEd_hRJ5C8qD&IPbp(wC+Sih+0^UFv2lbO_dJoTA zNTic^?`svyAGTk%GG=ewFy6G%!{5C#Xy4$Ft(eV@P1tz{Wx_zX=Qs^bdY1mmkk@ zmGq12?Uo`kRif;4preTNpyQTwh98~FVN}AV;L8UQ3Kg#lp=N)WvkYubigMesPLQ|I zm?CB)U)Knae&pVJTz8sk`5q_sq&tI5Y6y)@Qo*cS6frafy3rtvZ214Pi29eom;ZRD zgOrR+{rnjdlN##^@fxV8;cq}FldJ6n@$4$2p31cg3_SYpMeytIxJMfr1s}u0?gG%z z9i}i*q@!o-?*yMWMKv4_O7v-<`jZ7B3{XRX=(rz`l*PRE<}DHfmxx4s^fQ`NSt{-| z)tix%l0G`L96&@vzr=p3tLnWtCx_uW!cSTcd7XTr@V@bogKo@p0!lk`+kN4t7=120#3_JbXWlXJRS}H_Yw{$$!T=s`oxjI$wNE zBW!m=76i-a4`s928E>3Q-}Uc_VUb}uMz3Xv8Kt)jGXn3&r=|7(jL8OogN=hf98{5N z7`>Fwmn0Lu_n{vIvM>-A7nd+FKiu2{OAiF4q|%{H=oD(+0psoIZ_MY(0#^Ls8Xvda zS9kA|FiO8@`WYbiOpf1w`bh1?M-W2D>a=| zQch0Jwe56q3l8v0pMEk@yztgTe|-`f79Pn2216}iNq$;z53{+nE(D?o5G4U6R)xyT$zdZ0)0sIqdJD`1y+_QyF=bCS`b)If2YdTZY!cR+-K{#Q zjvrvOU#)-{n$6Q+U;o{J2avwUuAcq{K~v>f^iykl_MI#Dnq87SonHU4oPPsG_gPs- z^3-#$ZHl|^$eEgcyQo1pU|2&i0;vi>IKf+GSZ50{~`}$jq8E`8hQ3Dni=-d>B|ze>po_Q%|}+ z(eqa1YH$i)xsug+Y@04Fks;U?aunmJqFZv<-5FuJv?GDmuOb@gCVrO9$5LLFftjBnE#5=A>%=gIp7 zm&9bXKUuP7UlCYReW%V#A0s2VO0HNMnv{GS!hHkppwJJt{m2dhc;iJ4EORUe46`6y z%6}2j{R2|fB4gGohbr$R@v5jk_mr6}@yByr?Z^7#4St`fvOK0?@L9VD`IeonQ|1#T zkww&YS6rMX2;eo>%Ts4mfJD<|57_53_EAw$$FAL%W${qFe1G_ zQ)bSIotS$s}Zk|DYLlM*}YKP$FqXK8@z8npNnCT^^c5 zUr^@ez}n!_R3RL`5&$)=L_K{CvIK3uo+=cwz`#eJ(Na%uWSMVnl#KR^gjM_Kadt6>$Ryewm4Sh#X83(PWL%U zDTi(6yxDQvwTTA3x5pjyz&1OytaCurmYB5RHoI?yZ@M}|AL;7SJbLs9!sTm~tkt#U z;suA5a^ziQ%o?p&_pKOPaEe19R3HDG1!$DXvCR8}TF;MnyUxlFXWU^1I~HbLpWKIb z-`cvl?u7<}tYk`s8$rSA0_~Hj1ppFvNb-u1GXZ*+lQW{y9)55lGmC3{o|!A)(XX9Q zU-4eI!luM$zy_>ESY%|5>aMik`Bd(X%fv6kw(9+*o8_+a&2K?=4$*ULsAxyONEeR} zMep4rpybZ^GqukwI(p_p*jS}ofW+b~N@tP6kSuIZv(y=7*76Q#EKjdXDjveZ*c5wm zSa}ID%)wq8NtrSF+T$lr@-zw(y7?)$wd6L9H?kW-By_Zbc+09hPbVN{)H7U7% zWBOpA!Xr#%qvYbk55d=~Gj2~au&-wBIdy$cER)?cS>yYnNc2=|DShDnP}**OfL z_GiO)a;#sDn!@5&(9=vz-sHn~?51a=a56B~c3m7cAH!aIrY!!vD<4h2vR0CP)0{N# z;mx(1V}d`eV@S)xx>xdJgA5yNgg_kvg!dLTY0tC}PT+UuYI~=Wi&<}E`bxep$agE# zO`;##&Xgi^WH6VmwQlQ=ffiN0-$|P+?w+r8F%A~86}}ktC>ZzmFCBqv*RJK~1jK9< zjUcl`0?U(ue06}n*c~l4dGd!ScV9eH%XOeXKiSsXK!e=Ct93;%r{ArvDy31xfAf%h z5Db=kKe(-Lzi#g8ljp2=D2NY}D!7=_yzGYrquX_ePvbV+qtYN1{9(f7j&tan6-qgl z1xKX+4FKSl{!aja=fm>vZ26DW6i>XgMX#Te++||}DC@?^$OwP|Ka0`il!IEWpzgn! z9=mf6SlZ{$w@|e}6WJS6SN)x*&Q|NO-K#2d_1btY(I_B!2T?Z)h_A5SLI+y}h9Z4^d07M@OZ5Sxh9y>EV;deN_R+Ft}HW_@k_%Z^{t^X81;Fb(zM@w%Q zCIX3)yK1I25OZPF+Sc}bMpKR>!snh8YIt^nFSRt zYQ~iW0tyTgOtdo;UTQ%AY!*)$nLxDP+bf__)K7x}7=Fid17_IV7CJ<)7O`kp>5JOA z7Fgulx8PJ9aOD%t_?SB6Rgp(R4o9n)DgYgCU`6ymxB3QD8N+R}679YHeP@}WKs!*s zG6T_K;8YDqY38_1$K2dpf&J5*MU8XvF6L;-)-UYpqP{0w5O#L<7a4-d@(lht%^sT* zMc0l0ezP$LBRTd9aEfHE9o&JcGvH6g`*XD%QwHgJ>$V$fXL z#m!fjeY{P-K7;NrIsCB^&_J2N+;n77-Hr<{t%L_xOiauU^55$RUNOD~=-+dZ)B;|s z>sHz&emFpDDYu6wRAKgoA)^?{^b)hq(&a*yv3!k)aa+x$rKKn4=J)-5Pz$3&(%ha# z90F-r6kOWP@A1jNjI<05MR!C{*1>cNH5)N#UvbZ!NE0fA9(1xgDHB{8; z{&C5_WPtf&eOrG-oaAwkt$zY~r_^xu_`4BaVJapp%uD`1yZxWl8;j{6VZ!Te50wx< zI5rwmzM!;UAMbPJp<@#^rS4k3T)|5BprPMPA=%+;=~=E>}rcM__n>obDOx_6JNamG&18{ zYhp=VACU-$_DM;9KQ804-~S=S^rtI>Q*8Df?}cJ^p8h_U*aSBh-~1|Yf2QwYwP=UE z`osYNCRi&$m|PmS@$S8= zE*R4Xj%OMxF4Mc~j0`a;KYNi`oGGL0N21~fIb3WWhIhXRP4bO;x zXH|)Mj@GWo#L*uktHupFhF*;`sY@PW+Z>zZBP&HHOGZZ{X2%UKTOB4XwW!p^pLS>R zVdnzcavZVj&xXg7pJ_6=e1C)e|ESCTOBLZ?OL+f3UCJSp1(FkInK&spT&bBHPcISh zi@$)3G;c!izXY}ZQZn<^ntt*J%$)MuGcqzld809W-vU z0+3P{_-h#060vmc3X)g@tQ{X8e`lqqrzes|EPSun=?~K{vx@db{4-$5m2CjNA0a*e z7hs6qu^#;+aBPx2n``u^7B_zYsw8Uigyng{@WsjOAC=?H{9Op(D8N%-mE=lm`5mmN zq;ycd`|p$pr$3_4I5f7G#DTVdv&_&62njV6U4?e&Hv&M!rn$aLr4YR%H3^VHo;$#h zpA!j%yQ*&XVRu{?DGKiPWgQC8N-%=wZ)CKp98Ie?)5-iOgg7&unJ@oi|@ zJC$jZn~bGL4bxT)DgSm|EH=CJl8?{1GJH?OP_>hj+TZZx%K*~(6>0Qwz{5HPy){)9 zNhcQTywt^K+#JN@KA0vJ7mc~%)2p;I>5Qb7yx1yZfS+t|LQ6dmx|IR-@tz3{OGTbQ zDVPM{Xr}>XxVX3|xg+t13i_Phlb*gL-JY&s=H%?#47j7!2xJ7smt?|rGtI3}3A~Sf z%Uh4u6444f82?^;`XW=fVN4tVm7jlfDaO{B8T|mnI?S*9jG0wArTq^O8qAa-X$I7_ z26V`9!N!#Mx+nB~e9J>ZK+y0U4&*EO+al*M8 z$C$e$$>JqeJ zI3AN}LPba?dJB>|(3vHHSK@#WXJTePTbL*L<2W;*$YP%7+slT&e_w1h!~oFlhI2!Q zDf>f&3025NN!x<))%h_tHa7VbFUI3TqUZKVe4$r5sQmunp{q=jW4pg3`gAEx!t;{}Ut9Qg zaG1WDeXb~2<+d+9>Z1PVg7fDB{=i^)x*92kPe5V@KJFmvJa;{0b^rnA)GERTR$W6g z%Uj;21OD7t)%`>*%wow*dAZ=bckdwDCxfM?ylgL&l)eED`yxf~<8I>>aS%h*i7{f@ z9rB0mIw0!2XR7q79PB2Gv4TisE{kR9S&sYQ2hY{j=qVyP{O>566zW#B!eEI{2`HV1 zq)_^r2qvvm8`|NRS22=DdruK;(}U`Aeh-*?Q=>N9f!CM=X2ySgW)vnsx|}Q)aK$F2dxuR)bXc zz(9v(S&8$~GYVea7nk`P`)2j3lKa>IPnzs~ZqY!H$8hFz)gJ%}(D%pq+57HM)S_>UHAJ4~Ob)ObihVe&iyZ$SO2o|}tHP8U!EIls{}f%Ff=lNzW?!Drt5HQhI)G0!G75?HShuUlnK;=8uVU`ePSD-$%UWP7fXr{m=T;V7~6t7D9Bi3(Ewg*Jo}v6^S{O zBo4hE1PYwSjCf2zXzt;5C#^&MmOoTjXeaeOs7d|l0*N50J^{Q592Vfxt0V;6yh9D3 z;M*}Y`JF5i^)-iH`yG_lV?RkDfS3U7AJpAUCOAlCr1bR4fM^G2;{jT*Y*=O9bNf%P zpt|7_(P7I1EhhWfCnivqes(_qq_om zkCnl5yQaXaEULQAHdm~ED1h6^_tZ~GxR0$cKyv9 ze>cgmtjpcj)qrymZUU6TD11K|C0!V)nU$9k1K**gwt6J z(w&pDp>Z5yFBtD_VI;myP5RMvHn)Wc2jg&WIL9o&nE_H^1Kj zO71=5U~$>Y)CV5X7)m9W`<3)8Tp#Bk)6x4Ruxak9I>$ACuMzaQ(=syt?HP`nbraRA zSA)PGmg)8L!1D)}*BP zGQISwbGBrui=*f}$Urfd3xv1aVY~ZP5?DzWy1#6Rr`LVCi8F0W#vIgy3du=pdY4I% z^|U=Yo7f9SH59o+70n%_M=?vt7W|3x0FANNq%j5Z3r>Tn!79>mk5rUGd?jdQNA?9D zW+fnA;V9n$+}7(RvL2Z`X#UxQgFdaunwYkkmu>VR;Tz*|4NouxCB+58&uOtO$z(-X z0{ZpD=gY~2Dy&wYV^dz0%aM|@SH-r9ITD}S*-)?z>4S%F2>uLU>dT9?AR}GbJA!)P z;20-&+Tm)J`e>0=wLZ@|# z3{dCpJ1-NQJTO@&9R(r>4?r&F(AH_IsrGgL>)2m5I-4(OwS~yLI5v&`%`itkEhv&MkQJEWcn_RWnPL(m^r&U8cT>EJKX^Sv?PK$1jkht6!7CHm3k<=vJ?!;A-;#&&^@`i!#n> zE*Wg56&0rK+-gjkJ`4R_M8tQXk@OvCxnZeI&|^~`BvJg=`8{gXwKi*g8b;dB?r(&< za1kH2=Ut=xGbe*SMr?fFcH&fayo!n$J@t)*hsf4$%Y%(K}R2mhfH0bh7W}1$e z>5yg#qKM{gkVKIhS1k;@fo6_)%TYiOQ?O9}F6}=1a^LTZbNQX$?|h!`Ip@XqR(4cf-vcGT4Z9ZLnZ1IBIyG!&6wSacB~-SGm>`zf&( z0GcaSbz2JKQ911Oh0nlmORxHt18xe}s}$A-*nNzFTQq-TvMJ~X$F#rw&){9o=eXXM zur@gQK%w<#m8!qgXS-s?L9G_6+TWUKH1lp!Wk^bv*TZsqD9{*)ZSw1&(d}{;`41MA z_I-Q`$hJRZ?!=|Q=9R6x0Em2oR?`4C$ZaEGf?V>xwHG%GTl>^9mp zXXWviwICV|-27NV6t+le$3h_mqy2}mSRl`($oDGy$2=M(n502XgtBT_E90?a3K#CU zV&{IwWr!eOu;XRV`?23foU31!woiav$do!wSWAEN9;=yBiNeyvTjNF{9&IMSR-}pP z*KRiUZjH*Fg5bH7JzTM_w3wwL9Lwn2b*9%S6q_u<*^nx#j5E8r{gL?v4WWYjCzo2o zeh1@kh<&Zoe?$mS36PqeDkIVq(9uY$7lj!>{7ZKf7*> zb10JJGbl0i+EC^?E#qU|ng%`{z46}t2DijYbv-=_Hrqr8+ZkJrR@TlNYL}iwZ1^rI zcCHlcjxQ-MHTK;_BvaG~*!l1!)#RtKg+Rd+@!BSmfGzSCy9 z4U9jHXrc2$Ku(}_W2C5k0s-xlVY;tdfNl9$i1&faW@G zspf{~-U_!%IbsDw;`+mvAz~`v?kpk2h=iP_R7k}uW(SpnkQTj4 zw*gR_#K|)ySXL=zPZr7M8V1dE1>9C#?3H5nkYkVPnw2^OTOVlVUb=Tcs zM%rCLYauq0-{ryXFX+s?hn53 zlSZn}$g|6P;P|m)uwk<+0y4)##vX&|=THGzTj6aNDG?@|-&>;mnOamnIw!Hi7{ zNkRgXBSs#iGCP&5uQA&3ixr|vp6~!ofG{v>Z6%3#?~OFcN2=en!gm7<&%fv_{s$;@ zM; z37B+|knB3?ykG&;G^?}jw|yY=xqmN9!(9c zW(3k`e_{@^U3CiV0S35g&a#kIAu3ZoJWByWr00;q69@IVdU+Z$l@pe1UO}f({7dw? z=Ytec+0(g4bl%sk_6)jmHFRq7I-Q)Lh0YKiAlYxW!jyPq@Xt=( zMl9&YQmB#tza8~arF3c6e;u|Pqiw(YAIG)npgp*=O%%T1i+uJK{O29^79PL+KL%Z! Z?_+G{E+aHz{SU(-;&?MIzW6axqeZ2pK@8j|P;rV(!Ua!aFbv}Q2y`I@!H$MbW07ytk9I~`9b=c7z zJE)M}y(877Op!Z&nx*L#M|}EBhE9N@f$WoQCCB)OX9L_7!|xLY3_ifzXk z(R_+d=j6~g zcS$~-E~xqWC60IWM7?-gPZ$+D$bDQkT4_hCD81z!T$j04aa`l5O0w!oBvG%m*yjAV zVtC&G1yO+2zRiD5Xy;7J{aZ+$*7`EH@O%1;Ad=4w0o|xnmTG04OW6QS@Kub@vG>#m zAhgXIHF~k)nh5U^Y$L?MsEsoXZg5Cp(d8G})R=*@y|syA{9qrHr&=O)c$nK9wDm{Yl9uA1-+l&dM?x^Y#m(?r$#I8O^jOdHd*wN z-<7~CBXLcZ)CC68a@=H-Q|y9!Xz*LPK zE<0BeT{1gR`UxvcNG&}B|3tbM@tq!?Qs6W_ld`?>DhoR+5ojnUzds#Z5bB!l$|o zCi6!PB@SYk?Qg5gXm4(oczE^VZR?bgbCHJ3RZDCnvBWzz2EeTz&?&q409sQ2m_NF$ zU3hI}cbDAqlkkNpr!gDwGFFM(*JX@Vw3gxjXlQ+?iEL(_^ zZmjM*WKI$CpN7QHmtiUWiQ$I}bP)WKNvWg1++nLZ08r(IwIn03l)iZ!8g=dzd?L83Ecl)0YpXy* z!|-|C=D)Zt!$Ln3NpvV8v`q;6p!`pO_|YN;BS%6as6s*&Mt$fsA58kxe}G^;?>V|d zd1X(DVrgCPq4g_2iR^r%SFn7dgT`!X;-~FRE$d|Kf*7krG zX&Mn~v}+r!%Tm3i-zs^u5GNw! z*mtmw6T4k_*6nY9ICckK?j><94dnHeO_#CrnWfAkvbi%s@*68?f=}I3HHlcv@OjW% znN~{|bk8n~=Lv=Z^8^~OHjq>_@KOOi;Du~MD)o;ED+{^D3VlZJ^{=o-w?0jo(wHx( zo~b<}0+zd9jIdH=*V`&5-7si9{!R!XBAxT&wB1Y{y;H#@iNsa&&af0X%^IVAp0TWH zDJ~gv&fp1lIKxR-xi-Mea#+DHL8!^Ay{dK%Z4gag%e4QZDWOW~2Iknucrz_7D z%Rsc2F5%FpLxkhMSJ)eBd-pTpjS|OQG`;ETwzjDT-JY85AJpP)+l` zSqH&obE*KJ0sPe5ORjYr$C&DrdROHS1kRS!8xQH$Ntc4lN_1t(%bA z4^PhdthIV2B+QLtV&SBw@2+L+Ca3bg`v@7M8T3523JU9>EfzWvW8+>-e*_|9zqlk8 z`ATR@$QP9SDR36voGj=X@W4U8hMHd!1>JU^dC&F_a4ZK(8kT~1VyBh;+#ZDe<*7;YL=NqHmE5uGK62-X2kvh-!u@|^ zWAOU|ZXNo(G3+>nAgw!JHG5hL`Z&8cCZ)1@V!FxWVhDSts@*%26G=#1Mleapzh-hm zE{IpcJ}!w)lU27jJ6pPyz%XlceU-<^UtAx)j1-%~c~jHW7KFARwgg=%fWYXs``jv_ zs*Q(t-RYf#ZsEh?696Izyc`MxF&4E*Q-%@84)jA44=0R4;nf+E>w5sde%4Q}rhTMD z_2sV&X9r!9*)})-$4z#g5Yu}Mgl^-5@6&!JM{q0db;Cr^I+Nf>I{SLlH!atnn>KACS@NsL}rWiba+1*-Di~9DccZHtcCG_xmF4 z?p7ha@App@=qA=GmxK&!s0EK$(#}{Pnj<4R%M|S!Q{Y}?3{bFysMZIy(%cy+ab&T1 zsc8SB@Sr9mIx$a+-4#Op%&qe^pHMI69jow0nvPf|hUN+Plc|7drM#i#R}*89KbvF> z9mopcQu@Q(WggEs^>zZ7HfO-%y{c(eS*-(kJSgHo9`j|i*b0M7h)(5YhenyN4nI0S zdgRZH+YFwj;rnA-9rEi5Lo$E~yGGNa$TY+khx}&3(2X%A;wL`@ZR1KQ4||^bj<{{y zYM_<`ih8L9m86PDYEm3K1W;Q)wOlSPOaz z3n{}7wjc!NOASOqn$8ub?pDD`nZ9nDPEp1VG zs%XvB32F5CEo-N58!+$o-}cED`OA;L`l-b)1FYMhYpm12^k?8m@j7UT8=vFzsO8-g z_6v?**7GBCJEsr1rkVDx`txT$OwtjF;PQbRx!F+$1jl=?3gdT`f*$Vk&C?saaM%X9 zMXfgD8;nA{!}qI-s+W%y=M&!jk})ALt0~xn3pRb-CJSw?r*!NMY=0463-{yLa}7?z zdr8AuZ1Rg#3K~y!dl{i}kc=^XTr?N`-%K9Ydj8Ix17}!{xoFIvynWc3sff>;GpXA% zYkWEBJUotFp3IjKVi9lM@#8?ZU+Z3s#RQWW`lPYski0dMdly{u`9G2~)V{gV0fwdx hd!loi{@?H$8N24{u$B01X6Ip(ur#}FT4>@P{XeiXAqW5f diff --git a/doc/salome/gui/GEOM/pics/mirror_planesn1.png b/doc/salome/gui/GEOM/pics/mirror_planesn1.png deleted file mode 100755 index 969f0e0f4fa3c8b37822cf2b6b13847635acbaca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4646 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 OMu3-0@cBBog8vUPDhAU4 diff --git a/doc/salome/gui/GEOM/pics/mirror_pointsn1.png b/doc/salome/gui/GEOM/pics/mirror_pointsn1.png deleted file mode 100755 index 675b0bff1b8147d0d1f2027e8c91d1f0cb99fa54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2304 zcmdT`dpOezAD2?viNw?_zr`XW%FHd76eE+`nWsthkA0sJsvb1?6@O`sCT4^S=-OdTT!h(k?M5zn4bRp}XbA ziyPj+hw7yZs+zI+?!j^3SWO!QD6HGfD`I&!dzK%j3794=((0;|?Y3UwmbLH1aJj%=qxh zOD`XUh!<|x+qGDGs z!6*EaaE%FAX6o6VXMBpiX~3?#_<{J2u?gt*f?(}HoU&APQqs~T6s8q!xiP-M~WlSz0|}i|&EslQqt;19S9712S!%!7B45G`9f};h>2 zgXTz#asl!jEQjpRfB$0*)&_rvN*;jEpO5=G${^}17Yu%TbaG&Z!|YS=eQ!}&v@G$0 zzG&+!&~oZQxbHaX99{Pn3hyoJp0=+Y%W35_B+qbk$@p1z!iF9R)Y-lpRpCv&oX*k3 zZmx139v!7pZF5F6cRlxx9vo?GF8>cE2rqd%#~DNAG# zrI_PYLHTluyZaP(Ua*ODx#IQOH7UKRb%s-YK9_0qGhEK9NbVd)Z;Z{v-s+Qw`mal5 zbL_pt=pkZ?qv>h2$h_4q&uM|X@Pm7s04ubVntvGlRyy2kO-$sIX5G+eReib7{m8Y> zb}K`n;mFWDBTW5~Z`MyHJ|4yI*>h#$ts5ZTxs6f*}pY@f?_DApoFf0df%& z-W!_x3AfNaOGEAL+&S{GNtJ%ACG(YMDWTu6wR`^*06k;~N*U2@@Jh_H>a#U>_XO{i zV~+`u-BW$W7#!lAMYXukx(4U^nOyDTS4_!x;y{PB06lxqSklq? zyilt>wzmkRAa-j(C$A35D+2mB=zocXr{d3hrYQnir zS-+0ej)OAblhJ&6>*fv5FPs(JNnv&PkE=zr_RMkK1K)T@6?S@vMC-HkzMNf}_bft!nRMo$wIrGrGr!hWg z-Lm6KOs{E(lGmV8OusKngi|gdWR?5kOpz_26+E1BC(aZCxPMQ&pLCz@WXn|J?`m-| zC?#C=NX*=bjEh(bqcnca@z{4cLoxf`lre<6A8WY=HM%Oal2!eE4uuRyfap#6F!H=Z wG_ZBszi4PUH|DiE{=cZ{|E|0LpOYI~UkgWsr&tqBo1cvW#`z4I?MS%)PkpF diff --git a/doc/salome/gui/GEOM/pics/mirror_pointsn2.png b/doc/salome/gui/GEOM/pics/mirror_pointsn2.png deleted file mode 100755 index ab62359060417af05f9c1168017a1f2c081f7c28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3739 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 diff --git a/doc/salome/gui/GEOM/pics/mtrans1.png b/doc/salome/gui/GEOM/pics/mtrans1.png deleted file mode 100755 index 7dfe730c375d34cf8b37b043a3b9e4f2b67573e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15971 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 diff --git a/doc/salome/gui/GEOM/pics/mtrans2.png b/doc/salome/gui/GEOM/pics/mtrans2.png deleted file mode 100755 index 62b35bb0c172183481c7f9e6240c7ac577870097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19494 zcmd74by$?`x;H$4f|Q6zNhvAPAsq%OB?1D{Ez;d3EhXKcfFRx79YaZX_rTCy?={bg zZ>?wTwfEZJ@&568IHTgsaL09?=dUgT-^q$&V?4%yKp@zX5+d&*5F{S(xW0!9z7qOT z+YADE0+AGXrTEEfd)7%kYPIEdf1oH=GJzp7fwJmkLqRnVGt)53^L0Co9CSZplI5pJ zYYC@Y^t=?RFaj>&)w_;(l2~Q);e%glBbGIXCf8A(*q=`ul8&(C|F#* z^3^I6q-SgFI8t2U6htrKRq!bWTwIo6d{=>?eRhrJ;iy1=dVkW^NYmCt>DE~27}Edh#BDJirir8X!{tx<27QlV$(8Ovrp zEl`fr2WWA7)Mx`qP{$SZ4*i~mmet4VJx4z>ywfqVrxP@)ujOiO(OE25SeVs&%Lf;wzpSGRidl|h~N>lXLA89yTPpLXOJ6fL~;P
    ^1rM*708dIF)yTrtuwv##Y?0&aQs8@NkVF#;dLd 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 diff --git a/doc/salome/gui/GEOM/pics/mtransf1.png b/doc/salome/gui/GEOM/pics/mtransf1.png deleted file mode 100755 index 207e920f9ca612daef5a63f9dc5447e6b35f1581..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17130 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 diff --git a/doc/salome/gui/GEOM/pics/mtransf3.png b/doc/salome/gui/GEOM/pics/mtransf3.png deleted file mode 100755 index 628d8b0a634fd410686589d102839957e8123888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13844 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 LELkXS^6`HG?=De0 diff --git a/doc/salome/gui/GEOM/pics/mtransf4.png b/doc/salome/gui/GEOM/pics/mtransf4.png deleted file mode 100755 index cbe904444dcf774e376fd082cc7662371e33b5ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9687 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 Jl*+vc{4dF?0F3|u diff --git a/doc/salome/gui/GEOM/pics/multi_rotation1d1.png b/doc/salome/gui/GEOM/pics/multi_rotation1d1.png deleted file mode 100755 index 4085f434ba1ba0e703c8cd39b3716419e1c8aed2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4300 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 UZD%urL$T_>h+TJm9oMPOd=Z9KB zDj@>Iz@gvo%vS%!U<)a$z=GbVe@TS~fMqbvn7l1GTpQgWwtv2;Y4C{R8~_6i(2!*6 ze``8Op_l1Lh?VAl! ztbwW~f&4zSSFb8M(7xUJ*(yjj~Wt*QbAwVALhpb>u#Z^SvmBQX5zz>oB zdqcwnf&avaB^;HS)=+8aK{*VWPQc5|({hRU&y{9WeG8uMjL$Fw!tp=^Oug{)KWah0 z1sIeRxM?NwF0CV9O;S^EAwhE4oa?UqDy2MZ~wVHumG;6#qdaf zt18m7MBhzZ|q zTa7NWZX>SxY;Z@s%F4b}|Fbrr;9&kZ1=K?Ff@Na#Ggg>MEM+j`5;Hdb>(Zr~RH!cr zYi*^98|AmH7~`kOXHnHPg}%cEEmYN&rE`X>K;8o%384G;T>ydcXpl|<^|JUpWpNPA7NTBx5G2Fw!m2kF^$?92> zsV(q4vjrbND2Db<= zijh_Vu5tv$fdAisGQa#Uw=TDHC)8!OUc2}ozszeJDh9rfdDmVVd5D0FeLKp7RBBP`Q@RA<9 zYJ)FU53#S^eGY{-i+!U0LdGZ{F%gtDY1!WDZ39YLn_ugd3h#*-1(GQb@n;iZzMy2s zLyiN!Zv1Ps^5y=EnNpzgCf5J$PSv}%GHL-PucGWhn$y=hs7!IBvuQNR*bISt-UF^X{08X=`*c zdzbczI8ib#*Bbgh*4)vzfbf+QLP^GKIJVszZ~b4*kmoSBE8-e4x-Y zizl+g#7__Mj{HR_4B6esd`9`c-(q5;8{t)kYnsUy^2fx8$zNMxGyuI8saur5k3FJE z;A2sxprW_@f<2xevnQy>_*U`ax;;mj!N)3Fu_8o)Yx5TU?qRjGGkcC}gmn|KJ2YJ0 z4zxEb*({7!xemvsiZw3on}mD?-m+fw6X3mFf>*4sugPBZ9FS2zA-`;c>yzca$Rjo@ zs`#)$RG+2Rx~P*|R0{hG3+geA3idyYv0ZUWHOy=_!afjc9A}nw?s0-I*bHai%YOT9 z5QdlVh>f7)@qL_}@1Z!5>Mhdy`f5fS$o2hs$IXwIwa+g?*B$ov$X0wnt|gCU6r>Qp z0{lCV^8|I=nK^eT(wF9x;+3?T$glR%#(%s(mE9u$$pXwswWPpa{JOaAIXTarT0j`v zO+FrP2@gZ!hq8sL9&d#&9g5PvdHy>lS-)2FM9|n?{zp60YnD(JzZsc#dq3XK6f&4Q9A7IrExD%Az*i3EMZb<6k^-n00Rw`VeeW zmzl!&QWJD2(;E=h^k{GrY+UiTF3tZ?lv|?OUBx~z==H1~(>oEOvvf{;cP@eH^+5Uk zSSr~Mq&F+(q;{to(;{U>EIF1PHR-3CEB_KwsAQ*J>~Pd{hv~^$d#pg8xSELyi5XTu_yF8t{|i18C0+Mw zu`kP#i-3)tQs#XZhB~x*6T&}_zvTlyq=Z7Y6tNC{N$>B4@3Q4Jx zu@#9$QFgg$gLF9<^S`e3LvZv;jGxzPt(71`Kv~H;EBbor2gQMI_L?s|k7_(Q*>30z zmOSnOo`c5{IsV!lc>sRFwrS^ra?QR85MITw@Bw+2EKOfVjZ@k(~sWw@qP zKDkI-rcR14`$(Wya>g~?dd8p=0hxc{z4sjWdO00udN#7kSiYjGK4;E={lE5?(yqk$ zve9p^_n7j|<-soo;c#cYyG6#+M6rDCPnxLb7asA$SK0^>0Wo@4XqsM2S=_&Vi+pe1 z_O?Hts}1>bYnmQE1qppq`Wi-&OXIwgcY zGx4@47@Ha|lufHaiWb-Z?9I02S4FV+E?xF~crUO?NxsrMY!DNoAZYrrh$$2tTC6_# z>#X?M-$ZvAa6>;F(7Lj;M$h$#JFZcgO|~FN&M` zbGhdiX=$2hC6iC36V!fBZJrt=bw?j-l(I-Bd|GS%PJ0m3O?N4F=2`X|c`Sdhko=0Z zL`W7i5)JiCKoK7elnn^yRRHr@^;U79aT5 z4yiwHperYMnQ3{k*{f;sgH?;9`ur?S)?k7y4jy$AP%26nes+XIe3w*g{VLON zc+Y+*K1N)CU`~XCDjfAI?>@qDcBS^Q7T1Ulm0zHmZ87UQg1&Zepn0|?+Mmw#>XjXF zCw$%WXvt9Az1(#RZyouL#&q^P{n=uN*+Bu)>7T=o{XtfN5eQg8YI6kH|B3tSn5U$C zN=_xNsKHkqf&yM~*J2;t6zZc#;JQuTjJb@YE?-{l%Y8~rbB)@Oq@MUam4 zWv_P6D_jc#`;nZ2Jn^+7=ZK%q-jVACRk=MPLsAz!u1qkuQbVYb{>64c!pG@at3O}b zwvYA;t5P`M_8m8kuH5o}uN6P`9&*YaUWx}PE*gS!eIE-^$u`55oNgol%3z>vy+bPD8^|&!=uq@MCFOzBVTBxqRb!XB z#?|IxcIu(+403G2R_FWlmKeN-%gdwLYpX6exP1mjcWTV~I%`plda-C+$kt}{nZOyn zOs4``EtV-Ssy@P0&OHnz(`Nn@hN2Wo)#SXb#JfSRRymrV!h*VnWH<5~;@=wV?ml!# zEtE$g7(yQ=a<5kM5v*FNB&w{kZu2Rw^{>BKqM6mN@mAk+lTs#slf-}zG~9(aY&mer zE%arJ8f1Agy7OHkIVFmyfwF3oqfQ~E|Ahw!Z%Xo1JD2AnHU+L*b0P<|-#Avi)$h%$ z7bLtGwtGKu(z2Q(0KG>>^>$x}Y5H-*EkCE`@7q~Ug$X79H(AyjDru7? zrOjxh$M7EU0QG^UV(RRga2Aa^{e71Ddbgg|+-`f(V78NM;`dVQE&hy-n-8SA1xNUz zY5*nKRyLWMikQ!{lYJaHH2;lnKV7q{l`UpDkciAFva$tSw!~mbf(o#Xk@sFUW_{{3 zZJGfSveX10g>+yXS(}Ki!GGN3%#)`fC1s+zeiyHlSG4NR39&o zRP=Zr4Vc@Xw|CB84S+3rLfTu(GH;pR^;&Fy(XJk~l<_Q)?1b$W67jr|C`yN9e@kBh z)wi~@7bFmVA=arW)d9LC-i)qE`M2&+_Hg#)#>hX*jGTAv%O4%R2jaBD6T+l_lV{5q z4Lm;52O%&BN`M~Ir%r!zo`lu*0h<8Kd&&*xLsy?047kHh$7PPMr3$9P?m}~4d5rnj zyxl-&$YLoAr_TU9l9QYs(`z6DmKiTDOTF{6k-PnB@H^PM z#$bQya`-!28$SrWC&RXZShdEj(ZN!kmtQ`pRi34%6B)I%whTisvcQt!9dJ9+$dxFx#& z^4~)1?F2GJpf6rarmX3WX$maQtZofH-Tj6i1@1|{zo0* zrRRCjdU^DQll`>3xr@D@P-aWNS=GnpCUMUeoS~8c>Gd@RoOR0RAD!z*lDPfyk^1o$ z%7fHD?|Ly_bWT%~*Jtwl_CK{-nGAV#`xR0%;8#tx$P~VH^E!hWe*%HAcAp7i)H^zN z!VRXC$$2tBq*p%n$fzlEV(Om2SIr0}i**wxv?=3h9n1NR{OkC#J9~{Zo3{;!a{5HL zoZ_iQDp8FdO*_W9@u}rdVH;Qg6=AvTu{J-=eROf>d!e>lT>nT`HD1In?mJgE`OKlr zZmXBOr@%GD)w4 ze)p6)uUu(BvAJwUxnc8r(47^5^I58@j$f+|f0YPAM3Ly&Q@cjB_4qaY-R?r6N?gppB!$ z_iC34YoD;~G~A*k_L(1IiII`IUmuz_8DHUbZH9jn zk_spV?2=vxvwXVysv)q2-7IFo=SsZ8PXovX(XWrrYnD6c}!{N zMu0*)LyWoJKLM8(UteP`lch}k36kieQi`gp6@9{n>>7_;-kZvE{Fbw`JiM!-t#?Xy)OcTFZFJ;F;10{|*2Ypk120qKuL$gFiaEFO%lKZiQ8+m`XBRrrQJVcVe*`{my!srJ~AKmBe_U^ z{@e|q(8Kx8;T6!Exp~4|A4%I~Dp-j`E^m7S0&BhIXj-3?aGtk#S$lgeWWf8eKR@rI zZ*UXgePLx8!$B4s1As^t0h}?2*V)`}?ESv>WeBm*)AfDrW;;+dCroxa59h&)9u5)F zFR$I+aejS%GPE;WhuCte6iSTyu-TR@`S<)A5%-#T*LJpZ6Qb(VIf*Z(;B8`{z2h*) z{rhAO70{C|_wJ@QE;suR0$?UhZ|>{;nsWC*_idw#)wAgx=f&Q( zEEs~T?Y{oI?N3eBkSr>Q+L*W#3_j&vwD`ob_ zs?q^7L(xZMR2+%modgZkgOaj+ulk8FDi;D|>4{mh)SO zAuwbY@PEYQRec^ z?$OTFKUBl~otNLEp-)As%8lwO7`PFvno-F6or1Ihtb_MW^G-GOlfaybBiB#x2cP}n zYMSHfzqTONKTU1e|2|jv7}EEmsPrZr0YhBuZ++g--pV9#bOq&hgT$Zke0J4{<3+E+A+lzBheMK_BP5}jUz|NDR zOQyA)O$`gv?O_I6tP(muU6_QTdXcw^eZ^W#q;G4gMb&gE^ppY_ndw+Bxfjo~l+RR1jeLPlidTIz!VkoyeUax0 z{Es@rf1dH81Cr`k>WVD>47mtzy%W1vprsT(SS{|WOOmYrk=m#!om3pK0`sT(c_wbm z>Tj>XK5!J#Ah2+>@AC5eo9XWr(A+fK-tTQ!_=mGE`h#_vB$?mZkQHpQKcrG-29`4R zc^@T6V!5Msv0DlCFM)UZW_OQLeU~~3hD)PeUy@24t-+6`{gl73IG&6=SsL#M&p0z( zDy|sV8C?_8x<3WPE5sIxi=R{}${r8#Zw*^KL!;T!n{F~iS_oQ?;%it|Rt}j{cYC_3 z(D_02f2TER^&qsBS>3hW9JxGl2C(YUdYiME$v1T11EDj#!$EDIc?)q5TxKwJ=0v}l z=|6CQj09R1X_efxna8RQk>C7Ky>T5cw2A(jou>q0yS@!ySB^_k+D(v6g{Hw?U@@2U zsdHH`Uq+e*99apmsq2d?It^>343OY-EgfyIYc5!W~R9*17=8T@4=ehx$-v+Vt ziL~9cx8U6h`9rz%0*=D>ryiL1vqU6uwh+133)-9mm&LQRVUa~nw`Xp8)$COs5aF6` zy-PBUpZbZru7dXHy&kP~Y$HXA(9*@~4IZ|()RkAF=nePp@|%ji1Sa<%;>gm!DnB;9UQgl|T*Fo>UWTcDwSGWt&`Vb&E(<2b1LGYEL(4^K7 zq#0~Q_lyHAi?R7MAB?wLmj;yxokG|wyUk#3&P~y}E&pm~C$k$!EQUEUaCF>`neI2X z1Y3sN2Yh8Dr~|;i&ur?(K3vVvTQ{+$n%H4CW6V~4pz!3jR>epL*i(kgZHQ0I)I}Ze z7Q^66)Q|yho(S4z*`wuqE}$n=L*<&t#czc7k5BLYbBfhIF7>AqO$}cEaJ4k7S=#|` zPtu^Lom&wJRV@wGcxbz~pUA8y|5iRZ1MaU_*D!w$P(x>`O5~4!3%b_+go=}kReY%_ zB)k9Yu6wgVG7t@3pUkg;XivH6eTcQ0Ez_&dIv*NR zfAhecQ1=lsZPhk2a~$5exq2Q%+-G4#bOJ7+Xyd4EZ?_xfD1(lu4aUrFuGxClY{FhX z)ODkSz0^M`eZ2a@!q(JEhJxPR;t@gM?s+_mnZ+iY3bGW^C1yE{Ban!LlNI|Ru*mTr zoH;zOiGrjdKfA)Nf`J5|NK-lV@rR-*F$G^kyZw(U>_{*#pV!6h%hq>_5bkf+*E~Ws ziS5q6AVqwh0{c(Kx={O*_o|*K)42HNRoUrV5U$iqYMliWKk+kM{%X>aDV^w`3e+C5 z>of&{jFlbIC%-i$dV(CgP?h{U7)AOkqWNK&@Lbt$U3ZU(Q-LHHDx5U_foKI?nRNwu@$N#!Cde!p7!^JTgZ1#+p z{IaufP1HA(#y%wBisMT&-<`_o=EJL^cxB>1L*w-H&8y7#bhn=Vwb{B~f9$Xjl%FCq zly+6PJghsV{Eq5^U)pVr;{3NhE0hC|9~LAl6Tf7PCI5@z+hB?tJ-dlt*rc;m zpcUe+U6ypl$0p~_qwab}! z%CUEIV_n^aS(g?y-Dk#+&AkEh_)ypg_L(GFdm z3LRQx^QP$j3HulDv4<={9-f(>b$BdT9TL(c{R&T2IqhdfdC+-j_RD@9lGtxSItU!K zKvyOvU~5qS0fzO&yng`rG9DHRl@Poy?&Bvw$3d!A&}-tUb(#sy%{+e?RxzaJYWQ<* z6Q?odak&T#<+yYr^{4Dh`RI$Hn4mGfntI7o79WS;nUPuLn&X*s9By#O-1Vld$a2`6 zSv^N+(AxV)R3$EzE)uoLGGR_fQV9(sf8R07eljqA(qpl7$Qdd=DhP}hFn2i^bDNoK z`qSsh*janD)jQWUgzArnr7kCyJ=sf?tNZ957qz=?MAe+xE|%cMO025spSM-K6Of6V(Y=`a?+)U8@z$JrjW4&`=xKB1<_KIFL0|o`U3n1a z-pNmz9#5}x%jf#^d=HaRPniC4)|X-!w~5!(q`8bhei2CuJP^oL9K`lzz#qX9o)%OL zA<4(`sHF**_3~sxpntXT<#^215(>CS_w|R(k2mp5VYK`xSBwpV>8+9Abe5pa_s`rk zFN%zsYd_zx8Y;y5V0Rl1B=}m?o>j!Fv9W(|^5J^(!UMZf_rQ!mc4~ir_1wD~Vc37SFhZMa&(uhviY5BJXyZ=NaO*=kL zsUoSWsdQ6x3VU{j{fXGhUU0K1x4xPcl_dx9qblffdr3`stpoLeM5Mr>$hs^D4BfGIzDMxq!f4^ko*L(ZM-LN2s~CBAnSJv*jUn=A7+n)7EzMRo;-5{fmia{n z&NZetA1N~_BCjJN`pmsF={xBz)!EY1Gw~4>qdr5P`T(M5zu|6sggJ5VA%SE1uT7AV zmgvI~_)o(hc`&KwNVPoSaw5oyvyKp^oI+%TEb36Buxi$%U+;~u2iB+s{_lpHx~zCp zgTDVrH`c)t{jtQ)(pN~56Ad0J^rn_Q*8LmR1C5+?<4u+{>fZJr&K?wV9X5Zk7^`^o z(X}z4jqBnSshlq?vVgk)#Q^(FTB#}ISn9V8DX#0+fP6SmXBVb_-*PRYk3P1d@r6h))PVqWLkGU47B2HE7k+#I21jq85mvrvCBf0~~C z7({IhOnlps_2~9Y6&M@SDvw^KR~cJ6;oU!a&1WHAg4=o+Wu_>YH1X`^5M~vcs-&oo z<*0}H2ny`~_L3P78-VLG8WfD0i;I~S_kV`^hrxcsfr$-?DW}ejFFME5si<0HxWP}j zW4mSQvsC0ZvQ2mrDs;FaB#!|A^3nf#0aTG#Nqx&XiSEQ_e3_3(W_(1~1W-u_>N0h) z`&VQ!CG_2BHCawLb2S}I7)U@pir~$3v!S+^ale`@yV8Rsykgy#0&4XV&=Ey;Vo!Xo zPSg2r{t!rc6sN$$R584nb~D|i-2*s2SeLEy%H=BMD#O`xVEWk2avPZstKQOM0u6dD**IwR6u2yWQRS^n9S6~4 zjn6jF1T9X#{nDk|T@#(3?22Wu;4(0d3u=72ZmfX|Vz;G1$%;9dRJaM9oVsu1LgD9p zT@q7DwOF$UdA60kii`3nR8XIA!I+7dtCtM-Gj@DngWC{CGT$j)}+RrF#IwYt4}h(w%7SyZ=)Mhe(%Y0YB80 zUBQS>efgD}X0+qX+O0tF)vq6h3XNtj1qVNje*BjqceaQhMcvi?xCNcB!RPU%tL%*B zSa)SXO@}OD5{N*qpV(t!Ms!1uozM1G#&=IO@v=h1+Ii3Pb^xGy$%!-UP>)aNB}b@S zgjugY{hsSL#J=o$%t{ogPY++@kmZvt^=HV*e-1~PB){n1uNcG-ampmh;?f&vvnEhG zNd?*HS>USVEWdy)2a2^boXJvDj!d?-Ji31OtYG{(&eNd43KuM7KR~emtu6JRA+a9h z3vFU0FyQiJ&^co0PnX*0rVB2)JfE*w)8(}`AErqhu^>DG37~Y25+%hWtnQ5GWLqXT z|Db5c)iZ(cJEYROD~!$?cTC>51(9yMc4iFUGRx%6Or#j5-0 z8Xr(?BvG_clnK+Ox{B5S>saImCzUIG?KuyrCD8+kZQ8cq88t_H^p0_Y1~qoaRMWcOkVFj z+RlDm`~|L-*pA0OBJyCBCsj|N+3yGUb|#7MDacFUbiBP>J!XWA@K_@<8H*J5EL`ZW zxqF#W`NU^#(;SBKHOil^ZF~p8e}1)t4Q+0ZM=fqcLd!GS!_H-<>oyO-EX^lZgk}{L|a>{LH1Q$BjKjb|?Zj*t9e(j_3@64(g&rnHX_;^3zV*CC9lgooPW>?#WJ%vok+u8#WdMhGe||Fr=#(Sc#O#d4VsM6wusgB9QMyd@5G|yQ{s~NO^qXKR77l0Ytj_SbUEk z!!k8TajD8c%$XSw7TV~KCH2QIZtdJnT}UuiHEMrfQ;RZPw$!DualkFi9z@Vl4ynLV zj+_1rQHIdVJe6YHuy65myJt5-zP_AV4Jd7xp4*H*D_xtP=d!~E*Qm^!wm;9ty5*J7 z3W%P-&;?(Kd0(vKNt~ z)$1>i9WXDN(M3}2{%?Lj0-)>foi1!Xie-PFr8lHwVcK+`I7G)gtaZfYq|ISBC}6*0 z&P~thK(e_B26t@C54-uc?jUxy?vcrlYL~?ab55ByzQYY(v?`*T?tC(%-3K|1 zjRavg3H`J8&a@3Q*PS(NxL!WXl_)u$<-(Ey4%ef!_hWZWoEpV(SrW5(puBHE_)W)h zVU>vB{Bopx>$h_mK?=8gSVn{h(pfzericYp_D;!L|^4I0(soBFq zjXNaOtO7%63(^@Ig;NB+iP4beK&!L0k+-U2|DzP)N`;|yK9JN1u;knUn?Hf%qEFVA zB#?Sn#H7vbmx*`vg`20Re_ymWUs;5f%4uQv%<62&l8M?(poISirvT}DERwix6GA(# z*2&XxMy;nsOq2MKdB#yN)a@IiTgl*=k`z0!Fy3Vc{1c8q#8BU!*Ecp^yck%QY6T0L-DgpaG!yS@K&4!DO9fK*e2}!Sw&_l?2D!#c?m%xIF3RkkmD#O zn-iS~!^4^5+ga)I?iNc6ku8pS(hwsJ{C0qM81D@BWRz|o&`l?*B2)Y&?Ouf|slSf| z{+M)dVB0Z>L!yY@>AfSSH$AESB-X46oFv0u@`)piK?2D5%}7mSpE?_TBM0NAPcZAM zJOpL)dti67h3WfDdx>~v%+@zf*3&r!lTX%92ZL1s8bWUX`3?xvMcI~LI{r?7g6|WM z>F5c=Xj@$&siFkq^=W+%w1j!NIO?(pfr4T{>foyI;{r4@PF4rWku#nQ*khDS$w!Gv ziL^tr8)fC37mW{ToeE*xg?wX=0a1KI8Spkp9%dM6$Qs3f=Ypy4hXsYsu!HOI(8Pd$ z1rU4=mJYZ&JICj!P+oR0anRpb5K%|F1iLqPXdr@t2G^Y@1p+eT^>Ve5b+i-9IB@F) zBW5Ie^m!(5XRs2OOcDf~C+_8vAwCji#QnV2(cXc37;seng5BH53IuE*dbj3^!^+20 z)jP0*J(;-CukcsRfzrnk2oUg!Fs?frcULL~N(Jm_2Z#K15oHITfjheJ0ud4*T(g=z z2#6w%>wX!GkWiiJS;L%1^#+K{`)~&1#uEhRLwC$xVYFc~vTfPx_fbsTSYxGcanyj)cgUrj}BXF;>QgA??KR~ufFW{DZgMvqH zn)U!)+x;W+gSQOSNRs_XgY4tg+WyheK}Q!MJ6M?YJrC`_{1&I4Im8WyIs?)9fs`5t zeCe!GFs{H5H1?W@Se&pgS@?xsaY4iJ?8I(9dTX!yp){0R(76#t=N>o7K*Yl>-bFMi zL`p%LN1@P<>(Il-pVF80h&kea`>!ihBjeNmp#$_-qlJH%Mh}vapj)aAUUR2#CF+oJc+8QPk&ef%(RwXPM=~i z)3963j%V!OiqbOE4)B*H=O*XCfLmsETID;RCr?S)zY&Gtep`0^-w*NkeC!L&U_s-+ zgAcbM-^Ti||0rY|IAT<1S>`zZWMs%*ujczEB8cq9l|yio+@zj)0-|x^3`1F9En6tb z;5c~*E}n=Iu2;$F3Y3qko>xg59R*P!BTPoAc9zndkv(jk0GbqggvN^ zg^~@9Gj?7_%6lKHRC3bM3}so0L4kLLpdo;(mHz@`3$@Kf<1VRYvH-Ox@Y|x@=BUB$ z{^7+p1)XERaI<nQJq0YcgZqIjpv4 zZI~P*yrFR7GtsUf97&)e#3tH{NdAG}US9`TJsrvRT}cS4D1y-1 zcqP*{7YBtO4^xB>a3=9ROM$#O>USum>6?rDsWf%yWQcf2V|@fW6ZIAK#&g4+6>UDr zE;Tip4i!!b#5NbP%rL3K`$kS2d`*g~IaAqRBL3yUzGD6ATW;PR{=~FC`l5?Y!F{xE z;$=$Q)Oy{2Dsi=XN4r zBy7{I9V`EsJ@JUdivlC99GuTb3i#sA zC5jM=HRkb=Qh{qI`|m#>+MMKSCNIwVKBG-AmoN7jW~Hq0hTN>`7-5c^l%cgc)K=e5 ztuj>9AemgRNoLX3WF05h4^F}^0@;V4*mM#@r!iDHzMT(lyw4|V`%uTz8SIMBu`d|)=(npRI!RUjKT2?vt94>0tI- zJ#WJi`#sHBh202T&6iDMy0GIEaO>irw^yVsjqx3o`j4c)GS4xE0*kew{~gGx4sL8G z64;+%gbkcLubWLa=#^+_0>VvOKRA0Q=H|`-6q#`Mohy3KgIHG!l-b08qaiD zpnaz)v>C8E7Zd4Y*6dplp&9HV9t4DA52#jO!?NzjTvc*wwlPO zqcb3WLcDGAIfs<;NY%^9w29zXerz%?Yv>zduB$S>n8;BxlKj~r*ptxUw-cI@P0vD(Z%{|rB zvyU31@JZc!PuZeJ?RiIGE>5GQF%|BDINy7o#F`&fMA{C!9Ynok+sCeVYzuPCJ zj#ot6aSp-}WWhTA8@SpTuCNjQ`(}4vMMpt)%JrMts~2yKU|TLe991zYKD1JxYZu0h z*#dvAD6W^DEnbFPuXyo!hX(~x-g`dY%UjM~Vv|z2%c2Lku@_x&Z%rbs7fTZFk7c>3 zJ43rb?%d4C6O)Q~Z+nYYwdV${SZ&qxTnKjOjl-Ap)CC381E-wD*6r4(pM`$Rz%rFO>_DgwTM+RLYh&2cGx%ppsvI*zOfkp{s}oOFeIMvk8_TOVRTiMC5Ygx()m1 zm1}EGq8;Pl7ZH%GF?57rBa-)H-)b!o+s535Te@7wRhD+_+VgHo#f?5xjhQI_*1DvG zEml+)YTnj#SL8eu#HFB2?~H(ksjgj|O1#$!OCt=q;Trl|w`r;tApy9qjz?ujTx`{w!Jxl1$ijmHhFSZy2VN8U&~ zp-&F-F2Ohwz%K7r@oM&`n`m&^r2jxsTI{ksJ%d~E3OX)ZLn30QmE7Y_QL8`;-0nNu z5C|Z^CVBkkKMCS0UK?0yIHWZJP8-W8%`3Y!t)sc$^4wdyE)%4-=b(A`mbycs^O`8| zg1qU1X^lH`;B8cxLrNlz_Vdz}#E0g!Uq<0{^;jW5?oSM)(>6%O&c!+VG*CwH zz3X3#N=FI_CT~d|l%)5};ZSz=6iWQHf6BTXwa)Bxt&D|opuci}JP)Iuxycrbs3rS2 zbCi=>Ojb8amQl}!l^aX{Rx0C*( zvueHmAgOHQr1w@ktGI{X?V0TiSH92w(Nk_7m6*PcJ~g11?1ywi@$hIg!@<{|Hx=ug z4&L-ET)-HSfZDo z?rwLz6HV7ipV7fs{V@N@cq6*2N+Te^9QP#ozm_6Ca;x=C)MlTyT{;(P9l5M7`o2Ne z^Cp_3x7?3?_ME)QudJcK@iN?4i0ObLv?>9$Iw3Fl+JOGx!%?qC1~DwK3IFKepx`sL z=Zn~_^=chcGyg!Bs=QZGnmvBVO*0=jQcJnyOyN-)72g{2Myh+0uJ82Rqb{!@KhbFU zjRc9SY+r7~Tpfk{WsRv#=|9)5&UED|SEo_K3kA`3K1S{N+()y9vPvloKurF}{Wz|T zU$LmxhV|bd^N~VnAA1-YQb!ai93ed#wWxt7wQYa+y2Pau#j-FtrNglPWU(i!Hz5x; zuQct(g?5t<2>A5mlt0&xAr+~XS&nIzh=<&-j8FfmVGKYLHzmOr3K=(?brQ*+}7;y@(X5RbsEO8fvO>og;KoFaJU<=kMEt8_F6#cK~Sau@>kDsxJTIg zn-d(ercZL>L4=1y%Sg@cHRIMJ7L=blaP9$~+aTGVt$EZlCv!49;KO_UC_{^^cH+I=U7+S)*!I2B zl=`P0F-AY7lMppG`_?+#^W-DM?k74Iga7RcM-0PokqH&@2La7Brot>X&>NSz603jL zk^a|1h0+Q4@A|FnG@mcz8I~s%;2p-ke~jQ#sG?)wADMT`auP^<`&wYtrD1QColE+D zSDR$0WHVFQ(nM{>z8h5bQDWhG^XclA^x!n}Be{NWmRRpMKYm+sk@32;@QM>N!D*8Y z2aZ}T>}}Ygx}z^XuLd_4c}Edp`E6I9u(}kx^EdZ3%{0ERdw@a0#jIm~P}g0Cxs^%_ zS8e#q%VhO^XCEz%-`G(Nm*7-D!*Zt^L-U^$GwN-))XOH^q0T`1vQ&Agp)Cy`^~6jp zbrt_!-~iWE3)s-Cd5h@b4Ve;bzpXqy#_%eQ+=q9q2^%A(5XI7;b)Hw$r9SA13AS^~ zATg8CW9?TSkQ*`Ep23lmpkZr9d~eq&8?B+6!o0#+cWy*KXzmQ$m#t~|I9iRJL*p45v~0j?U;VQ}R2b8+6JJM}SRpu@?9>Drm;;JH&lwM`SP zTfMF8bz{aSu#%`jrLBe6oxd*P%fZFYFNsHZ?e*cWuie*b6pLoGT_H}d_Z;e52o{jC zFIAiWnN;m|%0o_t#(Iq@G7s>^CA6Zr!X0hVM2W;vz%x}t>VOOH2E?yBb}W?j^|UlK#2Z(5m~9YZLY@*yzVru zTO-dJI(O-g1OBmgF%@)}W|Hl<@sAeDyixK8TZt(kv-!=vzP4kbcV1`x`J)WwKM~NJ z^1fdO8~^$vsD3$nwt>-vvBhKKpQ-H2D;jVQ7W z#;2?zCqmio?&=F{ph1~M%wky)xz1&hBHky>!9>k>YM(aO27o#7#Xw`WX<4nJ*=s?o zy#w;vy3ftdcS{Gql`4(gD+iSQTV3-I&5~mE>R~bsV`y~cWAmCR(GByf@zUNWxf}$k zy=OGqwVz)aZXbHjxw;Hq4<_A2~etm-Aq1l zQ%CTO&D|%}mBY}0q(+FTAI+NhxHNvdQ1D&T!(cz&6!!X}7mu)e&ym z8VhGSYu{GU%$vcFm*COdRb(Fqx7iS-o$^wxj@MmnuZBM=<75x1Ce!MiSCpD<92V7A zJ>|}RD-7K@Y}NV5E?5wp;Pzd_zrWdRoBPboGqZhsInza2{EC5+Aip?Is$N{qq9cY= zEZIlP;LEXYOqY=qMXl$A{jnV4LV=c^_x;k-v_Xz6fXAX$lvEaWnCd)Wq+=W>Uo z$#Sx}$QU|+Hrk%)`|EAaBJZC0hvg&~Qa-6TdN=#QMMPcuGXD%1`+EiKYEw@;DLQzOvJ`` zyHbte0TVwa6A4b!0vZYr8sbTdI}#MXTe#veW5ODxTf@!$qKr;KL;2hSBhJ)Qd?(=# zD4Vw!h}RC>vVE6hr+~8uZYOUWW^f6!bK` z7U3Lq=;#cc$2xI~BAISbp4RFXbU4n_2)ah8z{Buy5OnDH-)XNcS5q#_%vRgpJ2^*A zbQ%%^&NhK!#+?RU2qtu=9|J!sN!^|i{n8nTs|zcppwc{8w;dXY3+DeR00V zCN4l-c$a^&nO?NE*|Hq>_e(j|q1|}&pPUirmo@1sndVe_6xTUPt`DFy`bBkkvO8Uh ze%5<^G`cbG-h9jl78e5oHN#x$VV+w}|X7*w9o7}R@GV^}R;?~R*LhjrI~ zn1j4Aq2xgJX=}{_A)KkRYgPmoqCn#zBc6~s`?wi-`${-;<3?3q$jY${LF?e<47TVl zq(7$*dG2F3x&IyfbdlU3bMB}hod?Zi8DwIAVq58vsc-Y>_vfWDls}%*a6_Q8&gu0W zxN(r3$*>u&{+ZKc8ieJqLGoW|x{b|K_g!7sM>hEMP*xVlAChm7RTb?z085$oSE*aD2%g zLAms>RRNR#f2vzAZ5@NUVo2=>zw;0G;8Kd*5A6vS zSU)@*ftZ7$Iuv_j#1w_vitSgVW~C2GT9jZozAWWn6~X?I>JU!G{U6jhN+Zlkb4-Dh z^qGhTGDeog{#WgR)@3SHReW?gn4H;oi;fJK&wt{kI~0Bcpy4_-sx1@k?}a*Fvd;{d z6L{@+3#Ser_t$vresS!dyZtVP$K$VW&~eVKKXN(_is+N^S|*GnMPD;?49dK|s9OiX$H2t9>q4yG)jG`^K7lX=|O<_!eVb4yXktcky zvkEmafWN0`{m^acWV&tD*Tze4=}FXOMtcqNDfaNooR9t;9XA#LdM=LJ)J4aRSkaME z?UP2(#>jtAen*@{5Whdnlf2X;+vl1o)$v1CqVdT)gqa~L^&p-sl=f-O^u95CEM=(I zfFCe8dN$HsxZEK%z=5q2fE^!&rOOY*HSovzEUlX1BQGYFfU?CTCsB~dt9YjjT4oz) zaRy6s%i_|!<4c9jVygSKTJc_7z!O_D1$v|Qh%L$#Zz=#Y=0B(an@BU)p(kYG_=%ArVX<&|7N0*tSZv|Ln|r@DjbfNE_i@RE|n$E?cNnk z*n0xchFoiV=C12VnqIvm=pJd_agnN2gszwP-L+J`QC(wbV*2V$312`f{F)#~2`sKB z9Js<+A&l7;)?;!tIQ$BfTFKVLb9Y$W-F{V7Q2PU!fVv#lI}hAxHQ#zm(z(n%g$-zx z4Vu;w!Z^8+pIl5=3zwP;3|?T}8@g5wGvnQTdQUOfYRz2#n{l$Vdf(sm)pAHiA!rOL z!?YuD#JLG{ng*7ul=x8}F00(wN+j2KFYjC?LxAlv$J}l%E{GYUe$<)2|Z;3@v9Pb5}mto{i5q?zk{ zBbp`31LKMZpL`xB{w&EmRM_rP;zBb0S?k8wu5o%Fxsdvq|H-6;r-!KrMemxHOQ(z1_0&yYma_oOc`FdO)T zz4cR7$*qm`-e`#5*+FlGV&8>&?hUFbid+%s5Dj6?smv(gw$Hyg&b#5(j4`(`UnOV^ zvK!b3^4IQ-nu~i6Us=gOf8|n&p%75$5p$rqIC%-Y`amJ0L>=B=eZv|X-E!!R3Bo%?G$b*OP)^` zu`lUrOn=sq7t_%p9eW6?YKCqlJwi)G9ZSg= z0K`GRU79}$U~U*{SjV{h z6-wDGLYWzMo@L(V`)^}jdizb7>443rXVtCp>Xc4$a5a;Ny?_vTFKLl+azv>#SIRFc zLUWrvnDKR83w11PopRZ<2H`s$U;qBaow?OMEes++S~w0FiHH>z(eLu8|_TS z8y@ewhh+n1RqmeF+pzt+No>!6eM($Ye`qIi z-_JiDNV)XQFAf)zJ-PUgho_WpZ15pw;4QGju%nz0VzIVmlsU>H{%v+l9PvOXqhQyQ zs{X$AN(OZ?rzXIqmQd|z_N}tTAb%=#=QUpJvTEGf-EN`yY|?GzKJ~SVY8|x;&(qEM z#zo~-+`}p3f4)9za@R_%ti%>*I9lT;OR<18R$9OAbky1v%V@k$e=FE$qw`dxH0{w& z&^9uUMNjd2loX@KMy^(sXfn!QficEKy)*`50-y1X#+J8NhJ#_-MMd???s%xJ{9N2AHjFw?-;(I zwm?DyFXECIN+Gri^CQQb`Ly0p^Gewqw(B6Z0o!MFgkGwPL?wyGF^sAzh8jnEwu^M) z*RvU$(;jv&c!I2Ts}*nrmq#E7>s{XANaqSCZLTf413y z$Ij(~)9~!6(j#f*n3=(p=M%D*|ACqyKXDcbuENj#Jj4o%?YNdm8jE?sJC`9{F#~iR z)jb3*XwZVA|BNgCoWZzK;j{n z9N&2-?NU3eE@tAz&u!L(S$M|z^yabhN4`;ieYj=Y9%(cF@783C`8IqGnrnkED(r8G zY`r^y<~k9ilRpTbIe}h9b))HA1&~@P|CNBBFs8aEV4H|iDTvLEDSX(+&N-$RZYS=R zUQ?!m2_61(fPf@L-E72>^w!`a->&Zx`euoBs&+OJ`xb#jK3l2KNB6Vc`rRN`jD;jL z5r5UaZfQsx@w7?-*$Q~y(YOW21qG^Zl~X&oGo?NyrFL*Zp3+PLduo?~9N4BGfxminQBP7{r&=gp($!B!JEUDXl5bG0h~w^#%sp*b!48;R0G@4&7xPGa%S{7{$dqV`RbUR*=&Nq( zIo%pB_4WLYzSs@THs0$i2ESR{JUS%k@cNt%R=17%@K5~BZIm-R#PnD${n`;DrU`J6 z^gsi;ed)Xsl9fJ3??yrtIs5`%dgu9Jga&LD#91n5uQjL*g+aIY>(dqF(2xXaF`hOJ zJjRI_dfK9yQP3>vBuHamIZRd{JutY{)_hR7t+0LZoax2w(V&tU`k0(xf`$Rkk6mfe zxR!4;aoJDP!`}cMpolaX&3X&VXks|c7eTJzg@0vCwGYu39@^&{yFO3#KiC0N2KajU zO)FM&k1QrHUi56WlHViCt;1kHQt~bU@7c%?M^jWTyhy`OWl(%MF8%aD%)h$XoP%3- zEdDa=f!62F|8)mt;^M$IB5`g-{8(BLxrEV+}g6 zQiIO$vw%y~tBPc9Yx!GnyO&=heJ0k0(!uFwM#q`= z{6t~WbE9}^UQAuKV>&FhbYfo8q9p#Tl>wVmr(>b__)A456vJ=_*`ZaI?w^Am~Op_J!&j#C!mSgk&CSB9dP*XuqurxFTiA@cMK%Y zVUJJu6O#~60gqMRN>y+geR7_cK*==0X|7&orQE`wfxRwrM~WF7KAS1u5LJ3Hzf33u zgdaPsFSTU2iNmwwFJMn4jf3$U&Tjnn6WHZ|vkpmOfxxxn80pV@zJPH2lxzA!AsHE{ z!t)hzX0slcF1kqeT)9CWHcSVk~t&q`)w^hH`3lw$efGv z2NSe!%?7%G1B_u*cT?T(+}z`UXWw4OjcshNdC30>6z3YojQWA^5IUmNlOVwFdTmyh zze7lVnrv!f!1_2OCovkkh zzJJ#>Z810~s(k$G?*-pDW+wFx#fP=s5!`W)1AB+g>+<@c=7?E-ixQ5pkZKp{=TqcA z9_zKSrMjaYGSDVNh&8tg2QuBwDL$-M5GYgD0S?91r!|th0Uu3@;wELeY11LZ(QX;@ zZ(a(VnqX$M73o}X>EHo{6<2!o79fdu5QJH?FAgmT+-7lp*Gl={*U;>{bCIFj40iza zW}hCrGMyO?Z`n1JDhtb2T3s{sJ%P3zG+{UMINb+JYepylLd)VPeD5??^V99{=+u`s zj&F1uNJUmjr&pWtj;$|iM)Dzc=L8b_pREm>0wQoy@l*(Lq{q}3{1it|FQ_Ba$o?tj z-KL2WGBDG<6#Ujj7V+RUx@aiiMdl3-i{d#y8h&fC+lTarkPSce*k*`_c1K+BF%k+@ z_Kaj0?;7b>-)DUuY2vWFVfY`ST2=h!RcMHBql<_OU z1@7V;HK%U@bAIN!C-yob@Y2Tfzy7jZNGl&1XS)sqZ00PQC`^~*`DJ;9> z1?b2i|J;<{#}3mxLb42jXc^jXIRN0B^^A+HX&3`X1ev_fUIZ8jP&oyoxp-cbrh?g1 zAfG8&<(2ZfVOjI84Cv{f44W5sYxOKh<%+kolRPzm1pF8gqat&Z6u|KM-2OB4MK?Ud zmvrF?z;_ouHAM1=fs6nGRFRar#`*&;PIi`+U{0a`3;IEdj{_ zaQ;V!=Bf-pgrYYo-2-~^=1lWSxOS>jJ9 zgR1zPgeU=GH&(|R#MnY)c6W@*CF)%}(G!@r2;!1P*!w|LKglk_DGqdy6VEo3MZ}$d zKq;pWBz)Z)%IcJ>i5XJLn1pkmhWE#F3}vn6eCM+_AXh*nnZgzrQy>aq%ZZ()Q-Z0p z8kt{yUEc$%NnU!|a_R4D5`5#+NN4(?EV`g1BZITj^_g(GkSnCyqvabk1K{7zq|752 z$`bGLiZm`yO7u8*)}4dCle3f8k{3;mwZ9WvYb7~AvpL%M%OionmS`|qfGq`rA|KS| zO@YuRp?pOU?9P>(VZpfHW1Sv~6xi@p(!n?a8srOw5R{TY^4Ks&gFs_tDXG(WZKW8D zCQN=){AL@K$=Qi0X0YWp`X2$Px!0$2!r1w31`zOniU(1cH&R|XUQsuKmo z|EmtKjkCN8AD6Mqa(Awe^?fG9%OijDjtLt+E=@UGpFP%j!g#3$w8V?}#bho*hCt+e mz&(hi$QnV$|AXP^Hbp|nv{qJK?qGDCUgWsRX|V# zq(~Bqbg61B0Mqu*VG>b`rbI=WY`@ zo5Um#C-6hqMQj5`r&S%lEoL-=Q_m4S&o3>|^?G*kLKWn_>&x!o7WEc&<2ZvfWtRdS zNjY_%gU7ZX9%=@8dqsIi&ULi5pCH+9ZU+W6s&@QcZ9k0Jab4$ed-8OA(>ovzP*VL7 z%SZih8ZRg=z5j;YUynGgz|&#lSCCRH>}<_JivFr0So^7vW=TP^Wu|xQj@gDNU#l2? zJ-6;PAAfZbq5rYc>2nQP;20K{bZ}Lyh)-oi4x#b??6eW_MtOeUWiO+|>CKW02*i5O`mRh&BJ&FNi=rcH-Odcen_K{&##T zjdwF|#r-22-_LMlM9)LJ=)2J}Qx;^|s1&=O;wd3!Xvg9w@`A_w|7p|N1W`BrN5}ao z0dX8tkm+m?gTca9t?-rIfcNNwqo`upc;>m&)dlWV)b*(vEJM60FdvXEN^OXMzCYco zJZR<;rPf72v!3oV-8;(8e6id$E)SF1>FrU~%mvpGp)FY(xY!sUmC`7_evn ztK__Dxj&a^HJySR@RAw8Z?xiv`4JmTkeGf2Vli;%kji-6<@TNqJ;w)6L7Br#YkB~6 z=rw~1E#}w1AAJ8d0aEqO@)OM?Omv>OI2Q4zSzh8Z{A~MFDr4VM?p_V9P8nS=-G^o1 z#;r1aelATH_Q;5}w1^$e0yy?S_hsXtej9i3+4$ABFRf%8c-6r$2Hphg;;d7GUOt>$ z(=P9DCp_o*2v~(T`iv-mcNGU|DS({~@Fh9a>i2KFjlc6r!0Jfw&(c!+BDRyNVlA7G z0hN!O3^mU1C?~^!07IbEt%+}Pyo^F(JN&(fN6FaLD_{iRwW-8G4rx~U+~vG&ON9d# z-VMR;*|5%^>%xu=<>fFKM#4{grnM;Md!hJ3$co_@kv41Npb2a1|0!9*-D#&WKJ63y6fKKeW zI@aoNFO=!EwXa>m15A(p2o{_Tjs7WYcPTzhK0-}j${c2v6mQIypcd`zjRvDI)1%lM zsRU~}JhXYZBut5cZ|#~wJOTH15j)?>q^SuVy)^*6{jl5=n2NR5Di2D)x2FwEX1O8n z&PkiEO5h{ME@!?Fcjx%O$gIkyWhO?`WDXmd(Y=(O#zvNyGJfMJ@e;Xf2RnnKeV~(! zD#WPWzmWR5c0U1k`>;5ccywmwaSsuW(2d^xBAeGJh<{_6hw+MqlqgKqA}Y7o2FA&D za5A%0*p^-Tq1DD-2E*VuNH$&4PXs&`N~-CUuP`4H%tJmpBL%S`Qy3|9mG9y68t1G2 z8J0XfWLNi2lY5iqeTN8T`htPL8g&nq{4QPlc5dBC*$z?6MoDn%fzsG$+Jn(le4i!7 zlDz6U4)U$o!uJB2=UdylvoExj11k~n<=5LjdDi~Ic3$4ENcd|UcM~Ag(MA_#sL_>d z?pkqs(iBrMnCf`Ml0dw(t!vq-uhwBnnLVw?u+rgbwy+E~{q0e;6S~c^eiaX3oDcY>`wQY> zAaj<9OK)pjCrxqsDxy9;gmeZ-4YZ zGv;|+^L8$)!X(0rvB8+~A)j`892EK)MsnCX$67@e%$n=*s9nU;D&0;@esOyNSpnIR z5m=tbP?+XpXH}61@6#MGN-V^V?4X-y2fR2qW?F}4XSR!UAKqQ@4^ygeK7ZSV3{2i~ zIA|`2k-I4-AF#jFm{b(;as<`gPf1o9G|F*k!UtV9bl_oF7I+;7u6A$_hb_&>wk{|j zCgui3k~Rv_wQ{_s7a8aWr!C(ZKIm{4gZdNiVr$LAbut ze(x;?Y5NR=TN_X0U5$Wupnu+6zw8%+a71e9FkK{e{kE?ikF(z8$^#3Z2QT^-Hvv4B1zb%=?3oH;RRfyFJxm3WBDK_n}Q)=?B z&6JWq#3jO_;<9VEl0R|*%ij12MoQEhW9kNRFc~0r?yh5LWrF zni}&l!V91RofWU{5?{cV6c8R#uhA@Pi>cjhQ6cNsmlMcFmDWN@n5M;Y31XSf`wJGM zj4831{fvavp25`a1YcCQ^Soz&^6;4D{>Z?j7}h#{21T~p1z&2#=`sUR<0TWv;}I<$ zZ_0i5!5ZIGs97hoEb}CR(Dy~G%uhYk47_8C*-AUw$(x&1A3!Ed zOp1~*)%4!$AnLgE)fQ67x3Cm@q85AUCH)du3yH5-^t=7$bwY~Nf$Ktuy{;JoD=pBe zSM%Rv1{dog9=XSE(Plx&)H@W@K;#Wna#i|k{b=pU`TI9yhgP(PW^~0BF#fn zAcR$kb&v;aS|~#pp=!xltc?=t@tbOB0|`ae4VvrNci{K}a<4TrsfO=vbk1neK-#ey zy32$Xa+R!aq`%W_W+N>UrO;UhD%7GL2hx~wz@cz5>9!|;tmNWyxkhum9=?0kyWoKD zxAlRzCj`@gVRfghDi)V11`Ul8X71@$wb?;IZQwatlNA|$g*vUOr#bJ`+U-4}zY|A0 z2Y?jm3%a_fX0b{!58D@jg)JXj_#~-(rrZoubG9e0jX$6<_xVmyXX9E+xSocreW&@S z>BN$BuUIfQF@5fz)6~4Rl!&8}V-_Dsx~kSy=mt-3RzjJ+m>^O!s9^PV`Pcs7^uA2+ zI0!)8`!~EC;q#zGol`KNW?zBZfbv0SPXA(Ij0>DBq|yc&F9OMlOU!%Ce=Cl;M_8-h zeL?u}?4#ZM#>K7$fdDp3sHO@Pu({6LHAExGKaztvRx5wB)MDI3X`(esRqAT6*?Q+8 zA0N=<#PN-d)TBQBSJ299i}1Qv#XbqzII(Af_hOM?wMB$M!#FDKw@t X#nR_@;kqdL>JwZZK1RYkkwj$T1qCur-dWDdd_NQUA#`=im<3_u}lHIbkN zdIpG+Zv;r4j*T;nK0@PvT@{lNM0Qt0=E-SXVfeVZrH?ucCFuj=s$_v%GBv-wg**ky{Cd73oYMGq>?%+Gf}~J$$Yl~k2g(5Q zzfEp@dkY%D|AHomZN~{1Zu=i}79EHin#F(r_GUEG&$k{rU|?LBVQ6y3+cD@naR{J! z8O;H{8NpErnH2M)MIjz2(?QfkUf5D8A>G;IrF?Rz7A-I~VXQk&2zo(h-$zP062KVb zrJd;})eBp&5|WQ@ggGAZM42w@S@^?KesCK(Cs^>EC z7tjRL$8(t6{_imEgToSNzl=tNBc7n>AWEhD_eD^Dz*O-ZvdTaxIO$z0xDERMtg4i^ zIN!`3jKWT)b% z_-_%Q@l=7|bCs9c%+Q>7t^RGvy@Eq$It^R~QJ`_gDBnM;UwRnEeuI*uuZlwOC=1Y1 z8ZW~GO{CoO*5cOPq>9^I5Qq56E5r!uN-$khB|~a0$<~^c{`&pO3s>6EogiOaJwu_~ zD`gen7S$a^kdS2P{-BHW;#Dt>uz|>V00;c-3(!ma@4a|gUVCz?QehyVoklSSxD>+1 z#D!R=y-EC-Lv`mF(qmwe9*(b~5E_PrwqD@BLGa3RLE|1|4*ddGt%EI>F*zLpG}UQP z3T=C&K~Ap)eG?rXmB`>P1opozd1>(~jLc(n9Qt`))COcIl(=ux&1H z>xU+HHqpnnW_VE+&eeJmq(Iu&Af6ybz@)F3^c~{>tCC)jZ?b?QFVOtWVv zx8A>Fqopn1JSq_z3^kH(O?*id*R!IiIW4uPY(5#;TIuDf;uUIaU6w8}{c_(!x${~Q zrzPuC4UwX%{RK@m5%JgL3|R!1Y+0X|d$W-ZFJ!-7A&cTiEfQa_pa;|HOJ9Qtt?-S_ zcOlSpvjYDh1ijejNsa>*S_0kPY>QbuQprUA4MCeNVCWjRhpf5d||@LWhcjY_7g1wiaT;mBcazFgiVYuf9ZH)Ru#yumr5cPx=&L`}7XkYG#@%MvV+ zcNK*;&Xm3P-A+T~RN|fjGX(?>2N)1y;K%SNmM((!*bdJ-6w$oc<78U%qL{)o3 z4e>=E*pSkwyDvgt-dNIT&lGM*0*|+JRnGGbN*NsAjItHB)fAQJ^6Rk^Zfxbq+TR93 z6j(f`povngTz6|BNUkhS<3y79I`b0B09uOetXE{=yyZUj&C{ktY$1Se%?+IMK!B@q zEFD4KWwKDax?F*mu0~cd zQiX%p+65=A`YJP)X`hUge*pK{J>d7dCTKc{;-Ae=E*#3jCg4vLe zZK@&^e^3*}7ZKIlL~0Ip{G;s6CRG%^*5Yy`Lu=mR;$bfDrX%2Rx6NeU9#{_`pZ+(L z&L)(Du~7qguZV5c+5JrPrEM5bisymOD$Kxnu%!ou6Sc zIp5*~lQ^g8&^qt`8!Bf+e@(J$ciI%Ie$Vg&pOgX93XDuxg$PIWZHL2t*y` zqyBVNJ!wS8pS1uA(eFdgz#G2NW z76~Kcq!JvSq8#2or=<;p*{Ol-3iKzk`xktHn8J4!`_mPE#KoF3>7KpsAGjcArTDCP z<$yh(?GWiDx+;sF&lWh{9_{R3M|qVwyu|nR$ToU>Tg*!|mq;je^U?7wxry(=8E&%K zwaq2pr-R!Jf?44(g0C^i@VDh7;%A!t2J424wG}Re!;LS$ud%b!PUGgx3R$gwan3)J z5Xv>C&&shjoFV=3@50ejB#U9jql5ezI*qfoY7CT!E8RO8?|Y=9GsUxr+vTEQjW0&9 zxcsK0te&lS1bq zeGVpSHpL=r9wvcCGA>p`n{`+1vL~6iuR$VtK!;wk&p^^mN?V2JMb>7UTE;R+DTDqa z0pX%r)8_T9E*9L~F$ciu-u4*k7ye4Sl>Q*>mjf>6H<_&W&4Z7|UpkAaC=M*r4hmI| zY3@jBbCa8bRDwVs91Cu}h1!_TG)gRCT6{mAvlM$V1CE)uotn~cEI@q^lU2IV5zfjP zXI=p=5g|D&K!aHWa{1!tL-X#<(c@x9mG8__ety4X33e;ss7~;B#pVNhN^F1yL3;|+ z=f`KTP-N4L`wxnLFLb}2>|LbwR{C1(yEvp8C`u5TgcmrExHWjq6K78NQvQ^xv2jw? zIh7}T(c=SGsF|=A>-DF+2^+g^ibf^9Mge^6!CP!x>mz{UJV`;}2X!-6)T_NkIhU9? z6~IrdpqafbKyzhRSqSy8;x&6l>#9`Y>qaJih36NZhL&Frb15y@*5Qr}^7d_SoedB0$kC4L|75R&3nI(k_{Okeq67(f##Py>aW?JOM?mr-LR+RNl9 z)bQF3sx9sa;1-U51qBPb`N@dar9P;!_<7=}oXWvcDL<-qbTVPPLC5&VfOctgKAi|Q zga+vLV|1dm?_3W}T*d|pqZ#XQX){aAPb)wC-Wa)jH2vIEph{3%wMV<*$7>BFaLd}# zwmP_*6Xu={tAwi!NofTCD+}l@U=M8zcH=~OG22V`l^Ami8@2ul@P5b>y*odUkXdbE zP+E_w$7@R+?5OtSMC>d89(BF+o=}SG@%9ndi<#YgFo!aqjj3F0Yt9~|+fN_>} zD^;H%C1IS-DVSLFX2+3HHty}Q$lAeMkmiP|!sCvQdgQKh7*(@i$AH||tC=@-ztfAN z2?iyo_xay_At3MHjnCdb9&mdaY~^leP+_TsN_^6Faqok5t;udu0<=Vd5&{<&?{yWD4> z27)D>R8la?Ql#?qp2#e(?ts=z~VU6!@L^rZ+5%fEo!4H4*24 z_E{fUzT~sr@3l~)ZP!V!8yNvBJhcrEOm&$yik#THUi9sM*1MQC_!geYph&baS}01p zJZ2z+b7H$V)g_`s<*7Q6vevsnvfJ!5dR8^AU|$ZwFg_Pa>3nA`D6fm;w$?Lec>$vx zJ*!4o(Q+UC{QA(e1AD1}tXO%s^Vbi$bHOwlYi|+nEx)$Mq?D;|x&`o!*?I@R)XAFc zJB%R`11kO%n}OmMrK3X!^LP^?9*8K~El&oWy!PWphoe1|rZ&;*Qv)QbEtvZ)$`Y=u z=)suwW^21s+{6Hmh|S5A#YUBOi5M!BGDK%G3>g2spd}k)?C?x#zbJI3B@;lUvjPE4 zC#uCff?*q}9Y_P`d?WY?eJ}XSAUFDTEfl)8)c*XXdY&xnrmrzEoiybVxuP0_?`&a7 zW7j`8wgoNiKBe*oIWHBBnlF!g+(Uo#kOVD@V*)P?v+^gH+NJvY7cHbnJ2AtW2w>{P zordzs%XK>vF4ef3}?fC+UuAvu5oDyGw&L{m*-XELS&RD z5y+)5SqGLL{(Q+J2trKt#Ualw&!HDMt3)`Hmdpk#=)Hm&=By09DFUMgOmotq&AjZ6 zO?gpN7{hp`z%y6K{$B z`7#>ZG5E<*>sw#9x%8G+HpAiC=-JFJ57t9W96A2|J|R(63@-MT|k=Me;{ z>a66o8Aw&Jhv)mjn$B%-)Z=V;ouplk*XtHZA5^8z*o9Etzx)FIH+wBfUkS61WDJbF z?d@517PCsop0U-<=<%uUZTeS_58gddb>I>V+rMkt3`$l|Ta%{TWoh2%-wsd5Ex0wC z3^~YSU`4O>qQ)+3n)wY;W>{%;o+k6lkyQ6fL;G7bG6}}2csRapZrBp{Y(jRpv?2=E zk`mNXmI;>zsgB88O*g$t=Hb_(YDuQxfh`*8R5Jl^$ro(T7XbpapGq&@;D>$iP+rr4>w zkz`eY72aMiS-p(`!4LQ`F9wyEbEQBV270Is1?s+*9q@977nndT#fmyh;&o_nNtBFX z9;WNEpSJ4>Yty%y-TN^~6YE7b$~!NvyujMPW^_3^bIw-XMk+7XG;4SIDDVB2>7JYd z=5LdNIrKS|V4_iU;S4L4r=_MHbpo0`moHneiVp8juO!)8!oKwc)$F8zVXoVGpvv8RlEl#`+uz z-qU`3$#On<;t1-R@JFm6X$SD}wVsOLGsx@jFDv3^muRjus}rr4M-xX+GsW!w@7N&! zvc#xZHr=;D6Fpp51iV^-_MME^-s=e<0I zStFRqjGTX2{7jc5`NuA^t=Vf{;=re)0qs~{zPK&D@%khQ>#u(iQXmjz)`1mq%(VYd zmm@S*X20!l&VhTc?UQ)c>OsX0%#s@_EL-B*SS)SmFYP(A1!7ynG%fKRz#p&Hh%|`y z_rupz@3Pa7?6g*K*mAPm#H>E8W$=ntG+;SKo)y0>u)S2&F9X_~t2J$7 zfE)@EjB#v=D}i71B*v1TM#{KdxGQS=@7Tc5tW0 zCsRen;JTc_GjA5u)Tf@;E!30Nd_G4dd%xzx=Rp*#cq8>hcZq%{U1oMkg3hh(0h_!v znEcXf;l9l^CtZmtqn-I87>B!m`$+%2@{nhl+K%b>TuObm9BkVobA#$b+QmiBnkSc} zgdddXrTM(S%ZFN#YCisGtUl+*y3*f$UV0Q6gY)+H5dO+>ewOl+M%k$M$w^$D=>WO1_nkX(z;}N zrHOZ+mE+Tvs9xW&Yh?27NfQ(tfp)1!-RZZYGwx&uw*;- zZ18wWf~>ZcMS}7Y)&w4{jLR6T_-E z5ZsnerqFJEF>;WzRx3&HKlX*AlUK##o0dGVjOCAkG;XU?>0Y#sNuL9|7}v&l23;K4 zH-O{FsXqSb)(Wh=Td*<{BowhnZG1SDP!_OR^B|;=3Sj*=#nfKQJDN&BcYL%ogyKx= z{FL!b{kQ1nz|GGgNnfuXaf9p}kI*;g1Gkn7bqYHr>-I7oWI!|y3tvsFf>!Ce^U!&s z(e`yyob%C&*St-)H)cgJ%zToPeXL~f_w$l9B5UQhs}^M$UH5uy0e{o|!-nF7)rFfw zH*%k?`ECZDn;29vj9iZ9Q8RmVjQFsV|2uyV&e?+_{=mnjLA^fw;W!HOdX-l8ulJKs^?{;H5>D9jwB^) zi?$frUQ#3Qf;iapwy`cI7Z<5t+pkB5`i(P~7@mVokv>-2t7~m-e2sZNk=oo6fvS~- zJLVeGb@G=tBuE`@tExS6)hu034z?4gW16Ji+&Ne4?3CsUXG>ha2SzB;RT_l27Y&$~ zmWWx+<0WG#Z$-*tjf1)mV+*P?5o3KNPaWpW^kcOy?&>tZ3;CE^;ZV!iv0G!{qsJS5yYhU>pwQM;c@{lrIrI97W(CS%1iA-kL&GZt5kO7W{%?q1GfR;%EL zkFv5m`sCT}@WqWMWHRvPQH3_6^`#P@=sc@cMdUM=g1Nnhd$k>|RY5QlYtA=rXSAwQ zjuhtFc#1p>>Jq;r^v(R;!xFYwe%HVqeE#`hP-rnY!>^sSIby#sI6Fmw=laLp$DQy$ zk}v2210|VTe2ki~?*)!^g@VqieCrcS&ePfGX?m8Uf=S2y%Jfd3jO?|7RxzjTMslJE z{>t*Eg?{&fLl*mSjyPN*Y(tf7yrDHpzd9VB$Q2iX`j<5IR~Zg5Q==ef7E&Z!#vN@Xjb{N6Y-LrLtcf6j)I-C6UW zdw8x4<$N6q3|cIbvG+24V$!ne1d?yJ*BDsPG|?-SJ(K0kZayd{k#jHXQCMf?_r95y_0T`#xV%5p1x6VGE#+6x+AjSw>>ZR_v3y(#oOe{E+G z@=xhb-Lv@Yybpw%Yfq4BMDd~yp`z90=1CGLpDXi0r(XijJD=g3`oLm0*JK;4$n@*i z*2Yqs&s+)Vd)}5-r+-~*F0INPXrc>$xvj129uifhK#NCky|g@I{iEZxb=f*5)Z8l} z!z*j*4hcZ}Y;2}{dv9*ChEU9(?bqIL$O-xzIX2R}8&j|v*_I7BXVacI4U|ETVsm-d ztD>HAhaVIP)`o!F@R`b^8e8UmNzs^wZUEOYPHn`_M&z1`*9OX4RXb0?^)r`yPWb zxh}|D&K7QDDU9Tr6QVbs@*V2&o(}B%GUQ1Kol{#?<;$b!E-QSRw6HpX-eL;L+YCDg z3!xrRcDytGndKKsNJH_Il$cO%l#ZNet#T!JtZ~N~yt+izw~W}RxXFNo^g-0RNZacv zeH(8mDHVwXGix|c%GdUdW0+~JG#Vwew;6jCt$z$y4k&1CNMvTG@rlZxX!+R3spwc4 z>OkX0=n~Ad5zBFA&z~wz_4~UzpjY19nBNP|m>n>dHV|C4vcS%wY+gK4r{887mPcD~ zsolE{l%Hk7|GEL&dLRQV#5(re#RK1)$yQwl3K(V@H?p~!q;6RXR zvkd*SrE6@_r_HCA8_G4gNvHW1gUVvFZ^U+bu9^735q9$fyKWd~uOtCUgGN7ZSc2te z@yUCIfZ?x29vPg3VTg##>|OcPa%FP^ZIe5I`P6~v51A6KF$+X#4sq^lc2dsvGZrCz znYqsFeQUdCe-4nWK)k<|jwQGSK_UiwK=F+l^{3rzQvD!WVH+-LPq?(*Ii18wB z(|(!my2FD?Zk_qt&95O-mpF=XH&%5hPaQ7#g|NO}wXL1Kvm`ZvlzV+E7?-A`1a#~> zi)5sT_jVTLz~33!aq$H8;gmTRv{Ph%=Uw~(qoDlx(pBiUWPW@q;aAKMn^{pY)y!PO z(G>0Xi$5okT0Z)G1*%?0{JY^jSAqBIn}gbSneSId4)Hb=k12$b<>U5+%`fZZ{+^5! z`izE$^Sj%C6YEQ2Avuf>9%&-kM7gB+uGL)vzO>qh$R_)}Trg8A`;iioey+DuVOf8^ zIH#X|@if^{1jb(%x&;W8J5MhZ3D4rMkdej8v_nVd^cPW#Gj8eWU3muzU=uA+9kor?9J!0I&*CfvY5ySIbLu4qp=k)VKYv6BF* z_;tlyDODp=moM5^kg^!%Ce wid6{EME;P~k1Qms*1F<$QhZigyM)QPWi|S4N`#4+*9hK>z>% diff --git a/doc/salome/gui/GEOM/pics/multi_translation_initialsn.png b/doc/salome/gui/GEOM/pics/multi_translation_initialsn.png deleted file mode 100755 index 0b7b70afe34865d92e491e4577bbbddfe9559e1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2158 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 KUhvZJO%Se diff --git a/doc/salome/gui/GEOM/pics/neo-detect2.png b/doc/salome/gui/GEOM/pics/neo-detect2.png deleted file mode 100755 index f0dabe311d338af72e518f734344895efc939200..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8014 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 diff --git a/doc/salome/gui/GEOM/pics/neo-isos.png b/doc/salome/gui/GEOM/pics/neo-isos.png deleted file mode 100755 index dbbcf8ef534ca0fa2e5f1520528e7286c2661542..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7042 zcmZ{JcQ{;K*EbO)h+e`(5Q$!*N57*+i4sN~JvyVeXi2mnN{G(rZA9-q$mmAPa4Vxk z8Qn0t!8du{Kfdd^zVH3x>~o#H_gZJKwb%ZwvZHmhR3DKrk>KIsJyLt4^bYsF!#$}F zh;S_x#@q-G51^)|^jiN-^ghxrNFTT~a5SC+3BP~uc@Y6yexWF-GQF}H;i57@*@M`r zApNJW{XxduBr&}Q)&#ou@9%yF>wL2%gwgfT;S=h9o48Ny#G0sIh0J#ws(qFi{&wUVozR!@NLmbo4`J)c&r&Tw&=@}BfgB$g}0;e+Q~=G*5|VhX6dyQ z(z0^3wIH3A_h2F_aBKwE>k6QItIX;I7g&KzT$70O11wsLH0EAj9xQIgRdKB;pUc40 z<@LHW8E9LpQDyjSV_xrW5gX+FAtydtCd#cN+~UhIV*?MB6@9O!IGM>f`Ltd0YK^pe zE672ViHwLqrI0EN9%;Vzb6+?q#s1g6fP9gdf$!_8&dHfw?=7+qvXYm+w6yyALtT^` zFSl5s#bIAwGML1XNA(TCe(-_75^QX24vi++TAaql#&``blSz53G`c1L^3vh*SQF5} z@d%i4N2y}cx_)j5-W6^NtN=Ah%r0dEPCj_Y6eMOHa%Jz3XkW%L@%FTVl0a^rIwIt0 zrae0(J<$&hmpnd)_0@2%K1T4lsAG6<-6P7XX<2!gtW9|w8b5fB+SQHC{er=$SaLrO zy;mrlT=AByHQ{?Adj;UsDxzUT#MoKoKj-3M@MO+z_iwFxgfJ1;c{UqU;9o_*zA63B zX*_?%?aWm*9$lwazFJ}=WpZj+A|JKsdOpRr7RA6*;c>|7LYUN9E;xqwhWSr*XG++P z!#ttu$^bU7;;NNY7uBmM)(|I7{eJ3Oa++cnOraTUI9c)*Cz~u3S^(wYBFWq&p`!ZM z;4t|)H{|MJa?d~0H9GT3QiG#)$;pQT&3oC4i=HDhTYXh6E)?BCfdZ_w;mdyT>H;2; z7?YEq%TL$u>FYOt=Etzl!!{<^**@9n22VCJeS~GIZkGFiUbV%I_Ms*nM6*Z!)tD|} z%Ql!#PID_Q_~7dZ%aP!;@@sj?)DVO|4BOKf;q!y|-HE49Cb<2W@FY5kU)x187N?%> zTnAqIj+d*anIYOzRCHHnLR=razkQ;W2FNk!GnAgb{L?*fB)&jHQw_^@Mm2`+ReqDY z4~4sajwYk%-SABc=FYmf@TaDx-ts`rd!kHF^@*oMrW}_#Bx|XdgyE8sUP~t6IoJ6H zHaWScK;X92iJ5P3`n&g6J;~x|Byr!+$jF+~)x+Mtz7akEdc)*&p>`MVm=EI4!&Md& zQ$UZz+&OHo1y*`ASdCW?%rza#w)rk8f&eL_q;o--{e(SvYZW#B`)}Vo8SrL0A!nZ< z<##WK^Ip2droSox*xdOE-OZtykZnF|edlQ&vsZCS94B0UUFWxQ;Z_Mjp0JS&?{grZ zX;)Hse3<&zUCIE6U&v+5*00+Xo_44Y?^xoeXb?i^bKtloAX!O9dO=qa*z7S$)y?OH)J3@x#$>g2nW~PmcIZX%Fr_$E~f5UZQnLJYs)! zpYK4Uj6HG*-PfF3J_}@`k?#F>8#Z0b$HF!x)f?Xe+r#cjRrV&GhprDsYjj<<`R)(v zC7f^z$+h~tN{HW%A3Nx^_NjA+2}EKAs6I|A&et5Fl6*kTU}o8*KFRk2SdOvAR~JFH zB+Xy73Av80SOC*o$YMH1doTA_iw&`E!?k*lext4+$=OF+8V+ARr7hilvLLs}d+TD9 zv5UDJrhO;Dq5!m-BfiFaeB9oonceoWA=q@=<66f1igoFB@16+f*;?f_#A^PxD!#wx zm66gKzUx=F^ae~=8JS$mU z^SZ~Ln0FBp_gYiwfl4w}>2$;pZMaHdk9Do3u*2NN73(5cdy7uFXT#TOs2M%Lz3h4P zM|lw};TsiKGhu1Xj(jm++)#(XVDMAkx{>{vi8c+&H>ADTD&AGo)*b*iTQs>G%0PGg zR4Lpp__h8y%_b=$;WG5?TvlhPa=YbUHggCYF*y2|X1{~6m@0K;Z8GbVBAx$u-j(}Lvd$q%od4L6_ECPmDtH%nnIIgF1!2<;A5lntZ?A!^`g63;N}R zL$eZV6Mrh0XhJzW%Ob{{b{l?MbmP%#CNCZ9aVrHiXnk4xH4gB%zhUKw+w1?%t@mZy z9T43)kb2=VfJ8*dFG|ERo9a1I&wux@iNtKBPhxN4;(i!QrU8h_EpHbG7)64K*AA|1 zq8%v?FQZ%Fe)`UV68HIg!-TdTJtia4UfJ^n2{0J6$1W}gc}o#CFT{=64OrK@3-B&W zRBKhMR-Z2xIL|HaFT|_!E^K&S4xi1VokEG^J05-XgKQ5+U>J002|LY0=j!k+s$`{o z2_rtEOgJ!Jm+^pgwGA?L6p3B#V4VHaLfcz;Zlvc5?qLEoj;W*_I+c ztIgTxLpP+h|Ek4Ca;OsZy~G_*jp1;~#+sTdky$;Sv5|Sb!Fxe&&4u{$Mkd3mRik z0kagfmRQgT3c0nlH|00_VE}^ng2?Z>kq)%(6))}1#yiBCMes~2&+2T`IKF&FFYG}g z$_SSq7}hPbr2BtVy}kh;tX}lGM|b>)TNk^$p&Jdb5(`BP1H0fG3}VMJC#S_4k!KhV|Px9aM{XzI0u9MS1YMKa_3{l~&Dsj@o7 z09{f$rVzi|Kew%yT-CR>`qA5;!@{Cn=}dO8U^D;nYGSg-KOOY~s}3FytGPY#951@U{=o6i&oBDOpaaI#pkrshujd9~qaMX6$R@dz>9NuTxdZf;a4*lj^_QuF7VzbF8rAKv9m~Em%`3Bo zq52qd2Asx+n_L(E^~iIVidt?odA*OE#%0k64REy&nL7%a5+50*vY^CP~XHGp_^&Iqpt z{hEI71M-I(wWUiv6VKazJ5Kuva%`v0R^`zF(i+wz7v19^cB`w|Qo&4F2z4DDO1wh5 zTm8)-g9^Gh6~*@zTrR#6*9mrM4p~#f;u)G{&={3Z=edWgBOCJ(vX4ca1vv_%UA)e0 zMCW~kQcIb^;iSY%s)eKqg<_PGKKGc+UNYY0M00n@@=Mdn%HQtC zK5Xa=AjFd_?OMg&0=v#L9VMm`RkbX5 ztftl8Pv^P~MEcEP^vo(&WX^g!4OT}I2DLr_h;y6D@o_T21JapV=W~H$41WU{Iq!AX zNgGq}TGtYnsVFI_cp`mfYj;aUu&x^vSnn-`lo8){v!deS$pTxAtCMX#ySd`%#;U62 zRfYn&$!$?hmW8lr_Ug?)Fh1Xd#poVORyMYtS*n4Nz(%?Kf0&pmd*dXK;Ukr(jM=WW zLP7Fbr~lBaWF;n|z2mC_5%P>|Op-vLWJ-p%=dPXi8y98F=GahMqVf!kZ&@Ds>Ipd? zJ*oXTUcGu8r_$%fIQL^Nyo%?6HI(qrt`j&_PNsMH&A<^J8fNH zqrSdK6SALjrI?HSr@Z}aahzz@O&Mo!lpWYxJxME5ZxK?W z@ueT?50^z@rC^wJ7B;0qpbRPkg-zLd#ue`HDhAcDQe(mW>T#kV9vc(yU3UA?(=+Fe zZa8lgj;+D1q##+hfr6lt4Jy}*_%<*EM{gj5lERBSuZ5&skf&n@*Le)pALt5|mzQVD zd9^8EXvbSQu}sA)&n!0tE{aP^44mZHlwie0MWB#^ceugB?kn0mmLq6*ObF>iHmBTB zxNJ@^P$w1}Qc77c$(@Rm2|$Mkw(b7S9`2AHg8~sJ`dPm7P2XlX{;v{vG?r7@!wCH+auD7@TF&y~04l%r1Z5 zWDJVId_OBUKfSE~E*mO|%f6YVeShpaeR+plfmsf6$Fw$xkR=o=)YH?mzPTxU5}$vv zzmR4uVs9m!QDag$8VZ&(v<<%Qh*E=WY3Sk6aeI_G5OM?Z%ik$FfvS zOiU1lO+>#>f>(E3asv-qqa^E56RjHdGu0O3@EqxYvpM@%KJEFEGlcO41E0}P`z$$j zZtjP%u-+X+MaJ2`qL6?y#;eoafiu^IzX7XhlMA=c{BX-u9I556FH~eKa!)$VEy`^X z4a45P<%255Is3^;NxhuA^7&qA@S>6uVVnN1)Fa7F5A(F-4m+;NHPQrL3}lBHlx`ff zA8tQ(r@`&b~b3U zAu8dCfNlxQdi7T{O=BmIPgMu+KuYI|e$GA(HMK%%d``N2s2sa${15$LCTONZ*3LWo z)r9Ei)%bir${EqG9g8w{@JzMy17wDn7yawkuZ=1V%>9odgiHCs|K{{PJ{zziV-hVJ zwKZ7psAH4Foy&57F;Ki}2b{ag9x39{tAyJO!=2+IS0{_gsO9!43fU7%+@lkHbT@xd zP2D$~IkP-ftPxy&hy9hSky9cB2ARVo>W0A}F@zieG5Pw$s-kUtT2pzjXT_l~beBoN z6%E!uwOxZcPKg6?R`-5qy8lHC)D35W4A1@p1)co-`5XhTit zQ85Hjp8vy3vAi_AJ3Vqjl3hm)XYrCK9F5vV!~-4b5Vm{YaV00b7k}COcNdU9Cx}Vi zPlZh>pC_t2-`kc}ffl%d)=1M}W8(PVSO71b?$%W~3{_>rDd`e3Gfg(6T@h15st2c} zx`EINJ+nsHevN~3(#e`Z$^SZ+e^HR@zmMvFfYIcpvMYTneI5iV1TKf5%tSRCZxwS+ zH#n;R1>e8Z&QzKj&LX()-ReDgGd#LC{|Om+^i5;6+z62MV!_*Yo4wCx0k5a?f$Hmo2G?Un=R(O zx%yIrRHRXJl+^aR-s}?Sk|Rrgd9*EIhKh+PX3oW~H~eAVPXY=Vomm7;vA^rK^AlV? z@it2$e|A?*L&IjV#lvNx=}{a9>$w$>J~4MbhK@H~!tH5(em-7!M1+vv0m$Hok?#98 zpWPWDoI&mR2Ab*XT?Ab3H)kCEBEwaz@R+5%EfG*)3lf~lZ`vP6;P(C(nrbm*VV}>a z=BI>(rZ<^j*Tu8$?$dM40B;h!>$82E!4)<#ZASRN@^LU1aj%u1_$u*_hrX<`|FvlB z@ra;L9i)+)^&HEo4S6mkR6AHxRP=mGyXbnU+N?cQdp2|!il_(zWS2?*ogg4rHCS`D zzd(?fkuj8Hm^M+Y!BAIUzx}(GM#OFu{Z_&sZOQRAQ_1t4uweJG@O0^0`y~;~)^sTa z&PCv0jDpWU1Yg74OyS)-YDY&$&5-xPxuHh^l~p#bq=V>z{(jGsEnO+^trdXp`XH6H zjZN^OUr>A4*RNzQ;#uL{Prt;(JiAena-~_gisZk#ex|Y{n}kDwy1i4|@W{vlhws#w zCb#9M%G^&vaFXI&{v%pBg3!?|A+i>$k8Vtr2Bvxy@7(UMTixN1BtyiWTvAdJZ+(6J zr9J#fe*(*4)@B5Qh2_cCBp;}yrV7f9{o3Y6i$RT_=X}0tyEDWgv0_0%LAt01bvbs$IR*xdUyxmo98eGA@5E z69#5da&X|1>WrUF>x{?2;O+IHeecCXr2(aBo;o_5HtIZK!_W4&-6ji^N3$i9aq$=~ z(K7CMFSI}3XtVRX92d;sqO}D1TYvs)t9_iRd1HFRqiND#dMK2ybyAE>I5h@cZI?D0 zi|G>OXbtR1)@R7t`$l`z+l})aha7aYcFo>W$Q^YZ1iy6?cU{td52>i`%G90-eYaBw z*zME1CyY(gn-50zx8aM@ZXlg;F!luJWZ&CBLyO)*E&ee_(bp^wpD^wF=(#RN(N zzx1olH(8aRqGwU6+Og2`{r|KG^a!0P+YZJ5hBp5%U=^8`Ql1*((4f4}2M-{>K(=EC zO5u7XCf3MvO0DoaZ>!8<86I%_d)wjWseKv2V_}ykTs-t~kz$8k!2DkATuHNFF**f( zz}*VLqLj4^M;gkoJhkiPv=_XZ>6!a3`$V`B;_crXgkkxMrO=is@n{usDIcAHBuZ0$(MQlH6}!^w9ybDfw{oUo4$x7}I-- zVDeUo9ewaP$2SVNCNz2dZo?hQhDqgqUTVw?K%80~EP0r)bysJ+ zH`nKe+8GC`_>d33wwTKzkN$@_=f^Zag4U78M#*@G<6I8LV!*lyxA+NfoI7 z_3Cq2uyYUMmNkqXh;Q1I5*DZxxKx+?+9ZpsSQPdA)q$ z^!k8KC&+@3i!k31@j0i#!hjC@;UeSf{Acc98`5$ft`GvO#+l7f@-!ivQ!Hn_c}Sqc za^94uX#*K@JD>f_5?U%!JXv;4e_S6bxPmK#+_r~~hjWFHHVi>5zL?kuJCF(=B4LV? zNVzWj7%1(*EL{z=X)mduiz+b}MDXJaCx@xRu3q3F%lKqC$|1K`FyWcRqwGWvo#wRYm(?CwACcwlfoC3jp8(!9z)|jQk8<`=l=udb`(JX diff --git a/doc/salome/gui/GEOM/pics/neo-localcs1.png b/doc/salome/gui/GEOM/pics/neo-localcs1.png deleted file mode 100755 index 9bdacafa251f8537bd29c5b5adee370e6cf7aead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17595 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 aZCfQRV=6673H(tKBuO#3*9D?FpZ_1!q(lM$ diff --git a/doc/salome/gui/GEOM/pics/neo-localcs2.png b/doc/salome/gui/GEOM/pics/neo-localcs2.png deleted file mode 100755 index 3fc54a67ce73f3a8063668d7ebe59b20fbaaadef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13085 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 diff --git a/doc/salome/gui/GEOM/pics/neo-localcs3.png b/doc/salome/gui/GEOM/pics/neo-localcs3.png deleted file mode 100755 index 01c8e24fa2b9ea0458cfe7a59fed328d3399d68d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15322 zcmbVzby!qgyY~PB0uo9|in1C?y~uT>~hHq=0mHcf(LacX#tG zp69&hyze>ZJJ{)xy+H2jvx+n0hf($M;IW`0W!Iga_`3?d>5di;8?qYyf zxHDj{Adp88S;-g5A3kkOyJ$r%UEl1Di8gV+e;-4UM)auMaQP3b-^=B9qfl1DGH%6R znKDvRghTaL85N76Q4FK}B~x!V9!8fY4G(v74^8#kV)6Eb82MXlBWXD4nnDX_+>^rs zxa~N`JbGG0t@7Md6S}p7qT7z;nI-N*Ll`iQpt<=}xf~*;R_}B*PrX)?;2p0ObKnVB zw9OWU#$(m0x+=eES0IQv5?*_}7$Te)BBiC#cXw$meV$c)_V3lZsLIa?eBnXFz{&ZR zYHva~^SNW)_9zRjul3tOo56VScYuX#l?aCfrWmvS%76WhMhs4jCWTM5nxmtmI^pJT zmnQ313i1q38AMG`8Qi{Z1`?)94{i__78asC&rr);it=yh@J)*d^r0p~fBqs2y@mld zi2+xND>7NNf7SPhg#{-`As{l6u(!8YK=9{WW>Q$7mqDm9LM)&-}evUyA7w>bP& zQz_b-6kgQ(HRmOFt$L1N7R8$wsRlSK_{}}Tba>0iND^;4Uhg_=Fv{)qRJp{L&NK+F z=y#|#dd*Du&qV$Tn*)px3jWri1F?G;XhKP$-MMeN83|2#FMBKORatb|=5g|UW#_63?w(s++->qYVLp3l&aX)IetjrKm ze!TMGBNMkf8qcZnpbeMx&`Pc)FX}?vND4{r%qV?{8eR$!kjHdyS1;9z^jnj z<8fl+)C8dOGk$Hip+( zC%bJ|1V|s*Yn`%02CH^U#cVAt`DJ7D}+n()E zY$7gj>XK>$ZIMsxOUMrbeDK=tnRI(0v1lJcP6UumvPS)4kL`!f* z4lX%+Q>MDm*l6BQUs&DeHl-=qxZo~UWYM9nfm@Z^RWqWa1G7Rd)ilP>xSU5zcX^rz6|^ipA*I z_EeeJReY;W>7~BKlISz~(t5tNYu_*rGHAos>I4e{OGtoJZT z?S-fqBe8rUlgrDh-v2SgOiX=Zs9wmKp5Sb`sgtK&<=>)DD@up!#IH&|Qa0}4gu^2I z>>2Ufv-u=;d#dwjws9i#Qg+k6vx5~`MMaKM^9_;ggbj0oTojYeJHwkjDln9E!!~Ho z>Ckm@&F0NyaBlG={-4LO;W<-#KGb@a!(Qq%JU$9k!kli>0%*F^GKa(WyMsdw47z!B zR*@6|A3KJ*?=jgoy4MC?h_64}T?`{c9!&h~m_k|wJAmWshwuYvd#lWy2TxzE|y4+I!N+zmnM_n2B zWYngmV*rbZDP!}ktRfS@5<6Ftj*ct=fhTILB!h#4T=8!%9iENw<@==3g@z(BoQ7-K z^iQtZH62w{Vt$+FY_XuO@!66>J{pU*BUP`Zp+ulS2H$RcRYy$u7qm>X-KJ$_Scs9G zyB6dO_se$b=!He>HI0bc3~NUqI?_&jxe1?Tx=7FDZXU5EJX>m>iRRsdcQ2p(nj0t- z$K)uTU9S)wp7HR0aaFmiU$-(KJcC|;MmL#>%yp_Q&e_JN6 zYq9YBuOw_51$wZs2V*@&Jq44eY(eXf>Er?$-q&{wgeP{$#&sLB3ep~qA!Wkch z+=^gJ?5ZY^cRkEO*{Ne2Hnxt8SH_joPW)B~{%*!M#yslrWrZ0hzBB_*-$V6gqv$S? zUoj#58%HfM+61JwsO)T_ZnS0!>(M`NMh8{|46e_}%>3hB6~<&M$YnaU6=UD`4svB6 z&mWnvPtAr0R97snccImu*q&eFcJtpXhKXAZX2*x;Sjw-?38O-l7X~AG`BGC|QDh>H45x0Pb0=qycT{gjmFADA zrAe);CMyZ$bRz2P`ugiMj55@+?|g{st$24MN^#F>Wrwb5PYJi{OO}ue3S_WC2A!y= zXjN=9p+uen$>31YTNF%8(I8Z?7AHTKXgO#Vs&PJqLl5z^%0Kj$<&e-3?8sx)@R*y}N$X<;m*oUGe0zWPh@nco z)E)g-uEtLzq5TvayNaD;$^kxZ6+w#(2py}s}39~Wj98$TY@L5L%AJz~-SR4jKD7hFy9Y)+H}d$d`V zXuq(qi<@358${W+)DdtrnygpcXswF(dljoU+E@-Gana?4qwlj&w61w zM86B;VzZE1<}E53+K4!=&vv<9XVZ?Z|E$(z+wpat|Fyu_@%+vLP3mgWTQ;(($xSKv zbPXp`pab4wHu`=|NMaP*oz%^{$DHsHYb~3t4v5eZ@BO5FsULs zRbV({^9HgtmpDS0XhEqf$;KSBo7?E#XA@Z0VinX<18LdJ4he_NC6+8z=Oi%ci5?_Q zZrPEY#)iI!$HFG*Ppxy5Bp;TTH#|-*cV@Q{fjCH+_nAXcm25hti97q@POlUzd_PXB zXx(@S&nV_G7s%V=<(+kMijhFGE3vj*4;#)|J!;Ul^YAE7_aIqWjN5fL*P91J*x#QB z5iz)_O4pnpnU3XAVS3iIe~wEzJsL(jX_dA_v;-0|m6us+UtV3|uvI+@>E2P@@+Oo} zX2ry$%CDXB|KXu&w>1ItJe|XY!{OySwHM}03mWQSpOXbVQIm9jD6RAws#C@vje3@P zlIi|1BK;YD=5cs3?Swp}5Ad3D>AFjsEeeClmcxUPS58CS87L=HcKE6{wVfj$RV_#x zO$-g+bH|t4uRU1lOKF>)rt4HMRLs_*L5hsst*1nqb@4du!@B4TeU zyLG*;q>POjgHpf6$IF_TF~_oN&xeU$*Y`|^czb*6cd>tQTc*Vlp!Kc!$Uh|Dam|>F zJN;pO2x34-2jRDxX*TDJOim6(n70lL+_$o_qV_!1JH%5kzv50_`slUXS#qgLHXiHI zq~f^H8UiTpRJ99XWQQ-poDo2IjZRot7{0}1snpJ_yu@eVh# zn8>u`0Gdq2j5ZO|H75?SWGAJ`p1>|udHCf5xj4;5aQ;cs!Y~b@OoaLRb*5&nk@)p1 zI%+eOFvb&NZAVjCpuc!?z`WZ>Yh%&+KH+#^EpfM}^Q1fhS$8k%tLt6bW~wf?$CYT_ zGw19p+yTDLzSy}D1QJt%X#rfiF-Dm1+C@?X4y`0Cn!k$@LU~xoqHq^_wbWAx_wI5b zFSeiaB^XhgVeP^bNMc`!&t!08E+LRmmU1a#b)$j%M0ix`()wn$?i(Y1dsvs*JoN={ zGJrQt2w@#-!?NvIwAuMn>c$O~f!Rv7mLJ#?vn0N(vpB^}V++*WNhC-;?@BTvTikBI zqLq9WdwU1=qcQ`pdcnv3RIA5OSqm|&)ca5xf>Cu{in<;7!#8Im+2I7KuHbVBQp>FG zsjqM3??P*qI=C?*ILz7UhKj|c5?`{Jtzy<7?|OeT9bLM<>-A8!#Nl&&m}7)!VcT(x zt7ih*_}hB6E;$x^T^EiOzi1S=1Cm=t!a056bSf*u80hGH5O&5xg+_8!M!Bv|#FM2KO(P@Gi;ISzUGLbe4?jIW*-@-= z+)}G@WCPnLwbX6PeJG2hM6!$9^&y$4F)z~dfK5!^ol}59z;^L&Pr|dJE4<(fZ5(Kf zzJY;kb)2(_-yIB$?2XaiN+&zWe0ELhbW}45eTl%EqxBIvwjhVf&z%-C)fJVd2aL~X zxn4|{+oVm*ep zI&Wv#xB1RdqE#JKv(!93KS@hl+hPbVW~Y(F?GRLHGbHUWTmR|yHqKv7$_!tLZ*o{y zMzG_&^%B_iA@>rRITkuGk$v^%$^HqeqfE0g3hAJ^BqF7&^+Dw#M;5@gs=7f+0`$b#jH}~}5rpK{xU?+IZ z%Aw(CspvTr?4O)4iHRlG*FT4#qM~AJTMqq_huTtQVcos^q_kHij5@t(fy#X6$kn6P zbTn7{rM*3`EPrIb@ao!FJ`D;A%9|9iq%@hZ`T6G@h=mE*_=8^XJbY7biPyeSP>48X6irDxv1IFtN^n4YB4~{rCE(lE>SVay70; z<<5JLa|~2SH7s8oke22)`fIM)3te7bju)BWQwcj7?wq*cXy-+&a2^)?XbSpWl#)Wj z#l_`(;T#zk*A9fwzC0l*X`X5R7 z`_Aeeet&U=0WL>a#OzN?`*NQxv-JN_;{exGXSz=xkQZ}F!-Rz*g@B_s{+Kt$b+4SO&@o~o94 z5esUY#xVHCJo)tL)B2bDbh}4KMmPAF4|#-&mBVoFQ4wqK38P760R=Ler`BuuNUcOeF+j6P?&uCS#N>M_^+BShpKS*hx%XDJOY67hnPEX0*Rvk zI5pRd%vu^hZCX5ML^EGi|9A1ri86QD3l%tc9c+?P;pD}dgN{GCVTfz>B@fOwQsO^< zRfZq4=?>NsXS~~Cj5wjbkrJ(=5s$Ok>hqa4*E8F|Ovm1D{xqh69PqrlPB)bvU+ z*+zHgG^kg*3Nlzbs#kce!bVJPJzD39{+m)oNGd?8WOkr`q14jH5)|h5kb;ewG2iI4 z>WQ&RtV-7nhY8-^8S&vQ#P(qA)Ov|}K*zaeiE>w3W;#Ov5}>aIa!L`}bsEl?Q9$zAtNkYX%Ue%{f4x`{o#0s%?9iI5jC73s#+$ZVZ$~;gemzm$v zO{&61+!Hg)x|*8WXS9)|<=2jGrNWwg%OYB<=SSp2wMIWA(0W}@wV+WFs&|9UUSzDk zF1cwuU*d^>Q>q6B+j2;3t+NwFxPPR?D9(I5Nm^LvY?I>tn!?QTV%cJ4(p2|jIdSQA ztH=J+ft{@bUb<*afs7E5*?ny}R6 z%a(;aI3c}}xD+DduYIwUr;)Py(VFvpdDk}&0Z~QemF@Z9NxHxGL6>gHb^~#VZfe1W zMPNka-{)5$SoF*Gbmc*x*L7qxi)xI^8H9q*{K=55AHj&KpBTdP zB4ZMz-2IGuYqG@Tba&3E_A8(~t7G}P@v$tvnV#S_z@{Y;6f={Gns$T1Dy-*FaYe~d zZ-MTYLVQqmwxOXRr(3VNMyYv6wv*}~i%C8JxUvcgjF~b7bTXmMt9tabTqyP1&+3CR zi6L)N_>$ImeoeBCf!E#j1ya0@1$z?tP1Xw2bG0fWj%a>oSWZ{cGcg@VwlT%=nnqZh z4;V-vZ1E%Khng{ciavoM`*YQKBxC|e)K(%&0|`={|NQymo*&=YqL4?&yxJ3rDS5NAsY%e_fmE4uEX`S~1-k%1>juex#9uh>*A0I&}H z5@BVQ(+~N~A9~h$vTBz`b;WWJmOKuMVbio-XvNjwwbH{8@cx8`$?dqQ=AL-E-}H$l zQz-)voZZ~kMhfnxH~`#@kwaJq_oO77?4X95X5HmJ&JFdcmFv-Z%RrjU+O9L^B(G}? zwfD1+V+2%G@`F9}hj{1iiAmYnF_oe6iF{H}qR9(yZ-`25%>#aZexjrZtMk?n3ewZc z0wK)~wx7P4)gIM>>cmaozR^ncs;VXV5x{~U03H?kkP8*?l;ay~Z?3eL zTaHttOn_9!Z{8!4xSKQCL7Wy4&Z3$J*7{c1j0*|S|kAQ2Vtdac2u_?nKJhlj;r z;B2ub#6>+eDLT4kBfm}oIQPzn12TIjCo2Ioo(1v;9ZV_xr52h(_N(=DVIqyBy6#Z( zium|=UaOhvsdYAA73EGB>*-1d13<+Ox2Grha;vH5R1qYsYW49vCIZg8j}#OXC`DbP z0QFB^XbVdlT6-ws%qf0-N~fcvb9ugzFLHG_L{CrTDYJC6F?Q>DDZmAwpHhIB%6f;o z?MJFJn;xr^YSNcns<(7>w{FsAwjM<~j5-7e5U|)YGoJuv+STBLNhWAZpO=?6vvzbe zZVRQl_mI;Ylg9m9isyM&d*#vEP{2%$+rsLqvrG!~OTzbesJ$H>fh);wq2oPed5ll; zWlpC&>dV9xdN!U!E?->fXh|((8y|5ZP-c%+;=nxw<&9TN`A!cRb#>)kVp2QTAG?CX>Z{|)Vk=}a1}-_L$GJT@pSjwH>CX8B zEU1$5M7oB@#j#O+Fq-*J&LG`oD3!4E`}dC^z$g%?yE>+T)Loym04@!wJ{**T073^0 zQ{Sp8VIl2n?Sv5WXY-&s0M^{cXMTRTc8{F*Heth~5$hgImxB`d0ZL3jN!gt)7rTAR zbC;HRkN3Wej7(LAswU0cNy^P-Kv^oXP_!{$U{vPxXlp1I?6`q~7jrc!5oSQSxgBq! zyg%8VF8(lp+U{vxd<1F8hUKW0SyFkNAL=!HMwgV5+MD>8zr?~qPwy)m$rv6JgHb=% z6mT}{gU?A`6h^I>z}r#EN<))^`tsdf8#m@^%-D-?->dVJG~Js`rcoJ%z~V&9)^0NN zUZwtxF!8g~(DmV354Xt;P`?Vn)4p97fMJ7mF_Kf{7713f{^9DtaGrLeMv2)U;~sM9 zP)b=KVs69ErY1B{WI!2gjpH(aeEIU_{r+M{vE?+mlamv$)DZ=GJ{Boc7dv%|A3i(* zi`dY}=suy6dnOL;>tC%i^3AVdBd7s8$U1Rk0jO+v)FL1F%>iL|+#%)Af#+|cYoWq~YaP@3W@ZBnTr6Y)_6Wnp{})Tg#w{m?vh12~c7Te_V*4k(5O@!r zd7lYVzbdQMXJvPeT4<61dYa;XDJ#WRI^60PlC#Ntm$tK=O4po5h`G3Z56Y4Xxz*vx z$;tO<#Ng00X)b!hFBasWK7z4q4p*TOk&!lbb_<^{sb`a%W@u@-8u;Y(@@2xvfI@Z; zRwSgk*NYKKDJW57+;f+Ts&n|M5)>Bw_3J(3zIger7&eOoKgD}12Yq50E(goE;0Nv) z5+`OM1QviX*!ty_mB6xi^ET`eSQzT5eXPFacK^WL3K}hF*_%QY>w{lC)u)ZYK&7Es zpC6hg@S5r;ZfE5w?p>WAc^oE`fdz{Ia&o8oKp`+j+QbE=Bu+{Q*1FedL(5qI`-I87`Amw^JfB2D0g^sX3gW_zL{lRo3~uWP4#drJo# zVr^q%q>&xXUL1G26`vHS zkcuK0c^Qwc1+Bf<7S<@U1R7EdGCOY7=DZZG8b=`3K*9-H1Q_KLcAN0UcW)^ejn^fY zt{~WTb}PNn&J~`Xp3Tk8vs(-D`udN78&gQ3t5%NE+|t5jH6sGH7AO>~+ComW*Y@s# zv24DX?!*tQ6Zx%vS=H5+p0H7W_>`DPf$1dze2mEne-4f6FS7aasg7F{#pZ|yN!z1b z-;(=Iey-Sw0(6!OjIDC+&~I#P1ogYsko!J0wa%u9n3&j`IL=St7W?TkF}F*mWn~p; zA9JTRcM(e{gB*nd8hzt|Jh=sV)@SX1vaa}{71rr9?kLF z8dF{`M9hcW7Ok?#m-+e-+MMw~LfHX~!7x%`X96zleAeAHwc{Xex7?kz$$V??F%w&d z6?^zVt(DF2zfi#0!!FjT@2PP`nGFRS8X8I`HL-r6Kd>J0oobN$G8hSb zSRkPB6{6y%I@G4J3d`lJOkdRpz6-A+3tpGxgZcrbEh>Nuj4m9i*ozq_i4RG4;Ql>9 zV&*5Fo$Ue4S&S0OcnHan@4!cT@PLrMUowOVB?BsrZ%|7OCwLZe2ad6X%fHqUn2_Cw z)(d!SrW?U@l>^gm$|rN+cu5`*8G*%W1gkO2|8C8)(K9lp>y-qm+&J#Xk!)fn1^5#i zvI?4?+9ZHj03XjKKIUn59pD-kH}=9Qtsb5JArx^!MrMD8Zm!#Qq(W&(`SNnJRelqb zSQ=RX>nc~XtoQhO{Eq?fG=>0xKZxDyWXX?G_ZZFB?E}0}Ioq4~*~@f`)a>le_#u-5 zHC70vko}kM+b<6Bw&mZRJn}qSBAqOr(V2OEOzONh-y$-7WZD`^hVu`CUZXGmoLEV# zTpeE|$`7F8?BZgxRoxXv{V(~%TNw?J38nlY7t3zHJr&aGogyCFH; zGEfhoKdfgV|K`Ev*RRn}S!U&0qh+e*Qv>0%GNP(mVv#Iyyu8s7$plLB!Ac(?A)x_( zih@a9Co!LgiVDg7`}e!yf{~yg#@t{&NKiIHwH%n2>b~|WTBDjutgz}f0*4IAV{L5# zScHsG23y&+LHGD`yuh@(UmcAdu8(x_ZPuL3EJUm7+&;I%wIR&3KeKeR;42!f_WuA= zK!SO z&0!#%Ab5Cqr4*xp_&V;epPuMVpJ0qr?XiA12j6B=$Ln-1fFWCPd*9ESdDw?A-9)s` zLgjEyzmGU~`ya@Dv^`x_n8TRODR`*d!$8kCe%t~`ctVZltBd2U^Z>@!@~8@ExwIK0 z)`atp9gNx1%97pH{f}1K-vXe+#d_q{c)(Uyu(mFM+cEJP&*dyMV zjbuB>EM0>t5-oI7USMOSGMe;+b;>t0i}~`2*<#cy*E>hEr+W(`7n?FzEPuJo8}FXeu<$f^;D3-^xqjhDOQ%_mE7LBa*- z2iE%i=Js$p3nOX~=Wk%K&TlV=#+JoS?^oAU13$ffRnKs|Ko2hB64BlL=3gR;TUxy+ z8);)>^F!sg25Xo`Zvy@(gwtcf{#RdIXjv@3O-jpsvipIcdBL2I2bc|$E4;1`0T%VH zqb zhD{seIY>+FjyKgoRr8N6BfY-9E_J!}2O`qt#>-9V{%Gn$iCXfyvGNrjadSufo-7>% zq(frkM0qTu-1UgrZYHkjS5IObzZbQhK@-H;;W9^3A<)on(>U2VXF(=z92sihAcg#jmjq6amjm0T5oI2YITjWhrGiZ~ke6d>E^x z%1}ryq(By%4!NVaSJ6-TKGE{SfP-EpR@Se(fphkt66^Gx=(mvyub$hhR;~HtQnk)_ zxMhJN21vZ2L$?_OG?B(#v}!Rbz}o>RIUn@!TO9m%Os3kR8e|7R0sSy&3*Ef(wEE#N zyk>uTc6OhT(5EbnKQJ&5GzsAR*RbNdYQD}{=WPkE|AclsBVIS2AfVW6l`F@BaxwGH z&S+jyZ*Ok{9fRi0AQ#gQNZR$lGR<(lE|PEh`wO4DWDhqK3 zJb=sX?pi}g*tK3sO5OpN2TZw8#7yuTl{+Ehn*#Lh)Ry2cU%!BvKrcdcgM-drD8Y~B z7$rS{Q~grHpA+!-ts3yX#VJo|k@jGZZO!z>3DO~X0re^!8|63#DFn8*BcOQufXa{0 z^d&rFL0*og{MIa6UQiTcFZjyg=pJr$3V7E+^pWXQ2Ks24h~wq$q;OV{l#mxupCu7{ zJWLCKN+^60p`Xnb#1f>%280G>^joAgVPmpZaQ1!T`!ly~Z5K>aIu1sOcgTlN(61j0ixs%3 zjN#rx1yhPO0h=osppJqwFaT_P`xf`;6Qh|3mOx0M7z^x6!W&ctpMC$t!$nDX7>Jxe zY^18=(sHZ=gJDz)cmt|G1FewSQs(FoDdX|7yfsCO3b&PC%rPeBr2fk8_og`Pe3YkE z(P)z5f$>~Ri;|3t3;^d!Xy+A3hFKi0ZQF8y7n z7Z(d#OFiB3Jcv>Y3SiLyACz#I?n^kG%tWUMaEJ(*6q=`ds5q=Rs+L^bTq3{4c@H$T z7w9z!xa`vduPHP8wX`%w(MtC(kkwF%xyN-xGA_)|OZ?U-QKK$_KcmS-d4FEK_9lgk z%8J8kUM!dnq;H^k24QY|3`g8b`gXh@V86RxBUXTK1qWg)Ms|{f)bfFSDr5Gphc#dV z=|Fsl9CY(k_urrcSMNaH?rh%(;Orj|(T-ZF^%bUfK~`@hyn2&GyFfkJ-9K(bB9VN3 zz)w^!w8x_0x1e{FGq3H3@2=l@Oh<>Pv|s`G8*8zrqJu|Jj%q&lN{FEOM0KFc!ODF; zzI)!PZFR2!RPnW0E+bZwmoid3^_5qjKmamWvKU;J@4fN#;7&B)=P@0mZw;fdD*Foj z<3C0lBzzVV%GsqXUk^bsQ%i?ql9H2mem=uF?fY^=Bp~+ak@vr4vrv`j2{`OWO`ig6S;m>2WB~hp4v=0T>9#zVpP8?6{%h)r_6@j- zQ~b-^HuI9kJqay|R<)*yOziBTK#b3=uC@c!yf#>YvzM`8v2gXTne6XGg^Z@YzOcBs zhu~?*zIkIfmZuE?xuW%IKP|P#AyiE3gcgGo4Me=1s{X+D#>At11in3R*%nq-O!##g z<-Y_$8S)MPJHPfNXs!X>(vJ;4+y%b7A#mJ8j)s*W4@0B@bEvN=6@J?BR8mrUJX#PC z$i}87b=Q-3)aFO;!@G3_CKY+4s9~fmok1aQlh>DjSA-Gn^Y<3P)4Tn&I(|A6)LNc;zuEP$QIoN zz<_lB52jV;rX(_g)Ab>XtxZDox45?m7(uE=X1_PuTUbddX%-m}+vbSE^mbDba#!WI z7R5{g0&xHiq!j43+%8@Z)*Ah8M8jJw%-d)DJ2=Ki{KusI6D0iStjx?1xL~gVASb)- zKdp4y=v7h_YjMj#7A5(zs%k||f#ArQ?|5;4smn<@w78-sH!0*X}!BH`HWQb zv+M3bpZH{}oLlspboi<1~5(w6D@&(b`O{AwX3VEk#bR|@V^^%Q`;S8pl4_3mqOauLCxw^77r#q zHLGp;2+*SAbzb5S5DXiEmIvY!z3e!Au~Tp0-!y`zG;dG@_Ga96^!})s5B*p14pFJ8 z3cA(vz*x4tS(gUwA-8UpRZ8vQ+H^p2-_hdgKw9*E1+zxTy>bvS6N1K%D!tm;TDZ8= z%&{jhC(HwLt32>IzY`Fc{ z6FK8?`y++o;^Lq@of6RP_m`D-wiL_d`cTk*^&1-;GI3Fc`5ibAa3PoM@i_=E^eHdb z9)T8`7Qna^75lJH>0wIX8*g3DqO!W%(XR9%$sIxe6SdnW7i6Nu%H(6;-&tHw|F<7s zDfmN|dlKz{pDH9Wg96-D&}wf3=z7ovXLP1C#uP{_;)EQSWo2a{^b8DK4(rPP_bN*8 zO@RQvjS;#N`ST02)zdwI+X&D!;co-!bUi2kOGrowRVJd2!%fMqFIkk=bg-FESFZ^L zbOwR~tKYrK1@P1l`gX)3tdDw*mwKzx4QFLH>6;52PMA9(xA|XpjCz zhrR7=r+5(;?w2q9=T}zRl11HKy?Qe{tB9#yo@s1;J=X4XZ!~GHPy9wiAynaKdip?_ zu5MM*Vo>UC=d9`~qKFCDhwXG0G+DXpDzblDi<*hw{@q&ap2;Vnpy&d4Bnz@35bXW3 zs06J+N1KR9KqlsNr>|kxG^yAW!j7y~-7Y@tNmaAU%l$iQ=jDw^z*L?(y4gXi}KyAui<-U zoW0O!{#D&O;$&y8KbvOEz69ytgr^{t$7G*rSuPr627(_Ko-|}B92E$RzEsW8Ye>IK zD@hzFJeAA;q93{RXpiYOeY?}q@1xH$ka=P`uIU^lvjP_Nj#u^HT5!zekyloh^Nrp1;aKg zh9DK2MZTO^5(Gq0hG@nqb9}T;L07Ze2CPim*A$k1+QHek?TuLeFP=O%K)O9VE~k_Q zmbkbLQ<8uucjQK_5@eUNF2&Kg6=EbeERbs&jbl(tQbw2wj=zc~7Kx#iC(!>aR3r=H5_2ieJm{v`lsdS7r1; z%Q(R^JN;ufA|i&Wx3GrFFPr>=!QC}Km5VAa#eNf{w%XW~&h*Ilbnu}QX-@rEypx!{ zY+q`-6fTj+LUynB9RAe8zzPa`Ym3{iZOi_P2vJNd5tX#5RoFQ)REW#`ByqFL`qjO4 zpSI&Nn|I`GW^a%-8rXyRYg+eCDj*@!bHPDUQ`K>`VB@&Qf@^L3*0q$GnC6${u zpNhp(<9JN?@w_9bY@ykSI}bJIvXAOEb@Yy7o|d5wZofBY)OuC^mYwF^T_}&B(3DUI zoz?a@cSi!WOecb<4iGsf6Pl+VxSg_o6NGIgZYn;$FY(39c%pbZNCzJeZ}$dejrG@I V+z2cI{AL#-E2SWrC-MIC{{e>+HWdH> diff --git a/doc/salome/gui/GEOM/pics/neo-materials.png b/doc/salome/gui/GEOM/pics/neo-materials.png deleted file mode 100755 index 66917490cdb8f0ff9a36c5efe8dd7ec628c15507..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12972 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 z 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 diff --git a/doc/salome/gui/GEOM/pics/neo-obj1.png b/doc/salome/gui/GEOM/pics/neo-obj1.png deleted file mode 100755 index 88a7a8b8a892c069aef47857a6ebefbce68ff238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13245 zcmb_@1yqz#pEseD2uMhSfJlSVjgl%Q(k(fJbmyQn2#83Rf^>JMN)6pTbPYXp?qzq+ zcXr=>_xpCw`8bDjo|$>(dG6f#-{1cicS7GO$vwoOz(GMldHCkF^m`N(R6+1hiG=~4 zQIbnIL_v9i@<#fVnpWV>oX1PGvD@2&^;Gf?t*z_=@AS0vbj7nZlC=CdY(tk0$F`Cm zYz;j9JHRkf@_x)sFydMyvY^p$IV#H5Ol&3sOG+vb4;08LBUmonNlMwzv#idu?6V@Dm1d9gHiE)`1^HKJDEh7 zl4n!&4w1+q3tmAHk>#bO&lQ}MOp2Tx-lWB*wI6unXr*fkw?A)lcgDvk1@}*NhgSAd z5fiJabqmmK2|}oOZ4%@eqP#09sO#!H^qL$4y)&adkGFn~S#`r;%RRAdD7=jobj8J< zNmdozeX2rGb@}G9t8&Wv^`B!F-TnQG7su9Q>c`nIen`9!EG0E%kR?pg(|k7~t5Ed* zdPaASe@r02XIoiak2ZU5zx2m2McgN-LowODAy|ZiI2JnWbbe_i zVr>^JO*;Z4k!f8XTTCl>^HdU7Zt^xM|^aZ|Rg!lfKuIfX;z_O=y#@ZEIy`d5czsfM{DR^w9R z(hO{;D46gIVEioKjk1Y6@1sJ5Fmp0kal&+tp73?@(Y{lOz?q8YUz!n(P~y#OeT4ESQob`}AQAlmvhdTLrX*{h^-FdB`_4#%| zCY7jTUhnF}O#{BNvSMSNV-d%)M&35R)Y$ZFg}jsR)%nNR3DU>{DK-HL0eePxLg%sd z#KFl)woLeAXNub5+2i^2xi}ukfPE*m+hAdIPz7||VbM{e&aB3249CvSPECEa*w=ch zM!d4?(5J(vdwu{TCOW!plPAY=@W-n}GxWIa_YYhKol(d!R8d%%bHl}^>jn1JA{pV6l(C!Py>z(Sp40Frz*HH!~>*;LqLx^Kuo9XW*k-VLs)@*f1)o`N$b1QQIS~06*-#eWgxz(68aI$fSO%n;kjtn3hFpE3aaY-cPRC zjOCxc=sh7-$Xbh2*GhDBjNo+>YS|^GT|Gv(=jpY??b=LbuM&Xd5HcXnRs8}FoKv&caA7hCXB;9{VALO4R%{9jNgwq-NpoOgKRCSqVTmL?ZymKgI=ba(f4 z{GN+2kBIn1>Bz<|!ox%K?tE?T0}W-v7~#h-G|G6%z5ZZ4neDKGjn;TI)EyyGKQ|T~(&-svHMoD%@pRW`NwFMf zYwB?RgQw^*G;ZKeUZHMHt z7mC`jeHJ^U&r&e2)ly$KLxa27biqsJy+*N568*wMnNIQsUM_^nEtUQoiA0Gsb0Tfp9OX+ zCarfXLcWFhg@pOIAiW9UIlC?Y?_0?8`hv|rKCZMz{(DP*NezE#H;BJv9tiX-+nAFU zk4TnZU=T}`aAO^4tPGynH$!ZwQk%z4ainT#YIF$3&KZ99NNJw3a|3f#YDyHJApHCLb%h{k<*!u~$bi#b{ z3=RX(*AsK9S=>EKbEE!l{Q4%gqZTx^4Rj6#@kGzhYwt#GIfWWbJ;Oo%<<(Qk|lm->f(Ji+`Vd3y>s zVwH9iahYDm2X;a+XR#(9R>@EfBUt5JkIjd#F3ILg#8eq>!t-nQ|Bf@PtWpEOH8h&J z(&cBa>OE;gqMl8(+{j$@^fRtqdbaciokEtU4xp3JpJJLyd(!KUf8HC8L^7aQz?;Po z#+S=e4)>tedl^16{8Up-VR%jR>~+dYS0QdW4(gXb!zj1}4E+sCIzjUtJ>tdH)+T!( zxv>Ww-p_^9NBnl4%y&#qegJTUH7q}4%*w&lfsTnUr)$skpu7Y^{@m0oI^B)I3q$#w zJOWLYB+X-ofVO`J#ZRN4sC0X{_C109lu-8D(a)n5*|#Sl%G@zD7dU(Z;j;Y`UA5m{ zci2SfmSwxNr*BCg{%p$SWazTqMhzqCJY~- za!R68T|X73T)mAg$Y%{}&NDmjibumD<4s>~fy!5`&Eq1FP{yr>92=7xVYk%6Q70-1 zr&Ql4v96&^Ig9y5p|-X*vf}i`#p1q1%43H3TTgtu5{&Kn3#fPEnN9Rb>{#_O#DKj@ z0a+i6Py3A5**^4~X&}qdO_!^<_Hy|25pB7X&fzLP6Z>)EgtC%SHd3spZevXjvqeP6 zx1*9{?fmcQn*$$Ks?NHW3d^Z0C0>e$LPA2>1{$xh>Vzn}ySwG?I}3A!p@FxWw0YW6 za8g8U9CI@3P(!#(W6#7`^s3uFFuy+u*~A=T-d{wx{X|h75dG6N1>GN_bo-g{&5n0z zX-Us~>fIR)f$C=x9Kp= zw|m&^pyl~FE(>F&q{*xpqD$1ypV@V$4T5ARwA_CwHRY{ zFKlgX*&{EbpSf)cy1hsph`Z$qYP^*b6M)de=eiTqY?U&$ckdx_4F0x!4173i&RTzO)`p9N{CzEOZbn64`(EFOK)&*-rU@iL42|5UG1-C zus^U+UlV^6nTODi&=ziDqOlb|xo(W=RY2#^t>&Fe*T9h(`oWw%LKZ z^vrFR>*{7*LO{QIC}AL)L9VvKNUGii0mw#{W!&+rKD^qb?O^=i!E$Y%^G;5xFr}Qu zEQrVp*NrByhc~evpF=1}1ZqsMHZ3T&>D0z8#rema8jqEflqzlKk}h`}@QeBrBXlFn zymw0Unsp9Y{4>l9YrfAldhh@|0Pi8g#V9W?@9OQ9E*M){UY3gI)F0eR358!V4bjpv z*K99|9^!S;Fc^J&Uj$Hdy(4n=Cz7E;gv) z^s_aaGIzvN!cvhw=qyc1t(=|s`Qp>5*T~SVl6RwBPICiKd@&hdK&&k^H_3Y^DQg2U z*_t%!S5HSDu9c$;3oNHqN9^0E_)f(#qA~^8YxR|jzcksC#iILDME|c(Fa{NzTgxYi zP16Ms2o#<9EA#BxA3iZ;D9O=MZ99G5WV3LxN9KVTn0-KcbA z1;e@|87Tkk$42&0r`}#NM5oX_E)h*BlZA|EtX?HAkRan3YnoZMlfCfYqk2QSfZV@f zkf{hKdv$kWNh~_6Z%f)5_96Mi&Rb7c0tl)!7uk7?#ihrX?{o3S|5l@u-cc8X+1^Xh z_^fz$qyBO|oYRE>f{Zw}G&5n82oGk8ZXuw(HAGYT)F@gW^i-AgG{LdB+_J0`SQ%cx}77>{cxq* z`?_z!-OJ1AY~M&0m$t10)3>N>6^G6$J-}rTt<((RCe3B2aTvQAOCtWFarS(OEd$lw z)xjK44qOV}5Z9gQgT6I8b{O%lCCQDbSr2g}tw{edVj|RAX_OhHkjNd_5kVQRyX(h&9437Y6BBqSsvse~lY{@6Fq9dbN)%)WrIYwj2r!1r&vBd8z7Zh(2h z&dXb=(~}qHht8@n{ToWPc06Gyr$St9Gb1~h@Eq^Px3r7fs!SkBbaLkvis#98cPJ54 zzM5?^zs)-weX-5?CXoV-;`X^Y>a0oqfj|VMm=!O|n>TNca5pTqWefP4j(z&3`TqR* z^EEChNF&E=veZap?*Uzajhb$&y6Mf;xx1%_DSPRW^B@ z3^V+|6mi}Dp*X{@&Z^1cYUw^Z>99Rtkt`cQ;jq|#e?Hu+MA}EhZTHW_1Stv>3I!Cv zVrL}j`*-4MJ2>7;V`KX0=xD%f9kxbUKKp+ba=p?TbB!ceiYwJ_<I-Q;V){}4P7=vln#rZ}Q z7Jds(_iSo@UEA~siOG|WXstT39xIiR3`y#-4bJ`hyHB()mx4`i!ux(@MnQJjUI(|i z9$C8g(Tj_jqX0Y{4o5-j*8*zIivWXvXQM)Pn@I2koJ#sc6*DcK=gW#Fd&W(L%d>3M z*~~SL4O_FZ6^fs4m<+1W&!TL$VJ|Lhdq)4<577+E_�CckgeM#4#yPN2N;W00Hc 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 diff --git a/doc/salome/gui/GEOM/pics/neo-obj4.png b/doc/salome/gui/GEOM/pics/neo-obj4.png deleted file mode 100755 index db5d497159b2af5f9ff007ef675d0a2586e11ce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12077 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 PgNMjSDoB)wzxVxr!-=m$ diff --git a/doc/salome/gui/GEOM/pics/neo-obj5.png b/doc/salome/gui/GEOM/pics/neo-obj5.png deleted file mode 100755 index e1579f082403ed62cfca3e0872f5850901b6a74b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11148 zcmbVyby!qwyYCv|G{%{&8)TNSOE&^J@8hpE@$2SrIEy>c^v)AgQqu5`6%AVXlw2?GRZ|?05Sml? z8{R*_&b^EOt}66_wB%KowI-Ap+id5 zELZqS$oQaq$k(V|YH5Xcn*UmMen?Ip-kuyauNe$~61`d&>I~;3&UMrFa`E(8?T1#G zxlJQ2*VimeP0cwLAwzCNwBfZ+zF6s!XvfBdhCWxPlT}ZcRZC=3tI#har=)bfyl?^O z8;*xAnX)fWO5x$DjcVvVb=5KUiv9h(l#!iSDY?KCvatPcuA&BqV&5mdV2 zsizcgJgs9=;dxx+U>>_*`e7aG-5gH6yxNlv<&h%B2M-=F55HCa=#we6+Ge+JNOH)C zeg8x7BsW2+wxnKKTIPV1vX&P4$cUq}M3ycWC0;CEuSflK?S9MdVohbkeWh%*RWV(LPBuiZt^cTChTp2X7hai!Af}fZbEw6$!%+k4b?yC{x;V*Ss zy~4^Km-@Qh%6{9~8g5TG{g@EH8W{n0e*_M}sS!dQWtn1lP0mb#3v$D66xdSs;T5&paT zuDU414blv=M*vzt+sj6(>lz~)8rO#nht2sPonVLzC-N!oML^%ZQ>ARWA@n1@)LcE& z&hx5$A~WM(F|_@C%ZsWghR0Fv?Sxb+*y}NSkhrqDyO86bpUZu-lsXLy85-_ut-r7h zy_X|?LT#6qMxF;sBpcYyJI>ayN=VR*3Dvu|8u%YV{fmyS6#QEeH*_6EuM4MxOl1c% zL}3-s))XV_7@~B-rO*9jf8pR1n3<>M`#GD``(DTx;QgsQon_Rky>jG1RwjL~VWXDK zvAl|eU06G@DP-{Lrb7eqUUmWb9=Z-hnl&qF6dKS_QR@B!?-Z#8LO1Ty+xDN zGpl~viH#Sag}`Q6?CwSrB>MJ0r>hCB>II}|r;FKZ_Mke)ySQf#UsR@e8k?3VNZFuy zwk6Xvwe?cWdySb>8~MKrUN1@%Ssc_6d!Kh2*qzMF7ngXbu&Wm)=6qmm-*P8qU{DVX zd{!hNk`d9?HY)vHyG-BZVCk8FhV|%WZZgDVcVi4DQ1YgB)+l_!{9s2?6LnIC1v;Ta zV}W>5Vw1TIT!Eu21*$koX%DPY^j0`R37Obye|w$&;(PZ&n{zx=RsSQjKHaGW9exJa zuHdZ_YzbEjQ_m*#X)U_*1te8XsimbCafCk?j=PW8mR0Roc{^0mom^=(sB(f{l>%80 zrgw55HldbZvI%YkJ)500dtbk!V;VeY_wn)^HVtpN%+{^xAIr`N^m`x|sj)nrfbEXS zq1NRRDQG<5H<)bf`JE@~#5W8yJ=zi6GypSPaS)uiJ*nt;crs}MJs z)P)QOK~-KE56YDaC=UlhKB&MyxsMH6HgGkf7Szix+6C7ro!D7fBkJ*|4(BI@A_=Hp z9Hr+=$*fAt_}<);@Qk)v$h4_H9~l&~4OE`-q?#JpZhI∾Y2-v-j!rKDF=g%@M5L{vzjb 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 diff --git a/doc/salome/gui/GEOM/pics/neo-obj6.png b/doc/salome/gui/GEOM/pics/neo-obj6.png deleted file mode 100755 index b6b3be4409089cadf829ac0dab8614cb6bc59646..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12508 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 diff --git a/doc/salome/gui/GEOM/pics/neo-obj7.png b/doc/salome/gui/GEOM/pics/neo-obj7.png deleted file mode 100755 index 15dfa23765872e6f56121e4df094e20d6c291d05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11911 zcmb7q1yoc~zwaR3C`gAGfFL5>prlBNIKE*WbV*4oNC?v1&49$vHFS4(zRh>v zy7%4h#`@k`%;L<X?z??90&x0FY{L70|bJ?2OjiT7~qx7tU7)O z|}j|Ltj4&5y@7@cprbFceg0R5VHQw*0!R*hICLjyC3vT=L$r)1*q?3=DBj z+`YpEvCH55PM7Li!9D))TbMrz-(!4RJkoSrGfckp7T!>m?aR2eT){a zZE2-b-loq+)u_U!xa1g>V;Pkzwa|F(M>L{~D4;jcVGz1&PbwL zUe{QNi(&m#wtHpTvlc^L_U;|rmr$o5BkmCC_zZd)CORs18Sv8B)IDn zsfNpxIhLzyHN#GZ@%h&j>gsDp0yOIh)#1C(=KP2-^54nQaf)t_I@-Bo>Kzuym#5-l7VUm(qob~wAh=xk?7PoDRUSz z3JMAuMn$tJSNecyXE&l%pT~Zs$0k`c?KR6RmD$3gJeA}!B2@FG*6*B(pDGrp&q`#K zNRR`yp?@^rZ_mcbRaIQrpggQsn8#4W4-18PP-PNL2@!i{H1@NentZ!GOPOYLpq4k6 z^J;OsXHy$MykROPB)a;3RGfQyM+}S6bR+*~N*ZRW6j=6k!-U=`hoN3Hbo8HNn@Z4! zQ0N<_elBIxiIRuCNxZ9LI^ON3ulmQ~Nk3GopJp#brW&zUI=M+nRhM(SrM(-gcpjry zf$D~ivdV{%oz9FC40B-QhI7)rSIWnk=t?7c5UEhfV`aL4q?!)%WY^%3Q3zc|a07YR$yOG@GirFZ0fwqtq@3CrnDOO$TW&o2|06qTYp2Rli+VQef1~|By0xw0*zn zR8%`>Q0Vj+cfPr?++{ccQ$^&?J{H_Tn$StS;y^x>%r;%1!pe`gcvA)ef4@%sj7CaKBhc_#1u{61(4LKwO6Z6wi zFe5SDg=~;(2(A^nM2!X3L_scs|QRgvAs zh3&m^i;Rzt7+4FE%4oLaG2k+txax!aQPC)R9xT?tO=lmMaLKs4@;8=6EnmgXu5^F@ zB;Aq4B4{>q(A>nx2!&avUeL$A!`c}wDZPo&=IALs{paN5WE>0Rs?vyGJ-N)Ly63Q^cc#Qj1+SsXSxtt@8_UfthncJ3A{BR}rMo@6#c*606$4 zZfzO_l}&y3_`Wj#rvnnbZTUZ%CpZz;i_&#ej*sm&EIdkGX;^LWmMpIbuM95mMvWpK z>r0TOx~@(RWv1;PXUhinAal%+kFBaVDSilSrO^Y8@PR5I#a>@WbLrC@f}{Hh{e;~Q&#GUYmp4PYr);V z>rnq)kLDU9&Z^7Q+H;FEXocty?8=_xSn)7RoBRj^55t%Bqn%wR0s;RPttcf$Dvgx~-$f^X^Y><<`%`25 zowWl0mGx4u$4!1zn`{Ea<8<2DVTZhDW_OYLa9IPo;9V6jTyL|uuY~I2GW@FSf(r7M zk6Jpf=zh3atpgtY3Jq}`XI5t&4Q7wCT*e49-qu81lsE2T7@5^!IQ5OF<+u|{Mx{>X zB-PUF_pm(erozKk%|WN125RmL&V@gQn&MIToOh^s9TV?0Aw=8khU#tjHoU+j(2hOg z{H~JL$LT|f-Bs={iRMkYLE^S78o5qRsD<5P!cpna=LQpY%{F&izd9Q)%r1MMYn{sm ztxLAXBozX}((m7t>3$2hEY@Yk`YG$3wK&x2L=j+B30=luBZQQ^U=GerA2DZlafytM zQ(kcXZM*$3grc-v%xk86i-P@FnhQq_>T=}Y`X>pA4ary0(Ayq#`9Nel!C&E@gZ^7J z;RdPI40pWF#E?ARz?!6_5NC#NPZKZYnotSxNJvcvo`t(Bm8jlr8nD^0LF^w?$vUmHewOfKw z*>XbX=!QPO&y(n$*AaCbaVvHngfgk{m2d3 zp!%GrFDZ$}ch_vf%n$~-z zu1eVc-m4gODjXeDec2*06qE8asARp<*K$pbMezwr(TS7h_pdlAoo?(Tylo?c#HkLu zO6JuL>N~rYUCl?OH3be?-{kLplH>IpAQ&ysh%h(x2R}tt#TyZ(<>0Y*&K}oS6OhMG z`03pIr3stn{CalUN;mO&a{c!X0A=0Dyp{a|cnzgAbk-M?glQFM&Jiv5z8?y$&!zS5 zR=bWnA9Y*ohPDf;?Oo^}kkHjpx^gbJACp_}v6Lj2e3g!%m0xX~l38SscX8@-I|}ni zD0VSPI2O4*!4q`a(nWmwo8!6Nw1;c6qd%~a`Afs0Ev+&}px)GF0g*}Um6ysOpY-i} zj6_BIm+Wjt2qEICyyyG{DK2H$R~6oiZz%@LYYD@k#WP2ED8q7cgQY$b>a4GHriS6x z?63XtB^M6;m6fTYMip!ve=YRoP7)ud@9$IEe4ot9RVhdgre`@PqD;9jIWYKQi(bg% z3*^j718p0l;IZKLi|33YVgqYME35rnhD@ow0#SB$#1p@>``x%CHwVxTmv#2Aw;~kh zATO_85gQDhxKuWj4!h#Yid?sn1i!^D|KX12;^&koN5m|&>6 z-0>@Vgz;(-3#}#<;ct{ktoIsy>;A~99rl#1oiWjdiT}-y_c+tCSF4y*(J5i8yVC%ffHyPNQRuvaFC56`Movelk&# zv^!z_GRjk#^19sKx;=K**10BbOuZ`YD9<1DSXf*%n@LBncROY-buxo#jE+wGSgbW@ zoj$VC;Eij#uaG%p=5kVO9ZEA1%cA;WywZja!}l|f)g<4`j`Gqp^e|D{2&ugOLT~Sb zd^c@3ceXT3!R6t}OfxI>kP7)E9{WK@@82%w^B*l1!@nhzQKj*qYE6?2_~hii)3+l9 zluShG@uWAA`^hqb5|48|ZD}4H+C9EK+*``c=1Bt$*{l%wjBD!@3$h zzpsfAsjxr#HLcnsb4d$B(jr^H922cfDq|orF7E4uWru!oWNfUzO5QU*zVEccZa+pS z0w?Ugtq~H$Y1Hzi)%li$F#9oS+3FfdO;dI3eGzor66P)17ISlT{W)NIwk^g?XBBQT z6c?>2ldlQULQFc@;VED#N$eww@Z4A{9n2*gk@wcACzI!z7`RS&B9rx3+9p`8JhmR_ z?D8YJN-Lykp&pFG+$WO&=Irg&WW^?9bZT>-0-I%>S8l{gsmd#cMPERM%}4KtWZthy zoUM?oN~aOSQZi^Sq#8jn-A==?wtp-4&OtvKxXzWU>nmBq1lGB-*v2kxEc%Vy1@$ac zOTsV`u|T&1m$-*$n$5@`nYfI8Iq+Z;a2{9U7w2@9o%~@iBH2R(2a=sHMc;j@kVtIU zpuKc!lD*1&3Wwg0$Wdnh15WBx_ybX6wshS$8{O_dkj4iJ@(A1#(=OxeH`p!+X?uur{Rt9i*KDw;N? z?H-n|QL!*T|5+j1U`FYsz!rY;TSO;9U@v$q$`|8u-|k^NnR{)@_y~U7No-JHgT|Y{va<-q{D#4?+i8JLg*iuyJvp@bJVH8^8}X3mff@H=x=&X9Cl;&Z~3HzRRPf zr!B#Ritg5wIya}X0uF0UgS_!}b4@6z?mPS*b)Hz}WFME0NyUccD;&`!kx4~dhnu?{qPb@HzLd3%*fB1K-59(ien2wIlgFeRomsKeSQ|bO8 z&|(De`b$+6Ar~jx-O-9d*zfg(A>}cQ*=07f zw3+?tamv{W0|4S7Zl^n1na2;shVd2nAt!rJ2syoPJnZc3Abd_o#y%ZA@gE0Rw;Ys5Ev>*`#dsnR7`Sa(`t;up+pJ~yp z0*53}QquXybALHq4-BF691yW zVfy=ba?+QYZ{6GkaLHbxF;&j=>xomi-M+`bBY&^AeOHoTQH#sEKGaMNXKt{t`q}bl zDyE5S_+b-Mn<%BFlBj2P(?4dE8vWbcl>4ol$In)0r0b!#sP{{q20Tr{5SUHj02U68 zog*=ron}3L6`j-V+y(>a?V_|EWaw@`ydT6;$T9WNJRR-0op&)o6T<0Z$;uV>kA!+}#BFNCkTD8pg-tbRF{ znh$JGbVI^eukp2^_%$uHzrZ-d`-f2hg8UubrHg*1F3GgEQN&MZnpLi*u}jCV*f1{Y});}cRl~f9@+mp;NEy`87^0;P(mf9ln zZ96AgdqrmM+mT}P(^KNar%JL?Tei=dL)F0?jK0F=_i@SC+AP@(x=K3}p!Aej;Ea6M zhcv#ItKGM4`o+2f50B=oZI#6Ri4>LxX*K7yMh3&XpmEnP%+26)5MyCc+>C*>GexX{ zSA6A|CXH9(N+i-h9uo58nS+_+dXOHkUW?j;uBJVA&weai*&-B{O73V!3Jv_)@~k%J zeAGia@}V&_f26>Si;{ijeTlO%_`ea#Wi?2$h(G8{oKFAAtx1wC#0gDf|8;3Z;g0OD zFo7rR#q4nQv#tT51Dl2}2c={%m=!oa6&tNOHv#qD2m)SLN~k&(FmMIs=<=)}Z#Z~__{6wJM~ zj0g^ZgL3o?C)=~qAWXyN_P5&@{tf1muuTu_0rX^c$q{XvyhJT;{`phpULvrLbobl9Ka4Ie^6i(Ie#S^3r}b@^a5?OWatBfzzZH zO?R#6Ctkfb6DkHCQ@N9^?JK}ZM)NKH4=Wb;;dG4pa%f&RUQ^>6Qj_SF2FJN0p+V%z zJ03>m>R3vZOr94-$*@OHVaLbN}>k^*iNrJsU#>S_Z)SK$#mBD(OOi#Ur6CRxq6m53>9+jJnRkWS z^}r{j`U4%zu3{=5qE~V)_+dvKw7!l#@sO)De5RWz`PAJ^AHjqIf;E-c5 zb?oM^<2vKIN>gEl{MxJw`C-4>2U<=KL;&VTF0b+VM5=rIL?2B1y*!7^{YytP~4A4f*e^lczXViVM+P3jF=#FEp11fX5PbU^MVeO}heApA|@TI5#x=$WX?JQTYO6y*m#%n24 zQ?Q81{Pr$a`*41zEpkwRD364Mk~5?uNE0f7k<27OopN1Gf#6Z|^$*DA=g`L76pSgP z2t4HPbGkbF1gC1>so5-eSC~hHAJt93wSIi@*ru?ev1Rx6X7|>`{TvytdIoK~!D);l z3^$w_|8zF9rm@Z=AtCX~^TMH|v=rrRIbO#F=;Qs<(`@kof`7;?fSrRt?7kbjzPa2* zIa^7x!NSEw%_-7WQBnE*Q}ybp80hPBP&p`PJGHya(+u>KkF!tba2mha4&R3B58qDC zsEKa+t4n4j3EEiyK8)eHS~p2k$z$a-=`-vIrEu7ud`L$}cjP8a#cSQB`>M#emy$s~ z(GSET#-$0|7R+NAXyZkCsGu6a9f7+^Yx&!D-*_6V)0>gbhNu_tfFIBYb2}Q5^ z*{=p=*osx81;hgs;Dj0eMtW@CF zH~$(}nlFpZwjdmd#R6;6J5U%ag|UGPq{K{~I(h1slea|vFCol-fgoj6YxN_Jd#Lwh z6cn6R^z#gXH7KzDLX;lI$2#{Bx*T1l=&}?geYQ1(NG=~|PI|!IJ|YiH4D@%3faAin^XxPB=L78W z>aEeKsbFu_L)P}~D=ES!0fcl6zr?inQWDai0CzFdTniOLqo$?OAYiw$HU68FcW%--uAY(;WItj@&lne zhBdUA%ZlLL-xDVsdRavS$yQ8bc>1)BeR}$Isux`ArY$m)Az(|KwkO+x2h#YxEPAn) zA(tvdp&S_Gd3iceW~MAA|1(*@F?h{r0QeG+%mgKqca2(U&>Z4Zas>j3a^D=sXgx_b zft)`I)EuYD4mDuhhN}%(IR;`-v*i|JD(0U4MBJ(xi0^;Od6Dt)Wv;HS01Aukmfyjv z#=om&3G?>uR|Ba>E$Wqwv}vUAL0Z@555sbEIOy7j#qX=~yFSQ*j2|Wg&?1 zyMR^h6J0J!e0qBNEo5bc;7*k<@La_bG$5S^lV_=)>hFKAQm8FoJLmND*)!1T;g4tI zA6i3_cx{ZEzo4%jyWJUWpBq#@$BU1d@xTlTXQNGJ$tMA0_-oM~u0XSYaWBkZ80bH$|dpSx43@s^-U0P zWCl~5;$0H)puCJsi0bN5=VYnZq?eeUi}BHD@No6*GIxML2*mF01qk}&AK^ctNN$O& z2{S{;FBa79ER-TdGUSmwnWHW{bcopRm4D_HMK8;Sd1AR|`?LgUT8SCtm`w74Axlxd zS5R_sx~ur{BS}PxYiPwAE7$Yoc&+KDciBevy#n`$ovrcej0J3eqVxw#Dy$&1`Dc0j zUtC+R@>ui8Gp`0O1@*qY`Bs{UmD-c@aC62hoX>AMJ+ww3N<^B8je>4#* z3MuW>HKttW|Lq2VklBfwR2WdwB9Arirhs1sHam-*reSsU^(cG$`+7T5)qqX-?pXuP znJnU%I6VB3w64NO!>0bBkJFp&vx}s{gzFZ|kI-klyz%F3h-^UjR|nl}J>Nx8fkCI_ zHgD4yuqnQ|K8EzTej)(c^1n!S=;HBjrm3fEezvUH7*ltN2?4=Njy^+a@Lvc}rwPn3;0+{fsO%I0`rlua0*}(PU9W`tL~>;=(?+YDP@EfI)*o(Q2}a6>VJ5Q z=_SyV-W~$MA|O}+sT0KGtT~{qqk}ZT=5VF=g<6qMY@P~-K?h!kRA~N*z}qTpC2wGM zc^O(r4O_qBxBlRbOiAhORC+?Q*i0%FLdyD>l{L&igp@SFyNgOTFgUoSwG|cMLz&qS zM6Jy9K49uLI2@CWjcq2_3%3Y;cKEk4Ha7Nr1O4gz(0D*ksGM6Kw0 zWfK3u;`@de9RS*oJ8OXF3!j;Ht3K=4ohlz<7t(9-+u*8}dvLeB z#|zrS?z{Ez-~tv{W9Z`QU0UZhrZxH{6FI8YV^wL@I#t(TOTO*IRuUZ!@yQF>qG!DO z#%HJLqduH1@~JB<62~%x1>w=W?$}D6z>EKTyrMPC5#!VyPn7Nz<-;Nlib0k44VIGl zT`p{^@c=|JmCsNZ|CPgXJ4WBBQ9!~W=G3+absY2(TF^zG=+#(2(9HZ8|MM8!A|aH3 zLjPf*CEM;8i#ZHd-LG2UPb@Z^HCf~OV|1qL(O4@Ohw^_L=btAFwII7t`3hEvlWeu( zLG%NyX*Bu`^lS`jpWNI&?O#Z85f8rN;^Jk6#nsK#U!zrNAi@O3v1ZE5@KQy`sKUm| z-mU5L)Tm>9*GYYY;pHgZOF@jWdJX4ub^kQ6z+C%tnXjm#bdhNfuVNyJ)7>;lZBH7T z()CO7{c>pIchiG|yDA=}y8&n;?ELQ!C=Ce}piq@USno9IuJPWF<|*Ml>luy1)Wye3 zHBN9zt(|7p5N#>l*N?!B6x;wvE2{IBS62`JvK00=>Ui&5BkS*I!RzMS1b$jl&kTP? zcJal+{h5VIp8 zfKXB8?Xs%-pQB?Resi-BITj7h9*Q?bXZ8p;7Dl1_l&V>~YD- z)T&%VKMPLg2TdIrwZ7}0~>zQ?HAmCO{>r+(pYQ}w6_>W4SL831vA&21}krW^;A_95F!G4tQ%Q(V-u0TH`D|{z`%OJwu3MTsEvh0 zedXDczKeJYAcPL_AcYMV%r-APeZ9S}Z1nXF-jn#}bSc$c{q6RsTQ|6)0`OEpi%!)n zQuzNOX~N_GfYH;fnO1*Xvd+FfC#S=AIU&MTz_KnZEVyhH!}oyI22dAndv9$bj}Za{ z(ehGI^uut>wdq>kJ3IvQ+&emY`s!6bw#5hD^NS18b4)VbffmW9Pc^BW50+%CYqxnI z*1N8?2JQv3MXAf(@ti#RFO;+7fPo{R=C|`}nD+#RK6_T{n$PR1>QJS_AC#_j&v*8o zRN>nRH%H8dGGs!ATBE@t-*X-{5rC zh>@bkd2^?vvFgNk{y*V;2=!A{5`V^2k1yai+s(mI9d_qyv}0H*q3U2Ov8_{S%!yvm zX(JHy6Q);LIVWI7a6P`IruMb?Ws z-hL*%$^KxUm^8#6h(gr4-CcyI_)cqfF<}BlLQgVxG}zno|9_QWFEnrEBmTjQ+;k?u z9gp-aC4SE$>6m_xn4crOZx(y9Vsi`pshU6w$c7?otnv(809(CFDg3h!mK@yW17eG& z>(kkY0nIyySktZo`453Z}*&VfN;&z)<&{;1n#QFJJ%!Rc&u!<*^K}-LYyx0 z{^DpoL*e@?l<2Ou8P7{sw-1J~HEH37J-2ylDej3tT12^cTU1`i4!D`X?XMLuteH=Z>}ZTqwheIFxFFTQPS zH1Y}0F}rQ2kn&tn8`F<8oH9YpSeI}~Y_yN8N;qk6U zA7))r&9I#xYsaSdD?LBI;1^JjQbMFd3p}$?$%T$&-hb?&#HX`TQ_WmBFhr;K%Oe2+ zpF1tJFZ=AtLdJ54$z*u*@2_!c$E*Wf2dwqMz-+SnxAxu;p>5-PHpah1UASz&2jFXGxn|Flz`!^Gq0(Wbbcf&5z$;Z^bp!Kk3@uE;u1{ zNsh@yw2)wKArp@TJ<)VI_dakFQ0*!d%?5LZWkQVre4GN`+8F(nK_gDpp`K?fIP?-U z@3pHYBAT^ix>r8DBlW&YKqonxE6^A2$uXiM)t$B!?i*-n7Q z0|l~k=T%1QbKa$icn(V}E;7CL`AxCdvMhJE6FcG2(zH+Pswv-x)`S3=?YHKfF$fO7 zdiB-nM_I24dz6pVW8e73-Mxdiy>Xaxai(D&aM{BZJ`+}u$nW}3*q@yrq%h&+F!{h< zc;h_pWR~oG1N|s;gf5sB_oXx^6@xYR-o$TGg{x%4%g`_B?mOnz0yr=#Y@PWuO7uG+)93ze6zhn5y%@jAw!NWZ)_sa)UiTS_& z-#LxORIrrXEvpSxbF!Dop)j6@`9HxO)S~nAySiAxWuDoSSs!TVRU+N|Yd=+hu!QxM zh8tK1m?4)bu3hg8)Hi*am--0_w0cxj`O&2%my9^A1SV5OWQa<=yrN)m-pTERn}3C{ zasj$wRCKYcE&YCrqq+>eMC-3Ht=i5EmmNNiu2iKl3>nd52JqRkl;`h9Cc+=j&+CxY k2TFkLHwyPElq*r3uEcB#9pf=@gE>S-QbD3XO!v$G0lD#(r@(0Go`Og>qq||m zxwwDNbI$MS`@GKU{DF?KZ(Y|X-tk%3Q? zs6rsOAxiRc&#YgsPk8t|({5_po=Q`?dj0cf^Sd|idF0y3i8=3~J zPoVbCoHaDUt?wI#mfqmy3FS3Wpepgtzsam<6&LeU-lj9N_tnKUp-ig>!Agi-A6X`M ztBq9TMpE~dXP-m6_0cT%c#|%#2o##r7-Qy5yD@~bK{dmbkgTqDL2&TVq_lsaE6akJ znW`hrP>ad$r)!7-#5_d5XL`{&&22_9k!2c1_)tRV`Dqbd0F9v=q0|vg#Y{hewJ}IbT0w$8qN;gy2f?t`!Q~ z7YY+LcP^Jd)f9ZQRpH{Qv2tLp>yAZdW|ERplQu4w(WIj(;LK#^VmUPNPo68%${nml zs=x52rCFvix3DlR8@YDl2D7+$;zxhsD-JYOrEeshMX3|=mTp&DyJd9qdiY$$$0H@Z zMcuLd!Ih9uMFo?h$VPPw^1ZO*qvdl-cYO#AP133FES?@Om3E#^t7BzsQc`CaIR~U_ zc8BX45z(i3*t@qXv6)lr=BV&OY`AUGu!DPlf4_v+4v9gQ-b(ev2&S*}W8?iRgw4|` zPuh+(jTqnDtdPhdg9mryR}NbsL%9=P3*~Vp1-^GX(9L~zou&7iT(Q?1;W@z~kHXLo z47lGYh`$%{7mwjeyjr=%p`MnhmL~bTKtJmJds2H*x+J|MaV@Qp%1ytuDL;QMJHytm zri0(C5>MUP1HLp+>3Y0ZU&Y_CNHC=ydA!+|Y3{##F6`HIc5iFSU&+M(2iqsn+~DCH z?R`9GLIzv$%Ed2cGxGLG`h^-poYPc;w0zu6&BNfa5sOLn=AUt=i3lf~!m*C^2L2{Fbv-wA)aTaYnV<>dR#Ip%!kFx&C1Tj1-ApXD}N~9C^Tv zC0WaU^o};@50PhSch4`mn-KAoWQP0r_*tee6H!RGY*xiVZH2{etAPV!y-JHaLk4wW zlKZNWXYMgh_1Nf)!}O+aVubpGlBZ-QEc`6gi%to#7M9*+PP<{JT12)6gQ1e&oAt2A zHx}4>vK{9Rg5ozt5NyiE%TFpznQk2&zn|>&a&f$}pX|EFz3Pj+m7q;B(}xU(n+$mv zOsv^b_W7mBsTX9Q#6?s6c66%HPnHbFrZZFJy7!Vkc<|t8y~P>)_f0#Ga(S5s)rE&Q z+|koB5m3F;#Uq3*qWA8%aAm*p77_W>7loRUV&()CZ(5=1UoyHzxc)_-b%qba^7>m)bM#GQhnGX z_nu#%>KpbEwtoLIn)~?XL&+M?En00UcBOfejg+3kDJt?)+Ev%9$vmbmqT{0#;2+b5 zC>k>AvsQGu&CGPdLk_QdGqQX2c><6_j~w($!Qz+;w%70T z=JYnbEW%&MFDbm2vhhgI?%1@KYg~5LfpLB8^Rxq7%feV2tWu$Wrmb3hp!6Ei_369| z`WEpaZFi@`vcTtLvJ>xY9z;ofUJ~a2rDdG`I!yj72R~{bE8E{+rs!rV=r;MNx;&!8 z@Uahfl)=gMsC_$(+n9Xq%s0Kb>GvjrLS@&kUvIT6i%w2{qWC^-(8;w0(?u-W%-?~q zh)#~_nrLpAJDl=s#~`B9qaQv0&iT8(zcuOi+n1|qN=i5?GRMfrj!d;}F~bPu)SAW!A$KOE07quFsSHLz_ zj|{TK ziE2)lvbvyl>}V)euS=}M~<5u@39b?3&Z*R6f!+-|i_U~!5Gf;A7T334{CnQhl@2a451eL1kR9<72( zH6Ua2oRBg@)v_0-LaI*P#3f&_^`9Lh?xdq_MQWm+Ssg^e+?lVo$C*}L;oaq?>(7(m zx?p(l>hV5vWt<0Hla4YTOupjdAIPx{cW!%H)k`LeI&{r?8P+-K_igfNCcfpSyL0Cb-c@|WN{@|Z znwr7lgQX>>?CW{SuV@}06c5hFaQ=W~imMV1v^Z9h-=bGJ$#F$DWWQOFSyo{iTxR9k z^*Pw1K4Y@SuTohO^X0nmJg|kVxg$&5s8~O^;3UMS*Fkp;R=fuMYD8WVL`|GRErVl| z<^13WEw+6|h!85fc$Koki;jKYsUNYYC@FJLTR)bTA{LML@NBX;<(77+uWt(4QqTL^DkMzxqIKAoP>DfAy{rpziO$Ih+msKwv zpu+N&Q#(%pFt`0y+x+bW;SU07t0Qgs{w%yO5w^{^_C2 zp91~%6NbgH(;hD4-4(ksrQX~pFD!5SF&r~z_gU_Ae{w{vcrJYk3C-Be8gk&Wz6hQF zzB@EfUMKTj+3xr4dlE^)*|9%=K80-1VYNQ3N~Ea)*rIEs9Z~K|CA%q=v?-?hbOMB3 zVpdqM|DlofOlNwlmi|wtamxp99*TRdn3uRc+*m_oJiZ3$;9l#W7QFTA9!>}Gn^fOn z_dv&}{KZO!P1E53enT3A$#PkmBwn=f*?Gq&IvK&LWAD zUWJKblp`I^q?WCs_}$09Lwp)A{D#3k%}!F2&6K3!y^Qj`cKDdQIln1C^~%TbUK16y zSdGlvQ}&W7MK!cgqdZCi62|E$+4GOy`z!gLn5-+^biqW;9Wtz%T+*pqTX4~H*Tkap z*wnw4!|!AugI_fkBeXlz;QGSOppZL~0oE3$YZ%l#bGLk>iTc;CUkjh!pR-LunP0+i za6}pXimwJB4cj*xGN!Sc4IFpxhJx#O@wU0SWL%v@;0FZ*9`ouxygZ=i)$VqMx3UmChLi65!1okvb9)4?iY1JLt#Q<3Eiy6o;RZRdA~Y0uT@8ZoBs9X zac56Y3qPTtkdP99{~ggRr#szz&u->DN)dGk2X|qblmak(%-Cjj|1fg;mYbdS7mXHe zaa$>fxZBDtwd~lvJ=at=K+VbBQGpk zp)fW+{t+Brtm_u8h*`Mi0Y5!*hR7K2UfnLLOTLK4uu+I{7j~fMtlAg7os!wH2OG_p zuJmO4-G$z_bW)LkVu8TZO3!F=8!{xgA89RtjBOf&dOc4MiiZ9Vk(hq zpcVSPVZjTLb5V>Fwy263gCXpMBSj@uWKsgGni9TJv?S z1h^fkwX#%9`^#cO?WsH4GkjFc%~^ADa(Xgkr}8So6pwGw(XGaM`;fu?b(Qpg!V!lX z6XWn^BFMPsz`M1{?=_8XbRxEa8XbD?J*aBCQzcx)U#$oqK#+xVh_7dS{$RIdZdTo- zprPq(dq-z8kVQl%YJZ!PGq({D6hzm!GMJYn>Bb3i@$_W1$aU>!Gz@uYkk1~WcvWKo zN6c)2um3dJdVmTZ4P#QxBTS!K7U`jME9_>8Q;qYh0M=e z`i&Is6=ez$l=&~}ay#4*g(-!0m(bBcGJ*YeW`)RGp`loSckq!Gwtmr9lh~ zS5N1#4HM)+1E??%R96kJAHk+)gIm3Psk3YrPI}Is@AUU&&7J>x_K3>vqB_7~8m8-c z;M8Xk7sPj1gp_r>u#o~Q+JXsEfA8v6FmZZla*Jn`-UO>YMu9NmEW2Yn$rOT2>UKTO zJYSb}IIJyvD;pe9;^%@ta*$Cmz)n^_p|$&FHLt_xyWhmj!p8R?yukU@uc&Uw2qyLJ zeC_;D*|&|06Nj^L&BZcGA!M z0``1px4L!z+)?%Tz0fdW^W7aLOXu*>283zFMLA3tT~NiS2TriFp1#&VV3nm+C(ier zeHy{oeYE+bTHatMcCl=;{^q^nRlZ3s+lvh;7oHT+6^N%2W-TZvFz|!zt9yyOd*6#w zVHN#*lZf=E9d=Vmb}nh_u{T}rT$sWS&okk^>pxKH8B`($h$LS7U{#@hWB)e?PLpQ_ z$!FO0^yKn?YE?QhoH!>YEaJkb!?`jwL00?El&8`MC6c}~+zuq? zL_%}_&ExIoLH`I;{g^q&jY<7JBV&tmsV$wPbcMRa_7PW6b?o8G-67{$0}tsB)1_o3 zKY_NVGhhG9cc2aTc*Fhu?6M#<8o|BEz*?PNW)8B6BCx4oURa*u-r_B5DmB>uWoE^z zI}V1wd$+G3!ptnAz2dK|!tEpK2#qd%w&Fi9&krj5GWFlj)4$TW+X)9WInn{PVBWME z_-?P*?m~*wNv*GcYXlXx+z6Uebt<{N+ojEgBksONEjHmvP9l3+jII3}bt#;8r5Dt`GN)n|cde7W)Wk1OvZy+_kKe zj4*4Dgvv^#gZ|;XGq02^YO``(+~4=?M8M|=&P?}c=d5irN8<~=MzqG-NLhBHD6&je zKGU<_yDbwP{B4r8pr&$vE=qRiegnbMWS!Jlg~MEYMWtug@VYx>(r}B{Wua$gFK1vF zckMVhEz2gp>fJk9ktTjZG*;AMbZddmNfUH6!j$MDpEOCg8$O25QzrJV-HYD&QPe&? zo-F3nS7O!<(CxQxcge`etVw_Q&(E6!mO=2JcNfU}e_KiUrFu1z&$Bo+0Tw}e9R2nb@q;fVrf5V$z~ zzwJOcOYZ7o)e{r%A{nG8pL_hHQCW_b+q71E@w+%Dq!kZ^KNi144`b0PNytznG*XJ<60mOp;al3?{+2@B7-QU6BO{E2E*AUUTuull97} zrT(us*GIp9@!DPRIa$t@$q!zqogIwn)wuKAq~hJPnP867NWvShJDlu}VN*uz z&yH&y@fcQoP>7(~Udh*WDHtd+mYp=-mSM_2@^61E+ZRrvQ|xn$ctptbW0y}F-EX0s zbkhF}{5s<%1r&}aPoI)riYpN11m3SsQ}q!0iRw78=l!1^5{yG5Jtw`?Ao$J@Hzoikv9}r%is1dUpDLU9OQ8Ivo-i6g1;1S$EFM9Alg`-bs4v zR?CFPlwi~ZSElZze3L^m2Pd_k7X z>lJ~s_9P16HuHnv#4mX9owNA#Aqh-AiV;RFfnbe}jxGnE_*vn)^832~ce^1$`(gef z_C9EIQ`|_w3!p)N-hA~6w%Kiaqe14?2`K|Z@7dv$dT+AGbrKQ+698a^9Y%j^@jAg5 zh;o~{=z@O?mzdcA!WKfp#9PWkLqj9I)4@V7?fE|FCKY1BZ76Q3CREYU!aYgR#Kfd< zByU3N=xo2p53?^(gv{FFibURM0NW}6($CgVJ5PT7n_d}sB;lFucBVr@^*hL;YP%s` zm4W%j*SM^#^Nta{@yH z2sNeQ8g(b{!_M>)-|-`7R2NL@c;w2^y`_BuCf}#IqOh$-+`aX&1b`B~;_E=D5K{B| zPfwd@YH9+p2l0AU)b@8MsPR-U&c7xY&Gt!cnjdY=jC)MI$~Qp8BqkVImN-naoU5)bt`2Z`L zLT=VEk8Oke@g6jSZbxpIZX`i``YLDKGMte-mR?HP3vE$0)#o`&i*#OlXvcc6Y zd~v-IWcQM*K8N?-l7{*5#o0~+vn-RuOV&E%A+HAAxSLT&b?as3hQtsbm#aZh@UO&G zv)bANbh?rj|WvQHmG)u+yce9x$VLp&!l7e4j>HS`1^GH z?rXz7t7?FKIW?TcgOJ=>u`61@GDgA)9tIPd4iy@jTUr7u21LAym+uXbAanae#snr! zf!8l%>iQhVJlC8mY(vniVH0Qzo+mlk*NKR}f;Li1c|i*liy+7Llm@!!9c}@El0A~$ z%fe5^Yhdj-T>Qgl|GOtSe{4)_?fF0*(xdF|2Eu<){k!d84*&*&;QbzOKZ(i-JR+B` z*_7iGRf`;x?HCR({Ej#IdMA+Xi?+sc4h%5M^5Yk$b_?Y;13lm#l7)~=Vv2o_lMgU8GiXBUJXuV zmc2cIdRS^AV*WZW^1`R6LlP`?_$d;44?T|3jN!i0GuIxK(jLVmM#W?F^3mhRDKd1Q zy<^LjI+c#&*C*>z=p3tX{OO#kqbF+Isj3{mJbK4Z_+{7u)T1zzUq(bXX10?f!@M(w zEitRJ*t9v^0G)E8U+LIe;V@S9b)6^O!o3D&jGFE8)KZ^3xa>WU)A82ETdg9C4V`5NfNZU@mlV+ zu+3;@$9`?jlw}!|fx1o7X9 zqr2MvBRrrG|G=#RvTKT-kmpmxeF%hp?s6937F1&K0iqSUF@3Z>2l1(2xH)T#)TTNK z4|V&SlsE3U;KlhZBd&42v9NdVdJhxtLbn^9P{2QO*oQu2r~MorYN1`tXyEmcWBrK* zW|P3>?sS*p%a%|DYky}=Xx*+*HTx@e7TKm1RT4?HSCk}BCq@u zeQ&8nckPSpyAf1;2im&`2O+1bWACby9wGD=(Ek=+xUYX7Ds@>@D_TvI^{YpZ;=WHx zQi^3)P%pWwsR5XeBPKWQGRIq$DTPc=17CJuY$jY#93OW;SzZkaf82uae*Z6Fg^V5g zvqFURWUW`&6`f3JuChD1Hpy#aH6#h$R~x|&hb@ymj2dPHH#^hLi3&`>{o{CL~<{MZT-&ujQ(s{R$uaJ3s3U=^7U zLx{^A#^QTZ#E^eL5CQeZYr&gA#P-=I3^^GYwU8xYmQ8<+htr=zLw#$c_rY3cJdfn$ z-9H-am$>cem_~|R0RHy)R64H7?+y*=vz`HNWrH>?byzDvB{vKz0lw$<^OFDw=Bml_ zaefFpOsbP(edjTnCp)#S3P24Ii%gJ{!%Z|m^vAOie4caf#CG<7SG%u=+ayCkz<&9; zLjv0)#U8Ai&38o0KYG+(Xjt=L>}BQH^=m)l9=>F-*s9MRv6CO>lK*P2qlWsr&onBE06 z;)s0_`L3@B7fKO8Uf$7(T>;es|MTb1H@L07!g2pw9KkyO0&UrSrmOq>I6t4eEs~*o zzBATqHjIP!oQmw;<1W?4-b9IjdwwYoz;4zaHAVb$N|&pT&YalKTsO$VjjPZz1~<-Qi6&Hg+IKgf%gcBimJmw z^?6c0J73PuIH>jAtUIi=Rqs1d;4DQ91aK*Dtd6Cplzknx+u*GJcSzzWRV^tk_CxBt z1SJTJ=La@-#3o#0y{$EE?oK1%A*tHUs+py~NJU8e0#ni#xMrDFe#GJQuCZOd_*eal zbC6VI^SdSUONThlOVJ_0jaL028Ux;M!7+&%)I!fI?s-)2mSlQW6_H`7xuhK7B zx<~JP(ta|7GtUZP*29JY1KGarQ5Bc{UaK)oF$Y8ReTNJI-nuc@)=8lk_XfJbV$6?ol77$;3@~GlDlI04R-e?S0q`i`wKH!J%ZmG!5tdBA=;{9& zmmuc-`$mvq&nxWpa_VChEuLyHGU_i3{g9w11`Od*1`^Bf`O}15EmiRhe}6ZK4lXx? z|Fg_W9l#;EOPq|c`;$L&i6^EvYBm?bIMS;=f?ZCziAt>3G+IhYO;rJaLx3<~h9#IB zh#EYy4%^G3z!81jeQ`8L!dtT@2(kVB?Z;-r#m2yT`12&*J)TFvoCXd2Gt%Azj7E8G z2T@%HyypgL@rmK#(yuSzY$=Y_IX?vxjJ)r0sHfv0LefG#(a?>%d+K^zvHlUDwk7l# zE)9QTk$Wu%SWK`)+2YUoS4bciu&}WOp=Ge#Q{E0=#=Ps^0e#mrnSFJrh_76wJ(5AM z&RYb+aWOcJSMCgwcSRiSL^Bg zTF5SrbsV?|K&Rp_sym=%^4WTAg|aN8x(DmE-()-NIdB*)H|@_2W(O>VWgky z&Gc$d<548N65x3Vo+0}K=6Ve%h>ZdNZi%wGUdu19um{oyOJ*&tap%7MUzHOCohGHx z$Yy>;Rn`3-OXDw(hpNGn@MEhhZ7#4duf``828v0jjSp7s0)oznQe@t zYPV15Sa}c6V(%mRtS|q5=(!%-QPb{h8QfEk0h;&1k{CoNJ&~xF`Vde zIU5D;M$&PY3Mlt|1{h_*vO3FRDwOA5qcR`Ls-mH0Y+`(3-4Q@m1z=`WPWdA1OWBgN zm4${Q45X7sCY3jm)^PxjZ_&T*RAMr7#lE8dT{^fzN2~VbK8Xp9F^R+dOVDpE&Se+K zX=z`qR9{}-&)O0zeIt3qcc&~Cltk0Lxi4NHr*M6WX9IjL_XOE%!Z*v5JR%d)RKGXw zh&du>?wWt42tq}{p3XRYrsc=w?2Gl zvj>5r3+0u$1-

    5FwR;HA>9us0nab`A^-oOYE=+Bv;dShFE1>NIIEjp*1& zBLX_9YKo}y!WvCeZjeTU+?m1HCH@1%2ehlVUM~p&A`}49hUuTYGEX2u>+PWx41l}~ zys}{T%8I$1?DUuJr}hwb)l~V*2J!b4<)VY2P)|O1bKf0HZ3kZ`zwj9mF$ z5NqcJKnR3d1aS*}wl3jVe{5NAbSMJedkOkS5U8$J*_ADYSh(xf1`C{q6Re+Ob4mj&Y~NsvlF}j zse9rDpnvHwBp^TdAHfm_IW_?7NF6-mHI=1GH|aB{3hHaHsn87rE1)Tl_a9KAku?*< zjWstXEdbq3m2sm*`oo6cI_f$=&OJrM%+%K(3RraA>K_=u89v{2zeL?YDGU7vV}#fb z7rzE9&Hq6HlGgE(54HlBfZOOX<*U1N;1W#N`2NR3YFSfhVBkJ5F!<5@#A5<%^6AzT zQ=*KSBqUF_$a3X(PEVRxLUx94@{a)g1XqvH(2OGtYcr_sUNgs3mrZmqSDWQFzrWa| zPe5bieaoKIA5|rDVDz_j*;Nquo#5(=d;Q9M0+v10mWGlMc7=6qs|S0VQyFr&1kjCZ zi@97ypXKCn$rjl7;Xm&)|ATD;hTj1kBnX({S-6+JU&@71LChOMJ;( z+leJdSSXt2a?<1Hr-zp;x%rUJYwedf;PJJEw;i9SsuSafhgKOX7J|5?m-VIhM-TbP zo!S+xJTQiq@cy?J=_%sVX6r|~F$GRWKVu<%Q(WTGjAzWun$$!Z3je9k+FgWm2s{Y* zB7;XvbTm#QkSVIZPZXrWkbg3INu!@M72ym4J@rL}eJ98hMRj#6P}`FBSGaR^3RcP- zfCkeqTJ2D10j6Lwv9O8bZsYSN*u=&Rcr=-@^w1B+zD%DZ>0~2GWRKp@G>7aaG@P~y zY3UewJ?x^p)OjNrBuhOuCk?teWTlcojP1;XF!kr@@_{6Dy`xGMeWPs?M;Ea0jk-f4 znd2jJ#Iz%j+Fjq7_EOpH@EBJ*GI)%85kSB{Ay$k8&=S!Gg7N6)$DW{) zQ15J!rl*{ys;^dzt>fX%H%QF=&e1aPUj7PsR%Db066(aYhFMeQSY#U17?wwGFQ))5 zncZd48c>(v(N2raNPEjNE~k=^_@Eo80?sFUHn%;7!$QA%fvdjs+}Vm(Hi zN59*ZxsLP;+P(|@Kyit>{>d-b9yWuAg@sv6;6d*#a@sc@@1i!CH3e({82hJB{iQ^3 zt|{TGo^oq$ThA_%{cJ%qYu@^Af+Yd?B{;bFp1^)nn!=uxns<`lKmrR(Uvd3VTV?zGyNJ^+I0ic#v0Ewyix(hxg zW-MKk|S+`fB%5|rf;|H`%oE3f)|$xM`h@3`mvSXhK24Sj&!?{CmL@54(; zcz#mmu>baFx!0K5G}ndpUReYXdvSk)!t@7>YuD9-3+3!}&9go+wPGkXK^WXV;)UhWBPI6b*JWPl_Bc378@F}Sy9-WKjugn;d1|ykM!ijwM=o< z$YmoGo&PhMM{&R!!0t<#<0-uDa@~5?3VJX6A8yir?CBUV3DBLuw^$HZDZNR;ASs`x zQ;;a-R4AJQAVHupZXwts*Ud==f0mG_p9T72V3J)sSCWKL8dzX5k1TcA-BZ#)3;JDX zI7Zb=5q+ajCHNbVUI`fm6FD+`VzP9_dJj>R3}Pqq@b-9JGr~BUFy(HU)YGw_bG%$G*)QaNBQV-sZrhP;qHW7qcvRzpXUpf?JP2GcYrw011yj;UoesK%U)< zd`p6l+pa&FQLk`yMn1Fl*Wbl;H9v>wBH2At%yXiUmd zYO2M%v;%>M|8u!Qt@iBCSbD^JxAvez%XV~@V_G!;D*4a$tuq$mHnF0;u)bXi~WGvGP2OTi%z?c-o%qGFaivL;E8zqb{=4|^h1EBExl$D3$-#KK%MjxD|zs|!jAXid&;;^$Sh+9h!l6-B~ojKLeAI$E^6E>T)Y(b?j zns&K?MVrH?Y5{)rJ(IEcs)=s^EYp!nC*wj3P&B@}uaBl5t~ThSfm5fXti0>7%Nf|y zqoR}l{6_$ZOeo9vk4qzV1`n>angXf9#On{&*?E+7<6L?^Bo}9|fs+iSrF{aZ!P%B- z*JUtZPDpqg_iP3v;M1q26Ez+#%|v1l_?)Vk_rc=7U`j$p;lyZ`$ADgw17D(z$HD0b zbmJp%vqwtILN4l6XmUT`h{31tv#TUF0yP6i{MCstIlGF3?x&&URiKUi#$3knP{~vBzekbmk9V5d-=M<2uMorBT%>iSZlAU zMA!MAuww>Zz1qAS)<|z=8S|U$1DriaJ1;)_a(a(W%n{F|IhaUZK>?@Od*3!oEv*Z1 zKQCZD(nwqLYiMZr02TsXb_tvoec+%OCurV8Ei%5j5}>H8{6%-u2t^zN zY+nBm{L8xRdxR!AMGaWBNOfsod>3**P`nsIyxN-&8bFNoRx_$mOR<`NV z&=VHE1q{8nNkac|yuxOrlntPy+u+-GU}B~1Esd6rac>c*55Q{w_#=Q?*z@V@j2fo9 zHkD(?Lk;H`be1+Xm@Mh6Tm$niyS3@ZT|HNZxa_^aYV#&UF!>(6uGy?l0n>9+!sTyn zT)Sp+8o2#7gTKBJJ<;$>J5LvbwO{)AiI723cxs14=CrZ$T|NX{jUxM_-P^re6XW64 z#CgClV0*D4>ak%k>3K#(mcT)&S15Sb_F|=S33k;0XAhTiGHC6KQvtb*lRGF%D&)~sT@I`7`#Iv2BMe3M-eRh2ZvWWPP*&G9`ws;AC<%d_(Gr#!Vf zRoSr=VzbU`ZO7;g|sEi7uG zhdSjIVIN^`7*{cSMeg?-g$nYSshu>A8zHxc`L4GU=7-TdCl?KC1p`w1A z`EtJd!l5a?qkjWlNN|W{Qd7Boq+(4YtS_Hwed)YVkLL(2ryez5Z?s6gS@pYI1=26X zJO4x+8XeJ|0(WUpM|bSZ(=6%mK<~9bA#=P6^d?2rvl#fU3cl;cT22a3NxITvg7r-g zKhpv-WvQv?NBB`~-h$93PbddWH0MuJv_u*vojR{^LuUGpM>uF6TygN1^L~PVF{%~I zvr6(NZ1DvdiN_|o3*TPPj5SP&DVs7gp&p4##@|piZ;+_$Ox1tlEXg-nNfG^o zLwNX1SZvpzg2u#imUzyfIB5aZrxPhH*x}6aP_g*TKnb0_n8Z#kK{=l<5%Rl?b~HS6 z(|j>TKQcYuN<(hsLrtW=+v=ZRpi{hAX}9pRv`i3$-ErsLN4U?G-h4SfY?AB^B(jHh zL{4WW86x;v+ diff --git a/doc/salome/gui/GEOM/pics/neo-scetcher1.png b/doc/salome/gui/GEOM/pics/neo-scetcher1.png deleted file mode 100755 index 7130e8b0827131d778bceb29f058d6fba5630f7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16921 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 C5tZ-& diff --git a/doc/salome/gui/GEOM/pics/neo-scetcher2.png b/doc/salome/gui/GEOM/pics/neo-scetcher2.png deleted file mode 100755 index 330e1e3a355b324b9fb6c1aa96a2bda1563efb19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21323 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 diff --git a/doc/salome/gui/GEOM/pics/neo-section.png b/doc/salome/gui/GEOM/pics/neo-section.png deleted file mode 100755 index 0d58ad2449132e77f5487e0ccce2808c668c57ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13547 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 F|6kX5(i{K) diff --git a/doc/salome/gui/GEOM/pics/neo-transparency.png b/doc/salome/gui/GEOM/pics/neo-transparency.png deleted file mode 100755 index ec1fb7f7065b0f3bd5d2cf710afc863a80455529..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6912 zcma)BcQjnlw;mA^q7#fB5<;}-MvIteQ6fZ*&PbF|Mjwn6W}=rwZxJEUyD<6;qYI+< zP8gzh-sJb*Tkp4C|L3l|_C4q9efHY>`@VDThi5u!l;kYr004keLmm7a03fm5o0UeHB^`p_AsoSgy_s*t$|y> zy!5t->C@r~+<{?u_V9z-KBX^+<{ixjcu(&y*Ujs+;FX`~Wpl+nGJedpu?gGaj0f`G z62-*P$MtXcaaE-4U0keS_jYiueKr)0N7mUMhVri5+}yaSivC7dX4R!Ko>QB?u+`qw zZOhQ^do``!d z^uUwEmXB6;m$z9}_4H!>4tjO1uEpx@UaApX+(ORd?DytG&&MJGQaoB?mGoli*LxTO zK11Ih>0UE7mWwMJ$hp|7H<9_x%KF{ukF<~#cxFJW4CQI%jaI(TKqin%%iFt*!SBvV zyp`FcNrp?7(zkOQTHiVor4aFIgi4UUybBtW=dH2@vaTZnZF#8jFv{jCT!)Qsjloe& z!e|Y{P$WeSb)te;%>GH>^>d=fpJ}90DHFS&XljxRBdPO*9?5)s?4?3J|EGm`FKHOs zHTJ3p#7@N~oEKlGszgf4o9jVX>6Y*fyCbTYPqeL27|qS=<7VdC_t|)bgecL|I-<-u zb#*MkGY$SjMX9OI=;%j3?anOZKL2TPI?|!GsTtonIsf%*lgBwl?WJ5w*+7q%Y`P2u zCadvbDdPL}Je0n(#dG!phR}p(5OmnHv1V3H9#rZx%u!A*WKP^a#>Q|_+@H7J{Rx<= z4Nwl_Dyexhy_Hj3oscrYa(b|#78Hb-f=WxJMq1rRjV@a6t!$6gRi!D82d-zt>L4(7 zx`DywaOxM6UItFYMPehO5gnTzfwq92HFQzDZ}6T=Gj?56=5uPKL{0i;r6ak&$lcc8?R$N4I?cY{L6wa{HKJOl7Z_KoAg#bRhf0|f0Ug@ zhetUpt9z4U-SDU%g)X2N89Hp4tPTB;sA$hhJpCo~PBWH*_1L?qc`nE+VskcgYusUe z4KB>#N{p^aEO*$0Z(dfDr}nlNhv|0qXnh%E)>QeDX_p2P4DV#3BC>M3+H#(#qYhrR z6j}@~&(CrEpuP$lY&JOEUsJu$mIJY*JUKbp-=58kjZfh8Y{-Lhs`@>VRe&Gf73o%O zE9R2RufI{G;5PSYcW>{ZcDz2XB1WxW7g~M(q{8q|3oLQ)=g;Pm-J<=qfyLmeH^%KL z?!*>19=+qE`$$TfYi*O%tA@?=Q^j#iUL!U+8a}E&I8&wBNn93am@ZDL|#U|{gf$jqmC;*p?j?+@2SHbCTz z)ux#|=2gm9nXH*#gQ@sxy?}#pG{xoV3#m~m2g`PLHyb-L&Yv`ZYc$_kWS*4~Yj(4= zd?Vwr=~vVKaU*z?NjG zW#zFgZ{&lew}^h+#;t)~{M>Z(gCxK4o0^ta33rI=;xkqj-h9pcGrZy`+~9Uo3FI(G zvs z3?o~m%y!64&9gieSa-QMIJ^Y;8oQu#hnZsD+Xn-wnBVbrLvI$IcN@3Ps{>d=mG85) z4z0~Am6&5@8sKC|%rUW|*r0yr27T@fy^I~cy_M)z0Tk(zCm>6vs9EfGMBJ<)rnzz2%fE``@>lmX>jbJDg2FBCEDP zx;^&iH8OYSe<}4=>1y3k%0PynMKW0F{76!(;WBV=NGJO^RB30V%id+g!gssGZ*71t z>12cT{@IFID5cO+XUG+%1bUfN$w55fd{riGX*Xm0zz@2EKi|wtTo^O!50g$mw^EOJ zQ7|G7-S=admB`$da?QR%brwkn6T1I*Y*_bt>$1m_*8Xii2J-m>R^iOn&VBXrHT4-_>*<=79E+9|uuq zJMnL({jLF)E$h`YtrM@6T4P8mSe@C+;%;t6Laf$Zkow9kUT_N>T&}|!3pgRzA}TxP?PJ%;eHN^$Ex<^dg|E82L!c@zJwiKS(Db= z)gBH!YlsV_5Bk`gg2ZjiUcG6Z7mc1exz$&@1eGd6q}Kwx1tN)9u3GrH~hPC$N5nM9rgTI_x9J?dsvVqUrYfjeglzcsH4zm0eR_3twJ) zd)D>Q5>8uORGYqjQ1fApbAdg!^kx3g4e|N&YXO%;g}!j{0;OpT&(USnJ&{5ZjKagc4zUWSSqDJ}(OOArGBa zZliK7xDaZr#x1@!JX>wLVoN3J-U5*jC;3k@z4SXHy*!G}v$CNhM`~!evzJO?Ia3)m zCVp^HsYPcuPa(i<$_1*A!N&IF$v@)z?bRGkvxrtU9jseYIW;; zI}|!?`4T!7<5v~soON6NPXwl zp&Q-8B<&=Axr5BywrVXL-aI*V9b=m=9XH=+e;7}z0^b{CwbV0fh}_CcV?0aa_OL1# z#n0_>Qs3i~OAQP2IK)q?K_I*$ik^_vZq`sr3`z?KSzU^WkH@HO`25+zeJVPvt#+hl z76lAR@CTN9U97G~^RiKu!AGH|`}n6&=oXO^CrZ!2zzzztOx_P&qnNSq1`_Xz0VSZZ z_wc$+`wS2Zskc|hZFpznE7}I6rL~3d^r%^zW>CFQ(UrHiZib{!9jsFO&PTdVR(YH4);}#f+Md0N0;!G43;V2xv%dQF zQbqO3J)yD*iV@yI%n>!7?aTU8U)gVlE7Qu#3`vYPqGJgRCSI5&LXZ_X{<@OG@B&+= zC9><+eC0X3x281w{A7VZU<8LkO2od_<&Gn;zjz8YI_m$Mi%sf#p<_-d!Y7n6>eozz zlQh~J&&^C>!%W&@6+_@2!tBljAv5)U_0__PK9C*0+U~j%enOeTn6XuFtEa_|>NxhX z@m&qLQ=qdz$vq{x^v@)LoxR;8S=H5yC8Oc9+qjK`1y2xA;uTF^W)R358O}6woS>Fz zqBcA;;?N*jVoqN$U1G^W(3TSurUXE@C`lyv-Sn0tAt6a~ZwHRC3u{`Og_0mH_Oq(Y zx^4zdRORu4myV5MGCMzVQrqr^sH`QgM@7EBBj!bDl(1gNB07vE!@M>YL11sV6Wy&Y zTN62fezbwIAU7^EAx{LI=B=ajo!T}islQXjUoU1hy~mRYU7+yMWxTtt#CvCDq9~x^ zo(F%oN~UtXW#yslmt7ezW5#!9ob}%23|MY%#_m1gHi#D=7+eP;DMO*!OsBo~(b5p( z0czS<;V;Xzx2OQ{eUqWrK9dh>YHSk;YOlP#Tu{=X!F!o1F*H*c? z2Zc=`P<%obx|lbr=4W95(-alMH_oa zmsv}+phk%Qug7BIX2yoEYt~EdJDUqUTOUy!JNY>|@4MJPX%rD+<56}NPibtHs~6eO z)YPPMQlO1p9AD~;r*>*cNM=Q!n%>Q#Muc&XU-6(&p7uM*tg`dt*Xi|dlzc!{A{mo6 z05@%ILcfp+5zc4NyL-F<63&4mU5X!2p8P`MqeOo;3V8L6jXQ2|24T?!nnLSID0L&f zx^ptXjPU{QEsj9&Q6W8TSqkBNg|#8Kp`{JyM?C=x=5jI8mL>gnMq@N-+3OTRi^`;( z#dh)eY_bSW>5RMt`H=6diD7I;GyWSwygEr8STg#~-p)vcprdr3qOA#9lg5DBdw394 zL&rdc-42}v{6bRG^8P&qg>*tKLVA*jNVQU>iWJb?+-g=mNe?4{;-tY-X)g`WVIge_ zAW)Fc^mdY%y(YS5vRJwP)c|*bu$iX6KL|i*ww`pkM4&iC)MY}#1Llz|3*+4wEpeD_ z44jg_QdEs(XZ?E?5(uhK-_o+*Z#5GqR5R6D=e6-;K9seir^9Zn)LPK2Is*S` z@=XVVO^6e5aWL9*f??Adx=VA@?MT4~w%f^9v&u`ezW>*Sq!XjA;>leVB$Z3mtZHKI zPA;q8@|DFrmR@&hUX24X5FhTl)5fHst^KvJG2??$atG)3sqOP*n%N)|6JU!~Y41ft z(IJzt@y%xTn%Ne1*!HVYml49oTqdQ+$;ne142_M|Peyjf_S_fSA0GA9*6*~lPI(S# z7n)XuO{0A(tmd!jD4y6kIyy23Ex18zml>h;JE~ALUaCC;h?#V4>MghLrkc3)8nwW^ z4Y_q+P|$9%J(8hcc;!IaLWwu?Ma~0O#Jn$?&W(6pZAZc$%smI5^rT3J-w9FiJ&r}z z9?ii0mWPc96S0dsrJn20xoWjgt_b`@)s5*{vuY)@uawVhpbr`;S_z|BU0yEp+k=Es zvNFP5hH|x+mY3TyGG$M-0DTHaFN;&WZv!0Cy%?jfmfZ)3h8`|J>uPp3A{lPqCUQF* zcc>YMoS*L{S_XC2uBNfVp*54yt$B2@398W?k^QSqu%<{Bkmr5XsV6@(gH~R1z&9WM zcHAhH+brXMYbSQ6@j?Z^Ei_s498J2jzdn>K?m!jJD8x;utGYVSN>4I|V6^QHC_N+& z>*KdM_&rR)Aoi_n!rLuG z8P$d97bcZ{UC!t|W}c8kIe@SE4CZM3ND~fF+bDc=A$PF6bLEh0p*ncWYN^=nOS_- z`{M~@MH3SPgBylY8awe?$A#u$hn&FachzIK)0%c}9)ieDz2Efa2(5il$7KM;vvxNS6Rl!|DE-6&;N zE{|FsTfb@f7}fEaA0_uaZIey7c8M;etiwIae0xC<&%-B&ECoVZT1g(^nuxyqU2e-R z`%XPkD#9l#YK6b% zU@$#FhUYpZ_VL?4RgCyt)|y5?uu5&`@K;*0q0&xOef{IbpJwYAx}L!B0HOV?{`5-ZfR)@wc9RoP`$^%#c$?a?nA_mP<&`DEWz{D+0idJ@LuTO__O~!QQ}$%OulK{RU%#gCY~@h# zT@fJsdw%}4xyTo;<#PjS65I(`{`d5GF84a0(L8P4*WJRtHq#Jez{ZJ2?$Z6cS)%J{ zTJ@*9D$0UnL-$48Ck*2#NXqW^bm?XMw`}-2Se$F%Xwc}2yQZC#gA|i(Y_>?Nbh0)yJ$pji+^a?Eak3oYLOLWZA>ViD>;MUda0CcOBcmWzgy$5gQ)FFgw$-b zg#iv)v$xwVQsXc>kwcSU_sa1x-AL@J0u1J1c2V|RZN_kLhY%v!M#q=>DDULXsQRLu z#lKaOt7oxLS#%djZlf{Ax1m^eUd)8+)+H1YuucWZW^m39y6ab`qPFT?x%Kn2tc`3= zXFQ+TG)b(Ewz447z|_>yiwO*pBq?M2c&Q=evANz2`oGoCzjoW-#z?>RfZOAh?6|B; z;}*d9q|3>wQFTp}Jdw~k8chUQ`aW$lZ7i$mxNf72^=uXf(E4#KAgU!V#oDh}A^3fv zP9PE0(b9$#Z4OD)#<7bL`EI^3BWTgw2jQjSx6DkdB^wxM*K-zBdQV1oQ#)DF{!At7wg71m)5Bu4QKU9k2C|NZ`BEL56ZF$y#E5jRviT8ANdij zY3S3y1C#;hZ!ofP#$YfV+58#|!Nt&R{*%9tpz{QiX`tZ*iMe$1E`95O?84drogRTQ zVlf|`Z*s1g(*Gr<+UdZ1q(4ha`6~JbV(AGIx2sEx$uf~-yar7a%(gw)k>~}@qZIuk zP3n6xDX3^^M#NiYJ7tsoxJyJ$L}#6&HXmvB19CJ9F3FxrRmkBdn&tX~O9EXr+N->fB4&ucgpad{hPuLik0 z#<|o>)p+x9+hLgP?j1rch~?Q{wKxdvJxoX+5S+e>sdMF=uU(yy7KJ?|ojr3aR44o< oO68p5C8QM#>u=yp%{oTZ8f?U3>9120{%ip>p6Gy!A6vcs7eJndasU7T diff --git a/doc/salome/gui/GEOM/pics/new-tolerance.png b/doc/salome/gui/GEOM/pics/new-tolerance.png deleted file mode 100755 index 796115ba90629a1d9fd8841230e4389b771263d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14146 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�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 SZScQwkT;Tw5+$z;1O6A!eJsTQ diff --git a/doc/salome/gui/GEOM/pics/normaletoface.png b/doc/salome/gui/GEOM/pics/normaletoface.png deleted file mode 100755 index 51bc43a8f239a68c3de3612a8ecbc2bd2a0f8d1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14994 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 diff --git a/doc/salome/gui/GEOM/pics/partition1.png b/doc/salome/gui/GEOM/pics/partition1.png deleted file mode 100755 index 20b22d296fe7e860dd5da61e340aba75279c2441..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16738 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 diff --git a/doc/salome/gui/GEOM/pics/partition2.png b/doc/salome/gui/GEOM/pics/partition2.png deleted file mode 100755 index a67ec9d8bb56c64997b19bb3e7b38701982c0fea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15170 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 J!uL8~{uhI7M_B*> diff --git a/doc/salome/gui/GEOM/pics/partitionsn1.png b/doc/salome/gui/GEOM/pics/partitionsn1.png deleted file mode 100755 index fa8404de423edf7b2c2f10bab4f88be553ea2102..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5814 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 diff --git a/doc/salome/gui/GEOM/pics/partitionsn2.png b/doc/salome/gui/GEOM/pics/partitionsn2.png deleted file mode 100755 index b7480a4fa333ab8a62c25880bdc5e449ee67bdd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4535 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 t(6;kv9cbLH$NTYq{_uXh9*@^6*TdZjp{S_{ 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 b+~bZEwOn|uqI|F|yEy8~+DfI0mS6t|fkIjh diff --git a/doc/salome/gui/GEOM/pics/plane1.png b/doc/salome/gui/GEOM/pics/plane1.png deleted file mode 100755 index 47a9b8bcdabb3ac9d803b779a0c07a9c7ebae69d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13114 zcmb7rcQ{?)*5^Tx2oXVa;t(Zz5WNLK^xk_AQyW`E9-O5n+8DJo&@#W4)@myb&I%5$epZ3bER8x|$q+2^ z@vUeHLnw24R=_h-B?7(D*w>HqmDH@%zxf3-e=ZA#%C^wG?=nlhx-xw!PUqQTR(J6W zA(fU`m*Tm`e$>t9%H5SE6-h}4g^o>jgp=V6z7JZLjHDFm6B&f#dm25~-ms2Ut}C!3KY)xkr(9+wyb`xM2GB!;}TsQx`<(QQka#ROd;A zNjzz9?3!ijm}N?AttX93&CU5G+9jeV%f`;7W-Bc^=`&5!;zCQi+@2SDO7Oiu@}vQL z4<0Je5AE)rXIf^)Bu2@&xV(Cm9NyF<>gVTo-zgK{sJAVaqHQBotXfYJQ@JKKHAWwC zjs@d|-NU#Cqvl3KL&I0Spi^l@=l^EiDn}Y%Zd%3H)z`Pww=rT?r#D)pPgXapprP?J zM==fKo3Vf3r%(4rMiB}YaWcas0#illy|%jO(K`+HfZ!6ldNPRPqs!O`*66&y~G?Dp3V4b zd&$g0V$l(p)%Z}8E$%|g#ZiiYPsCb(@<_U*te?Ms>6DF`xnceYcGt14{_~~7!3d&}{ zA1ew<3F#95heT{&Hk}TAkghm|I+f68&mbdQ9P;?sXu5F!H{qls-^9=wF4oBW(9m-6 zpT5oSNK6q-Z4OY=j50TrmSHTj(G}GS>2>LiHQuH0;6quT#k4db#dw3j&wBZ~3yZw(e*f%-02E|2s$DAZ2c9p;kVuw_Gt7zyaD|d%WY8q^o$`FB+0E-Pv#9ABc;$X|v&RcN zFPQ)NyIj^$7`Yid-@{P+^Gni3o<^mW9@{4y&8O=Fhz!Zlrxi9+(F3lmOb+!EX||n< zG(owBjl%t;Q@jq)P}3Z*!JK|wmwb&vtKaG9+13uu$SfOu%H?vec|5AJ)wEK*Uv5$2 zLAc7r2KBFdF@8;%uWf$ggRt_?qL>*OkseW0Tc12`S7;D`QD&?%*inQiA~y5GQAlkWzjByu2QmBHK5DEA7?tZMMaL&6?_<$?pQ2| zid~)de>YRjAr(QscwKWe`hF<*sl1-ejC+HGd7a+WD+t=UC(dM>aI#Ni&Aeq_b?vcU-KG~k)10!E(r;E?M*Vikij_^bfdrea% z)XYWNU?cN^n@&-}(N_1f@y2UE@2 zB4Y}_cLHl;T6q7OQP1_@_ZoBMARsxBJ53$>0u(4{elP#-McB+#|p(k0EcKB-?lp^TG0jy-YPzI`t< z*wv93*S_7ZyW#4XX-D#aBdp*GFLHK1tIZjoQBES`&pmX^sMuI}80`M5WSpE48Q8Z} zZnm?QRR_#uV`8(qGW%?P685!+11Ws|y{k|f&eW129j^D=(Dp=ao2lH~T;Fb~;^Xwe z)~)(x3*!B`qgh_Bb9NFElJ>YA?M^PoR2)D0g%oYy4a%QM7{t#7B9c0Aobr+Ay5823 zE*?|j1?(0I!v;CTt!S7V_*imiu{;?lc+Y$yH;lmbkx1<$dh? zwCwCd6fa0f%q%Tq;-ci=zJ2j1=p)!>AtAJ!k?xR@+&O0o6qI}SsulOFw2;GgmEX$B z%ggJ{J-w>GVZxzP`RDcd5P_frI9s;wvl5HvPCv@wm##*5xC2 zvdFV`d-=p3hR->jXhyjAzf0zbEXg_YbmgRZ_lQTzEgt3obR{hIL*PT@%|w@q)eaA6L}`Uf1I>B+tEFeE5Y@sb@j*I>_9N}#QtJV zbH(Q$t!3@1_xIdz>9;jUzU%9rdY1<0+xq-$+7WuS)i^WTh=#wUVM;1?{r<+Ftjxu| zYOG>e2;y}*Whrrz@HZ6^=eOrgA;O`oK`l>+E~);}kjt=8oOd;udd>dgIyF z*P0!9_xtI&-p~2fUEa1@HdrSSH_O*=QSf?2+`?;1?dA=Vcf< zw&vGfUSz=^Pk#AXxcPf;ZM-jm!yhfkc1d%hV$H3Pq3H9wrjM=b(gHpeLp!tATWfM@ zSA03%9^p^%PR>nkM9yLT^cTWGAa|4734D{yXXLuiGT z-wIzJcY2v`PnGAWIrrWqN;(L5KvS8Ld73QBqoSe~cg8FrmNP3Q0-e9$3&$B7@_)3BbaKZ)(;xHd-I1dnMn|2r~&FwUuI zY7)KUfJZ=}Wi|EXiu|#w-zpYw{Q8dLdEIMVpS<6#nGyW*SSk?b1%IIyQlc+IW{w3Mq9TdFH&xI7>Ldvzg3A4_Z4^w&q-a za&=*UXGAfl`&eAZg{7=a?u~+XJidr`Ps{;X!cCQ1Ss44fu}9|HBX;<1lGTHkHC3+1 zZdgdK1C$hPWaOVp)Wn+}x<@`IP|Qe$#W798RlAUy@m`06#T=0`<5rAUdo{--X&&A* zY`>}@mM$NL%TdpLOpz@Yq1xnv{6jfmL6jcBp8`VP>Q%M;Q8U{cB&yz+Kp8F6jLZbA zVPyFJg9j)J2$^|;S_2&&Qos&7gR55vLNyl{j6K`hgmYnU(D~G2uxu)| z#^>;npT8fU>#bg?xxbx@djt(Hqzp@dyZVXbsR3%W&oz4gmGvzCXw6|&X4(~sr;^aN zn6o|NkEB*;jKryn`^3rD@|!FCwup=9k*m4(5Z4=r1=+7udOvK*}br|^lF&A1QW#SW91p5Q=cHxjcczAoaoT^pVE)RC)A#ABON zQBr*&K|>M|_{DQHsUimZS*&-ec)s$}ksK?oA0F8K`AQ@8$nkVrdvi3mHE+F+u= zV1|nA7GfcfWA;c4Toz~X;NTNp@>i5dQ%g$9;Sf$sg`?GY!zaYV(!Fsk_4LagZV`UF zv*kp|vkT+Xwlvd(O?~k{_vdPc>8Z2ND5emM}y7#ALOUpMY ze41sD7lUO&Nm=#Zeet7Y4-EndiH+84^GO}wPds%BvlTT9tsQ-Uv$A4MfAt7qe04^D zKDZ{nE%LWvRoNPGvB-FpZOFZxGc25|bhe(=W=n|l zNt{6M43TZ3kx3qs4mzfbV0MI5vvcS__e`%3mR66wTZjm^UU!!);(p}9-RtF&A4nCD znwjJ^F*U6}a>C`utI=~W??c(|66cVRlq_BCE%a*eHm~_`-8x2v3OoL*>@hz#O$LKP zZ%Z7em>>nZNUA3WUerjIUfK7@KYmLNC~AFKIGW><_ZHlzVU6##yiAu2bvvWl8!j;x zS5Z-^zKBas@Lc?nV`N$*2kUhOmiXwE&zB0<*H_zB+(@%CiZ!_Jf#qDVYaWA z$b2U&Cr5jsb!Z-IKZUZMD{btc$qt>l`LsPWq=ZO32^(~vS47Yni=l!OR%U7(ovh}Y z$zTxp)v0+~FrI{zE*ci(#M z%?y1PClR*cUBp}DvYz=g9#yDa=Jud95SIyd;XXJ>!^#@*?c1{y1$ulsxgQIpq0;J_ z#wePj`xW2ZM=a&oU=8ceISQ$6NW;CW(m<#Qw?|4`uvQ$Zf&}wF0zT_5%2hy~n=>v* zw3QLSpeEW_ym+O|z+(8XhvoXUIPRu0#CMjV0kSyvWNxvn zdnxOor4HuJiu=R32Zul4z449HRkUJs=BkS*JRYM~dqg1e(%cc#(O1jX{M@mBs=O}h z;6jV9%vZRDN9c*zS*j8ry2e)YaO-5@C?9$A36AJx=lf=5Rg5;Q_EPO63(Op%Ylw{; zGLuCga=;Y3ne@@rt(x3#FIR6J+-^7Bv!}4hSVtt?M)p-sURK~{ES&a((**c(EDz)! zc;LO8_ah{+C7Ahn(JKF0H5Ze_L4>iFJq+5&EBRYE>@e%}r1)3saC%^RjeE<7p04)^ zM-zPNf1{MuH7o6)H|IT?VmrFgh-3n0SI;9!IQ881=GEQO*sL=R zwdz$LCnxXCHKH8{q}vbp4U?v~O4hP!{id2I>FPm?oT z!jt9R*%P+y;!HvxFZ4<~gIlZlq#khR+XI0%^9`xxIRg%RXlJ!SNuqDxVQG%mrVo9H z^fCE0Si<$on73K;o?%B$F3Ah?;G~_NQ*S&6rVYFwOWt0bM7uAvtJSYiJese^8lLkd zC{4bkW~9o8hdw6Xew0&-GuzttRh)5dA|Q9Vgq1qt@!6&3y^-(YLBncwZ}RqwjavNf z?Ge%J5w&pE(@Ld%R*i<0FA0ZzemCFp10HH?SWRH->zd%cG8APJl(LA^THmM@pxdq1 zGp{vB^z4_l+sBb!**U5-^)uu1e7LLwJN4Pick|JecDu06>#YHZ&5Z|>ZsVNJibs2Y z{Phdx$I5Y{z4f>>7iurfV#|E>M1=GAS{aH@aj>yyIcdrlZj|25t9Y9KW(spNlZfh- zOMVrO7a8^pD(II<>K*QEtu|dx+uYo2PKp}9`}&7&Rne(2f%uLt$J-~ilvq{6`Ee-g zQ$cu?dV$nmTI(CUy#jh?8#YKbc()&IyLfhMXk5khR9KHBy!xOM5~p4rYfy>Jd*jv< z|EJ1?p`<76xt$v$6!k8n*#BEb{a+H#ut+jIB;-Jf0}Azao=@$&M&lchAFhWdSZ>iIv^^Pe&@G9EW(h|owy(B5tR3N0jU0`l<5 zQwaOchP7O>aKB|8z)`vXTIQK`DuP{+2dp?`uV|k?4@kDFNescK_lQT1nEEV@Aidw3 zB})UUdT}~!XFX9wk%8o@ZQ_rwkeA4G3keB{hjZdK9xr^ZHCNfi@(7HAF`h4Vv_+LX z`}pGr!|Cp9?_cGN3$t1J>s2-%;~lB@A)i0DY&acukl7LFMk;4Wal9Wd@LF8^U1ewZ zCX86jNsa5sFk!GehF(VNi)d#A1)u9KImI8>eGKxZo3r`B1P;^Sclhn`x{a9z^&S99 zj#_a=2(;FtD}sUv1`W>=j;9}2(#mXYeAt<(iNW0U@fGvODD^zE^_UwSsSBI6#a!6Q zvMYxzzGh8n^qn;xiYC*85W{p$0vAwfT~ogy=@{1 z6x;bz$>;R<@ev|TN>7hmOiT<|Ty$~?5K#$gncXoEVz+fsj7P-M zKxASu3%q<84G1cyk0;@@C;{&oYdTw6UYQZa z6<8pS^YAkc*n;R@#i7S1Lz%?vZm@LMz`$uDB^A}+`{MdHz!$24Euz9NkB!F*w0-M> zcuYI6H41gwftu`3wrl9Fn)mJn(fRA+)lw*%!%pSI)7sf)e@uKbGFeek(cCR&sAT?E z--p=PW=*~*v_;iU++yxREyc8g;=fBu*bTf6B-7kGBdIJmhO_iMcPdl(90M;;wmi`u z84Z0C3!@N-1LSJX>qtKE5k=2%maO%BgHWC8-de-euIbh3PJnG4^9f;8bZ&)gWgs?5 zOa0l*7ThoqY{Mo=e$|Y_!-Io^PXPhO<*W1N?qlkj7u)&MrKXq^{7(A~n!X`wh_?@` zeSIN-c}-T^(}R@o|gb`0~c5-jLN9otV#omV<+X%Wf`Z ze;<~fk>S1=Ky)YnvGi_FCJfh`F{x-77=lMf)hzlFlx>~yqteGF>q6WJxCL3P=6<;! zVWsT3&t}OI*%gl(o;;2!`yGo-XmqsJPaGJv*Eo~Y9UP1tJEzo>{5xKl>|q6s6%_)I zPynK@Hn~{3Ux_B@2cf&78(yv;cNr!3;$aZ_kV^QjR5q!IKR0%$uXSwKCUjsWYQ>L_{}e={nJJ}ar1D-aj+DW zrZnrSSr0PIN8}97+UAA+!CxD(cADYUm*N`5+Wlodtfre^bK6;wBh6`_Q$$|b+9Ym* zsPFBGWvbsh+nZN3GJ5vmPX*&Y&+ToP^!_(O;Gr*I=j`soW}xLGBP(lqhbE)B_&{e? z(lPRd1n=Lc6Xf_JgDv&fmXQsA#BD zRd!S#rhl&b;|d!o^*w`}Zcnw2GOBXO$Mp5dSqKS)0xDkieu5Q|a!yN4O%2*!$wc@D zD?3$lr{l&8sb~*x$N@Bk5p$p>_jiou><;Id>*~NEBjK?n->|z8}$u_peae+S)*Vqa|@! zqc-i%)@`_}D(*SB)KS3Bwt;ji4l1d4rPquur^jig!>51tC zG7%zQ;0?HJPogx<&tKFH3jd1sdX!u^oUD`CaiEJ^RIs$(&Iw}U_3PKtva&SZ23{c( z;bCEB*XIX)iJUod)0Bd4>=|z&ma^gv4;7Nnt_7EtmcT6lXn$$kau2dLklLFm6LbIJ z!wgU(e~6EeN6P*9Fz(OoOvB-D)r2QKD;0~s+%gzqRJXs>6T z?bL^ahqE|bq&>P-Te z8YFy@B$w&={$ih(1s!C$BVxHb2Vo|;gmsrN)%MF+dR2Dw4Fz6y&w=}mX*Bv*83HI} z;ml?pB3b%GjZu8m57h*Dd*ih8htPMcPJi$ge)UkV3KWIs9zFFU3^NjWRWBU>d-N(S z(m|iAn-`e{rx6XV$izH&@PL|yCH&m|;JE?M|DrSwxydc^nI3ujzD&#vcaXlxogb=4 zzZU_I3{QS_SsK_tU<=%r*o|g&Zjg_2#_uHDKD}1RBvol56r-kBsb^gHy!e1G0Nksp zc|^K~`6`9&9WGob;TB;Hsn$#M1bO^Zm=}d%%B{(Pnq4jcLY>+)GX2KRebMw^JU3DQXEdRQQF7OURaB^-;NvqnwPpI| zL!EkQ@sJ~r)qznURIT#)ek6kvV)v3srIKNxhvAGKk zm@jG(_Mz~JfkYl1x*p>y4$sMoL|zdVPW3v%Ga}$2(WP7+C|10H&gAy${Ip4I%u_c( z4@eHohpKA^VCdP{Ff(Zu9XHH3`iOk|_z~!;>{0XZaI&qzJi`1E7=Bb<{%bT=e*UB; zUs2!$VK!k>c{P1Y5QE(LLDc?1?7S}QXqeb$XS=hI?LU>F-ta3tGW=dDs&g9PKU#{l zphB{Rgu(&3{7W?2vH?+It*B_)aZD1gzPHrU@3>l_B|VJFW9Imi%maKn2)pa99=KZxEiGcu5m{>gM1o8H-$(iss+9OQ3(|I zH62tiy)1u09Jt5ciw~;u2poXeud#6#FUzoIp>q}RJ5GxFf&z4bD#w^e3UaZtagQUUIl%eL0IcSYP&7M*>d5*!C- z&r0B(E)Z}2bJZG~qw+!FWvk)e4vckzH;27!g8NNqnVFfewLX%yzC`gfVfgvQdYb#f zN6fCCo)+7xa;FUykaOCb8&C~RQ2&Vux-8S+9RQE5<{Rn_HKBK}w3 zwFMtv>uRsE!fqaM!PaL9?1c7lyoGE^o>JrGz$cYsfMow2$-y=42wS{cw5suj1z?gn zfc?7%$0mCf_FOiO-FAjoqd-d;Jfpd~{%(fWB1)Cb)XO=KEtbo(EydP1I3yz8f?%TS zbbyK-20_DkWOTAQ_UY57p&Ui3%iAKh2M?bF1JSuRR}V^JlHxdgNp-inbUERoPtNw& z!JAjMlXrNd)#xo0DSXMmY1w!DfF}~jzSIrQ>~h;#euUf7gFEe!>Uy{$^W-V*P^qcZ zoogO+O7RN?bLhWV35qib)h1i_zw*vNY#S~t?4$z&0;1yLFq(k4s&5uDYJz~(LSD)f zG3J-01RKyO9N*m5?IrR#(ghmtPg$mMcum4w;N`uRi96F(M}MLxv@Qo!K$iq)uk3Ys zq57j87taQVJK8-_q>obFFnzK;U)4BS>s0rh3?k%ty7C>9>M(Jl-qZDI{jXr4;jojV z>}CNoG$D@9j?aw98mn`)YZ7XsKat(|b%Vq5zp~9zXBjy;Gcb$-`o+!D z0*A!>P7JLM-lqehmx5 zo^xBq@l{bII*9*8tx4E|^KQTW6r^_E_6vfoM&ym%#}VD1Hr+nAM`^tX)+I&6m;4ut z7~JP?1Cj89#-1X-;8nFOm_I2w;2>~rm*5vr^BjD5R-Y4(VeV#Lud5o0Cc1hMK7(W) z+RlGg-T$i-vl@>N&+j!SgQ}G4xiqQA%f6DxT&vmk9Wj>#{WEK-f9*Z|2aDD}RUQT1 zn5zs*C{!3Q6}Bs893X@99Tz3q(ypBkeCKVoi;fn7{Qdp^BYzw9yOmTHpk-Vc6TWPDNzxGqal)xt`5OuTx;pBYUMk%K~K9$#zaLalZ+J{Hr$-*>Qq=Y(?kj` z9hp@ET8=i~u0bIL9Uz$}o=s7=5KN)&LlZHFhkSSzfWGg(TbfAaV- zM6}Lj#|_9<`x?DDbD;9>{OFMIkSw3Z+wGYeeBbtB)@<-IHi_V;hQ_VlmVk#-<(9bO z7`Vo;Z6n|(c7gO@T6I*f0Nx3x|Ic5(9JbU^QzHn%r8sRc{AokNgs)k)pA~Qq14F}! zFh78>R}%(s^DZwTz_!>QsJl6x*1ni~i%2>qP!v3nC>?2r7cTX*#roFW1Ywh?prob0 zn{)4~-_T~QD~cvF zCr8uiBrl+#fceg{qe7lbL0f1hOHG4#QXsXnLpZ(&Azr0y6-+3?Zx>MeQaR&WgV^M!0eRN1b3tFYw4LyrKKc(&nUeCB-Lx|z3v@cS z=jxLYJSTTPyslkMEIk;GM67y7U?c*Y%*C2Y<@%S~Zrz?R z@Q?Mi#|nmpk=KrZzyW6V1n8Lp!$w3~o5bG7B$nh^@qWNKe`m{+?Rf;qW0p+W%y?`S z3ZCY4R$t+|Y7WuoChgXoQCjqa;Vq%V8`t@AuM3ByS06U@>He#AfTC4yfm3cdxHi^a ze7F*$c(}hG6cQ0(0Unn2IeqEQ)`!0EVv<%Qsr#4aa?a}kfjwIGXJ3wwodRdL+brp8 zjEM!$hy1b0dB1!x{IIO4@2##qRu~PqLGzb7Rvc;py|Iq~@qWTr=ZfPJ61sq=Sq+{V zz}x|==A={PM>NdCQ(e2Gx`sw3B(8EmI061sz$`90AC9!3}X=WH+mLa}5;{Jyhj) zOLCy6fOf_*Wv8uP(mLcX&ptJ~T*@o5Jyv+RS^zzj?5Ux=q{Lfl(9t+15e!?fIrEQv z+M(#M=g)~owuoi*snBJ_PZkd^*Tf+xd7bY5DN_pv8mTb`7pj8?EGSYRg1_zT_aZkB z3Vj~WGb4Dlppfbk?LNMtKY#*T(ZV8DVwzTepiYR#SmW2ye{>55Oc?3eUJo3(Q$VB? zGmVIqCW^}6NMvrlcrgP}NOg9&tgdUt;9GA_<=t6nW2Cnn6gY}!fU2Mq5ZWT(Fw21) z$0es1ojx+?;PRFO*~X}1jMTA8AMm2m35o8GSXX_?3x9>%GM@Mx%6s(^d=^JvU z_k>MxZxDtYY-;2B?$|n*z-Ow{?uCU{`ioIDr}SpDpBN*7*f){h$DzCXMQdLZmz*D} z14gzrpOmsV>P`YiW}2+&{HfWQCpLDg{txSgsZUq(19XmdjNB}R*TRLtqrB8&h`O3Y zz9|de#c+YJ6eG_5lmU$*!Ixdm&&6S1ge+zDW@P2?!}RbS;!{G8(gS}&mqd2;4!g!i z4i#Q7BzyJ3Y$i)SCfnAAG-+ha9?6}lWb?E+sIa;64Aeh+Q-qV94}5iR0&=UtZf-?Q z9IrY%H+tf1`&=Ij(aYw0uWV<6TiIvuCeiwaesul{NJb!QJOg&47~@fg*NtqRlFRU` zP^KwMy!!#^%!&~_T#Mj|5hQWmcuwT)_VMl?L~16`zJbkcppOa;R^vp#(9V(O8SuC- U!jy5~e_|jqk_r+~2v!{{V7{u$qDA(&aDuU?Ugo5;P2W}{m--r5fD#G4>{+Nofb zdc2<9hg?E(wKAV%ab+AJ@f<(jIl z;GrvAl9S-t`T42Fr(rjqhppZbz=k2%tXl11eK4Dp&RuJ^Y^BFjtpzyc(-Zgk<^^US z+am(-1AaGpd+-04X$-vsJ9jkG3l8EB_4sTl06sTl(0CF4-IZ$Zu~hT}A~YWatZ(QK zgqze=bVuoP^pOYCvj`>iaGy%!KG+gCN+xwtGm*gnBf0RMewx$p34f$tQ5nz)nKg_ zL9fLA?Voi*qOPZ|_ZG=sy?GPVYf8`0A0H8M_cOIC#srSd{Q#Q_h1=|!OX9E1Ovp^) znBm|mRL$bz#-=Mq`uc`XW~3-;^sy^Hsy|;h^&ht+z`;pQ=J!gLi2IVGm}FQzWh~mDVQu)!31)XFRz|X&I7%1P&YH!2<)YEO;sVB$#Ui1gQ9T*suv{G8F56 z@>r89F(VdNif(xctEf*ji?UHZiqZ)%fE}YuOvvt~2hvlR@ zO+FJ*8pbrc{lSgA0r#ivMqsAJB8j119QoJi}5~F&zZT=*5vpm8COLJ~ms6 zr9<#-I@V$FEP zwfIw}?%8a(h$c*wyzK7l=_;tSc=xK}L)@kYD*`EW5OS-pjqw!b=6?BuMqWfDqD ze0#R?=7?7K4i*nSzM=XgpT)^VkTdEsYIGRZQ!s9Ub*FKoZHcTpy=gV0Y+$k1xzX@C zJxX+{&4)#3XVshVyePEx1Fm^8`xerVm#yWIgMfhJ-aTp|r!2Kxr31K;R`z}c< z_rJu|E46>Ig3K1THsg_BZVAM^ixk5CHL!Q_%FD4`mSA(b^_K|8a`Bj+@yTLu@(j}? z^V9=@169(7azCYM?6a)Uy7tEQJu<69*LSiD!*It(>FMbg9v93Kl9J|QCDf;2CoAW6<`BuEj)|mXl{rT5$S9qXOEf0fHR+s^ny;s0x&pFoAqS1uA`m+} zyZ6(z&jJZ)nf4t_{Y}tO8&AJbOWQzo_;|e;N|u zpRf>gaOQ}_PJRr*Y0~*1F72 zpWund7-4;_9T|j{J$NNdUGI0PGs6tEz^}B}i@3hcB(Ag6?j}g!^uwi6A*4vFA(oCk z-Eo*pVwx9!YfN=-v#I^g0aE!ycoTDr_L!ovp_I=R)87wcBH?<}>B!4Dqh)j2R*i>G zcO(*7FVP}F?Qu4PcpyE!e2(pG+S_+aRGV0N4f~u^QTD_HkB?CPFxGj$?6o1gMe_oo zwv4V9oj{G!GApWUc0J=|Y$S1i-tzYT3A(06ofY(cu*GzA#K7I;J_!j)MA?MJ;^N|6 z3JbGdd34(vWV7i5EdLS-yK;M&=LVBfGXJOUC1~TraML-(_cLwM8cO0ZCT3=4=uF#< z!V%*1gZ1EqojzPo0f#?#Pft(PV>h+hdA_9Je`cPwOZHi%`I(6IU_|I^V)w{_Wlb=f zm~#&2Hd3+(YN|4r+WC04#&z4UR(p}uGS_nIXK2C+v*_D>tl}xB#X6Dex#Os`#TH#j zw3GeeIxYl<*;r1a%{4mVxAHCO)Wm&)YcIZpFSXM9U7y8vl4h>sa@g1ptV$KTnJli3 z^;T`Cw>vp(u=ktm^)t>z`nGA{pT%`@8w~nrAIK!s4 zlDd|aRRuUMJZM}WeyYAYWkism3|su}RBqGYwpPrBhnMrwhx(OjR&0%6oXs5bK}H)A zn_9NNa+}RjT)`K~w@w{zeI?OiJw0E-Q-)Q%(~!B-8o{ws}c zmb$XCfp zU4Lx*D22Y?Y+^n)_>U`x*d#}KyY%#Ug*g$~%z<{zl)J~#3na;yuiS!$5e3}^y(OX2 z3K`0>YTcCslIF2@=l3PEd+y3|$|WtT%E(@${s@mq#JhLpg}cqgtPB;Mdsp=D%ol{Q zZ1Ac{$Mtdd#hQ!l2$}ES2V~yAe*_w9a$gq%Gas3z%I(V&d#2vRTIB^B!gq>&ABk^0 zcPa@sNF3jE`Yb8YA(pazi65hRl#iscv$KEfklLH-7kvH8)Ti4II~CPQ$<2<{WL2%H z<>cA|=CR)6Sf(dqxKQbO^DJ*#*sHgZ6W7k1+T$B{`*i{l?789zI19`pOjNhRZ-DBECEh_v5W}&|C4S_#=|l0_(fc zi%#@uz0dad6+CS@Fsd`&t&rluOK?FQH@uxy1R;Ig|-p$SzS&`(EenP6-}d zG^G9l*L8aV-K1;0!QDA*P2+<5%RT4Cc477n8#Laeu!{>1XO6;0eu)@$9sL}w7*qs8 z0chglTS~G+OuSw;HMjBco6CgwJ$R~nj*DC-1Ox;ayWq$99A)G?ZAJ2&KIgexi|JtW1u5ECh zJhGo_@$X3y42n8E-Wlq=1sC%8+)nGAT;-1YrP$r+#h=BMvHdejYeTH+bh#)d29DF{ zpK<&zqto_Aon#0F(ws?Kquz~UmFJnJ>>ow)|3#ByMz3E6g#x9q|$QQC&u)Imf!aPOkBagJss%tW- zeNr~r{*H$nd~s!EoRF=QJrn=+rR8PAii!6_KdD_$+2MjV1z-;A%OxcxxfDr~(7Z1t zt*wt(lZKM8bF7$o7^2m3mDRO)qkGu!Iqc$3&V>$*w}` z)n@bw%|D4`2?&UJidTGX52~G5(iv0h`&sJEV6b6EHFM4z(EF*7GmTUyF#1tr(<*d# z(@4SfNTob{vuXMEFV2n1t6$d(-g?(P5h~Y9E7RV;%CL=UabVxuB^iIJTpY@G!}a^p zP%AxzX$JN@%}YJm(hj%yL@SdK*9kA*f3ad*J3ZM5=l{8Hve$pn6rJA)nXTaX`qX7n z#tU_+Y4MfQ;z<9k-qU&o@)@rqa!HxuJg4cdk7`6dVN+l2j@hPz-j97n1QOcrEz0$Y zU3+LW3{)eR@DTt=I{Q|B33>>HelFIdSsJ=FjXq5US?f=x3s6sy0{gqGz1Bk88XSS6 z1+K|TOL=2sV}BFP);}|ijjjv_=@fi^L2tql1`E!OtGz*W?zZ!-wxZ`7+@F1YSBLYX zj*Ybm`&9-+>W=j*D3LY`VfSi3#~;pFDg73#9d$9Y~kt`8XO{SPD-xom;7x zzig;)FjWrrHKAdTlWS9+kaGUeC#^GWLVLdZKM8#rwgR@uO?otb&oiEynwrIxm8hg7`B$&* z>eM>S?R9gsZ{1!_ah&1wUgh-?RN19&o;FF_i=9rFbO#_lS2>M|nK=-N)Gn{6_%XF9 zB`s~c6r*YAj1hI#EUJo{)HR>Ter9hqc2`}hi)>`qBLHPbv@5N7;^JmCOC!N+K8OKe zaCM;a?op!1P1RynQs?klE4K&-(**{)STq=CfQda(b1~109LS{?F=BsMU}WD%NVq({ zO9kM}XG^{7jz&IO;~D3zcQhl53ACx@r41P(ak|5aB`JW{$NX$zYGc* zzK@w4^hP70eZ-^A3MRHj2UY#3WA#>hz5%^y%T?1MLDEgeO+-UZD(eVJ5A8Ni5SrZ> zY3$IIVt5tP_Y~U)QKDlD9o&iOE6?y@aigfLwSf-$fWJ65O;||xOBJKk@};G2sjRZv zZ~NLm*qXWw0Yo;tVq-%TW)Hh3A;l084Nj#iP#Mlw>j;)bs0(*%y9DI%X8s9SrpO8T z>xVw9WSwRvD8Ak~(V~Mge-jWp%+%OiWzA??5O>lwUlkwG44Nh;+%w%$(Sp&=6I8r)5UzZGGqtp%Sq3 zOR}z=ptONP;bnFc-H;;rbH2y>D=`fwu8LvgA~}Pnk8xFB*7GSwp`R1Z+SR;N(5rk; zWPQD9`L^nVw1x)hn2tAf6tglGQlwr^S;26#adZ&$j^)0j?yc#%grfrA?~y}`OD`cw#&@a<`HrC z81Jcc*4(~U)5vHC5&cA^D@pOY>g7MbGwW*?M~L^sR0Ca%3=Q9u8{g5%sEvq>Y(6_& zU$3Zz4ni;#nnVr;B=Kl@lY=^LPyPh#E03L3tKQE55g1eFv4`6kO3C*X5Pv{A;(5$f zMaJGp-O_2m)HXp3?Jf7l3uGcsQ^y+I4(F%6>(>z!AweU5Y~O+?$KfaX!Fm(lvA2|@ zSmn`}p|ROMBt+e+O~FAXk7uP?%l}G-e?5!=B7JXKNaaI&Ia)495YOw>?GiYm%B<68 zh)jy2JTyaS+4zsRLe=uvd2@`HmBi`_Uvgn+r~?!VrMx7|Dw)(odQ8COQK$K>=lM$t zEd6CdZ&UVpDbX7-l2^X`uroPT-WeqP;RJ|S_t@sUl!sCFYTIahrUwtU$q+of#QVb4 zjK{x*94J_-tf%)J&)r%!S5@L-<3+2I&42a2J&|@SMCP4Z2E9G&o=aGMs0}NQ(0G%#)pZrB0?YcLcLX)JYDp@{jt(|j=;d)vbm=^Qk7rwR5&EhIlHX& zluKK{?V)d_Pk!*?OEw(M z3J3PHP_ox3kntikmafvfygYu@UERNoshkfltv_O$?gP);)aKCnI2|qd+?N=mRf7|=}@k+*6r8b-F!Y&OQZ&U8oOUeJ0DuS`7?}U7M8z+_uiSn`iM{p@wC%!4p~kVqDk(^IL{&}g zqbE0E+QICTIuq4h9Jhc-8{U(DTi*BD#jYZ&wo4fW1rq@Q*7d$Te6r5v*7M%9KUIeb zDQswDL@r>*!1bG}CxtK0sQqhX`9uFy5qG<_;m2+c+jIE*KG-xaK0l1wiKm|>_W$&f z`9jJT6#R8A$r}E+x^KjskSIT~bc<`Xg6@Okx6z@g$sb18grYkSol&mLbxxaxO;zai z-GC-SP}*lqxMb`M`wmP_fek%nLp;3{V?W+iTRjMv^PDNw6C-V?4BFYT!AnvxJtd$P zj6Sc;5On`TstWy-u6x|wj;n!F0SSbDo>mzUU=SoThKwB-^b@~!W+4NtV)Q1=~l@w`)vJ=KxJj8eNp&Tk< zmxx8OZ{&PdRCIK7K)vBKA7p?)>FH~pZD}N?%!G1lnZ-YK#DPd|J!pxT3gonzZL;hB z8WLhS-x|!o#H67W9!TRBG=~TvAtD!_;DJo+ z(!2gO0sd-nr%NxfyoaVmr7kkz960Zz(XeY50%eW9(-r*tmN??xBrPLVzLuiSi24#V zjM;cFdv$a)1HkjuxC42B!9caOUPOm}CInu2Ny)ixc%Y^Tdtmy115>7UH3(Z{J)FM>N4Z!B0p?z@y*^0+
    8rDndWMyR^K6;eb=13aZ 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 a-sJvl!tf#nDzwWV$nQrCy81-K&Hn-A0rHvv diff --git a/doc/salome/gui/GEOM/pics/planes1.png b/doc/salome/gui/GEOM/pics/planes1.png deleted file mode 100755 index c9a594ceecea1035f0dd88e0d6a64cb9560db8f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4168 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 a3eQhw=HUw~gTX%p5Hk}i;~GP^g#QA_LOhWG diff --git a/doc/salome/gui/GEOM/pics/point1.png b/doc/salome/gui/GEOM/pics/point1.png deleted file mode 100755 index 39bca25f4e9874b254099f7d58eade9b2cb631ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12028 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 NML8AOqF2VB{||w*2`K;o diff --git a/doc/salome/gui/GEOM/pics/point3.png b/doc/salome/gui/GEOM/pics/point3.png deleted file mode 100755 index 0a2e325c64a4c0b6c2697790750ee6911bcb6ec7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14515 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 diff --git a/doc/salome/gui/GEOM/pics/points.png b/doc/salome/gui/GEOM/pics/points.png deleted file mode 100755 index 547b277fdcbee4a21cbbada934f25252b69ac7c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2941 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 HUc2{yp`&N$ diff --git a/doc/salome/gui/GEOM/pics/prismssn.png b/doc/salome/gui/GEOM/pics/prismssn.png deleted file mode 100755 index 80c9af357b12f8aff04b0bcb6b5a3691c53f39c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7628 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 Zgo(HL!CR_p;wvqQk)FA3gSLD8{{zpzu?heH diff --git a/doc/salome/gui/GEOM/pics/repair1.png b/doc/salome/gui/GEOM/pics/repair1.png deleted file mode 100755 index 2b47fa5a4c4776616a6828a84e3e6a67d4775010..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21190 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 diff --git a/doc/salome/gui/GEOM/pics/repair10.png b/doc/salome/gui/GEOM/pics/repair10.png deleted file mode 100755 index c3c77164afa8b0bedb00d95174811afe74d01255..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7422 zcma)>by$?a*Y_6@TzaLX1Xh&p?pOpw8l=0sOF}?cq(MNsK^g=JX^`$*y1Nt>35g}% z+u!@w`&{q!JkKAy*O{67ntSHVneTkg+!3nEa(LJj*dP!HPyWqobr1**2G|8)OyK{a z>lpzEMAa+*TI$`Kh@%xB|LDurhd*tJ?1a2Q)W|pm*n zWtsUw%pJ#Y0>m}B>te;pkb4;euID;_XF$R3`jFSg5dWM5i%e1iE^+%<_SRS=>$u@!UO#3q3Va2JSQctHknvi1MB-JN$rUuZl2^l zoAt8JWH=xl|A1zwrHr4p@M9T+_>$^?9}In)JHsrPb(}lF$bLvxL562_9*Lec`vHte zT-P|!Tw!CNMcfN3n#rMR`B>xiqwMPsfvx4E@u5Mf;<7CtwT zMV;A1vxvG@21(0kEaKpG!K4W%*~!^icW!O|+`OyM-J9{h-8;-e)nyf4PJKRR%2kLw zp8X4p-Fa12Rkc@7LLruB6H*9Sui%hO8$RLRUQe_U2-jwV=~9g+m0D5V8?<6#&x2&~ zC^wMKUrT2rSMn0vG@}rjZbz~o@#`qqw8~?mqwO2tU3{|l;~q=&!EB?>%4f9LnXlr| z?30EEP~f07v*u^!xGC~b6)SXZR)nC_js50%{P?k{=HXUxk+~+tm+N5?*mMB)1n=W6 z3MQL+Uv4FOZbfol``PG|lU=eHSzZb}{9^Q|g^^N?K$pJ`+%Xyac}A+Vqa;Zzx?b#t zY?VLq)a}tjxs}z3FDH8|sQivou?tVsC2{VwBxR~J8b^(#pBE$-c}_(*q{g(5Z2Dvht z&c^UxzkZ!N_e)KaL{n2rZGu-7jPIn_{RvOVV;>?L^08U!<7?g@?m{cFRel2n2UA^DfEqBFh*VF)-5?ZnJ_S57n!U?jyBExew-Bg)Y*)iX!UUy#@Er`^c^;GmOgE=py0KU z)T#dDo~_h$>bOyjaoL8v@Ck<l(0;-{C`GtB#AvoSV{ z`9zrJv{}@dI!ynjW7;VjEla08h2W%!;dNXj&KS*hCeKn1>5lJ^n{9M8AIlO6W9oi= z_o)*u;2M9GQL0#P$j+b_(AC{w;f{r!M{E#$Tz+K zc`g~-yCD{(ev|YhhI2BUScxI__D7bMoPg_)hsa#86-@t

    Xg6f4n8iy62$? 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 diff --git a/doc/salome/gui/GEOM/pics/repair2.png b/doc/salome/gui/GEOM/pics/repair2.png deleted file mode 100755 index 488a6a4c9c16326a68fb068082d1b4e9c753e1f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12670 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 q`e<Q diff --git a/doc/salome/gui/GEOM/pics/repair3.png b/doc/salome/gui/GEOM/pics/repair3.png deleted file mode 100755 index 4c2a41f9001a120b98cd681fde2c6257501de24b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15621 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 K@gmXB-~JbrWZ*3T diff --git a/doc/salome/gui/GEOM/pics/repair5.png b/doc/salome/gui/GEOM/pics/repair5.png deleted file mode 100755 index b99fbcbafc6656e7864fccb721a683232bf72854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14981 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 H$p8NUn$nX& diff --git a/doc/salome/gui/GEOM/pics/repair6.png b/doc/salome/gui/GEOM/pics/repair6.png deleted file mode 100755 index 5123d1f841286f649175afca327df4fb17c53742..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15032 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 z 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 PsSt5t8KD9}t#AJe*oU4M diff --git a/doc/salome/gui/GEOM/pics/repair7.png b/doc/salome/gui/GEOM/pics/repair7.png deleted file mode 100755 index 2b553b9fd6f429e9ddb86e9b8d152b78cba22f32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12358 zcmb7rbzGEPyY(PSN=QmOA|c%!iXZ|4(hVXh-CY8Tw1AYPLwA=nO2Ysm;Lz#N-7xTN zp7%ZRz2`aSeBU4Zelz#X?0esPU)Q?UTGuA@m69wT4kZo*0>P7eA*~95pb3FLQ7jB_ zMQ$VQ2L$o}A}9S+UHkpkjHkZ((N*`}L~HgeM@JcpG)?bjHV| z&y)3K)T*ZW6&k<9=X=KO=epJe7Ec}NTBUsX(qO8ZIX;NTCTA97oOWg6SK~%a1}bcEMsg~YN5-x zo(cS@yG z!nN97xrJDHQ63)-<2FSue{$t+^|;g7BJDSbJHotngd-z!3>khb;G^i7q^KDo55;Ik zkzg{fR(!2n`C7H|mAS!m#WPOrHLNl%OXTrXvcd7O1# zSDKfDo=JztQObsXw0F+#kdTso9bMx}e(B-qY0R^1{EPH8>;B@j45v-)eo#KVj|0vj z>qCKuahEYGra0AyghXAvR}e}m9ETQo3kU0vQ>u*j)vH%MXU<6GO2qEbkxbcynznXN zgEJC>WqB{4t}gk3FYTT8ECt9T5=0-TXj>U!vy!r*p#%j5d3k|VWWSqfB7OhM=kypd zDn0PW_0^gT%I%(OPJ7&@#F~eUvM$Q6Ox1eW_j3q&WyqtKmX?&$f8OOhqV|+Okl)dV z1|ylDyyB|He>J=jX=-L380y*2`#OCZ(S|`J{>{ zlx0!=WsE`F4w98+O1;PoUCT5P#(Z4mju5`nd4kWZReDF?_LAroHzi5w{`i9RIPtP~ z)G!%2_qp5Bhd}gH)Yjd`sQahfCD<}d6GTq^;?yd#!|fNuEkhKBqbQDGhahu5kx5MN z1zQ2IhvC#k@z!O{QEpq4#(b128l)N;PgREbwXp8m$c2-!pDu*ZaizTE+dIiJ=)VO| z?`LA|*0e+DAP_4FCA{Za-)tI*D9k0lYEe7DogG*TVVU}FS?VqB_cCFVB>Ql`7a;;V z)5Epwia}m)EXSy(G4%6R%{Ai%LQ?K_Oq$u??jYPhCRtH6BlneIU5Zc-GYOI zGYeS^F3L=HE`s#OcgRuL-m_E#o#Eudj{COfN?T$Lu(s_lHPEcnmipE#@o0dCIoLrtdGs;gnuKG;v7CjBAXbYc~ z)P0prrfEJWGDC%kO8JJdXL(5N_q*y|)<}3m6(jGwGEJ!W4jbcv2BfL#)DI)-B46Gt z(Z#kK5?I=T9fycc*-lsAata;}8-Hg$V9x8Gs?cpCKukg+?dSKdUj!p4szYjmR=q!g zUD$Pr~nl}P#h(j+U8v*a~$6-=2C0N!`@o2e}{CTH4#VPfxhHTJ>i$XE!C8Kx#GEz-lUE0p? z9s(hJ|1OR|N@P=$Pq8LzYev7Loi!IFH|18H`)$5DgFR>6%1s#Tp#=gzgDpCHPHhTJ zTeOwcKl}O}jQM_K7fwG$D#C0h^D#3CroNrw7(SF{8(VS!ucYdC^~IbiRcVnXMUHTs zU(9eV+H0%c;~mwt-xoT57k+mrC@3~PEQAE{blp1z8axx-)KA9-UwHWPHAzqgJWP@A z6Fj*$;{LSYh~b*7t;g8c)AV=HYUJ_vxwsI)pU_7!1hZch9TGzj?u>!XOm0N8rJe<5 z(MAsR-!Ejj7>*_L!^r9E6~3155{^&9R5wUq5-iL=jRjJ;DI!hHEsO^TJ2k1LTCZc? zx0ay<@Gp#u`ZOdAAk>weho!h$yGxA<3U(2xfFbuoA3r7k#?iG5o zR+x3pUac}2`r1;&U9}{N89-*)ON~3f&A?Y0&Pt8o-Q6MMC6}qAk{JV;*Wz`K%P(+j zC#%2O&$VdtDj8O!eTU_Fk8FIsb9wolOt%i(SXBap#ra)?FD&;&7`V%n$$1ZJpZAkbpiI_HJ4>1a>`q$6S{0t z8IxfYjC2347s;K7=NA>3WzkV{HUb0YoFvWf)GVCJPV0;+ZHmU$RgdY1Xr%JmB$4hi zXwL_P26_;Z`^N_cDk_gbo!#e&*Ae*Kg!v==HN!3VpZdZuuQeR&hT81lDh9Ja-wt)L zs!TV(qzNC7q|~WM0D7Dx^Rjj=eUs5~^)*G}KXBxK9rPx)miu0~xiJ|{`c1}e6`vt> z)zuVye0;PiulY;9QR>&SuB9paEsjx~I6(b{*2r;AkA8V}MbiyAmu=41nDtkXoyBTd zE?+ZpEYG`_D6n4~+9R6kHXV!KUx$=Mhss?4?(N-4xaW4#r;A{cs(;qE$L2L-ll`{J zJUcfhCNU+vu1*jV{qp+jz?PG<^T?V@wGFAXVM`>Pe{cOFvZT6l(44oh5T-UiLvHV2 zKJ-CGaQAmaP*U@Nsj0cTwm`jk;*v-p5d}p-x!0h|=Ob68W2xeo1pAyu($ES) z(Ji^MXg>$zJ$=nOuu?dmej0Mv08@gl7o{}TE{`F-mUc{D@3?#S_EtC@jcHBoD6_tY zt-c~T-Rq{qwn4<|**C{GOQtUD>|LBKtkUswOqsJjWMFtthK6>yI+8U|sW2+yuIP&| z1PyMaxGR!=wSgBw;U$h7%2=ARZ|yYY8L73^Lk`yCM-^p0?tQ#^h~vB66!$PC=8W}Z zcVXPbj=hnu#CamqeyVmWmF-#GmmLbIbWmO)OM!(mK>x>SQhFmzp3ZQTW0W&;NSH2| zlbIQmuzfJNFzhC)IW*?@N}x*1W;ceACQ@sJL(u4f;qeG7P7(_Dh-gr{z{r<>Qusx&Xs86 zqq4)H*2O1T4Nqi9)~2Cg&7W^d z?_4bP{16%pXiUMw#p4au!=B&nNnxpIJpzyZ#kF(8>Z*>vk9dnv>LaDK|AbZITl9cg zZjH;NXI8p}R4I>w3HdFsYxQHyjsr%uuAtt~;QTU|Cg4xRQv z2^^_}FtkRo{!O&JQPNi88YlZ4GO3T}tNUzK89}_v#|wV%|M3Nmw4kD{EJ84e41G}7 zLh|Ju^OU5Nutpr>2Y9HWo~fs)ie)xX=i)#qOJjB19?u^V*+_l-P-dDy`l=F>3EXsg zMaLX6ENm!4FU%Bd*#_q0-M0355tqOz<|!D)Al(c;BE8wpWFQ2U{;tW>ze!+MkO`B& zR>T@9H%KtUfKag%mN?m0lY{xK@3Zkj^u;P#lvp)1;_K%8QfjOx-tc@W*DZ0`7>`6a zn~zq%Rcn(-P*d#wN_DmCpj&PEbb7yj(z2Ei_O3y!|1LyXg8O56IoGjIV`5ny!?;(D z^+f4PoWH-+n>P=yuC9Ql;kMrv%YB*NK~*%DU*pwszRs$YmtI=451vI~@q<64+;s~1 zgWY?p587YEVy^$Pp?@i%d+)q&Lg!$J|McPlJ#%6sS=8RHU?Xv}S6G6HiHXHdivuO zqHb&l$U%#%%QLa-%Yz^6(OF=YrlzKZBf^1iM|1ZMv-6S#{b|L$4j(|F?@$*fRlA+< za}t^z7Ni9Hza@j=04=c|FE03XLMruZI`e6eRZgldwovADw(ZO}e%WYRhKCOW4V%4V zz9h(NYLcaixUo1>)%^Gfk&}}<+#Z_}E}7U+nEFv*F_d2HtlGG_92W{{A?) zxSne{iGBKWRy9tGKd_N59v(t_dwbOcw#vG?lv8!~oOLa$+#{Ql&EairPvEJ--&6MN zZxK>b_O%CLHk|!Q@jOX$=k`wNXY(G-RbyJ$*<0#f^R_UGLirSv9e*I~FqkHC z$jW+dqGo&dv>yV>-|q3T`7h$E)5QbMQf>G7Aan|$*AILzj$Pq;=Y6VgOicFn_dBd= zc+C1fJ8e)2J3Ug#%EGF>Jz8kSIvG;Sa#DMqc`^RS@nsW&AI_yyyhq^_59Zwg%+pAXb0=?YUY2NU9t^^z)- zzdt;5ng6Mw?wOWAC{^_rj{Jo#Y}lYAn9H?cL-`bLDPeupA##wy8jJ->-!kEL>i_-K zIx!og3AXkG`7*sx7jODEi~u0nj0KXoQwF8=sZ=HgiKRSV z1xZMk$kz*xi)Q$x<08m=1_w(v{$NAJ2C~HK`{!(5#n%}N<15gJSM7hk+s?aYf%Oop z3ZcLD4WwC|>@D~`o6yjl*7hP;=2VR}`IC5j#rK4f(NpLg=K2x5zvWxp(Vjf^)3f$O zpAqg*#DcOcRyYHmnPOrXQ<6Wu1<%Vs`kbGwkLi?@fC1z6(BUKAtQ2-(Fd=U{h=@#x zV$D5j5`A-Fi=RX44clv-A%*wS=&|r|a@RBzi}XJb!i@J;Wj@5V=Q7I|G=Hnihr|oD z3N-)l!YLO)iOp(xj*@@{tS)^z$EZq*8^-w}RZcR9e@fo&>onuT;Bn7t%)G+FDsrv( zSv_ea772?#X${W?Hnh6C1Pxh_%35AnT>)j#c9p~+SxY754qwsKa~vq&cY5*qhk7x* zJ@S1F$F0B!r}#f4-8 z4E$JMXw1GbAZ7SIXd|#>d)#I7Nwy|u!W1lWSX#3qv>EvF-rZmBfv2xr)C`v@M?Y&L8W~sENRDxr1&KMhhX~KxGRj8t--*fRHy31 zf=ZVZI<_%9di3kLXfPpcd`xJ5-HOBzl(NUdpq>o>{{-$|_iA9DXKN=rpPS3LxR@Er zxH@FgEYa22SV6b>UH(wNC z7S_n_FQNH2U7epB#q2y&`>P8JQ$<|EGUp#a0EI~AcP1+=RDJcTEs&gSI7fk8^Y3u_ zJ;QG)D_xd=ev5z=$9}XVUT=KoKXAu_2_hTgzF&`Ru6E2t+_wjc%9{HMHHx&a%Z_f} zzWpgJZE(wd8eaW&GX> z!4<8$)*dfts@jVof=|Doy4$Jrk-^TB+Su4QJ3E_@m*WGwUS0WrLGE&zr8iv_uiFDz zI|jcRwfafR$`aF(!Efe+sImyvqm@nMFzD&&c>r?`=ADPodT(+wzD#nlPAlt(UR_b?l9xY4y!7V$uf?M!kA(=t4+;MX`3+HqWtgx3 zGoqtNL(&QhH5(#nMBSuSNRTdo{OKH>vs_+YzH;d!-KYbl=+}^04dUsCPed?3hYew& zkd4yDD6nm?LY9Svg&*DBqY~BPZ{NPPnQNg5P)rf1upD_9@tnRpnl5iA%~$yNfExlT z6_ZkGzEd;9cf1E)FZmkXb{=wZed4u%@0wqx#IxiT3*bW6$)j(l!kACb&u_{{LQCc6 z-@mn+nwkL9c$v&|2NK@dfsUeUYYmkouj1tK?Q(%&NCjW<0x|q^bQJCPw=L(zgl0y;a~x>(|BBpyC4lF$9ENh-h(z%2 zU3W>6VPn#P0k4T)sL9zf-(~*>*a8*d(8=|s<=uGu7-wA zgA>EdH`k>EJ-e@fKSfaThdCqR!V?WXNe5q8*x0hcyBghGLYNCJcD*0!yuxwmd7@{L zW(jPF#`ivt2i6JdOoEI>dq683tRx!kZ`IB1qfX{-2p=pf%X+IZq1q4SRob{M0+`Ku zwhuIzHF|ng)aTUUdBpwpws+`h2kYykek(dn9^7>Pm)syY?rhq3>wa^2Td=_rw&)X= zxO4z=Dw)eT@Boz$9J?&NIyW3z9e`ZL6W_yWt+k!nA61rg+^U&ynlNzxTF3&V4d2_J*#oxn7;}J@ zgnsb8sG4U z8DBmS5J_>W#ZwV*@TShdFin2VoK% zyNm`~x=^|jlyXeFP1*i@Mhr{;M0>+pD9ze>EnB4c@FVvL$I?tXaG_#(D#t)QMF#yV ztNCvV5tXk(R0}ki@JJ>SU5VD4Na~jsKfaLXrW}@vQLpg-J8All;rrR`$5j7&wE_W| zraG!RGeQlOre8>)ot~_*K3ks4_>`2?lY4FVW}~(Qut8q4eG+$d&S1-ItLdO{3UamW z{rVNhrj~uz@k?hsAY34;M_zy6DSGSY4Bk#rLm+zwz6gU;KM4_C(;$qU{Vn3|c56qw}k)TwBUoe4jF z96H6LFmOAwy!=z5p;y7cQHdri2t!AukdTlnXQUEX z3`Ctjor0mED$*AG&d07HOhm+rPhhMop!IHBcQ>ZJz5R1>?l4Y?>%}lv%zwvSBVeDT$d1O%1oay~c~SP^-9@&oaJDA^A7Vn>MveCy?EYBW{8Zrz9@G`q7^< zp=BQNgMtmQUqsMpS$q|K4u1CdU)Ac^d?U&nvc`mP2A$LIHsnhy>cj++M241 z291uz9i(#O@s_;p#=4+p6{r+INcF(sx!33@&-H@5R5SmBK|z=8>Ewxo=B~e`M&-Bl z?(>@8mAu?VC+Eg*>ib$98hq7SGxW+cS-TJw|@pRfN&Lm@#4kn>nl`5I7N5h9o!^d zcYObrlc5|t!Lv1xW8&cwzURART1FMdsQ8d-0JNqDc`4YqxS+RDX+B7atXzn`i%fny zGz_gqFJt$P1Z3q#fpZvq`xF!N6sUt-#T1M-1NWKEX-{Vas2^&1N@i2FwxoV@>#^x6 zgo*Xy^M2=hOaK|9Vaz_j1(c4AS{x<_c_A+kb1$2PA02u%_q&;~EB`|*2l#%>=#Q_N zsW9pO7!h$h6DaDOTG#(fvzq&%_Mlj)kaP;qR9Pr%Hn-qNN=lNXEvmw8#qH2D-FIfi zxYt9SrZk9&?4;_QyxZ8d%L863aMeva;cC@2Q>MZF(&)v+Qcq7kZe%MvdnDM(MjNg1 z{o&zP__Sg@gMxDdjXO=@h^c{R1mfxoZh)I@PB+AfZr2AH%x$vNlz>j_n-Q4I{mAE0 zbdpMQq8Cn^ND~Oh0tTTt;}?TQ_j{lTmdtD6!F#2MtQ2oNAw;morir@$1Qk=>cdiiV zkwtm1sal4SO!3!bBS0VAp<1 zPseW?x6L4~+vN8ot0@JJ7o7bF*x(}1N^75KeEcAPt2D~DYJ;k7i~-6N%nH!JF*r3i zg>av(kgc00+9%1tX!;`tXRJIF37``fSA ze-#|IG`kl}^<3Nu&YxR97|PQ_FICQvI9waWEXSMxlI=&@Sh!a)s3fHZjj^ez`Z-%5 zoZw5*l1j$LP_O26*NyQThntMkaNrBSb?OEX77?R)%A+uua9z8G{Gs(u+lQD0w5DB$ z6iI{Tpp~Gr+i|P3^~wvmzr1W}KA8Hxu#kj=qZcLO}%rjAz;MCY@M2IA2i=!XDQ&qC`psw`NK-HI8#Y&<+5h0l@bAS2^1 z9qVQ@*PbmG_q*0M#o6<3f$VJNWID3la=smtF8kjNy$%Wo22pZe=wl zi=#g-HgMNaOVE?Ca`h*7eoj74%_FZ~dH{cxD>iF*&wQ zyPu0`+KI#LKG$Rby3qU0b>pT20WleIpF0p86TiOLd7K6Bwe#oBZ9ocd5e89|V`?Ty*kG>(PQgd~n*Ge`?oqWOrcQCl7G)7RL4LbAV1loNuCjmsU&zeM23SN4y(|&GNEpE465U#uuch~*RyVJR zl}mvuhfZbi+GyU=&Q5f6G(rDj!U%}Jn`sf>yZ01$+W>)qWzpw3`3B$=(53gw>1ORF zt3ze!d_NDS2#(g-8zGOuS*H0(>#|PJjn76!%2?@I6+n?|4(J3J`n{a~-|+-@GZe2M zyEjKmT;)%%@S4LNk|l4H!G@F1wx6@R1Zq<)(H5l7IS;t;33z&Lt6$7OHTU%P8iR<} zDy}l^B|?6+@$+lxj~@lMb-viDYpm#uoLGTs(RJXh%MmDHK{PZBavR-u;K11Io5{7E zs`a@#L*{UJFT5wWDzSyViTYH;xqz|%D2Nb7HkRiA_zyJrLoc+D5Z1T++z86@AnQy( zA8%zx>6Vhm%V+f}>U=g%`2UN?`5$z>NYn1nmO0uM3rd+tiK+k0)ASkE$SJUYmK~{p z#l?WU>BaoLhsxg)MhPHX0H_>7jvJosllZ)3dX@F00~>0kW-BiC%KBMCKgt1gGM>ZR z|6i=vzos=d8QBtVj9pt_B{C?lsBq*$9BfHAP3ZtBEd16eKX{+dk}xzhbfuJ-nq)I~ z+;RxG?;rJOwYEhn{fo+YF6wF<#OI&TZWLNq`fns`&VBf9f}FSew!nB+h2xI{Erc(T zQykO$X7bnE%?nN?99yagaK40uhxN7)!Mw!$KC-YdUdVr3kD=8^fAIG&-hLJr($EMs zq8XZTpBY4gqqjIa_+t ze7BcdB0$Ph(_?LY0ne3>E;DHq3x zcH7iK{a;yK-~6kM3h?G zsk-9~as$$ln3x)O`aND{ZMH|!ihlvUxS06(J5NA!3RI6b zhpP(6PdA`U|2*O~AgbwBxoW|+YN@FnNBoxBu?kiKj1gIU{N?K z-Udy!%?tP}9JCGrL3#AQHz&1T<+0- z(&R7qerY)uJ@+KlP$7YJN#EmVEc~?+g~o8?C4PN%(mI2vRvoKzK-aE#(@A;&Y=_0m zro;H096PP?OCWy1nJ|#YCT#&|NrQhT-&&%ZaotZ6wr1qD7-Vy8Seje)7eFDy%zzJV zw)wk4Yv6iyDcY(o2JZ>jW{vD>?+7vBFgxFAt(BROF~AvF2HictVF3@{m5oP_7(X`} zn!K95ioch}S_Yz*MRo29ZLHf@BhB}4u++ZK;0p8w_Q9WKo!l4j8J>W8TgVGa^N3=3bl-QICX$P`r=jEaQv-LcPLe7JB$?`S}6)B?CRpHqF zJCNo@t2OR0^J$cBZP)XgE8_uitk0yd++!WJ{@aT6uZQZusgd(Hhe<9PsQoVJF`2j9(^@};<9L{PduJlR3|qoF1|9J^cttau$(_(F zl^ol24sg(VIP>9YKtZXvvk==wtz8B_v`Bv^R>%;X-(5&#mlFf}r@s_5umzF*0byn7 zA}>IHbv>={gPzV1j0Kzzw<`2}gfq-oEIiV@ED!j~0>b5o^nQ#KM`|vAKrGn1m)cDzRQLuop zTltAA%GjMcIr(S#VPT0Cr)_+7r!0kaa?yoP44-qz;%6iBR9=yIe=Q8m!nu%kjAyX! z>m4jAcTTZQ?BzGLm`fQC34+*CdLzB_hQCmp1+TDCo2`Xve+S= zjDFcb@`;1o1b0Dwy+GtFR_bF{uVuYUT=z=D(!e9x=LY95#w#YkuR~OwL?I99=?&~3 k-jn)>(RI%ba!sJFU+?S3HA4>mKL8>pqaAebbUoaxGO1h-Go1@Zj=s0wD z{`R?d<}-6=?%es!ABY_G`@Z|#`+3&0)_OJ}e<@1g-=nw(fk5zOq@l_X2!;Uo`g8{y zeDd8@#25m30+E5fQu*MwHSGacSYGJbLrglxa^|dOkxU|!}bZEYR|K2a9=SD?y11bAMHDjKr zBGd+XcM}$J`waV5R7xa41k$$l^&pu;YvE0>h5$m)K2`3(h9ygxX{tT%1p;NPenV95 z>yv=KVc3r!&m9jliuExCuWCcnpis|nyi05IQws9aM~UNjjEX}+Rznf;+`fmKLINDr zc&R0Ws50%;w-K}Gc zsE0U@PUqUY62A;2elZY`Rw!;ellPIG6wHgMot}stx-Lf{7B^5Ea_cqnCr-EF!KW7q zJh}0b4b4uMUJgQHYvgOjrp8ezDd7XAZL_m!zP^x4uc5tilZAeQxuqHieDJ&fk3Z{; zUv-L3_YaOb#%2)_!w2M#9wj97@<(b8&XRqkH2agO%O}RC_kz3p^lC|_EJbmBv@kRx zf>1+411tF@FkCi6xIw4$Q^Lpe(GJOd76TfOY+ zac382^OldW%@Ag~@cd6XbC^~H?0ceeZpZnLOGKqBhngdG;#o0!#7?;5wUr~BGH5YY zWd4N9$<;ebw0qz^5xAAa$G5w;M}O2$u9zmMP;NT#VW$4JpP%2j6<=9dxm{+~UK^pf z!|5&&J8mN!`{?5bgM>>LzUaj!GW9B-fKmL1-Ry0g4udl(qG_=C8H|iM?U!;*N)Tdk zJ%91x(zpD-g63)&?^-$$G}ZcKzFSexymSw<#_>Gks}Y-!n)!BC!SC4o`1OX+&fd{k zU0>a-MCLsnyt3cSPkn{_8Z%SnmOV8o)OBGb>FMdGXJ-aU4B6%%4fN}VzsW@ReHi{h zROh%8a1XY;e9kNPUg4iMak4q2Y#;6;@n`!yzOD#J$tq(uU6mxpykRVvuzDMHSIo)wfSYw3c#*#_e-pV}gb*zr;6_#O+o zf0E;9h{;y4dMujSQA!Nk$r;dd{qW&A7}~|7AatnL5}%K=oY=I}eKLN1Oa&Kq{n92y zFjQjD_Id*wIbpK0{_PACF4uSW2^Q86Cs%*HXm#;Wk)uzgN#Op7t9bcYGXI)ghdK`~ zuguvNk5-k}K-Fwo%LguOt!dNCCCfGrZb+AHcsF0UY?b{@T}l8C^|X>t|JEtvniKPJ(Qc#}4r@&7%6EFe`bxzQI!*?B6wr zPcO#aX;Vtgz+%x0@Op^B?-n-p{!|Y!`1auOV|htQ(^QzJm$k9U^42RImkE={qV6%= zIf!2+Z;6xiwvGG7%w$!nh7!Xg2IiFf7bnWTi$mVNnZbI(#um| zH^|OCrg}@y_uvcb$w<(`j+1RaIYqSbM!&0`kK~5e&3q8|mVm0Q(9eNHdMbhVyT-2- z3ljrW)qVuW;Y$m7$C;Um4pO$O-5ZeFQ7ZhJDwbRlX{w$u-nN-wQ6 z8E8834b7|IGs9oK)2+s%-yQ$uf5Um)Xeo{8XJ|$Q#m^u+{L&lDg2%?Z<*F22 zyw8_;5NxxFIbPP9yiZqB#Yx}0?55FUoOaQl9Bhxd3}&0uZpfYP-X~(Cyst8rR#W_J zf0~dHw-9Hpt@_pB`4!tt$c3d}B@!l=EHXu}Oth)6{^0(jmuhN!etym%NHepth*o#n z0^>dAomOro8$1FLCL^5I>1#iAdUY~uFO*_zoc)et^+A&Eiqp+Dnd-^e0SY7frv6W8 zvXqqrPO?F>@Ijr!Qa90y7cV{+PE~}NuhdfBQg6;O!7v>($T#-oeQ$wmBTr)Bcq@i{`!VUyL{@2I9-KDQH3dGJW|A z?iL04m6T)x12KdAH}k2+<|ot?#%9|rl<#Xiu|;h+Tl&ePt9K$fPTyp3LQ>Nx!pWU@ zJ*uvfX-}@gyEi23ruYp$n5Bk$R5h2`79fm`4`ah9`3XFdo9?>|Ty2|>it{JgMw}Ck z)I3uX;fteeLd{#Q@;6JcRWDM>yvL~7UASo4}wRBGxgO-+g}rBqjrjSW;#n%>|RRXB%p?aekU zPgq!ZN~fyN12<#!;+H98#;q2sDdiNujdSU$4GTV>Z86C5TZ>47;JO^65E;b;8XO6$DCn&ceb+ot4!<&7$l5*dwS;!1VHW zgS^4A`Ik-1Bb=%x9AB5M$x@4n!cRY&f)>T7K8!I$T}{Q=N$hAqJTJDYer}`?Kko85 z4O>Z(tlhX%F=jMU#&}PM^hsvhSCNgI!y%=+TjzJA%8I}1Oz}NFH6%|z&g~d|r>*sI zYIf0HSVESCdrDGY|H-wtH$X1gq&B~U*LSFH*kawC9c>o71+93`+MZ!R;I0XevO_?* zy2ijThW9+*6;7<%9{R%b=P^N9IlC!>irCeVyV<8CgA3RAIr^MB-i>3OIZ8<`yU@SaP}~$%a5$vx zJfd2lQx^y8W8A%poOil-r$un_GwY49(aDQh8o{knWaL{rsp{V2ttlx~zUJP>vw3Zz znc$rWc&Gge*@@E-4;QAt=;%?~?;#2H4fAPH_roWGoKg9c+MN+iOZ|FL?w>6~bF3dS zh3b9D87kADx8kEDCnpzdD8Qw43TcWC17OxXHipv%5pRMUwbaIspN_0O<>Z94b;W0N zJ-+SD;W(BO7Z;ba?Qy+_&xfV!Q;UVoX}nGyD0aqnb8UtrFAoYlCgvq>A*I7CR#dcp z4d&olZQf_t-aX4mF(ge(&_&m>=U&ra2^w5Jzt5+CeZJ8+Ai_A(d@w3Vit{y2HK_8~ zDb>v$m!n_jWnNqSRS<`+3~ZsJkh+iCv0^PpZ?ME^O*u6J!Q`>qf)k?k^Al?Zb^I{C z;bpY#+)dC|kv?NnA+P}BNVa}&ZyT<@m1&wcfq3axG`8Qo{jo(}T;X4?W5@qUZJmtr z@qqSP-XL%6l|U}j(3`7CR9^yHnORR5STb%x&-Xs`r-eV5=a?bD~9I9zEK%Ts!8d*6tTOqZF+$qzj>&}}(aN7NAH za3{wsGHJV(%{UuVFy}0ly&ar3e$JqC(s$@Fl=R-U)vVuy`KJ1@&>)>b>5#5xsw6w!G zP1tH?Y8n+6*IC?j-5W_S^+UawdQ8Wa>geNo`HDEs`x*oBFNYt4zAEO(?1vnDs`~IU zc~sCj=dsfK>E5ETiHX4@Y&0_!_es_Bxr$BmJ`efk{>o`%v~avuG&jCN4nsZmp^Y-} zr8h$gNV{~H-Tg>|cq3a2oVor)Zh^-HprqIdJO`%1bB~14 zo8vNkPS82cWo)`Y;~hvovq3m58ykL5TMH;rdwYAdtgK;{MK#zodOiy`9$%~ZT}d=t zy^qRV*6yo9MQ|;3(}Zo!+rA~!SO4_>R)@kC4Eh?c?QoYbIh-aU)pR-Vs^DzrmAAM~ z86>a2RtK!&yXKH?i8GqE{gZ?Fbr$vvRK>xJOr1A!g^k=@Q6l% z{+2WcU6@J|m${$$5NZ54ar8LTI!*?Q9?2|HqTDb0W*UQn0($f)=O#Kj-uKt6 zb#4SjcoDCIgH;&M$~RkS^X${#<$NWMOk#136SSxLJ{g9~!82x%7d)(8Q@&}~eD-`C z{g@P!#HH<)klC=HjW08|PPF9Ubob7k-S=wbo3t+8GUvB5 z;5x{K$@k-xq0)QcBSp9XMsueE4bjP;(A#<%x|$tFRtuz^7$s&1>Lh;K!5?ok9&ww7 z3C}$sCQcNAy#U!jG|4>Nplz@WDSWN9ce)sX#d+1UCZEQYqLyAbzS~5ZaDJ+SiG^h^ z@VFn&8~ue!xR&4h&ytMiZWGO~N^33B`syc2DRnMe`_-EZ9ibQreAX07;#WUCyghr2mlz~epzKRjU2*d;plDg z$Ei7#^Uv2#haYvaO&N>*YzcX+M#dh^`*O~Iz*q5)z96@-f^FD676coBA@I&G%myDrRtA&%hP!f`e}K2D_&221*J68v)7A+*Hm7<1CCc<;MDOhb3f*px`>X%h@Ga% zLkf!ZErwueu7`Fehi8?DhUr^GOo5n+P*yoKlw|o56ZI)KhXk82%|YAC9@^0vYM>#9 z6<8AQe%zIl#Yhd2D9All(!qHyjj~U%}RorcVqmF_8 zXYcy_#NJr&^!WWJ5BI9whm$%JMV|PikrW*)7^r)dpFZ7+7?LA)>YEj8DVd@eV)GsHouu?FG(+tZ;!hIhp`s&&VqQsxTVXCI=YwZQf1UeE=V4zoGo`LaZ6BoNFV3_3 zNVBM{xq0XG@-OIMdVWSLpByxgsd$DV%ELIfEbPV6^!CpFA@cJ^x+Ag?jKZRES1EMfu@?qwVQApV1Q< z?Dnn(t0+%blZj4QQwZn(8k}XmZE_N`!Mn%0IW7i?)wNMEtHuBtb+pa$tyjQFawMYeX0ri3|r;9DD?_ioo;S05> zterF`uNd|nNQRzf(IaahBCC5I$IZ=MtR3T0%dU*f%zOYP> z3|R^C4pnw^!$($VNrbcp?w%0nOzO&QI&9xZ51;`aMz43Op^Jg;VmcfEys~ z7V+g1Uv!Axv>DN?L`R6z7C1iw(e-0L%BX(eP&+9JJ4$-)S>_ zn9!tAZb~gqHfl=N@LD$0{l_0iJ9c#)XA&^Mzk_jKJV%b|dzPr^=!tq5H-wVUO8notLnKIFklBq4^sUfA3J)EaU5EMCG%~cwTnvl zLZy!k(cX53R0M;F2z*Pp(Rj0s3#N!9V+8me0LObsWX~j51b7Twz#h{#JXwrxJB!RY zqd53|{6B*6Kf~-|k)Ang_o<*@SCykT7!@z(UfN#X&&78NX8z|uuS#tP!qswCBNlrBZc`MX>^yVLq`NOiTq$tjV< zh)obi)XP>?49FIlgZC}?KE7^||?1NAvM#|i}aVSOp1|IVX+HlLaRvox%=+Vs>SQB-wwz*RW>-oiM(sPZ6f8^>f zw(C64*K(|88&j0T&OTLGj+K4*{oOELK~9e4=$zVZ&W|pqSi2@Fzo_=})x}ACtql>& zu59zP*U5A};2^Nq9lW1r*Lm|bYAl{{u)A>~UYtz3((Dv?1vy)e?RB?Hy|1%jyLKc)1y2gZt4!cCyXF`9`tXSdk9IY3)yd zQP&sy)nBxDZF9TxZ6M?l*mY`4^jk1j5NS$aJmiO7li0z^fKkiG+uQC^VUJ!#P>WXY z_p(gXI_KBb1F{xS#LdMO39kB8Zl+`d)*VgYK3hmcmd5a-fc8>$p#_H~Q?JPz30`-*Ed5PTnPJC0uq%Bt4Ibn#jPK}q z9gzUZX|&iG4y018(^{((jn^mhq|2jXACvRLHK?TIN^YG(GT$X2q}w~LGcd*mkCPQ( z>X|KdN5b6U0fmmIyYu~N;%SsN)qW%_Y9(G5F4SI!Z?okSTah)6xYI>to47SH30GvixkQP> z0LSD~i0+AIMDMx7T(h4@29id=&KE6Nn`Z6W@F9oW)5%yk1WV>p1{=r*5B}*|XDt2h zue4b+Vv&=*mQ^7j{g=rbCc!q(-dwwqa%gT+w-yT&(O!PXk>Yk}m;T5>$o|elyMZwt z7+m&q%^31S;N9q1^-_o8zLP%|v1xTC+cs)sTR+UT&a20X_mFNC z-l>fi-svST^}#Tsbvt4K$fg6D&;!K3Xb8-T%rC;*!oNI;duIQQVeg9I)k>>R}u z!-+Bz*yLa1Lh)cOps6Ac_B~gts;Djp7*0LGMD*`#oy=>h^x8jLY)wJ6wX5u24ywwG z#r6RC8_1?r>88CBtFCMBGwAgmbbLU-py9uxh@}cNgve?JZKi7@6B6EktIt%I!qqAc z9$AwKw3t)!IVT1I!#-4|=ec(~(BR>zV;7aHiXDrDMXKhke?Gy!p4Id4BAvRtAO__- zM`*HXVbZ*2-AGsQrceZ0*z4LF8hkR`OAQYmCitHi=zoA7^OEE&a>tpND3`sL%FcaL z2AY@efCH!Yco4ZRi~3)w?0?+oZ;V%!!VY(l^iREpqq4H{y_7C$Lk?A#If*(VPc@&} zSd?zTOO@0v+kAg;(zW_z#zUjY#!I!Z(wD~PytI35(Wp!PtsFG7EcU|SB7uubLNP+? z5l(Zes0Zk931&!!8}=t~;Zcg=`L?%18I)4x8@{=Js=VjSq5d9b1Mrt#GEDzudm1j} z{27H3Q9=!-OjKBsy`xE!1s*9ukbh#i>7P;~DTro3B^{ICUBJI(q8ayEZoFSkRa$H8 zE?|;&vfa`@j~+@CGjb29RDv=~d3t)*=&ih^-SKBxkCiFHF4AZS^w@3;QZp!ooL*n- zm`~U864NAh|76Vh4e&hPUfVZR`hwLqi^-~~4bP%C70BuK_`^C1R?u(al(8_%Te z>AG^015yV0gyw98W2#sQQ34@CkLy1`Rv|h91w1$ zr}D?t#H7?^OEZpLXPsRxSV%6g&s{0=1ty8>l?22w+BM`+Xda*?*I4pSny!arudICzuOx z)MI!pNAG)?{k-r1N|os0L+HXFG}U8U5OjXpKVsvq+L_>-hy=u<$Y^K~00^WN6if!; zf{^|c{`lMor7Qp*AP<3D(^{wu3<%(|Ux2#m&?!5r$~3cS{`~QBB8XDl$>;hsI$}Bv z_*&+WqO&1h>b`?yeji=GGH~_Yb>NBUU|I}324!}Q(5kfAs|I->!h0?``|HI36{1_ zf1?77CCv$tnTOf>r5``LZP=J7H^U-lNLiI@{!SUFwYff1m~x(YEI~8R-!@O*e=`n& zkoKX^0>u6r3T^B;xC#j>+E)g_pXn5=i8m(j;2uw8k`#tI=J9L08^qg&Ix3s^eLs3J@G zeRYWRz+3C0?+gqKFJSw|>$gYff2#hd^91Q4pURW??c0;0>VP-r1$rsgqMqM2*HWD=objy<_5CaS@+ExJ-3Znc(mVhMrgfTa1S?nCY^KY!z=VWh>$+hmG4c(|Rcn3)+w8VKs4N~dVIG{5F;?ZSu9HV(K zMHsgq>^pSf=GlHLlB~DFJ0Lmu$Sn(JtV!=iWENG=8H7sp_#zX{Q2MO}Q%HNFMbvt` zzD6GAbnj?mEC*2aaVx<@5!-7KLn9+#RH6HoV6f`@3-p8kTEDopBi--q8 zDUR&U?1`@4>!j3Z@)l*&tb}|6iBzD~RMa|^V@F*2#ln%Kf|GyRi5S#8}d`ham~jivQ*`SWMHdgQ%69h@N4EOE z7lnVB4*v!6c}-Oc0a(KtEuC12m=r4r1=LHPJ$>p1FZxCt*{ZVP8%j>RNWeG5b0E)+ zhvj>E>J}C8OdU1_G9jM`HMbAU0@kTSoy{_U;8zz%IeN3+PCGLxfETGq60=N$!U0|_ zk|Jjk8=ij>Cyc~vvpYdTtOD_K)}B5U$n372@wgG4ncWow{*t_pgS!cDjdFMd)ei7# zh6P5>@AFn6TTCAXcIoQ81uUhD#wXLHFAfq$Bc58fT^ov~mw?}SUmdAa!E_xGAQHBf52R*l)UnRjs!2BKk0zh*Vx$Gz5}Ki zpa~r2<;Kdz#YG)Iaoyqay(q#EbUc3AOjGzq(o2?Yg(`bZ>oM{eab|eByIT z4kr;25vyJ!9Mp4ZMMYDfEV5F&O!F&qR3-AXEAR#4t;{NgyB!>p1|N+5ZqoCCpw+}7 z`Ox$-nm>p8G_|mK+3r;XR*9`l#0QkpZYlJ&^LeIXe9{Da7PaH zD45896UNA)*4EYp0ei#9gJ5ah5g~LA*Z8yfe5>gV-Dr6Bj1k7_DwOgRV7GoV1o+va zgWR^)^_V8_(h`zT7hyT358tcHtT1gJ)E;e!RGRdSvTY**2HuTVejZi>cbhZxU2Y=D ztmi)gVH6Wj)+F!wy1r`-oX=U#(}UIn0D{X&h!=8N3_q6)r%+uzL{xd{rf(2O=H+nz z`4=|ke*uDjgq8eG5vyXqG>Ocg0M5+k%!rusEvW1$PBoyt8Io}SgVAP0jnrb^of;h5 zqSac7%x@NycB$CjgT>kSmjx}!5_xJB_|>0R%;!+RPsc*%sIJ@m?T9|`Q^ab^Z@fk$ zPT(6D@60r8n}eJMJGY2d!uCd87--wx=B$qmO8CVTu(@f`3Zy@O9l!=5{*#)-Qo@MB z-7S(x%?D`BuCS#*?sV~_^UJ_p;<0ALSI5;yR8(8`6XW)!{qClu`C|p9$ByM8RAk9! z?!e-aabxrw$ydkP?fxW%_Alxi&aKap$S%=YkTnpPzNQ<;&l-I zgo}UEtg;yZB5HM}L0H&zo3&DbP8pVG-CX15IA`|UozqkaZED9z<^0v;?F9;Snpq}n zY;K_FRi;FygX)Iw!ErO91HW_Ad~PM2#>N;>MWowec!6G1Dk+;*HL6F{&CvksWvFyV z?kEP%4CQG}flcii11NnpH$fNX);$%>_-rS%FT?1R z*DN}$>FAV&|97+dUq;Elw9X4CxL3o5wYiM$(Y)8Ps60JAy+?CDkB(_BQ?|WJeRDT# z!3)6Sz6Z_wt{)9 zW!k=r>gm&`)lD=aZubG_qH9wqSVX1ytOQcpd;>=5;p%Vywje^X1k}Y&Q;tDfpwsFv zKLRSD-Qjmiu=FfL64gon(BR7!@P*AzgjkjTE`|f-v zA&UohCLSZN1XbQXhtP=P6TKUp~(;EjXmSxi2+I@93YH}^E=CwGGwq0@$1rF zESu(L47}3~2=J+)K*CjD?)PD=juukN>FU1z>#zHP1JBC{Kt)LdOjIsn!=t+C;`CHS zu`LUUM%t`+-Fq)VtvUnl32y(;kGJ$_+2`cM!_jc~0DNwQNEKC`9@gyn%zv&1Yv#2W z4&Dv6GnG$k*{Yh|W~UJ}d^*)QE*Z_BAmFn3sF>YnWN{x@nXtiW&}l01Jaf~F)?wQQG}>ktir?3jhdQ6>@VGx`69ua zmz(sFo*!>*uu}>-J#P!bNA39B2#1ofW&ho(Of{?VtHL*)^YtsxsvFed`#Z4=p?*Bj zO+T6_Vi)C@cO6n*u7s0ukE?|-L0>7qbaIkaDsm$|izm+9MHX4Yg97c8GHvGeq29u}71IW&lXmPt)a&ZkMcILrt1{R`Os^FP`2PYuuK;vw-=baA+9cgK zS~jQZOwC8_$|n>2->idDI?MEz;Q!DG`!C=?;*e3SN^@{OGN}-WVKyQq0=nNUuFY#) zkBM@N(5d}Tdu{*Lw3GPx2KqDtpoGJ0)>~Ts^L1STqFiZ`qurMQ4Q1LVZ6VUm8IJ#| zE%zUjVcwLSjVcKm&v$T+i;aOVp}FK8;B7#%ⅅW*^GXDdj){tp`enqois^Br#m{h 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 VRsHHH;O#Y#qMWL1ne_WF{{~305JCU| diff --git a/doc/salome/gui/GEOM/pics/revolution.png b/doc/salome/gui/GEOM/pics/revolution.png deleted file mode 100755 index c02c859b1bf80dc0eead7039ff9111d4bec9e9c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14251 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 diff --git a/doc/salome/gui/GEOM/pics/revolutionsn.png b/doc/salome/gui/GEOM/pics/revolutionsn.png deleted file mode 100755 index 7242c671010b19fa8710a515516872ca3a62e614..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8811 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 nmx&OdN%lX$VrAW!q5=1 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 diff --git a/doc/salome/gui/GEOM/pics/solidsn.png b/doc/salome/gui/GEOM/pics/solidsn.png deleted file mode 100755 index 297fc068c290b8c0c74e137a8dc76be4b349f000..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4965 zcmb7IXH*l+(ncTq4^roQnCMYCI z@dc#{A%HaLkrJha4ma<;zx@7vd(Q5hIlDVM^X$y-oQX5kN3gT;u`w_(uEq>jb}t5ob5c55>ZXC&YdNYe7j<}Irv(K_p8@Emhc_fm&ieJBtfC2oB1Dk-VVSUM5~OhR&rrOB)~xaYnwcB)Js6BG?L?5 zDRr6Na*s`vFC|Vva2jEr+7%@uRZ|DUE7DZr?rE+LiSQdor?{92Tpw8SAtHflHP%SlC{0OQYj91&a$B0C8{r-v!Bz`%DuIFQ!!&S1O=Jz!GQzwrp&FUEGg| zQkU)lfMO}}@CbAhpI_@oI^Vr<&}koub72k;FMD;g%pHF*yI(InB@y5-YX zOpk@&1t*nsh&&n}f1}#?y8YRL-`1@Zba=yJj#}^ZTajI;ml*QCg98b+>X@QY4{3uBSgGjp>HV>i^ISD1q}o=HvOW;o8o~5J;P}8p?BT zSC>w(wG>K@WRHJv>M7voP<;=;MDuDsgeAK^t1i_SP;ZwinQz?bluwny zKf!vTKdGV;tmveRe_Y$yit-Kkc?#6x0HhLzXvV&V%J^|X(4@aRtpMfWcwsvnKpVYaw-8QPtoNvd?@PmO-Wg$p79{bb8UL7UXL8?}4+=^SJTR`Ey zFZ_fV6eR4rT{2hDjwn-Y3SZP{4Dfc{uX`laD9e*upY;;P$`}hO60)k30E&)64%E?i zM{QQF9%WVJj4xoR`YXkg*~!5ctqw04)i77*u`>_Cg?J31x#2r<70+W$=XrvJS8zQD zWi%+^POBFB?$hXG2cZ8qB)mL!d=}fLEm{hQ1OvuUr4VgLKG3NCg|ZlU&E6}H&8)Gk zBvVk!*}|XC(;=wh;k;aS0Y1X^Y5IKaOijvTEqkLBgc8pl@|r|t#ZSrb>2s&;g>N6w zE)k>4IpoM7z+<8F0YrrnDHwP|gHgpVS((H~ZgmP4?q*yddbK{@65<${8xg4fS)5qa zHq^rsTrlq0J0*`5$*X^VAb3vJ&`hhtJl9|D8)(cVP;R*tmTka~36QG58*v5JWSX%@ zjSNyb-pmz5@q^beNs!v4E(}R0(OQc86?94|ou3=!iJ-gbj3o#&km1;X|D1M8Grcmok4ID!4a3cWU5#THKGH@gp=(PtM zL#uf%+S6a^q2341uf*!>OZQd;#8-n7QxNJzxE)HfU6uBaw+Uguqj4gKjG33%Xz?TD z|ImJ)yqy$;cHx|;vtw zE3VaHMgz}J$&NraZb*qV)}WsE$?j}Lk9Xp3g-xcq z$6k?vOSQ89Y0HPTag;aK|`RHZ;6*$_5z6xX9D;@UtcZ1{{haGK6x4~cw} z0@P~>Ov0fwD;}&Md9%5Vew{p925gSvDdlmBA{!UE8)AY#yg_#jM_dBSz8=xl6Rzo^ ze$HYK`TDzvYzP@ykLz(}{iZbWW8{L7%q1HwKd&|W0(m7b4b3ap*! zQ;*F_hr5c-i86TvpMZ-Gp9#6MpK>TLue>MaH(t@5T0{j|kU@(zOYDkolY1nw8U{gk z(7+5no{q!38+fOhx3WIzx;;s86%9X3?x1;H+3tLSvwvZiuhWLa5M<_3AX>X?L0w*l=xaPlUG zHDu>U(BPj;S<{Zt;0+lrbp*Z#l=rD#H4JrMlb8dp>H2b6i5FR#~q-6P#Z!h3Yq z(7b144U}NUb!fwSSDLlhS^TOn8j`Tl)^Vu8!<|Q{mgQM~Jtcm91xKk^dtTkhsm#!H zQ9(C^2hblQ5F$hOi`iq;kJ{=gX!yygm0^+Y-%zH{Wi2Ba&qq-G&MHN&?!&@4{magVh7)|6TdES&NJBh5gzx?uiwJ&xeT+>2w*s(m zV{>hNW!)$WpHD)z0Sc1DubZ$|T0lyXtRXW2Ic7909NTD4Iq`S4qP%0Wf@Zr1derMn zpAo;SwA|v6xMCj8w@~zoX8$|z@ZFHI6B}O|>avm@luyjHOtYoF8x%HqR5A;Jabq*D>ZQRl)Ab}p?hu6 zH6R13_Os~omVrsv-YEt4r*P8Y_0>84RK^j5cNnMkDe7k?21lt?mG$7IGJM;@P$xrm z&^07RSvmZ8BQ;cfn*0S?T}A`74xAH)9k8V?iW_cGO3W z1r?Mxzo4?js9A#pML?6OsIBlZTE%gC@9#mM(BZF&LOgbzIqA;$*GSy8(o{xtpqK2U z?Gj0!rkmTkfRKZ(5H6r;gSAa2g0~{V5bD&94)_`8mPtLAERLn$%Xh%Gv5d4SW$&!J zt23&1N@a_lc`!sgu^HJe0*Wt$udDb-i7+z6d=8eNV8fi8HC8eO%&RmD@Ymyn#}G-O z&|4zgM)Evz2h><(*o(8T-c?|4h&+B^Qz3AMGwRAs><;l*eBUM%Tn?!fwQdwa1sPZB zU!pCKMc;StB2PxdUPDTLX{iqIRtTG{;Uq}rIkngzDdUU5P}#;t&XRKJ2SeNZGoC0* zSh|lo5PSdeM1WSY*YD`w&AQ|kr)dutWfKfEs4lgLf^$)>!$2K-VPKg3{rzVoopqI3 zPUfy%v!ybnR+h+^q4k9)vW@7J{(HzML0JdE86xE|yhT#y#!W*@q)lA$sT#PDAq8m71e|VJNmz{BeDwrElm395wwS!S* zennD=&4!J0;3dXYb(Z*@q(F~@uDMUUd!+&A!^Gw5dSK>9!5!s6(Q$iNsj&f{qSQ0G z%OFett|E|~rD>oJ+mk-CpXr-B95!{BG;3il3A&CCr*%fa@A~qY9WQ(A@aYsKKsMwc zM)x4@a! zFNZ=Ysz!gJx^9I}yHZ0omfgG$v5s|b&!LO@Pm_gQRTlapwhj_E?_(2DY z+m7X#?up5Ba3k6oG%tu>?YMaBo=5^W+opzhPD11a++;06rsN@Q*d32?Z##dpCfLsY z?#16lLhkvi9z5@2Y>uJ~^8?ENgto3rWaPk{M(b954HJZD68lX4gXEZi&Pt}%G=i*w?GS(B zvT;{4u;uGBFD%*4$$b8#*7;U^dby@vd#ji0CUA&obG#^Yr&OjJe!KCW>bXBf#&Wwe zeUSW(Ow*P=pFyjZfEW1mx8*#)I9kT4OUQioQV$^XCvD+=xf&DCq0VKbjOrRjHJecj zz_;A(K1IcobqB3-5Cw?t)o&_3^J=U|cK6+Z1)hLH&*)JQ3-tX?QJ>X7y49F_(j$cVkCN@T z_}@w_c2`e-yfVd8%w_OG!YMgArl0+SwF;?3;^*{F8|S`E+jK;zzYe|5^Cnka zoqX3!I>D8FOo{U3y6WRh&XP?NaVwjq?5z&LbuyZ?lp-SWRHVQAtqpkXB|f*8<0e)* z*Q{T<1KEVW2^Q6=5FXl`{;BhWWVkjPh0uY;Y!tul1v|jXtZp>{Pl8AMvnjRD;8dGGr$&$ zR5x27ZFsFf@UH80rNyQY$GhX4tP=Jz9Uss67*+bD8T@Z{Rf4yh+lm{IZQLRGz*( z=Ph3M045FA=@uIb9&%iSu~f!&=JfdL5ezl_xEm+kbgi=4_U~XOtXVx{AkXfquN3DK zWl&5~`T}7xVTr1zM0__}3`Jh(Q5VRNf5=U6*&ay1t(}}Qs{TDPL`=ldH(WRLnFveW z#4a);qUlR&dvSHQwqAj^+!*LiF~-3v`UGug57yyA0fpfSha)s+8dk?F50 b)G=rE>^^0wa?pZaK4Z|iqpww|VH^1$JzRXO diff --git a/doc/salome/gui/GEOM/pics/sphere1.png b/doc/salome/gui/GEOM/pics/sphere1.png deleted file mode 100755 index 377f1c9ce8c2015df0ff8aca64f65bc068e21565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12869 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 Oh`fx7bg|T%5C0GCWL|;* diff --git a/doc/salome/gui/GEOM/pics/sphere2.png b/doc/salome/gui/GEOM/pics/sphere2.png deleted file mode 100755 index dd2cadb1ffa8b281b721db56507fd76c3379f587..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12115 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 n>K{1ZtF-g}|9k*~z diff --git a/doc/salome/gui/GEOM/pics/supp_int_wires2.png b/doc/salome/gui/GEOM/pics/supp_int_wires2.png deleted file mode 100755 index e6dc3142a5bd3c3d6857c79294504d8cd6484672..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8364 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 YDRS36-Ab;L&JqCCG-l)SuIriP2(y)!J0b@F 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 diff --git a/doc/salome/gui/GEOM/pics/suppress_faces2.png b/doc/salome/gui/GEOM/pics/suppress_faces2.png deleted file mode 100755 index d38a4add3194ae907c5bb08e5d88487cfaa7e7d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6653 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 VH`e=*ajgR|x^Jpqd+)!P{|ETJi0%LY diff --git a/doc/salome/gui/GEOM/pics/torus1.png b/doc/salome/gui/GEOM/pics/torus1.png deleted file mode 100755 index 28e18afa036cde6babcf0fe70205b125fd199ebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13801 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 diff --git a/doc/salome/gui/GEOM/pics/toruses.png b/doc/salome/gui/GEOM/pics/toruses.png deleted file mode 100755 index 721bae271b8b6001c7c7f991568398e27d20b5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22148 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 Fe*n=d77qXb diff --git a/doc/salome/gui/GEOM/pics/transformation10.png b/doc/salome/gui/GEOM/pics/transformation10.png deleted file mode 100755 index 0847a5e0359ddb890c6133b9d1124806e3e6ab3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13674 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 diff --git a/doc/salome/gui/GEOM/pics/transformation11.png b/doc/salome/gui/GEOM/pics/transformation11.png deleted file mode 100755 index b78acec2e4416a5ab1d6fda302d517ee5dad59aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12912 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 diff --git a/doc/salome/gui/GEOM/pics/transformation3.png b/doc/salome/gui/GEOM/pics/transformation3.png deleted file mode 100755 index 96a1f1e36c8336df1c6c975b3e18fab731022984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14406 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 diff --git a/doc/salome/gui/GEOM/pics/transformation4.png b/doc/salome/gui/GEOM/pics/transformation4.png deleted file mode 100755 index 323c3d0ae1722a8526914e105011bb6621b2bfa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17189 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 Jh0hG%{(l#?!chPK diff --git a/doc/salome/gui/GEOM/pics/transformation5.png b/doc/salome/gui/GEOM/pics/transformation5.png deleted file mode 100755 index 8d1cf925423b5c265e48f51d23a949b2404c5642..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14553 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 diff --git a/doc/salome/gui/GEOM/pics/transformation6.png b/doc/salome/gui/GEOM/pics/transformation6.png deleted file mode 100755 index 3e3828bd8f4a43b77b55553a8f840ea9611a5257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15455 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 AdH?_b diff --git a/doc/salome/gui/GEOM/pics/transformation7.png b/doc/salome/gui/GEOM/pics/transformation7.png deleted file mode 100755 index 03a16fe0156568f616a7d57674498aca4dd35bca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13562 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 diff --git a/doc/salome/gui/GEOM/pics/transformation8.png b/doc/salome/gui/GEOM/pics/transformation8.png deleted file mode 100755 index 77d0303855232f3b1845ddfb9e427f31c6193be5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13701 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 R{=EuGUPf8EP}0c%{{Z8_AIty% diff --git a/doc/salome/gui/GEOM/pics/transformation9.png b/doc/salome/gui/GEOM/pics/transformation9.png deleted file mode 100755 index c7f6194d3b0eee40b39a155608837ebf405b113f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13736 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 bgOr(cw0Avrljb!5gRWh@VN!M3{n38`Lc6^1 diff --git a/doc/salome/gui/GEOM/pics/transparencysn.png b/doc/salome/gui/GEOM/pics/transparencysn.png deleted file mode 100755 index 0b3638ed1e9a3a6664624c71f83e6a53bacb8fe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28364 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 P>Il@8b>70?*hKvw;{dS5 diff --git a/doc/salome/gui/GEOM/pics/vector1.png b/doc/salome/gui/GEOM/pics/vector1.png deleted file mode 100755 index 46e3b20f3fd00fc38ebaed0e22040c5167796e2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11853 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 GuYUlioe`7( diff --git a/doc/salome/gui/GEOM/pics/wiresn.png b/doc/salome/gui/GEOM/pics/wiresn.png deleted file mode 100755 index 623ae3b58549209c469c7ff0cb55784163010f27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1956 zcmb_d`!^d17Pjp)@u=!F)T3!t6eSf)si3VdsG9Kd@9ibAm zgOHHaD-numLfNx zEVP`yebC>s6eibpTO5Md+6{51i+?ZZ;>|wqP(b(XFKB%BE%r_!wq|hl zOMr^yAM_rTJPnqM&i{(ZHpv0o*3K}nL@_4)$~dwJ+zGih0BGA;c-eakwU`zz3eZOr z-lc|H_o>00ziJvvM)tCQwAx`^|96~KtL_wji9c=}qY%_|p-36Qq49C`gaPrk?3=Xv zOS%`Zv}R3c-yY^Rm)o0q(yZwOcd3YwjeU&mci8j-ws!_$z2b*ODc{TXb0cN7)ErI* zhy9Ela(?UMx+o=a4QlAEUx8U|Rcuum@;YVTJ=ea<8=HgO5b*^eeScbvr$I)(L zi1TNfrb4KEk+S~+o-DjZu8yeduwXTNeFm3;3aBajj9qD|m^}N|Gqx*9y@JRQ0u)S~ zOTN`m*%*J%i)kG*17^9P2l>oUOwDA`z4HQizve_u$4!>?{JX3rwJgDQ7IA|=Lt&fS z2b#jal4Hw9q?H)VKpG})5;BoVl=1l*ECFt`2zoeV%L%}UF;^e47QFbCzlm5k(me%d zP;_0=U0u*w+;{x)1?xAZaHXoCtKCMrW^m>Yn3-4OMaJ-Ybsg{kTz2U|R!dAAIz5AO zm(`5U&piqrvgkpp9ir?53wnb;2TwMZv0gT&2bb_)Sj1uC(1cz9 zkdO(O-mSao>P`kae!<>qFwk~@Yb#y1?7Zx3_zNFHNzz-K#+w&g3BHu&yXr;VZ@?o~2$M99b;n@#%0&{11g*>vUIsMWiFl+xO`^q`^>kj$J zN6`(W*@vHnE#DR`K*|MhR1RbB+z3PQ=x%g%nev=$T)ah(YkMAqnJ6;6UL0mY?Ix+h z3S@P!>?Ap7{G7f=jSh7mTN+>%1xseE8OW%n+g|XeneO=0b@;^+>l z`aC0_=e`o`7XhMv;#}Y?FINS=!-`pWbXPRz;JK*H;zQZEAe-?L(dC+nBl(7R*gk{j zQ3h;W49Jv-`V0srC1xVmz=XAsLE0O#Ns6;!!P~!nFLJuC0iDEdW?1@Zj(&NcM9nj! zBQ_3}(&I<{Ka*f?Kqx)GS(DM|f-w$ntVUTzpB41aayfoT1ERo2E;I z>9SB;J)#Nyag8LvO6C+O57f_vYNcq$aa_3pFp6pUw(vf9+SY-9@gy4`&p=hRp5@}% zVu@I`mB1SzwQ4PVdbn`agL+_rHMq69JojHmOTVp83kgL*P*|Xd^xJ5HE3fl)a+*2B zdE-gfg{SR~rPBQQd(h+p8Nc{KU8mw=OZ&AwB TlY5@>`>J?e_D0YyMWp`+xxLIn diff --git a/doc/salome/gui/GEOM/pics/workplane4.png b/doc/salome/gui/GEOM/pics/workplane4.png deleted file mode 100755 index 00835eb544ac6999ea0f50241433508bc814d587..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13415 zcmb8WbzD@@`Yt|*g3>4@DXkzaohky7BHazr-Khu+ARr|T(%sz%NQdMwz%bI?-FI=$ zxu4%X-}AfQd+#6f8Q8OD?{}~DuIGK8=Uo&0L0%FYgA@Y-fndLv68{K+pnL}}!iQ+! z$WVJ_E(G!n@?QM4vUW=R%r`5^`i4b*S?IUSwi{SN%1XXBbh z=wGCTeXVJNUT*{tJ-Gjw2-A%k@7|XQKUH&;hhOsih}ga*quirgnnfU~`dRsTlLk#I zA0baSC!*?8-B%KvTP_C%hDdbM68)9VE@EB8#l@NI?WP6;4{bvaBleD&w<8992p#Pn zPPTt($WMSm@6(y_2wnf#-5$a#_oEdGMDSy3m0)Yx=prURii_V1=OP1#LXSgl3`P02 zOgo?A`#-M;`k;^9;j&|_ zNbzI42hHqF)76oVy2DWNypzp5{3%v9fzBg*{C)mPc$jL>PurQbl`vUe1{Ua)W5tWl3yjN&tVo57q?I= zgUctGy1&9?c{a6mwxIh#T};scU$u}hx>wxJj-8sC`o0#%Lry}2%0N3I-up>|*PmM^ z`$Uqkhuj`ksF&SGe_($hOO1x+vek!+AE`-T_4%YY^wZct2;4Y5FE9Q{cZ5+j{L^e5 zhiPTP!h&Hql_-wbrfTscOw8=&dcO=qL3H`}^6A+)M1whpX>`JuFK^^i2f9paVRcq! zJbaZje9s?-8jvg{zYyS!3yKqaBYXa;VhPXuS`eAYpkMuTNsCNL_W9&&+Nbfnrw=4# z-fVThU}xQ{vwtT}%7prf3Wq|IEPn8HvWRm?bgsO^d;sxi`Qp2;fq{mc3D0YYqSNBK zPm#B6H`k(LHQs`nuPpoC1*RDBza!^YRDu5zVIg}ShaG6ZSCR@MxYy`taelv^Z|!ZH z{P*8K-^T}crJGLkipa;Q*5BvekxR>SyK1BeZfZ!{_rrW00-$1{i?WbH)O_jw& z2wUq_)StiliM*E5xi#;|g>`$@xp-<#(uR8NwQ64EC3Kqz#`HYweh^!Uve1BL*lj~X zax%(Tj?q!%N6|R=^Y0pIgRWbm2(gZM=m|{U+?B%pyq;XREYS$*J22v{5iiRSZoHG_ ze%M9+ik13QmU@E2T-(-VOQhY`mAuW6r(9oxoQ>r+neBv<{^fYPOfSbQ7fZ@Q--V_b zi|>g&J?jV}+$AHG-6akifiJuSiJ;hA4GU$c_aam#-m3(hm&2l z@Z-S|rcF)6g|_Q*fLBc9`tbqH$GK7g?hNaG_M#d?dDFBkqwa8Rr;&F@PtS8^mTx$= zKl%(^C1A4F`Qcd08dJVl`Jmb|Qz7WQA>JKMQ9iSML|&6@&HO}W(05U1^L(p#WNBrk z;&%1A$_idFT7ja*GbQ81{t{B}9*)}d`7@%-XiDZ(tfi-M`nWbf?}^~aRcCjj>Yqb3 z!Md{Ol+14VgEWN}{ZrRmcGkqN`TGG^pE&T93Ete4tEzARPOU2L4;Pj+?~Cv{{7qy- zA`oH(H~SRR8n$~%xpF~fqkr0xS>)zJz&lq?9u2={`NW(`)(3rWDHC?NoixRgb**3jH%jO@3m_L6$gi{RDym}RLvOS}uuC8oB8Twn? z-hQ2}+j^#ko{KA5iBVysLWNAArm}oFREaXyx>AE93F`vU6vEOUgo4NIBMfnOcds%Z z3mh1bl}{7UF^BsxlWozLL}@{WmWUfmO31q4l^U@YgD*54+s5OB^}NJk&9@7eO2R!h zJQNLrE6*Vgp?)-WF`CL6280(!q5eWXYQ8s76@IC4v%R4*H@~fE4c$C$-a2jb1xAQo zN4>Vsbi0UrO+Wzhg7a`RB*p78b8!iADf3w4c8L5r`OHU6jtyms*y2`+L z*11`fkknR~-&mica9{MsA)bYNdrY^yQHh)}^9&cQ1noDJrus1ALw-@Zbde_y3J|?i4{I^^TVcXbf>H}zw zdYA1Z9WOG=dL%B(u8*4MZ`mKzE`^KcR(Ow*`<(tsvWeS;S2B(<=;+vZ)P`y~-0pfP zefUJr)*7EnY-_aE#tQjHH64ttN4S48E52jB&$e@mh>fjrg>U0W9?(p`VxW8Vb-|E1 zJ>38-y@P{;huA!o2EX*JcqHve0zXff((lSrc2J#teZnZOUkQKylIf?$n1s_OOIpU# zyuOOzWPa4Ca~QLKaI0f9GanY}O#c_b=NyCD&+@)`S_`)|A)RY)cWiLciy! zM3$qFvS|8;g+>PJB&l*YEGIc?d&i8o##g&GMmIUisakcBFd||3qo1GYx^7dBS|b=N zW;d5N%te!`>fPTBc-XVJB!yj7ZvQFK5o8d(!lJTri{;rCI9TMpT`s@9l*)BB=I;^loCwY<9tFjaY z7ZWb0H94nGGfIVl*c!v4xa_oLh6VsehttnTc%y+KCIbCs=^kelmWUsQIxzhau) z{#$ySb$PpV7#MQdla-#QHXfZfIDWK9U-7tb7B|PbcvUQjEHq9nlvr#ITJAMybA^O$u^Oe@O zYaD02A2+wATAs4ynsOPP+(*-%Or#IhU6>wGVM8{$+N!dwY1w$d!Xpk&M044qkE69;Nujm{Rn7f23f&^E^~hf|tLZd_!2syK_NwY@$?_ z`}IbbYe8J>PxUK1b}4T|)Xc6hAeC@!6FA|cMJqo70s&P+(IlqSBT+PGc>i@P9NPRm zjprA9i4rMh6TK;{KFW0qxA)6x73wOq^~TD<6B*#^$yk3fRliB*Q0Y4#G!T8XJ(186 zMsu!W%-nK$PIsQ`L*4qPe153p@7G69+^jZ`XNPZH+1XgAqUo!~J+@o~B|dq=_HbL1 zvvy609iP99+R+(C_-wtbEz(0CS>zk6dNHe&82=p{-bcjkj?K4+&pIq_X6MA|?7E7k z8LMBZcwKJuYP-z`U{MOiH${uaY3(lAdrw_Xm`%O4$*!~JV*hfsGsf?AdgyNxhpaTi z4Gzxim%H7MQ_^-Zzu%qYVzTy=m4HBZ-~zXmtyb9cbjNvS&ZIWC;^Z-Z+OU0? z&JGW?+%Dj&FL)A1^6ZsvURgi=CD;CfNeR6XF*I#0cfJ~}SmbTXD!P2kT3eEl;YeI` zb9F_Onsj~7EQD--`^L+P=MwJDG*{EtHJm1z#^1YdOdL+n+z6%OQn0(dK0Vy2oqXJ% zs9qZlx zVs0TX@F~z_GxMgp{ywtox!M)|G|3UTtw&|r*_`HJwQEVTqQ6x`qj_AHl3_@uv+x5_ zcQeRVwLcRix+K;mSk;haU%yTtSHIJT)3i67Qlu&1ujL~c@>xw5rQ>JbfDS%=9800h z>|-A(-n^@p!kD+alZ82d1`NKp2Sa0}#dDTM4vGDk%WrnvKH8$`1to);ZZ#C zpCA(N>rX3Z@J`d~FOdqm%GMR3twXu=I>ko|OXwacy?s5B&~cyJ;%%W!_k?q`cos^T zrgf2*EmfS(bfD#h(@)>qo2?rU-pkY7T#ZW8SLUPl8xit~iujBQsY_GkMz1U48Dw*IRN$5K`!lKNNDKUdTtt@*BLv|OQ~uq+TVT~raNy=I<1ce z7#5~fC$%mHWY6%&ICojYn^~bb21E^&b@va ze>gl`__8qz=Uj&H84Zndx=i=VEa%e4$BT{juMaN;e+laYC=}|J{r2XgtjaJ0 z4b8{Yd%z%Q`nbb0M>Tq@PJE1q9|?i+yV&O&VEV!NoleX)&~YgDjAF&b>HfU?DjCy{ zA?X({>`VB(ZG;a#mS0ui3LDV>z$#Hqg{V5tRsKD9voEirA$_%s;`l>EhY`;?mMmU5=TtF}ruykwvU|wI*{) zjSWJ;wosG05-#iEApoGldLc51YX17@)Vl!(KT-^gmMp|oL23!E5y9ahE?Znwg^a!K z>FI&|O|orC2Q}`M&1ifyqryjZ^`6_CQ&ErOjR#_;rVNiBJ?a$iW*0KxOGrp4aiD3G z;I!U&wXnEwz7(yXy{M2P@Vf_}7G7tcY1tChKaeV%M9qt3Aa;vV@(gme-%S-95y~jS znhKWN$o1%sicNppXH(E*u;dxXV%Ry!w4D? zY6dIOQJH)#p2b?^b4aM#dX8~A$BmZvH@0Si+kMoyc5HPhNv82+yG;G%)j>a-v9a-= z)4mpR0XOKkZ&-=kmJ+8sh({P0_ny6Y5nOK6#d$JW-gGm)Nyo@o>9qb40#;^y)9Lbn zn_*z#70?xSGuE~HZK$|-WMo=4*Q$lFz({X}Nk4u_#Ifr1g{295@@!AnqUsOt2n$`TWoBh(t7rr*EgA15xZx@)DsI6m zgV1k}o{=FDYxb8RP&cEA0u^#0r!onXaXztR!u)TQU(`+-qrO=`HMZ*iyVJP4@;BWd z{Q1+oGUsR$Im~@KIb2hr|LYz^f4w+`m=v3&B3^tE!WZfRChEnihDJu^L|Wz(1%$(cJ|(k4 zV0vW}Uj+l3!JsA{emhpL8`3CXb?%0Fd9v+@y}GjWg9)ZH1LCIT;22?CKBE)!V~Q@) zYxS|}pXy2#_N=SA%ocZo>d$`(0Koc{!>G%x3J0X4loZr*iXH1hcO-5wiC2yE8AEjM zM58^c(nt7w-=x+-mC`%#tRgE-d_g|f7eF$IMSuY;@Ecu&^f$R(%@z0&=#(`_iRk%Qf4w1w{?}nRW5vxWY!__{Zkx5TWBE zCGtUmzRF>tO_h{6_f-nWWT{?6Gg@u>^3oC>B_&Q<$TG7KE3*JYqDlXc`oI)dw_xaf zfz}67AbI$GuK2u5*EUIEnUc7PJl1^=h_(Nc#zjT7hrm?vo=|jvx9?F=3pLu&y`9PY zj%OaHuz@tuR!!$b4kI*7U0pFRZ6Q7HbHXrE?t(dq*zYmPoq3U&bs{$&I8^-F1-VN@ zMH-boQ$K$FjsGQn%@9JI>icU`0924@d_qE#G(LNp$jC^q8fUUoByR#LItt~68j=$OUY!l7^emBAn1pu5ru^gM6bmj*C)3@rN;^RjKzC!^>sH^A)fK!bC z6qp6Ve_;Io=5V$ynv}TP*BJx9J&dmRe-Dh)q^~otr^_b#A^9O(LIgC}p(kb?S=XAr z6Pu9yt(k#el?qQp)WdQyWc2f_(l%sXU*}v;vrnvd5cId~dhRsUQ?j`J{fk1=PAh%g zXe_6i?;e#tTNg6RQBmD}99wYikoLoA?=MPw2klYz&+t#J((g9t#FDAHCJNQm_z=;! zxrhGhif+)`bB{D>{Xag0u2+=Lq8a5}yh-|7PA1Mv_BNWkblG|)$ed(f8|IiCa?fFC=}(qov^4B`FB3OT zz?yJQAo&kNIyWNgQ1{(sRZ+o7esrV%w?nb0traJegXZRV?~}u4+?m%*sd>>#>Z(Z- z$Mekj05EX0TnLcuSiKL666!uWgonDZTJ2h89e!!kh z8?~b_-ax#Ex2eut5;C>S|9*cLv3Ko23NP%~;N>N?Q+VkHSs0fP1ZJK$aGju%8iip? zu`_KL5VSk)l&0$ZJ%3AHFt;rER2%)N4(uRhdakth^u&RTa=P?$sk{T?JRQ@PN_YOO zAV%oybRCB7XPstiG_yK0%c?fvw66;S(HQ!(M+dI|S^`$>)epOzcuJc375(Qm>EDei zqqRc4vX+WH!kvao*4jhaG?A3Xofa8U`2v%G^(;Yb+|u0ruN4KegTAmmZHP)0)TF1)~pW@REZ@;_ytdHe-zA9~}wc{_f3PO$d`2R0HDQP^gsf$3=)n zwM8u31~m=Mv1}M>ry5(pWBkaAcQDXT>14hmockgFV22qHAQVcU|96K)+=+fL3b<~_ z!g@;7LyPaDqaPk|DU1QH1Tc__-A3=50*SWCT;r5vB35lFKok%!6d z#LKJWGumlN>Q_iplaJ{bqJu$My;^4TO|Pqq&&Z&W_(uNgj+L!WheFxTSi}ZQxz^X$ zAy(5>!IG3dUr)!7r?3sw3K7un0bYnf$~`%FgDQitaLW1NN~PCt2hCcWun7y3-ywvc zk^&G_%8@ky&~>zfAS;~cJ4O2L22F=bS>Gi*Dmsqw?alRaR|FMr>e}m(J5wT(R-(dn zR~J^*Qxf^VP^N60DgfQzzX=m7 z!cv!+f2e8be*F0OQOA=rV96=i*sv0XW@}nU#l&<@aTq=I+*H@~-FA+Oj@D>!GLLmG z9@s%Nt~1XU6k8=14jpPu_XzfE1svEk>xr81qFkfLB<9@RlnTX} z%vN3=XMTPjQl#E;uMx2`;xNK7@=~j2fV;_YRUU?fb?fb(UbrSMY(v0)K|DtxX{g+&8zQM-3$HLKvE-ts($X}~pF{ut z)lc=kIVY_SgN{?&SrsDSQD|ss&#g9jc3N#Y@APS%UvD(S<&vSS_1Rfw1iaad7tE8Z zj@mnMI(;|C+3<%E&zPAp{f^|45-vwWKTn|US6h}g{s6C*bp6sNCR z{(SfDwu&S-h%Hgx;DH|?m3Dw_JqU!3GlNs`@hKHcfD(S(16b438BU(LbYKl3WeUk*Lo^eQCVq@Y!QZlE;xXr`W%!0A^<}a z*6WgXfo7x&m!<=e0C5T0=TM-S9UL5>VPOxXPfa4OUKq?q`AMHkz&1^%q5S4M0#afLy@4Ce+L4dHmp%lS?1f-_t&28Iy z%>${guP<>8e|T=3Cos;pV0~(@w~y$m)rRKO8>@-w*s2%I}Vi6|70)% z0VDMPd7-fu=ImWZJ#i$mcy-m@`8bS7jJGt8?9F|1HMCWa5y#agtljDVa~BaoSr9EFeEU= zES+_#b$p%)rq$|nrfrz`#SfZ}j*Y>uewkAGUfEN6ZgI30!7Pg5`PJ`AUmhsRk)|fr z6hqJSnz6n|m7EW98{Z_alMeOu8D7=xm(2B+=rlsy4tg2SyG3v26Kzi%E8WkR;}EQ< z;kK1yIr6k10tJ!tuh}wjoO=zQ?@TVMwKAqS*O0I|a5 zoDHnFGr){4u)tH)0~vp^i`1L<`VS|oR{3eA*|2F3_FD_(h`zp_fdM*d>d%1G1u|kW za&c9TJJ8SYR9Mon4Y^0A^WrQQps4NNcdMp9k?}jUZZ*|&ZL}V9*UByEw+s;%mr0J~3?0qQ{AuV~ zi+;6ca9G&#c&`$Q>hW2#N3p_K@S=qoQgHyujWnEy|| zD>Z~|W4`2DahkQsuP+Y>C(Es7NCSWMMAD+vZB_J_!L4Rv?4m8t_U1b%t)ro5lFe9n ztK4{gt!(Flj(Umx3-qBV;G`lj3uR?x4*dwHF*#t5rP4}9up4$hgt@u)gM@zb=8bj- zrk+MmZkkVDfl8s_dByJVq-Dva;Gr@l%jNCco7f~{K@ph zO`Gh{dAbv0JyWs#_3KxCo}|KNIhqBk;~Rp>uYwG~>7#DB*kFca7-eYGSS46q0PNQB zWyDf==4{Qh2`e?5lIzf3M6f8S0$cYE&y{lJmp4mWN+u5&q8}v{Z)n97Dy3Cb131sg z8TA#r#aIQ%O)Vru?nl_K=H|rg?7XR%030?xwQlZw;7FEEn<#hAfE-2UpQ7BegCSh& zZ6Z@Zb^zi)Le3SRhZNs$KV++0X*?R0=^gCN1~Ub=({ypqAvjI0&HK{sP68$Sy|i?} zbFchhmk}8sKksM7E8}dB3e^BByr*{CU-+U z>Z1Rv75DM@4dtFol6a@!Rsw|$VyKU(u=W}aYymzN`MvNrE+dyBf znum5tFZ;S8g9;Q-25?Um;Y_I1qg2XTnUH_ycsGq`6&4drzQxkw;#Y09C>e8Kck@rF zX`J(4Yu^=vTc!U?!|Xp1_rI#>5ha&*;zJ7DIC#P)YT`>*S(g8e3l~d@47hW{^~T?V zz&-&_nY$%)l2Mdy-1apfX1IFSXETf__b!B?(4KRN|2HXqwiWa>6|l&?)eX`jz!b-w z3Bf(cog$2m^k-jFr_(`*QmtIUOwv4`W!5K!Jw4 zGeVWn{S@IE{4hcva4V4)Y~QB^@tO{Y1ZVB8u{*oE?oj{g{PyPCpegFOYKyX>mP>0@ zBdkBwcBr4S=W@4sIOAQY+h%bs;C!pav9{%Q^KW>pr%c&r=e;?EVv^FaqN6^jydnc7`=D_x~$B!RFgToEn+U)>Y z)*1T&8WwGvXpez~U6$Sf>G@~P1SJrUig*~*&8teq44T} zcOCDHB?)_;#E`l!bUx||BkRuUjV9qVhKd%dOaD9;yE!iP<@ogH8Eezt8%?0ZH$<6$ z9YPPDZ-sOuXwKR=v%J0UmCzhfciZ-c|iEdt^pw635N^hl%7ZBn()Aj zcCfEV-bCS6V^F@XG;fet6_XexN z3ZRyN(8dJQ@rxY`l<7c&y|eLd4y+Ew%{u3;Vxhe@)MO#|C}2f+soHptfUbqh_Vhbs z3-_iwtCtCNn$N|HLe=7hV_x0WFy1+^L#rIL4cpt>y_9DH<+hjS+}*L4Kr_bl;%FW8 z;_um!6XeRJbRkY>bu3zPQ++}*H6-0n63jL;5?Mb#ri9!T70`FOYXD7JYr${MU055| zXhbfzxL`u&mSYepIl1gxznknIuDpZ!N~`j~#jA81F|?^){xJ>z4&nJ60w({ zf4-8Wv$)fIs=KhTAU$ZtnGnxqhU0s+NR=S!D{?yLS=w5NabFde4or76g8~z`4d{{q z4YOQOSki9AQwelL=kG296132`mo9^=Hkul=lHtZ6_XI$<&2r{(-onCSPyevdZ1E!4 zE3KrgE)H0hX=VLv(~B1`?wV);n8c%5=1+h!Sxr32ec`(R3el7m4_Nb%f3PQ^tB1BN z`wR~rJaF2cj#axoFF@85x9nFn7aYQEq=sfJpJhr$n1Z2=l}DbYEH>r-HZ%Y`^?V9c zes44sOM7@u%q({y_PYh8u^H*<>v7agRCosAbMiBsHTIiRT9zNiE?5BJ1S|m~H`b~! zoI)__#}CzcFT(A@f2k!erCzk3TdO$wyS$z{zKxcp75xpDv%JcyCb(HlvCaJDC3E*l zq^y^BilbUA(tvGQWexk0-Vu0_)pU_nQ0uZ`9n+FoQ&N9egT5gD)7$P|esO_CQb@~) zJ7;kguE^C-O=kY`nJh7tuZkKD%JM< zDJ5i|7x_AG0;lb2H5zPA*!pE%_MrOLc%3(5{O+d@(!G0jB1@yQbmX2N$hKZv`&9~m zPs2??6O2y^8dp>S=F*24Y}{4u??sF51SYHXE0qvq%03iSQVnb84=VWhj|d0@f*jA* z_Jth6SH2+ZN&D~Z^+%Fpp=!oEtCfQK-lyXRF*aGXzbeb@Kr!=0cUW?xl&m=D5s6i6 z5y!_j-%~nzE zP|Q&2N`I30wbR)8JOY&aIF@mKo}Be%MZ>|pqvub6Bvo~8&!hq7e&pc?=k^YF>`wR7 z*l1w$F9|6j_VTtg)FqUaW3I*4wn^FoB8lx_)eTR8K_xx2XU*=}%EEB@i4`(`E<-^) z^44G0@AZ5F&E&RaM~MR0ukcM>Jz}%n-*#7NpD7wCE~;*LUnt0)4y%G@Lzs|=vw&a) znjwjPH)P8se3w3X@Lq>56jAo%vC~PX$_>1+to_U26!vqzgyC929DzU%b}Y$s7t~cI za#S-l4F@^1gF{PO%Xi|Px$SR~Z4b-R260fa)ROg+v2hx&t<2Ip_ve0gvW>ibJ7Biz zBq!W$gPz$5jiQhH9#^OYMDKCHV%@HCM($rym67sRr>8&sJ8T%duJ3&jlyi}-6kMrj ze6wIx5VIA?XWIF^y#3xWXm)Ib{n0;!&)T_g|8zPIX=y?WqCNfca@D4t#Z%jr;xOf@-Hw9% zu4g2;H&2PTGra^Xccl*FkzQ-Xkz5OyEP8Tsm?$y-!9X5-w=Mw}|}10u-#ck<#T IZ}h+X4{&_Xl>h($ diff --git a/doc/salome/gui/GEOM/pics/workplane5.png b/doc/salome/gui/GEOM/pics/workplane5.png deleted file mode 100755 index 925ac573bedab021996d5e69304e6d40b705bc4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14474 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 diff --git a/doc/salome/gui/GEOM/pics/workplane6.png b/doc/salome/gui/GEOM/pics/workplane6.png deleted file mode 100755 index 1f65862f8df11fc6a29e1b92754e5f3003587dde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14331 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
      -
      Copyright © 2003-2007 CEA, EDF
      +
      Copyright © 2003-2009 CEA, EDF
      diff --git a/doc/salome/gui/GEOM/whdata/whftdata.js b/doc/salome/gui/GEOM/whdata/whftdata.js deleted file mode 100755 index addf26223..000000000 --- a/doc/salome/gui/GEOM/whdata/whftdata.js +++ /dev/null @@ -1,25 +0,0 @@ -// 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/GEOM/whdata/whftdata0.htm b/doc/salome/gui/GEOM/whdata/whftdata0.htm deleted file mode 100755 index acfb3af6b..000000000 --- a/doc/salome/gui/GEOM/whdata/whftdata0.htm +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whdata/whfts.htm b/doc/salome/gui/GEOM/whdata/whfts.htm deleted file mode 100755 index 292e30479..000000000 --- a/doc/salome/gui/GEOM/whdata/whfts.htm +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whdata/whfts.js b/doc/salome/gui/GEOM/whdata/whfts.js deleted file mode 100755 index 54246f693..000000000 --- a/doc/salome/gui/GEOM/whdata/whfts.js +++ /dev/null @@ -1,40 +0,0 @@ -// 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/GEOM/whdata/whfwdata.js b/doc/salome/gui/GEOM/whdata/whfwdata.js deleted file mode 100755 index 8340b59d5..000000000 --- a/doc/salome/gui/GEOM/whdata/whfwdata.js +++ /dev/null @@ -1,37 +0,0 @@ -// 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/GEOM/whdata/whfwdata0.htm b/doc/salome/gui/GEOM/whdata/whfwdata0.htm deleted file mode 100755 index 290ddb8d8..000000000 --- a/doc/salome/gui/GEOM/whdata/whfwdata0.htm +++ /dev/null @@ -1,1379 +0,0 @@ - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whdata/whgdata.js b/doc/salome/gui/GEOM/whdata/whgdata.js deleted file mode 100755 index e38a107b5..000000000 --- a/doc/salome/gui/GEOM/whdata/whgdata.js +++ /dev/null @@ -1,26 +0,0 @@ -// 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/GEOM/whdata/whgdata0.htm b/doc/salome/gui/GEOM/whdata/whgdata0.htm deleted file mode 100755 index 3865725f4..000000000 --- a/doc/salome/gui/GEOM/whdata/whgdata0.htm +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whdata/whglo.htm b/doc/salome/gui/GEOM/whdata/whglo.htm deleted file mode 100755 index 9d7ac79f1..000000000 --- a/doc/salome/gui/GEOM/whdata/whglo.htm +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whdata/whglo.js b/doc/salome/gui/GEOM/whdata/whglo.js deleted file mode 100755 index c34fb24b2..000000000 --- a/doc/salome/gui/GEOM/whdata/whglo.js +++ /dev/null @@ -1,34 +0,0 @@ -// 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/GEOM/whdata/whidata.js b/doc/salome/gui/GEOM/whdata/whidata.js deleted file mode 100755 index a92184730..000000000 --- a/doc/salome/gui/GEOM/whdata/whidata.js +++ /dev/null @@ -1,89 +0,0 @@ -// 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/GEOM/whdata/whidx.htm b/doc/salome/gui/GEOM/whdata/whidx.htm deleted file mode 100755 index a049a96f9..000000000 --- a/doc/salome/gui/GEOM/whdata/whidx.htm +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whdata/whidx.js b/doc/salome/gui/GEOM/whdata/whidx.js deleted file mode 100755 index c34fb24b2..000000000 --- a/doc/salome/gui/GEOM/whdata/whidx.js +++ /dev/null @@ -1,34 +0,0 @@ -// 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/GEOM/whdata/whtdata.js b/doc/salome/gui/GEOM/whdata/whtdata.js deleted file mode 100755 index 0558e198c..000000000 --- a/doc/salome/gui/GEOM/whdata/whtdata.js +++ /dev/null @@ -1,64 +0,0 @@ -// 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/GEOM/whdata/whtdata0.htm b/doc/salome/gui/GEOM/whdata/whtdata0.htm deleted file mode 100755 index 159c80a3c..000000000 --- a/doc/salome/gui/GEOM/whdata/whtdata0.htm +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whdata/whtoc.htm b/doc/salome/gui/GEOM/whdata/whtoc.htm deleted file mode 100755 index 459c3e311..000000000 --- a/doc/salome/gui/GEOM/whdata/whtoc.htm +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whdata/whtoc.js b/doc/salome/gui/GEOM/whdata/whtoc.js deleted file mode 100755 index 62de5a132..000000000 --- a/doc/salome/gui/GEOM/whdata/whtoc.js +++ /dev/null @@ -1,31 +0,0 @@ -// 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/GEOM/whgdata/whexpbar.gif b/doc/salome/gui/GEOM/whgdata/whexpbar.gif deleted file mode 100755 index e677dc6f1f61b69ada037436772b0b36f587e71b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67 zcmZ?wbhEHb{KCk{F!4Xb|Ns9P7#I#5H~=ISf3h$#FfcLb0ND&6c?KqtDg7%?zvW*% UXUnbb&G+{F=5Kq{A;Mq{0QPGbMgRZ+ diff --git a/doc/salome/gui/GEOM/whgdata/whlstf0.htm b/doc/salome/gui/GEOM/whgdata/whlstf0.htm deleted file mode 100755 index cda409010..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf0.htm +++ /dev/null @@ -1,46 +0,0 @@ - - -Search Words List - - - - - - - -

      - - -100x30x100
      1d 1 2
      1e 1 2
      2d 1 2 3 4 5 6
      3d 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
      -

      -able 1 2
      absolute
      absolutely
      access
      accessed
      accessible 1 2 3 4 5 6
      accordance 1 2
      according
      add 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      added 1 2
      adding 1 2
      addobject 1 2
      addtostudy 1 2 3 4 5 6 7 8 9 10 11 12 13
      addtostudyinfather 1 2
      advance 1 2 3
      advanced 1 2 3 4 5 6 7
      algorithm 1 2 3 4
      algorithms 1 2 3 4 5 6 7 8 9 10 11 12
      all_faces
      allow
      allows 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      along 1 2 3 4 5 6 7 8
      alongside
      already
      although
      angle 1 2 3 4 5 6 7
      another 1 2 3 4 5 6
      any 1 2 3 4 5
      appear
      appeared
      append 1 2
      applicable
      applied 1 2
      apply 1 2 3
      applying 1 2
      approximation
      arc 1 2 3 4 5 6 7 8
      arc1
      arc2
      archimede 1 2
      arcs 1 2
      area 1 2
      argument 1 2 3
      arguments 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
      around 1 2 3
      automatically 1 2 3
      available 1 2 3 4 5 6 7 8 9 10
      axes 1 2 3 4
      axis 1 2 3 4 5 6 7 8 9 10 11 12
      -

      -b 1 2 3
      background
      base 1 2 3 4 5 6 7 8 9
      based
      baseshape
      basic 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
      basicproperties 1 2
      basing 1 2
      basis 1 2
      bb
      before 1 2 3
      beginning
      being
      belongs
      below
      besier
      bezier 1 2 3
      black
      block 1 2 3 4 5
      blocks 1 2 3 4 5 6 7 8 9 10
      bmp 1 2
      boolean 1 2 3 4 5 6 7 8 9
      both 1 2 3 4
      boudaries
      boundaries 1 2 3 4
      boundary 1 2 3
      bounded 1 2
      bounding 1 2
      boundingbox 1 2
      box 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
      box_tr1
      box_tr2
      box1 1 2 3
      box2 1 2 3
      box3
      boxes 1 2 3


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf1.htm b/doc/salome/gui/GEOM/whgdata/whlstf1.htm deleted file mode 100755 index a8e27edb7..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf1.htm +++ /dev/null @@ -1,43 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -brackets
      breaks
      brep 1 2 3 4
      browser 1 2 3 4
      bspline
      bsplinerestriction
      bsplines
      build 1 2 3 4 5 6 7 8 9
      building 1 2 3 4
      builds 1 2 3
      button 1 2 3 4 5 6
      buttons
      bypassing
      -

      -c 1 2 3
      c0
      c1
      c2
      cad 1 2
      camera
      cascade
      case 1 2 3
      cases
      catia
      center 1 2 3 4 5 6 7 8 9 10 11 12
      centerofscale
      centers
      central 1 2 3 4
      certain 1 2
      chain
      chamfer 1 2
      chamfer_all
      chamfer_e
      chamfer_f
      chamfer_f1
      change 1 2 3 4 5
      changes
      changing 1 2 3 4
      check 1 2 3 4 5 6 7
      check_box
      checkandimprove
      checkbox 1 2 3 4 5 6
      checkcompoundofblocks 1 2
      checked 1 2 3 4 5
      checking 1 2 3
      checks
      checkshape 1 2 3
      choices
      choose 1 2 3
      circle 1 2
      circle1
      circle2
      circles 1 2
      click 1 2 3 4 5
      clicking 1 2 3
      clipping
      clone
      close 1 2 3
      closecontour 1 2
      closed 1 2 3 4
      closedwires 1 2
      closes 1 2
      closure
      cm
      cn
      coincide
      coincident
      coincidental
      coincides
      collinear 1 2
      color 1 2 3 4
      command 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
      commands 1 2 3 4 5 6 7 8 9
      common 1 2 3 4 5 6
      complex 1 2 3 4 5 6 7 8
      components 1 2 3 4 5
      composed
      composing
      compound 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
      compsolid 1 2 3
      compsolids
      compute
      computed
      concerning
      conditions
      cone 1 2 3
      cone1
      cone2
      cones
      confirm 1 2
      conical
      connected 1 2 3 4 5
      connection
      consequently
      considered 1 2 3
      console
      constraints
      constructed 1 2
      construction 1 2 3 4 5 6
      contain
      contained
      containing
      contains 1 2
      contents 1 2 3
      continuities
      continuity
      continuity2d
      continuity3d
      continuous
      contour 1 2
      conversion
      converts
      coordinate 1 2 3 4 5 6 7 8 9 10
      coordinates 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      coords
      copy 1 2 3 4
      corner
      corners 1 2
      correction
      corrects
      correspond 1 2
      corresponding 1 2
      correspondingly 1 2
      count
      coupled
      covering


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf10.htm b/doc/salome/gui/GEOM/whgdata/whlstf10.htm deleted file mode 100755 index 537af78aa..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf10.htm +++ /dev/null @@ -1,43 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -right 1 2 3 4
      rise
      rot1d
      rot2d
      rotate 1 2 3
      rotated 1 2 3
      rotates 1 2
      rotation 1 2 3 4 5
      ruling
      runtimeerror 1 2
      -

      -s 1 2 3 4 5 6 7 8 9 10 11
      s1 1 2 3
      s2 1 2 3
      salome 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
      same 1 2 3 4 5
      sameparameter
      satisfy
      save
      saved
      saves
      scale 1 2
      scaled
      scene
      scripts 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
      search
      second 1 2 3 4 5 6 7 8
      secondly 1 2 3 4 5 6 7 8 9 10 11 12 13
      section 1 2 3 4 5
      see 1 2 3
      seems
      segment
      segments 1 2
      select 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
      selected 1 2 3 4 5 6 7 8 9 10
      selecting 1 2 3
      selection 1 2 3 4
      sense
      separate
      serve
      serving 1 2 3
      set 1 2 3 4 5 6
      setcolor 1 2
      setdisplaymode 1 2 3 4 5 6 7 8 9 10 11 12 13
      setting 1 2 3
      settransparency 1 2 3 4 5
      sew
      sewed
      sewing 1 2
      sg 1 2 3 4
      shading 1 2
      shape 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
      shape1 1 2
      shape2 1 2
      shapelistcompound
      shapes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
      shapes_of_given_type
      shapetype 1 2 3 4 5 6
      shapetypeedge
      shapetypeface
      shared
      sharp
      shell 1 2 3 4 5 6 7 8
      shells 1 2 3 4 5 6 7
      shift 1 2 3
      shifted
      short 1 2
      shortcut
      should 1 2 3 4 5
      show 1 2
      shown
      shows


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf11.htm b/doc/salome/gui/GEOM/whgdata/whlstf11.htm deleted file mode 100755 index e03381b30..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf11.htm +++ /dev/null @@ -1,43 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -side
      signed
      similar
      simple 1 2 3
      simply
      single
      six 1 2
      size 1 2 3
      sketch
      sketcher 1 2 3
      sketcher1 1 2
      sketcher2 1 2
      sketcher3
      sketchers
      skip
      small 1 2
      so 1 2
      solid 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      solid1
      solid2
      solids 1 2 3
      sorted
      sorts
      source
      space 1 2 3 4 5 6
      specific
      specified 1 2 3 4 5 6 7 8 9 10 11
      specify
      specifying
      sphere 1 2 3 4 5 6
      sphere1
      sphere2
      sphere3
      spheres
      spline 1 2
      split
      splitangle
      splitclosedfaces
      splitcontinuity
      splits 1 2
      splitting
      spots
      sqrt
      stage
      standard 1 2
      start 1 2 3 4
      started
      starting 1 2 3
      step 1 2 3 4 5
      step1
      step2
      still
      strictly
      string
      strips
      study 1 2 3 4 5 6 7 8 9 10 11
      sub 1 2 3 4 5
      sub_shape_id
      subfacelist
      submenu
      subshape 1 2
      subshapeall
      subshapeallids
      subshapeallsorted 1 2 3 4 5
      subshapeallsortedids
      subshapeid
      subshapes 1 2
      subshapesorted
      subtraction
      successfully
      sup_faces
      suppress 1 2 3 4
      suppresses
      suppressfaces 1 2
      suppressholes 1 2
      suppressinternalwires 1 2
      surface 1 2 3 4 5 6 7
      surfacecontinuity
      surfacemode
      surfaces
      symmetric
      symmetrical 1 2
      symmetry
      system 1 2 3 4 5 6 7
      systems 1 2
      -

      -t 1 2 3 4 5
      take
      tangent
      tangential
      tangents
      target 1 2
      technology
      tetrahedral
      textual 1 2
      th
      theendlcs
      them 1 2 3 4 5 6 7
      theobject
      therefore
      theshape 1 2
      thestartlcs
      thetolerance
      third
      three 1 2 3 4 5 6 7 8 9 10 11 12 13
      thus 1 2
      time 1 2
      times 1 2 3
      tobezier
      together
      tol2d 1 2
      tol3d 1 2
      toler
      tolerance 1 2 3 4 5 6 7
      tolerance2d
      tolerance3d 1 2
      tolerances
      tool
      toolbar
      tools 1 2
      top_face
      top_face_ind
      torus 1 2
      torus1
      torus2
      toruses
      tr1d
      tr2d
      transform 1 2
      transformate
      transformation 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      transformations 1 2 3
      transformed 1 2
      transforms
      translate 1 2
      translated 1 2 3
      translates 1 2
      translation 1 2 3 4
      translation1
      translation2
      translation3
      translations 1 2 3
      transparency 1 2 3
      transparent 1 2
      triangles
      trihedron
      trimsize 1 2 3
      true 1 2 3 4 5
      truncated
      try


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf12.htm b/doc/salome/gui/GEOM/whgdata/whlstf12.htm deleted file mode 100755 index 18c099123..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf12.htm +++ /dev/null @@ -1,47 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -tt 1 2
      tui 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
      tuple
      two 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
      type 1 2 3 4 5 6 7 8
      types 1 2
      -

      -u
      underlying 1 2
      unionlist
      up 1 2
      update
      updateobjbrowser 1 2 3
      upper
      used 1 2
      useful 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
      user 1 2 3 4
      using 1 2 3 4 5 6 7 8 9 10 11 12 13
      -

      -v 1 2 3 4
      v1
      v2
      v3
      v4
      val
      valid 1 2 3
      validity
      value 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
      values 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      variety
      various
      vector 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
      vector_arc 1 2
      vector1 1 2
      vector1_arc1
      vector1_arc2
      vector2 1 2
      vector2_arc1
      vector2_arc2
      vector3
      vectors 1 2 3 4 5 6 7
      versa
      vertex 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
      vertex_n
      vertex1
      vertex2
      vertexmaxtol
      vertexmintol
      vertices 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
      via 1 2 3 4 5 6 7 8 9
      vice
      view 1 2
      viewer 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      viewing 1 2 3
      views
      visible
      visualize
      volume 1 2
      vr
      vrot1d
      vt
      vtr1d
      vtr2d
      vxy 1 2 3 4 5
      vxyz
      vz
      -

      -w_0


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf13.htm b/doc/salome/gui/GEOM/whgdata/whlstf13.htm deleted file mode 100755 index 355c2d788..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf13.htm +++ /dev/null @@ -1,46 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -wantplanarface
      water
      waterdensity 1 2
      way 1 2 3 4 5 6
      ways 1 2 3
      weight 1 2
      well
      wf
      what
      whatis 1 2
      whether
      while 1 2 3 4 5
      whose 1 2
      wide 1 2
      will 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
      wire 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      wire_close
      wire_name
      wire1
      wire2
      wireframe 1 2
      wires 1 2 3 4 5 6 7 8 9 10 11 12
      wish 1 2 3
      within 1 2 3
      without
      work 1 2
      working 1 2 3 4 5
      workingplane
      works
      ww 1 2
      -

      -x 1 2 3 4 5 6 7 8 9
      x1
      x2
      xdx
      xdy
      xdz
      xmax 1 2
      xmin 1 2
      xoy
      xyz
      xz_face
      xz_face_ind
      -

      -y 1 2 3 4 5 6 7 8
      y1
      y2
      ydx
      ydy
      ydz
      ymax 1 2
      ymin 1 2
      your 1 2 3 4 5 6 7 8 9
      yourselves
      yz_face
      yz_face_ind
      -

      -z 1 2 3 4 5 6 7
      z1
      z2
      zero
      zmax 1 2
      zmin 1 2
      zoom


      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf2.htm b/doc/salome/gui/GEOM/whgdata/whlstf2.htm deleted file mode 100755 index 66be35686..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf2.htm +++ /dev/null @@ -1,43 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -create 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
      createanddisplaygo 1 2 3 4 5 6 7 8 9 10 11 12 13
      created 1 2 3 4 5 6 7 8 9
      creategroup 1 2
      creates 1 2 3 4 5 6 7 8 9 10
      creation 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
      cross
      cs
      cs1
      cs2
      cube
      current 1 2
      currently 1 2 3 4
      curvature
      curve 1 2 3 4
      curve2dmode
      curve3dmode
      curvecontinuity
      curves 1 2 3 4 5
      curving
      cut 1 2 3 4
      cut_without_f_2
      cuts 1 2
      cutting
      cylinder 1 2 3 4 5 6
      cylinders
      cylindrical
      -

      -d 1 2 3
      d1 1 2
      d2 1 2
      data
      data_dir
      default 1 2 3 4 5
      define 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
      defined 1 2
      defines 1 2
      defining 1 2 3
      definite 1 2
      definition
      deflection
      degenerated
      degree 1 2
      degrees 1 2
      delete
      deleted
      density
      depending
      depends
      derivatives
      descr
      description 1 2 3 4 5
      designed
      destination
      destined 1 2
      detect 1 2
      detection
      detects
      developed
      dialog 1 2 3 4 5 6 7 8
      differencelist
      different 1 2
      dimension 1 2 3
      dimensions 1 2 3 4
      dir 1 2
      dir1
      dir2
      direction 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
      directions 1 2 3
      directly
      dirfaceid1
      dirfaceid1u
      dirfaceid1v
      dirfaceid2
      dirfaceid2u
      dirfaceid2v
      display 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
      displayed 1 2 3 4 5
      displayonly
      displays
      distance 1 2 3 4 5
      divide
      divided 1 2
      divideedge 1 2
      doesn 1 2
      don 1 2 3 4
      done 1 2
      double 1 2 3 4
      doubles
      down
      downward
      drag
      drawn
      drop
      dropsmalledges


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf3.htm b/doc/salome/gui/GEOM/whgdata/whlstf3.htm deleted file mode 100755 index 8c653842a..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf3.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -du
      dump 1 2
      duplicate
      dx 1 2 3 4 5
      dy 1 2 3 4 5
      dz 1 2 3 4
      -

      -e
      e1
      e2
      e3
      e4
      easier
      edge 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
      edge_ind
      edge_points
      edge1
      edge2
      edge3
      edge4
      edgeid
      edges 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
      edit
      editing
      egdemaxtol
      egdemintol
      either 1 2
      element 1 2 3
      elementary
      elements 1 2 3 4 5
      ellipse 1 2
      else 1 2
      empty 1 2
      encountered
      end 1 2 3 4 5 6 7 8 9
      ending
      ends 1 2
      enter
      entire
      entity 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
      equal 1 2 3
      erase
      eraseall
      eraseonly
      error 1 2
      errors 1 2
      etc 1 2
      example 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
      examples 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
      except
      existing 1 2 3
      expand
      explode 1 2 3 4
      exploded 1 2
      explodes
      export 1 2 3
      exportation
      exporting
      exports 1 2
      extended
      extra
      extracted
      extruded 1 2
      extrusion
      -

      -f 1 2
      f_2
      f_ind_1
      f_ind_2
      f1
      f1_id
      f2
      f3
      f4
      f5
      f6
      face 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
      face_name
      face_rot
      face1 1 2 3
      face2 1 2 3
      face3
      faceid
      facemaxtol
      facemintol
      faces 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
      factor 1 2
      failed 1 2
      false


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf4.htm b/doc/salome/gui/GEOM/whgdata/whlstf4.htm deleted file mode 100755 index 7699ba2b5..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf4.htm +++ /dev/null @@ -1,43 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -file
      files
      fill
      filled 1 2
      fillet 1 2 3
      filletall
      fillets
      filling 1 2 3 4
      final
      finally 1 2 3 4 5 6
      first 1 2 3 4 5 6 7 8 9
      firstly 1 2 3 4 5 6 7 8 9 10 11 12 13
      fit
      fix
      fixes
      fixfacesize
      fixing
      fixshape 1 2
      flag
      flight_solid
      following 1 2 3 4 5 6 7
      format 1 2 3
      formats 1 2 3
      four 1 2 3
      frame
      free 1 2 3 4 5
      functionalities
      functionality 1 2 3
      functions 1 2 3 4
      fuse 1 2 3 4
      fuse_id
      -

      -g1
      g2
      gap
      gcs
      general 1 2
      generate 1 2 3
      generation 1 2 3 4 5 6
      geom 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
      geom_object 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
      geom_objects 1 2 3 4
      geometric 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
      geometrical 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      geometry 1 2 3 4 5 6
      geompy 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
      get 1 2 3 4
      getenv
      getfacenearpoint
      getfreeboundary 1 2
      getfreefacesids 1 2
      getobjectids
      getsubshape
      getsubshapeid 1 2 3
      getsubshapeindex
      getting
      gg 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
      given 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
      gives
      giving 1 2 3 4
      global 1 2 3
      glue 1 2 3 4 5
      glued 1 2
      glues
      good
      gravity 1 2 3 4
      greater
      group 1 2 3
      group_n
      group1
      groups 1 2 3 4 5 6 7


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf5.htm b/doc/salome/gui/GEOM/whgdata/whlstf5.htm deleted file mode 100755 index 1691b48db..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf5.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      - - -handling
      having 1 2
      height 1 2 3 4 5 6
      here
      hexagonal
      hexahedral 1 2 3
      hexahedron
      hide 1 2
      hides
      hiding
      highlight
      highlights
      holding
      holes 1 2
      how
      -

      -i 1 2 3 4
      i11
      i12
      i13
      i21
      i22
      i23
      i31
      i32
      i33
      id 1 2 3 4 5 6 7 8 9 10 11
      id_arc
      id_archimede
      id_axis
      id_bezier
      id_box 1 2 3 4
      id_box_tr1
      id_box_tr2
      id_box1 1 2
      id_box2 1 2
      id_box3
      id_chamfer_all
      id_chamfer_e
      id_chamfer_f
      id_chamfer_f1
      id_circle1
      id_circle2
      id_common
      id_compound 1 2 3
      id_cone1
      id_cone2
      id_cs1
      id_cs2
      id_cut 1 2
      id_cut_without_f_2
      id_cylinder 1 2
      id_divide
      id_edge 1 2 3
      id_edge1
      id_edge2
      id_edge3
      id_edge4
      id_ellipse
      id_face 1 2 3
      id_face_rot
      id_face1 1 2
      id_face2 1 2
      id_face3
      id_fillet
      id_filletall
      id_filling
      id_fuse
      id_glue
      id_group1
      id_importbrep
      id_interpol
      id_line1
      id_line2
      id_make_block_explode
      id_mirror1
      id_mirror2
      id_mirror3
      id_offset
      id_p_on_arc
      id_p0
      id_p1 1 2
      id_p100
      id_p2 1 2
      id_p3 1 2
      id_p4 1 2 3
      id_partition1
      id_partition2
      id_partition3
      id_pipe
      id_plane 1 2
      id_plane1
      id_plane2
      id_plane3
      id_polyline
      id_position
      id_prism
      id_prism1
      id_prism2
      id_ps
      id_px
      id_py
      id_pz
      id_qface1
      id_qface2
      id_qface3
      id_result
      id_revolution
      id_rot1d
      id_rot2d
      id_rotation
      id_scale
      id_section
      id_sewing
      id_shape
      id_shell
      id_sketcher1
      id_sketcher2
      id_solid
      id_solid1
      id_solid2
      id_sphere
      id_sphere1
      id_sphere2
      id_sphere3
      id_torus1
      id_torus2
      id_tr1d
      id_tr2d
      id_translation1
      id_translation2
      id_translation3
      id_vector
      id_vector1
      id_vector2
      id_vector3
      id_vr
      id_vxy
      id_wire 1 2 3
      id_wire_close
      idlist 1 2
      idlist_e
      idlist_f
      ids 1 2 3 4 5 6
      if 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      iges 1 2 3
      image 1 2 3 4
      implemented
      implies
      imply
      import 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
      importation
      importbrep
      importcomponentgui 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      imported 1 2 3
      importing
      impossible
      improve


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf6.htm b/doc/salome/gui/GEOM/whgdata/whlstf6.htm deleted file mode 100755 index 2ae988521..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf6.htm +++ /dev/null @@ -1,49 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -included
      increased
      independent
      index
      indexes
      indicate
      indicating
      indices 1 2 3 4
      inertia 1 2
      informs
      initial 1 2 3 4 5 6
      inner
      inquired
      ins
      inserted
      inside
      instead
      integer
      integers 1 2
      interactively
      intermediate
      internal 1 2
      interpol
      interpolated
      intersect
      intersected
      intersection
      introduction 1 2 3
      invalid 1 2 3
      invert
      invisible
      isbyparameter
      iscommonvertex
      isolines 1 2
      isometric
      isos
      isplanarface
      isplanarwanted 1 2 3 4
      issuccess
      isvalid 1 2
      iterations
      itself
      ix 1 2
      iy 1 2
      iz 1 2
      -

      -joined
      jpeg 1 2
      jpg 1 2
      junction
      just
      -

      -k
      keep 1 2 3 4 5
      keyboard
      ko
      -

      -l 1 2
      last 1 2
      lcs 1 2
      lcs1
      lcs2
      least
      leaves
      left 1 2 3
      len
      length 1 2 3 4
      lie 1 2
      limit
      line 1 2 3 4
      line1
      line2
      linear
      lines 1 2
      list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
      listchains
      listoffaceid
      listofgeomshapes
      listofid
      listofind
      listofkeepinside
      listofmaterials
      listofremoveinside
      listofshape 1 2 3 4 5 6
      listofshapes 1 2
      listoftools
      listofwireid
      listshapes
      ll
      local 1 2 3 4 5
      localcs1
      localcs2
      localop
      located
      location 1 2 3 4
      locking
      lsc
      lying 1 2
      -

      -magnitude
      main 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
      mainshape
      major 1 2
      make 1 2 3 4 5 6
      make_block_explode
      makearc 1 2 3 4 5 6 7
      makebezier 1 2
      makeblockexplode 1 2
      makeboolean 1 2
      makebox 1 2 3 4 5 6
      makeboxdxdydz 1 2 3 4 5 6
      makeboxtwopnt 1 2 3 4
      makecdg 1 2
      makechamfer
      makechamferall 1 2
      makechamferedge 1 2
      makechamferfaces 1 2
      makecircle 1 2
      makecirclethreepnt 1 2
      makecommon 1 2
      makecompound 1 2 3 4 5
      makecone 1 2 3
      makeconer1r2h 1 2
      makecut 1 2
      makecylinder 1 2 3 4
      makecylinderrh
      makeedge 1 2 3 4 5
      makeellipse 1 2
      makeface 1 2 3 4 5 6 7
      makefaces 1 2
      makefacewires 1 2
      makefillet 1 2
      makefilletall 1 2
      makefilling 1 2
      makefuse 1 2
      makegluefaces 1 2 3
      makehalfpartition 1 2
      makehexa 1 2
      makehexa2faces 1 2
      makeinterpol 1 2
      makeline 1 2
      makelinetwopnt 1 2
      makemarker 1 2
      makemirrorbyaxis 1 2
      makemirrorbyplane 1 2
      makemirrorbypoint 1 2
      makemultirotation1d
      makemultirotation2d
      makemultitransformation1d 1 2
      makemultitransformation2d 1 2
      makemultitranslation1d 1 2
      makemultitranslation2d 1 2
      makeoffset 1 2
      makepartition 1 2
      makepipe 1 2
      makeplane 1 2 3
      makeplaneface 1 2
      makeplanethreepnt 1 2 3
      makepolyline 1 2
      makeposition 1 2
      makeprism 1 2 3
      makeprismvech 1 2 3 4
      makequad 1 2
      makequad2edges 1 2
      makequad4vertices 1 2
      makerevolution 1 2
      makerotation 1 2 3
      makes 1 2 3 4 5
      makescaletransform 1 2
      makesection 1 2
      makesewing 1 2
      makeshell 1 2
      makesketcher 1 2 3
      makesketcheronplane
      makesolid 1 2
      makesphere 1 2 3
      makespherepntr
      makespherer 1 2 3 4
      maketorus 1 2
      maketorusrr 1 2
      maketranslation 1 2 3
      maketranslationtwopoints 1 2
      maketranslationvector 1 2
      makevector 1 2 3 4 5 6 7 8 9
      makevectordxdydz 1 2 3 4
      makevertex 1 2 3 4 5 6 7 8 9 10 11 12 13 14
      makevertexoncurve 1 2
      makevertexwithref 1 2
      makewire 1 2 3 4 5 6 7
      manually
      marked
      mass
      masses
      materials
      math 1 2 3
      matrix 1 2
      max 1 2 3 4
      maxdeg
      maxdegree
      maximal 1 2 3
      maximum 1 2 3 4
      maxnbfaces
      maxtolerance
      maxtolerance3d


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf7.htm b/doc/salome/gui/GEOM/whgdata/whlstf7.htm deleted file mode 100755 index ae1ba0212..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf7.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -meaning
      means 1 2 3
      measurement 1 2
      measures
      mechanisms
      meet
      memorise
      mentioned
      menu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
      merge
      mesh 1 2 3
      meshes
      meshing 1 2
      meshingdeflection 1 2
      method
      middle 1 2
      min 1 2 3 4
      min_dist
      mindeg
      mindegree
      mindistance 1 2
      minimal 1 2 3 4
      minimum 1 2 3
      minnbfaces
      minor 1 2
      mirror 1 2
      mirror1
      mirror2
      mirror3
      mirrored
      mode 1 2 3 4 5 6
      modeled
      models 1 2
      modes
      modified
      modifies 1 2
      modify 1 2
      module 1 2 3 4
      moment
      moments 1 2
      mouse 1 2
      move
      moved
      much
      multi 1 2 3 4 5
      multirotate1d 1 2
      multirotate2d 1 2
      multitude
      must 1 2 3 4 5
      -

      -n
      name 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
      names
      nb 1 2 3 4
      nb_sub
      nbiter 1 2
      nbounding
      nbox
      nbsplitpoints
      nbtimes 1 2 3
      nbtimes1 1 2
      nbtimes2 1 2
      nbtimesu
      nbtimesv
      ncentre
      ncompound
      necessarily
      necessary 1 2 3 4 5
      need 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
      needed
      negative
      neighbouring
      new 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
      newly
      ninertia
      nminimal
      nodes
      noerror
      none
      normal 1 2 3 4 5 6
      note
      nothing
      notions
      nth
      number 1 2 3 4 5 6 7 8 9 10 11 12 13
      numbers
      -

      -object 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
      objects 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
      obtain 1 2 3
      obtained


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf8.htm b/doc/salome/gui/GEOM/whgdata/whlstf8.htm deleted file mode 100755 index 4fe7761c0..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf8.htm +++ /dev/null @@ -1,43 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -occ 1 2 3 4 5 6 7 8 9 10
      occurred
      offset 1 2
      ok 1 2 3 4
      old
      one 1 2 3 4 5 6 7 8 9 10 11 12 13
      opaque
      open 1 2 3 4 5 6
      opening
      opens
      openwires 1 2
      operation 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
      operations 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
      operator
      operators 1 2
      opportunity
      opposite
      optimization 1 2
      option
      options
      order
      orientate
      orientation
      oriented
      origin 1 2 3 4 5 6 7 8
      os
      otherwise 1 2 3 4 5 6
      our 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
      out 1 2
      outside
      ox 1 2
      oy
      oz 1 2 3 4
      -

      -p
      p_25_25_50
      p_25_50_25
      p_50_25_25
      p_on_arc
      p0 1 2 3 4 5 6 7 8
      p1 1 2 3 4 5 6 7 8
      p10
      p100
      p11
      p12
      p13
      p2 1 2 3 4 5 6 7 8
      p200 1 2
      p3 1 2 3 4 5 6
      p4 1 2 3 4
      p5 1 2 3 4
      p50
      p6 1 2
      p7 1 2
      p70
      p8 1 2
      p9
      panning
      parallel 1 2 3 4
      parameter 1 2 3 4
      parameterization
      parameters 1 2 3 4 5 6 7 8 9
      parametric
      paramter
      part 1 2 3
      partition 1 2
      partition1
      partition2
      partition3
      parts
      passed
      passes 1 2 3 4
      passing
      path 1 2
      pathshape
      perform 1 2 3
      performed
      perpendicular
      pi 1 2 3
      picture
      pipe 1 2
      place
      placed
      places
      planar 1 2 3 4 5
      plane 1 2 3 4 5 6 7 8 9 10
      plane1
      plane2
      plane3
      planes 1 2 3
      plug
      plunged


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstf9.htm b/doc/salome/gui/GEOM/whgdata/whlstf9.htm deleted file mode 100755 index e6bc71836..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstf9.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words List - - - - - - - -

      <<

      -

      -png 1 2
      point 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
      point1 1 2 3 4 5 6 7 8 9 10 11
      point2 1 2 3 4 5 6 7 8 9 10 11
      point3 1 2 3 4 5
      point4 1 2
      point5
      pointcoordinates 1 2
      points 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
      polyline 1 2
      pop 1 2
      position 1 2 3 4 5 6
      positional
      positions
      possibilities
      possibility
      possible 1 2 3 4 5
      precision 1 2
      predefined
      presentation
      press
      pressed
      presumes
      preview
      previous 1 2
      primitives 1 2 3 4 5 6 7 8
      print 1 2
      printed
      prism 1 2 3 4 5
      prism_edges
      prism_faces 1 2
      prism1
      prism2
      prisms 1 2
      problems
      process 1 2
      processed 1 2 3 4
      processes
      processing 1 2
      processshape 1 2
      produce 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
      program
      projection
      projections
      propagate 1 2
      propagation 1 2
      properties 1 2
      proportional
      props
      provide 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
      providing
      ps
      put
      px 1 2 3 4 5
      pxy
      pxyz 1 2 3
      py 1 2 3 4 5
      py1
      python
      pz 1 2 3 4 5 6
      -

      -qface1
      qface2
      qface3
      qface4
      qface5
      qface6
      qface7
      qface8
      quadrangle 1 2 3 4
      -

      -r 1 2 3
      radio
      radius 1 2 3 4 5 6 7 8 9 10 11
      radius1 1 2 3 4 5
      radius2 1 2
      radius3
      radiuses 1 2 3 4
      radiusmajor 1 2
      radiusminor 1 2
      raise 1 2 3
      range 1 2 3 4 5 6
      recent
      reconstruction
      redefine
      reduce
      reference 1 2
      refreshes
      regarding
      relative
      relatively
      relevant
      remain 1 2
      remainder
      remote
      remove 1 2 3 4 5
      removed 1 2 3 4 5 6 7 8 9
      removeobject 1 2
      removes 1 2 3
      removewebs
      removing
      rename
      repair 1 2 3 4 5 6 7 8 9 10
      repairing 1 2 3 4 5 6 7 8 9 10 11 12 13
      repetition 1 2
      repetitions
      representation
      represented
      representing 1 2
      represents
      required 1 2
      requireddegree
      requirednbsegments
      requires
      res
      reset
      resizes
      respect 1 2
      restore
      restores
      restriction
      result 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
      resultant
      resulting 1 2 3 4 5
      results 1 2 3 4 5 6
      retrieves
      return
      returned 1 2 3
      returning
      returns 1 2 3 4 5
      reverse 1 2
      revolution 1 2 3


      >> - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl0.htm b/doc/salome/gui/GEOM/whgdata/whlstfl0.htm deleted file mode 100755 index a8d6ceb56..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl0.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ { {D {E {D ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl1.htm b/doc/salome/gui/GEOM/whgdata/whlstfl1.htm deleted file mode 100755 index 3ddd0ea89..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl1.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ AB AC AD AL AN AP AR AU AV AX ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl10.htm b/doc/salome/gui/GEOM/whgdata/whlstfl10.htm deleted file mode 100755 index c098d325e..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl10.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ JO JP JU ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl11.htm b/doc/salome/gui/GEOM/whgdata/whlstfl11.htm deleted file mode 100755 index 4547492c4..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl11.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ K KE KO ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl12.htm b/doc/salome/gui/GEOM/whgdata/whlstfl12.htm deleted file mode 100755 index 07c629bc7..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl12.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ L LA LC LE LI LL LO LS LY ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl13.htm b/doc/salome/gui/GEOM/whgdata/whlstfl13.htm deleted file mode 100755 index fa383d41a..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl13.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ MA ME MI MO MU ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl14.htm b/doc/salome/gui/GEOM/whgdata/whlstfl14.htm deleted file mode 100755 index 60532d353..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl14.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ N NA NB NC NE NI NM NO NT NU ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl15.htm b/doc/salome/gui/GEOM/whgdata/whlstfl15.htm deleted file mode 100755 index 68165a4f0..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl15.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ OB OC OF OK OL ON OP OR OS OT OU OX OY OZ ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl16.htm b/doc/salome/gui/GEOM/whgdata/whlstfl16.htm deleted file mode 100755 index eda34ce91..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl16.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ P PA PE PI PL PN PO PR PS PU PX PY PZ ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl17.htm b/doc/salome/gui/GEOM/whgdata/whlstfl17.htm deleted file mode 100755 index a4abf7108..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl17.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ QF QU ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl18.htm b/doc/salome/gui/GEOM/whgdata/whlstfl18.htm deleted file mode 100755 index e11002aa0..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl18.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ R RA RE RI RO RU ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl19.htm b/doc/salome/gui/GEOM/whgdata/whlstfl19.htm deleted file mode 100755 index 0a710d8a9..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl19.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ S SA SC SE SG SH SI SK SM SO SP SQ ST SU SY ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl2.htm b/doc/salome/gui/GEOM/whgdata/whlstfl2.htm deleted file mode 100755 index b122abd54..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl2.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ B BA BB BE BL BM BO BR BS BU BY ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl20.htm b/doc/salome/gui/GEOM/whgdata/whlstfl20.htm deleted file mode 100755 index 095ab4760..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl20.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ T TA TE TH TI TO TR TT TU TW TY ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl21.htm b/doc/salome/gui/GEOM/whgdata/whlstfl21.htm deleted file mode 100755 index 1d1f4d32b..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl21.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ U UN UP US ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl22.htm b/doc/salome/gui/GEOM/whgdata/whlstfl22.htm deleted file mode 100755 index ca8764f6b..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl22.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ V VA VE VI VO VR VT VX VZ ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl23.htm b/doc/salome/gui/GEOM/whgdata/whlstfl23.htm deleted file mode 100755 index 57d263d57..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl23.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ W WA WE WF WH WI WO WW ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl24.htm b/doc/salome/gui/GEOM/whgdata/whlstfl24.htm deleted file mode 100755 index c0564aa39..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl24.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ X XD XM XO XY XZ ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl25.htm b/doc/salome/gui/GEOM/whgdata/whlstfl25.htm deleted file mode 100755 index 2d94192b0..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl25.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ Y YD YM YO YZ ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl26.htm b/doc/salome/gui/GEOM/whgdata/whlstfl26.htm deleted file mode 100755 index c096d46be..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl26.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ Z ZE ZM ZO ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl3.htm b/doc/salome/gui/GEOM/whgdata/whlstfl3.htm deleted file mode 100755 index 819f2db3e..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl3.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ C CA CE CH CI CL CM CN CO CR CS CU CY ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl4.htm b/doc/salome/gui/GEOM/whgdata/whlstfl4.htm deleted file mode 100755 index 4f958b9c2..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl4.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ D DA DE DI DO DR DU DX DY DZ ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl5.htm b/doc/salome/gui/GEOM/whgdata/whlstfl5.htm deleted file mode 100755 index 6436a8110..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl5.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ E EA ED EG EI EL EM EN EQ ER ET EX ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl6.htm b/doc/salome/gui/GEOM/whgdata/whlstfl6.htm deleted file mode 100755 index aeeed420f..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl6.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ F FA FI FL FO FR FU ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl7.htm b/doc/salome/gui/GEOM/whgdata/whlstfl7.htm deleted file mode 100755 index 8f8665a31..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl7.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ G GA GC GE GG GI GL GO GR ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl8.htm b/doc/salome/gui/GEOM/whgdata/whlstfl8.htm deleted file mode 100755 index 124e38af9..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl8.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ HA HE HI HO ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstfl9.htm b/doc/salome/gui/GEOM/whgdata/whlstfl9.htm deleted file mode 100755 index c8ce4cd0e..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstfl9.htm +++ /dev/null @@ -1,45 +0,0 @@ - - -Search Words letter - - - - - - - - - -

      ^ I ID IF IG IM IN IS IT IX IY IZ ^

      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstg0.htm b/doc/salome/gui/GEOM/whgdata/whlstg0.htm deleted file mode 100755 index 193fb7c67..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstg0.htm +++ /dev/null @@ -1,75 +0,0 @@ - - -Glossary words list - - - - - - - -

      Cell

      -

      Element of a mesh. Cells are determined by their connectivity. They can have 0,1,2 or 3 dimension.

      -

      Component

      -

      One integer or real value can correspond to each component of a field and to each entity of a mesh

      -

      Descendant connectivity

      -

      It is a description of the entities of the mesh with dimension N. This description is made by an ordered list of geometrical entities (nodes, edges, or faces) with dimension N-1.

      -

      Edge

      -

      An edge of a volumetric or surface mesh. It is composed of 2 or 3 nodes (2 vertex nodes and optionally one middle node).

      -

      Entity of a mesh

      -

      Geometrical component of the mesh: node, cell, face and edge. Faces and edges are only intermediate entities allowing to define the cells in descendant connectivity.

      -

      Equivalence

      -

      Equivalence represents a list of correspondance 2 by 2 of the entities of the same dimension.

      -

      Face

      -

      Face of a volumetrical cell (triangle, quadrangle).

      -

      Family

      -

      Entities of a mesh are described by a certain number  of characteristics (boundary conditions, groups membership). Families represent classes equivalent to these characteristics (two entities of a mesh can belong to the same family if they have the same characteristics). Every family is determined by a set of attributes and a list of groups membership.

      -

      Field

      -

      Field consists of one or several scalar components. One definite type is associated to the given field and the values corresponding to different components are all of the same type.

      -

      Field profile

      -

      Fields can be defined only on one part of the mesh. Profile  of the field or profile of the component of a field indicates which entities of the mesh contain values.

      -

      Group

      -

      Unordered set of entities of a mesh. One entity can belong to  several groups.

      -

      Mesh

      -

      Mesh is described by its geometry: list of nodes and list of cells which constitute this mesh. Supplementary information is added with the help of families (initial, boundary conditions).

      -

      Nodal connectivity

      -

      It is a description of an entity of the mesh by an ordered list of nodes constituting this entity.

      -

      Node

      -

      Node can be an isolated node of a mesh, a vertex or middle node of an edge. A node is associated to a point.

      -

      Point

      -

      Geometrical entity determined by its coordinates in the space.

      -

      Reference connectivity

      -

      For each type of entity of a mesh, reference connectivity define the topology of an entity.

      -

      Result

      -

      List of fields referring to one mesh.

      -

      Study

      -

      Study represents a chain of sequences of calculations.

      -



      - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlsti0.htm b/doc/salome/gui/GEOM/whgdata/whlsti0.htm deleted file mode 100755 index 32e2c7fd9..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlsti0.htm +++ /dev/null @@ -1,39 +0,0 @@ - - - -Index words list - - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt0.htm b/doc/salome/gui/GEOM/whgdata/whlstt0.htm deleted file mode 100755 index 98e3b2c07..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt0.htm +++ /dev/null @@ -1,51 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt1.htm b/doc/salome/gui/GEOM/whgdata/whlstt1.htm deleted file mode 100755 index 71d6e3159..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt1.htm +++ /dev/null @@ -1,58 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt10.htm b/doc/salome/gui/GEOM/whgdata/whlstt10.htm deleted file mode 100755 index 204cdfe22..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt10.htm +++ /dev/null @@ -1,68 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -       Basic Operations
      -       Boolean Operations
      -          Using boolean operations
      -          Fuse
      -          Common
      -          Cut
      -          Section
      -       Transformation Operations
      -       Blocks Operations
      -       Repairing Operations
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt11.htm b/doc/salome/gui/GEOM/whgdata/whlstt11.htm deleted file mode 100755 index 1a34a2504..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt11.htm +++ /dev/null @@ -1,73 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -       Basic Operations
      -       Boolean Operations
      -       Transformation Operations
      -          Translation
      -          Rotation
      -          Modify the Location
      -          Mirror Image
      -          Scale Transform
      -          Offset Surface
      -          Multi Translation
      -          Multi Rotation
      -          Fillet
      -          Chamfer
      -       Blocks Operations
      -       Repairing Operations
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt12.htm b/doc/salome/gui/GEOM/whgdata/whlstt12.htm deleted file mode 100755 index af8e2ab44..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt12.htm +++ /dev/null @@ -1,66 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -       Basic Operations
      -       Boolean Operations
      -       Transformation Operations
      -       Blocks Operations
      -          Multi Transformation
      -          Explode on Blocks
      -          Propagate
      -       Repairing Operations
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt13.htm b/doc/salome/gui/GEOM/whgdata/whlstt13.htm deleted file mode 100755 index a6ad5342f..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt13.htm +++ /dev/null @@ -1,73 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -       Basic Operations
      -       Boolean Operations
      -       Transformation Operations
      -       Blocks Operations
      -       Repairing Operations
      -          Shape Processing
      -          Suppress Faces
      -          Close Contour
      -          Suppress Internal Wires
      -          Suppress Holes
      -          Sewing
      -          Glue Faces
      -          Add Point on Edge
      -          Check Free Boundaries
      -          Check Free Faces
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt14.htm b/doc/salome/gui/GEOM/whgdata/whlstt14.htm deleted file mode 100755 index 90141801a..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt14.htm +++ /dev/null @@ -1,63 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -    Using measurement tools
      -    TUI Scripts
      -       Viewing Geometrical Objects
      -       Creating Geometric Objects
      -       Transformation
      -       Measurement Tools
      -       Python interface geompy.py
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt15.htm b/doc/salome/gui/GEOM/whgdata/whlstt15.htm deleted file mode 100755 index a55c4689c..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt15.htm +++ /dev/null @@ -1,69 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -    Using measurement tools
      -    TUI Scripts
      -       Viewing Geometrical Objects
      -       Creating Geometric Objects
      -          Basic Geometrical Objects
      -          Primitives
      -          Complex Objects
      -          Working with Groups
      -          Building by Blocks
      -          Sketcher
      -          Advanced Geometrical Objects
      -       Transformation
      -       Measurement Tools
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt16.htm b/doc/salome/gui/GEOM/whgdata/whlstt16.htm deleted file mode 100755 index 941a0790c..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt16.htm +++ /dev/null @@ -1,67 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -    Using measurement tools
      -    TUI Scripts
      -       Viewing Geometrical Objects
      -       Creating Geometric Objects
      -       Transformation
      -          Basic Operations
      -          Boolean Operations
      -          Transformation Operations
      -          Blocks Operations
      -          Repairing Operations
      -       Measurement Tools
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt2.htm b/doc/salome/gui/GEOM/whgdata/whlstt2.htm deleted file mode 100755 index 7ec8d9f9f..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt2.htm +++ /dev/null @@ -1,65 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -       Creating Basic Geometric Objects
      -       Creating Primitives
      -       Creating Complex Objects
      -       Working with groups
      -       Building by blocks
      -       Sketcher
      -       Creating Advanced Geometrical Objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt3.htm b/doc/salome/gui/GEOM/whgdata/whlstt3.htm deleted file mode 100755 index 80435d67b..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt3.htm +++ /dev/null @@ -1,75 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -       Creating Basic Geometric Objects
      -          Point
      -          Line
      -          Circle
      -          Ellipse
      -          Arc
      -          Curve
      -          Vector
      -          Plane
      -          Working Plane
      -          Local Coordinate System
      -       Creating Primitives
      -       Creating Complex Objects
      -       Working with groups
      -       Building by blocks
      -       Sketcher
      -       Creating Advanced Geometrical Objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt4.htm b/doc/salome/gui/GEOM/whgdata/whlstt4.htm deleted file mode 100755 index 53e8bf275..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt4.htm +++ /dev/null @@ -1,70 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -       Creating Basic Geometric Objects
      -       Creating Primitives
      -          Box
      -          Cylinder
      -          Sphere
      -          Torus
      -          Cone
      -       Creating Complex Objects
      -       Working with groups
      -       Building by blocks
      -       Sketcher
      -       Creating Advanced Geometrical Objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt5.htm b/doc/salome/gui/GEOM/whgdata/whlstt5.htm deleted file mode 100755 index 12c834bc5..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt5.htm +++ /dev/null @@ -1,69 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -       Creating Basic Geometric Objects
      -       Creating Primitives
      -       Creating Complex Objects
      -          Extrusion
      -          Revolution
      -          Filling
      -          Pipe
      -       Working with groups
      -       Building by blocks
      -       Sketcher
      -       Creating Advanced Geometrical Objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt6.htm b/doc/salome/gui/GEOM/whgdata/whlstt6.htm deleted file mode 100755 index 39a238c00..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt6.htm +++ /dev/null @@ -1,72 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -       Creating Basic Geometric Objects
      -       Creating Primitives
      -       Creating Complex Objects
      -       Working with groups
      -       Building by blocks
      -       Sketcher
      -       Creating Advanced Geometrical Objects
      -          Explode
      -          Edge
      -          Wire
      -          Face
      -          Shell
      -          Solid
      -          Compound
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt7.htm b/doc/salome/gui/GEOM/whgdata/whlstt7.htm deleted file mode 100755 index 90cd66b4b..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt7.htm +++ /dev/null @@ -1,64 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -    Viewing geometrical objects
      -       Viewing Geometrical Objects
      -       OCC 3D Viewer
      -       Display Mode
      -       Color
      -       Transparency
      -       Isolines
      -    Transforming geometrical objects
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt8.htm b/doc/salome/gui/GEOM/whgdata/whlstt8.htm deleted file mode 100755 index 582722826..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt8.htm +++ /dev/null @@ -1,63 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -       Basic Operations
      -       Boolean Operations
      -       Transformation Operations
      -       Blocks Operations
      -       Repairing Operations
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whlstt9.htm b/doc/salome/gui/GEOM/whgdata/whlstt9.htm deleted file mode 100755 index 59e42a136..000000000 --- a/doc/salome/gui/GEOM/whgdata/whlstt9.htm +++ /dev/null @@ -1,65 +0,0 @@ - - - -Content - - - - - - - - - - -
      -

      - Geometry module
      -    Introduction to Geometry
      -    Importing/exporting geometrical objects
      -    Creating geometrical objects
      -    Viewing geometrical objects
      -    Transforming geometrical objects
      -       Basic Operations
      -          Partition
      -          Archimede
      -       Boolean Operations
      -       Transformation Operations
      -       Blocks Operations
      -       Repairing Operations
      -    Using measurement tools
      -    TUI Scripts
      -

      - -
      -

      -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whnvf30.htm b/doc/salome/gui/GEOM/whgdata/whnvf30.htm deleted file mode 100755 index 7cff7ce54..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvf30.htm +++ /dev/null @@ -1,13 +0,0 @@ - - - -toc frame - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whnvf31.htm b/doc/salome/gui/GEOM/whgdata/whnvf31.htm deleted file mode 100755 index 91a985f9f..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvf31.htm +++ /dev/null @@ -1,15 +0,0 @@ - - - -Index frame - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whnvf32.htm b/doc/salome/gui/GEOM/whgdata/whnvf32.htm deleted file mode 100755 index bc2231fbf..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvf32.htm +++ /dev/null @@ -1,15 +0,0 @@ - - - -search frame - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whnvf33.htm b/doc/salome/gui/GEOM/whgdata/whnvf33.htm deleted file mode 100755 index 6c091d828..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvf33.htm +++ /dev/null @@ -1,15 +0,0 @@ - - - -Glossary frame - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whnvl31.htm b/doc/salome/gui/GEOM/whgdata/whnvl31.htm deleted file mode 100755 index e29abc01c..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvl31.htm +++ /dev/null @@ -1,43 +0,0 @@ - - - -Index Letters - - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whnvl32.htm b/doc/salome/gui/GEOM/whgdata/whnvl32.htm deleted file mode 100755 index c76e9d162..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvl32.htm +++ /dev/null @@ -1,72 +0,0 @@ - - - -Search Letters - - - - - - - - -

      - # - A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whnvl33.htm b/doc/salome/gui/GEOM/whgdata/whnvl33.htm deleted file mode 100755 index d6f20c33c..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvl33.htm +++ /dev/null @@ -1,72 +0,0 @@ - - - -Glossary Letters - - - - - - - - -

      - # - A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z -

      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whnvp30.htm b/doc/salome/gui/GEOM/whgdata/whnvp30.htm deleted file mode 100755 index 0c9cb814b..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvp30.htm +++ /dev/null @@ -1,16 +0,0 @@ - - - - Content Navigation Pane - - - - - - - - - - \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whgdata/whnvp31.htm b/doc/salome/gui/GEOM/whgdata/whnvp31.htm deleted file mode 100755 index 87921c0b7..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvp31.htm +++ /dev/null @@ -1,16 +0,0 @@ - - - - Index Navigation Pane - - - - - - - - - - \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whgdata/whnvp32.htm b/doc/salome/gui/GEOM/whgdata/whnvp32.htm deleted file mode 100755 index 90697b01f..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvp32.htm +++ /dev/null @@ -1,16 +0,0 @@ - - - - Search Navigation Pane - - - - - - - - - - \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whgdata/whnvp33.htm b/doc/salome/gui/GEOM/whgdata/whnvp33.htm deleted file mode 100755 index 8351bcbea..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvp33.htm +++ /dev/null @@ -1,16 +0,0 @@ - - - - Glossary Navigation Pane - - - - - - - - - - \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whgdata/whnvt30.htm b/doc/salome/gui/GEOM/whgdata/whnvt30.htm deleted file mode 100755 index ec1bb840f..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvt30.htm +++ /dev/null @@ -1,47 +0,0 @@ - - - -Content Navigation Tab - - - - - - - - - - - -
      - -
      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whnvt31.htm b/doc/salome/gui/GEOM/whgdata/whnvt31.htm deleted file mode 100755 index e17d82548..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvt31.htm +++ /dev/null @@ -1,45 +0,0 @@ - - - -Index Navigation Tab - - - - - - - - - - - -
      - -
      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whnvt32.htm b/doc/salome/gui/GEOM/whgdata/whnvt32.htm deleted file mode 100755 index d63892533..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvt32.htm +++ /dev/null @@ -1,45 +0,0 @@ - - - -Search Navigation Tab - - - - - - - - - - - -
      - -
      - - - - diff --git a/doc/salome/gui/GEOM/whgdata/whnvt33.htm b/doc/salome/gui/GEOM/whgdata/whnvt33.htm deleted file mode 100755 index af63a0257..000000000 --- a/doc/salome/gui/GEOM/whgdata/whnvt33.htm +++ /dev/null @@ -1,45 +0,0 @@ - - - -Glossary Navigation Tab - - - - - - - - - - - -
      - -
      - - - - diff --git a/doc/salome/gui/GEOM/whxdata/whftdata0.xml b/doc/salome/gui/GEOM/whxdata/whftdata0.xml deleted file mode 100755 index 0f5be19c9..000000000 --- a/doc/salome/gui/GEOM/whxdata/whftdata0.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whxdata/whfts.xml b/doc/salome/gui/GEOM/whxdata/whfts.xml deleted file mode 100755 index 3146b8080..000000000 --- a/doc/salome/gui/GEOM/whxdata/whfts.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/doc/salome/gui/GEOM/whxdata/whfwdata0.xml b/doc/salome/gui/GEOM/whxdata/whfwdata0.xml deleted file mode 100755 index da0b6c7d6..000000000 --- a/doc/salome/gui/GEOM/whxdata/whfwdata0.xml +++ /dev/null @@ -1,1365 +0,0 @@ - - - 0,3,4,5,6,8,11,18,37,40,44,46,56,57,59,65,68,74,76,33, - 59, - 18, - 4, - 44, - 0,2,3,4,5,6,8,9,10,11,14,15,18,20,23,25,26,27,28,29,34,35,37,39,40,43,44,45,46,47,48,49,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,72,74,75,76,77,31,82,83, - 3,18,37,44,57,68,74, - 3,4,5,18,37,44,46,59,68,74, - 3,74, - 4, - 44, - 44, - 44, - 33, - 8, - 59, - 59, - 8,18,44,57,68, - 3,8,37,59,68, - 11, - 57, - 3, - 59,65,68, - 44, - 5,74, - 44,59, - 50,5,7,14,17,18,21,22,23,24,27,28,36,37,40,41,42,44,47,48,49,53,59,63,67,74,75,77,31,78,82, - 3,6,18,37,57,59,68,74, - 3,4,5,40,44,46,59,74, - 74, - 11, - 74, - 44, - 3,5,6,57,74, - 37,44,59,68, - 5,35,59,65,74,31, - 1,2,5,7,11,14,18,20,37,40,44,48,55,56,59,61,67,74,75,31,78, - 3,8,11,18,37,44,57,59,68,74, - 37,68, - 44, - 11, - 59, - 44, - 6,8,57,59,74, - 14,21,35,43,51,55,56,59,65,71,31,33,78,79,81,83, - 50,37,40,44,48,67,74,31, - 6,8,18,37,57,59,74, - 59, - 57,59, - 0,3,11,18,35,37,40,32,44,56,59,67,68,74, - 3,5,8,11,18,37,44,59,68,74,76, - 4, - 6,57,59, - 50,5,44,33, - 18,37,59,74, - 59, - 37,44,59, - 3,8,37,57,59,68,74, - 44, - 44,59,68,74, - 37,44,67, - 65,67, - 51,67, - 67, - 76, - 51,79, - 7,16,29,42,70, - 0, - 0,15, - 15,40,32,83, - 0,3,4,5,6,8,18,37,40,57,59,68,74,83, - 40,83, - 3,4,5,6,8,11,18,37,40,57,59,68,74, - 5,59, - 7,19,24,28,29,37,66,69,70,80, - 7,14,20,21,23,28,43,46,55,56,61,67,70,77,78,82, - 59, - 50,9,26,43,45,46,47,51,53,61,64,65,67,72,75,33,79, - 7,9,46,49,52,54,74,75, - 31, - 40, - 46, - 47,59,60,61,65,67,74, - 22,42,55,56,70,74, - 43,53,61,65,75, - 43,74,83, - 79,83, - 18,37,74, - 9,65, - 52, - 65,79, - 65, - 1,3,18,37,59,67,68,74, - 18, - 18, - 2,4, - 44,51, - 0,1,2,50,7,9,10,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,41,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,66,67,69,70,71,72,73,75,77,31,78,80,82,83, - 47,51,60,74, - 50,43,79, - 0,50,15,32,51,67,71,72,73,83, - 7,43,49,51,75, - 18,20,23,43,45,46,47,60,61,74,33, - 3,21,65, - 79, - 20,23,28,43,47,51,54,59,60,62,65,75,77, - 54, - 28,51, - 1,2,3,4,14,21,25,38,30,42,43,44,53,55,56,67,33,78,82, - 44,33, - 44, - 24, - 59,65,67, - 59, - 9, - 50, - 21, - 3,21,65, - 79, - 50,5,8,27,38,30,44,48,58,33, - 51,79, - 6,17,22,36,38,30,63,31,33, - 7,20,48,49,65, - 59, - 8,37,44,51,33, - 12,59,64,72, - 12,59,73, - 44,33, - 4,50,5,7,11,16,22,27,40,32,44,51,53,57,59,65,67,73,74,76,33,80,83, - 5, - 5, - 44,57,59, - 44,57,59, - 57, - 65, - 58, - 38,32,30,59, - 32,43,79,80, - 65, - 65, - 50,5,8,19,24,29,38,30,53,58,66,69,80, - 43,51,54,64,72,80,83, - 50, - 37,65,68, - 65, - 65, - 65, - 38,30, - 43,33, - 82, - 50,43,48,61,73, - 51, - 32, - 51, - 7,14,20,25,44,46,47,51,67,70,74,77,33, - 26, - 62, - 20,23,61,62,65, - 61, - 65,83, - 5, - 9,74, - 74, - 74, - 74, - 74, - 10,11,16,41,51,76,79,81, - 10, - 12,13,27,29,44,59,65,73,33, - 5, - 10,45,46,47,61,72,75,33, - 44,33, - 44,59,33, - 21, - 27,32,43,51,53, - 3,14,67, - 3, - 3, - 16,32,51,54,79,81,83, - 51, - 51, - 12,15,59,65,69,83, - 15,59, - 12,59, - 15, - 44, - 65, - 46, - 39, - 65, - 20,23, - 11,16,79,81, - 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,23,24,25,26,27,28,29,34,35,36,39,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,79,80,81,83, - 6,9,15,17,74,31, - 18,28,35,38,30,54,60,31, - 3,18,67,75, - 50,10,33, - 50,5,17,18,19,22,26,27,35,36,37,39,44,47,49,52,59,63,33, - 26,28,54,60, - 37, - 2,33, - 20,57,59, - 33, - 33, - 57, - 57, - 32,83, - 65, - 9,29,66,33,80, - 33, - 74, - 15,39,33, - 33, - 50, - 50,69, - 21,38,30,43,51,31, - 0,13,15,58, - 40,32,51, - 65, - 65, - 65, - 65, - 65, - 15,59, - 65, - 65, - 44, - 7,20,23,26,43,44,46,51,55,56,67,70,74,75,77,33,78,82, - 10,45,46,61,75, - 65, - 7,8, - 65, - 65, - 2,12,21,24,27, - 59, - 67, - 31, - 1,2,3,4,50,5,6,7,8,9,10,14,15,18,19,20,21,23,24,25,26,28,29,34,35,36,37,40,42,43,44,45,46,47,51,54,55,56,57,59,60,61,62,63,66,67,68,69,70,74,75,77,33,78,79,80,82,83, - 3,4,5,6,8,11,18,37,40,57,59,68,74, - 40,83, - 1,3,7,14,15,18,19,20,21,23,24,25,28,29,35,37,38,40,30,42,54,55,56,57,59,60,66,69,70,77,78,80,83, - 5, - 51, - 74, - 74, - 46, - 7,42,51,53,67,70, - 3,21,35,65,67, - 65, - 65, - 65, - 65, - 6,17,22,53,59,31, - 59, - 6,20,23,57,59,74, - 18,57, - 57, - 57, - 65, - 9,59,65, - 9,74, - 9,74, - 33, - 59, - 44, - 51,56,67,79,83, - 1,7,9,14,20,21,23,25,26,27,28,34,35,32,42,43,47,48,49,51,54,55,56,60,61,62,65,67,70,75,77,78,82,83, - 72, - 54, - 2, - 61, - 33, - 35,60,65,67, - 83, - 2, - 48,65, - 65, - 44, - 79, - 50,44,67,68,33, - 83, - 38,30, - 67, - 79, - 12,64,72, - 65, - 51, - 50,22,32,65,67,76,80,83, - 40, - 45,33, - 7,9,23,28,47,33, - 47,49, - 49, - 49, - 43,61, - 2,14,20,25,28,43,47,48,49,51,60,61,65,67,77, - 48, - 48, - 48, - 48, - 48, - 48, - 3,4,5,6,8,11,16,18,37,40,32,41,51,57,59,64,68,72,74,76,33,79,81,83, - 79, - 39,44,52,65,33, - 0,59, - 0,59, - 79, - 40,51, - 7,10,15,28,49,51,70, - 47,48,49,67,76, - 83, - 51, - 51, - 51, - 65, - 65, - 65, - 51,79, - 51, - 7,44,67,75,78, - 7,44,67,75,78, - 7,44,75,78, - 44,53,65, - 50, - 50, - 50, - 50, - 83, - 0,1,50,7,8,9,12,14,15,18,21,24,25,26,28,34,35,37,42,44,54,56,58,59,60,65,66,67,74,33,78,80,81, - 59, - 59, - 8, - 8, - 8, - 8, - 0, - 83, - 33, - 33, - 50,46, - 15,29,67,31,33,79,83, - 50, - 3,25, - 44,59, - 72,73, - 33, - 1,15,28,46,59,65,67,74,75,78, - 83, - 33, - 1,50,7,14,19,20,21,23,24,25,26,28,29,35,42,43,54,55,56,60,66,67,69,70,77,78,80,82,83, - 20,65,67, - 79, - 79, - 79, - 12,40,33, - 26,53,65, - 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,32,41,42,43,45,46,47,48,49,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,78,80,81,83, - 73, - 67,83, - 32, - 5,26,27,37, - 38,32,30,51,79, - 32, - 51, - 33, - 27, - 54,60, - 28,54, - 37,68, - 59, - 74, - 74, - 50, - 59, - 50, - 50, - 50, - 50, - 50, - 44, - 2,3,50,5,8,9,10,13,15,18,26,27,28,29,34,35,37,39,40,44,48,52,53,54,55,59,60,65,66,67,68,71,73,74,33,82, - 59, - 59, - 9,18,37, - 9,18,37, - 37, - 40, - 33, - 33, - 62,74, - 44,59, - 12, - 53, - 10, - 16,18,35,32,79,81, - 72, - 9,34,74, - 74, - 45,46,55,56,75,82,83, - 7,14,20,23,24,28,43,45,46,48,49,53,55,56,61,65,68,70,75,77,31,78,82, - 51, - 65, - 65, - 59,65, - 33, - 59, - 65,67,68,76,31,33,83, - 38,32,30,51,79, - 50,8,65, - 51, - 12,13,59,64,72, - 38,30,51,74, - 50, - 51,53,67,83, - 6,11,36,31, - 11, - 65, - 65, - 15, - 46, - 50,31, - 28,35,54, - 28,35,38,30,54,60, - 3,4,5,6,8,11,18,37,40,44,57,58,59,68,74,33, - 0,1,2,50,7,9,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,45,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,80,83, - 1,50,14,19,21,24,25,28,29,35,42,54,55,56,60,65,66,69,78,79,80, - 3,11,17,37,38,32,30,47,51,53,31,33,79,81,83, - 38,32,30,51,59,65,33, - 0,1,2,3,4,50,5,6,7,8,9,10,11,12,14,15,17,18,19,20,21,23,24,25,26,27,28,29,34,35,36,37,39,40,42,43,44,45,46,47,48,49,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,31,33,78,80,83, - 5,44,59,74,33, - 59, - 5, - 12,59, - 13,59, - 83, - 59, - 5,40,59,74, - 3,4,5,6,8,11,16,18,37,40,44,57,59,68,74,76,81, - 14,25,32,55,65, - 3,5,8,9,13,18,23,26,27,29,34,37,39,42,47,52,56,59,65,68,74,77,33, - 46,51, - 5,39,44,59,33, - 51, - 26,44,47,33, - 51, - 5,38,40,30,51,58,83, - 83, - 40, - 79, - 83, - 65,66, - 6,20,23,28,57,59,74, - 83, - 8, - 50,8,48, - 50, - 51,79, - 12,33, - 59,72, - 80, - 33, - 18,37,40,53,59,65, - 33, - 33, - 33, - 33, - 33, - 33, - 33, - 33, - 33, - 0,13,15,16,26,48,59,71,72,73,74,76,79,81,83, - 3, - 4, - 74, - 3, - 4,5,59,74, - 5, - 5, - 57,59, - 57,59, - 57, - 74, - 74, - 74, - 74, - 3, - 3, - 6, - 5,18,37,59, - 57, - 57, - 74, - 74, - 6,59, - 59, - 6,74, - 57, - 57, - 59, - 18,37,59, - 8, - 8, - 8, - 8, - 3, - 3,59,68, - 59, - 18,37, - 18,37, - 37, - 18, - 74, - 74, - 6, - 59, - 40, - 59, - 3, - 3, - 3, - 5, - 74, - 74, - 74, - 74, - 59, - 3, - 3, - 3,8,74, - 3, - 3,8,74, - 3,8, - 3,8,74, - 4, - 4, - 4, - 18, - 4,74, - 3, - 3, - 3, - 3, - 74, - 74, - 18, - 18, - 3, - 3, - 3, - 8, - 8, - 8, - 59, - 18, - 74, - 74, - 74, - 74, - 74, - 6, - 59, - 59, - 37, - 68, - 68, - 37, - 8, - 8, - 6, - 57, - 57, - 57, - 57, - 57, - 74, - 74, - 74, - 74, - 74, - 3, - 3, - 3, - 18, - 74, - 3, - 18,37,59, - 59, - 59,74, - 74, - 74, - 0,10,12,15,20,29,40,44,51,59,65,72,73,33, - 38,32,30, - 53, - 5, - 45,51,74,79, - 65, - 32, - 53, - 65, - 3,4,5,6,8,11,18,37,38,40,32,30,44,57,59,68,74,33, - 32, - 59, - 3,4,5,6,8,11,18,37,40,44,57,59,68,74, - 29, - 32,52, - 40, - 15, - 17, - 26,83, - 9,26,59, - 49,56, - 44,33, - 33, - 10,45,46,47,61,62,75, - 33, - 15, - 20, - 48, - 27,48, - 27, - 50, - 59,73, - 3, - 21, - 53, - 53, - 50,38,30, - 44,59,65, - 51, - 76, - 10, - 0, - 15, - 44, - 79, - 41,79, - 51, - 37, - 3,18,29,68, - 59, - 44,59, - 35, - 15, - 44,33, - 44,33, - 44,33, - 65, - 51,79, - 51,79, - 65, - 50, - 65, - 45,46,61,75,83, - 83, - 59, - 37,68, - 24,43, - 43,46, - 46, - 46, - 21, - 10,83, - 46,51,79, - 59, - 0,44,67,33, - 1,14, - 53, - 2,3,42,43,67,83, - 3, - 3, - 67, - 3,9,12,13,15,19,21,26,29,35,40,53,58,59,64,65,66,67,69,71,72,73,74,80,83, - 5, - 9, - 71, - 71, - 26, - 53, - 53, - 53, - 19,21,53,64,66,69,80, - 53, - 72, - 34, - 51, - 43,46,52,55,67,74,82, - 46, - 46, - 51,56, - 32,43,46,74, - 10,51, - 46, - 67,73, - 65, - 0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,43,44,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,80,82,83, - 83, - 25,77, - 5,6,9,44,48,49,59,74,75,83, - 5, - 1,3,18,37,59,68,74, - 3,21, - 5,27, - 11,31, - 7,11,44,57,59,74, - 5,7,44,57,59,74, - 4,7,40,57, - 44,33, - 74, - 9,74, - 9,74, - 9,74, - 3,14, - 3,14, - 6,17, - 5,18,19,37,44,59, - 20,57,59, - 20,57, - 6,59, - 6,23,57,59,74, - 23,57, - 8,18,24,37,59, - 3,25, - 3,18,29,37,59,68,74, - 29,37, - 18,35, - 34,74, - 34,74, - 6,36, - 39,44,59, - 4,53, - 50,8, - 50,8, - 3,21, - 3,42, - 3,42, - 43,74, - 45,74, - 45,74, - 45,74, - 47, - 47, - 5,48, - 5,48, - 49,74, - 49,74, - 52,74, - 4,53, - 18,54, - 3,4,55, - 3,55, - 3,55,74, - 3,21, - 46,74, - 18,28,37, - 18,28,59,74, - 50,8, - 50,8, - 50,8, - 18,60, - 59,61,74, - 61,74, - 62,74, - 6,63, - 59,64, - 37,66, - 37,67,68, - 68, - 37,69, - 5,6,11,57,70, - 57, - 57,77, - 57,77, - 18,37,74,75, - 74,75, - 74,75, - 3,6,18,37,57,59,68,74,78, - 3,4,18,78, - 3,4,5,6,8,18,37,40,44,56,57,59,68,74, - 3,56, - 3,56, - 3,18,37,59,68,74,80, - 51,83, - 51, - 44,33, - 44,59,74, - 44,33, - 27,35,44,65, - 5, - 18, - 35, - 27,65,33, - 27,35,39,65,33, - 27, - 65, - 65, - 52,56,67,81, - 33, - 44,33, - 32, - 65, - 51, - 50, - 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,32,41,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,79,80,81,82,83, - 65, - 2,50,51,79, - 2,4, - 46, - 1,56, - 27,35,44,33, - 44, - 5, - 18, - 35, - 44,33, - 27,29,44,33, - 27,35,65,33, - 27, - 25,77, - 45,74, - 74, - 74, - 74, - 0,11,15,65,79,81, - 2,38,30, - 15,46, - 46,74, - 38,32,30,51,79, - 44,33, - 51,79, - 46,49, - 83, - 5,47,48,49,74, - 47,74, - 47,74, - 58, - 44,47,49,72,33, - 65, - 0,1,2,50,7,9,10,14,15,17,19,20,21,22,23,24,25,28,29,34,35,36,39,32,42,43,45,46,47,48,49,52,53,54,55,56,60,62,63,64,65,66,69,70,71,72,73,75,77,78,79,80,82,83, - 5,7,42,70, - 26, - 18,35, - 44, - 44, - 65, - 47,48,49, - 47,49, - 47,49, - 48, - 48, - 44, - 44, - 7,9,26,28,29,34,35,47,49,54,60,62,65,70,75, - 65, - 9,34,65,67,33, - 15,61, - 52, - 65, - 1,50,7,14,15,19,20,21,23,24,25,26,28,29,35,42,43,51,53,54,55,56,60,66,67,69,70,74,77,78,79,80,82,83, - 44, - 44, - 21, - 12, - 44, - 3,10,14,25,52,55,77, - 20, - 29, - 50, - 65, - 27,35,41,47,48,49,52,59,64,65,72,74,79, - 48, - 1,2,3,4,5,6,8,9,10,11,14,16,17,18,19,21,24,25,26,28,29,34,35,37,38,40,32,30,42,43,45,46,47,51,52,53,54,55,56,57,58,59,60,61,65,66,68,69,73,74,75,31,33,78,79,80,81,83, - 26,44,46,65, - 0,9,15,34,51,71,72,73,79,83, - 12, - 52,74, - 43,44,59,83, - 53,56, - 0,15,22,47,48,49,56,59,65,67,82, - 76, - 12,15,32,51,59,83, - 12,59, - 0,1,2,4,50,5,6,7,9,10,12,13,14,15,17,20,21,22,23,25,26,27,28,34,35,36,38,39,30,42,45,46,47,48,49,52,53,54,55,56,58,59,60,61,62,63,64,65,67,70,71,72,73,74,75,77,31,78,83, - 59,65, - 32, - 7, - 38,30, - 79,81, - 65, - 50, - 51, - 10,51, - 7,20,23,43,51,70,77,78, - 61, - 59, - 0,15,45,46,61,75, - 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,80,81,83, - 51,65, - 10, - 43,67, - 43, - 20,23,43,67, - 57, - 5, - 5, - 5, - 3, - 3,4,8,18,37,40,57,59,74, - 3,6,8,18,37,57,59,68,74, - 8, - 3, - 8, - 3,6,8,18,37,57,59,68,74, - 4,40, - 3,8,18,37,59,68,74, - 3,8,18,74, - 3,8,18,74, - 3, - 8,18, - 8,18, - 57, - 8,18, - 8, - 51, - 7,42,65, - 0,15,56,65, - 4,16,35,53,59,65,67,76,79,81, - 65, - 65, - 0, - 17,20,51, - 4,53, - 4, - 4, - 4, - 53, - 5,21,42,44,47,55,61,67, - 18,54, - 54, - 4,26,51,74, - 67, - 47,59,74, - 46, - 18,54, - 46,51,65, - 2,3,4,45,51,53,55,61,67,74,82,83, - 29,67,68,74,82, - 3, - 3, - 3, - 32, - 2, - 51,79, - 0,1,3,4,50,7,8,14,15,18,20,21,23,24,25,28,37,40,42,43,44,45,47,51,52,55,56,59,61,62,65,67,68,70,74,75,77,33,78,83, - 1,3,7,8,14,24,28,42,55,61,75,78, - 1,3,7,8,14,24,28,42,55,61,75,78, - 1,3,8,14,55, - 3,8, - 3, - 44,33, - 3,21, - 16,81, - 0,46,51,56,65,74,82, - 65, - 29, - 65, - 5,21,58,65,33, - 59,64, - 67, - 53, - 43,51, - 79, - 51, - 65,67, - 7,20,23,38,30,57,70,77, - 44,59,33, - 18,28,37,59,74, - 74, - 37,74, - 18, - 18, - 65, - 15,59,65,71, - 59,65, - 2,9,15,17,22,27,34,36,45,47,48,49,52,53,58,61,62,63,64,65,71,74,75, - 40, - 10, - 47,82, - 44, - 5,58, - 5,58, - 44,33, - 65, - 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,78,80,81,83, - 59, - 2, - 3,18,37,59,74, - 74, - 18,37,74, - 3,18,37,59,74, - 59, - 33, - 3,4,18,37,59,74, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 50,8,55,33, - 33, - 34,37,68, - 83, - 3,9,14,20,23,25,34,67,70,74,77, - 3,20,25,77, - 6,20,57,59,74, - 20,57, - 57, - 25,77, - 25,77, - 40,44,59, - 0,26,38,32,30,76, - 79, - 53, - 79, - 65, - 43,56, - 79, - 56, - 67, - 81, - 51,53,81, - 46, - 51, - 40,45,46,51,59,61,65,71,72,73,75,83, - 40,83, - 53, - 79, - 0,10,12,13,15,38,39,30,59,64,65,71,72,73, - 47,49, - 51,55, - 51, - 32,65, - 65, - 65, - 59, - 51, - 51, - 39,67, - 51, - 65, - 0,1,2,4,50,5,6,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,45,47,48,49,51,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,74,75,77,33,78,80,83, - 65, - 13, - 26,27,44,51,33,83, - 10,47,61, - 18,60,65, - 16,46,79,81, - 65, - 74, - 74, - 47,51,60,61,74, - 47,51,59,61,74, - 74, - 74, - 65, - 44,59, - 12,14,15,18,37,48,59,62,71,72,73,83, - 17,36,63, - 17,36,63, - 3,4,5,6,8,11,18,37,38,40,30,44,57,59,68,74, - 47,65,67,74,83, - 65, - 33, - 32,51, - 62,74, - 51, - 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,80,81,83, - 46,51,81, - 32, - 7,14,20,23,28,43,45,46,48,49,53,55,56,61,65,68,70,75,77,31,78,82, - 2,6,51,63,31, - 59, - 65,67, - 0,1,2,4,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,40,32,42,43,45,46,47,48,49,51,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,79,80,81,82,83, - 34,67,82,83, - 31, - 21,28,54,60, - 0,15,27,29,37,47,51,52,56,82, - 11,16, - 3,4,5,6,8,11,18,37,57,59,68,74,81, - 3,11,37,68,74,76, - 59,64, - 5,40,59,79, - 79,81, - 0,2,4,9,10,12,13,15,17,19,22,26,28,34,35,36,37,38,39,40,30,41,44,45,46,47,49,51,52,53,54,58,59,60,61,62,63,64,65,71,72,73,74,75,76,33,79,83, - 31,33, - 31,33, - 18,37, - 26, - 34,37,40,59,74,83, - 74, - 74, - 13, - 65, - 13,19,37,52,66,69,81, - 50,10,28,37,52,53,54,60,66,69, - 46,56,80,83, - 16,81, - 29, - 42,71,72,33, - 51,33, - 43, - 55, - 52, - 43, - 47,48,49, - 53, - 29, - 50,8, - 9,55,65, - 37,67,68, - 37, - 37,68, - 37,68, - 37, - 83, - 51,65, - 29,46, - 50,7,8,20,23,26,28,37,48,52,53,54,60,69,70,77, - 8, - 8, - 26, - 60, - 14,21,55,56,33,78, - 0,7,9,15,34,43,48,59,65,73,74, - 50, - 0,61, - 5,6,11,57,70,74, - 57, - 57, - 57, - 3,21, - 0,65, - 65, - 65, - 65, - 65, - 44, - 50, - 16,79, - 1,28,46,67,75,78, - 38,32,30,47,49, - 49, - 49, - 65, - 67, - 51, - 65, - 3,4,5,6,8,18,37,57,59,68,74, - 26,51,59,72,83, - 59, - 40, - 33, - 26,83, - 26, - 26, - 26,37,40,59,74, - 26, - 83, - 26, - 46, - 44, - 59, - 53, - 59,71,72,73, - 59,71, - 59,72, - 59,73, - 29,35,44,52,65,74,33, - 65, - 65, - 74, - 45,74, - 45, - 20,23,43,46,55,70,74,82, - 7,10,28,40,51,70, - 65, - 65,67, - 65, - 27,67, - 51, - 33, - 50, - 67,68, - 65, - 46, - 33, - 7,26,51,65,71,80,83, - 46, - 67, - 39,59,33, - 46, - 39, - 7,61, - 1,3,14,18,21,37,43,45,55,56,61,68,74,82, - 65,76, - 21,47,49,56,74, - 65, - 83, - 44, - 18,35, - 18,35, - 15,35,39,44,59,65,33, - 65, - 59,65, - 44,53,33, - 51,54, - 5, - 5, - 33, - 57,77, - 57, - 57, - 57, - 74, - 74, - 5,17,48,62,74, - 5, - 5,9,34,38,30,45,46,47,48,49,51,52,61,62,74,75, - 46,47,49,52,74,75, - 47,48,49,74,75, - 74, - 74, - 74, - 11,76,79, - 76,81, - 51, - 51, - 3,4,55, - 0,15,59,33, - 20, - 29, - 37,68, - 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,79,80,81,83, - 33, - 0,3,4,50,7,8,9,13,17,18,20,24,36,37,39,40,46,47,48,49,53,61,65,68,70,74,77,33,82,83, - 21,26,27,53,65,67,31,33,83, - 65, - 10,51, - 15,65, - 40, - 16,20,81, - 79, - 5,40,59, - 2,50,15,26,27,35,38,30,46,48,51,65,67,73,76,31,33,83, - 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,78,79,80,81,83, - 6,57,59,74, - 50, - 50, - 50, - 50, - 0, - 44, - 44, - 44,59,33, - 33, - 0,2,7,9,15,20,23,28,34,39,41,43,44,46,47,49,52,55,59,60,64,65,67,70,75,77,33,78, - 26, - 65, - 3,4,6,14,18,20,23,25,28,37,42,43,45,47,49,55,57,59,60,61,65,67,68,74,75,77,78,82, - 3,68, - 3,18, - 18, - 18, - 3,18, - 18, - 18, - 18, - 65, - 53, - 3,4,6,14,15,18,20,23,24,25,28,37,44,45,54,55,56,57,59,60,62,70,74,77,33, - 56, - 24, - 24, - 33, - 33, - 1,3,50,5,7,8,15,18,24,26,28,37,40,42,55,57,59,68,74,75,78, - 50,7,29,32,42,51,67,70, - 65, - 0,9,11,15,34,43,51,71,72,73,33,79,80,81,83, - 51, - 51, - 44,33, - 74, - 74, - 74, - 74, - 74, - 3,18,37,59,74, - 4, - 74, - 59, - 59, - 2, - 2,4, - 7,26,28,42,45,47,70,83, - 2,4, - 65,33, - 68, - 44, - 44,33, - 33, - 12,18,37,44,65,81, - 29,33, - 38,30, - 0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,32,42,45,46,47,48,49,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,78,80,83, - 3,50,12,15,18,26,28,29,37,44,54,59,60,67,68,72,73,74,80, - 59, - 59, - 18, - 18, - 79,81, - 10,26,32,51, - 15,41,79, - 59, - 38,30,47,51,65,67,82,83, - 67, - 37,68, - 3,7,25,43,46,56,67,70,33, - 7, - 7, - 43, - 43, - 43, - 44,33, - 44,33, - 67, - 82, - 5, - 5, - 3,7,25,43,56,67,70,33, - 7, - 7, - 43, - 43, - 43, - 44,33, - 44,33, - 16,32,64,72,79,82,83, - 5, - 5, - 2,3,7,43,56,70,33, - 7, - 7, - 20, - 44,33, - 44,33, - 51, - - diff --git a/doc/salome/gui/GEOM/whxdata/whgdata0.xml b/doc/salome/gui/GEOM/whxdata/whgdata0.xml deleted file mode 100755 index b0993a043..000000000 --- a/doc/salome/gui/GEOM/whxdata/whgdata0.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whxdata/whglo.xml b/doc/salome/gui/GEOM/whxdata/whglo.xml deleted file mode 100755 index ac67056d3..000000000 --- a/doc/salome/gui/GEOM/whxdata/whglo.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whxdata/whidx.xml b/doc/salome/gui/GEOM/whxdata/whidx.xml deleted file mode 100755 index 44f05e5be..000000000 --- a/doc/salome/gui/GEOM/whxdata/whidx.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/doc/salome/gui/GEOM/whxdata/whtdata0.xml b/doc/salome/gui/GEOM/whxdata/whtdata0.xml deleted file mode 100755 index 9f521a7b6..000000000 --- a/doc/salome/gui/GEOM/whxdata/whtdata0.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/salome/gui/GEOM/whxdata/whtoc.xml b/doc/salome/gui/GEOM/whxdata/whtoc.xml deleted file mode 100755 index 871ec25b9..000000000 --- a/doc/salome/gui/GEOM/whxdata/whtoc.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/doc/salome/gui/Makefile.am b/doc/salome/gui/Makefile.am index dec4ee81c..e099a6aee 100644 --- a/doc/salome/gui/Makefile.am +++ b/doc/salome/gui/Makefile.am @@ -1,4 +1,7 @@ -# Copyright (C) 2005 CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -16,56 +19,15 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# File : Makefile.in -# Author : Vasily Rusyaev (Open Cascade NN) +# -* Makefile *- +# Author : Patrick GOLDBRONN (CEA) +# Date : 30/11/2001 # Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : doc - -include $(top_srcdir)/adm_local/unix/make_common_starter.am - -EXTRA_DIST+=GEOM - -doxygen=@DOXYGEN@ - -# Below command replaces "geompyDC" by "geompy" except cases -# "sgeompyDC", "1geompyDC" and "egeompyDC" (these sequences -# can be found in file names and must not be replaces): -# -# sed 's/\([^s1e]\)geompyDC\|^geompyDC/\1geompy/g' $${filen} > ./tmp; +# $Header: # +SUBDIRS = GEOM + usr_docs: - cd ./GEOM; \ - echo "Processing geompyDC.py file: "; \ - $(doxygen) ./doxyfile_py; \ - cd ./geompy_doc; \ - filesl=`find .`; \ - for filen in $${filesl}; do \ - sed 's/\([^s1e]\)geompyDC\|^geompyDC/\1geompy/g' $${filen} > ./tmp1; \ - sed 's/geompy\.geompy/geompy/g' ./tmp1 > ./tmp; \ - rm -f tmp1; \ - mv -f tmp $${filen}; \ - done; \ - cd ..; \ - echo "Running doxygen in directory: "`pwd`; \ - $(doxygen) ./doxyfile; + (cd GEOM && $(MAKE) $(AM_MAKEFLAGS) usr_docs) docs: usr_docs - -clean-local: - rm -fr `ls | grep -v "Makefile"` - rm -fr GEOM - -install-data-local: usr_docs - mkdir -p $(docdir)/gui - cp -rf GEOM $(docdir)/gui - -find $(PWD) -name CVS -prune -exec rm -rf {} \; - -uninstall-local: - rm -rf $(docdir)/gui/GEOM - -docguidir=$(docdir)/gui/GEOM - -nodist_docgui_DATA= GEOM/doxyfile -nodist_docgui_DATA+= GEOM/doxyfile_py -EXTRA_DIST+= GEOM/doxyfile.in -EXTRA_DIST+= GEOM/doxyfile_py.in diff --git a/doc/salome/tui/GEOM/HTML/GEOM_Gen.html b/doc/salome/tui/GEOM/HTML/GEOM_Gen.html deleted file mode 100644 index 507db794d..000000000 --- a/doc/salome/tui/GEOM/HTML/GEOM_Gen.html +++ /dev/null @@ -1,802 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_Object
      IDL file
      Python
      string GetEntry ( )
      return_value = GetEntry ( )
      long GetStudyID ( )
      return_value = GetStudyID ( )
      long GetType ( )
      return_value = GetType ( )
      shape_type GetShapeType ( )
      return_value = GetShapeType ( )
      void SetName ( in string theName )
      SetName ( theName )
      string GetName ( )
      return_value = GetName ( )
      void SetStudyEntry ( in string theEntry )
      SetStudyEntry ( theEntry )
      string GetStudyEntry ( )
      return_value = GetStudyEntry ( )
      ListOfGO GetDependency ( )
      return_value = GetDependency ( )
      ListOfGO GetLastDependency ( )
      return_value = GetLastDependency ( )
      long getShape ( )
      return_value = getShape ( )
      TMPFile GetShapeStream ( )
      return_value = GetShapeStream ( )
      boolean IsMainShape ( )
      return_value = IsMainShape ( )
      ListOfLong GetSubShapeIndices ( )
      return_value = GetSubShapeIndices ( )
      GEOM_Object GetMainShape ( )
      return_value = GetMainShape ( )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_IOperations
      IDL file
      Python
      boolean IsDone ( )
      return_value = IsDone ( )
      void SetErrorCode ( in string theErrorID )
      SetErrorCode ( theErrorID )
      string GetErrorCode ( )
      return_value = GetErrorCode ( )
      long GetStudyID ( )
      return_value = GetStudyID ( )
      void StartOperation ( )
      StartOperation ( )
      void FinishOperation ( )
      FinishOperation ( )
      void AbortOperation ( )
      AbortOperation ( )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_IBasicOperations
      IDL file
      Python
      GEOM_Object MakePointXYZ ( in double theX, in double theY, in double theZ )
      return_value = MakePointXYZ ( theX, theY, theZ )
      GEOM_Object MakePointWithReference ( in GEOM_Object theReference, in double theX, in double theY, in double theZ )
      return_value = MakePointWithReference ( theReference, theX, theY, theZ )
      GEOM_Object MakePointOnCurve ( in GEOM_Object theRefCurve, in double theParameter )
      return_value = MakePointOnCurve ( theRefCurve, theParameter )
      GEOM_Object MakeVectorDXDYDZ ( in double theDX, in double theDY, in double theDZ )
      return_value = MakeVectorDXDYDZ ( theDX, theDY, theDZ )
      GEOM_Object MakeVectorTwoPnt ( in GEOM_Object thePnt1, in GEOM_Object thePnt2 )
      return_value = MakeVectorTwoPnt ( thePnt1, thePnt2 )
      GEOM_Object MakeLineTwoPnt ( in GEOM_Object thePnt1, in GEOM_Object thePnt2 )
      return_value = MakeLineTwoPnt ( thePnt1, thePnt2 )
      GEOM_Object MakePlaneThreePnt ( in GEOM_Object thePnt1, in GEOM_Object thePnt2, in GEOM_Object thePnt3, in double theTrimSize )
      return_value = MakePlaneThreePnt ( thePnt1, thePnt2, thePnt3, theTrimSize )
      GEOM_Object MakePlanePntVec ( in GEOM_Object thePnt, in GEOM_Object theVec, in double theTrimSize )
      return_value = MakePlanePntVec ( thePnt, theVec, theTrimSize )
      GEOM_Object MakePlaneFace ( in GEOM_Object theFace, in double theTrimSize )
      return_value = MakePlaneFace ( theFace, theTrimSize )
      GEOM_Object MakeMarker ( in double theOX, in double theOY, in double theOZ, in double theXDX, in double theXDY, in double theXDZ, in double theYDX, in double theYDY, in double theYDZ )
      return_value = MakeMarker ( theOX, theOY, theOZ, theXDX, theXDY, theXDZ, theYDX, theYDY, theYDZ )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_ITransformOperations
      IDL file
      Python
      GEOM_Object TranslateTwoPoints ( in GEOM_Object theObject, in GEOM_Object thePoint1, in GEOM_Object thePoint2 )
      return_value = TranslateTwoPoints ( theObject, thePoint1, thePoint2 )
      GEOM_Object TranslateTwoPointsCopy ( in GEOM_Object theObject, in GEOM_Object thePoint1, in GEOM_Object thePoint2 )
      return_value = TranslateTwoPointsCopy ( theObject, thePoint1, thePoint2 )
      GEOM_Object TranslateDXDYDZ ( in GEOM_Object theObject, in double theDX, in double theDY, in double theDZ )
      return_value = TranslateDXDYDZ ( theObject, theDX, theDY, theDZ )
      GEOM_Object TranslateDXDYDZCopy ( in GEOM_Object theObject, in double theDX, in double theDY, in double theDZ )
      return_value = TranslateDXDYDZCopy ( theObject, theDX, theDY, theDZ )
      GEOM_Object TranslateVector ( in GEOM_Object theObject, in GEOM_Object theVector )
      return_value = TranslateVector ( theObject, theVector )
      GEOM_Object TranslateVectorCopy ( in GEOM_Object theObject, in GEOM_Object theVector )
      return_value = TranslateVectorCopy ( theObject, theVector )
      GEOM_Object MultiTranslate1D ( in GEOM_Object theObject, in GEOM_Object theVector, in double theStep, in long theNbTimes )
      return_value = MultiTranslate1D ( theObject, theVector, theStep, theNbTimes )
      GEOM_Object MultiTranslate2D ( in GEOM_Object theObject, in GEOM_Object theVector1, in double theStep1, in long theNbTimes1, in GEOM_Object theVector2, in double theStep2, in long theNbTimes2 )
      return_value = MultiTranslate2D ( theObject, theVector1, theStep1, theNbTimes1, theVector2, theStep2, theNbTimes2 )
      GEOM_Object Rotate ( in GEOM_Object theObject, in GEOM_Object theAxis, in double theAngle )
      return_value = Rotate ( theObject, theAxis, theAngle )
      GEOM_Object RotateCopy ( in GEOM_Object theObject, in GEOM_Object theAxis, in double theAngle )
      return_value = RotateCopy ( theObject, theAxis, theAngle )
      GEOM_Object MultiRotate1D ( in GEOM_Object theObject, in GEOM_Object theAxis, in long theNbTimes )
      return_value = MultiRotate1D ( theObject, theAxis, theNbTimes )
      GEOM_Object MultiRotate2D ( in GEOM_Object theObject, in GEOM_Object theAxis, in double theAngle, in long theNbTimes1, in double theStep, in long theNbTimes2 )
      return_value = MultiRotate2D ( theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2 )
      GEOM_Object MirrorPlane ( in GEOM_Object theObject, in GEOM_Object thePlane )
      return_value = MirrorPlane ( theObject, thePlane )
      GEOM_Object MirrorPlaneCopy ( in GEOM_Object theObject, in GEOM_Object thePlane )
      return_value = MirrorPlaneCopy ( theObject, thePlane )
      GEOM_Object MirrorAxis ( in GEOM_Object theObject, in GEOM_Object theAxis )
      return_value = MirrorAxis ( theObject, theAxis )
      GEOM_Object MirrorAxisCopy ( in GEOM_Object theObject, in GEOM_Object theAxis )
      return_value = MirrorAxisCopy ( theObject, theAxis )
      GEOM_Object MirrorPoint ( in GEOM_Object theObject, in GEOM_Object thePoint )
      return_value = MirrorPoint ( theObject, thePoint )
      GEOM_Object MirrorPointCopy ( in GEOM_Object theObject, in GEOM_Object thePoint )
      return_value = MirrorPointCopy ( theObject, thePoint )
      GEOM_Object OffsetShape ( in GEOM_Object theObject, in double theOffset )
      return_value = OffsetShape ( theObject, theOffset )
      GEOM_Object OffsetShapeCopy ( in GEOM_Object theObject, in double theOffset )
      return_value = OffsetShapeCopy ( theObject, theOffset )
      GEOM_Object ScaleShape ( in GEOM_Object theObject, in GEOM_Object thePoint, in double theFactor )
      return_value = ScaleShape ( theObject, thePoint, theFactor )
      GEOM_Object ScaleShapeCopy ( in GEOM_Object theObject, in GEOM_Object thePoint, in double theFactor )
      return_value = ScaleShapeCopy ( theObject, thePoint, theFactor )
      GEOM_Object PositionShape ( in GEOM_Object theObject, in GEOM_Object theStartLCS, in GEOM_Object theEndLCS )
      return_value = PositionShape ( theObject, theStartLCS, theEndLCS )
      GEOM_Object PositionShapeCopy ( in GEOM_Object theObject, in GEOM_Object theStartLCS, in GEOM_Object theEndLCS )
      return_value = PositionShapeCopy ( theObject, theStartLCS, theEndLCS )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_I3DPrimOperations
      IDL file
      Python
      GEOM_Object MakeBoxDXDYDZ ( in double theDX, in double theDY, in double theDZ )
      return_value = MakeBoxDXDYDZ ( theDX, theDY, theDZ )
      GEOM_Object MakeBoxTwoPnt ( in GEOM_Object thePnt1, in GEOM_Object thePnt2 )
      return_value = MakeBoxTwoPnt ( thePnt1, thePnt2 )
      GEOM_Object MakeCylinderRH ( in double theR, in double theH )
      return_value = MakeCylinderRH ( theR, theH )
      GEOM_Object MakeCylinderPntVecRH ( in GEOM_Object thePnt, in GEOM_Object theAxis, in double theR, in double theH )
      return_value = MakeCylinderPntVecRH ( thePnt, theAxis, theR, theH )
      GEOM_Object MakeConeR1R2H ( in double theR1, in double theR2, in double theH )
      return_value = MakeConeR1R2H ( theR1, theR2, theH )
      GEOM_Object MakeConePntVecR1R2H ( in GEOM_Object thePnt, in GEOM_Object theAxis, in double theR1, in double theR2, in double theH )
      return_value = MakeConePntVecR1R2H ( thePnt, theAxis, theR1, theR2, theH )
      GEOM_Object MakeTorusRR ( in double theRMajor, in double theRMinor )
      return_value = MakeTorusRR ( theRMajor, theRMinor )
      GEOM_Object MakeTorusPntVecRR ( in GEOM_Object thePnt, in GEOM_Object theVec, in double theRMajor, in double theRMinor )
      return_value = MakeTorusPntVecRR ( thePnt, theVec, theRMajor, theRMinor )
      GEOM_Object MakeSphereR ( in double theR )
      return_value = MakeSphereR ( theR )
      GEOM_Object MakeSpherePntR ( in GEOM_Object thePnt, in double theR )
      return_value = MakeSpherePntR ( thePnt, theR )
      GEOM_Object MakePrismVecH ( in GEOM_Object theBase, in GEOM_Object theVec, in double theH )
      return_value = MakePrismVecH ( theBase, theVec, theH )
      GEOM_Object MakePrismTwoPnt ( in GEOM_Object theBase, in GEOM_Object thePoint1, in GEOM_Object thePoint2 )
      return_value = MakePrismTwoPnt ( theBase, thePoint1, thePoint2 )
      GEOM_Object MakePipe ( in GEOM_Object theBase, in GEOM_Object thePath )
      return_value = MakePipe ( theBase, thePath )
      GEOM_Object MakeRevolutionAxisAngle ( in GEOM_Object theBase, in GEOM_Object theAxis, in double theAngle )
      return_value = MakeRevolutionAxisAngle ( theBase, theAxis, theAngle )
      GEOM_Object MakeFilling ( in GEOM_Object theShape, in long theMinDeg, in long theMaxDeg, in double theTol2D, in double theTol3D, in long theNbIter )
      return_value = MakeFilling ( theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_IShapesOperations
      IDL file
      Python
      GEOM_Object MakeEdge ( in GEOM_Object thePnt1, in GEOM_Object thePnt2 )
      return_value = MakeEdge ( thePnt1, thePnt2 )
      GEOM_Object MakeWire ( in ListOfGO theEdgesAndWires )
      return_value = MakeWire ( theEdgesAndWires )
      GEOM_Object MakeFace ( in GEOM_Object theWire, in boolean isPlanarWanted )
      return_value = MakeFace ( theWire, isPlanarWanted )
      GEOM_Object MakeFaceWires ( in ListOfGO theWires, in boolean isPlanarWanted )
      return_value = MakeFaceWires ( theWires, isPlanarWanted )
      GEOM_Object MakeShell ( in ListOfGO theFacesAndShells )
      return_value = MakeShell ( theFacesAndShells )
      GEOM_Object MakeSolidShell ( in GEOM_Object theShell )
      return_value = MakeSolidShell ( theShell )
      GEOM_Object MakeSolidShells ( in ListOfGO theShells )
      return_value = MakeSolidShells ( theShells )
      GEOM_Object MakeCompound ( in ListOfGO theShapes )
      return_value = MakeCompound ( theShapes )
      GEOM_Object MakeGlueFaces ( in GEOM_Object theShape, in double theTolerance )
      return_value = MakeGlueFaces ( theShape, theTolerance )
      ListOfGO MakeExplode ( in GEOM_Object theShape, in long theShapeType, in boolean isSorted )
      return_value = MakeExplode ( theShape, theShapeType, isSorted )
      long NumberOfFaces ( in GEOM_Object theShape )
      return_value = NumberOfFaces ( theShape )
      long NumberOfEdges ( in GEOM_Object theShape )
      return_value = NumberOfEdges ( theShape )
      GEOM_Object ChangeOrientation ( in GEOM_Object theShape )
      return_value = ChangeOrientation ( theShape )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_IBlocksOperations
      IDL file
      Python
      GEOM_Object MakeQuadFaceFourVertices ( in GEOM_Object thePnt1, in GEOM_Object thePnt2, in GEOM_Object thePnt3, in GEOM_Object thePnt4 )
      return_value = MakeQuadFaceFourVertices ( thePnt1, thePnt2, thePnt3, thePnt4 )
      GEOM_Object MakeQuadFaceFourEdges ( in GEOM_Object theEdge1, in GEOM_Object theEdge2, in GEOM_Object theEdge3, in GEOM_Object theEdge4 )
      return_value = MakeQuadFaceFourEdges ( theEdge1, theEdge2, theEdge3, theEdge4 )
      GEOM_Object MakeQuadFaceTwoEdges ( in GEOM_Object theEdge1, in GEOM_Object theEdge2 )
      return_value = MakeQuadFaceTwoEdges ( theEdge1, theEdge2 )
      GEOM_Object MakeHexaSolidSixFaces ( in GEOM_Object theFace1, in GEOM_Object theFace2, in GEOM_Object theFace3, in GEOM_Object theFace4, in GEOM_Object theFace5, in GEOM_Object theFace6 )
      return_value = MakeHexaSolidSixFaces ( theFace1, theFace2, theFace3, theFace4, theFace5, theFace6 )
      GEOM_Object MakeHexaSolidTwoFaces ( in GEOM_Object theFace1, in GEOM_Object theFace2 )
      return_value = MakeHexaSolidTwoFaces ( theFace1, theFace2 )
      GEOM_Object GetEdge ( in GEOM_Object theShape, in GEOM_Object thePoint1, in GEOM_Object thePoint2 )
      return_value = GetEdge ( theShape, thePoint1, thePoint2 )
      GEOM_Object GetFaceByPoints ( in GEOM_Object theShape, in GEOM_Object thePoint1, in GEOM_Object thePoint2, in GEOM_Object thePoint3, in GEOM_Object thePoint4 )
      return_value = GetFaceByPoints ( theShape, thePoint1, thePoint2, thePoint3, thePoint4 )
      GEOM_Object GetFaceByEdges ( in GEOM_Object theShape, in GEOM_Object theEdge1, in GEOM_Object theEdge2 )
      return_value = GetFaceByEdges ( theShape, theEdge1, theEdge2 )
      GEOM_Object GetOppositeFace ( in GEOM_Object theBlock, in GEOM_Object theFace )
      return_value = GetOppositeFace ( theBlock, theFace )
      GEOM_Object GetFaceNearPoint ( in GEOM_Object theShape, in GEOM_Object thePoint )
      return_value = GetFaceNearPoint ( theShape, thePoint )
      GEOM_Object GetFaceByNormale ( in GEOM_Object theBlock, in GEOM_Object theVector )
      return_value = GetFaceByNormale ( theBlock, theVector )
      boolean IsCompoundOfBlocks ( in GEOM_Object theCompound, in long theMinNbFaces, in long theMaxNbFaces, out long theNbBlocks )
      [ return_value, theNbBlocks ] = IsCompoundOfBlocks ( theCompound, theMinNbFaces, theMaxNbFaces )
      ListOfGO ExplodeCompoundOfBlocks ( in GEOM_Object theCompound, in long theMinNbFaces, in long theMaxNbFaces )
      return_value = ExplodeCompoundOfBlocks ( theCompound, theMinNbFaces, theMaxNbFaces )
      GEOM_Object GetBlockNearPoint ( in GEOM_Object theCompound, in GEOM_Object thePoint )
      return_value = GetBlockNearPoint ( theCompound, thePoint )
      GEOM_Object GetBlockByParts ( in GEOM_Object theCompound, in ListOfGO theParts )
      return_value = GetBlockByParts ( theCompound, theParts )
      ListOfGO GetBlocksByParts ( in GEOM_Object theCompound, in ListOfGO theParts )
      return_value = GetBlocksByParts ( theCompound, theParts )
      GEOM_Object MakeMultiTransformation1D ( in GEOM_Object theBlock, in long theDirFace1, in long theDirFace2, in long theNbTimes )
      return_value = MakeMultiTransformation1D ( theBlock, theDirFace1, theDirFace2, theNbTimes )
      GEOM_Object MakeMultiTransformation2D ( in GEOM_Object theBlock, in long theDirFace1U, in long theDirFace2U, in long theNbTimesU, in long theDirFace1V, in long theDirFace2V, in long theNbTimesV )
      return_value = MakeMultiTransformation2D ( theBlock, theDirFace1U, theDirFace2U, theNbTimesU, theDirFace1V, theDirFace2V, theNbTimesV )

      - - - - - - - - - - - - - - - - - - - -
      interface GEOM_IBooleanOperations
      IDL file
      Python
      GEOM_Object MakeBoolean ( in GEOM_Object theShape1, in GEOM_Object theShape2, in long theOperation )
      return_value = MakeBoolean ( theShape1, theShape2, theOperation )
      GEOM_Object MakePartition ( in ListOfGO theShapes, in ListOfGO theTools, in ListOfGO theKeepInside, in ListOfGO theRemoveInside, in short theLimit, in boolean theRemoveWebs, in ListOfLong theMaterials )
      return_value = MakePartition ( theShapes, theTools, theKeepInside, theRemoveInside, theLimit, theRemoveWebs, theMaterials )
      GEOM_Object MakeHalfPartition ( in GEOM_Object theShape, in GEOM_Object thePlane )
      return_value = MakeHalfPartition ( theShape, thePlane )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_ICurvesOperations
      IDL file
      Python
      GEOM_Object MakeCirclePntVecR ( in GEOM_Object thePnt, in GEOM_Object theVec, in double theR )
      return_value = MakeCirclePntVecR ( thePnt, theVec, theR )
      GEOM_Object MakeCircleThreePnt ( in GEOM_Object thePnt1, in GEOM_Object thePnt2, in GEOM_Object thePnt3 )
      return_value = MakeCircleThreePnt ( thePnt1, thePnt2, thePnt3 )
      GEOM_Object MakeEllipse ( in GEOM_Object thePnt, in GEOM_Object theVec, in double theRMajor, in double theRMinor )
      return_value = MakeEllipse ( thePnt, theVec, theRMajor, theRMinor )
      GEOM_Object MakeArc ( in GEOM_Object thePnt1, in GEOM_Object thePnt2, in GEOM_Object thePnt3 )
      return_value = MakeArc ( thePnt1, thePnt2, thePnt3 )
      GEOM_Object MakePolyline ( in ListOfGO thePoints )
      return_value = MakePolyline ( thePoints )
      GEOM_Object MakeSplineBezier ( in ListOfGO thePoints )
      return_value = MakeSplineBezier ( thePoints )
      GEOM_Object MakeSplineInterpolation ( in ListOfGO thePoints )
      return_value = MakeSplineInterpolation ( thePoints )
      GEOM_Object MakeSketcher ( in string theCommand, in ListOfDouble theWorkingPlane )
      return_value = MakeSketcher ( theCommand, theWorkingPlane )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_ILocalOperations
      IDL file
      Python
      GEOM_Object MakeFilletAll ( in GEOM_Object theShape, in double theR )
      return_value = MakeFilletAll ( theShape, theR )
      GEOM_Object MakeFilletEdges ( in GEOM_Object theShape, in double theR, in ListOfLong theEdges )
      return_value = MakeFilletEdges ( theShape, theR, theEdges )
      GEOM_Object MakeFilletFaces ( in GEOM_Object theShape, in double theR, in ListOfLong theFaces )
      return_value = MakeFilletFaces ( theShape, theR, theFaces )
      GEOM_Object MakeChamferAll ( in GEOM_Object theShape, in double theD )
      return_value = MakeChamferAll ( theShape, theD )
      GEOM_Object MakeChamferEdge ( in GEOM_Object theShape, in double theD1, in double theD2, in long theFace1, in long theFace2 )
      return_value = MakeChamferEdge ( theShape, theD1, theD2, theFace1, theFace2 )
      GEOM_Object MakeChamferFaces ( in GEOM_Object theShape, in double theD1, in double theD2, in ListOfLong theFaces )
      return_value = MakeChamferFaces ( theShape, theD1, theD2, theFaces )
      GEOM_Object MakeArchimede ( in GEOM_Object theShape, in double theWeight, in double theWaterDensity, in double theMeshDeflection )
      return_value = MakeArchimede ( theShape, theWeight, theWaterDensity, theMeshDeflection )
      long GetSubShapeIndex ( in GEOM_Object theShape, in GEOM_Object theSubShape )
      return_value = GetSubShapeIndex ( theShape, theSubShape )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_IHealingOperations
      IDL file
      Python
      GEOM_Object ProcessShape ( in GEOM_Object theShapes, in string_array theOperators, in string_array theParameters, in string_array theValues )
      return_value = ProcessShape ( theShapes, theOperators, theParameters, theValues )
      void GetShapeProcessParameters ( out string_array theOperators, out string_array theParameters, out string_array theValues )
      [ theOperators, theParameters, theValues ] = GetShapeProcessParameters ( )
      GEOM_Object SuppressFaces ( in GEOM_Object theObject, in short_array theFaces )
      return_value = SuppressFaces ( theObject, theFaces )
      GEOM_Object CloseContour ( in GEOM_Object theObject, in short_array theWires, in boolean isCommonVertex )
      return_value = CloseContour ( theObject, theWires, isCommonVertex )
      GEOM_Object RemoveIntWires ( in GEOM_Object theObject, in short_array theWires )
      return_value = RemoveIntWires ( theObject, theWires )
      GEOM_Object FillHoles ( in GEOM_Object theObject, in short_array theWires )
      return_value = FillHoles ( theObject, theWires )
      GEOM_Object Sew ( in GEOM_Object theObject, in double theTolerance )
      return_value = Sew ( theObject, theTolerance )
      GEOM_Object DivideEdge ( in GEOM_Object theObject, in short theEdgeIndex, in double theValue, in boolean isByParameter )
      return_value = DivideEdge ( theObject, theEdgeIndex, theValue, isByParameter )
      boolean GetFreeBoundary ( in GEOM_Object theObject, out ListOfGO theClosedWires, out ListOfGO theOpenWires )
      [ return_value, theClosedWires, theOpenWires ] = GetFreeBoundary ( theObject )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_IInsertOperations
      IDL file
      Python
      GEOM_Object MakeCopy ( in GEOM_Object theOriginal )
      return_value = MakeCopy ( theOriginal )
      void Export ( in GEOM_Object theObject, in string theFileName, in string theFormatName )
      Export ( theObject, theFileName, theFormatName )
      GEOM_Object Import ( in string theFileName, in string theFormatName )
      return_value = Import ( theFileName, theFormatName )
      void ImportTranslators ( out string_array theFormats, out string_array thePatterns )
      [ theFormats, thePatterns ] = ImportTranslators ( )
      void ExportTranslators ( out string_array theFormats, out string_array thePatterns )
      [ theFormats, thePatterns ] = ExportTranslators ( )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_IMeasureOperations
      IDL file
      Python
      void GetBasicProperties ( in GEOM_Object theShape, out double theLength, out double theSurfArea, out double theVolume )
      [ theLength, theSurfArea, theVolume ] = GetBasicProperties ( theShape )
      GEOM_Object GetCentreOfMass ( in GEOM_Object theShape )
      return_value = GetCentreOfMass ( theShape )
      void GetInertia ( in GEOM_Object theShape, out double I11, out double I12, out double I13, out double I21, out double I22, out double I23, out double I31, out double I32, out double I33, out double Ix, out double Iy, out double Iz )
      [ I11, I12, I13, I21, I22, I23, I31, I32, I33, Ix, Iy, Iz ] = GetInertia ( theShape )
      void GetBoundingBox ( in GEOM_Object theShape, out double Xmin, out double Xmax, out double Ymin, out double Ymax, out double Zmin, out double Zmax )
      [ Xmin, Xmax, Ymin, Ymax, Zmin, Zmax ] = GetBoundingBox ( theShape )
      void GetTolerance ( in GEOM_Object theShape, out double FaceMin, out double FaceMax, out double EdgeMin, out double EdgeMax, out double VertMin, out double VertMax )
      [ FaceMin, FaceMax, EdgeMin, EdgeMax, VertMin, VertMax ] = GetTolerance ( theShape )
      boolean CheckShape ( in GEOM_Object theShape, out string theDescription )
      [ return_value, theDescription ] = CheckShape ( theShape )
      string WhatIs ( in GEOM_Object theShape )
      return_value = WhatIs ( theShape )
      double GetMinDistance ( in GEOM_Object theShape1, in GEOM_Object theShape2, out double X1, out double Y1, out double Z1, out double X2, out double Y2, out double Z2 )
      [ return_value, X1, Y1, Z1, X2, Y2, Z2 ] = GetMinDistance ( theShape1, theShape2 )
      void PointCoordinates ( in GEOM_Object theShape, out double X, out double Y, out double Z )
      [ X, Y, Z ] = PointCoordinates ( theShape )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_IGroupOperations
      IDL file
      Python
      GEOM_Object CreateGroup ( in GEOM_Object theMainShape, in long theShapeType )
      return_value = CreateGroup ( theMainShape, theShapeType )
      void AddObject ( in GEOM_Object theGroup, in long theSubShapeId )
      AddObject ( theGroup, theSubShapeId )
      void RemoveObject ( in GEOM_Object theGroup, in long theSubShapeId )
      RemoveObject ( theGroup, theSubShapeId )
      long GetType ( in GEOM_Object theGroup )
      return_value = GetType ( theGroup )
      GEOM_Object GetMainShape ( in GEOM_Object theGroup )
      return_value = GetMainShape ( theGroup )
      ListOfLong GetObjects ( in GEOM_Object theGroup )
      return_value = GetObjects ( theGroup )

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      interface GEOM_Gen
      IDL file
      Python
      void Undo ( in long theStudyID )
      Undo ( theStudyID )
      void Redo ( in long theStudyID )
      Redo ( theStudyID )
      SObject AddInStudy ( in Study theStudy, in GEOM_Object theObject, in string theName, in GEOM_Object theFather )
      return_value = AddInStudy ( theStudy, theObject, theName, theFather )
      GEOM_IBasicOperations GetIBasicOperations ( in long theStudyID )
      return_value = GetIBasicOperations ( theStudyID )
      GEOM_ITransformOperations GetITransformOperations ( in long theStudyID )
      return_value = GetITransformOperations ( theStudyID )
      GEOM_I3DPrimOperations GetI3DPrimOperations ( in long theStudyID )
      return_value = GetI3DPrimOperations ( theStudyID )
      GEOM_IShapesOperations GetIShapesOperations ( in long theStudyID )
      return_value = GetIShapesOperations ( theStudyID )
      GEOM_IBooleanOperations GetIBooleanOperations ( in long theStudyID )
      return_value = GetIBooleanOperations ( theStudyID )
      GEOM_ICurvesOperations GetICurvesOperations ( in long theStudyID )
      return_value = GetICurvesOperations ( theStudyID )
      GEOM_ILocalOperations GetILocalOperations ( in long theStudyID )
      return_value = GetILocalOperations ( theStudyID )
      GEOM_IHealingOperations GetIHealingOperations ( in long theStudyID )
      return_value = GetIHealingOperations ( theStudyID )
      GEOM_IInsertOperations GetIInsertOperations ( in long theStudyID )
      return_value = GetIInsertOperations ( theStudyID )
      GEOM_IMeasureOperations GetIMeasureOperations ( in long theStudyID )
      return_value = GetIMeasureOperations ( theStudyID )
      GEOM_IBlocksOperations GetIBlocksOperations ( in long theStudyID )
      return_value = GetIBlocksOperations ( theStudyID )
      GEOM_IGroupOperations GetIGroupOperations ( in long theStudyID )
      return_value = GetIGroupOperations ( theStudyID )
      void RemoveObject ( in GEOM_Object theObject )
      RemoveObject ( theObject )
      GEOM_Object GetObject ( in long theStudyID, in string theEntry )
      return_value = GetObject ( theStudyID, theEntry )
      GEOM_Object AddSubShape ( in GEOM_Object theMainShape, in ListOfLong theIndices )
      return_value = AddSubShape ( theMainShape, theIndices )
      GEOM_Object GetIORFromString ( in string theIOR )
      return_value = GetIORFromString ( theIOR )
      string GetStringFromIOR ( in GEOM_Object theObject )
      return_value = GetStringFromIOR ( theObject )

      -
      diff --git a/doc/salome/tui/GEOM/HTML/GEOM_Shape.html b/doc/salome/tui/GEOM/HTML/GEOM_Shape.html deleted file mode 100644 index bfee3cd70..000000000 --- a/doc/salome/tui/GEOM/HTML/GEOM_Shape.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - -
      interface GEOM_Shape
      IDL file
      Python
      TMPFile GetShapeStream ( )
      return_value = GetShapeStream ( )
      GEOM_Gen Engine ( )
      return_value = Engine ( )

      -
      diff --git a/doc/salome/tui/GEOM/doxyfile_py.in b/doc/salome/tui/GEOM/doxyfile_py.in deleted file mode 100755 index 9d4d118db..000000000 --- a/doc/salome/tui/GEOM/doxyfile_py.in +++ /dev/null @@ -1,242 +0,0 @@ -# Doxyfile 1.4.6 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = "SALOME - GEOM - v.@VERSION@" -PROJECT_NUMBER = -OUTPUT_DIRECTORY = ../ -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = NO -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = NO -ABBREVIATE_BRIEF = -ALWAYS_DETAILED_SEC = YES -INLINE_INHERITED_MEMB = YES -FULL_PATH_NAMES = YES -STRIP_FROM_PATH = ../../../share/salome \ - ../../../build/salome -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = YES -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = NO -INHERIT_DOCS = YES -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 5 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = YES -OPTIMIZE_OUTPUT_JAVA = YES -BUILTIN_STL_SUPPORT = NO -DISTRIBUTE_GROUP_DOC = NO -SUBGROUPING = YES - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = YES -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = YES -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = NO -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 25 -SHOW_USED_FILES = NO -SHOW_DIRECTORIES = NO -FILE_VERSION_FILTER = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = log.txt - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = ../../../share/salome/src \ - ../../../share/salome/idl \ - ../../../build/salome/bin -FILE_PATTERNS = *.hxx *.cxx *.h *.c *.hh *.cc *.idl python_extension_must_be_here -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = sources/ -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = YES - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = NO -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = NO -REFERENCES_RELATION = YES -USE_HTAGS = NO -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = YES -COLS_IN_ALPHA_INDEX = 3 -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = GEOM -HTML_FILE_EXTENSION = .html -HTML_HEADER = sources/myheader.html -HTML_FOOTER = sources/footer.html -HTML_STYLESHEET = sources/static/doxygen.css -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = YES -TOC_EXPAND = YES -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = NO -TREEVIEW_WIDTH = 250 - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = NO -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = NO - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = NO -HAVE_DOT = YES -CLASS_GRAPH = YES -COLLABORATION_GRAPH = NO -GROUP_GRAPHS = NO -UML_LOOK = NO -TEMPLATE_RELATIONS = YES -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = NO -CALL_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = jpg -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 1024 -MAX_DOT_GRAPH_HEIGHT = 1200 -MAX_DOT_GRAPH_DEPTH = 0 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = NO -DOT_CLEANUP = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO diff --git a/doc/salome/tui/GEOM/sources/Application-About.png b/doc/salome/tui/GEOM/sources/Application-About.png deleted file mode 100755 index 7b58330d50856e28562e8f9ed80dae72d6e6dda3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19226 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

      5r3>=?gKv-6#gF2kVYm^Euk4pDx%bDo{L~m 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 Ao&W#< diff --git a/doc/salome/tui/GEOM/sources/application.gif b/doc/salome/tui/GEOM/sources/application.gif deleted file mode 100644 index 0b05d5c18ee88779d283508781836e2b151f606f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2602 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 diff --git a/doc/salome/tui/GEOM/sources/bg_salome.gif b/doc/salome/tui/GEOM/sources/bg_salome.gif deleted file mode 100755 index 429489c691d274d2af69108c574491a022e78824..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17293 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 diff --git a/doc/salome/tui/GEOM/sources/myheader_py2.html b/doc/salome/tui/GEOM/sources/myheader_py2.html deleted file mode 100755 index 372b2247f..000000000 --- a/doc/salome/tui/GEOM/sources/myheader_py2.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - Main Page - - - -  -
      - - - - - - -
      -
      -
      - - - - diff --git a/doc/salome/tui/GEOM/sources/static/page2.html b/doc/salome/tui/GEOM/sources/static/page2.html deleted file mode 100755 index 1966a56fc..000000000 --- a/doc/salome/tui/GEOM/sources/static/page2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - Main Page - - - - -   -
      - - - - - - - - -
      - - -
      -
      - - -
      - - diff --git a/doc/salome/tui/GEOM/sources/static/tree.js.in b/doc/salome/tui/GEOM/sources/static/tree.js.in deleted file mode 100755 index 52841f853..000000000 --- a/doc/salome/tui/GEOM/sources/static/tree.js.in +++ /dev/null @@ -1,59 +0,0 @@ -foldersTree = gFld("SALOME v.@VERSION@ ", "", "") - insDoc(foldersTree, gLnk("Main Page", "", "main.html")) - -aux1 = insFld(foldersTree, gFld("TUI Reference Guide", "")) - aux2 = insFld(aux1, gFld("Modules", "")) - aux3 = insFld(aux2, gFld("SALOME GEOMETRY module", "")) -/*! insDoc(aux3, gLnk("Overview", "", "overview_Geometry.html"))*/ - aux4 = insFld(aux3, gFld("Packages", "")) - insDoc(aux4, gLnk("GEOM", "", "namespaceGEOM.html")) -/*! insDoc(aux3, gLnk("Examples", "", "examples_GEOM.html")) -*/ - -/*! Data structures -*/ - insDoc(aux1, gLnk("Data Structures", "", "annotated.html")) - -/*! insDoc(aux1, gLnk("GEOM::GEOM_Gen", "", "interfaceGEOM_1_1GEOM__Gen.html")) - insDoc(aux1, gLnk("GEOM::GEOM_Shape", "", "interfaceGEOM_1_1GEOM__Shape.html")) -*/ - insDoc(aux1, gLnk("Class Hierarchy", "", "hierarchy.html")) - -/*! - aux3 = insFld(aux2, gFld("GEOM::GEOM_Gen", "", "interfaceGEOM_1_1GEOM__Gen.html")) - aux3 = insFld(aux2, gFld("GEOM::GEOM_Shape", "", "interfaceGEOM_1_1GEOM__Shape.html")) - aux3 = insFld(aux2, gFld("GEOM::AxisStruct", "", "structGEOM_1_1AxisStruct.html")) - aux3 = insFld(aux2, gFld("GEOM::DirStruct", "", "structGEOM_1_1DirStruct.html")) - aux3 = insFld(aux2, gFld("GEOM::PointStruct", "", "structGEOM_1_1PointStruct.html")) -*/ - insDoc(aux1, gLnk("Class methods list", "", "functions.html")) -/*! -aux1 = insFld(foldersTree, gFld("Namespace List", "", "namespaces.html")) - insDoc(aux1, gLnk("GEOM", "", "namespaceGEOM.html")) -*/ - insDoc(aux1, gLnk("Namespace Members", "", "namespacemembers.html")) - - insDoc(aux1, gLnk("File List", "", "files.html")) - -/*! - - insDoc(aux1, gLnk("GEOM_Gen.idl", "", "GEOM__Gen_8idl.html")) - insDoc(aux1, gLnk("GEOM_Shape.idl", "", "GEOM__Shape_8idl.html")) -*/ - -aux1 = insFld(foldersTree, gFld("IDL/Python mapping", "")) - insDoc(aux1, gLnk("Mapping of GEOMETRY IDL definitions to Python language", "", "page2.html")) - -/*!aux1 = insFld(foldersTree, gFld("Python Commands", "", "geompy_doc/main.html")) - insDoc(aux1, gLnk("Package geompy", "", "geompy_doc/namespacegeompy.html")) - insDoc(aux1, gLnk("Namespace Members", "", "geompy_doc/namespacemembers.html")) - insDoc(aux1, gLnk("File geompy.py", "", "geompy_doc/geompy_8py.html")) -*/ - -aux1 = insFld(foldersTree, gFld("Python Commands", "", "geompy_doc/main.html")) - insDoc(aux1, gLnk("Package List", "", "geompy_doc/namespaces.html")) - insDoc(aux1, gLnk("Namespace Members", "", "geompy_doc/namespacemembers.html")) - insDoc(aux1, gLnk("File List", "", "geompy_doc/files.html")) - -/*! insDoc(foldersTree, gLnk("Graphical Class Hierarchy", "", "inherits.html")) -*/ diff --git a/doc/salome/tui/GEOM/sources/static/treeview.js b/doc/salome/tui/GEOM/sources/static/treeview.js deleted file mode 100644 index 55eb43d07..000000000 --- a/doc/salome/tui/GEOM/sources/static/treeview.js +++ /dev/null @@ -1,505 +0,0 @@ -//**************************************************************** -// You are free to copy the "Folder-Tree" script as long as you -// keep this copyright notice: -// Script found in: http://www.geocities.com/Paris/LeftBank/2178/ -// Author: Marcelino Alves Martins (martins@hks.com) December '97. -//**************************************************************** - -//Log of changes: -// 17 Feb 98 - Fix initialization flashing problem with Netscape -// -// 27 Jan 98 - Root folder starts open; support for USETEXTLINKS; -// make the ftien4 a js file -// -// DvH: Dec 2000 - Made some minor changes to support external -// references - -// Definition of class Folder -// ***************************************************************** - -function Folder(folderDescription, tagName, hreference) //constructor -{ - //constant data - this.desc = folderDescription - this.tagName = tagName - this.hreference = hreference - this.id = -1 - this.navObj = 0 - this.iconImg = 0 - this.nodeImg = 0 - this.isLastNode = 0 - - //dynamic data - this.isOpen = true - this.iconSrc = "ftv2folderopen.png" - this.children = new Array - this.nChildren = 0 - - //methods - this.initialize = initializeFolder - this.setState = setStateFolder - this.addChild = addChild - this.createIndex = createEntryIndex - this.hide = hideFolder - this.display = display - this.renderOb = drawFolder - this.totalHeight = totalHeight - this.subEntries = folderSubEntries - this.outputLink = outputFolderLink -} - -function setStateFolder(isOpen) -{ - var subEntries - var totalHeight - var fIt = 0 - var i=0 - - if (isOpen == this.isOpen) - return - - if (browserVersion == 2) - { - totalHeight = 0 - for (i=0; i < this.nChildren; i++) - totalHeight = totalHeight + this.children[i].navObj.clip.height - subEntries = this.subEntries() - if (this.isOpen) - totalHeight = 0 - totalHeight - for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++) - indexOfEntries[fIt].navObj.moveBy(0, totalHeight) - } - this.isOpen = isOpen - propagateChangesInState(this) -} - -function propagateChangesInState(folder) -{ - var i=0 - - if (folder.isOpen) - { - if (folder.nodeImg) - if (folder.isLastNode) - folder.nodeImg.src = "ftv2mlastnode.png" - else - folder.nodeImg.src = "ftv2mnode.png" - folder.iconImg.src = "ftv2folderopen.png" - for (i=0; i 0) - auxEv = "" - else - auxEv = "" - - if (level>0) - if (lastNode) //the last 'brother' in the children array - { - this.renderOb(leftSide + auxEv + "") -// leftSide = leftSide + "" - this.isLastNode = 1 - } - else - { - this.renderOb(leftSide + auxEv + "") - leftSide = leftSide + "" - this.isLastNode = 0 - } - else - this.renderOb("") - - if (nc > 0) - { - level = level + 1 - for (i=0 ; i < this.nChildren; i++) - { - if (i == this.nChildren-1) - this.children[i].initialize(level, 1, leftSide) - else - this.children[i].initialize(level, 0, leftSide) - } - } -} - -function drawFolder(leftSide) -{ - if (browserVersion == 2) { - if (!doc.yPos) - doc.yPos=8 - doc.write("") - } - if (browserVersion == 3) - { - doc.write("
      ") - } - - doc.write("\n") - doc.write("\n\n") - doc.write("\n
      ") - doc.write(leftSide) - this.outputLink() - doc.write("") - doc.write("") - if (USETEXTLINKS) - { - this.outputLink() - doc.write(this.desc + "") - } - else - doc.write(this.desc) - -/*! - if (this.tagName!="") - { - doc.write(" [external]") - } -*/ - doc.write("
      \n") - - if (browserVersion == 2) { - doc.write("") - } - if (browserVersion == 3) { - doc.write("
      ") - } - - if (browserVersion == 1) { - this.navObj = doc.all["folder"+this.id] - this.iconImg = doc.all["folderIcon"+this.id] - this.nodeImg = doc.all["nodeIcon"+this.id] - } else if (browserVersion == 2) { - this.navObj = doc.layers["folder"+this.id] - this.iconImg = this.navObj.document.images["folderIcon"+this.id] - this.nodeImg = this.navObj.document.images["nodeIcon"+this.id] - doc.yPos=doc.yPos+this.navObj.clip.height - } else if (browserVersion == 3) { - this.navObj = doc.getElementById("folder"+this.id) - this.iconImg = doc.images.namedItem("folderIcon"+this.id) - this.nodeImg = doc.images.namedItem("nodeIcon"+this.id) - } -} - -function outputFolderLink() -{ - if (this.hreference) - { - doc.write(" 0) - doc.write("onClick='javascript:clickOnFolder("+this.id+")'") - doc.write(">") - } - else - doc.write("") -} - -function addChild(childNode) -{ - this.children[this.nChildren] = childNode - this.nChildren++ - return childNode -} - -function folderSubEntries() -{ - var i = 0 - var se = this.nChildren - - for (i=0; i < this.nChildren; i++){ - if (this.children[i].children) //is a folder - se = se + this.children[i].subEntries() - } - - return se -} - - -// Definition of class Item (a document or link inside a Folder) -// ************************************************************* - -function Item(itemDescription, tagName, itemLink) // Constructor -{ - // constant data - this.desc = itemDescription - this.tagName = tagName - this.link = itemLink - this.id = -1 //initialized in initalize() - this.navObj = 0 //initialized in render() - this.iconImg = 0 //initialized in render() - this.iconSrc = "ftv2doc.png" - - // methods - this.initialize = initializeItem - this.createIndex = createEntryIndex - this.hide = hideItem - this.display = display - this.renderOb = drawItem - this.totalHeight = totalHeight -} - -function hideItem() -{ - if (browserVersion == 1 || browserVersion == 3) { - if (this.navObj.style.display == "none") - return - this.navObj.style.display = "none" - } else { - if (this.navObj.visibility == "hidden") - return - this.navObj.visibility = "hidden" - } -} - -function initializeItem(level, lastNode, leftSide) -{ - this.createIndex() - - if (level>0) - if (lastNode) //the last 'brother' in the children array - { - this.renderOb(leftSide + "") - leftSide = leftSide + "" - } - else - { - this.renderOb(leftSide + "") - leftSide = leftSide + "" - } - else - this.renderOb("") -} - -function drawItem(leftSide) -{ - if (browserVersion == 2) - doc.write("") - if (browserVersion == 3) - doc.write("
      ") - - doc.write("\n\n") - doc.write("\n
      ") - doc.write(leftSide) - if (this.link!="") - { - doc.write("") - } - doc.write("") - if (this.link!="") - { - doc.write("") - } - doc.write("") - if (USETEXTLINKS && this.link!="") - doc.write("" + this.desc + "") - else - doc.write(this.desc) -/*! - if (this.tagName!="") - { - doc.write(" [external]"); - } -*/ - doc.write("\n
      \n") - - if (browserVersion == 2) - doc.write("") - if (browserVersion == 3) - doc.write("
      ") - - if (browserVersion == 1) { - this.navObj = doc.all["item"+this.id] - this.iconImg = doc.all["itemIcon"+this.id] - } else if (browserVersion == 2) { - this.navObj = doc.layers["item"+this.id] - this.iconImg = this.navObj.document.images["itemIcon"+this.id] - doc.yPos=doc.yPos+this.navObj.clip.height - } else if (browserVersion == 3) { - this.navObj = doc.getElementById("item"+this.id) - this.iconImg = doc.images.namedItem("itemIcon"+this.id) - } -} - - -// Methods common to both objects (pseudo-inheritance) -// ******************************************************** - -function display() -{ - if (browserVersion == 1 || browserVersion == 3) - this.navObj.style.display = "block" - else - this.navObj.visibility = "show" -} - -function createEntryIndex() -{ - this.id = nEntries - indexOfEntries[nEntries] = this - nEntries++ -} - -// total height of subEntries open -function totalHeight() //used with browserVersion == 2 -{ - var h = this.navObj.clip.height - var i = 0 - - if (this.isOpen) //is a folder and _is_ open - for (i=0 ; i < this.nChildren; i++) - h = h + this.children[i].totalHeight() - - return h -} - - -// Events -// ********************************************************* - -function clickOnFolder(folderId) -{ - var clicked = indexOfEntries[folderId] - - if (!clicked.isOpen) - clickOnNode(folderId) - - return - - if (clicked.isSelected) - return -} - -function clickOnNode(folderId) -{ - var clickedFolder = 0 - var state = 0 - - clickedFolder = indexOfEntries[folderId] - state = clickedFolder.isOpen - - clickedFolder.setState(!state) //open<->close -} - -function initializeDocument() -{ - doc = document; - if (doc.all) - browserVersion = 1 //IE4 - else - if (doc.layers) - browserVersion = 2 //NS4 - else if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1) - browserVersion = 3 //mozilla - else - browserVersion = 0 //other - - foldersTree.initialize(0, 1, "") - foldersTree.display() - - if (browserVersion > 0) - { - if(browserVersion != 3) - doc.write(" ") - - // close the whole tree - clickOnNode(0) - // open the root folder - clickOnNode(0) - } -} - -// Auxiliary Functions for Folder-Treee backward compatibility -// ********************************************************* - -function gFld(description, tagName, hreference) -{ - folder = new Folder(description, tagName, hreference) - return folder -} - -function gLnk(description, tagName, linkData) -{ - fullLink = "" - - if (linkData!="") - { - fullLink = "'"+linkData+"' target=\"basefrm\"" - } - - linkItem = new Item(description, tagName, fullLink) - return linkItem -} - -function insFld(parentFolder, childFolder) -{ - return parentFolder.addChild(childFolder) -} - -function insDoc(parentFolder, document) -{ - parentFolder.addChild(document) -} - -// Global variables -// **************** - -USETEXTLINKS = 1 -indexOfEntries = new Array -nEntries = 0 -doc = document -browserVersion = 0 -selectedFolder=0 diff --git a/doc/salome/tui/Makefile.am b/doc/salome/tui/Makefile.am index b401ba210..3bdc1b46b 100644 --- a/doc/salome/tui/Makefile.am +++ b/doc/salome/tui/Makefile.am @@ -1,4 +1,7 @@ -# Copyright (C) 2005 CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -19,39 +22,32 @@ # File : Makefile.in # Author : Vasily Rusyaev (Open Cascade NN) # Module : doc - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am -EXTRA_DIST+=GEOM +EXTRA_DIST += images static -dev_docs: - cp -fr $(srcdir)/GEOM ./INPUT; \ - cp -f ./GEOM/doxyfile ./INPUT; \ - cd INPUT; \ - sed 's|../../../share/salome|$(top_srcdir)|' ./doxyfile > ./doxyfile1; \ - sed 's|../../build/salome|$(top_builddir)|' ./doxyfile1 > ./doxyfile2; \ - mv -f doxyfile2 doxyfile1; \ - echo "DOXYGEN SUPPORT PYTHON - @DOXYGEN_WITH_PYTHON@"; \ - if( test "x@DOXYGEN_WITH_PYTHON@" = "xyes"); then \ - sed 's|python_extension_must_be_here|*.py|' ./doxyfile1 > ./doxyfile2; \ - mv -f doxyfile2 doxyfile1; \ - $(DOXYGEN) -u ./doxyfile1; \ - else \ - sed 's|python_extension_must_be_here||' ./doxyfile1 > ./doxyfile2; \ - mv -f doxyfile2 doxyfile1; \ - fi; \ - if( test "x@DOXYGEN_WITH_STL@" = "xyes"); then \ - sed -e 's|BUILTIN_STL_SUPPORT = NO|BUILTIN_STL_SUPPORT = YES|' ./doxyfile1 > ./doxyfile2; \ - mv -f doxyfile2 doxyfile1; \ - fi; \ - mv -f doxyfile1 doxyfile; \ - echo "Running doxygen in directory:"`pwd`; \ - $(DOXYGEN) ./doxyfile; \ - cd ../; \ - cp -fr $(srcdir)/GEOM/sources/ GEOM/ ; \ - rm -fr INPUT +dev_docs: doxyfile + echo "===========================================" ; \ + echo "Replacing geompyDC by geompy" ; \ + echo "===========================================" ; \ + sed -e "/class geompyDC/d" -e "s/^ *#/#/g" -e "s/^ *def /def /g" \ + -e "s/geompyDC/geompy/g" $(top_srcdir)/src/GEOM_SWIG/geompyDC.py > \ + $(top_builddir)/src/GEOM_SWIG/geompy.py ; \ + echo "===========================================" ; \ + echo "Generating TUI documentation" ; \ + echo "===========================================" ; \ + $(DOXYGEN) doxyfile ; \ + rm -f $(top_builddir)/src/GEOM_SWIG/geompy.py -doctuidir=$(docdir)/tui/GEOM +clean-local: + -rm -fr GEOM doxygen.bak -nodist_doctui_DATA= GEOM/doxyfile -EXTRA_DIST+= GEOM/doxyfile.in +install-data-local: + if test -d GEOM; then \ + $(INSTALL) -d $(DESTDIR)$(docdir)/tui ; \ + cp -rp GEOM $(DESTDIR)$(docdir)/tui ; \ + fi; + +uninstall-local: + rm -rf $(DESTDIR)$(docdir)/tui/GEOM diff --git a/doc/salome/tui/GEOM/doxyfile.in b/doc/salome/tui/doxyfile.in similarity index 81% rename from doc/salome/tui/GEOM/doxyfile.in rename to doc/salome/tui/doxyfile.in index cba99e1ca..ad1ea5a7d 100755 --- a/doc/salome/tui/GEOM/doxyfile.in +++ b/doc/salome/tui/doxyfile.in @@ -1,11 +1,33 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + # Doxyfile 1.4.6 #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- -PROJECT_NAME = "SALOME - GEOM - v.@VERSION@" +PROJECT_NAME = "Geometry Module Programming Guide v.@VERSION@" PROJECT_NUMBER = -OUTPUT_DIRECTORY = ../ +OUTPUT_DIRECTORY = GEOM CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = NO @@ -15,8 +37,7 @@ ABBREVIATE_BRIEF = ALWAYS_DETAILED_SEC = YES INLINE_INHERITED_MEMB = YES FULL_PATH_NAMES = YES -STRIP_FROM_PATH = ../../../share/salome \ - ../../../build/salome +STRIP_FROM_PATH = @top_srcdir@ @top_builddir@ STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = YES @@ -28,7 +49,7 @@ TAB_SIZE = 5 ALIASES = OPTIMIZE_OUTPUT_FOR_C = YES OPTIMIZE_OUTPUT_JAVA = YES -BUILTIN_STL_SUPPORT = NO +BUILTIN_STL_SUPPORT = @DOXYGEN_SUPPORT_STL@ DISTRIBUTE_GROUP_DOC = NO SUBGROUPING = YES @@ -71,22 +92,26 @@ WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = log.txt +WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = ../../../share/salome/src \ - ../../../share/salome/idl -FILE_PATTERNS = *.hxx *.cxx *.h *.c *.hh *.cc *.idl python_extension_must_be_here +INPUT = @top_srcdir@/src \ + @top_builddir@/src/GEOM_SWIG/geompy.py \ + @top_srcdir@/bin \ + @top_srcdir@/idl \ + @top_builddir@/bin +FILE_PATTERNS = *.idl *.hxx *.cxx *.h *.c *.hh *.cc @DOXYGEN_PYTHON_EXTENSION@ RECURSIVE = YES -EXCLUDE = +EXCLUDE = @top_srcdir@/src/GEOM_SWIG/geompy.py \ + @top_srcdir@/src/GEOM_SWIG/geompyDC.py EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO -IMAGE_PATH = sources/ +IMAGE_PATH = @srcdir@/images INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = YES @@ -113,11 +138,11 @@ IGNORE_PREFIX = # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES -HTML_OUTPUT = GEOM +HTML_OUTPUT = . HTML_FILE_EXTENSION = .html -HTML_HEADER = sources/myheader.html -HTML_FOOTER = sources/footer.html -HTML_STYLESHEET = sources/static/doxygen.css +HTML_HEADER = @srcdir@/static/myheader.html +HTML_FOOTER = @srcdir@/static/footer.html +HTML_STYLESHEET = @srcdir@/static/doxygen.css HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = diff --git a/doc/salome/tui/GEOM/sources/occ.gif b/doc/salome/tui/images/occ.gif similarity index 100% rename from doc/salome/tui/GEOM/sources/occ.gif rename to doc/salome/tui/images/occ.gif diff --git a/doc/salome/tui/GEOM/sources/static/doxygen.css b/doc/salome/tui/static/doxygen.css similarity index 100% rename from doc/salome/tui/GEOM/sources/static/doxygen.css rename to doc/salome/tui/static/doxygen.css diff --git a/doc/salome/tui/GEOM/sources/footer.html b/doc/salome/tui/static/footer.html similarity index 100% rename from doc/salome/tui/GEOM/sources/footer.html rename to doc/salome/tui/static/footer.html diff --git a/doc/salome/tui/GEOM/sources/myheader.html b/doc/salome/tui/static/myheader.html similarity index 100% rename from doc/salome/tui/GEOM/sources/myheader.html rename to doc/salome/tui/static/myheader.html diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index 4c30ee600..7a64111e2 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOM_Gen.idl // Author : Sergey RUIN - +// #ifndef __GEOM_GEN__ #define __GEOM_GEN__ @@ -36,7 +38,7 @@ module GEOM * Topological types of shapes (like Open Cascade types) */ enum shape_type { COMPOUND, COMPSOLID, SOLID, SHELL, - FACE, WIRE, EDGE, VERTEX, SHAPE }; + FACE, WIRE, EDGE, VERTEX, SHAPE }; /*! @@ -76,6 +78,32 @@ module GEOM ST_ONIN }; + /*! + * Kind of method to find inside one main shape some subshapes, + * corresponding to other given shape (its argument) + * Is used in functions GEOM_Gen.RestoreSubShapes() + */ + enum find_shape_method + { + /*! Use GetInPlace functionality. Suits all cases, except transformations */ + FSM_GetInPlace, + + /*! To be used only for transformation result, to find subshapes of argument. + * Only this method can be used after transformation. + */ + FSM_Transformed, + + /*! To find only shared subshapes, not modified by the operation */ + FSM_GetSame, + + /*! Use GetShapesOnShape method (can work only on solids) */ + FSM_GetShapesOnShape, + + /*! Use GetInPlaceByHistory method (can work only after Partition) */ + FSM_GetInPlaceByHistory + }; + + typedef sequence string_array; typedef sequence short_array; typedef sequence ListOfLong; @@ -205,6 +233,18 @@ module GEOM * For example, method return false for GEOM_MARKER */ boolean IsShape(); + + /*! + * Set list of parameters + * \param theParameters is a string containing the notebook variables separated by ":" symbol, + * used for object creation + */ + void SetParameters (in string theParameters); + + /*! + * Return list of notebook variables used for object creation separated by ":" symbol + */ + string GetParameters(); }; @@ -287,6 +327,18 @@ module GEOM GEOM_Object MakePointOnCurve (in GEOM_Object theRefCurve, in double theParameter); + /*! + * Create a point, corresponding to the given parameters on the + * given surface. + * \param theRefSurf The referenced surface. + * \param theUParameter Value of U-parameter on the referenced surface. + * \param theVParameter Value of V-parameter on the referenced surface. + * \return New GEOM_Object, containing the created point. + */ + GEOM_Object MakePointOnSurface (in GEOM_Object theRefSurf, + in double theUParameter, + in double theVParameter); + /*! * Create a point, on two lines intersection. * \param theRefLine1, theRefLine2 The referenced lines. @@ -294,13 +346,13 @@ module GEOM */ GEOM_Object MakePointOnLinesIntersection (in GEOM_Object theRefLine1, in GEOM_Object theRefLine2); - + /*! * Create a vector, corresponding to tangent to the given parameter on the given curve. * \param theRefCurve The referenced curve. * \param theParameter Value of parameter on the referenced curve.This value should be have value * \between 0. and 1.. Value of 0. corresponds first parameter of curve value 1. corresponds - * \last parameter of curve. + * \last parameter of curve. * \return New GEOM_Object, containing the created point. */ GEOM_Object MakeTangentOnCurve (in GEOM_Object theRefCurve, @@ -394,11 +446,11 @@ module GEOM GEOM_Object MakeMarker (in double theOX , in double theOY , in double theOZ, in double theXDX, in double theXDY, in double theXDZ, in double theYDX, in double theYDY, in double theYDZ); - + /*! * Create a tangent plane to specified face in the point with specified parameters. * Values of parameters should be between 0. and 1.0 - * \param theFace - face for which tangent plane shuold be built. + * \param theFace - face for which tangent plane shuold be built. * \param theParameterU - value of parameter by U * \param theParameterV - value of parameter Vthe * \param theTrimSize - defines sizes of created face @@ -474,6 +526,20 @@ module GEOM GEOM_Object TranslateVectorCopy (in GEOM_Object theObject, in GEOM_Object theVector); + /*! + * Translate the given object along the given vector on given distance, + * creating its copy before the translation. + * \param theObject The object to be translated. + * \param theVector Translation vector, giving a direction. + * \param theDistance Translation distance, giving a distance. + * \param theCope Translation copy, creating its copy if true. + * \return New GEOM_Object, containing the translated object. + */ + GEOM_Object TranslateVectorDistance (in GEOM_Object theObject, + in GEOM_Object theVector, + in double theDistance, + in boolean theCopy); + /*! * Translate the given object along the given vector a given number times * \param theObject The object to be translated. @@ -683,6 +749,33 @@ module GEOM GEOM_Object ScaleShapeCopy (in GEOM_Object theObject, in GEOM_Object thePoint, in double theFactor); + /*! + * Scale the given object by different factors along coordinate axes. + * \param theObject The object to be scaled. + * \param thePoint Center point for scaling. + * \param theFactorX,theFactorY,theFactorZ Scaling factors along each axis. + * \return theObject. + */ + GEOM_Object ScaleShapeAlongAxes (in GEOM_Object theObject, + in GEOM_Object thePoint, + in double theFactorX, + in double theFactorY, + in double theFactorZ); + + /*! + * Scale the given object by different factors along coordinate axes, + * creating its copy before the scaling. + * \param theObject The object to be scaled. + * \param thePoint Center point for scaling. + * \param theFactorX,theFactorY,theFactorZ Scaling factors along each axis. + * \return New GEOM_Object, containing the scaled shape. + */ + GEOM_Object ScaleShapeAlongAxesCopy (in GEOM_Object theObject, + in GEOM_Object thePoint, + in double theFactorX, + in double theFactorY, + in double theFactorZ); + /*! * Modify the Location of the given object by LCS. * \param theObject The object to be displaced. @@ -713,6 +806,29 @@ module GEOM GEOM_Object PositionShapeCopy (in GEOM_Object theObject, in GEOM_Object theStartLCS, in GEOM_Object theEndLCS); + + /*! + * Modify the Location of the given object by Path, + * \param theObject The object to be displaced. + * \param thePath Wire or Edge along that the object will be translated. + * \param theDistance progress of Path (0 = actual location, 1 = end of path location). + * \param theCopy is a true or false parameter. true is to create a copy, false to move the object. + * \param theCopy is a true or false parameter. true is to reverse direction, false is to move normal direction. + * \return New GEOM_Object, containing the displaced shape. + */ + + GEOM_Object PositionAlongPath (in GEOM_Object theObject, + in GEOM_Object thePath, + in double theDistance, + in boolean theCopy, + in boolean theReverse); + + /*! + * Recompute the shape from its arguments. + * \param theObject The object to be recomputed. + * \return theObject. + */ + GEOM_Object RecomputeObject (in GEOM_Object theObject); }; /*! @@ -742,6 +858,53 @@ module GEOM */ GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1, in GEOM_Object thePnt2); + /*! + * Create a face specified dimensions along OX-OY coordinate axes, + * with edges parallel to the coordinate axes. + * Center of the face will be at point (0, 0, 0). + * \param theH Height of the Face. + * \param theW Width of the Face. + * \param theOrientation Orientation belong axis OXY OYZ OZX + * \return New GEOM_Object, containing the created face. + */ + GEOM_Object MakeFaceHW (in double theH, in double theW, in short theOrientation); + /*! + * Create a face by normale vector or edge and two specified sizes, + * vertical (H) and horisontal (W). + * \param theVec defines plane. + * \param theH vertical size (height). + * \param theW horisontal size (width). + * \return New GEOM_Object, containing the created face. + */ + GEOM_Object MakeFaceObjHW (in GEOM_Object theObj, in double theH, in double theW); + /*! + * Create a Disk (circular face) with given center, normal vector and radius. + * \param thePnt disk center. + * \param theVec Vector, normal to the plane of the disk. + * \param theR Disk radius. + * \return New GEOM_Object, containing the created disk. + */ + GEOM_Object MakeDiskPntVecR (in GEOM_Object thePnt, + in GEOM_Object theVec, + in double theR); + /*! + * Create a disk (circular face), passing through three given points + * \param thePnt1, thePnt2, thePnt3 Points, defining the disk. + * \return New GEOM_Object, containing the created disk. + */ + GEOM_Object MakeDiskThreePnt (in GEOM_Object thePnt1, + in GEOM_Object thePnt2, + in GEOM_Object thePnt3); + + /*! + * Create a disk specified dimensions along OX-OY coordinate axes, + * Center of the disk at point (0, 0, 0). + * \param theR of the Disk. + * \param theOrientation Orientation belong axis OXY OYZ OZX + * \return New GEOM_Object, containing the created disk. + */ + GEOM_Object MakeDiskR (in double theR, in short theOrientation); + /*! * Create a cylinder with given radius and height at * the origin of coordinate system. Axis of the cylinder @@ -863,6 +1026,18 @@ module GEOM GEOM_Object MakePrismTwoPnt2Ways (in GEOM_Object theBase, in GEOM_Object thePoint1, in GEOM_Object thePoint2); + + /*! + * Create a shape by extrusion of the base shape along a vector, defined by DX DY DZ. + * \param theBase Base shape to be extruded. + * \param DX, DY, DZ end of extrusion vector. + * \return New GEOM_Object, containing the created prism. + */ + GEOM_Object MakePrismDXDYDZ (in GEOM_Object theBase, + in double theDX, in double theDY, in double theDZ); + /* The same prism but in two directions forward&backward */ + GEOM_Object MakePrismDXDYDZ2Ways (in GEOM_Object theBase, + in double theDX, in double theDY, in double theDZ); /*! * Create a shape by extrusion of the base shape along @@ -937,7 +1112,7 @@ module GEOM in GEOM_Object thePath, in boolean theWithContact , in boolean theWithCorrection ); - + /*! * Create a shape by extrusion of the profile shape along * the path shape. The path shape can be a shell or a face. @@ -969,6 +1144,22 @@ module GEOM */ GEOM_Object MakePipeShellsWithoutPath (in ListOfGO theSeqBases, in ListOfGO theLocations); + + /*! + * Create a shape by extrusion of the base shape along + * the path shape with constant bi-normal direction along the given vector. + * The path shape can be a wire or an edge. + * \param theBase Base shape to be extruded. + * \param thePath Path shape to extrude the base shape along it. + * \param theVec Vector defines a constant binormal direction to keep the + * same angle beetween the Direction and the sections + * along the sweep surface. + * \return New GEOM_Object, containing the created pipe. + */ + GEOM_Object MakePipeBiNormalAlongVector (in GEOM_Object theBase, + in GEOM_Object thePath, + in GEOM_Object theVec); + }; /*! @@ -1271,7 +1462,7 @@ module GEOM in long theShapeType, in GEOM_Object theAx1, in shape_state theState); - + /*! * Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively * the specified plane by the certain way, defined through \a theState parameter. @@ -1279,7 +1470,7 @@ module GEOM * \param theShapeType Type of sub-shapes to be retrieved. * \param theAx1 Vector (or line, or linear edge), specifying normal * direction of the plane to find shapes on. - * \param thePnt Point specifying location of the plane to find shapes on. + * \param thePnt Point specifying location of the plane to find shapes on. * \param theState The state of the subshapes to find. * \return List of IDs of all found sub-shapes. */ @@ -1368,6 +1559,45 @@ module GEOM in long theShapeType, in shape_state theState); + /*! + * \brief Find subshapes complying with given status + * \param theCheckShape - the shape to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \return List of IDs of all found sub-shapes. + */ + ListOfLong GetShapesOnShapeIDs (in GEOM_Object theCheckShape, + in GEOM_Object theShape, + in short theShapeType, + in shape_state theState); + + /*! + * \brief Find subshapes complying with given status + * \param theCheckShape - the shape to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \return List of all found sub-shapes. + */ + ListOfGO GetShapesOnShape (in GEOM_Object theCheckShape, + in GEOM_Object theShape, + in short theShapeType, + in shape_state theState); + + /*! + * \brief Find subshapes complying with given status + * \param theCheckShape - the shape to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \return compound includes all found sub-shapes. + */ + GEOM_Object GetShapesOnShapeAsCompound (in GEOM_Object theCheckShape, + in GEOM_Object theShape, + in short theShapeType, + in shape_state theState); + /*! * Get sub-shape(s) of \a theShapeWhere, which are * coincident with \a theShapeWhat or could be a part of it. @@ -1895,6 +2125,17 @@ module GEOM in GEOM_Object thePnt1, in GEOM_Object thePnt2, in boolean theSense); + + /*! + * Create an arc of ellipse of center C and two points P1 P2. + * \param theCenter Center point of the arc. + * \param thePnt1 Major radius is distance from center to Pnt1. + * \param thePnt2 define a plane and Minor radius as a shortest distance from Pnt2 to vector Center->Pnt1. + * \return New GEOM_Object, containing the created arc. + */ + GEOM_Object MakeArcOfEllipse (in GEOM_Object theCenter, + in GEOM_Object thePnt1, + in GEOM_Object thePnt2); /*! @@ -1953,6 +2194,16 @@ module GEOM * \return New GEOM_Object, containing the created wire. */ GEOM_Object MakeSketcher (in string theCommand, in ListOfDouble theWorkingPlane); + + /*! + * Create a 3D sketcher, following the numerical description, + * passed through points created by \a theCoordinates argument. \n + * Format of the description string have to be the following: + * + * "Make3DSketcher[x1, y1, z1, x2, y2, z2, ..., xN, yN, zN]" + */ + + GEOM_Object Make3DSketcher (in ListOfDouble theCoordinates); /*! * Create a sketcher (wire or face), following the textual description, @@ -2009,10 +2260,24 @@ module GEOM GEOM_Object MakeFilletFaces (in GEOM_Object theShape, in double theR, in ListOfLong theFaces); + GEOM_Object MakeFilletFacesR1R2 (in GEOM_Object theShape, in double theR1, in double theR2, in ListOfLong theFaces); + + /*! + * Perform a fillet on face of the specified vertexes of the given shape. + * \param theShape Shape, to perform fillet on. + * \param theR Fillet radius. + * \param theVertexes Global indices of vertexes to perform fillet on. + * \note Global index of sub-shape can be obtained, using method + * GEOM_IShapesOperations.GetSubShapeIndex(). + * \return New GEOM_Object, containing the result shape. + */ + GEOM_Object MakeFillet2D (in GEOM_Object theShape, + in double theR, + in ListOfLong theVertexes); /*! * Perform a symmetric chamfer on all edges of the given shape. @@ -2037,7 +2302,7 @@ module GEOM GEOM_Object MakeChamferEdge (in GEOM_Object theShape, in double theD1, in double theD2, in long theFace1, in long theFace2); - /*! + /*! * The Same but with params theD = Chamfer Lenght * and theAngle = Chamfer Angle (Angle in radians) */ @@ -2061,7 +2326,7 @@ module GEOM GEOM_Object MakeChamferFaces (in GEOM_Object theShape, in double theD1, in double theD2, in ListOfLong theFaces); - /*! + /*! * The Same but with params theD = Chamfer Lenght * and theAngle = Chamfer Angle (Angle in radians) */ @@ -2080,7 +2345,7 @@ module GEOM GEOM_Object MakeChamferEdges (in GEOM_Object theShape, in double theD1, in double theD2, in ListOfLong theEdges); - /*! + /*! * The Same but with params theD = Chamfer Lenght * and theAngle = Chamfer Angle (Angle in radians) */ @@ -2490,6 +2755,59 @@ module GEOM * Get point coordinates */ void PointCoordinates (in GEOM_Object theShape, out double X, out double Y, out double Z); + + /*! + * Get radius of curvature of curve in the point determinated by param + * \param theShape - curve. + * \param theParam - parameter on curve + * \return Value of curvature. + */ + double CurveCurvatureByParam (in GEOM_Object theShape, in double theParam); + + /*! + * Get radius of curvature of curve in the given point + * \param theShape - curve. + * \param thePoint - point + * \return Value of curvature. + */ + double CurveCurvatureByPoint (in GEOM_Object theShape, in GEOM_Object thePoint); + + /*! + * Get max radius of curvature of surface in the point determinated by params + * \param theShape - surface. + * \param theUParam - U-parameter on surface + * \param theVParam - V-parameter on surface + * \return Value of curvature. + */ + double MaxSurfaceCurvatureByParam (in GEOM_Object theShape, in double theUParam, + in double theVParam); + + /*! + * Get max radius of curvature of surface in the given point + * \param theShape - surface. + * \param thePoint - point + * \return Value of curvature. + */ + double MaxSurfaceCurvatureByPoint (in GEOM_Object theShape, in GEOM_Object thePoint); + + /*! + * Get min radius of curvature of surface in the point determinated by params + * \param theShape - surface. + * \param theUParam - U-parameter on surface + * \param theVParam - V-parameter on surface + * \return Value of curvature. + */ + double MinSurfaceCurvatureByParam (in GEOM_Object theShape, in double theUParam, + in double theVParam); + + /*! + * Get min radius of curvature of surface in the given point + * \param theShape - surface. + * \param thePoint - point + * \return Value of curvature. + */ + double MinSurfaceCurvatureByPoint (in GEOM_Object theShape, in GEOM_Object thePoint); + }; @@ -2586,7 +2904,7 @@ module GEOM void Redo (in long theStudyID); /*! - * Publishing manangement + * Publishing management * Adds in theStudy a object theObject under with a name theName, * if theFather is not NULL the object is placed under thFather's SObject. * Returns a SObject where theObject is placed @@ -2596,6 +2914,45 @@ module GEOM in string theName, in GEOM_Object theFather); + /*! + * Publish sub-shapes, standing for arguments and sub-shapes of arguments + * To be used from python scripts out of geompy.addToStudy (non-default usage) + * \param theStudy the study, in which theObject is published already, + * and in which the arguments will be published + * \param theObject published GEOM object, arguments of which will be published + * \param theArgs list of GEOM_Object, operation arguments to be published. + * If this list is empty, all operation arguments will be published + * \param theFindMethod method to search subshapes, corresponding to arguments and + * their subshapes. Value from enumeration GEOM::find_shape_method. + * \param theInheritFirstArg set properties of the first argument for \a theObject. + * Do not publish subshapes in place of arguments, but only + * in place of subshapes of the first argument, + * because the whole shape corresponds to the first argument. + * Mainly to be used after transformations, but it also can be + * usefull after partition with one object shape, and some other + * operations, where only the first argument has to be considered. + * If theObject has only one argument shape, this flag is automatically + * considered as True, not regarding really passed value. + * \return True in case of success, False otherwise. + */ + boolean RestoreSubShapesO (in SALOMEDS::Study theStudy, + in GEOM_Object theObject, + in ListOfGO theArgs, + in find_shape_method theFindMethod, + in boolean theInheritFirstArg); + + /*! + * Publish sub-shapes, standing for arguments and sub-shapes of arguments + * To be used from GUI and from geompy.addToStudy. + * Work like the above method, but accepts study object theSObject instead of GEOM_Object. + * \param theSObject study object, referencing GEOM object, arguments of which will be published + */ + boolean RestoreSubShapesSO (in SALOMEDS::Study theStudy, + in SALOMEDS::SObject theSObject, + in ListOfGO theArgs, + in find_shape_method theFindMethod, + in boolean theInheritFirstArg); + /*! * Methods to access interfaces for objects creation and transformation */ diff --git a/idl/GEOM_Superv.idl b/idl/GEOM_Superv.idl index 98d819daf..4690e7e7e 100644 --- a/idl/GEOM_Superv.idl +++ b/idl/GEOM_Superv.idl @@ -1,27 +1,27 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOM_Superv.idl // Author : Lucien PIGNOLONI - +// #ifndef __GEOM_SUPERV__ #define __GEOM_SUPERV__ @@ -126,6 +126,20 @@ module GEOM in double theDZ) ; GEOM_Object MakeBoxTwoPnt (in GEOM_Object thePnt1, in GEOM_Object thePnt2) ; + GEOM_Object MakeFaceHW (in double theH, + in double theW, + in short theOrientation) ; + GEOM_Object MakeFaceObjHW (in GEOM_Object theObj, + in double theH, + in double theW) ; + GEOM_Object MakeDiskPntVecR (in GEOM_Object thePnt, + in GEOM_Object theVec, + in double theR) ; + GEOM_Object MakeDiskThreePnt (in GEOM_Object thePnt1, + in GEOM_Object thePnt2, + in GEOM_Object thePnt3) ; + GEOM_Object MakeDiskR (in double theR, + in short theOrientation) ; GEOM_Object MakeCylinderPntVecRH (in GEOM_Object thePnt, in GEOM_Object theAxis, in double theRadius, @@ -198,6 +212,10 @@ module GEOM GEOM_Object MakePipeShellsWithoutPath (in ListOfGO theSeqBases, in ListOfGO theLocations ); + GEOM_Object MakePipeBiNormalAlongVector (in GEOM_Object theBase, + in GEOM_Object thePath, + in GEOM_Object theVec); + //-----------------------------------------------------------// // BooleanOperations // //-----------------------------------------------------------// @@ -249,6 +267,10 @@ module GEOM in GEOM_Object theVector) ; GEOM_Object TranslateVectorCopy (in GEOM_Object theObject, in GEOM_Object theVector) ; + GEOM_Object TranslateVectorDistance (in GEOM_Object theObject, + in GEOM_Object theVector, + in double theDistance, + in boolean theCopy) ; GEOM_Object MultiTranslate1D (in GEOM_Object theObject, in GEOM_Object theVector, in double theStep, @@ -305,12 +327,27 @@ module GEOM GEOM_Object ScaleShapeCopy (in GEOM_Object theObject, in GEOM_Object thePoint, in double theFactor) ; + GEOM_Object ScaleShapeAlongAxes (in GEOM_Object theObject, + in GEOM_Object thePoint, + in double theFactorX, + in double theFactorY, + in double theFactorZ); + GEOM_Object ScaleShapeAlongAxesCopy (in GEOM_Object theObject, + in GEOM_Object thePoint, + in double theFactorX, + in double theFactorY, + in double theFactorZ); GEOM_Object PositionShape (in GEOM_Object theObject, in GEOM_Object theStartLCS, in GEOM_Object theEndLCS) ; GEOM_Object PositionShapeCopy (in GEOM_Object theObject, in GEOM_Object theStartLCS, in GEOM_Object theEndLCS) ; + GEOM_Object PositionAlongPath (in GEOM_Object theObject, + in GEOM_Object thePath, + in double theDistance, + in boolean theCopy, + in boolean theReverse); //-----------------------------------------------------------// // ShapesOperations // @@ -342,6 +379,15 @@ module GEOM long NumberOfEdges (in GEOM_Object theShape) ; GEOM_Object ChangeOrientation (in GEOM_Object theShape) ; + GEOM_List GetShapesOnShape (in GEOM_Object theCheckShape, + in GEOM_Object theShape, + in short theShapeType, + in shape_state theState); + GEOM_Object GetShapesOnShapeAsCompound (in GEOM_Object theCheckShape, + in GEOM_Object theShape, + in short theShapeType, + in shape_state theState); + //-----------------------------------------------------------// // BlocksOperations // //-----------------------------------------------------------// @@ -439,6 +485,9 @@ module GEOM in GEOM_Object thePnt1, in GEOM_Object thePnt2, in boolean theSense) ; + GEOM_Object MakeArcOfEllipse (in GEOM_Object theCenter, + in GEOM_Object thePnt1, + in GEOM_Object thePnt2) ; GEOM_Object MakePolyline (in GEOM_List thePoints) ; GEOM_Object MakeSplineBezier (in GEOM_List thePoints) ; GEOM_Object MakeSplineInterpolation (in GEOM_List thePoints) ; @@ -464,6 +513,9 @@ module GEOM in double theR1, in double theR2, in GEOM_List theFaces) ; + GEOM_Object MakeFillet2D (in GEOM_Object theShape, + in double theR, + in GEOM_List theVertexes) ; GEOM_Object MakeChamferAll (in GEOM_Object theShape, in double theD) ; GEOM_Object MakeChamferEdge (in GEOM_Object theShape, diff --git a/idl/Makefile.am b/idl/Makefile.am index 93172d6bf..258c691e9 100644 --- a/idl/Makefile.am +++ b/idl/Makefile.am @@ -1,70 +1,58 @@ -# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG -# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# - +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # This Makefile is responsible of generating the client and server # implementation of IDL interfaces for both C++ and python usage. # The building process of the C++ files is in charge of each source # package and then is not manage here. # - include $(top_srcdir)/adm_local/unix/make_common_starter.am -BASEIDL_FILES= GEOM_Gen.idl GEOM_Superv.idl - -EXTRA_DIST+= $(BASEIDL_FILES) +BASEIDL_FILES = GEOM_Gen.idl GEOM_Superv.idl # This variable defines the files to be installed -salomeidl_DATA = $(BASEIDL_FILES) +dist_salomeidl_DATA = $(BASEIDL_FILES) # GUI idl common library lib_LTLIBRARIES = libSalomeIDLGEOM.la # Sources built from idl files -nodist_libSalomeIDLGEOM_la_SOURCES= GEOM_GenSK.cc GEOM_SupervSK.cc +nodist_libSalomeIDLGEOM_la_SOURCES = GEOM_GenSK.cc GEOM_SupervSK.cc # header files must be exported: other modules have to use this library -nodist_salomeinclude_HEADERS= $(BASEIDL_FILES:%.idl=%.hh) +nodist_salomeinclude_HEADERS = $(BASEIDL_FILES:%.idl=%.hh) -libSalomeIDLGEOM_la_CPPFLAGS =\ - -I$(top_builddir)/salome_adm/unix \ - -I$(top_builddir)/idl \ +libSalomeIDLGEOM_la_CPPFLAGS = \ + -I$(top_builddir)/salome_adm/unix \ + -I$(top_builddir)/idl \ @CORBA_CXXFLAGS@ @CORBA_INCLUDES@ @KERNEL_CXXFLAGS@ libSalomeIDLGEOM_la_LDFLAGS = -no-undefined -version-info=0:0:0 -libSalomeIDLGEOM_la_LIBADD = \ - $(STDLIB) \ - @CORBA_LIBS@ \ - $(KERNEL_LDFLAGS) -lSalomeIDLKernel +libSalomeIDLGEOM_la_LIBADD = $(STDLIB) @CORBA_LIBS@ $(KERNEL_LDFLAGS) -lSalomeIDLKernel # These variables defines the building process of CORBA files OMNIORB_IDL = @OMNIORB_IDL@ OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ -I$(top_builddir)/idl/salome -I$(KERNEL_ROOT_DIR)/idl/salome -IDLCXXFLAGS = \ - -bcxx \ - @IDLCXXFLAGS@ \ - -I$(top_builddir)/idl/salome \ - -I$(KERNEL_ROOT_DIR)/idl/salome \ - -I$(top_builddir)/salome_adm/unix -IDLPYFLAGS = \ - @IDLPYFLAGS@ \ - -I$(KERNEL_ROOT_DIR)/idl/salome +IDLCXXFLAGS = -bcxx @IDLCXXFLAGS@ -I$(top_builddir)/idl/salome -I$(KERNEL_ROOT_DIR)/idl/salome -I$(top_builddir)/salome_adm/unix +IDLPYFLAGS = @IDLPYFLAGS@ -I$(KERNEL_ROOT_DIR)/idl/salome # potential problem on parallel make on the following - multiple outputs SUFFIXES = .idl .hh SK.cc @@ -74,14 +62,14 @@ SUFFIXES = .idl .hh SK.cc $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $< install-exec-local: $(BASEIDL_FILES:%=$(top_srcdir)/idl/%) - $(INSTALL) -d $(pkgpythondir) + $(INSTALL) -d $(DESTDIR)$(salomepythondir) ls $^ | while read file; do \ - $(OMNIORB_IDL) $(IDLPYFLAGS) -C$(pkgpythondir) $$file ; \ + $(OMNIORB_IDL) $(IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \ done # uninstall-local removes too much, but it works in distcheck uninstall-local: - rm -rf $(pkgpythondir)/* + rm -rf $(DESTDIR)$(salomepythondir)/* mostlyclean-local: -rm -f *.hh *.cc .depidl diff --git a/resources/3dsketch.png b/resources/3dsketch.png new file mode 100755 index 0000000000000000000000000000000000000000..f34ec05166209a7188f7b8c3fc2ee9c842af99a3 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`j)FbFd;%$g$s6l6(v z^mSxl*w|O|J8&|PuaN8!@0H0E#$$S>hnXyA}sap26EKOhn2 z35PdCh;VN8U;;_ZC}@?wuzHfiGL=ai6fQI*I}|#u=uS9zfRUR`fPq7SM_g&A19OVm zmDI+7!U;2&Ja{_abA~d1Gjd=!$m_zz&o@I&gZFck!X#EM54I?$SRONWg@%X?KOz{j zUa%|FF<$v0`@+{%<$d$f#Dfe+-Y-l_U=VQlVDRV9&&?_V)r`D5_@4Z8FzOLr^~74h zp1qSf_7k(_pE`w)k_=27mOQEp9y0RjKe^%Z$&S5zb1+fDVq?$kT1>A90I0am$I#Evp_om~ksKJkV=Vi(|`}p{a12 zPh>L_tK9{bCo&A5P8LsCJ#n)(Fj5Z1uxrnAXl1y-;G7{))3D2dL2B^{O-7bJ=CAe* zk{m`LGuWEC)FLvOzT7j~@am{%Pk`l&g-jQoC^w2c)1R=HN5J7mlBJMTwbX)w=BKGE zr1(}?u})!PJm~;*ZJ8o_(8nW;pOr3bNLG*vQEQ566}!xH!d3i)P6Goo!-oCRZIKUT R>wrm%!PC{xWt~$(69CN?_5lC@ literal 0 HcmV?d00001 diff --git a/resources/GEOMCatalog.xml.in b/resources/GEOMCatalog.xml.in index 2739da315..7bf6f0297 100644 --- a/resources/GEOMCatalog.xml.in +++ b/resources/GEOMCatalog.xml.in @@ -1,4 +1,27 @@ + @@ -4224,6 +4247,38 @@ + + MakeArcOfEllipse + + + unknown + 0 + + + thePnt1 + GEOM_Object + unknown + + + thePnt2 + GEOM_Object + unknown + + + thePnt3 + GEOM_Object + unknown + + + + + return + GEOM_Object + unknown + + + + MakePolyline diff --git a/resources/GEOM_en.xml b/resources/GEOM_en.xml index 01c72eecd..eda6f84a0 100644 --- a/resources/GEOM_en.xml +++ b/resources/GEOM_en.xml @@ -1,5 +1,28 @@ + @@ -52,6 +75,8 @@ + + @@ -79,6 +104,7 @@ + @@ -229,6 +255,8 @@ + + diff --git a/resources/GEOM_fr.xml b/resources/GEOM_fr.xml index 8c925b61f..66a33d5f7 100644 --- a/resources/GEOM_fr.xml +++ b/resources/GEOM_fr.xml @@ -1,5 +1,28 @@ + @@ -58,6 +81,8 @@ + + @@ -69,6 +94,7 @@ + @@ -203,6 +229,8 @@ + + diff --git a/resources/Makefile.am b/resources/Makefile.am index 2fbc6564c..4dd5020f5 100644 --- a/resources/Makefile.am +++ b/resources/Makefile.am @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,189 +17,200 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # -* Makefile *- -# # Author : Patrick GOLDBRONN (CEA) # Date : 28/06/2001 -# Modified by : Alexander BORODIN (OCN) - autotools usage -# $Header$ +# Modified by : Alexander BORODIN (OCN) - autotools usage # - include $(top_srcdir)/adm_local/unix/make_common_starter.am -dist_salomeres_DATA = \ -GEOM_en.xml \ -GEOM_fr.xml \ -GEOM.config \ -SalomeApp.xml \ -Plugin \ -GEOMDS_Resources \ -ImportExport \ -ShHealing \ -angle.png \ -arc.png \ -archimede.png \ -axisinertia.png \ -basicproperties.png \ -bounding.png \ -box.png \ -box2points.png \ -boxdxyz.png \ -build_compound.png \ -build_edge.png \ -build_face.png \ -build_shell.png \ -build_solid.png \ -build_wire.png \ -centergravity.png \ -chamfer.png \ -chamferall.png \ -chamferedge.png \ -chamferface.png \ -chamferedgefromface.png \ -change_orientation.png \ -check.png \ -circle.png \ -circlepointvector.png \ -circle3points.png \ -circlecenter2pnts.png \ -common.png \ -cone.png \ -conedxyz.png \ -conepointvector.png \ -cut.png \ -cylinder.png \ -cylinderdxyz.png \ -cylinderpointvector.png \ -delete.png \ -display.png \ -displayonly.png \ -displayall.png \ -erase.png \ -eraseall.png \ -fillet.png \ -filletall.png \ -filletedge.png \ -filletface.png \ -filling.png \ -fuse.png \ -geometry.png \ -line.png \ -line2points.png \ -line2faces.png \ -lineedge.png \ -linepointvector.png \ -mindist.png \ -mirrorPoint.png \ -mirrorAxe.png \ -mirrorPlane.png \ -ModuleGeom.png \ -multirotation.png \ -multirotationdouble.png \ -multirotationsimple.png \ -multitranslation.png \ -multitranslationdouble.png \ -multitranslationsimple.png \ -normale.png \ -offset.png \ -orientation.png \ -partition.png \ -partitionkeep.png \ -partitionplane.png \ -pipe.png \ -plane.png \ -planeWorking.png \ -planedxyz.png \ -plane3points.png \ -planeface.png \ -planepointvector.png \ -planeworkingface.png \ -planeworkingvector.png \ -planeworkingorigin.png \ -point2.png \ -pointonedge.png \ -point_line_intersection.png \ -polyline.png \ -prism.png \ -prism2.png \ -revol.png \ -rotate.png \ -rotatepnt.png \ -scale.png \ -section.png \ -select1.png \ -sewing.png \ -shading.png \ -sketch.png \ -sphere.png \ -spheredxyz.png \ -spherepoint.png \ -subshape.png \ -supressHolesOnFaceShell.png \ -supressface.png \ -supresshole.png \ -tolerance.png \ -torus.png \ -torusdxyz.png \ -toruspointvector.png \ -translationDxyz.png \ -translationPoints.png \ -translationVector.png \ -tree_compound.png \ -tree_compsolid.png \ -tree_edge.png \ -tree_face.png \ -tree_shape.png \ -tree_shell.png \ -tree_solid.png \ -tree_vertex.png \ -tree_wire.png \ -tree_group_vertex.png \ -tree_group_edge.png \ -tree_group_face.png \ -tree_group_solid.png \ -tree_lcs.png \ -vector.png \ -vector2points.png \ -vectordxyz.png \ -whatis.png \ -ellipse.png \ -ellipsepointvector.png \ -bezier.png \ -interpol.png \ -spline.png \ -closecontour.png \ -suppressintwires.png \ -marker.png \ -marker2.png \ -marker3.png \ -position.png \ -position2.png \ -free_bound.png \ -point_coord.png \ -point3.png \ -shapeprocess.png \ -block_2f.png \ -block_6f.png \ -block_face_2e.png \ -block_face_4e.png \ -block_face_4v.png \ -block_multitrsf_double.png \ -block_multitrsf_simple.png \ -tree_block.png \ -subblock.png \ -group_new.png \ -group_edit.png \ -glue.png \ -check_blocks_compound.png \ -free_faces.png \ -propagate.png \ -redo.png \ -undo.png \ -arccenter.png \ -glue2.png \ -remove_extra_edges.png +dist_salomeres_DATA = \ +GEOM_en.xml \ +GEOM_fr.xml \ +GEOM.config \ +SalomeApp.xml \ +Plugin \ +GEOMDS_Resources \ +ImportExport \ +ShHealing \ +3dsketch.png \ +angle.png \ +arc.png \ +arccenter.png \ +arcofellipse.png \ +archimede.png \ +axisinertia.png \ +basicproperties.png \ +bounding.png \ +box.png \ +box2points.png \ +boxdxyz.png \ +build_compound.png \ +build_edge.png \ +build_face.png \ +build_shell.png \ +build_solid.png \ +build_wire.png \ +centergravity.png \ +chamfer.png \ +chamferall.png \ +chamferedge.png \ +chamferface.png \ +chamferedgefromface.png \ +change_orientation.png \ +check.png \ +circle.png \ +circlepointvector.png \ +circle3points.png \ +circlecenter2pnts.png \ +common.png \ +cone.png \ +conedxyz.png \ +conepointvector.png \ +cut.png \ +cylinder.png \ +cylinderdxyz.png \ +cylinderpointvector.png \ +delete.png \ +disk.png \ +disk3points.png \ +disk_pntvecr.png \ +disk_r.png \ +display.png \ +displayonly.png \ +displayall.png \ +erase.png \ +eraseall.png \ +face_hw.png \ +face_vechw.png \ +fillet.png \ +fillet2d.png \ +filletall.png \ +filletedge.png \ +filletface.png \ +filling.png \ +fuse.png \ +geometry.png \ +line.png \ +line2points.png \ +line2faces.png \ +mindist.png \ +mirrorPoint.png \ +mirrorAxe.png \ +mirrorPlane.png \ +ModuleGeom.png \ +multirotation.png \ +multirotationdouble.png \ +multirotationsimple.png \ +multitranslation.png \ +multitranslationdouble.png \ +multitranslationsimple.png \ +normale.png \ +offset.png \ +partition.png \ +partitionkeep.png \ +partitionplane.png \ +pipe.png \ +pipebinormal.png \ +plane.png \ +planeWorking.png \ +plane3points.png \ +planeface.png \ +planepointvector.png \ +planeworkingface.png \ +planeworkingvector.png \ +planeworkingorigin.png \ +point2.png \ +pointonedge.png \ +pointonface.png \ +point_line_intersection.png \ +polyline.png \ +prism.png \ +prism2.png \ +prism3.png \ +revol.png \ +rotate.png \ +rotatepnt.png \ +scale.png \ +scale_along_axes.png \ +section.png \ +select1.png \ +sewing.png \ +shading.png \ +shapesonshape.png \ +sketch.png \ +sphere.png \ +spheredxyz.png \ +spherepoint.png \ +subshape.png \ +supressHolesOnFaceShell.png \ +supressface.png \ +supresshole.png \ +tolerance.png \ +torus.png \ +torusdxyz.png \ +toruspointvector.png \ +translationDxyz.png \ +translationPoints.png \ +translationVector.png \ +tree_compound.png \ +tree_compsolid.png \ +tree_edge.png \ +tree_face.png \ +tree_shape.png \ +tree_shell.png \ +tree_solid.png \ +tree_vertex.png \ +tree_wire.png \ +tree_group_vertex.png \ +tree_group_edge.png \ +tree_group_face.png \ +tree_group_solid.png \ +tree_lcs.png \ +vector.png \ +vector2points.png \ +vectordxyz.png \ +whatis.png \ +ellipse.png \ +ellipsepointvector.png \ +bezier.png \ +interpol.png \ +spline.png \ +closecontour.png \ +suppressintwires.png \ +marker.png \ +marker2.png \ +marker3.png \ +position.png \ +position2.png \ +position3.png \ +free_bound.png \ +point_coord.png \ +point3.png \ +shapeprocess.png \ +block_2f.png \ +block_6f.png \ +block_face_2e.png \ +block_face_4e.png \ +block_face_4v.png \ +block_multitrsf_double.png \ +block_multitrsf_simple.png \ +tree_block.png \ +subblock.png \ +group_new.png \ +group_edit.png \ +glue.png \ +check_blocks_compound.png \ +free_faces.png \ +propagate.png \ +redo.png \ +undo.png \ +glue2.png \ +remove_extra_edges.png \ +coordsys.png \ +translation.png -nodist_salomeres_DATA = GEOMCatalog.xml +# VSR: little trick to avoid putting if GEOMCatalog.xml to the distribution archive +nodist_salomeres_SCRIPTS = GEOMCatalog.xml diff --git a/resources/ModuleGeom.png b/resources/ModuleGeom.png index 4cf6099f858e9d05d2eda0e267525267a04badd8..fe470ef5c2a5bf4dfab707ccd04f2636c335b2af 100644 GIT binary patch literal 2647 zcma)8`CC)h7QHt&Bmr&)21A&_1r@b8+yE+bE`yd>gh*|RXiY$-TB}jfA|go`Lgb+Y zoN$65=!-VhU@g@?KS&q^Z7R`H1+733kWw)MB7>0o;`k;p%8QPQw`BBVP)L^ZE5b~XC0UE2x9kT1Tl)wt zGLQxG)Xo<0=nY#bDO*fK>2OI*3|vwY0~c;jMoZsO=5_ z6_Qw;+*$&7u^^?PbVXIG_I`7RR@Z8K@3pc*_(~{D9h7)4V`eo-T1ZgH8et_NnC&vc zXv0ae**KX%*d~U8%s$OiH>y|-M`rYzyFSj2wrpj4L9!yfL7LppT}o6~NUvi!%vOcn z1-H)9rqCkC*8<*NT(yoAvHkT$X2Q8sC17oN2$Il0ZQ&6+h}Q3H;_D87pAGY+jcooA3zW zVIgBx)n3tdi#yA@(Ng~#x2@w$N{K#?_<{SmzA1E)HRP|IYxmZk2O(&ho{Lqb)4IlT+QX2~c|*JPLIawKwP znUH6VNGRUbH>!G?{a!S3#X5HPo!jm|G>1>p^<&C+4=Dwj9O)bDft1vt6IQ$+tTc!0 zy_jD)J^2qg<_^QZvl08|_7bezBA*D=MPl(zen!6Un~M`4_6E3}OEEn7UU6PGX~pnG z{&cz>;&pAO)xnVHRrY=4)JP2dd6 z!0A~+r~o-!@cA}}7g=m%s4#iAikwirIt;RCa^(VymfE_!kUIibYafq)MLr+!OON@j|65qi%Vc4wI z$q&%xiB}z~L^1Q^Y!}C1r0utC87lAo6&kfCkQo%sC#rnHqawbiWwK;_=Bd~bPV$8~ zs=u{O;87}b4UKeWhzGYel*6OnzDc^3E*uQ@(+~<50A0^ET@Jem%eqfl#92w~o;cx< zVNR#Xs+1*j^RAG;4<6b4HkV8Rhz#2Xdx~TKFfCp7=(U@$P^oBrQVE_i>9yswH_}G2 z?ml#K0P_?$sayIUhn_Jy@mIJmm0+VkbST#_4cAw>!Ho^MpwsH;Bl(S8As_==KJAMx zK}njx3uiALlNO%3=$ZNGOWAD3cd|>%$mlaarOnY9u6jn=eVhR94o|8D`iX4>pOfwZp8 zFpJ4fKlG(h{FxYQTc~KC9}4{roNXicpDCmcfYG}&;hgw=Y3qHC^|3!r%8k|s+1u4L z@(v*vN$p)A3yckdSJoY1jXIwe_iE~Ev`i@Sf^}C7bRHTpN?!x5B(y&K{s?~usA6}? z1`<+=n*X&)0yGVRS>8!6hwhDtyhY!aJ126$!)~Tt?Q=i+!`+4c$+es7>T7)C!homL zzF0=P12$119coI32JDh8R%e{h3WOBZb$RB0+MSKXde?Qa{tp9 z{dKhBWi_p6N~z=l?G2Rcih%=a#kZfyd+-wYqjgD9!$RB8W8rC|(qD~Ew_Z#@56sX4 z@?ijxXbxs5S94TK^06t2EHFiyV3*(*3*Jw6Yoyob{8~uZCvSE$yIysgBp2(XR-N>b z3uwy4?1G=2!(O=U?g>*lD;rRiagr!EfnyMoOKMTBe7;s$*$99I9gy1aq>7Pw5@X9# zv1No|1wpm$xpFZC`ESmRjI=ovJwT7&XSMc$WY$3u>ic^PEfg_FOy;}I667Ax*pa34 zHY0T&N*dMDx!3W8d2NZKZ44&w7W&rlTxO3~Vc6{;G6jj4)CyEk148XL=e>{PMg+TRd`(L_ zbtpYYb}jNaxKdSPr9eI6w|X!cg6g!pGVilb`TH9eQn%!NglWp3^a)^XB9R z9FNTD%A`q5--YQZx2}6Ron}qLlS|j9vkwVv5sBR8uhgh__s%M3@)qp$^f?_r>@+*< zpI8H5@ffnp0mrC6&b6^zttd$O5ZMqy_;wrT(&D{`j~yJxr#r?_>ww zB+JizUG0x3ETwa313MRNfCxm3N$pjw`URw*z|TRq%Fi4jk}XRhz*`p^bv;6u_g`1! Bb+iBg delta 1857 zcmV-H2fp~%6xR-r7c3?S1^@s6f{hpf00004XF*Lt006O%3;baP00006VoOIv0RI60 z0RN!9r<0K(7=H(JNliru(*Yh20TV+Z`kw#*2GmJJK~#90?O0D}8&@9wW-;WY2r^m} zkiC$s>wp>EW}t^ir%h20QX3*Ez9hSQSZxZD)l0~!9$aFi>|wh(w6X>5>QtgVcr{*9 zONEL(ZE$azo9AMxrW7Kxq8@{=pTRJDcz)vkp6iw-*-Ytiz-I?N{AnY5|8w``d{`!b&6( zR(+GAtLsQ464t`voON<^GVwl%M8Z;JIbGkRP-HpH_nc;rsRbM!?Qf@&+4St?7-lcW z008=)gnvrSKv&msBYDF*Jlfw5BC)VIXU+X;!J54sL;lVK06=|{qEa)^?r3a}9}llg zDr8~-j~+g@^gSsp2m(rLO(?PiwHQNnHRlqd$a30?#KPj7l}IG4_*-$r-@1X)S`%H} zfLe?}EuI^r-O-SGFZJ9Unt_Jk5GLsZj~+g@;(wX4=d+zHl^vSQ!uifhK|+7fLs!>Z zsbn^tzL`V&OAY0XUEe+Uv-}c4SJzu~2#6u^-3xDA@Z~m<2S~_7eu;QKi)YFxZ|vIE z6e$jpIX4}TlcK> z&#Ex`vlEdYMSh7O8kq+G^anlEH|f|lYBA;trRLw-2uH$*MxugOD9!k7^yuMZt3NQ1 z&D@yC`cAU#j)wdl6+jdDrE}sd1<8KjPk#^(B^H)CmOofV_pDSh%gdQfe5D{^{nIC|vgp?zy1H>DM0WjNT5Gz> z?#`A9;Jh0vvg}*3y)cmnRtge&-+zUX%f5~3Cr@B}aMyOXADkZW3c=D^69Dr_yTd%v z`kMXLAM{Y(*u_dga(TiFo*wx7KRy@u!rpg%yg5IM()-I$l2tUmI)Ea}u8QIbhY?2; zbyP^}>n8GrWu$NBP^lTHZ&FuNoLT^fT8yFb)d7x&VYEA%%iZmc7A%6YM1SWY=m+_l z0ew$GF8emR-<;1zsbm(FnlW~LULni1@bS3(v)(6ITK)EiT#V|u@t?8Os`1I&Zx_G91CRBs|10(JgLOWY3 zNXUeetiDtT${V|5V?R*9?SEVMtZ0Nar_m}hI(X@OlHGxw;LWJ3>z*Fy>IT+7`|Cs` zrxpOPD&j|ui{N*GQ7`Zcw6mqYWB`DL;){Rpj-8Eyl0Q&@B1?81_d`5WMt{KG8MSac zQ?{o{X9!M$lORJvw@yzcQja*Wm})j5MTx%giJn-Iuo^0GsZWr5yUfP ztP~`>>B-j&>};toO`2Yq|8>;%5FrF%F$^&zUiG>U_zL*&qx*vM@BW|{D1s+DpP2yI zU6s!`BxFL7*FsLC96L$T%D3zxZTlEudTB~ztoVv znPX$}Zxs98>fSQB*Kd7WP3cZ*8R0L=3SCWgeo>*QDgTz|x0{=9B=b;F(@Ir2*c z%kTdYJO6sYNZ!9|KO=;I%n%Slpl!C%)eXDsa%1qj#i)3`HXLEr_q)(fBme*oe>}Wm zn&$Jnzh?wl6=8&;5y_KySPb*nZBa_o$HQZoLlY0~Kd?nqS99m09-UV-F(k6k5yh*7 zkne;3FEo*WlYgTVm_u`$4r%(pJV1GE9e}sRIdL&`ezx@>2=m zA}FO-%%S-lr|hClPuVEoN8D>YJ*68?k5Ebj#sAj?_z3|p^`WC4xkxTfy~isH7!?Ar v8a>US&h_+^Zjc#Le3d015yANkvXXu0mjfu?UAt diff --git a/resources/SalomeApp.xml b/resources/SalomeApp.xml index 3c3b60aed..d4f9707a1 100644 --- a/resources/SalomeApp.xml +++ b/resources/SalomeApp.xml @@ -1,3 +1,26 @@ +
      diff --git a/resources/angle.png b/resources/angle.png index 9ec01ae67210a449c8f3de704cd6991345c274ce..4ea0ef8c5cbc10a2e8d8ec926b3cd1a09ebf8dbf 100644 GIT binary patch delta 1165 zcmV;81akZQ0ig+yB!3BTNLh0L01FcU01FcV0GgZ_00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}000CRNkl3#O*M)&Y-IL+PyRQt7UVUN!2p|?*iXXm}`43~u3x7Xh#Aev+U@r!4c^if| zpT07@{q&vT_4_Xj00G2;%P^oJoIs`k5Obg#4l-;}R3HPhunxoX=PwvO{9p+Iwhth%|!|Kd*8NTzXf(`rrkCoxWZ&rrW3-TGH9CI0dfBnD! z5I`(gTnBQMBGixvP}gw)4ZGf8q0b;IEzR)!(-#IN4t|F3|JfN%%*$esaW7-|@$nVI z-`_tO00Ib`3k9I`2dH772>32>;W+2dpFbI%GRQDUF@L{g_|3${aA9RVgRD;@!#|)w z|Ns4A`2YVO13&<=fC3n9lru=P>~#$P0}TUFZ{ECN5LRGixW}%`aC1XDgRpZ2!>9Le zz=i=$1FHoHAeI>c?m+f`hJXM5F?{&&f#LP**9?q|j0{XnObmbi{9*X<1L(*L3<@A` zzkmOpfq(rkJHwq7^$b!T)eQ0<_c5IQrw-N+0{{WU!Ypsg@a5f0hVNfLGyLKc1sWv9 z@clOf!>@l#3@=WvV)*jq3rL*`5Z`|J@+HIlxdjYLAzcigzx`r3|KEf`?blw0D-5a( zFe3p1i0RLNW(F2ceg;l{F$NwHX$Edld4~VoVt)*ejxJ$f(T`*J^yw2w9Umw>K|YXj zuVnc7^&`WtA72^%{rSmogUNtF`OhV|mjMEZ>E~ZYhW~6l42+zD4FA{!7=E$vGu+KJ~1|HSa;$7hB=KfeJD{mpQjQHw$TFC^#z0*K}Q zo_}fJ@B_u*w{PDVK;Gi9&S&`f=?%m0Zyy={{{4#_KR@2Rdl$s8y=$GUYav+R|KC4g z{D4u7LHh4S27mx!;WJHS_yg3$`ui^fbrDw*AkqZ(z%i04OP42O1jn ze^=i!X~!(EVgLU80>|_dVB7%&5EJgQ8AAby= zK7VHT`S}enB3^+L^Uu$38GeBx1e7#T!w{>Xz@!!R=KOjFMrKw9fB<3vCup#XJ~8|T zCWYU>e*+DE4bGR~ki_mnbVEVuHHzWF#$^Bj!~${+$aTMfMbDofUm!00@(z;ySlIBn f5UZg80R{l7HYYj0#L$ZX0000?TUwOLwewANIoDufHxWkgqQ z>J2>f1LHJejEOpXHxvQ7Fo3S_n5P+Y_ka-?fLd2uU=R}p#$+2F09`;#uvdG7fBzr; aA@Bh#EJ*na=LpmQ0000z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-g-Jv~RCwBA z{Qv(y12q9a05LI882|(j3y5H3WW*|I65o&2`DYduGBPnS{eS=W?;nOnfB<5^=4FsU zP{X)^SQ&`*kuk_HkUWTns(}N50Kza3%^+(a4hG_QG#m^w6siVpC_n(A7>Hz;KGdLK zs0MvB3=+!*;@MC=$}lqk0*D13I}qoCfC>;x0PzbX{1q)!U@qc;(lGU30Rjl@LbNc6 z$M6Pr01Fm(WPeuz1Q0mc0Aq{i+~Q&o-2!#t7c8zq2O#;oKzs+umD~UU1WSiJK*JKC zf?uGRSnvYLKnZ{Vf`#E1B%AIaDT0SD)-;E3DJ(pB00M{wN$>*HFbwa4f&@s36B85w z0mOu6(@Pv0c%WY5A>@C60Ae7raNvfzkQ+z#)Q6@HeQ$sOVj(i%zY_2&4=geP0*Ha! z;tMJ3DI?`5Zh!zH%Rsb@;0`qqoUj1`h!JEUuHp+{m;w#^0*w6%DE|mFm3##VAaV;> sSVmAmO5ETu1_&S)G7ZF;5dZ=V0OuK#F!NrPe*gdg07*qoM6N<$f-^z17XSbN delta 371 zcmV-(0gV2S1dRibBYy!@NklZu$HiK>3{?fR?)JOASlHxz z;_Q=MBSZ4?KEr%^0N7D78Iq=q_@e zJ~VeNU~YkB!ff_w>ytOAx`zU#0}cE6$o|OYT5D`tee)C4mCsK3T+ z9IzQJP-IB5pW0n?8>!w+8I(XlLFk#lJC-c3VYXf4AK1004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0004NNklGoS;OnRgM?&PWk30c#DYvkPtJGvE@qvpdZX4FQZkwpjyx;yzPF zvb7%0g%HRzS%2huIuupCu%EsV z;&7qxzfbn-QT7_P_9?To?Us$m2f)Pps=zc#ASvLBfej2N-j9KLBl0@&eg(XnR{fqR zzO%e1R7pyr&dwD9IWQa|U z;h1@tHNrfRf+~ctcYOWE*g5y9sw?|`v?}q(4%pZTO;X%GFPr~Zu@L~i1^~Fdqu10P R>N)@b002ovPDHLkV1nj?&8YwY delta 459 zcmV;+0W|*g1LXsdB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^RS0tpT;DV`S>)&Kwja!Eu%R5;7Ul)p>EKorNnuVgrgV8;%+*`-JZySaug z26z93?v8fqAJKonRS`<3aE@+v2-2l)Iuu+o73?aODtHjyad~|1`+glk z@TaQ<{3CEYi4N<0=%UxlwGlk-2wZ6CtY`6Dwds+)jb08%k0Jy)s+iuh(Gr8S;^e6!-N5Om+ zsC58FL$6e{Qrm3gZRe#!EivMvkks_~5*I=V=({#+1Vl8&Gbz%cmiTk6F1QTHX`+r2 zkhqY?2aVa3B~IhgH0|}knvN*)UK!0_z1X%n{{rSq$HJ~_U*P}%002ovPDHLkV1k8o B%Lf1e diff --git a/resources/archimede.png b/resources/archimede.png index 8760ada60a12b99333d747f1e82b1af9cace232a..5fb79d292ae4dc2534628668cb6706d4a7df51df 100644 GIT binary patch delta 827 zcmV-B1H}Br0?`JLBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;$4Nv%RCwB~ zls|}7M-+#@yL+R?waJ3;K)ZdUuyL_TB}f_@!9o^&A`7nBZGWO5q>1SRVhlk7sYI}{ z(Q2QCBDf$THp#jnkisfOc#xR8yWV&2{5dnn;?2Fjthr6pBWLI`cd7!eVywNzC_S(a>UY)}*hgTWx%5xBUxs575mAj>~Sf+8UjqPF2A zVtt^p!o%x5)_>R60lL6oVk>N6VL?AVehDuT<3^JzE0jjs@1gMwjpyO@9)~a7!WaW^ z9O(SZ;r#r(9y;+ARw9)Z;)Gy)z{|*C9CP^S`!gI_x{a}}ncfASw!mJmrvN|S{g%3} zDa*1A=UjV^B7!l7&o17fHkRP(?Jvc9&!Ll7a1z-+S%0whr{~~4hx3AjNQ{cA5@O`1 zZ_aUmKk%8sV*ogJ_Uz?sV&ZZOtm~TE3j6bd-(KzIbv0zoOyMLFVnlTW)F1%-{?BfL z4Tuv?&&^@1WpZ-zt;5aDO+Lw9@$27vsf?p24cV@b&>)O*RY4Vv0f68Q!5g~vInH}j zmAm)u-G9she!Ou*i=trduRRQnqp}`TmE;mzKvMwCznCF2^)s9ZBEoXNzXEi!@2*|b z7y{N>>bk}lgLMw?91;R-sidfih~S;Wc~1y|<$fQa53J_am^S+xn6(!1o)9Ad*;b(U z_~fjA|NaVa3>W}U^SZ9_-eaxBT8ncIpC&Zh%zv`CNKFny2o0=ELxU8|0zZsSoyTLL z|1-V>X7jYd%du5T;0xd;&;j;sQ|`xrm83rdoCl_w#2x?-l5iEc3LH(PH1i%{1N%DZ z20)n&heNEjOixcY*LgI#?4-Wj2KYJ0cmb^DO^uGVC;#y+y}0EvUIOKKM$7`I z(li!dG=d#qUEpw&D&yMm=c`PDPTE5EJ?^HG_ML^_3;+*t4IaXqk=g(N002ovPDHLk FV1mu-i30!t delta 299 zcmV+`0o4A{2E_u9BYy!5Nkl1pw6hNPhhi~wZfCuLaIYJ?m$q90coFPyJ zOpnl82;ZhlpmPR;Gi30l4z69**skUJfk23__a%Kv3d^d5gQLnLjYUlh6*hnW_|tPa z?*TA{u@VX*LUznluvFH@Rb|EF`Jk@r-U`3B*=C-?O?ofyq<^G{$dAwz#-2Fgv(+&I zQ0Q%kL_?L30ricF7Kj z8)}1{rUgjp4pVqfx*x)K$3w);3_W*hXPwoTv}3+lBEp;QwQh#M7NE5 z4V-s&nhGd1eAqcbIxE6PAX+$E!+~MrgNcuSet#d&G{LOl(|d-G;ZAH!ECR|WT6=nW zB!u*HbN=1tj9S=n_s*T89w!_c7!GABTv>m1dKZ0zRuaNuQLIh}z+K}6hXawnHbcud1F6-RNUrPr;2*3QeBGLdJGx0B*w xUT-fTKhC1Sc`}#z&ZCOJ;0@Z%#lT^}AZ|5zY5VGeXTa!U@O1TaS?83{1OP}tsjC10 literal 0 HcmV?d00001 diff --git a/resources/axisinertia.png b/resources/axisinertia.png index 22f1a96e4b21c5bd621adb152dc5418f18a74c20..79971f455114113107c4361a0450930f03ff7e79 100644 GIT binary patch delta 894 zcmV-^1A+XW1C$4lBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ<3Q0skRCwBi zluu|~MHt0@bMqbqEM(y(`xH!FbWwCw#fn&)7~B*o5ke(hD1QqM+cy zc2V#TRixrNkai`gD_5=z#@5Fp@7;IroqylV=i#&XW^>qah5#Vcyc?VZ40uzi55tE)Qq)JqhFK~hE)f+RW}#fF6SLhU0bU;Lcf zMW)+}0LOr8jA2w2V}_TktgL9O)naODiiggC7b7e-V7@Hp_> z7(S|S=ytpGdOc3R_J0k@*WCJa1>iJr2l!(jpmPo% zGXQhv){&g?F*9favvr`~1iW)3Un9O5m(7ma-p`@;9v>5`O3F%185a_@6DlY7z(PZc z_GsHU=WrpBRgsj5lCdFCxrlWR@ii$lq+pTY4g@Uj2Mm(%A>l$ADjNhF5-B)RbfoA> z(UYUQ&wu<6>whXIPAC{2JvGg#iyxDcB6;}2>l-ig^u~w8y2s`xmw_~DtNbj=!!gp6L@XW?l zl2nLm5H}#YYA8tbWC>`JqgAe|itpdKz}Yvx!1n(diV!T~s^JV4O+wLXqd6b0a?&#j zP}ymoc;$VX-5rXepfCmlpb97k0|r9VC))CGK;;fG&uF{oQ%tonrXbn@p(%&OZh*L< zp?7oe7z{;maPk>d?5nOnN9HYUN;5~F#+D$Rb zSZ`pVwMWo`kd>sz@Dv5J5PS>abrF*$%^$7!gFxQQyzk9qCQo6wsqQWbGF*PF)#y9$;e~+dcHYDH3F}J zH3F}N)dG!4KYeDKg0V;V64v@kgPnCMT1RFuZ2418FcHBP8?k-|y9CTSB_b?WOLpHo zl6}JC!xPh4IU^ClbzH;|L>hpZ{JyW^O>6*cu>t6Hd!-m#Y{Ze$#gHb|au>&&*l4ZM iM_uuWm1b6i0sH_1-*wysh|CB80000004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0007?Nkl|&mZjg<(tp{|NZ;-|NO-(-}w3Y_W;#9A{z=a10aA{ z&|J;*=N|(@dTBRYU|L5hLskWZUyvTnz|YUapr)?Lxq0g@3wKwCs_#GmlsW~(|3GR0 z0tnrOo4)@1|9}787fk%&>;L~p&OZ46<=6lJ@4x;3|MC0p|J!!$`v?s8E}%XhP!xd7 z00>1`t3P zF1-Kdzwd`HK$ii9nHUi?Isl1_06i=(%y=2dtpY_1(5zPg0mOtY3@1+LX88UaLQkI9 z4W_^TVt+uPLE=CEpr&gO0T4hKF1-5uzwe88#AP!HAqEC*Nw^D70?m325I|UCdGTyS zxP>H?GOSsE8rv|jf|61UO8^20!-c0G{`Y)jgf$EgukS$- zv+{=+a%^J{iWo>OIsgbD^e}vS@56tor*E;xDigc}fB

      1_mVo#*aW|3@i)*0tnrO zeLw|4KpL228JLMIq;Eid3Qp4i0fcVg5+J?_#413{PNac9L2(J=00bBSI@)&56%FA} Q01E&B07*qoM6N<$f{g%7jsO4v delta 232 zcmV*`E_v`DB7$THbFffgTDOt8|E-3NA!@`1y8bYAI<^a_@EMeCy>7}j;djm&YJ{@c^ zwDLQN|77Ko-+SeG+4v}RqTMzb-@WokZ4C<z@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-2}wjjRCwB~l)(+cFbqXs zB97tC02!bMjtl_z+<_4|F$OcR4KW4m za?RDQb7K9qsi3rZQ+yX%z#)a?njC~IP2L5*VzRbr% P00000NkvXXu0mjf!uy>F delta 215 zcmV;|04V>H1Ns4wD}N5d000id0mpBsWB>pFtVu*cRCt`-lQ9m2Fbo9!c;3JxPNG3_ zib$?b;t70buZSEt@CQM1gL^^w R@XP=J002ovPDHLkV1j!uB!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0008%Nkle*G78Vv3hWGE^GlJLv0mOpMu!Nr;rq|u3}3$gV%R?;mq9hCnSqg!Q5h)x0w91`&6K6$sl2$1x&!uuz&dvjRYVY)vG_jK6rFu4akTCFarSs z2yEb2pn>eHUl?vK%ViL=PG$HFOk@9m8bRKKgx^1?fsiBvGwkuH^)SP}fbubj1_&Uq zfuL}CusN4O#4-_R*k`a|u-F5~3)nzN7=m2+|LUy%R+ z00(qQO+^RP2^Hpc;Q5Y^7SC_^8 z0nj>lqt0lCK^-qsm?TNKzIi;#d5%K#Tr;{IA(kK_dn_wVn&l_K(ky2-jVX(g>Z78r z>yE-RY^GWMRZ_hH5cmO}@AZ19(kwRsoAq)~CBSSN^D@`X`G;l0x58tvI0~D*4eJ3F z-0kwsdU+72w|{nb3J(Gey#IfN-Lawl%BMt004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0008gNkl00a;dx?#2RkAm4?O+SH} zfcOhg1HS(F4dnl3`26iR*f67vB{1zCKr8_eKrG0HRn9rg@axY%Fdt;lPoSZ{ zK`sQk^dB&+L4R%pu|cle))v5En!TLi_xCR_BUC`f00a;tC{lQNc?pJ@fPes){`Kn@ z!y;q~*+U!VaXlMn{} z`wNl(`}-%uzu&(Y{{8udVjw^O!43Qc)cor=(1pJtVF)rD-7p4*|4A%0fFFXa9LtKE(us=Y9 ze#5=|_kZ^f3o+7!KJID2nS_98mVxosS_W1in-$6jB_$952q3tDU%mrv|Mi36^ZphF zcC&1-&Hw-Yg?bkf0so-h{BrIb!&gyDpm%>W+<)FX3#9!3%p8CKf*bf7n6ADY>|kIu zN@4i@?IXlMP%J_M5A1z#BtX6R7wFwP`{%(713B*nhz1BCcuoNo2+Vp3;FSOO_jhoh zgOkL6gbP72`xh7qclOPJxdUd{1t8u5q5%R3Y#^}sBBxNqFbotG009K^vH=h$KxtwD zhCX2+L4W{aL6W>fq6?1km$k}$cBLcK!5=N;wjWDtg|h- P00000NkvXXu0mjff5>xV delta 341 zcmV-b0jmDo2JixqB!32COGiWi{{a60|De66lK=n!32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^RP2^Q`5l!GCjA-CP&<3&1ECF)Nzk zG4nu!FN%WO`=?n>o}~bkhtew&k}g;__~+O6#iH^orGMAd4X2M2ZQG72JlpIuLlFcH zlU8*_LV~2J<^JL4@hxciJK004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0007JNklgX00a;VjKRprNQqM!K?KOR009IyaQ^)H41esR`e63IfBzZ&{Qbx9 z7l=V1bl*aT)lTtXHc0&YkKYVmzWrqQ^z|o$rtoWq#Kc4ipwtH-{s9m`EXdaU{PhQH z%iq8M8Gio$12=HKMFax_&;Xc$U%&lg_zdKK`SOi{K^QD-2*l@s_ys@!p@bpG=C9u& zwtoTI{uzp67k@Ru*&o0B0ArA0U%$MEX$85E1H=FbKm{2b0RX{3@Vd~Ea+IN8OawVb z#?NnOUwiiziY|}`i^Q0OaX+790-8QH^T{e0y+Wn93E!Dl0HL_>*YCezuYwE%xfVo& zaQU=6IQ!SHpA5f$eh1>b0fb^;=DIF0U9z+eOxMpX z!b%seXav)7+oxj~2oOMwu$;1B!GizKe#(Nw4HVlTFaLqYGBWu42N)FJK7;XhU^x2Q z$$^qh5>RSC(5wdl0YsFSVJ;&E00a;VYNY%DM+_+NfByOfbj>fYcy&w*Fp++PyYLq< zQhxpV&VTUdH)f;&1Q3dWpmg@*=P!nzz-00B$5*(4nd`b4rU#Wm4Fp>H^DD!z9}q*) z0YCtu82IJOXK46*K{2q)DFK+VUPBE03rwHCegIwf3+!5S01!Z^27Y`CPORU7hW-K> z2-FM$UdPrlY_kf6OR0$Qp z00(qQO+^RP2^$Iz98rCPAOHXXHc3Q5RCt`Nl(A03Fc5}6mkN1dVnSkMY9~hKs4qaD zg1kaArmqm5q70R?Q27#P8%PDW@IPD5gw=Qd!{tT27{_YC-*u>sOY|D&wp8SAVlfivI}xO76q z-OZk85rws3?|<;ze!64;Xsv-0&Y`X}YNvV?mcSb@cNBV&*n;^sw+fr_rlf9d4!j(q zaPzdWRNY5;Z7U1F9=HO;?e#lSN`|)0H{;u;$yU#*J2nkkyH4#CT5EKrd*vbCrc)czkLl~dUv^AjF{A14{DCD%PDHLkV1h@Utakta diff --git a/resources/block_face_4e.png b/resources/block_face_4e.png index c81fa4a2597966ece245850fa29eb190b609f05c..c09f27399570262bde1ff77c7ca681037c840c6b 100644 GIT binary patch delta 735 zcmV<50wDd%1NQ}xB!3BTNLh0L01FcU01FcV0GgZ_00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0007QNklgX00a;N$b}%>-`@{%D#-(@$Wx=Gkp2>li}0XpA6F)A{f4W`63CF`T#WR2S5O^ zAiMVGuRma0{{H>X@bmW{xPkL6A{ZEe2EYvb`t29PXCVK}mv1nwhCqBCh+hB%5K0(= zZ2tNkV*3}M?SG%4ICfDJoc;034=@H9_Vvqqm{tiO<^VAO0+2-pIRHQ~5Zu>!j%WBU zQbm`L-o$M)r`2F)c5dUEK{p%-&fdBzSRI+JI?tddX)c^z#ih-Hyy1;bF(mF6* zKeq@gUAUqVOvi1Xj$t4`0HGwC%AO72a0A6Q$jg7Av5XA<{s9KXx6few9T<*#R(FGv zO%hOQKhUfP00Bglmtig=1^@&Q3u>hN0Y?ld@PGdL1$50Xuy}P$3owy>gS+q-Fj9W~ z`p)p@H-BcN00a<Uy%R+ z00(qQO+^RP2^$Iw8j~}1)&KwjSV=@dRCt`Fl)Y}kFcgJ9Q-r*9V(Q+BZe{8m@dD*7 zc!e^CSMXcV0Vxci47@x24VS}_n~p;qV+?Rv4x=z9 zL%z?04h!H&tu$60sqk1XCIYb8CUXv};x4G_?Ck=FcKx~r{FST1KGsN&eI2GsBZm?x zC9!Vv004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0007jNkl3`EGe1HG~8+hl=9Y&C0 zzR{&%!GHh$GyM7ckKr#6gFxuMg$%2m;=yc?`1c>b8NPh`$?)mxPq5hX<;x|36bBIh z00fB!T5{QU=R;Czb+28M4x;Rb&F_KV>&kpJb&H<(sKAU+SoF8~6F z3E4o9&0oJmY=8d(wEZ&_$1ZAuvp;_M0mdN1zJ7TR(<%XVAp<}Fp}6qt_g@Tu{`_P3 z_2&=6kDq@Se*gIk7H@OQV_^9F9nAjy8|dZlUm1RU`^515>qiC_v@it-AQTt=`u!K| zRghsI*MeveE}xbMXaD;3li~Nz??C*6;rFkf7?A`JKz~fc#AIV~AJMT65I`sfX0Gc3 z(fdB!-2#QrkMn-TN)Ui(nhZ`uiL0)2#f&cT@FQ99FfyJw1 zT7Zf48-Lt|zkreQ>(_UNKff^}1t5S>3NkB!32COGiWigaDQR)+-AhjsO4v32;bRa{vGf5&!@T5&_cPe*6Fc z00(qQO+^RP2^$7D5W&`#TL1t6_en%SRCt`dlf4bXFc5{G5rqp1N>+e1tSpdh!3s%f zRtQr-fkZ>(HNq-aL^_JZmIJx)Ba0{5N$m5dce%3yBdHeQO@D!*ejq%ZQ{XTI0Bqg9 zoGJG^946MQ{q7kZp%i!u_D%yda6-y+uyX8VBwM$L>#z_bBTc0%=_BBr!=HeEcjy`y zeQ`e+U|Y95_4Gs9zh16^6UuFmt$1goKJ?md?rObS!(=AiKO`am39C#U!8I;zm5C^Q zA11lWr}IharAUU>dT=;kE5V86(8m{f!CGsW%#0n59HVboA_8?JIxO;n-OVYJnb@1G hIjB$5!#)Cjs|QhcjSFvByvYCn002ovPDHLkV1h86ijDvP diff --git a/resources/block_multitrsf_double.png b/resources/block_multitrsf_double.png index a148c710205af61ad6ae0572356d76862d71c93c..38f9deb11d3b8dc722e043c5640ba3c1f268240f 100644 GIT binary patch delta 612 zcmV-q0-OEZ1pEY$BYyx1a7bBm000XU000XU0RWnu7ytkO1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-@<~KNRCwBi zlp${$K@f$%wG7Ve!V(b4E=tXMx`Ku!Dk?O)vc^B5zoS3l3V&->XjB!ppq9&0qu5e_ z&1`nZrsQoiUY*mGEO}>V-o2eSZ-bffzxDe4X9M{4U&o+0NQ_mA%v`~ z>c%Bp>+eC}Lx1fzK%0Qw>LY8+41pSOqbqy>Zp11ptJ)Ml7kCDYT&^iUPeo}Lv+13B z2e1bkcfJKMvliHkS7qjUYSSR8X-!3ng0B;{3Cx2yCe@&J37-4wO>#C$ zYl4*90v|PFKb-(EwozW}?ebLqbJm*xpX7#RS=DpJmpbcQeGP7*#6o+374S|1#5D(A zh;1w82Tef%411cXZJedDsvE`D0xc5O5o{&5v~CV}actt`r{3hm*sRK`esH;w_2Jax z@Z`-WHC?Yir`x=ZQBB$jyunFI$KA-vGIPZF1n1uGXmG-^C=dh=ihphWZWE yir;}zXJedjrR|CdjA#x00004z^5QV=BD(2vd6{NV7Ddo<8Atsecqw8Ww zbr@_?8C5~0$xleYs4^(sIpCnms7=arRugb(6$iV;fu;~#iu0~drzlR5Eoa`$yqTSO z5jFqy^_~Kpf4&VR$0vKyQ}|~)JrOlghyR0Zely?M*G5Q}&42u6UjO*@BKXtZcVdaT ztM+N*{wd)gT?D&UiggxOIZR@3y;rnx(i234gVzVq&KcU$5=+d{yQ5&6Tug{1##J3$ z5@Rqx=TpX~dlXj%wzTBOIRM2~f%F7dIgZ{o$!FIybgg8=jPsA@q@;)l(EgN&nwkh8 zmKcEP86@@#?NzjKeDGe{Sh z#B8sPRtkWKgf@KgzdfxKSGnzk*4YN28f>1WFXjt&Rzkt7n-=8p{9Z+z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-yGcYrRCwC7 zl(ACVKoEw%)li5|?&OBSsR$hzQN$fkQIbw{z#HUUQi>9uB7eLRc6!EqZH z2a_Mbw+P&{-O>e?o}9n{?r*O~KnaY13aEjJj%UCeSTt?-5PY_Q{u9v5%BJn!gTYkG zg}`^Ue+K#t?0;C7%y4%E>cEknZ~+{NRjFBPru`(?y6mgS(19tir`SCLf8BktB4HJ9 z0DJ|0$@kIRJ%Nn_BhnMxyTrNz@;%#9wqAA6OD&dXRAn^Og_3O#%!?qe{UoQu^K0J}{G@$l_=_~ZC=!DK zZBEvKsu>{ACoSJ%EUHYK4pi<=({|ppooBkwwf{ZWa@6L#6musAiB%$%`sA+Wr}m@t vV&IcfrY4H-Lujzi(r_iaf2x8x(0>d7WBvf%ETFug00000NkvXXu0mjf#tj5F delta 563 zcmV-30?hrz1j_`FBYy%CNkl4z^5QV=BSIoi{d!XXdr;$39X(OD*qzLY; z)&y)!et}B;1_y$xfYJsmt`cgUe_%BRHG!xQ+!hPBh2UJQ?sRvOA{Uu*_wDSP_hu%b z;J-$A3NZfmRDC(R?ggjtZ;svs6a+2)+q3y>ezdN}lQx_AY=2(-etuisC*dPX6ieHu zj(b(YZnCJ(opod;!&rlkG$#B&9Vek6A`H$3!BGvfb%qkkoJgpaJ&D{_}3A|#yztu=8cMr+OccYo<73r06RkFz;$e@i=azD%4zTGQXM9}yN0q91HYTK-g z-!`QIr7U*kwmHbK9`o6}aL#$*OEz1E)mXOX`~|>p_RLRlL7)Ht002ovPDHLkV1ll1 B6kGrR diff --git a/resources/bounding.png b/resources/bounding.png index 7d55637945d7476e974f6038ee9b33cffa634ba7..5a77a4542187d3e1c39e684aaa911f20a81931c0 100644 GIT binary patch delta 1041 zcmV+s1n&F11EmO%BYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZVoa5%^1~zQhu3eHqih~q`fPZ@LgJ^&NVnH?xXb>lm z{to0Cg2cSNy|?}S`by8UFtJ&+zB(KQR9F=O4q*-+zGy*YErCZ^69H1ZKr8?>>pVaJu|NeuHYhqcIBZk0iDLNi?K1;6zc2$gpD@E8 zpbLNhLAdV6FA)C2@Eu6A-dGCK{sxGxfcQCx0}w#4FjNHD@Z-l1hVMWO^4_P99~r)U z{m$?k>fPVJfrkEt82A&!{_}@H4B=3a{#zghKmakpM1PEpjhE>LR50*}$T0{=ssL$O z21Yh621Zs+hX2f*4F6a-82&JFF#Kj@V_@PGVqoRq1MAc9$OTa#rwV`=009JZ;g5g+ z{xPugi81{A_KD#iFm3)}_{YE|B+S47bj?4YSN{Sr6VR*dzkV`&|M-I8-``(gjsO4u zgSklsM1KGT5Ios@`}U3D)UT|xPkDWKff9N0uB57`#S>@BQwK) zCWzLbU*E%wFaQw%0R%Vj`}gk*f0(!!KEHbl3^!oX0J@BU4QMzptp5G^1vKaf1poTM z@Z+*!3_kZtFJ%)fPW4B4fOsWCSXjyeai3`XxP8sKf#9n z`|}gbXJ!G0BO@gE{{rQZ0YCu3Bjw$@cV1hXJb=Q{Q31A%zt=%6^J?kGY24mSda|=28x(JKfi*#1@a!)MIbhi{s;6TC?fs= z!+-MMzdsEB|NdcMKokStfcOQ70T4ip&};|Fn=gS_7KnG4B~E7e0}OnSSO0?X53oW1 z{{jsI8ub6)UvTUyvpvPgIRF8~gzQ3~;X8nI#i{wZ4Cj`V0bTnIjQ;|?2f`q4{{8cV z;m-cK40jLAhh@D}Ks*h~wgLzsSdrxjrGJG%MIsQl1My~1GQ)xQgD_OjDkvQY#E}32 z#E4V|g7WhZAO@udF=)C{fhGqYG@pF|g&9z93RJHbR4)fW08yi~2?A0dfEbj*KL7*} zD4rC6*b-VoKY*4RKcMQlfLIhtBLh&Zz6N4`sD6-v*FmlZ2rvK^Bh!#!Jf}?n015yA LNkvXXu0mjfr-aha delta 419 zcmV;U0bKs22)qN3BYy#dNklxK;mShx>wN@DP-wd5afIr~r0px$Z};(}?QtbAPs&%`wIh^&_cFiE6{0 zpk1!I^mHF00@*a9ciF4m2FJJltYTAm>x=sC40n~1G-o&(;&!eB_y-l+(xqKl^?>m> zJPTC4@Ajob=bZ2GIb9Qv!=vEp`E$CiK^535iV%>bIm-S=XbHMPXxH>BqDU;ECTU)S zk0~C9B(I4V`+t|B7-Pz7V0_PZX^C#aliUHQ0>mEJ>l6iD%;pU42EaGH{Fz%-czH`O z#_%wCWHFmFxE)Aq+E`;Wn`RW7g5juLn6I40HEjBx(Yq{k;)M@qoWkbJ|p~t`X|VuBKtx>vYLmWN*{_kw_OAo>uLZ1 N002ovPDHLkV1mHL%FX}) diff --git a/resources/box.png b/resources/box.png index ac562fc29ad6d5f3c235426834f5963849c16a9d..3047d921234a9c96d98dd0aedbc595d060d76aa8 100644 GIT binary patch delta 909 zcmV;819JSf0;30zB!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0009SNklU4!02qX!5qeaQ?;s93DJ2et4*8HF@6bf#8-G=GDc$`vGa#J3s*st8 z2)H}UjJYRQ0I{Ik05VM3DVc$hg_Gg;UyuR+8200M{!*|5aK#Q&=9xeUL4|AlD!3Dg9{Uw|6F{e&3s^~Y}@|2M8|d%v|NqC29}K5gG&219^$Q$6pFe+Q`1b)PoAmQ|z5$NSVe}M*o zOhOp=@9!T-E@2KmdUa1O+@A3S|G;4e^5WlL5Cgt_ zcn)?YdKdx(5ZFLan)~t{Xgg5x_m3|am|55vAi0|n;yOqyfKoLmnxU5b2g))s+}S@5 z#5({p5FmiS27)sAZ(zFm_Wn80Fjj`&-#&u90**yU;DNmljs&O|{{p>>WEd#Bya3Sv z0e{2-vFty?*SAj?n3z}?etiWQ_8s9JaO6Of2++{K&`3Zt>;e!U0T~JqK#U;6fW;R% zg(9+HJD~JefB=FO4hBG+0Huiq7>0oa0Ro5xN%9VfE_?y?CfqO(00}ETw@!0V1P+r{bwxsg zq^afp;pg!!X!$$gRDXYL{vj~DDRe)*Hg*v>H!_{NEy}Z${mcGGWMX+4)@cZngq1~+ zMkip!K^VeZ?AY9GaIu>r%0ua!x}mD8Md%o|eb|~w4;2X;TN08*pp`|j*gfvT=Sva} hhot2S&nIiBFBD+*Nj+6Vgw6l}002ovPDHLkV1ghRfFl3^ diff --git a/resources/box2points.png b/resources/box2points.png index 8fe93676ddd235916940dc98391254e4d2493150..39c4ef74f89827ff317e8f6ce0781e16df25ed93 100644 GIT binary patch delta 967 zcmV;&133K30^A3XBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ3gL_hs23#I`Ah!LBjl#~>(o!@7lRb@LkW-`fB<5|W|*>5G6N$EC&TZ*|AB`6WBB_IXb{*y1~C2e_dka3 zKmRa%`SF{ft0)0v7{jHP{0w^HA8h~vhy~fO#Kgq^s_wZAKfZlt`2X)O!>>R8fQJ5K z`1AKa)P)RS!+(GL`or+`#~+4m?STwWUoQsg^aB|-0mzU52q3tDQBhI8FV)*m(3lM)}`1|`iih%$D1U3-l zx*t&QLBi)Z&_JM<|NI4ek%0kW;J?3rAoTBFK>U;8-=E(okqQt%a2NgpYW@X`Jx~n( z0=n!E^M5}K!$52Z29p2(K`=1#kO4pdF@e4D`#0EYkQhZI6LiBs?ElcP{10>~2><(w z>Oz13VuB@LkO2@3NgDtEV>1k72*iNDK=1zj{R8ObUnm9w1Q6KEpjZSYVvs9AUjO;~ z4+A5^AFy}+!(96BAK1V@KOvFu2Nc7A22O(@8X$m}p8OR7=aP=Bc(AR%zPxAn^%aP}e`5FrG#F$!mw5_1qdLJAoq!TeE*RW8L@aj5N`(JW+1i(nFBHmAb=RpJ>mOr zB=ad@)n1+jVa{I;kWjY5T($#BgPjf#KtP~S7YAY+D3*XK{6d6*FQDFp8wLUZ0R%Hp p1y=k(6}}+Sg)fi|0|9^l0|0(yKc)d>Ba>8ZhB7%l_7oSsVhGO)XYWE7;VA%RvR|+yQOVqHgM0=oq%%tR?tEQONrn z)uaX)vRR;^0Vz{{!+?pRkc5Q=$@v$4t*k2y06qame^p%hT1`X%0000z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ|6PKD3^PpQ8Gio-8VEGx-#>_fAo>?j?8mRa3}1izVc6Oh2sRW5RDk#eKmcKQ z8R)YAYFleeRWwi`He*9qA_2mo0mvgBMUw^-TWdMcc-@kvs>OgFen0f9h zhCe^PGW`AZ4aJ850R%Vj=g*%E2I0-XF#8X7RoVImhBE&)a9I5TM+ziDKrYBCtFfjf9AB6qyFT;PJ;s5^rMllc|fZ(wVN?X7G z{DT?-)C3GOP;x;w3}gt*fPa5}GW-Q%bQb~y5EF`*|NH}oAIPi!fC2yO*KeS=enPwl z3@dP${e(mUhz9Zh0p%x&iop#82q1XER#Q{^uYVsu4U+DF$)#^u7Q}aKYj$}fS(Ml zD}Qnsa@{K#{(gH8^b#-@fd+vh;vX~uKwboU8JPa=?3)W>9%y{~7DR)JCl!DILe9(o zkI2d~6uFiGQ~zghg8d5&aAX%kV)YNh?Y*;LdJX_FD64=Vz2kZinBYy!iNkl_y~X{ zO9YOP10X?XN1~uXT!K?rktL^~a1$+sy@`pvF-clpv&D|Sd2fG4q3M-YXr)p8yLO$} zVD0s2pmBDHL%WB4+_f4zHdvA*oSsj1a^ffiAf2aL96>~SB7ZCN!|ZF&R2+qvy0R!) zelMx2YRh30({zT!3T!vci=2P}5$Q%Yg{wtojl5~tRqrhyqkrJxy1KarY!AE9YLWeE z@9y>tAGqtu)T)0`9ED7uraU&#EK9qQhheo03_wJ9eSSe4ssF}$_U$nc+A!bq z8J&&rJ%1C~Kugnks>`AzFY-a?Hf($`R=>_rEA;!D;Ce0r!648T7x82bgXWgogY@%5 kw2zO73_EN_mVp8M0EF^sGyKUy_5c6?07*qoM6N<$f=bSxl>h($ diff --git a/resources/build_compound.png b/resources/build_compound.png index 82591b753692b41d9ff2db52554385090b9268b3..b13b294f21933b19b982b85add00ee6b12bc2d7f 100644 GIT binary patch delta 983 zcmV;|11S7~1MCNoBYyx1a7bBm000XU000XU0RWnu7ytkO1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZX%*+he`0Lj%hA&^f zFnsv%f#J=YHw-UcykNL_^Clxe0D)}(-@N=h11mElgT%KB41fOoVfgv;C&TaGzZo8K zSun7%FfkmNTYt#lnmLJqiHQ+p0VpWI7Jm8ho8jZvUkpcQq%ypF_m1K9>(`6`0R(p8 zyU#xv6uzHiIL~edblqRDcYgz2s`_FV!&3n#u!}x^`^~`22=)%xz@I<^KYjbfaBM~j zgG^u#!<)HDV08ci1U8WO$u@=~9QF*qK70my_s`#dV1LQ?tmX`QFSdc%rxq52T?cdF zw{PDV-oJm(ARpYv@axMvhJXJcdH@0lY~az~<_sz?S20{=w`2JK_YcS!42;0=Qu=v_ z;gqmHgO=87hL_Tz42;l3_8+L1>-QgqM>FFXegX~q{p}+IEIk7R5DO?4K>`0YeKv!_ ztIc4WSbtbp!1%h5HviVHx==l{Py-~=rCela+Wf(!wrQII7dHusAIU~!lW0Ro5xE$@B>Qg=aYF)=ZQ zKYu^IFi1XM$8eL|hT+e@Z$JZn0K@SQ!(YZ941XBE0{O=nUNXrsyuPswl#C95^Z^7A z3$8o~vR(A?Du&w}W(rHL zMqK5gkdV-SkOmlrsY6$fWY`6uTrEHV;ZSrTFc%mAsRST4AW*=74FlpGAPztPu@F#r zhlmmj6p2TmhB5#I5Kb=xW1Jh5d_XZygbQClBa{IkzyKSW*BJLV;1&P?002ovPDHLk FV1iDls89d^ delta 359 zcmV-t0hs>m2Y~~SBYy!%Nkl1pw6o!8l4KI*Ef($u>uMs+hF70T@0eXbu z(R2zOO7H;+8Pla?3ciNVkf9I_hG+<=Lo8LU6;}yHRhIYPd#GBW4;nV(W%HtP>FhcA{eQ=R#RHo!KFo)%Kh~fz zfjEJPFuR{Qc-V3SYbk1Ac~K!{+a^-#8^O1B&L(8>*K{9+Ty=30LWf45RqGc@F38DZNIigDTQ>AIJ;Jv zjS-DNyglVG5MVg(KBjP<6Qq#mqZ6gj7IVVpbAzYH1grNIRIS=D-rX?j+FSbvb$}ES zLI}(s=E0lNtI#QJ>`N|#gSc8DfYw>_hj246HU@vOe*mG`iyuOxWh?*y002ovPDHLk FV1kT8sUrXY diff --git a/resources/build_edge.png b/resources/build_edge.png index 877c1f702f8aa641f88edbddfac8f35d4d04604b..386f04669149add86419567093df472aeb6a530e 100644 GIT binary patch delta 325 zcmV-L0lNOy0pJ3VB!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0002iNklDw_WcR_QLM-5Qu!G#1PZwgSe$$bgxTOcoR?6$`*k zcYudaXmbISdVB`12JF_d!AhV2qzMBUL}GK`*@gk)BQd^UpDo+rPQhCLVJZgTY^vGz zSbwBoO?NrhbUsU9ud8^!UY!#<=Y|SYL)$%B%h&|qu8D53SW`k2%M}W-4~P5v7yC5; X6XSdFS@2VN00000NkvXXu0mjfl^TBC delta 186 zcmV;r07d`c0@eYLB!8VrL_t(|oXyn13Bxc9h2dW%2hGwoLWk)NIcA3pQ?f>8(V?Io z3W3&kYAZfeSD6pX!cTCz)}=4^SD@q{Ylv9$viam!Ss&|;j<-=DaKm}oe7e6eGsDb2 z`b}VhJuNv?4dyT%6jj~Ftp;ncDzF9n3ASQ~U<50IQ7j9d!873d0||~3#!?VCgTcX4 oA{Z3HK~({oF(`&myt)VM3t~E004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0006YNklgX00a=#4Fm{41{vZ20E0m67AANpKgS?IAb%m*f|#1Sw5hrMhKL+y z1`%Oys48^#7Yxr#Lp@csSg zAH$a)zZrPH{$k+y@{{3mof}A40*F5V@ehCif*bh#`*()#zy5-40U7k;*B_vv*bV&j z?H9v`FTWT*eSiH16E+0m^FaIpAb{Woe);l+;mh~mVAuWn^Oxbr&%X@6fUZObzkdG( z8u**x3(&A%U*E%oK`!I~F#rMxZs5m{9~nLa4FqZU3B+H2{sFSF7zniN=XaoC-##+@ z24Zvo5I`tl_!H>mA3(#t1HJq8#~-lw(80eyzZm}f{C~#q_t$rZzrTNA$O8lr)sqcC z08!mQfB>SpfdByn55pfnet?tBkKcb7z5&DU=g(i@@WKegzrWz&_xJZt40(V6f*S}- z?F{dM3H1lipg%vpF#P`c6{~^&{{nN+kFN}WK!*PMh9M6SKyU-!ym`a$^~-05-`_t0 zH2~=!xPJ`%19TbCFreK3Kff{L0Ro5xIgkGQ{05%B{s3JF(v0Ede}8}${bu<8?+?~6 z1PCB-R)dy_|0%$UK&${V2Oxl0kjz#DVn--VHUJ19WCKCT{so!lynyOw00pgZB!8$$L_t(|obA-H3BxcD1< diff --git a/resources/build_shell.png b/resources/build_shell.png index fc13a46f5cb4c0de7206c124a4589ae0014bd6a9..043d3cd3647092396aef85783a1dde48dac8efc0 100644 GIT binary patch delta 931 zcmV;U16=&70=Wl}B!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0009oNklA02qXU2KrUsuY)28LTjcDmyqFdHUP+ftbeK;Gef$YRFy=8xVxAc z$xJ%W$MzLKj39%M4Fnmc?3B#F$im6+`|p2-KY#u){QUEm;pgvv3_pJTVfg(0H^Zl| zzk&2mhCe^PG8~>50n%mw#9x5;1wa6y7?_ll^k2iPfZ@lt&kX;WIT?Nd4g2-`FT)QY z{`T_^!`B~w7=J!~1-kUxSBBr;KQSDeo&+*%0@SbzKzsxsfLLJOjE;`}ukBX~Hsm`{ z^Izsa3_pKC4EqkGzkdG>cHPf!Ul@LUea~=Wb~;Gg0U%a^8ukKYFhBr-T^JA$@SmBP znc?5Rf8enC_U#+P=g*(P;R9lS`t%7LZfM{DlFN30Xn&wtUjYIL?82Wve=_KYH31_4 z6kh)rK7M$|@SBkf?7ANySN{CP@aN|@hTlIv1H&gL zHbD{bhkyAW!yjNQ{|5#GBxx}*Ffp?*{AXc<=>^9svSAhD!;Sa;Vzkh&^{C@`yyMO=wK)sLOg#ZBrHV~AZzW)3T zju>!4{{D^O@8|an|3L;a{0AEdb}@(sMGO!yF)vy zVfgdw2gCP|FBq6v*clihp$BylBf@3SSk?`x2ZjU-!-W;q;H(D>XJt?%0R#}(Kv2T{ z4S!5u-`+n58pg`-``brgQuzUQ8O+-tFN3@e4tJpXtDCxESuX^Z^#B5h1zJ)te0}=_ z=nWQNwgMUU9h~-H=?-Ej#K8amA&~+#3?u6S1Q4unAg55on)Ltz2v#_Nik}21O)S8g z^#B5h1xfM_i7v#N^#B40=4EamTLOrANE~z_M%DueFaZ2&B=qr;wQv9c002ovPDHLk FV1gDjk}UuL delta 271 zcmV+q0r3902dV;)B!BTqL_t(|+GAw+&p=hcL|x-(U?2-l8AcKU<3CU}UTr|p=4qD* znp2yl$I#N&!l0?4$-u$F!N9@6fyIR+8U_OI-@IqwOmXI&6k9voYg|6e0l3FkvBKxY*!NhlAfhoRRYP)qgs?8f&U*;Oqkj4&XNs zWEitp5FXD%PDHLkV1o8fcLV?c diff --git a/resources/build_solid.png b/resources/build_solid.png index 14b89582da26fa7f60b950a9c38954dc874457d4..3047d921234a9c96d98dd0aedbc595d060d76aa8 100644 GIT binary patch delta 909 zcmV;819JSQ0;30zB!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0009SNklU4!02qX!5qeaQ?;s93DJ2et4*8HF@6bf#8-G=GDc$`vGa#J3s*st8 z2)H}UjJYRQ0I{Ik05VM3DVc$hg_Gg;UyuR+8200M{!*|5aK#Q&=9xeUL4|AlD!3Dg9{Uw|6F{e&3s^~Y}@|2M8|d%v|NqC29}K5gG&219^$Q$6pFe+Q`1b)PoAmQ|z5$NSVe}M*o zOhOp=@9!T-E@2KmdUa1O+@A3S|G;4e^5WlL5Cgt_ zcn)?YdKdx(5ZFLan)~t{Xgg5x_m3|am|55vAi0|n;yOqyfKoLmnxU5b2g))s+}S@5 z#5({p5FmiS27)sAZ(zFm_Wn80Fjj`&-#&u90**yU;DNmljs&O|{{p>>WEd#Bya3Sv z0e{2-vFty?*SAj?n3z}?etiWQ_8s9JaO6Of2++{K&`3Zt>;e!U0T~JqK#U;6fW;R% zg(9+HJD~JefB=FO4hBG+0Huiq7>0oa0Ro5xN%9VfE_?y?CfqO(00)K!(B8y?^tb;lq~?3_pJSKyx9~ zn=qRh7#eUIh-~SLH!m0@fDq(D7F-JdzFLRV%LofG!Qf9eBY)697JQPRm?l+@1(#y{ zxdf7nK*^`2tp&fA2^$6h$cBLuG$#iq11S5U76Bv_2*`#B@CYyniU@*f3?o1p9h5gg z*@+N9H_X}9nGqulLC)sn;RNSRLICVd9u9`!z+l|P7uZ%H1knUt2raUZ0RUk3Nj-3c Ss^kCw002ovP6b4+LSTZ6QD+(e diff --git a/resources/build_wire.png b/resources/build_wire.png index ca881f8b04898f0932648d4fce8fbe082761e964..52d8ff8daa9e75bf4df166dc4f3ef8841831e68f 100644 GIT binary patch delta 538 zcmV+#0_FYG0z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-s7XXYRCwBA z{Qv(y12q9a05O3G78aKOAWRJd0Ro5#nPZ#K@gIaKF%Tet7=J-tW@KcP0J05%m;;FK z+r+n@hbcI`pn{PU0|5ev1&t3fQ1ZyaN-H4!9*BR~GBEr{Hyjo`fByWzunZu8Uh#jFch;IN47LY3zE2a5;}sLR0sAb=<_5awOvFl7J;AhNxT%i90}gyKRn@-&9G0Rjlc zMrLN_{~!!agB*lhh@{>UmL35D2*rhe|NfPzj=6`Ded`?3vMBwQWAb`-r1mvx`L*+T3xh4{d!Ri45h!MGfg@ywtyGa5y?L#kZV6Fn@Z%(M?iclI{768q90T4ip z=p{DPPzk6vegF-=4wHi#B!J|_A4nKnNB{&7Bep64$xunC(0iyRSY8H!=b$W!Qqlkc cK!5=Nw-e4l1e|G7K>z>%07*qoM6N<$f&xIncmMzZ delta 314 zcmV-A0mc5Z1k?hMBYy!KNklZrE5Jlfc6jP*d=}2iJ(Lk4ydc|SvGf;Ad z_!Q0sEb5f$ps|!D5|l1dY=N{cA}kCnI2%v3#qjojX8tNHcddu};vl%36gGb=XPdKa z3>G!lqxzPMLt%|EnASKysG5k^=PyJAo$3+X%d%+=#u$o2F@KuCpMlZ3qH3ZGbXdw~ z%K5Ie(YgX)^|-pS?qxX%YpNy!7^(CE_7$1-`d@nQp-ZJV(53QUNtsePp0dI&rD52= zf8PVY6Q5k0d{^2etN|v|Fzh@1oB)tOrY$F7&ByV{nT8IQZQ{{olM1^`e}2EX#F1@c z)z7{Jf{3`2ax=?A(Nzc2saDP@>r^WdK?1oM1`BJm1RcV_^KqD~Ged)qi-OOE_W%F@ M07*qoM6N<$f^dbE?f?J) diff --git a/resources/centergravity.png b/resources/centergravity.png index 8f76214045199904d26b43996be23e3a54dd46fd..68a785bac0c55eb30ed64509d84f8e1b6210bb0c 100644 GIT binary patch delta 749 zcmVz@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;dPzhSrv-e;`wo@2B)G);5j zVsCHH-5pgOmYE?UbX`Y`k?C|w+qN7W9MHCHa{{;=ySuyo(Wkd*M&}WAL=80`Rw_zY zgjo`vKlq%sZGQnafbpr4cXoFC(&jf*F;Y=t7Gf4c>i1cygj6|>m1p;_aplf$i_}fv z;t7S@+uOde`7K$Dm<3xCQdO$-3e6l*rz^sX2iN%I?qg~f7U>(n>jAj6wdE-#{(AZ| zIcH*wgb)ZJP)ZqmETs@a;Of^;s9ivESp6tDXD)yF6Mw2k7Gu&LQkxG4h31Ysh#G&~ z|BRZBksQ$+SGP^qb-iarnWf4s)xp0<-`^xxC0C)=0)Uo;mJY3HH8AH)5uGO*r7A^? z-|yW5j3+;Sg}dXX0JsXS6_c_WSW2OaQN@NfF?VkK@DO+B`n^ZEDX!8htO+gY6mYa$ za#wm)rGF|hR~oCB3SWHp3vL~*f|R~QNul>p@@n98I%SrGRD@iG6eC&>aT9RIOmP!* z4va_tqEh<%RlpDe$6ZBAqMM9aADtV%qXP}#sxbEuoQ8(|R}TUHJO!LgCe##&NB^-t z`hXhS-lK&=6-?`(P)lO})vpU!0LDNVfbP!h&1OHWt*ujLlfES+_pj-Ot6(OWRDic( ze*>?9akH3*P1BrpFfPMh&iAnVm#+Y~fREo1cnbFR_zJ-O85EA^WezZa<&rM|7l8|B fP&i(O0sKDzS8EbXpt%8h00000NkvXXu0mjflf+91 delta 302 zcmV+}0nz@12FL=CBYy!8Nkl!M(g*yhUZno_=3l)ifUsZQG72ynnXYXNGhU940NRl9(7t z)0X>j%`8(k>{^!}G&&w5U27BzMs29xNE;rv_gIh3I`%~y{dh6OOxb|eaNOAT^ zmh8z-`OV6tWk1%%5R*ix5Cs~IfDHp-h}p=pd)#3oJ0*&9;p(cUtV%CB#tu&hGdV*A zB8);}VlNmfL?@BHFqpX%NmwkB{1skDR*wOE0{P%m4>J$ZcmMzZ07*qoM6N<$f_#;R Ad;kCd diff --git a/resources/chamfer.png b/resources/chamfer.png index ccea754110acf9aca95d59ab9aa037a2f468e94f..f39ddd5883c6345c5aaaca3f76a235db8fc1b895 100644 GIT binary patch delta 1084 zcmV-C1jGBA0?`PNB!3BTNLh0L01FcU01FcV0GgZ_00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}000BWNklgX00a;Vh+t%7L=j9$N%;?Q`JX?3!1(Xqzkgu-^XE^7uV241eE$5I z;oZA;40rC_VMI3&Ab?oV1we*P)X-o^J$H^l)w7u4_uqdE|A2=7`}d#W_n&_ZKYssZ z`2O=R!`C0b8SYfONC35b0OB7o{Qv>P2yzL`g^7uY|EFkbGW-X+gyF{z2H#`H7<9r~ z!G?hh{qy%f!+)W%&R7JH!7k zUl{&<{K&9TS(#x+Up&KyufG^R0`aGBzkn|L12*s{(BQxS{(-cDT*(152OxmJE({0= z_`lS^fB_g_a09^@0sZjtK z3J^eG1Ao5&UH0wg9|ql+i3}<`cQP=b83qH$h9a2^_O@;Q^6NmR06+kN4g3i7A}FxG z0b|ZAb1{SPjvWlRauCE&AGpgvhW!VH=bvBT2m%NoBm;kglfjSQ{}}8_HZln9-pzn3 zQ@(R?0lO4z7%*Z$hW-8hlff)`>Un?w0>?5dD}U>M+v4>=oBl#=1*T0VCQ$4#yaT$3 z5sRUqbSb=N4~95E0D*G~D0}_>{s|Ip;HY8(B31^6lJyKiJ%J2wfi40iewe`^mxBzm zD_F_!`^OiCKR-SL@mGewK$ijp5G-LU9+?!K^yk+%1`z)H>pPsbD_jlM{0HcwzyBdQ z27eSB_P})c2c!;Y*zfN^3^MfRR|bFpf@M8WYBvNKY?d@-DmVf`u4HCqU<6_&W)_Ac zlVcbjI65*Y?B5THQLtqogMNMc0H*%|!|=wA$;|)(1TzqnC9jbOwvmnZO+K8|;HW-yyF1`+xffID&5PnN+1(_7=mILXjn6-rSW*PsP!Rjlnl;93 zP;hAZmb8KdK&b(g?mz~Cym{~7BA8+Kf%rN=fB^tsk3j$PvMe|N00000wC@egO*C19T7J3WMV96P{1r#PW z8m{3fOr#)j3X`#r4X+herE!v}Hhj$N3>cJ2V>T`K51@gOTU5+PV4Pf>;C{D6t2Z7G zM}inR?RsmWZ$G^u)KupHMOh%F zAR_N8973BIfQWFHJM!=VyJ#14h1cK4qGOmh_(@C-J^}57k=cB`rsV(t002ovPDHLk FV1gima`pfK diff --git a/resources/chamferall.png b/resources/chamferall.png index 7fdbd13256086392e51f32832f660bf448ea2eb1..1d3954adca7ea52efedeb87770d8e274e05aefc9 100644 GIT binary patch delta 943 zcmV;g15o_e1BVEZED90;01FZU(%pXikv2Ym1AR$EK~#9!V*LOAKLa%ZKmf6T2u4Om z6u}q&vcb0eXZQ;w{{it|Ap0L!1jPQw@Eyqd4x~Q=c^`oIErTl4Q?MZb0mOoC1H`cZ z3=7tzG5r1uH1h91hQI&*gE0tz=pVoSGJOB_hvDmwKMV~eF+g=6K~l;f?EnG9glyP< z^M4ut7p_eM8ut^T=_gPV5Ptz`{Pq)Kz}FwYf&AYLpTGSE8ob#K7T~`5+HzBV2UO$s04@C&p-bdiqi`jD!bYle*6Zy5Xc9+4w@ML0M+!?gfaa2 z0W|E_H=u#v7`}Z$q!fSvM3G4j03Zwk`~L@<(oJcj@lGZKT%gWoT~Ar3-|M}95J|wE z!~<4_=%TYj%4r)WhHrQT5ZFMVyBK}}HUIhzWc>z(;SaFk=!QX(4KO@`zW)yl>;M1$ zg7Kd}2p0kb5Hyy50}cGg@C$4RD6IZ~y@_rZi2WaE+MnM*8tBr0e}98r2y`eM00a;d zMCl)J`uYdOph)=tADdx+fCl}4X87?P;^n`;e_(hSAb_A@_!I2i-#~AJybQ_(zkmM$ zhZo$yfB(P+{`vWx;nN48AAWoWM#^`vp~waT1Q0X~zXH?UZ*au?0>5%3S{%^1IKhPlgG1(c6LG(Z3`f;61{!1MpZ z+y4xeEgj&L|M&NIaG-;K3}pC^a3LsW{{kby-(?XvlKQIQhFt*S9UvMYfWQXsyT|?i z-Ru9rOwItzM*qPn|HpS=zWoC>51j7)flD3;8w4iQVj2d-UjYILY#^{a)CY1BfY^Y9 zvJ}HGkRU(+u^>s_A+c}Ojv*DdlK%YvZ_jMX=)hoT7$C{OB5;+L zg+oCsg-==F(1Bn!vqguUx*n=4`{)A|D77p42&CNDE6v1XHf#L{sV{HrrDxb}tg~ch z=VoVSXJ==2U`VWxOqn6_SiflBU8sKHYS+c zY9=k1ag5EulS_>~NtwBUA?aYMz`htJFEfQo0o(n1`CR!F8fJKy^4tuVk+^{6?8$?i z=js?3TOK;8^8T@8VVl4!{6H`@;lYE(CqOHbT=WyJuZ{mMKgHbfW~V@dq?(2j$FjMx zb0ry>I2Ql7b!yYp#>wr%bIdszH<&l-ar5!CO|NEPJkoSEOo8PhODu=(rU{G=4U7yE WjbfKrm+Cxc00K`}KbLh*2~7Zjx`4+3 diff --git a/resources/chamferedge.png b/resources/chamferedge.png index c6ea12222f96e37e922ec887b0a595a6b67e8aec..58299576d74731cf738e1a9f878a6bf2acc9b709 100644 GIT binary patch delta 882 zcmV-&1C9LP1Iq`HED90;01FZU(%pXikv2Ym13^hdK~#9!V*LOAKLa%ZKmf6T2u4Om z6v32~6tFFS|Ne#JfB*h5fGh{GzkmPE@a@|-hEJb9F?{&&fnoct?+mI;Pr-%&1P}|l z4Ismmost6ABL|#{xCF@#DEL~Nht&I3xEKB zVnQ}7F){JKs(UWOuit+mntlQ`0r3~0#&16%27LYT8_567@cG+suwm&{Ghy02fLH<` zfZ#5Sii-NL;-1Iw>(4*1L4TS5F#H4>`WxgzpiBP&z55>=4FAEdYblQg8a9XF_xCR_ zBUFHx2OxmJ20r~44vm>kpr+qI{Egv%AHx?Q{t9IO0^+|wxqo04AU;Sutzr(tpPyfV z_$x|~0R#}(z+|tF4EkYB;PCnhbm7Mj?-+hFaxwe>di^($4|W~Y%0ECgy)|JBe|`WB z`}GZI;5QTl0Rm7#CN}_pFbpgE?~6h&2t|FcfMvUY0P5MzgT7BTnCwBoF0TfEX1HL| z*_Ncy*7XA(0R%Si=g*(Ou=@*)44?~v7!)agnEzoI#=rpK15*%C4491m{RLxW01!an zSpN0v7dSG0{rv~_5-4f>`;TcDi2WaE+MnM*8tBr0e}7}R5FmiS2LAc;2Vw{mgV_K7 zV>9dz(4gN8KfXh}{P*_{38aH9VHjp6U-_h4^9%=-rpGmsbm{`$f2 z_9ZZ3eRvLbC3+YF1Q6K3&!0ateEANv9jN&G#}^FDEbI)B+|3Aa9oW!+|DaS2ie`rQ zZ~lY%j6is2|2&ZF0hoaR0R%P>l*xYs)77{4&w+-qGW`Db5$qLkEJ6Yg?0s+~0L4Fj z0EQvZyGVwCvdaq)4G=&q5X=8Fe0}?bfr*KQ;n!D?Vc!wn0Y?rri2x1#3yg&CU;m>U zb^(ZwfD8o)Ab4IryQqj==rZrGBOAJ5JD~JefB<3yxeiz!>H|3mKx{xlS&Cs8NDv@^ zSdb*|kXSgsfO->d7zh9a5X^<#pt1~9{E+Cv7s!Tz06>5N0MrpdU=$?6T>t<807*qo IM6N<$f@jr~8UO$Q delta 387 zcmV-}0et?;2jBycED93<01FcV0GgZ_kv2Ym0ai&wK~#9!V*LOAKLa%ZKmai@P#FLO z5Y-I?2p|TKmtmLzACn|Fiu^)(a3ojL2cg2!v3^|AvMJ24=A!ypBoAG+~ft z{Kc?#-C70?77hju4h{x@0K)V#(6Hudmk9a{WZ1mvXTa?DZ{9O}`0|0_$B!Qj00G2* zf~@E%1KWRycTJ!oZ8!~t83qC`-n?Lt078%p0RjlcK#=ocuKW9H9ZoNUT!#w)1Q69@ z86beDZXiGaQQbg*0HV5q00BgG0|5ev1)n4+rb(3p2p|?*it*=?Hn4ncmL5Y(TMLQ| zKmak3ZWsh08wN_yoE)6s><17)sCk)gk&)=a5!o;S9sveH5kW8w5I~IR1?;-@>;8lC zCMY`*0_cW0yE-!h1P}{qxxmPOeEar|;nSy23?DvxVAy`^JA(@26Go68fB<4a zw*h2WzqvUB!=FDO6B+)4XrN(W3||J*Dr?uKYlR$2f7BN5l#c~KM?-%1#Fl=tOHED2M|jD1Q6VX z(b3WWXWG~x3-*n1^@wn1b5*t zpypq{fi48%UqF}rVg83<7>EtQ3}9FPg<@m?5I{_@aQOxF+ONO=z+U?M?>|@rx?$jW zfrTZI{t1krAE0D}1ONgEY#=Dm!G=IFi2eURHpBh^(;+0xKwbrT8{I&F077^f=+)mq zZ-c!26Bv$+41eI^1vU_rbbtnb{`vVGEb`$OBvQVk83+(SU<1DZ6Y1BVzrhg$3cnxU zzcKv%{2u5UsDb}M=@1y(K-c~K^#d&Q7U&3&3;#fa00sa82y7rI&3*X}lmsgN{_zC^ zGYdNdIAemz|Bz^aCTgImV406V7lOQ7bM`EVdjMu2KmdUa1ZDEyKfW-3e0%>KXc#NQ z?{6O&{{9ALJD_Gr4*3W6KFEdtenVXN1?b&|^XFlPeF5cT5DgGOED+28Gkksfgn@~P zh2hs%kYV3}_$Syv25{v3gBT7p^zWZvU<1(%y8y&TK!ySY5F^MiVDUvxp@?kQ4iF7A z>nlJ2!3qZhAWneN!~zUH!$5)n0mOnNd51(7zJPiYZWssv1Q5*2+@P`yRQ!ACn|Fiu^)(a3o*bM}d4Gj%o5qubA7)b5fb!-1`-L&=p z-d%hD0|XGJml+v|il%4(*%+i4e}UQW-@Iq|@Z|%;j~_o600M{!-7pBnzyNe1n8t>G zkqrZZ7jIrLeE;&D;m4mJ3;+Sdf^Kv3v`b+6@2hnT%wj=UT_??`$AHTh00BhxSOy3n zsv8IpKvXvnAb_ZDAV2_7-9Uf^w z05PH$uZ`wz;SpzK5lpd04w>dXibKrE=pL`2CyV|F2&R|9|{o`2YPoSR85ZJ({|H6Sve=vN? zI0OtEpn(iP7chJQ;;%sVFQl+!0P{hA;^`H082ocYf(#&lzy>CJePqxNYXVyS zkKyN^e+(Z#ykq#y$i?vE_g{wJK>k0Vb+E+n2dHLun-_y^9?-B~-+%^wLopB_02OqM z0{{rZP}KY1*Q7#Ge@GmhSjtPGL2-hDWx@)NsRT550i5pjz+LWHx%duk9Upjq1rXT4 zpTO|?1=RfOH_(MZ{0r!^Kg|Cy41**a2ymhZopDP|^V!_~++$NaXzZ42+cTU_+4sKmdUa`~pm* zUw{4vM+_+ZetiGN@b~k3u(u%Q{R4*?$cuk}K@9lz;W^lq=wS#DKwtwufBwwy(*f+effhz_ADkJh1n{kpT7LU!Zr93Q13K(N9ASY9zC zKxtwDhG8H2%3{}7LwKty&+6I0xd@cFTiRMsPzAFaQARU;qF*m;eA5 zZ<1fdMgRZ;K1oDDRCwBA{Qv(y12q9a01<`0{_!W;R)7FvB1RD-0}qH20Adb8Y5@X> zpn>21WCLBt4s>Psd#Is!0YCr|gE%0DG6Vv#0U=ic1Q0P^=3r#tgLzqykbwXJ#6rNZ z|FBR5f_a30Y!(v}V*m&sduK)4M2KY7zthOa;VfboBZPYj>G{bu<2`!Cpn zPeAs!uU{B`etygF^Xq$t``bDgK79C)1k`5<5J1>}4E*1-_7c$cpJ0ujzWo9k_>AGj z`)>?ie*9+m^&RM8tdh_ME^$cIXegzr!17sKwp9csaWCQ=FO*#zr+6SOv z-@bi+1sm}9*EfbgKfi(5AVWam1)^VH-p=s-`*#$>fcODG0Kp9WAK1Jb?5bbiJ^(d* z0vhs_;ol#icmMqb8u}e#;17sPAD&nP(t}|bhz}4zjEJN`62NL0NCF^$7@-MO0f-HO zSP@&o?PO)GE&u(y8A%AMVITkyKrB!L1fl$I=h&Ph0--)YHGYS(ucI3V0ssL7b0N-> zWE&gX{ZBypGqBuD{r%etYUvLo3s3++01;IRI+p+d7jKuTnbZIP0fFR$!>tWdPGyfN#C-gLUiI-Q{2be?krp1}9f1d5}0j z0AUyiHw+H|8pbeZ)*OZRZ{9O-@^CT;FbF(?$pHiqN*E#=2GYa`rO^#*X=`D4@#Y1? zhc6!(82+GI1`t4S7oxii$j0h2kYOMI^5&OMUl^o~q#q!w0SF)_QoM<7n694gy}!Ty zGTGbP!y^YEfEYnpe-9}paT&k07*qoM6N<$f*%E}2><{9 diff --git a/resources/check.png b/resources/check.png index fe4a73b08cd88a6c0e1a4f91d547871ac9a1dbc8..ac318731dab6e2ca573fe8be66d5710f792dc31b 100644 GIT binary patch delta 569 zcmV-90>=H`1knVLBYyx1a7bBm000XU000XU0RWnu7ytkO1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-$4Nv%RCwBA z{Qv(y12q9a05OniU_(R0e-#xKoSFavh$I7%43p5;*9XxY=znSe0*Gh>kqpxSVoxA; z1Y!krLjeMaC|sEkFPz>Rp@t%h{|6Zc^obRa zs|XN4L>rj0_kTD@^Lb>0kPHKbtpv!+00G28tbuc!E#ck+(NHgf3^PQEtor}~#0ZKM zMn*=kjd$+cVZ`Fq|1iyHkp(hH5h-jzvHk!cfLLIfQc_YF=FFJ`GL#cN(4hu2LzzFI z1{gy5aKk`y009IK!yi9>fV~0r5(gGv|A5Bub0Gc>HGc>crpIB1ffNA*5I7xzT-fpO zH8_xw(jClD1(-NAcPK!y1U8ES0tl9{6`+PRp=C1;sK!7fLpkt89zX!Wy!-K&#DW&EAJF7MuKNHo9Gc#eph*OlV=w?f03qjP4ycPj*Z}5r zB(EAk^D=TE)FP|^Ab{ZM5R1z!fd;KZOLGj!Nd%jL009O79W=vtCM))z00000NkvXX Hu0mjfEMUr9 delta 582 zcmV-M0=fOs1l|OYBYy%VNklBjU5XXNG9`1n*5_oX7W@{jep-Tc8YLlT^ zy(Q4aw2=B67)?c_-=WZ{q+7ZK(;--k!5$j$5=b{^iw6%6BG3&6bx`zTH3<}&r3Y_% zcfb4J|MXNL<5^?vd2#<8P->DD=c$6|Q{-~?_xB&d+kaAi;g1(-v>-CCID={+(fG4@~W%!0yg`31Aw&_@r2>|Fq>RVC}1|RY`oZj zC0zZwVmuntJL)|gxqyWqrU2Y5ZqP(gRmP(+VL!ws7EKhE_jU0o#wM1**&uTY^;Rq0 z+Ij{c9)$f6RevSbl-cEscofq+>S3)V)fD3ye9x!pH*>%eY+}m_!+w|>|1l~r;y7~Z zQcW?E!-627bI@^hEdLleI*$1A`HM5z_k4_J0BCMC@5ijd^m0n;O^dJ}=684DfKrnz z{t+W01b&b!s0YlhXSpRy1z^6I(|zA{o;J6d*u=UJ5w-sNz6C4)gMwwbibjgN}n6W1L6bcU>Cw zhFePEr4f^F+xPK3pY~q6Qd#|d6)$16$@Z&l=8HLLlA@{vegM^ciq#iV)RcgOvq5GP zn=800Qa{zwc74x(09lQaha!S3#d*1!RrvZ8=uw3L!}DRLs_ruZ9v$tkf&Uu60TsLm UaD=#HjsO4v07*qoM6N<$f=6Z*s{jB1 diff --git a/resources/check_blocks_compound.png b/resources/check_blocks_compound.png index 8196d7e52b88f9e3a17d5aaf8bdba8bef1810870..576e7509307986b32e4347f1d17eeed7effb0a65 100644 GIT binary patch delta 997 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 delta 373 zcmV-*0gC>$1djudBYy!_Nklwpp*g;0sXMn+;afHZu5XBMFfw4)#<9IK%ts@j(=j^fphMGy&nD-1^~sX zLvzbPM3A+#wxS+Jundt4SxZes!%q(j6{TPnXxu%YBaDCkff%&g8UvTL)R#6#vFczB z@Jd!ndCsPq?#f&5hXcHlZ5bHK^hRdBHD(VXqM(P)5JV|P+)#4Tt=YeLQY`Rz*fMiz zBh9!ogPa70a>dN=m8mCkueP&BI2^9Z004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0004JNkl7xV5P-j&7|ou&d4LG9mAx;J6_Hm!EFHR)74Zla>O)k02Y-axJr6+l%yyS^br@5E z#7UOo*!SJ}{)!L+_molmD2n3jaJtxLt?hTq;wmr)+V7TQpafj*{P4cQdw&WKAz+`a zmmN?6GoS(5WHllZri*P5k#J(r0u8KIP@~W~Su>!GP~E$eC#xmYvl2L()hAJL0N(pG z@B%#Qy^at9iGTa8wfK)Xz4xkK)&QcG#v0%?@Sq;`SAae61$-I#&;j2X4{m^-c^H5GTu8!T5$-LfsB4?8p<;Aepq5LqxX~~7mrUcK17>Qmy1~23 zbd*bbxdNK$VrvUM3o>mQ`@I4vB233u915j~d`#vW4p8qav_|dtic=^~qNA2vp8_qk z7Lhma{d1-^ox)=6b}|p9-{#*RT;$;c-8>F0{~oJt(sQD8<_wA N002ovPDHLkV1ntH$qWDh delta 413 zcmV;O0b>5~1GfW^B!32COGiWi{{a60|De66lK=n!32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^RP1PBToHzpDXG5`PpL`g(JRCt`llc8?IFc5}+PuX;!pko0g9dlWq!D=5M zd53{MLt*v`0mGv!sFZN?)%ox(N*#_75Pjn1-nVbw{JhP) z_x$IY0AyJfJ)AGM(P;bKI=e`iBHHiPQ=kNj#Q8a~OeSv z&0#Iwsw1!pxKnEF?A9_J^~9(dYhhHJE~TmPy;gWOQ>hh9ps>w2yT;2^uv6-#F(xRL z4J&}md#|6bLRqh$FSjo-QZd1UD#Ix>%MxnR%G6Ig=2pIMz^m^3BsD7XEhCmE%Z&;C mj8RNs>{TfefzMu|-vI#ZeYh8uPftw%00003Y72yv4LVQpiKaj5gx!wiE40T0YD5Dnzl1BLa#UPA?N0|5dEtPkp3 zT`b-a14R%tvUULRLTH4EA*+Mw2gv~h5Xglv=ks8(86N1ck?n3cb97*Ya3qSy2 z1S+mThq}xXJz`+`fH(jo4-h~wO<)1!^n{F|F)W6|FqnlP1C;;*2-y|7utW;NFimKQ zo*QNml3}{gWCzX&00G1ZD-WUJ2Xd(dC@etvbkd0gjDX6sSb$t`!16jMao+=_4uAk+ zL@r>F3{{3D2cXN2Ar%~;$T<#I4SZORx(hQ5!~qB(CiE-?P288Du__KUqy#Bjf-KU5 z8uk*Z?jCYN2M8cWTvY(nwc=1iETQyWs0;5R=XGQN5MTf=&u`KxPHrXu0000G0^z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-SxH1eRCwB~ zlRa+3FbsvCgf2xDD5DRc19$Mj`Aa#?#Th7s^41kIOvF~JtgVvtx2SNWn zGel7YeF5;4%JRQGRIKD|37{q0(X~qfKj#32_x_jsMb(TNdwkpD@p(V;IUTlQ5*R?I z!*<2{HE4alzkgnL0Nw$#$Wp-Rq=iKU{?|bLmjs$7RDmF^te;Z0R6lIf`vy4h? z$Yu!vL$)S}VgTet)x0Je9a>>1y9)pt37Au$O8_cXvO_JZ<~TK+Y!bpWbO2gDHUVnb zX4r|94CS|>xA9=}Mo;anjRm~9DGWRZII7}%0DsSy94BD-bN~PV07*qoM6N<$f<^Va AdjJ3c delta 320 zcmV-G0l)s^1KI+RBYy!QNkla%AxuF(^WOTVV% SS*sQR0000z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;Z%IT!RCwBA z{Qv(y12q9a05LI882|(j)eQs)K*JcD01$*ga1{%)605W*!GGkkLj?apxL}zHhLtB~ z_7M@P3in>9D!Lmp17_Zd$kN@nIp-iEkeT#;egOnG@XMDk3~IiW3}3$gX4o|$fnnL& z*9`v|zBBy)|Br!@k%@tkfgPxd3y9emrcQmxV3ah2LGZ_KhU?8frGbBYDGW`1W3+zH>W@ZLfR#pZM4h{x3Ha3QP_x3V8 zsPka3%3BH3ZV1HZf%pYL0KpCX`0*pd+s{A2hW-8fw|Uj7Rd~Y+Xi4p#U*8y@sRZOg z4iEz%fZzsx`t*t6)3={61wTMu0OIfX4E^`#H-;EM0Dr*^{PE)l!{6V(VB8N-FFeO* zAR`kqh8REq!3_k*APXyu3v$_WplcuCGE7iVkb#Ar3qu?rfZ*wnot>S5gN+pwV??Dl z2?+@XR(4Jd^#B0`HxLwqJRB_G7$pX9b8|DWGGpcofB=GvKoT$`11BdZQ3isN)X(34 z8PLlDfPVmj8~E+pH=u%l48#@|uU@@k`1S1rhB!a~!6W7U`}Yi=fw|=C*RLRN&jW=i zD4aln&%?t54r5^Y1gBF_b^~QQxzBGg3@C#0cnT3gAAIP`Qs?hFlA5Mz!JSZ&(&U@@r!$Etr?*_Pk%B7RktYcP)@% z#u(~;%xXEyuTe2?_uE|c6e*=DBr|ODa|i|nnC!cpFLb?KDSykdmk1v+#WRud0&Sri3d4aGs10~X?uv(xk zzbPyT6qqlkt$@fOWaDp(e5~=n?6qx`og$HSOYddmOnBGha8otDm)JC@(14(rk& zbto_t^l&gFtxvTJY?><@rV~y5LBE(C1R5Q^iFOLvD{MR&M@|lLYs5)h^k&Fn6_ZL7 o&8Kt!^;LM~fjJoA004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0007tNkl~ZAeP_1e>40?a>{?Gi(rEPkz5Ivhj>8+huH?tbmF^7J>`|x$Gw}?0$Uz2Dc0#fWQX+hb#UEF$m262Qh|`32qq3 zaFFF713@kW8TRwXcVL9TUC00sKrEoF1hVxvF!}ub_ZKz0p!pU#2mJ*`=HI`6Krzek z2Z&(+Ab)_s>G0dvFJK9f4klo-K*R+jJVMa3BQ5|CK;T%`ljp;bIM5S_SK}{W(gOMF z&!6A$Gz$U%0R%G80EiQyGz>VLzWEC5T2R`9Mbf|jknjZ=@a6L-aHN0?{`LD8Tq8gL zfeict#COmf;P3|+KL3HXgA4)}XFx-c4FtOoXmt=M{6MaR0e}EvffhkK&@y@fIFf)G ze*+c6yavmHAPd0qfB(Rf5DWkW5DTQ?bK5 z$?0yuls^Q%PdU4LT~loUGL-8b#}MIzM|*02d)spzk|vnKphPL^>>Ee~3kxFJ2l)8~ p;W@DA>z#jknbYk+$efzO-~pu$MiD_7(6s;n002ovPDHLkV1jlZZ1w;E diff --git a/resources/cone.png b/resources/cone.png index a150f54cd4b7b1150124eb83be1cc3afbea90c21..677e2c729d1513d07a93f16018755b5c1840975c 100644 GIT binary patch delta 808 zcmV+@1K0eP1HJ~3BYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;v`IukRCwBA z`2YVu0|?^-&d$#G6+i*V9Do2~BBUrNDCoawOb3IFjSa|9Zhu1R0Ro7ifh;U649rZ7 z42+D7Ag%!+LjeK^uYm~(3IFwjsu+OAF&M{mGwAB-9svqV;L`&TKzI#gVnRrR{QK|U zKM+#|pDO_Z2&aK*X=(qpybGa*0pY*@45mrb8AL@zci?j+KmaijiZ!4)41a;dA1MCy z>la>E0t66N1AkLeQvR#C=Ryqn`wxgA^shgE87%Wwft28MB|rdSH4x;AUw{5V@b7;N zKY#ya`0?v6!_QwJ{$H3ftgZwIAPfV8gMyJMSUw-^%`277hkcP1T z{P@CPowWd`D**zC1zq6t=g(k+egnM-a@F^re;7V}gMS$M`}-##{>aK&D+=DaQer>$MEg{ABI1`M9swbn}HE%FC&=E#PIC{ z&{6;YVSjZcKmfsAC@(Mn-ypW1fsu`$;m7Ykz=-+H@b}j@uowUQ{078d!1TXAzZm}i z{SDUh``34d+q-ALT?sM^Ab{X5eEVetv?g4OYZvkRZ9$y1A>n=b5 zp&J+i#2w&bC9E0lO^}QK{{9Ix>^C?v9-deYbJ+nP{(@{EKmZ{d$PF!?JfO4>o?LkV zN`nl$08Nt@fM$IK2q5HG{tA_ZDSQDs5Mj3ve8tM7&@t-%$qGV#^_vfG-aN*`a?^Bf%l#YZwI9si zpofi__qqz-~3K1@HPJ0N$hf68Z}sFbDblms+q`eIDUU)ITlU zt>%r8i>q;Pw$1=Bsj;1^!nSes`6fpAy}h;^qi03t$Hx`;35polP=&&bvpuW$9;I>?;~gAfS>5h?GXNsV z_OrQ+h#eq+$;%;$ST*I`riXa=GHC aYnLAz;k0eI3xZ1k0000z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;(@8`@RCwBA z`2YVu0}SH=_kDeFOQHdQ0AeCWQS#TXAW9sFxe2KS2p~pemwz!bGGZuroRswc-}mnf z|Gs=-P~5y(1t@eEpMd}YM9_srpFcA&GBY#8yn6@Yst|G|Kmg%2Fg`y1ze#ul0|OHi zgH_681|1!p9YA3Te0l%^2(N)mK!g7L`3+|O{P~OF-@ktZT?r6CI1NlmN%^nkUC00q zVrVKbOP;|XCVwV|*OdSPgww#kfB!Q4{r4Y?|Nr{M@aOM8hTlN^9T-9QTnP|BSPhJd ziu$kYme26x_g{t|zy31(116jAKmRg(`}v2#EN2x+2~Jl61Q1pOzk&?-^@rih_dg7u zzyD_V`|%^gCm;=C|M~G1rVOhq0RjlaKsPtH|Ej*#41ZsLfDHW2@afwxhQDv$g6ZGi zzcBp%@tMIqc^Xbv0t65Xy1*A;0tOlO^EbqcAolO~?-_o5`vf%bGsB;s-x&V=`HAex z7a&i;1ONgE#f5r$djHizI>4@Z@$v=3v**tk-n@Lw@ERCFpI_f+`1sOMn1E@$!cc9~gcB<^D2!XZZc)9ndA9F#7^_VdVBshHpT_egQEkd9wiXeGAC1 zK>l5$2DSr`BYy#XNkla2Ap0qE1as(nj!Y^W`^hUM6Eu{p{a2i#6Z|^24I>kNa8K31~rQLNqu)!hq}sVJRHZ#c432_v<2(sXW2GWpMQLM0O0L) z)|_Ge>(-I_mVbTSPDZ5nDFElgbE09ipPIeSxVjzz+xfI19s+ilh%k@=63BjsYS5y{ ziR0wpkLw|i+0YUVBW!4!AV5*%xQ%07u5p#aIoCi%1PO%5Mo1{Tqtgn)cEIJPgbF^~ zM*|$l00OX~MMQSz@ZcRXf1j&!4p+5w7|0&v>koHvzZUue5#_F_lTG}C00000NkvXX Hu0mjf701aF diff --git a/resources/conepointvector.png b/resources/conepointvector.png index b727f53a32528cc17c62f9c00610368233cb142d..4df785131e7e26ef602e8b61bcaa473dfc444ca4 100644 GIT binary patch delta 841 zcmV-P1GfCJ1K$RaBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;)k#D_RCwBA z`2YVu0|?^-&d$#G6+i*V9Do2~BBUrNDCqxuad8G48yk?J+<%1B0|XF316f#DKm-FL zBO{1wK*&&l0K#ivLPElS{h%r^+c>71L04Dz2#_g(PY*x<;Wdzn2_X&g@4tWlKui^U zt^^1moCc<)rTy3PE<_mk?>~cS(sTwCo3=R(dujp35@cq{xhOa;VFnsy(o8j-rk3bs2 z{`2DtgLT#doUQ~2AQp6i&!0bo4f+lABFI(WfBs?k`+w#Q!^f|`7=C~M1jL^i{{H@f z?8+BF{1qku5I`s{w6wJRuj=2x@afxchF7m%F}!^FlHu8l=M29-d|>$e`aZ*#HxC)U zzIzIGrC~%XR#yT95Q+;w0=@R;?Q3v2{bS){`1T(dy9|sBZ~p#eUq%GBJGn z@B);Muz$J|Ab{X5l#`SDuM*hI@Z&!>&>${`PhY?;nVIV79z_036#}fEbj=*8t7B3lKo)28IA}2e?=XYX%zj1#IBoU*CZ-`x9u` zZ(z{;g0#F96N@3J^fZvHTS( z2|`o&0vgynSPX>8-+{XB0xXsR0tnfKFvZ+ZgH)g{#g=DZKn=NroMb>|0R$KT;N5A< TrDh8A00000NkvXXu0mjfT3CgB delta 408 zcmV;J0cZZ-2C)N>BYy#SNkl1pw6oBDh!NV(LaG(@=g$})h$yDgjKu=IQ z^b8#eF*$+{QE)nxPDYpLkVAxmJp}Rw7j;M!>_kpn+6O`io<2Puk_?W2jX|FzXZjy| z67*PK^dx8;raAu^#8>t&6&hTcEdWTf1sGiZmOES6PP`jzV1GW+Y{BGiLba;sLc?GH z>x&+OTg*}K2GCj`LkIiVH2cI+^Szw!2GCkNYNpv|5RLXR4@4LDjgwwl>w5VLutl%Q z=Q*~pE*U2#YV6{BIp2fA;d4A(ew6^&!n#2yu^G=#SD5YG1y`#IT`8*C=%K@eHnr|y z;IMR-qN=QQjepkKzW*QZAMWP%rW0sF0O>3RKt#Aaza)-hT0ImI@_A1ARr2t7SnaOr zE#&va!x$L~B69dbZDF17Nm-R>z3I(wVaI`)TnSnEKAk+dKmzxa#$#Sc|u;t?!6Q1G$<0000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-^GQTORCwBA`2YVu0|?^+sy^laVQL7e1p$BnVu3N_ z<>fI{K79C)5kxaGGKvGKFF?b-G7ta&0mOo&nFmNo05K2H@C!h`0g$Z>l?Jiz0P$TA z2j)tkMHmJG1P~Jv8)Tpg)UX^N+XLv`J5X=$fXWjD00D#?F5FOWTLW=C5N89iJ17i+ zbUBC(QbQ;#0Rjj)48K6>BS^uZ0%c0Tf&+-b;i#aX05XvgISxQ!4iG@-VQ2uwU!Y+I z^X3aE{(`I?Y6yt_0@W`L5I`(wVJLxQhzisYxPfS~%mXyU25OiDR6P$s03jO)vi$5xLMnDYelJ1qd(z XeZU5A7^QR%00000NkvXXu0mjfG_l_} literal 1179 zcmds0OHWf#5S~7+ZICM7S|y~B)?g@!&lUJ?767=>t9fKjng7bZq!ff3^djoL0$9!1keNd4xND#m}{BZEXXQj(l|iH?~o+qC!Qni?YPy@htExWrc!<1^HPqt7<^R zW@H+8vVq1wxu_p@+pJ7?vN9>7DYfclN@ZW>@6T0JtZyTYrDZyWIK~bbu4>bp%p~%F zs{_s$kyH3$D}?#QQZwnmI)sT^jUmuX_?1f_Q!qol(^{331OSXY?e zt4{ERh<~^@sj?r}%C$p@{%{-%*Uy{-z6w^f&`fh5(<-40Wx#pQeXxR?TD4?QkoQJu zMs-eQ#9MG3YifR|?DuaEf`9cOh8*0t{JGq>II!K;gs5>Pp6}~}EeSCf1MuTH$j`#W z^V}?O%w!hti(I$gxW#>@L$yNl^RB~3D`}4S!%d+c-1(lxO^vA82D}n{azUm5_9Kp2 zac3jxsTds36tCR;z<|8{;QF1{iWttFujko|Ts_i-Y7yf%N%%1|bk6T>;F(<^xq)8+ z{O@L9bi5VqJM2+hf%8|wuilx+X4J*Id%ryz(%kHqm!=n-6@e6s}US;@DWA88US`Wwo diff --git a/resources/cut.png b/resources/cut.png index 4370b7ca37325c722d3d7f6ef4f6854da2798ba5..77086195f92e492ba482984bf9ba035e607ff9b0 100644 GIT binary patch delta 839 zcmV-N1GxN~0^SCYB!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0008iNklA|K>QWi zK!5;Z`Sa%w!|%U9%|Hx-AOrvWh0tKv{{Ig(5JH17P!AAz0PzkWzKd)iKmf7){{0)Q z2;?G=%l-ll`+p7O|AiX(A1V&A1nhDk{tt1z3J~+4dl?{rSis@)`!Co)kS3V-UV2n-n}CME`403d)^e*E~s@beGI8xZe+yuZ6M0Ol>QYd{eL0?f?JU<@*lkB_ea z$SwehgVch|0s58^Ab`MO_!kr||Nesw`wa?sV2s{;`F|U3E67krMo6TA$QviOGiX?N zLM6e7L0K3quM7}CEDS^dm|@5kF#Ly`2Xw#>n3M-V0D+SYBr-tZ_7BSb3k!G*!{CO( z)96ozAHehp1u6gm!~#mJKY)?)8ytrJ!G?mv4QMDMH1M&x5M&t0Wj}#o_v8CFxEw$L zferlm>whmeseseo|9|k@!VEHunHi_cK!*MN0d&w0xCN9G>}a60~th(Le<0;j{jzkUD}{Q+Cg$jF2o8#u!d7XSz#a4a9}3&D`M ze0USMzyPH=kfES(gGCf5IDP?>)^DI={`~n3Pk*x@01!YR0}X&U0ZPMwgOY(G0~0X( z;D-GJWluyyegWb;XbyDv0}4~1?I44|NegHQvVmY1 z0u2I%AIOz301!Yd&?0CDT1GDbc?V?3Z=hnB*I-!?WC2+I?;kMxA5vrj1P}|fJiCh? zhCuLS0reKhH871J8ssvti^16v5s?4^gewaFGmr-+00a=Oyo@cPhynls1_1D`4Wr9! R34{Ou002ovPDHLkV1np^T$um> delta 255 zcmVA`d6*CM34#&%A)^@ePXI>=|M1*vi zzTwfQiJwvyB{sGsB(45gC@?Q_Zr2;ty=wJ8?HRPW}rDBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZvzkdB1!(e~_VuYETl$7*e z*RP0ynTe5s5o{yGz@NYWGJFLZ^5w^Guwh?;hJyIte*R|I)#?S($^*n-Vdek?5Zr~o zfB$BA zRvO;L44|Mqx3(Ru0b~g%{NBBL2gaX1ePa0d@gswE{wjvQKff{@nGy@qY6HYCfcP$m z0}w!P1AqSf$?yvpULcn#dlWPL0Y=ClApiTXzYHJ0{eNQk{Ovc`g};CP02}t_*Eg6} z38=Th03d)+3A*0>A>^^WdHjM#@GNr z0HGN8=kGtLm;Zyq5{4m$fDHW$HS7<=|G(G`1PCCESpEZwkiU=!0ekz`Z)msyz5E;K zU0~S#0|mj~Usw$U2q3tD-@bhVXRSYf{)593WPcb)BPd3H|M<-C=f_uwp}!zu36jGG z00IbZASeNYk_b3r{`>|;!Y{A^U<1E@VfX_~d;h=@0yOOJZ-)OsHP`?^0Kp9el_WoY z{sL?G{^=DYR>58bCXpXN1A#QiRsa9~VPIlm1&1j%01!YZVfgL+Gq9_eS=br=Gcth- z34d@Y0mL9SsMz=qWc>Q}5h9KS00a<9@x{c<3iitH@1Mbm7wkGv&H#BAL0U6B5 z%#77QfB<4dDq!`Yr3Qmua2+&zfeeEf42o5-H-YLOpVf%pgzuK}6^E^Pn;2rSvlFQAezHcBai2EIVm+=1$O0h0g-FaWR> Vd527kyWIc)002ovPDHLkV1hUqq$>ab delta 304 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 QSO5S307*qoM6N<$f&xOkIsgCw delta 358 zcmV-s0h#{y2Y>^RBYy!$Nkldg8spV-3|ebk z^aa$>wB-NT-GQT$yVGIR4<4WY2JB7;XVHu0yPKKjm257~(ij4EDNSW~3uFj$aev#^ zOG#toZ@Cxfm0v7NiDY9Jx3$R+jEE3Y2nvR>@dAkm$Is*MOVC<-=d7X?C?XIIz|k(J zD#cCPK)2W8buFY26kVZagP3fas#2`AhVDEW2ITEF->(3d%9ETeumAu607*qoM6N<$ Eg0l*!ApigX diff --git a/resources/delete.png b/resources/delete.png index 8ae8475270846e746507f5bdd7752821fb1e88c9..54dac86a2a9054b5d136cb5bdcb10e86a68aca75 100644 GIT binary patch literal 1136 zcmV-$1dscPP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ<=1D|BRCwB4lsS)FMHEKQt$OvgneJ&1BMUPU9vdW< zfJNpXfP{pQECL6_jz}zsNFX6505SqZ%5T7uLBf_L%hq55Y&Lt0jmLXWPcQGiS_!&6 zUT#v0Zk_t7zN;%KB}9a$9+s6{Q0HRC$9oCpaat5=j3tV z+s8jPOZC!;wbj*k?+=HEQi{)(d2z+sE=wtC8~h8=`+o%ihj(kFBjOth21{Tcv4RytmxFa~FWj7-rKc5ANOB{PV)u zFRyN%I}O|gI!P&U^u%Y!j=Xi`yN!*Fo`}$O9o~DqcX%K0-V>sqkKW^b+*@zo_-}mv z=aXMwI&(^+S8Mkk5v$HeA2hYyV5R+v%=V;rG-bx=4A%w{KbL-r{ ze&wHq+aUu;q;Xx8(|)gChTvIQ8Q^^&Ga1Xv%XsJM_j`y4)>``g9^N{PF=Sdr+cp-k zz&HaCkqN@2EX!wN^Z-;&C4%>XBF`xbL-0PP z6j>-t>LGCZ=FMQVMrn;!ip*pfV-Qi~c@82Nlc6(>h|C=}24`JJDLqt}_7tuRR-&kR zqEd=XD-eZJYN1S_ltuup1(O@HETe1NF3lyzCxBI5Ih4Yf45b96Gqe&!Aj>jDge=pf z7(o`7XpOV&EX5cX-6rkOW0yTl()bwX@I`Jjn@$!bL#cK@(5tK^L4Lu&#Q&e+_cp#@pg^Rji(^Q|E#GsETnvgF%oh@G z|NsBVa=JU~LVs1qNz3`)HwMdQavt~mEVPW{xMI6d(A$KBu1e__8@xUpahmz;vqPyE v!~ecD?K;;U{BCHMV=yw=saPV-wD17?vMOc`V~)i0paAxC^>bP0l+XkK1JFi| diff --git a/resources/disk.png b/resources/disk.png new file mode 100644 index 0000000000000000000000000000000000000000..8aad056b9ddf5113adc44bb5d6977a1a79754570 GIT binary patch literal 744 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 literal 0 HcmV?d00001 diff --git a/resources/disk_r.png b/resources/disk_r.png new file mode 100644 index 0000000000000000000000000000000000000000..3d52a2d7907649e6d4d24d54274ad5d07a76ae96 GIT binary patch literal 886 zcmV-+1Bv{JP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;>`6pHRCwBAU_b-^|Nlq9d+qK2ql@9g00G3rKmaf@ zF)=VQG711O2LllRAb#s3-j`T75U`t*qt z7#Z-O001xPCnwn$_@S zGh|nR40`}eIsgF#HgGM_z;D1nj=ge46Udc>1_M3=KR{gub`^3u1PCCofvfcN{(lFC z(N7>wyLQbG>VhAHT!?HC3;+ZWEbD;6&=TsZ8z6506@MV7_yY(q0IRXwVjP>E00000 M07*qoM6N<$g3zdUwg3PC literal 0 HcmV?d00001 diff --git a/resources/display.png b/resources/display.png index 6028075510b221a8b27f8aba539d25aa09535518..7354e65f0c3a46f67965730027c75d0befbae59d 100644 GIT binary patch delta 600 zcmV-e0;m1=0r&)vD}M_U000XU0RWnu7ytkO1ZP1_K>z@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-?ny*JRCwB~ls#@6F%U-I z!a79S=mu#Fm+4jbAUQ%xHvtSELO1XUask1}5!||5ue7@)=YKE7dMVjbEGNhU1Q#IZ z@%v_mY$AgH`7PdCY?|h8Piq$Ec04>h;O=$Ij@%tpMMNm2uv)DEKAi=cSsibIB7%sJ zQku7aS)8+Zd3kws$a1+P=S)7pf?-#|) zD5X^340HFoM}I^BNGVZDc@2DP^XlsA=#Yzxi>mPc{{DR1d|z)+3&yN;gU}~oEJjhs zJb)kqe*Rby5ml|KqN>NhF;Brmo?t^(!~%0?-}_M^v*n!gVU_p5EJhY16{o199{3+_ zk*bn&o`j6!Y2a9tEKZh5soLJ=JcnB?MBn!SY`5FvqJIFW1!_~iJc9ilpZ>!Q*D3J% z`I)wD0l2-r{rFw3nR6#hahYs(U3b{bHz$Ep4xO11$KjwiePy}%Rrb^b#8)5s=&LuyF*be@C$eX#tIyU0nI&{dn^yQ=?lpFsYygZRCt`N(=iUiAPfc2e{>HhN9cgO zl8p>VULvt^hF-^Apy_}DG#>uK@T6~JKmpT00V2}bOoOGAVTefM5ml0CK64*m1=+KP zJ*Xs^1D7T?3%b{P7y$kHPrz>dJMgdVkHFRKn}Myq8R#~r>`nOszq7Cap+G!heJ}zg zNu7Zan9p3dbp88B;BQ)eGqBY+16%!-OSuJm_1)%%nF3pV_B>43gMI+6Vy|!}AR}=A O0000z@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;gGod|RCwBA{Qv(y12q9a z0I`4wMn*`{^52pYAgV+ILe}DV=hvCcj-wYqW{$|+J z;06+w00{PK8XP5&75Zr}T3r>Sw0CLSIpf^F@1-bMW zQbd4Ux39w+Z2y0l*xx@u*ZzSU2oOMU1HS_`{|3e;D1W>_v4_o@FpvEE`xj^s!pk5G z0{{U8H}L20zhDe<6*!3ilf~bEI8r;%u)ol7`}^}7!{1*B0|5ev1rZUDn1mRH>P=*q zfercf9Uim4e|!N(3OpS$00a=+z~4wY0o|J*_Wyr>;j#Ja+ea`4fh!x@QCtrYKrBS% z(EpGy`+o-wtKZ*0fiV;`BP#_6Ah?0QenZ0UJJ9RDfB%N3Gf-^)|Mv$N@IM*;{QL@c zA&dm>;y9q6d6D^I1Hh#M)xL^4+a1M#0bhtzyg-kf;1c1n^42Sh5`f-%!P_T>pFsYygZRCt`#(>)5rAP|P(x%)~E5F|yg z3QW4O5NrZoVvD`bw}k|z@5X`Ui zS$YdhOF|40JaHRvuT+}~ZcA-%VLGF(3T{hzX1LL*D}PF*RJ^EL|MDCBHxAP@b)ek< O0000z@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-+(|@1RCwB~l)H`-F%*Ws zQSuP93LI(3!JpjjZ<5XghYsuTof_Lu-6!zb5DWOH19sXJqt3M&B`6V zzxjT>Y<9a{an3o1_a5(kfn+n*>-F#*BS6`A2F!;=C0jRaU49tpZSWz^tA%tOd8gB<@yRJJoC4V2PK{YI;LI{Q=KNzrj$&rZ~?pnUcV5SmEBiu4}d=d0Esf+ UtJ@IinE(I)07*qoM6N<$f}uzTp8x;= delta 212 zcmV;_04x9I1or`uD}N5d000id0mpBsWB>pFsYygZRCt`N(=iUiAPfc2e{>HhN9cgO zl8p>VULvt^hF-^Apy_}DG#>uK@T6~JKmpT00V2}bOoOGAVTefM5ml0CK64*m1=+KP zJ*Xs^1D7T?3%b{P7y$kHPrz>dJMgdVkHFRKn}Myq8R#~r>`nOszq7Cap+G!heJ}zg zNu7Zan9p3dbp88B;BQ)eGqBY+16%!-OSuJm_1)%%nF3pV_B>43gMI+6Vy|!}AR}=A O0000z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-jY&j7RCwBA z{Qv(y12q9a05LI882|(j)eQs)AO>Q*%*4b*bhrQn5EHS6L4Rp(Lh1nmh@gT0{{7>D z(g{GyfRLd80mMRtFLVXh#Ceh1UplUkt73Q8ey9E?%oULYf4|Y!9l?cYuByCaLx4>nhb_A_Zc`iI2fE=of%QW5Pz3p_yEY&=btDtfYif$ z0(T+EKueY94Csb|Tn7ixw1{je$dw?2IaoNrE=37LWWxk_1R&n{549F4VZ*$K9HwA> zKaji(@-E2v*finFC9q(EI|yhfN~CPvy!Ah_q1a*(TPpbQwyG8k|0H-8pgmtL@9^QdngeH1ppS>x{ev#0}22D002ov JPDHLkV1fb!gT(*< diff --git a/resources/ellipsepointvector.png b/resources/ellipsepointvector.png index 1d6f199fc84b150e5c18f1277bb6325970f6de7a..913c3cd923e3874d96f130ef4b11c23cb23d68e2 100755 GIT binary patch delta 510 zcmVz@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-jY&j7RCwBA z{Qv(y12q9a05LI882|(j)eQs)AO>Q*%*4b*bhrQn5EHS6L4Rp(Lh1nmh@gT0{{7>D z(g{GyfRLd80mMRtFLVXh#Ceh1UplUkt73Q8ey9E?%oULYf4|Y!9l?cYuByCaLx4>nhb_A_Zc`iI2fE=of%QW5Pz3p_yEY&=btDtfYif$ z0(T+EKueY94Csb|Tn7ixw1{je$dw?2IaoNrE=37LWWxk_1R&n{549F4VZ*$K9HwA> zKaji(@-E2v*finFC9q(EI|yhfN~CPvy!Ah_q1a*(TPpbQwyG8k|0H-8pgmtL@9^QdngeH1ppS>x{ev#0}22D002ov JPDHLkV1fb!gT(*< diff --git a/resources/erase.png b/resources/erase.png index 7f21be762b8ebe3065f588db3c2e132075a2cf3f..7f34b8b5356b047e912d5487457891b1aa4b5e74 100644 GIT binary patch delta 999 zcmVz@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZwo_{IXV4bdg<@~&MkNTC)CgR4-h~s_%tOZCjMt+WPfA;S^D?yUxq(_{($Lk z-@Y;Q&53774s~WonY5ST@uT|;S5NL^cy{kP13&<=5ORr%dmh7|zyE;vKbSthvW{Wf zwrvb{c6JQ2SEn*K8Obs@Ce|@Ly?c$}!>eZu00D&8K#*&G{sQ7ZK>Yh3!?~s938M&{}?`f`o!?= z-8+T{4<3NUCr_RXG%Ob+y$~RPz+Mgu3;PdpI*1Lj8KfA5KYsiO*8Jng53r#i!*1Wc z4Hg3h1xWts)29r%xw$a+%moM_7MSz(Lh2d*{sS8L^ACgIx8DrnKYla(07l5KKmUN@ z{}_IM|9{Nz`PBmkRaI4n_3PI&eEIT);p^A0V8i4sLKq&NSOYTZ13&=54g3z&{2LgX z-+%^w1sVo2`1jv`U`s%0pNW-|fsYbb zKVX9(hC#du0+5^u%bt+rB_t#SPD)^lSUDJ2*f`;F3J^dnu$cV~%?Thc!n_Fq5cYqd zOaA@&1u=w)iGiD&8_d3cWGPB20SF)#qDq4Qe}U*X!@u7@z+6ydfRYpxG$Sho2q3V5 zKYxGzWcc+P5_aE#UI!`u_ZOn!KhW!-K>z#uC&QngU%_Iab=`UZ9pBnpF=}AOERCt`N)V&UZFcbyg^J@BJB;N1{ z45Vw>a3JYo!bZyO;OiU*z2&b;(GDjtz?U9+3qas-07~_sR1dE2!vjYX$Ls`Ns{3vL zknhAXq=NuRGF-V>@f)L-oq^psKv zfVQ!8ol66?jvsv#TO<|K4e_I2VCxNQukCB4DWJZjiA{j14Q&&d!%yJeNJ%L)wb`DO zJRpJg+S1e}ALu$q+t_?yf9vTww>cp{gY#(pY@pW925S97|Hp4&tiF`8nz@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ@*Rf&#FC|Ni|0(@jlH3<(`; z8LH!57*Z$iV>o^FKEus32N@pUzsd0N^>YS*0K#h^$Tc8?V024M3(&B243n~48ImXL zW_a@GKEw6X2Y(oz+`9ob?DUSM3;+Sd2(lIAEo5(k=-lprmiZ01!Y7=#df^7x(|-#f$&X zojdpc0pn+iV$&)8D#E0cFL_|b@)k48bfB*s;_~XY96azsR z8B|qO86G`)#PICdGlo~MUV#mZiHQN5018iTZf=-?e*gjq>_U)}VL1VYL4b>ki$P3G zjG?u)l_4-N5FRnn(b3@S2Lj8NFGqw`AOk@@02vCxP|%EI;CHBD4_81OfB=Gf8I-m_g#gG delta 289 zcmV++0p9-m2g3r8D}N5d000id0mpBsWB>pF^+`lQRCt`d(?QC@Fcbvfxtg9Vi_il| zaUop^ahEO%*$Ca0^afsMTrs5VQMG_||^g06mx0)OVs@`VHpL*RHF%ME4M zz&Jz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;R7pfZRCwBA{Qv(y12q9a05K3_;1fqDqHP5TASU8e zft85^F*hNl00BhMz-PXG{~1|XL9ToO@c+*r24iF61%LnkWdLE2*w3Fo;rQFPZ(tgzo)I8`uo~#(-Rr~A3#mtfBj*YxT}TX|BoLa7cl$*s{aY3LHHMt{TGCxdRc+y z00a<<3xVGHuNu_C@bT+!hHpRrfbonSwG7d=WeorR`~L!bdXf z0>~h!@C$$dg1Hcs`VFob8XW-!?w0LZ+CHAwt{xziKB0!~Kr-+PKmftQ5S02Qz5@e# zzmBetgwJ30t}yTz+@44<9ZI%<`;Neh>_3% z0th|X=mT*G)Wt`j_$4XjD?k7-;jr}!xdk>r0HM2(8>vM3LQLL82LJ&E07h3bNZF70 Q_W%F@07*qoM6N<$g8vseg8%>k literal 0 HcmV?d00001 diff --git a/resources/face_vechw.png b/resources/face_vechw.png new file mode 100644 index 0000000000000000000000000000000000000000..d674d17c132b8fef81d43d593e4de3d905b02d32 GIT binary patch literal 692 zcmV;l0!#ggP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;DoI2^RCwBA{Qv(y12q9a01<_rI64t+D?k7-5vK~Q zOdN>02`L2#Ac6)y^Y#1B$jSJw1stOT7MEu_oKv)g*^z{6%6B@h?#0KL(D4hZx?s#la2x^9N|quODE8{{8vIaC}BGNb3Y3 z4gm-tMr6Z`jg9{s#Pov=`T;cP=dZsE3u=NH{{R2U@bd=)LqzQohJSy7F8U2J2x8dj z1qC3j2cVI40U&_j2CAs2{5MXX33kB`pg})={RX=Nq-knF0z-P|R51JB-`_y`H<-S( zsutu;xM4uN10aCF28xP`{x{EB0(8}1hCjc40`WJ7zdyf0T>>)X57>bJ|Nb!i2ebb$ zT;13KboqZ2!$34Z05P($vHb^y2{Hi1BqJjuNCTM02Cx|hN>Ts;#0bqw20-iqrFn?V zk{E`81OWnw1!@2+)88Q>kAo8V5oE(a03d*1E|eg_WymhX$T=xB!3BTNLh0L01FcU01FcV0GgZ_00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}000AQNklgX00a;Vh+t%7#E=LK4E+E5_iu(jfBrE1`+xTjEcX5TcZPTG-Z4CR z@`T~z$B&HI3p;AoBSu!@=Gl z382siApU`@A0U8G4D|Q+|G&W1mEr%lZw!BdF4^hk#-P;T$6%Ac0xbXM?|+8xKYlX& z{q-HhH3Z`GK!5xK*$jXHf`_4}r|190K*Roh{K)X{{dye%kT*w^6=4r^vsHU<_BE(Yhyt@E&jAwU2zf`5{Yjg8I!ZGnMc1J6Hv$e=GE z05%8&&cAsBrVT|z7=$NG02#!<%mg%;i3v<^X>{jA4o83hVuHEOWadnU|37~+{QvtG z#W0XTAPfQ!m-;XuCtcr$o!^nY4iG?K1AqMZ!C;g$gF$xEBnAUvVHCq)0K^C3H~IMt zd)mE$5r6cL;V&@uK@sI%vmI_IKmdUa`~vjqk6(Wotnybg2>176gbTV$kq!L~#J_(1 zX0R(*1vV5QfWTqM&CUJaB5xJLKah8U;6S%O*n7BKiX5hBKocN&ts!mSJLG zVqs%&EZfK++=Va{-K8*t9Lu*b{QU{k`}IA;?|&bk8O|;)(F6z}Sh7((G9@v;Y15 z!|?adPZUF80A?648GsWwD98Ny4m9k?7lwYG7o00IbR;0I_nI(BS&Vid?QbVCv0 z2!Ao`&(H4+zrKB7_zCpxA4paNIqCyI0D&U~sk8w_y#grAtup5?V`64uU<6@CW`;u( z!ay+zH0~cTSbj15{{D&K=a;uY`ZL3|%{|S~JberxfY8fBkSz~Dt_8UiWHTthe|&lc zDZW0wVEFOj1;h9E<V~>EGWz!VClHdsz-L6d-`G6|itaPs~b-`t#!}*d<^IkYOKQ zGW_`b1{?|3w)DXayAQAyYz delta 266 zcmV+l0rmd&2c-g#B!BElL_t(|oYm634TCTc1>on1f>~GtCBslglqs3P14Lp0Br3!j zUIQ1AxB}@?BsM=WHkN4eBsUbF?;RFkoSMtI+&_Q<2yBrdqQFWjC-^8b@b|_T+*#RR zA7efcU)Fz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ|{`&mV>YW@Z!v7=ir%|Nb%j|Nfof z&)c^Qzn?y3;Mw+q;g;Zi2K(>dRe(xf00a;VNTH-n3Iit_GXpCN6WF!C|Ndk63&iz1 zCc_O2%d7<%$pCV|&tHETzWn&j;Aj=Va8>XD!}lHB3_ue-fC_d11Q6JT#j{WT=KvbW z1~ia~i4kbne}+FGmmmf2wGFLcI<~ln;rq`&44=OJVtD)Z4TE&17emsI9|wR^7l3#H zKmdWmurJNR;N9n+3~xSx@DGM}Uw$$`_&*rle1u>z$6_$9N%Lj+@D(Wk?j6J1mrod8 z04)ZBFCg!NXn+7>fjZ#Jd!Qjq(8&1*bQ;*(|NaBR3^gKTgL)YXLrfU*+ZQu@{_u{0 z3nKgi>cSTQ0mKAV_u}i1KMbG0{|4hPKn&u8Xi!)o#k|DT~CrI2N zs*_=1Zy5sHpA#Ph8>$2q3rxAaDQp^_$@bFwy?_ z_J!dW5dZn{mErHt?+kx`|77_0_cu@tD2Dzs;LEK50fge>{hhuBe|~@r`@rz?>pO;@ zU*3Z8udnYJet-MK0FwLr^Bd6cUqJkqLCdd#p%s{;kO4pdp@-?0KR@`^a_xDd21_A^SiVH#E2#kO`m)15_0J%0QPRTz1{``W(EYOvV zOw5ol1Vt7wO#l7+%Ya_|0R#{WmT(27`XeC5oqcmbYzZLdk+%qO09y)004R=004l4008;_004mL004C`008P>0026e000+nl3&F}000AhNklk-3=JhQ zKy@EMQpzCh00G2=Y}oUE8UGiqO#>SD6Qb!SP!kY;0c!mA6Jo&EAHRY8-wdC>{RSJB zUNw{9<2$fr9)CbA0T4iN7e4!!^nc!}bcTQb{{g-71#HkyprOA(E(E&tA26)J9tN^O zu4^fe1{yYp;rI7144*%M4O9VQ9)JJ>8~F5JI8gZyhJ>(Apr+qI1HUokB$fc_uR#7U zq_AWF^FiWi6>}K={QLsMUl~4sMEDXQfLLIPCNHQ2hkw`4KmQnt(+e3YyV@Ck{06!Z z$OpR)ni&27)%4bcG5q-fH0;+mpn=~QzI{QY6o3Fkkx32!APfTg{|B4WO=+X?P9_6f zpw4DpPg$qm>%9<3z@EedR)*-JvqQ>h8zzQtcmxpGK%l!AegQTA`VD0L28H1du;J*2 zL6QwHJb!_{{|^l7|Ns7i@t;2k7XkzjG?sq@4gAOO3v37|tp0$#iEbE({U2!BpWi?l z=+b|Ge}i2JbSNAE1P~KM=^t?V`Ul0JNcjIBn_+)|2K{FE@g3sjzrTNAco`sopkeqE z?A_l$Z-cxH$_2lF{{e>=+`xbTzy|*L`JLg@2Y;X+etZT-%6G7#$OZxg5Ht+G0@K}Z zaK!uq#_X5RKN(sIA{l-`z49OE>OVlUK^nh){?G9CB?Cj8e>21PufRn1n*qf@fB=FT z_?h9$ccAURelWC`#xi7=PXgQg|Ljpo0u#_>XWQC}#fxBf;Ng5jc|is^NxR z0OB1W8X$nc2JXAZ{r}zT|G-Sn0L(`J!D=c0$9G`9{R1`+obLXCOCAUt1SZsC8V1B) z0RjkYAh0~t2XYdC*notx6vHr(AV2`IAW7aKv2X^3*%4&JKmZ_sU@qham1UsfheQ{? fKsF2n00ImE6gYExe-f8^00000NkvXXu0mjfO+m`M delta 260 zcmV+f0sH=k2%rLxB!A~gL_t(|+U1l%3WG2ZMJL6@1Y9V%@IKN56c1Dj(%VR{004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0009)Nkl(Er0+1h2ww!{xN_o2eH3@|9{T#?b|noPoF+9eE9Hz zVf(G`45~~|!G-_?5DU5uAj6cMk{K9TI2nHb1sU*<;qSlyU<|edNdNc+H1yXWhOa;V zFf^3JfD8jkDFg8ffB<4bHY_nQ@xQ8jF2k?ie<7NF0yP2g7of&(KOqKu{qY;f|IP6E z+i$R8=~Xjf+J8NOSOOq`;4X}ciu$kOp2zU(&p)t1f0_R<`~({M8{|TuOaB4A`yU(( z|G}e_NaTuLfqgVA9!^q|w&(10DecHt^@qpTMyD3ych)3xOCEDSw#%VHn210O12u z5Ks)5jDP<91!H6Y5J2Eq{`Kn@I5K|y{Rj3EC~5rrk7*c){U2!BpWi?l=+b|Ge`B~1 zAb`LI{`vCMjD+uB|Dzjr0f>))3Sp delta 280 zcmV+z0q6e92eSf@B!BuzL_t(|+GAw+&p=hcL|x-(U?2-l8Ajp)1Eh%YKTtJZ1A&G$ zG&C?Uiv{5|tR_njY|`5GYyWewa4>LiaA5H=(6Hudmk7EHWLOJS-TOE189sdZ!0_Y8 z4^$Wahj|mI7y=q_8rXtl>5Dfn7$krY004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0009QNkl3W{&UaPV_^9Go8kYjUkv|${9yS1{X1AAoCe~5ApGSE*s%1fnK11h zKr8_eKyVj6`+t}8pJxWpuzyg)KrR5%Aj3hf1BW#TgIo=?=}K={QLsMUr~Y# zAb`LICVPEk&<|?@TKnupv+kV*me- z&9FZ}gMP!k{P*_{3<>@JJ5EZ;_n|{Ffg;QGeB}TBgA!(SO6z#2ABarJ|hs`**_1&I{-5f zAb`LIe){x@;rEX(4By^A2O7r8@cY|Guvfsb2njr}_rZ|>_2OTkcaaPOWtSHq8X$mJ zAb*zqXZZT|2?G-o3&XFkAj7^RyaSFLXc7S$`WG4rXog(?;v*nK0Ro5-WEimcBBxM9 zHf#r!{t6I4u)+aYUNIy4pj zt%X5CM1nz3L=e-<&C@P{>A$bmF))h-VKuBaOAn_-gFo4fKz{>S@JWJV8W(7UC3>{P z&w|S!TuBCM3OEG U@8G0800000Ne4wvM6N<$f{w#uvH$=8 diff --git a/resources/filling.png b/resources/filling.png index eaa725c328f18597842679fc1865117720f64828..469e0d7742fcc47b640b9d50f24e9e04d9d21c14 100644 GIT binary patch delta 870 zcmV-s1DX871N;V%BYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;@<~KNRCwBA z{Qv(y12q9a0Fi{8ot+8V4iG>r#2V(~yO_Ie?EU^`0?#4!=InuAO`;a!Eky(K1lf%kbwXJ#DdRtT0spA zG1pfz{Q3Hop<6zTq2TlshFY}*hTq>m0}cENHt_7?5`U2L15j;W00Ic7fq(!01-ovV zd?3(ee;D#kPi6S|>ledcu*<%|4TKp4#20{g2S5N}HPFq?4H$Nf3_pNg{RxZ=5d9aJ z_8QgW8Pd;BXZZa4H^VGhPlk)D>S3;X0mMf@h5`f-hJg+a4*xX*8^B@q{nuY`xPAHl zo8cSKkbgfvzA{Ww3}pBXq(g4613L-ox;s$(6(E4X2I}hS{%2uWQUERvFv|FxnfFo4PkP?~%D`6n=$ z`~`dS&##{h1sA3=v?zx&{Q3R~9<%@c{zeWvxPR+F0ssL7$~N5W?Cf7akziM{5vceN zL+Qn-48MT5?h0TA1Of)I!$K;;2Q(jdGU zY+vBzbuGy8b^tk z8z7}gm8A48ND+x9Xtv=sq(HI@is>c=jQQCHUTq(r`|gYtj;qHhoN}nHXYOu+&GP~j z&a8|xE7PcQ6|jcw=5PH+wW(-=UTx?n%L^VK92Dch|%V`>; zfaTBfHp8Zwr7`ooAj=EJlW|?tMZ>nZr?vpeC}#PybgJtdI)zgQFCE&onYTvvc3EEV zmd2fy9`^b5aSn6}cN+B)be6`<-!rVW1gD|f;$(Tz85clAxKj?LcA!fI0B5G&4nP9g zMmE2Ow=}*StAAssB0{92{jphmFDTa~PtS23(SzW46&`xnz61gR)EhJ_op@H^rVLbLgT?UE90!Sj3?uxSZ#JX z+)51kgXXK33={uXKKop~Q{U{a3>|8cVWK+kviUXKk0Op6^&k(^p+-VML;&~)^d`m& Tm3N6c00000NkvXXu0mjfeT&L< diff --git a/resources/free_bound.png b/resources/free_bound.png index 15b634ac8f061d724d3c991f4008e989db0181cf..164126294edb018c1fd4554e483d692c7b1759b7 100755 GIT binary patch delta 805 zcmV+=1KRws1H1;1B!3BTNLh0L01FcU01FcV0GgZ_00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0008ANklgX00a;Vy1*}n0HBkZ7}y!tGm>KuX@v}K>AehpfrkDAs$pVeWGIQu1*%{M;=e${k6|?&Ab_yA@Ds!LUw;@r zeE0yQ|1$jf`+pA-drXWB?Mo&yfJ_0}!SMZm1c(F%$!7*G#?NrW0Rjlag+Cb7|2NHF z1lF{oDV!mwY8e9q$iqMv0uk7?zk$K<6KL7*-#;1t{QS;PpAZ1nt18RD2oOM6TnJS3 z_dmm*fBzW1eE9;__y^=|F#gN%7ih@uAKw^${rm0m3^Vc_7-CvC!wvcM{VT)IZ=b-1MY}eDT@5s>8mJLu;0=HP!Z47N z@rmO1|H1dmr>_P^2qgS|eEr1m>ww&?< zl(0eI4}UPM!s}KstZt2B`1j$u*-sXMCUIe-1 zIn-q+hJgS;0AV%o$B&;3KfingM?k1uGecG?ZZD$i1qdLl27Y)COpU;pjCHMGhzUb6 z>^wGCAp?K_!pJG09C7Iu!~dsG7#KXANHYus00IbW0Sk&rpkYa*8U_LY0fg0sK%fA` jmL59sNn*0w3q+DzUfBrg!#K#G6_)+)>F{Ol&0TYoJB^PO+@-Yd$o#5wEY ztTX`f@Ube2nrf=G_!rPFGvE}sF#qAID9Y>k9QO}j)!AqsEPP)lD2(+O#WY+I_jT?a`beZQ4gd`{llGT|rHlxJ^ zCUlwSK}d%kK!4(u99`lBVy${=RV*mgE07*qoM6N<$f@V~< ArvLx| diff --git a/resources/free_faces.png b/resources/free_faces.png index aa13084b04777c34f09422ba8a9e7a3fb8440e2f..1b8f371088f08a15a812549a6ab6c68a35c8a589 100644 GIT binary patch delta 1034 zcmV+l1oivS1D*(wBYyx1a7bBm000XU000XU0RWnu7ytkO1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZF|7KXccrhcg z9)JL1#O1=Co}T|%CEpqTGyDSbz5(g4K>P)WzXSQd84`n88P=^^rwHWyIB#I^+~E9q zu)zQUgw??2=H~xJwGhn^Lm>F~?_UhRe*R-f4d-OowryJy)UaiS7cNMG*dPoLKo|x# zG&KANc?IOPPk*02F?{~~nc>^FZ(whOybl6<_Uvf}X+Ec?*J^a>k|Bs492|Uo?b@}1 z00D$yAR{9q2ar+#Vvs_RmpHJ5$d9vHTCK*{u7M4UiHW%mvV7B~O_Bfs1do)vnVJ8A zrZL=3OJn#4blsm19~l0;f6wse<41;{KYucO1G?@nP=6gKPz@I|GXu=9zBU_f1zIe3{8(9U%hz#i{b6-UqCsqWeflT1UC>A0sk33 z!VUZN>j%Tf4}ZXhegFO!O#k=+@z(1{9yR-{x{gLPappPUGb0MH!yrahJx52@CIriC^by&h8qUTdLIA+2yP%KfIofu z3Jm1m4Da7T4E+4*4>+*@{sqSSuYd4>{{ZzmDA`=Td>NFdL3#N;5MKufAh>}b=RbY& z6PyGc_7Vtly*?;xo#fwg$NP-%69*7?R1Q3dW`ANVu|MM@< zC4ayv9~KGFJkG$x1o7%Wq&y8W1c={*XkfYU10aClg#%Cns6cRp76|yjeW)QI@EnL= zKpg!aWH^W4hI_d^Duh5bWeJPELL_Oj0TvzV_xrV7EfUT3oa^u!5eS~2o-40erK=6l_kCwJ zo#hYr4`r%Vx_>$dZr!xNWe>*pgaF;gZe6%igW-V5c*5Q7-9dk^DZ4lBdL}kyk~$rn z!*g^Ja1k#6YU_J4uuc)%`8*r=9VUc04;Zoe(*;Zh@;u-!tkG=zeryVbDg-t&X<~yX zJOCQa1~QOT_TlJbl$+R;-8`ghozc2!A*CcqlX4HrKrqtow4F*q;R?LK004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0008;NklA|K>QWi zK!5;Z`Sa%w!|%U9%|Hx-AOrvWh0tKv{{Ig(5JH17P!AAz0PzkWzKd)iKmf7){{0)Q z2;?G=%l-ll`+p7O|AiX(A1V&A1nhDk{tt1z3J~+4dl?{rSis@)`!Co)kS3V-UV2n-n}CME`403d)^e*E~s@beGI8xZe+y#M~m4WLW^L0kwn6k-@N&@?7sSc4*p zkB_f_nVGo&Bn}D!kU2o#G6Dn;I1E9W|NQ$8HtaVr;D14Z&nc#gWG~1-Mxg5$8CaMZ z84M%a72q18>fkXx< z-2OoW{vXs;5W~>H|NpR*@Q>mD-`@;>|NMkWsQ?5J3n;Pv07lAha2Wmv8wyqkGL(@C z=&Jv4Lx2DOhow`98j#EW{RQIRa03|t0tjs2&tHGRNd=tt{{I7~=Knw%Yz!k4+%S;g zkXVPf3}V`YyJl{0o|(zFaQ7d7m9)U{{Dfh0SF*) zI{f?V2hi3(;9z3}y68VlCpZ=$5dsq;1ONgE9DmCP`$8}zjHB9szGVR?6}XB2|HFOo z59no(%l<)K3IhNE1TxS7h!dbR3^;I!D1fpA$bH~E4l)cJ6d(hELG$P5H)y2%M)5L0 z0D%nr0>pRF9OwWGBTyv$2S?Ihcu;`l{`>|96U>z`01!Yd&?0CDT1GDbM-s@8zkeaF z09+XYbs+=T%YP7JNC6BGKrGPm>@Ip3f((Iq>EEB<;AHZj0Upg@10e?eM`R%&00PrX*yIm^?J38B*DENs1gOE%EY)REA}?}8VKjLUXLU%NARGY~ zu3c*%Kq5#;5YZyw_)lo@KPKk{?#?wly@AtTVtmUsPK6`z1}Z~FboEA6U;qFB07*qo IM6N<$f_q$V{{R30 diff --git a/resources/geometry.png b/resources/geometry.png index 86746f0b0b64a734d647978ecd8acbf194569065..5732d5dfc8caf038120a893e4deae175189e00ff 100644 GIT binary patch delta 770 zcmV+d1O5E&0h$JoB!32COGiWi{{a60|De66lK=n!32;bRa{vGf5&!@T5&_cPe*6Fc z00(qQO+^RT1Oo^c3rWr~Y5)KNr%6OXR5;7Ulif>`aTLctzdg@vI-S$KYTDaOZOhcq zA}doW2tuNli-InKpn?d3{(&y~I|}L|iXaIgFo-NGdNXZdDSu^C+tkgq&CPA@dGRg?3zMRANaK2yo-yxL}r_*UUdiL6__B}@~>q;(~NiF|WRkdhf_CQzPxvt)U ztIAqtED?{U0UbatE!ft5==#2a^Ji@}9=iHZ9vpi4113qP+Tq2#&a$bcqxXuht>;if(+<0kWR@4^Q8iH) z4}Yso{fd47GO|JO)M`4#%$Ij8&V5Ce%`|r&V2gh@s#@U3wo|dG67V$ zJbN8}KcS^*ve^`hQeZWmBpwZuPQ@t{@>JQKsHo(ME96#}qks#r$pDq^x+Yg^8&;>A zmt#X5w$_kdNfKY2#a`>e;oU%R{3)}=1hs*7G@-i_ixCabWIzbS4`;LgK)KyPUB@m) z@7>1k-ha%}{4@@?hvf1CtJP*UZtuZX*MOc)Gxz?r2@ocL$fx&1mg*X+>Kn1TJmjn< zKEEB-Cf_{HPLGfBWnzT-?maj+Z)JU3Cz*xtPeVhJ1dz|?!_nXeU6Q0$A%tb(;hpH$ zSHlyDSY$F83&%8*R_#B2#-eLQCI|0kgF_EKt9ymQ6c7}~7tFv`Aw<6{%RP#s=s*IP z1y+O*UQbiYK223?W1;Vhx~@lnXTV5lfdDFi2EYf{fEX|bWC6R;_ZjL90pq~D_{$f< z0Ide2Jdgv5MqLRw027cj7%Ji)j3P>RroE@#M`@&KR%2b5D*h^!~Om=k19`A2~dd7Pg@fm^TU z__(fn5eMOUL7eUYS^-1mc|kM;YjJw*G||=kbSZPnb?n=N9!puI_;%(6?5GUT?%mC; zz^)szUA;hOjJBM5t;g6GXi|5zj~)^cnN({s5giNEBE=n9%SZj&-f7GpJX3yI8vp004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0009iNklgX00a=#4Fm`v78rw(kr72AB_#zM7JvW#g@5CJ|Nb%j`SXY2`}gk* z-@big`1I)$!-o$a7~Z^j1ERqO00a;VHd{c3$(e^Ru<=VU{QmnNXxKl7zyJQj@sD4B z8NUDe!|?UTABL@MfnY;{KpBW%00a<*mlG2c|Es#^GW`1e2cq#OP$Lk30c!pRV*mIJ zWdCOP{Ovc`Fn^(4)iZ$M4V?0*=30uB8Qav{*A z|9~mt50D1AZd+RbgK741hTq@6z_hCXF%LihF~X8fKtRBMW@ct^IQ{zd3mitDKYwQU z`t>WA4+=Y&+?Ow37}jZMFnk4uD+tG3xdJj`0uV0%2!9~B3xEFn$)F$B#1M9RKEvN1 zKNxx?>=>FauVwfPjDY{Ye>40C8pZ&${2$Ojm(!;iJ_8N<2E?*#Y$!nn5I}GPe*g^$ zIW~*o4^YEQ!(@i94{tDZo8&S4{PP#=O_)#q{r%0ra5{jY&oYmpq0fS8b7 z_z#F@8GoiQ{QUh7i2s1Y4%sje4R$HWe`jYf`~tFT)PqqB1PCCw3qfI{!NS7OduArc zbcX*ReDga41JJu*mjUr_paI{3SP97f2Bgb0LV-c>ok2=Uis9L_XJB;z0R%S?6bb)< z-i8|n#31kg{ts~>$YUTEeSvzhNHvJz&(CiRe}8}f07n)K00a=+Kv0avYbJuz-ml+( z8Qwp*!0_+SFQ6Cyf+OSqe_&1l<(5A{OBqfwe0+MH;V)Dkxqtx(AQS_?eE$P<)enXb z4=*xsiO7L%|Nr+7P{Tj4#(%$mg2h09m5ZN&`Oj~L+k0n$xCdb700a=+Kv2H?{o@PJ zWq&}!grymNfBOjW4$wfLX6fROXD0T3rZ zX<`6|VIV<(0AfK?aEAmJzJPiYZWssv1Qr+o&iDjr3!<(t00000NkvXXu0mjfDR7jI delta 361 zcmV-v0ha!=2bcqpBo78+OGiWi{{a60|De66laV19e+P6)O+^RP3Ka)1G?THPRsaA2 zB}qga$}CgDK3c&$dZi zxZh!_4)yBsDyDI{1-9Kr7;@;;Dd4Lxc)mwK0D#l`^NHST1M?#1cD+&lbYc^)Vib&a zd8p1=gp0XDTIJ4lxK9qubNRSmlYXRj;D2BuPl6{N;y%QtDIB9NEbs%wx8%?^{*Xk3 zWw=EAJ2crQss%=2GzkXaiO1=DV)M3XVF2#j*fclm!T^2&;OSwF9OM0X00000NkvXX Hu0mjfbeX2_ diff --git a/resources/glue2.png b/resources/glue2.png index f251415112699fb2e395d1c9026d24f5be00c4ef..a953de704580624eb8b1b0072b8a3e1134c9c3e4 100644 GIT binary patch delta 909 zcmV;819JSD1EU9!B!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0009SNklgX00a=#4Fm{42N~i30E0m6mh7wio&9MDwDm z9^H-1L`1;dVP;TOFf&AC-Tnw57F>qOnTIg2@k=oL{`((j*guB9|Ng`Ak6(WozW@5e z@b$+ZhOKRZU_%)h8I^%rUjPIUhL@9)lK!i@=Q8~I{Rg7)Cr~30e*tR#24esC4P^gj z`26iR*f67vC4Vrj9zZMs5I`s{jE;`}ukBaL@axY%hHpSk%5_ z;t!Apxo%rq0E21va)#gEzreJs05K0h0Kp9m2nhJk%*@PidPO6{uV25wVf6X)XNIp| zzk>Ooumgo5i2dcu7lsAPHv!drW%%~>AH!iJM*##7+<(BIKYudlhcz+yXt9CAZ2Fdq z4CO8wKo|XG_zw&>P=|H>dMDS{GY009Iy@W+oI3|<;648Q;U zWmt0h3&Yp%zZj+;{><7`}+sjG8g~|Ah>~`7=O)~dl8)We*ON-@czLCuAtp4NE>kNOP^2h}YKmef__~rW_psha`K0Lh0z$GFFw*CL#KR^xtz#9Mk z{s|TX0ah-42IfD%8E)^L1>zonnFA0&a05a4^7oG~K$igx6P9N9{p};fJ3s@0rh#ct z41fQF8u%CJ-8=i|!3+b1!wV1%5I}GPLC$`6{~QCSfE2^8uOP!f;qw#4g&;P_n;?K@ z*aaXy0x}dJfEZ!^2WDZc7SN0SziGH2stks0C578CI(;_1`-4aAQm(QcSvyI j3#d2YhJgS;fB^tRR1KtBJob+O0000R5;76lre6DFcgMAM+^^%fk+JG1|dhNlnLbo zxkawfjI>AS)GHuv(Gs&iM>o8~$vBt%4hfoYc7 zEn9|2ZL3+DrIY$RGumLZ8FkpU#U|JJVAyLZJz7RoF5j7At?dZ{N|*vZwZZjVeEh5A zv3K=W8kp;x%Xs-h@m-5ew2V+n^>g_lHczI^gZZ>?d91^&6OMIxzgv;KC(XeBz(fRB zT*Q&*-=@zy2JT?K=ObQ24x7gBDiL83ED-MsjW@Bn0mC31EZY^A!|}lSWqpGIIAdc| d-B}$5@B^9dV$bY~(a-<@002ovPDHLkV1hZmsPX^+ diff --git a/resources/group_edit.png b/resources/group_edit.png index 24f273613fbe05efde41340f9e648581cb991ee4..3b8f4158a444d5953da12d2eb7e34cdbd822672c 100644 GIT binary patch delta 1358 zcmV-U1+n_}1>p*iB!3BTNLh0L01FcU01FcV0GgZ_00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}000EnNklq^0XMcw0Y+o1v0*J}o-5q4u1DMM| zhJBZI1snDm=#`IOe=)rO{1X^PKN;Q~=w%4Vh8T7kXxKEM%fel97T8o zG6sMEVgbb_479bifn)st?Trk-zkg@=`SByecOd==WdHc_gQ0tsKf~Yu(;2jkzcOU{ z?_vmd&VORydGe0o8OtYzi?iz(7#SHE00M{+8rTw0?|y)WsUZ+6LL&+c%*@Pcr|k@8 z`122F_^&Svub+KpSTtRq;RVwNhD!?@8Gio!c?qcOGe7{bz%+Dqbv*~!0CFKvlHuF8 zZwwzkd|>$Ulec}8Fz+XfBu2P@7vEm44(vkf$4XLlEH?3`TT?7{hO~0 z?_Ymo`267q!{tRy3>+LBAOpVx4Z9*KDVYfnKrA4Gz=;bOMn8W2W%&IUV&ESj{rBI0 z27e%8c>n%A!^ijE7(TuK4m9u^LqXsgupV|{1qS9HuNk1pZ5JCGTPi>Rv8-Ob8k9>E z{{96T0!nv4gZ_aGf*J+_p!654HyccYFb@w8!yk5021aIP22M^+kdiB)kVXAstMX5ixD0(tKSD6Cnz_!&3_B*BIQ z!6P9424VmN5R?>>HG`1bidgI;tW!;gStJZw!Bbe+L@$mEqr?pA5{b>@h4E^;T7=H=>K(WH`?=LV1L45-%G%jDhoCIV_LSy(k)KCF{ z0AevPFnE69!UaK)3;$o3#qbZ9sQ&>Y2#kR-5AzBm(9pk7%YlYDL30<#u=CKe;D@@p z`g4E)VgaQ;5ZJqSFQ^E!gl0KH;0M%@_b|g?5&!|j0&>2xvhsUSI(+cpfkzie5SZfU zfzsQH7cY{)C98zQJdi7&KYtG5zmS)gKgPtw#Bl%qeNL#${)5zm%mN570L++oJJF(t QBLDyZ07*qoM6N<$g5i*RcK`qY delta 734 zcmV<40wMk33ibt%B!32COGiWi{{a60|De66lK=n!32;bRa{vGf5dZ)S5dnW>Uy%R+ z00(qQO+^RP2@VV*2bg%vJOBU!gGod|RCt_~lrd-%VHk#=J5&1yPrZXEX*$?~NGJ}C zgV;_|oH9wX=_0grNZkw_Y7i|)hEkkrkr)w#b|_rCWvF%#C4V>>P>9_cp`{gqchW#2 z)P4@8O`0avzVO3;y!XHV`@P@Yr-ehVP{Z1$rO||Ncb#wbUZgiF`C^vbN`X%wzd|_V z3IZ+HVQ7HfuzZo8r~r~%Dah=UBLd<(a;$#*oIO|AsR>cLVz0J0o#}+z=xqE^jAv6$ z8;8)*#Q0 zxZWhDCx7F8*eM%eZ#41p%85#D6a&sA<9(7zXD$LLr9PX689Aw77eFSR2?4vAbOzwN zQVP>B&sqWNgBA|CvbJey)W<{_I1Lnle&8)|3&2j07*qoM6N<$f-Y5CEC2ui diff --git a/resources/group_new.png b/resources/group_new.png index 1ccac8fc670a2f6d4cc378da68ce236f201658aa..9e365e1d166ea159d558cac2e3b78fd82f6a4a7b 100644 GIT binary patch delta 1194 zcmV;b1XcUa1-=Q8B!3BTNLh0L01FcU01FcV0GgZ_00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}000CuNklE+h&ohV7+uQs9moHx!K7Rbj01!Y7Mn*>efoddxSOH3NK(PcN{(~zkp(f zj*gE1KV{t*e*XT;@a^XxF#h!$XgJWYy0kW+ir)u-k7AOA9VncPVN8s?;+pl}@^fLK7W2?K3yZQvOHe|sat@9*Ckegb3dI}rZ_ zvO(Sjfz?~KG++CmHC0RCYVomq>b)IBG7O8i|Ctx-`5*`s8~_1??&S~AFa?E)A~Z74 z0Vu4V1Amjsyt3Zg3^l3Z42KUNE(VHS2k8e0AQqUauCA`n1~>`*`OWb6&rb#>NZ5XdMJhl5v8-ObS`rj)p!D_!C?bzGJN>@i{ag;pA2t4 z{a|?a@f*Xp&+i$2etrYSKR&$%8w3KN2m|qdeftQ`Nid+Kr1TshfZ$;WQvCTFFcNupiI}`EmE|T}gld zf`=g}z5V?Bmf_de_h6TS4gK{UXx2Zt3t6BBg3{yV%a@ZtF%B(Iu0stK00WNgVQR|EPwz50Apm0TWdqR=Kufz07*qo IM6N<$g6d2skN^Mx delta 694 zcmV;n0!jV83C;zOB!32COGiWi{{a60|De66lK=n!32;bRa{vGf5C8xR5CN?ty>$Qp z00(qQO+^RP2@VVx8AskICIA2eTS-JgRCt`7luu|AK@`S+lcq4iPIxtrbFN3(XrQQZsMP zyOw#8S+?T7sDCY~RrH9H$~F}~cHM57R9}xzsDaFEM+Tr2jNfw>8vfl>ijMo!iu%cB zK+#RR0Ds4|*1i!nj+ou%er3gdSy?j`m1klp2<)#TS+9~g6V7O?JN5)H&2ICPpZ8Bj zbY!ViE}b&F&DTcM=&IFFP~N;Z;OBjE`P^GzAh0jMAz%(zAHF*BZFc7A4;|J!BGJf4 zt#w#O^{NpyPK;jZUkF3(`PS2mM52*%F=G3G122z@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-bxA})RCwBA{Qv(y12q9a z05LI882|(j11=XbF)@+lbbtV2!ey9IY%k1EZc+>c2p|j>nt#OigAD;024!25VkkfW zp%@4=42boCI2(v(L&cPdH4h+wuz6Vph$Vpd1rXnXib)XbN`L@@yAa7G!BB6CL;3Ec zxDp_MSYV8Ei;H0{VSu{sB@{Ctxe_G)6`z3s0mOtBt4E-kULdJ?fn=Zrp(F+nKrktizvBnL}k009Jx6rO+o{v{x}f(K3C7nnM9%YgcLK*0soZvYTL zOh_6)F?su(DOVvOaTIjg^V&3WWW(5gYF}=d;kCd delta 219 zcmV<103`qa1O5S!D}N5d000id0mpBsWB>pFut`KgRCt{2le-OoFbqUJd}hcN&^et` z!UkE#6bNJ+8^Wigu!Mx}cM?XGRCFwO0B$Cz5?{KL|00*_uq$_-$W$IAb*hKRo$Dk>r38_? zD7Kd>1bSD(F30WM3ifRU_iPn`3p;GNXDnnG2c7EnTXmqS^Cv(HRTVu2cE9Dfzy;E# VnbG7$Gr|A>002ovPDHLkV1f@uUS0qI diff --git a/resources/line.png b/resources/line.png index f5a295c477f7c0e825470fc094d2723cb9582547..6176fb62db49ec8daebfdb8e60c6cee2eb1f75e7 100644 GIT binary patch delta 422 zcmV;X0a^Zo0>A^1B!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0003tNkl z0tm%GwCrR}vSB~~5I`sfqGc!41WP0U2q3tDP;V+j4O$MRl}XLy00G1Za~&fiBgiEN zKx_k*I|9TPfcPsZ1_A^SvVoxTOa&_b0*b$q>Oz13LLUx8Zg?R{0RRXv0Gs))9t=hq QegFUf07*qoM6N<$f(46-l>h($ delta 231 zcmVi9og{;APV$#iSfDiVS&=l=z40x~Jcr_N*$rl4i%zk=;Vln7{ hZYvBRvFGhDfESf-7;A&y+Bg6J002ovPDHLkV1kPtWPShu diff --git a/resources/line2points.png b/resources/line2points.png index f5a295c477f7c0e825470fc094d2723cb9582547..6176fb62db49ec8daebfdb8e60c6cee2eb1f75e7 100644 GIT binary patch delta 422 zcmV;X0a^Zo0>A^1B!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0003tNkl z0tm%GwCrR}vSB~~5I`sfqGc!41WP0U2q3tDP;V+j4O$MRl}XLy00G1Za~&fiBgiEN zKx_k*I|9TPfcPsZ1_A^SvVoxTOa&_b0*b$q>Oz13LLUx8Zg?R{0RRXv0Gs))9t=hq QegFUf07*qoM6N<$f(46-l>h($ delta 231 zcmVi9og{;APV$#iSfDiVS&=l=z40x~Jcr_N*$rl4i%zk=;Vln7{ hZYvBRvFGhDfESf-7;A&y+Bg6J002ovPDHLkV1kPtWPShu diff --git a/resources/lineedge.png b/resources/lineedge.png deleted file mode 100644 index 66a8d5eccbb7492cdee1185aab809fb583d2dad9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 938 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqMyzU}gyL32_B-8UFu2a^%Q=5Ni~S zhQP=Qf%9ya?0`OIE(!7r{{Nrh`YB#VAUDj@#WAGfR_+B)J_bb&my3&b{GWT*M1DhR zbEOK;sdpXvuM>qgHsB>xe_F~rKeKV` kIn6oc=Ifq*KmU0?yTVMSirYW07lMM=)78&qol`;+08&&#sQ>@~ diff --git a/resources/linepointvector.png b/resources/linepointvector.png deleted file mode 100644 index 054bc84625c44240be505a1a44ce6724686bac3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE zt9re)nNG3v*DA}d+KAF~599iBF0`ALHZS{xarDKLTSo4C(WhOG4}D}??@Ddtp3S)4quXQHn;(}d=OTA$MA z@KxRjZ(VrP=b&AJCeH$+-$fEWwz{p1A>Tsym@AmO`$caZVB7l+=pzPCS3j3^P6z@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-e@R3^RCwB~R55PDFbq5g z8I`%}#KoTL?CD$w$ksf-d%OD${ZD~DAP;Evbm0_djyk)`v43EdI1P#tAVfjZfjpjw zVHhwB1IDacb>oL;Y-)jsoIF(3f?))Z=+^WmMAh`g)n96-tA8o&qrqD@>J0F(rK z2Jld=x*f}Y&DSgISvm5Ovbt6_pF&q+i>Q_j6M|DKvklmaxS>S3|Zu z7eYkIkt^kF86i_@% diff --git a/resources/marker2.png b/resources/marker2.png index 4755c7916b82c81cc878872af6fd69b06ec75ca4..e757ae980fd2fa7a8eaf5b29856605f154054b75 100644 GIT binary patch delta 625 zcmV-%0*?K)0+9ufD}M_T000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;2T4RhRCwByl%a3iP!Ps{ zuF96+g5kmY@BeKY!nScNaP50BAOwFN+{lHH!1X&8MS?J>xL=xDGUcnuy$~>M78& z?FLZU^=2Fd>l)B9unQmq65C4*l>Y&&MC3+QJHRtg#d&cJ5a-2>{cv|U=Wxy;B5v~n z8gX7Ypa9PH0e_9WDNz*FOxlStTmY0=Hrw{`=Z6PWb!C`{xDc=bw1Fc_{&SgSS3jSg z_)?ZbU>kjwy}sQGpB^9y8Lp(* z!L5ELO~{gI1D1eEjO>)6psL$^N#q{`{`0U1RYM z_#FUMTLpF=Sf6CRCt`V(@hS8AP@y$4$m1}G;Zy} zgbm4KVZy43NANn+O&sm9 zisu%_AV3hHBL}>)WHCl+>4UrQBRg#3W+&5q5;waN)G!Tf&3`N|@i@azz`Ty|5O^d= zYS1rWb364wh7hkzv7K6=9X44XtH2{QgfnHc7zDgw4I~zqSb#*~A=7C$EcuE& Z0f~EhKi$+Hi3|V$002ovPDHLkV1n3VcZ2`{ diff --git a/resources/marker3.png b/resources/marker3.png index 835ea28bb5bf5c2ffae95bf16ae51c6c33938b8c..d203073ec14e45351032b86d41a2240d28601f46 100644 GIT binary patch delta 488 zcmVz@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-e@R3^RCwB~R55PDFbq5g z8I`%}#KoTL?CD$w$ksf-d%OD${ZD~DAP;Evbm0_djyk)`v43EdI1P#tAVfjZfjpjw zVHhwB1IDacb>oL;Y-)jsoIF(3f?))Z=+^WmMAh`g)n96-tA8o&qrqD@>J0F(rK z2Jld=x*f}Y&DSgISvm5Ovbt6_pF(@8`@RCt`V(=iIeFboAy9X@BsP_jCM zL5o2i0-g#vLaw7OwQ47_oTlmUAr9tYNeF-eZq0wd{qOhJFm8MeuTf48Z77LXkeOg{374h#sr*-RvYPnEO&;kt(E2_l0Fo@@7z=`f?FT8pOVLS4zGkFWjGU_V^004R=004l4008;_004mL004C`008P>0026e000+nl3&F}000A}NklgX00a<!}9)JL1!lr44y z!=FEY7#ObJVz9EZTKDVMFNQN`&M;y#u(Gmp-`B5S8J<6X&hX{S7ls!vUN8Uz5DSNz z8v{EFGcc+c7phSD|T<#z4Hnn7LZ{~K-c~I_n+bC@4pQ1 zfXU(f(tipDF0*uoAD><$rvz|1YiMZr&n9oh@bm2(pk*%@UjF{d@Z#N9hM%9_F#P)Z zfdL?ZSnltc1~lv+*lXXuePej}@+AY0bw0!I?;jbMS=mtnEh{VQ|L4!28U9|}1`e~E zuU;|SxwDMn)2B}izkmN``1|)S13&<=@R=qu{C@#5Sb?r%1iJRq;vxq2pI;gN{Q>%) z5j7)$G;-^QGB5#C9y?I2+?`DfuO$5#*gn1ldiO2Zg#ZD>f-AK%f(%28Tac?hfBOXv zo*%#dFfapS_%GuRhX4P7kq9ld00J;k?K%L$K!~Ak{{LrQqC>AeXd^ng6CNSZCWX>Q zPJf~geeqRkhxKk0|9guF99Kfd43~LYfbBNEW6{Kmcmxm&$VPB11M#1q-@xJU>+5^4 zml=U+6U2uX9M7IH{C)ccsPPZjQec2G{9t~~@D~_FV7)*?0Ro8S{g)pMKfZrs`19in z1OpTG&(Ckc-e6*81-lpqK*{7MFy{aM`F{yCE)V28^j6pTV&O(ggG`12YRdiVH#P?;l@*T>`Qk7^nbz%B!9z6L_t(|oaK_S4TCTcMc*M8o`xk*mSG2~?2s)`cF7bJNKhc* zB9c=Of@2%xL@pxbI_tjQ{rk3H$y!BToCma|`90DVDWXrH^6Y$_q<{oKccL#iau?IS zR!#vOISYWfDmzeZDY7IZ-UHc$D4aX$e7QNDlJ(rwB>?TUwOLwewANIoDufHxWkgqQ z>J2>f1LHJejEOpXHxvQ7Fo3S_n5P+Y_ka-?fLd2uU=R}p#$+2F09`;#uvdG7fBzr; aA@Bh#EJ*na=LpmQ0000004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0007ENklK zZ~%}&x?!yhfBybs`0@KM!?z!Q7(Rdh&9J4>9VD#`#4mvOE4n^_0Aj*r;McET8NUAb z4L0QSx8DpOzx`tP^6fiJ+5?Csu;~K`Ae=4)dGRaIRX>5Q`}z||1HJv{#}}Bi3J~*P z(+3bhI1L1b6Mxus-+%pK`1A8S5Pt>YZw!P0Kmg%1@csMu3}3(h02>0re?j=qPl5&l z1Q5)HKvD>tizuAb?o#*aZss1Sky#fB*g^=sy6mjf>zha}TP#S=t? zXb|ndf1SWCl|_l)^9cwJY8S@<^CD+iFR?3o8lX#O1S%#ThdWk04w>9foIvNJq_dRa z=o{L=LAn<@Xg{ zH-1xJDBPm%JbWpeXCKzuce}DT;>nwcTt|cGYqIU^&%o^yj>t7~C&i%K@rzBU=`3xH zT%+!>*@MA4+r!b2s;z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;Wl2OqRCwA{ z%CQXqFbD&%WZ^LWzXb`wfLKy>YdxEiaFN8z-DPIjUCa!+8-JOJh(J~S`Edjg3oZ$e zLAqhB41fOqWBBp=FT=MVe;7W0|IM(a(H$hM48$*h_$#_TfB<5`W#HGZUm3ps_zgDX z^S9p&AHV%#`10*LOxgp8C9vrO2q2s;1bGwWvLCeqv#_v$Bw=_z z5N`&FL*+35Kmak~N{2we4a5e}7&U-K!WSUE0K_|>G=E020SF+tfv45g|1&ZHLx7o? zff0xqKra6c^eQky{()i~$o~bzf1plfhDHDr&>^63bA0|B>>_{wLUtiHG;N_L2OcEx zFVF=21&eRNasUCuf~HXgJ;5p~D=z>gAyB#m#(V-)4K@I_2q1v)y3o+j@Pc971W4ir zrpay1-hT|gfB&|@=R$x0!Wk)gdV2p&lcq5I`UA|%K*PQO6Zm(aD-U!Bzu) zu*wO8nX&oYOyE&qNUn1*sX>P9uJ^G9*mf<3et?|iHNcqO2!B*iRpygYRp!`z@1nry zQ0iliVta*-FlL5f15WrkATz`6EnMf|dk+x-Gb2kgaC))LTm%I)X5uGA3VI0DoEjAo z$XO6F^yG%|V{cYOA~!0Y6oTHyucBP*V;#L=*fuj5aLIPDE#P~P=F}{{ZI!XdsV_lS zeGb0&Fl->ni!ZV)A{gXNpF{M?^DO@ls33c=>N004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0006{NklI>wA-gtB8=hV|Ot#Ac?9%W`Cl)?VIa;0*HkH2LKtQ z8`jG3=kGs;AHV-HeEac-;q&+33|kuALDI@V`~rx-qU!?)ASPS}e*OBD;oHwY3}1l; zeE}Nu>Dw=cFW-K^q&PhcJ!N0x{G!P(w zaE9T}pFa%__XaTh`}+%m|NLS&x15FejjfB<456l>br+Al1hKW7jW z6f9sM0ssUMUN2i&S^d|I=mO@L-@r8ahhclG4=DCQIpig-ybKUPI9+HC^rn7P7sKzr zz=ZwhAAiH|KYtml@>jzmiyN0dfB<5`m-W7Y3WRT8(>!;3_s511zf&yJiR3%WZ%z-4UoT$uc~ zEsP|5`k=?Z0ZAf#Phl&Ix~U-|Tar(~EC6SRvALE4iqo2O_U)Mpr~*?39u#;y?z?$Y zJ+fSWIH}kaDk6}*e9&V=GK=QXb6@Vyz;1@aVsfqAPBGA~{Sp&up5?ukYc)JJ7ck)9 z?RXKRZfX>pqPMnDgWYz$4?5~|sGAx-eTa7>FN+9va;MM1S@NZq{|8iz@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZu-in-+nQeWGrT2VPW|Kl;_50;6I?RfIu8s9Y6rFfDHWf{TIW}Uw;{X0A2X!*AIrj zKnw*2Kzsq+rGF=tl>RgP`^WI_+c$?63`$~fw~YBG%o-Gh#5$10OB7|`~Zr-Ko#tRD*laTAc+4Sh<`!xHK?V(0Ro5- z>UR&QO)&66N=m8&ls^9f1OGWRz_9>ssQ16XA`T#c7?GS04=W`lr3;oBa~b~p{RhPV z84mP^Gk?5&`<7t31Ob2m!mwFYRrSAl+AOd^zyADX`1SiA!{2}Z84mY{Fnsy)g`lAT z0mOpLQBY9$Z<;a_m}CAS(&gWO;CTD-;|EH*G&eW@4+@TNz_fVv>Q%VI00IbZpoE0P zf0NWX4BvhN4f^#5Xy9*#zrTNilM(|oufx)%o`0U+9o@)ohJV0<1!Vb)&XE7GAOQ#< zWG{2Gv$KD(E?mp-=jS&t1|@Q!GZ;?J$%G}P3*zG91r7zvz#2e7@dN0SZ$JMq?CbCb zr%!+YVnR-=KY#vA*w^91@ax-0hTkCk{WG#*pqPB|@#9Bu&ieTE7sLB6zZkxJ`wmtM z%YUi>0fcPe7igMmIWaR8?A^1AOOOo%h20TYG57u3SFpvuzJ35(3d`yl!cJl#tG1P~*R#A<+)*zX`2_LZ5L8EX;$_wQd2H31-i uSg^<;yA(N}euZiTS(X5`6axSR7yzN7ni0J@fZf9Y0000aTh delta 421 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 B6lVYc diff --git a/resources/multitranslation.png b/resources/multitranslation.png index 7d0e54b6e9a0a0b50aa4d190d6d006b29ed997a6..4f56d7bd58b564b9d2474e91f5b753496a1e6fdc 100644 GIT binary patch delta 791 zcmV+y1L*w40<8v+BYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;qe(QO|L;Q90C56JroNWlOH00G1Zav>uyNx%#AV{vGbJKS0C&0wVz_#@7JxU34!41Q2o<@<1`z zFi@%oC6Axqzk!p*pI_e?{sChY9-9!g7yuxEkYkzK%F60LFc-iD@Wm!H1z-Sx0D`;F z+S>Yyc6bNFx1WC)o<0r#|LWB%ys?Q300a;?r+*k38U0reX#?iVKMbFNIY1|A9xQJ% zK)rtf4THqKU^5UPfWR&Uh1F-EVc&tS14Y80AD;=vCN!)u06+k-z%x5Aql1zOC^rB6 z_)0J~aRGn;0vq`D?OTTLU!i&P7YGv(n>YYK0D-+mPHf@=009JcAvv*$3jhQd0J`s8 V9}qA}O}qdA002ovPDHLkV1lmnTnzvK delta 299 zcmV+`0o4Aj2E_u9BYy!5Nkl}aNSgw!&F>_beC6)&7``VAfq%`*W`ZGL9&06YGod$N0!D)!ju!w5 zlZErgxzC=5E&_Y7m|~yJe{wJcbu%RsU?27jbO7A4S8{Af}{ zu%DLe*OjWQxRtlx-ZO>86#I!ZNR#zv0@P? z((=@!x)O_t|E8eD-9lODUHnm71 xjI$_3Ga1jvXCx|6GpS|KvSw0C0_#m``2jZOf}ZVyQ-1&e002ovPDHLkV1oV0jMM-C diff --git a/resources/multitranslationdouble.png b/resources/multitranslationdouble.png index 3d7b91d5bcd9b0d55d83bf082469762845135db5..62030b2cb4141332a037ddf011a26c13bf2b81cc 100644 GIT binary patch delta 842 zcmV-Q1GW5%1Kz@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;)=5M`RCwBA z{Qv(y12q9a05O0JB-YT{MP~>q1PCA|Vl6J3aQ6R;Cw~}%%6|`m4CTP34j_PtHt_q; zzYJf$|6%w6q=7&Im!SXwM3jNgQ*!^m`}mXL_4}U;AHMto329m;@BEHUEkFR_4Z~uf zH=ieE!@Ot!#92VxWD>vqziGnu{{}JJFuV^CKuq|;?DMxj3^`)qFfR%M@p~Y?|M%a2 zhChG*GyMDaAAiI900D&4Ku~yn1bXk&*WX|-LJd29PtADVk6(WozWo4&CqzyyWFy@B z00G2;HOzqC%>M9`;mwC1Km-4PgaouBwwzyowvIvR)>%%5TfQ1VF)JXJQ1)B4?$3`8 z3<_>j|3BE3%?S`dC>RX)c50ys4ZF3{&BnG=D-j&-(`qXCM7~28P@I$lm|{ z_tz(ef4{yk{Qdm}?0tX$f_pi!>G=QmpMNoAh(%z884C*|0}B%)10y3NiuX6kY0mre z^(DjaFV7kNe0>d;0|+3v3!lIJ&hY2Ye+E$aKsDV5;oE9P_q~7rW%&Q^55xbz;3OlU z*X}==X`s~@aOwG zhQB{Qf_(zSAAtA)%n*P8LN*X2aUPUN!L~Cp0TEbQK+$u~`K~M741tes0K=>WIm|Es zKmakqvK=%AVL$=qeR;RZwg3P8WcULNw`a#%L9UgA8pZ+j(RrB9KmZ_sSa4(%xcC44 z{zDGLU%?n#m_dC82LJ(t%Rq$pfnf!T1W@9|7G~%GAb@ar8LRi9F58dKK!5-P0Kxf8 UYTW_gwEzGB07*qoM6N<$f|xOZdjJ3c delta 369 zcmV-%0gnFQ28#obBYy!>Nkl1pw6hNPg2MIJt&>?fiKy!)E1GGLxdWTHD zK?y08Tp@HQnM#%(AsGXmJs9M{5Dx)&a1tV0PD-7>>GAn|>HV)Do~=s`F&Pg7fcWii z%olggDWD{vyv7zEi*ot7ELUGEHx~%c5A*jqQb>OC%gm-0sedFI-Ry8O9tMNnmdVSI zBu%iHrLQ*h)#f7GC zwlSMm%-iAUapYKwo+Iiae5}X|>T(<@$C$oOG1@pHe9UGRLL51#u{oEM`E4 z=I|DBoGaf#j%w54E#%Y}&DmMA|2~L#;3~T}Xr*hrOm{hrg3wKlcMiMA@pjlnPD9Eu z{wt@oAXFczO)W{9pq0jG15_)Q<(Zdx-|!eB6i6lM(W@T)kZrU<2;pVF%|{$1NpMl= P00000NkvXXu0mjfA5W+t diff --git a/resources/multitranslationsimple.png b/resources/multitranslationsimple.png index a33c9cf144f2aea48c57fa73765d5c759d3b3263..de744f9764ba46f95c953b070cace05234b18522 100644 GIT binary patch delta 545 zcmV++0^a?c0=fi{B!3BTNLh0L01FcU01FcV0GgZ_00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}00057NklgX00a;NB`$Q$-TNQiEPwza+l3za`~H9V_J4;#J#-VuP!5ya1I&vCK%51{O+cIoawW(tfB<45CCuJ_`o-WXn+@}#AP~O?;`>1S0*HTrBme@4 zg;)dM0S$Zq5r62-@9$tgwx9)!@hhW9A@YMAb_wM zcwfizzstuD41a$D@vkrV!wd}o1Q0w7-ShT=8TT|yiGL0=Y-Rxj5F?0i%-Zw++mF8t zA3pzNxV6S#5b7dDAeMj{4hpmLP#Uj+009K{@_S$!`}X}O(2Jj7;q@JepA!>i=l~#q zzy^N(@|of9?=KAhet(6<=y_;({U9};0|XG*%Z!YSAVVCX-UPX7KT#2Y#mfKz#De4{ jSopjk#~NiY01#jR-GRxgQPU7500000NkvXXu0mjfNyOrI delta 256 zcmV+b0ssEG1e^kpB!A;cL_t(|oUPHZ4TCTc1<>!v#UarkQFsQ{Kp7xnitLawJ7fxr z0g%_o3=~MFNI`cg0tggavJJmJecjy?V4NCxwBY%AuPZ(7mAD)&+(x&WPc5{Ag*fy> z0R}_pR|pc<`LtsOcIC) z^|ek{wu8m=nYWwE07RfT092_^lm(hwBbKqS4Ltx^o`EFoM!i1_0a$()RJe@~z%?6m zvJb!&H%cHt*oF}Ru1Fvqz+1RY41gE0*?idB!3BTNLh0L01FcU01FcV0GgZ_00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}00067NklgX00a1%M{1c47 zfB()fbyGP*l3fAA?;l?net-Q4^x}Jl-`_qlygav_;p^A0aKnK3JU{>;8~8tM(qV>= zUw<*Y1se3@%X^>;J}~?N8uI7oH-^8zz5&@^fiC<6Hu%kzogm9l3i_@% delta 232 zcmV>T!bQq}QW(c?TS6{!&4GkIPSPO}98QhPxm*C~$Zs!RV2}BrULZNpI7fpa@&BOO zny`;*b^+PS*fLft^jYW)#$XF@4?FA^0Ll9`fP2{emQC^&_F=2=Xq&dECV2~k0>~C| zXEw$}B(4wVn7(Qd98f+>*ETKcrUpKN>ImbMhsI`Rh)8&qDuIZAQ-;Y6sU8CW%{mx_ i>eidwbT87`U%(f{8a~oYCyo370000004R=004l4008;_004mL004C`008P>0026e000+nl3&F}000AINklgX00a;moiQ*V=u}5XM}leq0tgv#pEWlAe}B%x0;?uZPtX5lb5H&U z8ER>1iPK(5_?gVWL&zJ2?~@ZiA%WHT550th(_znEOSX!HNiABO*b|AGwj0E#Kw+uQ%w4rziK z^pD}^@4pP+e}DdEm}_dvV30JMfs2dlKQl8k+{FL^glynfAb!Ef$jD%H{P>EC&dxi4 ze1ktg3;z85$M6ei(2rk#8NUAf!;p4lLh$!bFvGTh z3bR3yV|6aeWMWf1WT{?p@5VPuYQ?@bn~xI<*9b-#@-E{P_vOUm4CU zDgx;_0Dsl@2q1u1uowt(R0`!(8_Q z8cY`e0tmxEJ3BkDVLyQ}`W=k_Fnj}s-B(a-1AkpLNih)U<*y7Ox7UH41a;jVDE{(>j zU4YUI00G1zDJl71D{2A*sL%nGJa0e$grqqj{`2c6L&1fqK*Pcr{s3e1&(Cj=Wb*en za(~#tT?Y~X2p~{8{&|5zl{`~m>Ey(e906CdJ>8~(JfB<4d%5oA= z0}ap(h8lvA=FklT0e}F)mY1;^%m9tWFUV;Q-7pXU2rvLs)~D3l4g&W80000H&(XR)VU^4z-{NAwXp3 zF3KfPx$LrVmLIVBY7^o{f6W=jQF5RR{3uE{YYVWxQKxg>nGMQ) z2xX>SPUdcQC~a3{o>!v@U=q8QA8^>LKWdr4KA)b<1IO^^H{7Hx{s-M{)@dKKh@uE( zGD#nwT`?a2MaE-HYOCc3kERQtwZ;;INDMkYy8^(n6e9Vvoi$DD0JPH6lzW#w_P1;7 ze{a_S5D_d}VTt|l;3GBFT2u9^_hZxf+M)lm&zrYX=+W5~A|*cUJm(HL&8ca+`;}4! zr4_RZ_P+JZU^E~aMf3-Kc0RnHg1>ynm*TeHXs>@Z9x{3&vWn)9C6vn?7F+3y>Mq)KY7dc1Bm+`BbYQ6D4&je6 zV2QxD82Q2P{jvE78nbHQ3ThgkZV*_(#zF^yq(SC78F;U}!ARArtL2{R`+)?#-kyLs z!g_n^eIpy#N3J diff --git a/resources/partition.png b/resources/partition.png index ccc0b8d35f5545dada0cbed28a8f5ae1b77e5077..17cbcd02ddf7ea478bbc66a2db06f7a62bac0c48 100644 GIT binary patch delta 966 zcmV;%13CQ90^0|WBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZsYvQshxBMT?PpTGZs_#eaHe-QdNkPl-2{_~gN;PecJ@87?Jv?v4d z3n2aq5I`7SPEJn#ujZZ$)bNkt$FIK(-+umK_zJ{den9B&K>Xv^ABICSG8qiwCo}x~ z`4gng1BfL+41a(CLh*7!Lc;%l|A4Oe{Tpoaw{PFT800;WcR?8Bbx=eaCrxMg_4_Zw zj*dWvfPetF96$h}co`(1>RHI}6R42m(GIZfAPlkqBnPq#WZ2rZYZ*9iEoEQ^hNZW+ zH$%nUy9_nr;$SrZ0R%U2>eQ+K4<0-S_9pwoZ49^BjDHz^vvM)~WdF0=e0O>vv5e9$&0*7ILfB*mRXU`ZufBp=B74QL6-)jxlOV)-}Nd%|}YG88?0$j~4x%#if>F~d8cFF>&m5I~Hrt*zkX z0Sh}&cz=Py4}@V}{SS5>Bm;odfy9184M=?Yl;I1I{{x7Z0u2WUAQq6uoafI$DjEI* z75oPp2*$v$`wvtE5(oJeWZYjM{R_zd3KahcbY-i60KxTTkN^Mx delta 309 zcmV-50m}Z{2hReKBYy!FNklU6h!B*T#O|bj+BBkA4NC*V>`+xA*0*8-Ez5F5(r5t1$C~(>NI?GA-8vsCl z$sH9z5?@PTeq2>nxc%Kw*Y%*o)~2sKrGC+(ERY}p$Y~aynT}M9kz$6hXKGHfo5fldEKb~00000NkvXX Hu0mjfgqx2w diff --git a/resources/partitionkeep.png b/resources/partitionkeep.png index 2fc91e0f718daeb59f9897c055654ff503f302f4..890e1862a075a5911465e8240d3e3ab035292907 100644 GIT binary patch delta 966 zcmV;%13CPh1KS6XBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZsYvQshxBMT?PpTGZs_#eaHe-QdNkPl-2{_~gN;PecJ@87?Jv?v4d z3n2aq5I`7SPEJn#ujZZ$)bNkt$FIK(-+umK_zJ{den9B&K>Xv^ABICSG8qiwCo}x~ z`4gng1BfL+41a(CLh*7!Lc;%l|A4Oe{Tpoaw{PFT800;WcR?8Bbx=eaCrxMg_4_Zw zj*dWvfPetF96$h}co`(1>RHI}6R42m(GIZfAPlkqBnPq#WZ2rZYZ*9iEoEQ^hNZW+ zH^W0=Uk2fa%fV^@0tjy4)TvYdA3S&v>`nHE+Za+GJbz&L2MqN8ATI$8{0~&j07_y& zLub8x%TROkCPS%&1j92i9|objiy5AZx-$qq-OKNB37=JN;AO`;Z`4#NKKR}xM)e(kMXU-e| zD*OTvKwtwueM1=d7vu_1Yyvfd0oaBApsxD`H0T@Hbs!81OORn_poRhQ1%Loz0c9Vq z>vQ4Zgp48PLD;acL(YDna0D9005c4TcK`$sC}Hb^(liho0I`E*#vE|0{`~eH;yR#9 z|9?YW{1+JTe}DgAxUsdLLCGP3;Xly(_m3F7x1PCA& oEQ;<{907*qoM6N<$g0jA#jQ{`u delta 386 zcmV-|0e$}42b=?tBYy#7Nkl?Nj2dZX zs@N|dot*h>48Uf)DZ~~;gr{4uaJBChHJ^$#uo>-584&qzPIQQf4$+M}{AYA3%#Z8AXXk0tg%+wxxZ0B+*LMcD3=t7L*Lz%-#TFdb zDVws{Zi+NXnR|Xt&rRvtW3zVi*_dz{0uYP>{E=TOG<4|RkOs7Zi3pB3h%KeU-S@7@ zvW&_5~nCE)s(}Ig0oO`}OZsiP;Q#;t07*qoM6N<$g7Z004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0008{NklgX00a=#4Fm`vsv8IpK#aH~Qc_aDf&2IGUw=6M^XCu4&!0cR`0LlN z44*%LX87>o1H=9M_u=LM1P}{0!x9q{|EqiCGW`AbpW)A65dH^d{|3^3{`_P33B*5s z{bkrQA&%kw`}ZI%%0T=Ah`#~^5QdlI;^O|Rd*(Cz0%`pHkKx&<>~qd-3h#>kQw2{9^e2^EboK zUw?pJ26^`{n0;hX6~ohOM;QM8`VQ8&(8-A*de<(7M}LnV82|(jih&@Pdk0V*Z%>-@E_13psirnatO&Wyt#9VVQWkbL&Wy&3{RgvodYx?1R#J= z3j>f=Kjyf$OuZzL}OLw zG#I-di1k4x0|XGun>TNGfV2TLE!9|M&SUug@f8Cz3mY&JeuMGTIlsP9C0ZHOdZ5AtgK;6J)2;(B z91V>)e}agx^B~C$$6*Ip0N;>tXv*xJCAI6X2IjyCV0!%^1{%dJaJT{N8F&KTdi?+ZWxxRE zz=wiI;JAP_0qzXk1E;`)g)Ohm#K0NxaCd=ye_#yg1agqn?GeXp0yhc>5}5XM3Vg|N zu>d}ahg}8Ufm${}Z!m^rC&dw5&&5#&H5?616h^czT6VE(IZ=-?^CK9H<7Xyrddrqx zM$0f)T*OIcC?aTdTKE@bVcOG(7du?pJ{x};P79$HR;gCdo~F@ksFh2x@qPS4peruo pB}oc{oYS-MMWona@>8`ifFEhPb|e|P4)y>5002ovPDHLkV1l{f$>{(9 diff --git a/resources/pipe.png b/resources/pipe.png index 494a8461a79262ecef7da4835ec75459d23cccf5..793874472db39ad07fa0bec82ed8a31bf85345c6 100755 GIT binary patch delta 972 zcmV;-12g=H1K|gdBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ7|#UiTmB9gtdOm{|Y; zgdT=G|Nnsvmw;j(kPCkTy{I2Ql_B%gbcQ-{7Y1fNNq>evKfl5BNWgpp0ssMo9)@3> zwrup+=i^@hWWNCM@7=p+aBxyA!=JzZ8G7|o8ES5=W%%^`HpAcFKN&1iXM*$;AR7P> zKXP9F711ge8_4UNAB7FowT4tY2dQ4Hq75ZS5~MS@Xbh zg{LMn)XDoWa0*C*U3hkJ2{>^eha*4$F`>sc)O9>iFGIWw%tfHM`u_*y)jwdDfeeHN z2`s!p9Do4A^fDw1NMlTO27mx!Li6r_yA?}e z-u=T}t2ybE(7I12&<5K1}(c?sFO-@big z`2O<`Fn9c6_zf%+{`~sJz{tc5ju33#1p$Bnf*ZKc)91hQj;$)t7<(ZhA#q19emcX8 z2Y=TYDsQf5sFZME`1}16&_EW33oC13u0!!I2mk~S+`xYj*Ga&_1yn>mzkiLP=I%y@ zPe8ex``Z{k{r=4`UC0R8b$6f`Ug7`*5IhWB_v}(ajP$<%0000b;@5Jlf27h}nVEm3d^E`f4@h+A+5rwYjt za*I$TA`S8-xC9LnTUcTWq)lO)*vr}`62I~8X!mLU%&ZNLhidXz97Lg@GdSZgouCPL z@y`&*(A5`R8&I!bKlZr#+r+ouTUYFg>)A;N7TRAS-rib^Eq^Tyv;#B_(^ze zY?`rrUS97FT4(MXz@fn$1ooBSEif)Oz`n~rU)vzeAD2eK-&b2A!e;Zy>3G7H7E}=t z(j-L^=`;jJUuvadS2$Z*w5;B3EHRQuXI%aTY@n)&UKEL{%zPNYFQFrm46{39MF0Q* M07*qoM6N<$g5%t%NdN!< diff --git a/resources/pipebinormal.png b/resources/pipebinormal.png new file mode 100644 index 0000000000000000000000000000000000000000..b262ec90af67d4bb5cd458dd700dcf93f65a4f85 GIT binary patch literal 1728 zcmb_dTWC~Q6kT^_$aA7qOq~>LAqs}1B*9kHAZkqpGZJHLQ(sUbiqJ|0ivblillU7QKJ$c5v(SHR0J_rqHUc-@yD_G(eXNu+{baRd*@yg^XrB^=e6!Sd+mMB zna-Bx6(vO<6#*!TH8y-H?F@QBp8Ou_oK+%C;f}@)JAvZqbnWlq4pS!c+hePu`TrDt zoL4*dWlv`*kk=M#_@Z^;G_5u7R8~_;3F`e>$fMFU&FS7)w^1!QdE6a%i_%7;QDs>c z(&;pk$s~q`h9+ScoKHCJTXtuP>*B9DsIRYAHER#Rv=uUA7G7rz{QvV>H99&P_AtcJ z0&X+@*GWOG%tSa_S68P#{rVurOdA^pkKx7hr^pyKKL7S8m$_*%JDyD->|gVhvJDdh zt?T*(z}=C_WN@>4yO3D0q@T(f$V!x#4>Wol-25#mb&o4d@%82whPX?71%Z{7m1^@Z z1FE8;LY0@7tJ2a^6$*va(w#lTdDz*~cX-~-VOU9?#3+{@W`tRhSkv|!zPsIpj+qSz zPAP+#O%X?PaBg>U4)x_1&Np6bTD?O632}X7WTbZB*Kc523WsX8V&8vfkbL$CmXXE6 zt-q6pSl=e(P-a=xxE64xnQ)pOaK|Fam8C2bwq?LFvo6Ao(#hkygajnCV34gRI}wy| zKu#TVZP_+#TL>jW+Z-c~=AVj5gi>LB+1b+su*%`8sw#c)wmw`BWYhp~6oN)$}}&?&~<6MKcj zk?Te1T+<2XkdnlFxv5kN>8vTY!-OG^f;pCg76>{8AyCXCW9yhtcrDhX>iaIvky%EV zh(sds>b5Q z^GM3t_m3|jX&C65KF>wC(ZyvzcjR)xFG}?46-MV5gK~Gr&*7CMpRNmOT8gqhaf{#4 z{OJA^b?%hZ)O#4Dn!Mm7jmzAyjBBJn*u7v8QbLw8Eo5v9Ki004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0005!NklgX00a=#4Fm`vqLGl05K&1AOCdl25o_RA9v&WK1Ha-@2oOL-$1*1;CsFDE z0*Dctps%m*e}7QA1L5Dle}n0tKYud(`t=K(d_ZC#{`c?S;TXgR0e}EvK{w3N(eb~M zcNN2*zd(&Z{0EHxGaR0p$Y7E>hv6^Kz(0TfGyMGXm*Lm%KMeo=04@3Ro8jo>D3E0a z00D$zps}&>e`WthhL2x=G5q`u)bIyr=pTr|&z?PFcz^rp2gCn=e;NM${S7wg@9&>r z_Nm$FAj2jAjR*k;a#)3>j P00000NkvXXu0mjfMnYMz diff --git a/resources/plane3points.png b/resources/plane3points.png index d5b5d45dcf4786a1796e81554bee774700dfb1ad..ec42dcdefb17a9b5a0f417a7bed068bb56ca52a7 100644 GIT binary patch delta 580 zcmV-K0=xat0^J0VB!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0005gNklKA4H2_z-<*4vh|A>JCY|O+G3i3Q>%hgeXdk35g{V){szgvw4f- z^(9nw9w>TuI5IL~2b%ZzS$N7ItOcQrf~1J1h)P0JKz}75p+sVdM$fUMKQOa-pa2$! z0BW_GRVN;B`|M>V@3!&Y|7l7Am59l2X!NLbhkSWEI{*XTxk{yC`_DY%$yAHEL&oTv z#JSmPNGMSWXo{F7R1&7rJAZrs2=Dy>3|J(~GFy+2pZ8dnW#*jwYXBdB*FYN>1BL+{ zuopPlUp@Rs4La-Qy~QqouUmW+%fLcEY~A57uzQQ{)=ez;!+_0;z2iQIUjqQl$3ypl SA}R&|0000yY~w=g@m&x>uXMOFQ)lo(aT&MoOGHPT=JiA}g%FGwUr nQS_ZC_4ss^8tA#$p}7O|vqe2|X~UWT0000<2SrXqu0mjfSt)w) diff --git a/resources/planeWorking.png b/resources/planeWorking.png index d64aad9b686b16eefbcb98c58ca4a80bedecc2d8..f48bcde056f92528c5d0a156f163d6c80e61ecaa 100644 GIT binary patch delta 682 zcmV;b0#*Ht0>TB5B!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0006wNklgX00a;m$;rw6$HylY00a=a3k86f0~=pRNPmbZ3jhKL-9QDP%f2J? zp@uU2{reY0i32e=J_7*)2;D$IB$vVXU>E-T_YXuF0I>u<0|5dE-E|;uS;A-_b_9uw zii-Z{<>md)%*+fD*T-iFKmai!u|YN~qJ`lPAifX8pM`~mzr20>wgSk$0K`Xt_$xL8 z0Rjlw%O8OFIe!qpN5apc;yhejTrf*PmB=8~7EMfdBzSbWY*q{AKv{`wzpvKR`?V{AM^hISOQ%0YCtu7-(#4{9oC>k>TUlUkpEg12y~s z8u|xf@Uv&n7~X#R!SMgzUxt5we}fJB`}-%DeQI_($gl}OBSHWI2<~MS6_x*{DYL+a zfDHQq#D9PP{07?&Hss$QhW~&6AQ|`@OrKj^3^MEhH0Cb=1Q6IjP);zC0T4ipY;0`*|NQxbHO2@PzUYR5 zXn+7>gq9wlOz#1uc}OV!Pz(d5Pk;boff@iSK_l*vSf0Ls=IaZv#10T(07oYyv(ehK QUH||907*qoM6N<$fC9jF*0lb}c$ zBTLXwP^64R3PK2AB3t+xi{tKbh!cvQsBr*5E!gFCFz6GW51E5oO=I2zok|ovJ?eY9 zDqZ=_3CCiOCOc4`xy`Ew(WR5ec7CCx{3pH57TF q^oRjiV}n8T&|l<*f?fY+cf0|R=|cFj%hD780000bgAs*m^L8UU>c%OwbSg@r(afW~5O*O!4!^#6fTRUlpD4-H64&Yo53 zFyvt{@Duj;aqfzB~ZDlRcl#TvO`Ov=@hImNThvIG@fS0+VKb z*r=B<$@0p0eA>881gcuz z)w{d>;egfG(#wmZ7*$1DLbua31`FHW))qwp=XyhB4n-UcAn@A^*AK<`R$~s@EiM26 N002ovPDHLkV1oDyggXEL diff --git a/resources/planeface.png b/resources/planeface.png index 2ab9ec62a1d7589de82ba2925c1dc44d3f12269f..ea3db4e963834878bee3f16257f783dda887d3e9 100644 GIT binary patch delta 830 zcmV-E1Ht_80@MbOBYyx1a7bBm000XU000XU0RWnu7ytkO1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;%1J~)RCwB~ zl+SBbR}jZP_r5&q^F>@HEks<@m5osXE-IygF1pGhk$_ZOD1UUVYNyMrPMMxsK=e>8&IWyDEx#8vcP!}Eea_%|jd%iPshnX60 zXYT_?()SwwgAD@1X??9_X4dy&YHG^N3=tv5h=`!7s45~tS(da~EsCO`C<-<=H}T#x z&`)f7dfGmiI)6)4C5j=UL^VW>C`yP*#|teVX>}sOmq;wRb?LKL1t%vb?ZEVxw0)$$ z`Xj`M#fXN0#7GPQUzYez2lbv>2o(Ef_~Y{DsOs0-Ql6NYu!F}h5Jjm!n58UB*7nX2 z#0XIcqJ$8U&_R5gor_ly5$5LRP}Q5j%dH5<$H(o^$$yJ%6eRkB#mtt02rLW$jE;`lffL`bw&|(gyUdGyCy;tv!4K!i^BfTYSOI>?Mn*<#?DQ4dUf6a2J3O}%Rkebd zp{lsykAGSH^;^oayj!c)4vNUnz$|c`JkPBcS(d#Kz#ZVXdcAJIdEi5UTvhk0>KRr2 zDa$fcb=l1RHM8YB&oQ&7X7YZ+4 z&o{6g>nHY#V7hpgQf;Qkz1B>ez7DsgoMqYDPUgySZ}j{(025@)`PJQt$^ZZW07*qo IM6N<$f|e178~^|S delta 342 zcmV-c0jd7f2JixqBYy!mNkl1pw6ox+)4Nmc(!HX{8I|PrRCkS+J=FrVx z$W}79CkcgKA&?YPf5lWHXp~pO*s-9YSdxM#+U|Q#lq@Uc@sA~+%es>a)d5ef8^@#y#Z1n+{dq<;uY~kr_9TGw z>FmZa=|Ve))la+<&`<3IFpH;!0B8=4*&p_k!0~nCH82=xn#SD3$6BB3dKV9pl3*4T o!c6#<6Mv#!b%W>qSHxZY0zp)lXqscw!T004R=004l4008;_004mL004C`008P>0026e000+nl3&F}00064NklnS3}I~zy!)!qhY`e;51PFV}0N& zmpfOkbn-w;w|`&R%+Ai5h!A7s_2?+|^>tJgfbDtjJ$as!Wf`qjix2`sd%+rwhD|i) zNuq?L*z$djoLxZG5H*r2J}N#4c}T?Ik>pu@dcGGpGc#io&0Dm6A|%B}!8SMf*$${0 zQ4Aji9}^M^Bo;{Yd|bSOsy^NYtkr6E^xQpuYz0D8@_&%_$fXo5oz!~5~ zU#;~!dSF1eY%<`>fM4GRu(}fl;5t^70qwRWHg>`eY`y>bV-FI)1^|uRbb}^MGQj`< N002ovPDHLkV1k$o6N~@= delta 232 zcmV>T!bQq}QW(c?TS6{!&4GkIPSPO}98QhPxm*C~$Zs!RV2}BrULZNpI7fpa@&BOO zny`;*b^+PS*fLft^jYW)#$XF@4?FA^0Ll9`fP2{emQC^&_F=2=Xq&dECV2~k0>~C| zXEw$}B(4wVn7(Qd98f+>*ETKcrUpKN>ImbMhsI`Rh)8&qDuIZAQ-;Y6sU8CW%{mx_ i>eidwbT87`U%(f{8a~oYCyo370000z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZC;T zK?w1Z+>FG49@K-d$l?#i-TZ*NZZc>S*~Ce9X4tOuRCiZZ4yj(++0}gTQhaZ{_10Ha z)JGVGhEfdX#ym`0_4)>WGq`qsJ1|_*ujh{Auo?efQ5fzC!!RlFd+g$WRoAN5I|V2lp>Dfb*!zek)|m=kQ63S6deYJr>3U9Kk)MV1X~{?R~jiL%pD<| zI7)TL2(>2~WZL7tRET~?mP%AEnfv%CKF|ej7ss8PoPYf7=_BuAya2Ow5uIf?c@BWL z@*{3HK>fW1nIxz*#mh3{-81}r=54grANfEZSOGfCX0!9mt0&Nok6!$ORVi5wXULQR z&a$$tNu~BUmFhNBnlQY04y9CK_5-l5c$EJ5_;}~3H$EUy6|$@6Y3+E4cDv2po}kn1 zJru<~WPf~*e(xW=YoD?DQN-2OFz_(7L(J%+!I!lr&s@Fdy%QEsj zC(m=V*6WZ`BBjLlebUAY-2Cnnq?A`Z&wExW^?wcUIdB2jbt$oiU&fea*L5+*+%m?rj4_MGm_^Gi12OQE=Xn4TaKHRh zV&I1Bx&XI;>%cEI{}cEfxC~q_X?_L1vbijNl>^j)5uhFf!F-Y=CxInkDF}l3|7!%r zcYhN?90L}B1;3~c!0r|SOSM{UUI=jrXaaW%jpdI6H*2-p1tG)?uyegRlzUkbcF|T_ zJ$Au!762pG>>c1>>DqA0Ms?e!gb1pw6ox+)4Nmdk!HX~9I|PrRCkS+J=FrVx z$W}79CkcgKA&?9fm4BPO6Bih*clUkk zUvhQ$Jjm_)#`<~PSO@B#n)ope!nUtlTP8r3W<+sxKjkQjnw`?50bXi54k<|!7JAXF zk0Xj@p|lG#J6Qo-FIPJbDN8f!uviuf+NqfUvU*x6fa+Aq@pK#o4u2P?fgn&-m2~1m yt6s0`>-wD}M_T000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;>`6pHRCwB~ltE}*MHt6_ z^W3Lz?H1a4Fd}RST?H)^Gz$$)ShHx%!9Zz(2Xpcucn}Zip?{PfRA@bjD5anQk)n7I zM04>JT4RJ(3W|+-(^6rfBo@+cvhQVfX5O36L*Is%G{qeH!SH?a&CGxPGxPsOi3ktU z0v@pK3NRiWz3(xUQd?Tk-`_9A#P+^Y3d&`aQhiFP$~|NEVYm;73i-``JUJ;U4C#!I zF9UtMJ@P=cT7T7r{6G#$Wo~XSVaVS3`BOj*sO$!C-wwW<#}ySt;{M98uX=N!fuwARFNOsCVqT8qke9Vp&m zqtRG+Zt66TRQ6+2&)NA8nR#Ib?}f|@srMM?F*ZZn6n|$8S!%d)ewqMi11q_2HyVwF zXD3eJOOKLtQ)2CqwKdi^EbAMVc4ApwH>|E}X1{zB-MNj4Z*%4RG~WAjy?2j*sM&1Z zdFI$@JSChwgtjSNoAJdrClF(hETb!e_MSw9#CwbgPJ|b4-dqIYO(6{r56j`#KES3P zZBi1GqJK@w*T0PA9HMZ84+0oVqmERFgQ3U2amtco!FvH zO5An0Zo+5RKIN6Cr}1mI`0=Y507j99`YdU!p8}?Uk+yRamxhLT>FU+RZF(IQk>3Ch)brSE zVRo14W~Icyb>ltGd*pFz)3_wRCt`V)4L9YAP@!6`SCd^i4Lq_=T4}| z^Pp6>fTg+yzTRKN0nt)Zp$>fob_vX3DJW2i{edMc2j=FuVPvQ=O%||*?VV2MxnXe2 zxQubb3uZc#2L(BbxzUARc9VncEw~K};yc+*g!$R8;P4q>Is?<0%|**tDYmyOCNIU$ l9&U1Qz@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;Xh}ptRCwB?l+R04Q545N zFBB983|F&y5Cma{6hY)dGD3_Nrin#DL7Q5%sZ|g`i=dLC!hZsxox2M911tiGY8n0k zMKB;*Fp=}#%zO9OIW2t3_#;Q?z~S5<=YH?`z&#gLrIjZqPUye(HrpO{W1XEuQB;ni zsMIR8rC@!0T%-1OlHuVcpxpBER=7YZJ$FulTfk|c^uNfZsH20Tx-zgMcC_6s0HdR$ zDk3=Nc-!60aDSzOh@h&35OB_6j3LW1(ljMW60EhfZ6`K1Hm1E}ckn^5UeLKm^h`WJ zLnGMu)PntP&WrbS9QfpZL)GgJTp<2tB znY~7q{Klle`8+*|h&xA80qwguMbdCIjHjM^GV6JN{|wa|ZxC^acSvxE%?aLc_rnv;E-j&|^FRtL zv;p+@_v^t6Q~XIS4dY2Ni_7bLe0rYaS6`CXexc%51-&JBiw4I;wYotJn2UOPdbIEI z3yc%$xqrjv4P2J+W#$S;FFi)QTNMi)m9Rek{_Z)(m~UTW_tRN^SD% zaU3f!02~7jZ=M%twzOeeq5cgxQlOWBpKF!JaZLQRQmI5uBul{ZZoaRyNNg^D?>4cM zUD_J@8cuJ4*}oQnlfb?mf14fl%EjT1rnMaSu@my&0RYdW!ak$y9f1G<002ovPDHLk FV1lw_PKf{j delta 224 zcmV<603ZMI1%m>RD}N5d000id0mpBsWB>pFwMj%lRCt`_)3FYNAP@%Nd-rbU;@F8e zn6NZ)F*!DTh`!L@fr3bsp4d(uevK!5au|p}^woq5VOuPoe*r@KkquDZGb~02RSa$aBW9=w*v?~@*ieEg$31n`F%dj(N aS(_Jy2IikNr5y+W0000004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0001>NklNhwL>aB?7@e(;Wc;xWcSQ0tLUgdo-PKQfdkM3F1OQF z61WIRkpbo>eHU4hi=aKQ1Ma{Ln9S@Wu;y?E#+QC9Ep!WScq+wQ9C`iAzX3i50B`P5 VeoKq&ZvX%Q00>D%PDHLkV1n}3X=wle delta 164 zcmV;V09*g60>A-~B!7oVL_t(|oMUA8&p=hcL|x-X4Wyfa&C@RtofcS#Rk(NeUbvyo zuFi}U8~EeL52DoJG!WgJ=bp$CWgsKIoU(WK-v2*-{9riuM3zB`=Q3QJgNK8GgN1{E zgM$OZ`-4B(;Po;xSi62LTxD=zFy*n#!NNh5I^qrFAkILdy&X&}82qtJbprvxuOQ_6 Sx0^r!0000004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0002tNklIT&}XwL?Ut(>F;bfam*x0FjORatC2Rq`(x| zxzM(}-Xr^d@NmW_XDI{V=3jzcjYhsCt{Px-Mj>LOb-dLQf%; ig|+3H=|3E8&jA3aa=fAb%(bfk0000(vRo> delta 308 zcmaFObe?H~N5IPVa8z$Nyv+mc3|77-Kw{Ve_4Zu!`{9di43yl?jM z*kAW;-d?JgkdEaMKlVB`Mf~mEz2EmwJ(b<`?r>Ip!sjpE|1a+S{`fe5o4kFUfy7B0 zH%_*a24kL!rgN*6yf2hm#GW|7@Npeb1Do>9<2)eXWi$QZjK;>s#MjT({{Q~&UiZVG zHEh??UKu|6bZxKxE}kf%?Vja|%*@P(H(D=}XcJ`WY2ji|nSLlnOh%%|*jC6yfNfje zJ+APVZ*^byUUq1*WM#9ku;>VK-@@I=+Pr_u!d;CF?|;UvVYr(G3A-~B!7oVL_t(|oMUA8&p=hcL|x-X4Wyfa&C@RtofcS#Rk(NeUbvyo zuFi}U8~EeL52DoJG!WgJ=bp$CWgsKIoU(WK-v2*-{9riuM3zB`=Q3QJgNK8GgN1{E zgM$OZ`-4B(;Po;xSi62LTxD=zFy*n#!NNh5I^qrFAkILdy&X&}82qtJbprvxuOQ_6 Sx0^r!0000DB$pd?GVF>)cY6r>YVv|Q($_c0W%{LNBE(Cj8}9x ziX=H2G8F7NPdsUn`oSE|#lWF3hf`WAt?zJ3WxGs>>CgGVrcQGm8`l7udFOk#QT+Mz}+;~IMdLz1Ka1s4exX88qdjW3=X)G{!#F<8g`&onTb Rr^5gQp00i_>ztSpngAEHV2uC( delta 278 zcmV+x0qOp<1iS>0bpf)GcD{e={eh$xY#=}Yp&JMTAeVhd_p&heXG3(u&*AK!5Ls8NB?-jWf%rU7-3NdGVnI*P$OaJrAD{+-=;ttf c009O7*I!UD2ptuH000UA07*qoM6N<$f>I!A$p8QV diff --git a/resources/pointonedge.png b/resources/pointonedge.png index 50bab61b04cbf87e2c0a94223bd1f986ec8c8ba8..a6541d8013b820418751b61f52a83d04ed892cdb 100755 GIT binary patch delta 564 zcmV-40?YmX0m1~38Gi-<0051N9Sr~g010qNS#tmY3ljhU3ljkVnw%H_000DMK}|sb z0I`mI`%#ks001CkNK#Dz0D2_=0Dyx40Qvs_0D$QL0Cg|`0P0`>06Lfe02gnPU&TfM z00Fp3L_t(|+G70w|33pY0YCt;pbL0-dXr_tj_q3+K{P-Bv43DQZ0C+`l0b@s7=zqB zyzYZ&Mn*;nAoT$tfS8aC0~*8$wt!70x3x-R{-QIfB<3uMGDXWkbxRN>QuaJ0GB$KcMOPfy@C2AQm)<=ST)VhZ_0<>SB=m z2VfBWfQCDUVITkyKrHx@1XS}2Qqm(p05LI882|(j)qf2H2q3B(2oOLlII`0|q=3hl z?JyEMKmZ{pY)2@q08ONputbavL)8XCX-inb1_&TVkby{rf+kXe#hNV8T?fE)CA1&ZOa@h-54gv@um>@m delta 238 zcmX@a@}F^nWIZzj1H-QHxAs7ay~NYkmHiTz5U&d3+O3y@fI^%F9+AZi4BSE>%y{W; z-5;PJOS+@4BLl<6e(pbstU$g{fKP~P^R!EQckSJ}Y3tf`Yk_Q_@SIJ>Wk8CtB*-tA z!Qt7BG$1G0)5S5Q;?~;pj(i6cI9MFY(i{KR@8mFb+B>b=BGRDiPf*@!wwb$woiF-4 zn3a0Oa8=!vX-`?VWGP8(TP_ggxOUkwtpwc}C&ZU7o|n96LhjN%99yP7zA7uT{@woA hgP*s?HBM(;W^3QfSaa)~>qVe_44$rjF6*2UngCM-Tk-$^ diff --git a/resources/pointonface.png b/resources/pointonface.png new file mode 100755 index 0000000000000000000000000000000000000000..fa0f8cb4256162910575c3c241213db52d68d3f7 GIT binary patch literal 616 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 T$g`3F0000z@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;^hrcPRCwBA{Qv(y12q9a z0I`4wMn*<3$Hm3v|DQj97=Hi$&2aSSQATnM1PCA&7{k@o^?$#9cnibdzyBD1{Qk@E z{(aj2YuB#v0Hwa3R960Pe)ld>761eg6Ns?2wf(OZ+{Ew`XwdgxK>YJBgI4q;25xTd zFFz-xz*<{Rmdz{QP;#H(g^cR<(uWcd607Z8K!9}NHg{DP@bfzlFC3=UUZ1_A^S*uc-9KQsLL z_L<@DukQ^1{{99V_W%Dsn3^xl5c&laf5GQMfB=HW@_*rp5hxPO%*=2DIhmM{4g8AF zK!5;(8E62+2~Zjg{{H<7SH#1@LUcL=2q2hBkT>q&P;-Y>RFr|?@nfu#XABJfn_Rd6 zPon?<#0biIz?{O36yWIK%LRM;JB&bAGP1FO1^)j6M&7q?4F90`FEDxi2AX5{{5c~) z0Kp8z>3@YgR#yK5fa#P87>*!ypse`~XvoKpA3>?Z;E<%`1)xC*(D1zj5I|TByrHJ{ zU*py-##=z|s9m_gqpq(0#VmCu14!-fKmWiv>Fdwm413$XLCRa8J_8we0U&^wu(=9k z!A(s~kYS);Pyr>YuRneR6Fe~SfB6NZzcc*&`hS7JGGi`Cc?~rDFMw!(0K#hEe_(0z z514l!nC}A8h95VfUu?qjeGY%$tMKr z6`t?kAujs+>nFoMU@rRm`#Zy*Uq2ZB12X|Ay#kY%3e>=t00D$6fqjA63N8#-fHC~% z$5|I}PWlTp=D}N5d000id0mpBsWB>pF>9jWvJOE*=ZIVFVLEfj zMg*PIr>fX?vCv5&qa2a~qjjq5R{T%c0Dlc7YtjuV4&|P~J;yt{1E8x&#=d;t@V W$6$iOh7$k)00{s|MNUMnLSTZrHFhWf diff --git a/resources/position3.png b/resources/position3.png new file mode 100644 index 0000000000000000000000000000000000000000..301a3bf093779a65d0982456b75c8d6642e76f4b GIT binary patch literal 891 zcmV->1BCpEP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;@kvBMRCwBA{Qv(y12q9a0I|RrE-o(rfBpK!0Kz9u zoM0r^K!5-O8|dcd_CF~piQ&(mKVSoum6iYByLXT0xQ)%1e}DfnF#P++z`)1|#*9F0 zdGshw3jqR%(bm@Xe`;zf!(X7r-@kt|{P^($jLXW(K=Kkm%mc-6aKzmF0?1&i^cw)GVJ^J?=X2AD2-yE&B>D?K$Y?Hk;6FpQ+} z1yJ!tlyG8X({SvjAS5I0MZD=cY(|cR!5K8 z9J8{z0JVStAb`N~=$M(A8OH7hVtr6r#f5=D`IwCjh+z%H+yDW@1P!MN3w3otk_SK- z7~=<^Y+}F*P>jQZ03d)s27UnrIy)pRUO*$@0ux3v3)GMuY!E@1 zA+T8e0+q)PK#3m;00M{w8r^rd8XLo1h#spT;N;}=pN)+T%mzgoD7n3V|DFMuqZt1I zGXx9(1Q0wg`o3EXAAcA=fBywaLjR!| zKn0`@Ab^;V^nBrfh6Oa8p#V^h`ttoZ!^f|`7~X&R3C5qlerK@BTgm`U{Gj0Z0uVsR z2EK4OecI-zg~bu%Gz9}6KYj!o_U`jfhPOcc_46l&Utiuc{QmY4#a@5_VnT^6prN4b z1Wc%RPB=KA6qK)Dzh-y`auq1=e}2pG^Xof?U*A43{Qmxh0hn$XpkC$y2p|^pGzE$j zt7FGJK(+y03r@QKfFvk4{rL2j;m@yc41a$D@$VlD|Ni`9xU#O90h(^XB@;jZF`}2) z(C|}%1v1oz@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;<4Ht8RCwBA z{Qv(y12q9a05LI882|(j)eQs)AVy*pDk>`e|NZ+n!{5Ju!GC-Z{pZggF#Ye}KZakw zelh&~`I8YKfLK71PhDL8OYhl(*Km+Vkfv9!UKyavv9PdQ02vMh$^Zcb@iG&b5(i># zY=$W-EB}A==#dIDGc$-A0>m~z3^Le&ot+(ISPoRF2S5NZJ#};Y4|Frb6Gz7vKmiGC z20~MU1k^wtAb$p_y}--My8!4-kl|mTN+kdSh)H_aE}s8D@5t=mUjYQ(kXU}+G ze5ggBumVwEq@|@VJbn5UCN63vS)IWrJqe9a!)H1Q5u;uMChddLbervICR^fG+p~3~UAvW@BSx0C|-WXelU` zLGqH4l1Dy$`o!?{>sO5M1_&S)ltc;C1WXpN82kdY864m`Iyx7=ef!3smoSsz>yO_I zzkYmU_Dy0+ zA74K){QCNy;rG`MFvBK5lM(|!0I@*R1(*VP2MR8LT&JRiP=(@9uOF(K5KrII8xd0GAU;}}93V&=0D2!lU6%`e|pc6Np;rE}v3~xXG zWcc&*8(7WHFYg%s0@>$RRKpDW0yS(0hz1BChzlXvh5-~tu&kt)vVh^^7f=}e1iA(o zUOyla@C)e8OKTdj8U~7BfB=HH5aKeJ3l~`Dtzh`|?K8u_Kfl0%4mR-Tcd#0KhJhpi z0#FES;CDpWfx*GP5PanXPQyR|Ab?;cj6O7W8PF0m4;BM)8U_LY0mOo&2$p?t83Y3$ hbw{un1_A&91^{cSMk*^t++hF!002ovPDHLkV1jpwTR8v# delta 289 zcmV++0p9-Y2D<`~BYyz`Nklbb-b0 z1slEwswLS3E4s_T0Oo0?DgsKq6%0cVY@Ei-lm+ujG(=V7uz!u>4kLkkW7dM!9`0SA z5GGiE?-LFa?zB_WPZb2yPQ8Z}1s?b*3+VLn?wv)&DThvelhup4eZ11&dmk9?;1;xX z5NZo^&cz*Sr{jag_2yS`l|+Cx`4 n>ZazxB@3)wjT&p*3Iq579XV-8a*jD=00000NkvXXu0mjfZ<>K| diff --git a/resources/prism2.png b/resources/prism2.png index 5d2f366af289732afd6a5ae5234c99e647b0d7a7..d808677d70fddc9422c261e965595c4e692a3ad1 100644 GIT binary patch delta 783 zcmV+q1MvLX1nCBlED90;01FZU(%pXikv2Ym0^dnQK~#9!V*LOAKLa%ZKmaijQgF@A zjwBla0tl~x*KBS7!)QiEMs8vZ1PCBTd|n0_a@ox6i|(mY38JE+3;zE7%K%aj6bH+L z*#G|h1LI%6elh&`@q-Z{fCw2V4x~JQ*g!}~r~stt%a<<(=;~NlST6ke^9RIK0SF*} zLSgs?i0_Dtix<3m_bvgb5hNA@#5N#HK$xAK9b{MzRJ{j40D%p>Vs4JrnLyWn1yUEF z+!xHu%pjTv#0H7;@bE17`SYg@)M5~j001n;3Xv`|3mSYmoHzc zfDB?|V*^Ru0byVeTmX8X2Wr?0n56)J0R$qrFY4%kTo@0;)*!x^m>7r;GF%ym^?}$O zh=Uar6u|007D447)g3550U&@Fp*DdGQvoFnP&fetngQfJ5C%mANDP!zK(YM&`*((~U%xVceEReW zOrwDWfB<3v1w2qODB$maG`)E70v3Z`kZfiEx$fJyZwz_~Ga0`A_|5R^$2W#QzrHj4 z{r!XC#LQG!>`MRy5ECpmf%qjf77d_YfqC0NOH1p5e%xe+_wU~`eERm2;m6lc48Oj< zXZZc~1I(}q(4@ow5I`&_`H%^Jo-DyGR##WQ0P?1G^dyE4Uw(oO{Q3DU!|xwo82$oX zcXn|JNbLcr#UMQw00IcbKu{Kfc~wS6=7M(Y6o#L_{xZD%{FC9&&u?HgKfkAQS_Eu}nMF5Ab?n~D1L#%AO@uTdIa4tSQ!ZrU;r`(U3?60YDNG6 N002ovPDHLkV1n5EQZE1i delta 510 zcmVz@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZAMIq)e12q2;ieC_7;pW*Lch8Nb>?}1zad};v#h!NyWeBc$(s|aSDJq0*DQOSOJ9D z+1dXyGc$waBtU8b0*IiOWn^T&zj^b0?4qZPoGMH zy~oN5Gw_9&nArVSuU>INUHSoP;0F)^5I`6PDk>`efAHV|C(K5uCI&`!cCbrjWo7R_ ze*73_n7}i2_486UZ-V7O1V8{Wp}P!fm;@})p@zP2efyR{Q&V$4&@fGyVIWui0lMyn ziV7@z82|zZo@|tql>UPP7Z_sB6Y8oT(C`9#iO$@(*hPga^mhL2x= zF?{{}iQ(txw+z2NzhgK)BZ=VyF!F$gRl@WD1Q6VX%#dUO0uMm0)7I9$zfVGfA=|o$ z;oFy=3~zy9_ycIjpYNZ+t~ap+(2Mn1k>W;;`a~p@i9bNS1|nf z^a&VF-x&V<_zIT$_4Nb8r8SMnhCP5KbdbTo2>t;OKwtx3IXL|P0*o~t9-jT@fi8=5 zs%7}|^*z|2KR^Tj{(@MB#jpz?8e|a6VE_RHPBt%$jsO1#y6^`u87Kiu5Op?W`hlnG0NXy5}Z g@Ua;N0ssL903BGu<~0js$N&HU07*qoM6N<$f;-Te=Kufz literal 0 HcmV?d00001 diff --git a/resources/propagate.png b/resources/propagate.png index c3ff01c597ea20642cd529281610d23d28ba44a0..6a6b583d7bfe92632ac7e60bdab3b6f73c838894 100644 GIT binary patch delta 1069 zcmV+|1k(GN1Ih@HEPoOJ01FZU(%pXi00004XF*Lt006O$eEU(80000WV@Og>004R= z004l4008;_004mL004C`008P>0026e000+nl3&F}000BPNklUgr(_037EXrWfB!RN_)KS*v_6gD?>~sT{GbU8ZOd{PzW@5e@b$+ZhOKRZ zU_*gG1&Ch&1Q3dWNl8inyC(}UF#P|+@Souq&_zFi^iQA+kpKT5kp2&5|NH+9$p6Bi zt$2gMC}Ro3zJCrMkoFuP-T@Fma4$zkNB`IMD`l9znStT!=Z_495i=QDm*xUp`48yL z{|pWBO$@aQYQb!f>$bH8FkHUR&k)=E1!e@ug**TO1a@ISK)`=yW@d0W{rdF_96p~v ze`fgl^(&bF=g%Lo90-8;U%q@{Fwa@R(4U&Y@cGj}27g=Q7a*w#K)e7TfWR*N`ST}( zepnOG_J0gN|NLX9jI3iQp3%+l3@HQe}8_VL@Gc4fxT>HW%YmE4nasH05$(-_y!F4uV6kTA|Me5iof5#{xhgb zJ!P=Wn9EQXQ3VW|e+*&1ui;(>2p|?%xYW$AVE6^}-Y=j_deRFRQu`)>y$3R6erY;G zV)qO%8{(oMhW|j9{sbD{wglweTDS`V0*DD5E`Pv42c@%rPz+4c;6w~dQ6L(O{{e&J z?{BbJZB!k@_ivb91_&Uqmo+st|L;962u^eV|Nj7c`}d#U48MOPy!sCqmOzg%eEsr| z!N%wXgJDD~L#9_B*wFlpcW^HQ1Q6KEpk$CWc@j8cKwh4jmCg{~R0Z}H2u#dxXUOX> z1%Dd)o8j-TA3%`?hHoF9GkpB;k7368Kp=k}+=T!E1U3+q=DvLY!|(^F`1{8f3~%53 zWnhGO030E2-~NL*6PS;Irh;YST$Td${b#tlA8gnGn1KKR1oko$6Vw08_auRd^gqzG z|9}blKiDfEFGIWwjNL!L0QvEs;m7y?41cA0?-^7alNjzG3zE#PF7x1PCA&B*{A@y6^=w+~9_R06+l2ye7;I nWJ`dG9}->o0@*MS00=MuS`juUTz98A00000NkvXXu0mjf^)T!H delta 374 zcmV-+0g3*~2$=(rEPoLI01FWTe`H^g0003?NklyS!ChPEVQMy{R>PAdeKz*^?TKJIeDJrp7C&3 z+J6AuxrCIm*$Tvh~}{LAKV-T5cnm1?rly zWlN#%pH`sKtZ!eYGL>d<0H{y33_NdmazOi1G>jw!1?UovIS==L7ziH*%=diko_6p( ze+UHHhhCKxin3URj$wzFgJWF^T|#&Q0fJSapa4DM_v~|z5oCK diff --git a/resources/redo.png b/resources/redo.png index ac72e5c27cb02fdb6aebd6fdf3a8f08b4a4bb2fb..3753bb923cd9e03192cfe0d8cb013ae6813ddd51 100644 GIT binary patch literal 885 zcmV-*1B(2KP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;>q$gGRCwBA{Qv(y12q9a05LI882|(j1IUFWxY7oQ z7Xh&)F0%jv2%mw{KbGxam~!?k!>_-8vw*VGVFm&O5W0ch zoNR1cCL|^@q}kdsFns^c!0_V-1H;ds3=Dt%fa$+qzcM`e{F&j+w{Hwr-@IYS-@BLL z!;c?gK)tU)W&s2c3z|1GSLf$5c&n%|Fg$$7@an}2h7(VpGJO91o8c$WKqe+81|C*c zkO2(W-@Rj4ed7j*-2l}0733z6BLM;kISfNW%*_7(pEc|M|CW~j2|79;L7)>Ep24sp zKmY#{pc)+!5s=(-AYKK;?m#RGG7w}AKmZ}TFgDiAjDZ2@l?BI-Gc34rj;n*1Y)2nu&^-P0=l;K)G3BXpMZ{FVuGbyaC-a#jOCl}-hnJ!hMuqi z0th`F&h%GRO=|@vULH0!27aK|`G7PN3nXOz|NYDG5ttVDK6t|h20 z1Q2>U%-?wXw!n?IZ^ObhH5q^|W)SA&WMBeX22%VFlwpAMo%bN$GO#0sB^&?*5PDt) zIa36PtAY3$EOxQr`#{_W#FFS{0R#}Xyvz*5LeRhmVPR+?fE(-?sK#pjDPl)S*0|(O5(ij+KrlrjU z0tN;ko8e_7w;YgSED7=pW^j0R10=?n*?YcQZXkvfq^-UO^uOFVzQz_10&lEi3m{%2_6XphGc;j yHqF!^hL=hVK9Uk42TzGOSUK#9bu1CEvt^K0XP(n=mTxoAAO=rYKbLh*2~7a~`8MzX diff --git a/resources/remove_extra_edges.png b/resources/remove_extra_edges.png index fedd8ae13e79b8634cb37e09f9f0b3b7cbac61e7..bdb821e09e66a65d574e7c773b2c54b36466f67a 100644 GIT binary patch delta 822 zcmV-61Ihfm1I-4IB!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0008RNklk!f*}Ze$`*F@a7VpeB>uj^)g~Npl_s8>`^KdFN$>vThw*U=H@1KT~`y}^jThBwrhtEbN$gpL=Dk` z7DG$xM2iuU(tjjj7=-WEo};d7fO()lHx29cdiKb|MaY?u6dwg21sB?T7=&TSxRBZQ znQvE5apI-h_B<&W{+lfyO=9TNR4uxT1XQZ8P9 zlXqXffDMP-zSQO9TOSd!5~nKX3_!^V&5ZzFpKW|X2>5p)Ff5B@+UVMTTaZhto!Nr7h2r~Bk9R5>s`iV84Qm<++F zsMxr73t)W*a4;B+M>Z!gfU)KMz(HXD9u@YdVE}&*07Nb^s!91{u5xBvhFNJ&INR2WySltFHSKoo{QDvL+L0up051(z@$pn40= zAaRVONAMQZyLbxHkl>;VH-;`?D$D@Y)NcjvP5$@)!!QmtFMs9DEc}<33%X|E7w3u1 zsB!e;u%JV&lw!76o1GqM5(AK*@>*O$L-JwNU5D_6Fc4WQq_VvkZvF_BuqYigUu~!O}#N68W`*vTUIR!)Xf3PPH zb(+Lv9~l7AJR+Qj(~)8P%yq>?1W!D~729FwZIZ57;0J{BkiZXYiTsq;RasG#MZYnC zDYjfK9qXfrD|o&~L}a!sJn;};*t~DXuP+fHAV5USmKue=vby{LKU!$>4z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZtq;OyqoV$w2@3;z>!i0ghW7vh2*b9E>FNLVXU^mSG9}P3NbCy`zX0J={{Bb) z{rt&bv15k>RQxMQKR^I6AsconGZSW*3J@DW4SLbh-aZ9t&>awcCN%U2I0%3k2yCG0 zzyKhC&|Sz4HGd3jtFyE7k-xxj`w4W(j~_o6zJLGDaO1`eWD5Dj z=;`VCMLW0wtoirfe+<8V|7G|EVgvD?fBzZ&0>%CSEq~eF=?`+T4J=GyVF(aFC}9XP zOg98#*iWEA-+ul9V~H1A!2Dl-{(=qr2TVrx#p@VYSXhoA8wLUZ0R(rUhlj_1osdSb ziy#L5Wq9@I2E&h^zk!DQ0~^8!Oq2Xl>d>SKGMIs3Z@V{$%>y$OAb`LIIypK0pJrgd z@bA|zhJSy+fNxNWWO#b_Dg(Q)Jj1`=zZewXZf3YI?8Csw#LV#J)qMtj8BK{*5qtt5uOzrQp5`}+r+Qy7_97?@eu z7?@bt84gd3V6ZP*!|>_(Z3bR(Wrjl&!r+Di1b-0Id~I!p@1mj%zdwCq`1Rof!>5lQ z8JGo+oI$nf*aJBE|9GZ-XZZD%+!GnL`bkFQ|EtTN{_ynlF+;qR|+48MPTX0S+` z2{X_DAb?o@eEGug8;Jh^UH1u?9KaaJ{`vbi!?`78AVmi@ZrTJ^eR6J=1Bm|k^g1Me z|9}6-@bU3gApI9+pbbC(G5rC$>>JRV?|}F{F#J9O4g3sB$bZ3#4uH~_kCzw7pbJ1e z2PDWPB*nlXAPx+Y9}Mh#q6{2-VlV?G00IaUDf(M&Z7;kBhT&IWqZ8GpgT@BQCBwzg-wJh1zp_bigdtj5-sNTUALJ7+iFZ;)7KHO@H>?$7{@ zVtmcKEwi+(-@~tm#;KTmpv$wABB*nl^6zcQJNt*vU%vodGem^zZ`YLD5`c1B^5J6# zEdpI6Q8$OxbEUSnxZ1I|d)(0hki-d#w~Kbxyv{elIY@_yw7TA4SI?C?=diVfW8;%p zxcYR}yTjq(2X`Qn2#Fi$oxA^kPB&b{{W~_@6+BHy&V7m002ovPDHLk FV1j6~;*0z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;p-DtRRCwBA z{Qv(y12q9a0FjMOYiM9~2|xfbk!#?;KYu`!I1qCqivt7@BY&v|om5u-{~u`B|KGnE zeglK+A5hHU`E$5A00Be}0=YAQTPG&d&d}Lz@}C|NP7F<@;}jUEQG!Z{NNJ8SoX&g&>0r zKn4Tx9U#5{#D6b9>Hq==ZlJBL?SK8q4u&7UfQJ3}!|?grFNSYFe={8J4P^N9=MTD} z3{Y>v47>{y1PCCom-Y1Y{;LJIGJO2@o8cSCuj(yk@SAW;%Wwf z00McLo1LBgi*?~zhCe^QK@0=Z|Ni`BIKQ-v;qTwS2cWK70K^vwB>{i{0wrvopFe*l z?CbDh`1S2082|qM8QHKeNZtbjYisNO=H}-A4Gau0atlBJF+yVv6h<{Dgvfm~#j zIu&Tye}ZIl;nX^2?Vmz<>1l8*JE*pT8iH_!BM-P6+@3gr4auG-`^-|00M|q^dB7qBN4{#2V#AI0AeB0Kv2LZKxqb~NQ47`00RKTO-t++ TeGV8(00000NkvXXu0mjf*xX_0 delta 400 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 Aga7~l literal 0 HcmV?d00001 diff --git a/resources/section.png b/resources/section.png index 4a2b7828e8fb5c82bb3e00d344c3e8e04d702a60..16ea2c5cdbcec1c62800d05f9da0e3897af94c6a 100644 GIT binary patch delta 740 zcmV004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0007VNkl~ZAeP_1e>40?a>{?Gi(rEPkz5Ivhj>8+h#ub=vzjB z0AhiMA(EFs8Z<1tPz(ea1U3|iSFKtFl=nmlCS_r;yfQ!lu`mz;V1}W%7%7;3{`>)x z@&E`R7Fc>iju4OrWN%^v|KVx$C&Le5`h)@%fB<3vC4bg`SiJlXXb~ec@UgiNqz2@& zpTMyD@%Z$H1Q4z${Lerhm;ew!xbiZ#h$0FA1Q-CT WW3uVp)ZJSE0000hS#4b!h zfkYFD6p@^QkQf41Wa#phXWx_k{G%}Jng9UhfiDmq*Y9gXZ{oo61+J^qtbAQ|?^}(LP*jp~HwbN;SPQHt;{&CeU=ci=VX+do!06Lfe02gnPU&TfM z00ZqwL_t(|+H{nAXjWw$$3M?G&w1ayd-qN&G%PIdTO*1=cz=miAQ%<>)19y|(h4OB zEz1f=qk<$+Ap)hFVF@Wg_QwoOE7OH{Etk%@`MRr{+uqCB-pe`9bDsX#*_cfqcsS1= zhY#QH_jeJ-7y#-%Yrzs=+X6=lq7jQo#Nv&YW<{iQicX}2e9oP>>FegBo^SB{0HqA? zub9c$V~sqdJ%0=-EwM?&B@+_EcgOBFPbq)fl4T!YS@w}tFVDWmkpfEygkanm1x6e} zti+})Zj&gJl$S{orION^4KN{5Ud{{4>Hywey>xcXnpdU^rOY^>9C?&PZQ`Xi@t94l z#NwI9rp^VH0yU-aL{&Q7&jSk=qk`z-UEi)-47^pla(~uF;2NqJ$?(ga9hAi-OP;)Q z0kC{dW%Y{>Kl(g#s_tXbt+N=+X)>-No%QK#Yvk~+Te#4;|102g&+|@=18)DRi)GJE zpDU$v8?-a~gL@kBpL=l-DS>^>YPMq=U=26|g)Z90VS7k|@Q{|uZ5T7WA+ zPL9cQ!L*sxxI>z(tGLqB!?8cNbM)XhXyqqo-hcJbwCtsmv?ot=20@Svf}jn!8JGyf zfe4Tv3$%4$k#!ZR^dJLQlbme$9lR~73P=NezyRO^-ZdEl zO;@^F7|bbhLn-=ulN1X>nIH&UClamfZvTfM2!1ifWC0)O1zLg2A+!htV}XY*x1J=E z>VHQ0MI0xJ5JCc(Vj=&Y5Te@{(;r&%LUkP>tN;Xn8J(1OKW)?|(4U<8>jw;m@|$iW z5{<`&5INwYG3M{E03-Jja23df6*kw5p4J*;%$DPazoU@LAZ3IZ6*btlT@k9d8dkC^ z{H8*i=DM?NOn~qE?Y@`a@O%A60II4V$A7lvA|ZqYsL+}ls`6?#H=7$S2ZsC6c%E0+ z)_Q!$(SzG4E1yK=y^kQJd=+p;%&gmZUe|8AFn%+P1qxxYcKvAs6qQo%{Cm27cfEAFzi0x_v`w4FRf@euyt=wSJMimR1$~*)`zPqL>SZc_n|;w z2@7mV*akyDx7PZg*7|Jtn-kg|?z`)(?EeM;sNU-IZvDG800000NkvXXu0mjfS|}9- literal 975 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqMyzU}gyL32{Ag(XtH+i|A$>yGTanrJv}Vn71?{kepP$n8jbDQ&9P6{DSwHJ5&6t;zVEf4 qiTkGBoX&*C49m@7VrQ-I`_JRw<#IIU%bh(S&w0A~xvXz@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ5GL(Z@Lw^AR2&;j`#l`={EE7O> zG6fBrH94TMDcuRnhoz5&I5{P@Z64}WM05EugSc_4lP5P&9nI{^R& zVE~wJ(fxNU#F{=-@Y`^ZSRl!&X}Sd@mhc0y{a^%`m@9XUeB9&)*=lh1)4l*g7zm7n zA3*%==U)i>H%Q@cph16uG$Yu%j6jn?2K)sY_V?F!hQB|*!3=~0fB=FU2r}$DFkE2x z@9$p>-+#aVWBB(M;==!oOb`Qs{C|IcGyMDW3rwSD41fRv8~FS8Z*aJPT?mZb-#>sh z|Ng=7@xxy*&B(+I#tcj>uq=Ty*#HC(l7augUi}3$?DzMNKrj7Zc>DG*IGmVR*ch0Y zS)u0P&y4^91UK+IDC~e<|Ml$y!_Uv}fL{L2@PFd@Z=m6y8JJl)fS8@(KR7%YAl`*y zbN~=Q;H>xk`*&bM2Dl;VGX|HSa?>w7SMc4!vEyLa!JLGktG&70ykC+34SgAD{5_5~QjU%_JN03d+C zUVr}f?Hkab4`4%|9hwQsPGG};_&zAHzJC2Wis8h9WgxYJM&ZyH{sWF2^jHQ6Ah3ZT zXM=2ivTrinWl+PwsUMVZ!GRMycOA-prnKh00M{+WP_BH)c?Q0^!4i1D|Evi zK>46tpa8_0Kr9Kw0%*kkH4+cXLPlvR6_M6c%0>eY=Y3P6vzq|78@dgus z+9?3$&vWs&gsrR6ETt$5RHE)C?gj-WTJ2At(Q41)eSt1DT7T<%UI*C1uF#LgU`lHY zcAeA*K<$+2n&%lDz%EgM`HK%+%-JB$;7F_s1_%Qmxs}GY>{iSFs65MYTxa-UkF7LI zsmkhcU{izO_c9_3{Lx_V48y>OWi%RUsxx62_(Vs{wr%2dJUZnK*v359V=|o}H*yqu z)p8%^xgG#=BWrnkt#<$Qj1r>&Qi;B>Gki%zU5 zl_*n`1-jJaMUFn4H_&W4J0>&;wiw5D0D3W~7pzK@(Uz|JJ3yr?036rh2aJ`V=FNGE QNB{r;07*qoM6N<$g7TWJSO5S3 diff --git a/resources/shading.png b/resources/shading.png index 11ca2685f9c1566dd84344e15517becb9a41e392..27ca4e1d16d9cc5af0256a0649e3b6a7934e0fcb 100755 GIT binary patch delta 976 zcmV;>126pL0_6vgBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ_M{Z1RQPSB8k=A&P-GlA_6Z-n131Kv(FJgEXabYs;d7% z24B5;l?TX`0Ad~nEI?0B@BjDj-x+S-zKvlpKmakqOxD!Y{D0%d4VXa^_zVPsFF^c4 zL`3Asn>TMjYQDnE0SF+t3qf83di4t%8ymy<^XEfA8lW06fT^kJh4=5@GrWHN8pKrr z;yWNiK^%YpVt+vngKO8WC4gLIWo5O7i;IhagM)*Cg@pwiZXo>k?_Y*5U%oILK73dr ztZna$b#?9_tp-qw?}9i00R%S?q!H>(hGWN$;dEg_?WPN&rui>^{QArA=g%LQ3opRr z0RjkaAjmbauz_NfFf8oez2L{MKMe2QzF}Y$m16k(`F|%&3MHHY0tlOdcc2(-VC~cc z7k>Qw%kcH{2ZpcTe=%@K%QCzJ8ushw53I2T5J2b#!T>0M?>5am{Qu|o&kVnR{$}|7 z=Pv^n(6IMkelmRf`G?`}ukTn51PCB_s%2+qN0Dfmb@>0k-`{|d@gEpge;GKXWEeo< z1~Tl=uYVsv{0*yt009JdA#zTspLX#7_ivxUhOvrDFtBj{V)*n8g1>zG$?zNK>OViQ zrYHu00D>F%`}c1!UDCJb!lzFk7je_*b`1^@yG z#ecw;FJFLDKMN}-Si}E6KNV` zuKoWH=<5If7#^SA2-AN6s%HVvoQogM1PE(>Sx$*%LMj%Y$7~) zaK?jVUrOTO&&8M-Cq98%8l=acje`{Hy(!xcM^46(f~A3XoLFJr@-r~Na9FJOXb&5E z(fj9P!1l07E=mpDDnP~JgjAG4uNlmAMngD^9=RUBrW dvoQ<+{s6?;i`W&@?WzC(002ovPDHLkV1nAmoZJ8a diff --git a/resources/shapeprocess.png b/resources/shapeprocess.png index d9fa256ffcb03e3e9de5bfc483a8956b78e242a2..2ef384bde95f8b2543c0e9ed2c81a995cd21549a 100644 GIT binary patch delta 1197 zcmV;e1XBCz0>KH8B!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}000CxNklU4!02qX!5qeaQ?;s93DJ2et4*8HF@6bf#8-G=GDc$`vGa#J3s*st8 z2)H}UjJYRQ0I{Ik05VM3DVc$hg_Gg;UyuR+8200M{!*|5aK#Q&=9xeUL4|AlD!3Dg9{Uw|6F{e&3s^~Y}@|2M$gW>dwMuuO%eu2a1^XJcC13-LF zPfvz|rY45Jz%VRLOk~)*cQ1o^&I+($e|~;N2{M2H0)HF$^XE?n{jer*c>M&r@Z*Pf z48Iw<7=8e~{u{`@`}-%uo@1U^!{)6H0Ye|Og@^Y}IxjT03~F_Y4_)+*9?Dwu15v{0R%P> z6i%SX_yzRxA0Xzww}v63riMZD^ERM{UkpqvYz+EL=NL-5x)}Z;WrVNqo&v-16N-TV z0R%Si&!0cw^z{#lA3l7@@B=88R$I%!cWXWa-+ztS4B5a)`2|eWf1s}1b?X+xljF-6 z{{BJ@Lx2E+N6IgtSAYM3c$rZrmcd0whhgLS^9&VJr-F0R*WbUv1_Axcuw%t)2AA*< zhMhNWGPtX&qZkMfKwuYs`SJyrfPXW5`VLI6-+wXu{PCSZz#xdhQCXSc!M%H6{P^)> zhJRPDUNNkmJ&(aDG>Box(iIF$OiW;xva_?p9S0CVjGzD(5D@rplC_-S -#@+p zx`>J4`@3fhUtd3Dcm(to47AUi$G|Tn#BkxzQHGF=REFKlS24IpM=<;b#(_7`M?jyN z0|XG*K%h~)g=J20Rgi>k;nlm1b~KW zm3DSAd<916g~LY~xAe)KwH7K1304A{%(A)Fff`Y)gjTxAX00ImEh|5CKz^aij00000 LNkvXXu0mjfH99S- delta 315 zcmV-B0mS~n3F-onBo78+OGiWi{{a60|De66laV19e+P6)O+^RP2p0z;3i|D7#Q*>R z_en%SRCt`_l(A~VKn#X|6%YS`hckHa?neoIfRee-QWZj8B(upAdCy>Qh7R7;!M)(v zJs$}P6e{YN#+VT#e`#4@ z)~1V+e;NpReb?jsb;d9Zv&L>{Gr*(T~#mlxv$yZm(4!}#wP{9 z=RqS8oy4wl7CN+c1g%X;5OvTXfVd7*uqiaaNW#&98SkHzDa_{{MOnb-eu-#~jrCoR zQ+G;2=djJ|Mi!sKjBvR_g(?YjbYMt zg@H2z0RX~`^puT07Egl@`{L=7vxGhh*q^@RAOM1pX+Xcd)_QzRUP1EOWB?k@l(;uk z`D%G?`o^^Y9GeFKsRLk=_3Nc>uMiF%!DW3B`Rl0*9c1>1a7n|XkRAPGOVzTK(&yvoIPPb_#w$8ofZ`u z2Oe_tA4Wsbi0u2q^LYi_@P8$FQ9;aoZPO~H!bYU zb&ZeB>aM#bGh_UY49sB&z`ojR>va4xupVO=?-E^FQ51caFiTNZhgmJJya+LWEy^s@ zz4PPC(^k=yrT4?>fomhEw#CzCS>pbLivucqk5&B8VSly&jz4@@&pwF2{=9$aR5GnR zL!HVo+MTroVrH3K*XWRpewss|E$mc>V`4z2=Wg00Ei5cVlm04gcMQ=9aOBo}lOKS1 z@s1a|0z{=M&F%erKy&ZN#C%<2gMvOGlA%dj296(g%GCEDAv5V#SbNQgje@UFZi&O1 zmppb%z7)Xmvm@Zhoij|-|5hR_rfGM%^ys{D)L2s^<$bnA$}sMy4*xyqIkn5_mT^O^ z7+j}ejg;n>@hYm{DKbGs3+P$;DZ-K$Nq_?-Wnc@}Aj5slh@_%g`R@2#PMCqyz~_cm z^JxVfudijdqb**|F4xre6m{}+HFf-S6;%_~cex|%2FjGU+Z_W#>oJ*}w8VJ)zI`Lg z{Bp`uV_$%Iy{@U?zEri*o7=B(L92+$PNcGum9{jOb~>D0NAzY~GPYvwTZI*i+?pQ9 zyIu4zOA*9@xNlTsi4sUy-Jm&OZ_hP5(zV$ z+#tZ0n*_-_PS|DEH>|cSJ7ASX-bH5nO+*;s2O$R5ljman#dSy!-Ms@fF5cb>b9h0a zofa9+CA8jOdwY8=`%MW3yYuc@+(X$Ve8TUUZ1znzbl|l_pH-Y+CIpW@=ExbRAf&^$ zt;6;an*{@Y(cuERRz;xE3l~byJZi z*>q=p6M%PFCQW zZk7u0sG?d|KnCHWpTZt{IYGFZoBC2!a5Oynkz-`gU$2sxl^BOB6<;AJ_%aIrj>HeE zGA{&&I1^PV$@)WO%V!v5z9}^?74LLc;!T`bQd$uV-p86WcuBCF#IK9VZphG28U=<) p{A$Sgt6jx%EjJDkF9Hw@lIEu_Hr)B)XW#Du8L8`1ZZ21s{RhqP9ZCQI literal 0 HcmV?d00001 diff --git a/resources/sketch.png b/resources/sketch.png index 683ec72689f7ce0dcf98a2440e8a28fa0e1cefe2..f2964c744f94c68e79bfac572cfc1f6d974d018d 100644 GIT binary patch delta 572 zcmV-C0>k}|1JneNBYyx1a7bBm000XU000XU0RWnu7ytkO1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-%1J~)RCwBA z{Qv(y12q9a05LI882|(j*g!r$zW*Rh4FdrJhy|Hr89NVd=zsCWNsQze2oOME13!QM zENKxl_xXt>$w5HweIWi|$-scs#mE-HeD&$mC%70u0I{H{mxR(EfQDNE>GweV1H~6u zEMjD2lmO`gM(_`S0Ahf~G6xVF0A2YXqK82Nh&7;WM>K2+l~aJK4+LUQAeI1`1rR`B z7lKR%+VTQwA%DnKF!l$iWyk=;7eo>V`RX}L5+Hz(z5D@63qqa$0?A-x?|}^Z01b0c zut>nd9V8DBK=5?P%gg)y>c#??3pjAaBFHyT%aDEZ0vvuo01!af5;g}3sYDQJD9m>Z z009Iy5R`PZ{U?B!0wfp+vit|kbszu`K;T%0#xy7_0)L?~rvMYjhGA-;v5uk^Ab^FW@z9ObRBv+1qdJ%o1uy{pe~TW<~m^H{Rd&B^vHoM4-i01=rM>CzybtZDS#1v zKmZUx7%sr&N)R6=2F)Fj*uokhfEckAu+Y4z2sGdrObnQaIiaos%R$5LJW`qj1AqX+ zWgrJsqcs3hz{9c}15(=ifbM000Aj(F8<6t0BvOpxGzbO&0t^6dh7Ie7pz`?u0000< KMNUMnLSTYjTi1sG delta 372 zcmV-)0gL|B1daocBYy!^Nklhv&+TXa7;Fv1JX;uh_Y%}~39JvP;~(#(vyPlMJ}+2|~80RWrV&0^hAC<`fw2zk=Y z_HAqX?G5da-R)Z{y<=lS566Q8H5Ku=Tno;jETpLW6qm1yH-wPNAW)T!KE3T0O6&uD zD!sr7W-6kHoNawRl}^eK(9jT5+B`BSqTnDyK%YO)0Pcyq3N?f(n?J!++34!Kn%|k( zZ+ZG-rV7E#9-9W8GKV`z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZX;ILN#2p|?vY=OM-`^OisVgLUBXJBFHVfX{2fBpXp#Qzw+{|80{ zko}W^mEj-b4+bXYe+*yWJz@Cw7iieuKMbsFoG`bj00a=&z)v6FGq7;*Lc9tz===BI zkl6hV34cG3_kRBV!|>W^QLhyaDv-`@~}zy|*Q!SD|het&-h&HM`%g8~VF0Al&_R*!jSb1PSz?5QC5n1cuqKZyy-`1Ao2yALvRJgqIlr0*K}F=g+`^26~5) zi{Urpe_$8^BjC+5utA`}hPei02!sZS|7KujVPgO#3lIdUfdPO3VtV)PoxzqycVO!O z35=MpK>QgP<4j#=E009JZFE=#nczghH4M;%Ky9n$`xL09@0TcM6lj~sKL^f;( zhz1BCL zozf%Z00lRNcG2QSnM=6nA&QVJ1m7Z%E_7lie{4&gU6_|oetGjJpx~n8>arY|v$H`% z{(|7|;1QZ9AGN7z5ETG+Wf|R!YIr?EK+y!%;7P>tZHb6@uz%mfUt%tOd>51LGVI!x zvHra%={EJyQx7ZY^3Ug1#9ZH(DaQ{Hi>C!@6d$ZW?xm(ttx2;K4A`|TJa9UR8dtV0 z;dBxKpt(X0s_OS}mTZ_#qO!1UxSCnAIe@C{b&uxi|8js~o_tV{pG9ZMhT!}bK0W<* z+qk6j$2kCl{(pd8zjv9lEFyHIgBbBayRtv_uPL1v0ds(BM{oJQEaJNuXgSNr50;n+ z!~T#k42f^!pw?Lt;pO#(bel4MsHb(1s|~v$(iKDmXuhDZYg=Ty4BaVdmZG_$svaap z=!HF`dqCX<(Fi(JRmpZ4z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZZ5J zMvw~`8ByhPb92EiQgKda@GS6!i!W|k&G6&*UxuS|3mLwA`NDAN(j^Ro0RjlaK#;4{ z-Ln`NfJXiW%KiQOkHNnrfMHq78n9tMe*I<-UU{kOf zBn>wdAb{YJ^5e%3ux6O=L9PU0kij4TG6ZZW(2%b`{(k^n_?zMHukQ^1{``U&VF1Jz z00Ic?LKhd8|7yOK;4lJd0@?iW;|GQhAKo*(fBz1w`rX?%3~%4OW_a`Z6~l+O&l&#w z_yWXV8UFnI%3zi>1*GH%5K90A5ZHy^zI_9S$*&)uA&~)e850{1!|(q>kR!%;kc|fl+ z{%838{Wrt!KcEPJ7}&QkgHYlJQ9A$v2y7rIP5ou&X88L4EjV^Tn30VS96?i-W;3J& zb~60^{S%0PfWz(YFJO3odBgDUFVMyR{xWR3wttC1?ZJJJQ4;_H2yP%Kp#L&*G5i6# z4&=@6Z(cAg*xJAl?NrS0@9kr-f&V~;{(;a;ENl#nK*+$z#Ne;x&%p3t0@$Sh0R)be zmoHx$Y;E=e8#-}uCeXWIz=p-US22Ji9T={Rpga%5pj7bl8^pChS6|--HtYb1008t8U`{DV%Ys7OJT0N1H@|p0th)TD+6%|5O)|x zb-=v?b`>yrfL!<=7zwb50D1kv@s%*czJEZ|;TnJdLN<^an%X^pxCSJk>0OA32$0J_ zhW-5uGYHwR3n1TtXn+7hFKv(w1<^h@lHCEMaDy8LO40xUgkHdYg-XB!8I+xXmD% JPDHLkV1hYS*JuC$ delta 486 zcmV%0+BYy$LNkl?0+dEoQJ(*=mQn50li}N zUU+HPtT#?XJg{H#2&@afdVfW6D9E;1a}=YOGG_U6?mDY^YQa1?(bJ*+pN`H-J5OMZDh`tUEAY&<11XGJK|$<4Ze*G z%g#sYm_@qdOMi5M1Act_&aAXPP@zfEJ&uw%GB}P6-BGwmcc@nC@-E@saeaF0P_Z)3 z0ZF>U0n2nxa;C&MG9-6?#H(!+M;AwEc?Nef5n&<|M2ip1o-z-r2L8;hI?)2U0(-!4 z9;(On1_gt&Dvpc~6JZw22&MtyJXAdiBErM(2lD5f>tCCGyR^?tLBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZVp8{}}%K`_J&}&p(D=zyC7)0OF4yKmPyn?? zr2qj055pfnelYw5DuDSOt2mM1Pv|xN+i2JDLyfeDXf}E9XxDfxZ0o>sN*kAKo#ra`FKq7wA>S{|vvs{|3hF zUxtYl$qfG(zA;Rx3}<+)#?SEe-#>=0|Nk+32L{Ivpih2-QUcJ76sWfW0tjp%C{6uk z=4SZ%{w*Zk0Wl*RA2{ryDSz{1AG zz_6hmWRwIz0Kp9e1@vE_m;L}<2MiU4?{8iJ!{#T$-`~F&VhZYj^kas9zkz(97>H(K zVPjwfLIy@Auq7}65J2ECeEIUF!PaIku%X|9vHkn|7hv*X0&4(A6EF!eg3=KTgHplI zZ+{Ti{{F#mecJ?(&;bwu5J0eG^97V&|NQt0aTPErfE51w{R8a1zep~F#45zA|AAqN z1V9P=1wa775;iEM+W_$ni`1E5!(g_94FeejG7y+N{{8(8Gz?@Q#IXBEmcm?j2Z+}I z1Q0CieT52CoR|$P5P*ikFgWpo4gLW&6n~QL{sSWf$*?a_{dWKY2)S_JhNgB8Ag%!k zXnGeSBH}N^kpF-GGCVlG66Q^qVHZHY1JM8hgkIVp8w#R*a1?t7kirda7|5pp0fb&2 zeuYZF0~wUIpcx+{0-)YJ0y7LG0T4hKEZwL52VT002ovPDHLkV1kgw(8T}% delta 426 zcmV;b0agC52*U%ABYy#kNklTp2 zpj9~HFUq(723DZy;>$9{VytcHdrFh@iD>!MeB%OH;M*}JuYU`6oc5;ANV8(Qs3J};jNbqig8kFrJEM* zfYzvku+6{^Gz?HaAVk}V4JaT0mtCa$jD-RqXF9sZX(Jz@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ-bxA})RCwBA{Qv(y12q9a z05LI882|(j11=XbF)@+lbbtV2!ey9IY%k1EZc+>c2p|j>nt#OigAD;024!25VkkfW zp%@4=42boCI2(v(L&cPdH4h+wuz6Vph$Vpd1rXnXib)XbN`L@@yAa7G!BB6CL;3Ec zxDp_MSYV8Ei;H0{VSu{sB@{Ctxe_G)6`z3s0mOtBt4E-kULdJ?fn=Zrp(F+nKrktizvBnL}k009Jx6rO+o{v{x}f(K3C7nnM9%YgcLK*0soZvYTL zOh_6)F?su(DOVvOaTIjg^V&3WWW(5gYF}=d;kCd delta 219 zcmV<103`qa1O5S!D}N5d000id0mpBsWB>pFut`KgRCt{2le-OoFbqUJd}hcN&^et` z!UkE#6bNJ+8^Wigu!Mx}cM?XGRCFwO0B$Cz5?{KL|00*_uq$_-$W$IAb*hKRo$Dk>r38_? zD7Kd>1bSD(F30WM3ifRU_iPn`3p;GNXDnnG2c7EnTXmqS^Cv(HRTVu2cE9Dfzy;E# VnbG7$Gr|A>002ovPDHLkV1f@uUS0qI diff --git a/resources/subblock.png b/resources/subblock.png index 6c75aa4bf06b4fa25aec8b30f2d5ee34331fc1ac..528fe308a45b25256eb4a6d9035120708837d3d7 100755 GIT binary patch delta 1064 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 Y0CprBVu&PUJOBUy07*qoM6N<$f^Qs`a{vGU delta 342 zcmV-c0jd7W2k-)rBYy!mNkl@C#0cnT3gAAIP`Qs?hFlA5Mz!JSZ&(&U@@r!$Etr?*_Pk%B7RktYcP)@% z#u(~;%xXEyuTe2?_uE|c6e*=DBr|ODa|i|nnC!cpFLb?KDSykdmk1v+#WRud0&Sri3d4aGs10~X?uv(xk zzbPyT6qqlkt$@fOWaDp(e5~=n?6qx`og$HSOYddmOnBGha8otDm)JC@(14(rk& zbto_t^l&gFtxvTJY?><@rV~y5LBE(C1R5Q^iFOLvD{MR&M@|lLYs5)h^k&Fn6_ZL7 o&8Kt!^;LM~fjJoAz@;j(q!3lK=n!AY({UO#lFT zB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;$4Nv%RCwB~l*>z$Q5eR5 z6OOC?fC-0?v>OqWdxHoHDwHY8>?Rh8X+(rUDc!S7E3z=cvVXFKY86QkZ3Y|Ud z-cFNr6-igodOOYPqL1u9T+fP`ALw}Cl5%~tpBx4j0^>uV8yKu4i7njA{WBZLD{aOw zNYc|JJ&j?IywYawwXY|hIEv@HXg`hd(~LGY1Zr)u_N5>8}z?5YzJn7oZh2G4(1pPyD26kwFb=ahp;HHG#dk+2@ z2yn4C%JS(Rlgiq7bheW2x4G=tIkLZF=jl*#!?v0+Z~c?xX{*}k>#X{v%->ZAR3;Of zhaKygyz&%J&kaW-!0I4tZB#(u3D#(=(PPIZ<$q}w#XoWNMHDYxjjqXIX@Sp_>P%%5fP@ApTGnzM*E1-0KB@sn}X84S+YcI24oas4bI&* z1_lO>1Dzu-mmNd7gP6d>Xb&+4fQj?#Q0`Fnpu}RWMlx@BY?t3$ug6-8wH6WKZ$92g xBrK8*bR1_kPyx*PFF!Vr1YZ6l>m`upFuSrBfRCt`#ltBu^AP`0W(S=HmkVTkP z!R*F`Fq?pv$c27a387T0X=v%<;V|H1#!&$Rm-1)AGm3Y@+qm*Ju5`}raR~s_sI+9v zOJ-5XLza~s0Lml`bD$+F3%5<1q?Yr8r%XbP`bA++%T21?l4{N@z Un})>G-v9sr07*qoM6N<$f;CHM{r~^~ diff --git a/resources/supressface.png b/resources/supressface.png index 9ab62f9a0367d8917269f124cfca463203e8e6c4..9bc4e71f06ba1eb0bd7d5ece67f99a2807da531e 100644 GIT binary patch delta 937 zcmV;a16KU-0=@^3BYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZOp?fie)k00!t1Q6W7pFe*xfMQ%Xq>@1L*bNKt9NI zpaikI-3M&=pC3TOetiQP_zlHCfB=GrA;@(afej3YX6J#!34$Tv_8sW$pFo4RH+wMH z6s`rU|NHwV!@u9Z82E;05KuE@YkQe47!m$3BsQ<_irS_{s0a74fpcj-#;)61PCCMNcr{q zA20$y;q?!gT>gL!gJ}l23}oP+pWh)4`0*JSDSzL=h9U!i0D>C`N(x_p{st#zQ1~5~ z5XE4cJQeJvyVfX>er~5m77%Vg9 zGJrBC2%E(BGn`#i49eIH3@`(LVZaE4clXZ&@eaVu0SF+tfuM~38<@5Z_69MSr%Yq` z{eSHv82^IOx@C#0cnT3gAAIP`Qs?hFlA5Mz!JSZ&(&U@@r!$Etr?*_Pk%B7RktYcP)@% z#u(~;%xXEyuTe2?_uE|c6e*=DBr|ODa|i|nnC!cpFLb?KDSykdmk1v+#WRud0&Sri3d4aGs10~X?uv(xk zzbPyT6qqlkt$@fOWaDp(e5~=n?6qx`og$HSOYddmOnBGha8otDm)JC@(14(rk& zbto_t^l&gFtxvTJY?><@rV~y5LBE(C1R5Q^iFOLvD{MR&M@|lLYs5)h^k&Fn6_ZL7 o&8Kt!^;LM~fjJoAz@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZU%g%0_UA@9&ckH7@BjbDj~@)DS2QyG`t=JOKA%5-X88K`E13W1 z&mV9Yf&hsB<;xca^PCl6!~XpIiV|c10R%Si=g*%E`hQ_f;PCnhbm7Mj?-+hFaxwe> zdi^($4|W|iG5i6l+1=*F@aG56uwUPR27W^^5FmiSVF+>^D9k43*n`6ef+6Ad9Vq_u zHw5qN@@M${`!^(Ve*a|n_xl&azdyfF3pn z%GwzWM}PZ+7_1A|GW`4d2Q2pgKQI~n`wPa%03d)^VBrFaj9)WL^&J=q-yxCn<1;W) zzJm=#1^@vBb|EMkeEs>G;nR1B?LWSMV>mW3ltDMLi{ZqSNQSR(9)ZQbym`p*^(}<` z?Zb11?;l?>{QU9`#Xx`n0=p2D=DvLY1GMo6LvCgz!^Oqf4EiyBK=1u!&;uHJX?Yn# z)_=cNpc8>Eg+&4|JQ#uS&i;8I-T|0_009Ix5R}P(1Jl*F_s6L<0m6+(0slJ`BTv_$xpF!3qZhAWneN z!~zV%K!N}P#DXMwheQ{G!t4mLVITkyKrk0ssL908~66iNnT% Q1poj507*qoM6N<$f-mvH0RR91 delta 337 zcmV-X0j~b{2kQcmBYy!hNklfz0v(~r##O~3V)SNy)sc^1)7Uy*NjGD zKw)5;_`DpgmOl$t!&(&VVOe35t*8Y;0lcRMAQs=4v2V7pp2Lk$7%OYYX#;gmASs1y zU|yhx#f~C02Cju=*haNY`*_z`Kbuio6jYd@%Cgex8<|ypcM*!0?ou~UpTF(i-*y^? z10C{^(0<=nKuU`X!G!gq9`y%(nJWl1I(ifBz@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ;R7pfZRCwBA zU;u)vW@i5xpa7YT58%=R5I~Hi7=jOIpE@N7q<#Pd5V8%HK!0oiWjlh{K&*fZBdbHw zF98rhEJ&6}Ky33v#;=up^|1oShF^l2v|36^<-~YcE)}NS(#Qy{4 z{{f1_$v%YXj-Vfg#^FI+>sa}}6gxVH`HyQbF`jw3>Hn`^zo3EogW>0opA5f${UI(={{90S0`e8ewg3M8V*m&smY={_ z`ttEB!gFBC5mGVu5BKVXA^5kSts%*@095I~HIii-b127m-1692)N t9KguP$N&&PjL002ovPDHLkV1k&GHWB~; delta 361 zcmV-v0ha#W1%m^SBYy!(NklRumzh;V(_oCdIIVnz)BC9jyMGS{whSVg*s_7PVc9iP z)Idrp+}Sn5ihF_5mk^N=V8;M=aVkF4i!6bek$q+W0I3C)uORgpumi7r^#`+z{oCHK z4N$g>l+s=v{p=K`J;I$Gm;)^SyZzj>^krBqp#k880WqU^?jm%kQs^2GYj!vu9@ZR! z_JL1eWC@fIN@8E4xEGLGz?QLn*$zTCQ?RxH5fTj;QZfaL84wW|;qU^%fFT)#>of{m zq74)#|ISrpJq&2Iueg;pum(s(AOzqV7%;cnEYSZO>=XS0+HS(NrmNtJ00000NkvXX Hu0mjfaXz2G diff --git a/resources/torus.png b/resources/torus.png index b4585cdb86d4e7e64a9992ce3275d469ad5fb661..af76fc00c1367863c65397f9d8108c04caac744b 100644 GIT binary patch delta 1129 zcmV-v1eW{21N{h)BYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ<^GQTORCwBA z{Qv(y12q9a05Rf{C@(Mn|L4yihF`yaf$`6uKN-G%|IYCB>wi~i=O4qLzyBEi{`=4H3&=Kq{rdlpA3qo_Uc885FhBsI2ox0+{a18I zX88K!FT>~WzZgD$`_1tE*I$M&pWZRBaS1Rm0#!3JF@g>L3$$Qwe-y*BXU}+mTED`~ z00Z{EIV`1$26!{6UO z7=Hiw!oa~N%D~FW3v?+z&`?&OOPLvd0}TWP%ieZRkbf~?LjeK^9ELy}7`^~q_U`i! zhUf3UGrWEGk>UG?7YwHtv z9mD$%?-<^G{0?;8XNJGPSUom95v1qekJNe(~-EkJw(h+n{T zn46nlQ1q#0`1}Xt-R}&)zkg=<`tAwb+W-N?@_*{pD~50XI2pdYdd~03uXpTVq<1u1I8pX11~2l0}l{0{rSSc$s@q<2bicoegDny0vK^0Uq5B| z_J8&f!;g=z7;f&G1`DDK00G1T4JU@bz`*?j%-2jn!~XyK$MBtz1DuFKS^Xa{Eq?v` z1Dwd;fB6Y^)%W*L!G`_%`T^!TkU1{^0tn_iGTe!Q2fF1RWR3qB5w^q0KsyKG7yIVafeY< z2hdgjplSX;nEv(sBLfR72g9FV-x>Y@6Z!9NpMZvcVR&?EJ#uOQMcx{K0D>9F4NaIH zKwJY7(DEq;di@W>zrVo30caq|rJzI%$~litu7!CMW*8_*?EujL0fbyQAR7vzePZww zdk2uh4Q?1H>j4B1a`E*QDhLl?P%?n#QFH*4zXSE^1z6z#5J1=pN^Yn@Do~e7U{Uh| vYRDZZ8(w??1P~)0Z*ddh!msEO009O7)dj%qN9-@j00000NkvXXu0mjf<@5*- delta 423 zcmV;Y0a*V12*3l7BYy#hNkl15JsPZiV>(-gA4l#x`s#&;MS1Jq%b*w z*;4ojIY2<^;v&IKjIQBR1hhrKTL_dw|MDsjNRw$)%ljBq|Yfzsh%k{tREtR3Kc;Z41j}BD?pQ*9Q=v3N%jePrvXS`QWoGp!fd@)k!XnS&v+S;lU5h0ME17;r?@m=&Yq!*3y);wRp zA1(Ir{a6}fSl_QF!DCRPZaH6$T&@!m3h8r7ZgL)7i#-B~FU-^o39Hq*dj8odE3LJd zF9QYSCdU>QYpoN64=Pmc^K<=AoZySSw7EcnD^Qc01R##Vw&*FWUrry?#5b)irT}@D RqB;No002ovPDHLkV1mEH#o+(| diff --git a/resources/torusdxyz.png b/resources/torusdxyz.png index 8b6c79b993dd0adeb853e8bad42eecefacca55a6..a927cbc374b7304df35a79e9a6ad4d4ed45ba6b2 100755 GIT binary patch delta 1156 zcmV-~1bh4V1DFYrBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ=4oO5oRCwBA z`2YVu10j4(Qu04B>OdGEfS4E=85sy+5Fkb!2m=HVL^T#rUVmQx|IeR449Uxu!NnTw z>=?d&{mQUq%NCsa00M{+mqGG&Nen-K|7G|A#KA>g3`^QKG5r1apW)Y^e+{G z@q^*w#fupF0Ro5xnNw6$^k2q0j^XQ%zYH%wd}sLl?Ki{sUw^@JPv3rL0QsJoiIG7w zyqn?g-+v6RUw=pafA;Jd4^a9m%nX14VuCU9^78)60bTXs>u-h^@4qqJfANLk#*+^W zx1YQL%RhYap5fWsFAQ%#{RCS02k7#D4Ca}O7`V8&z5u1UVdek?5ZJ)<^z{Go4yg>E zfG&CsblIa_%vc>ex7!`pWsfd;%_IK3bbVy&bk!^znhV5URK28LhE zEI_aSVE_g%!{6UOVU9BZ;tK!)#N_Yq|6jqifZ_GqHw>>{zh-#x@;SrrAD>}{9e`pu z`%qsH1AhxM6T|l}?-;&)e97?b!!uAi1<4-)VhMl%VtM!O9mDH4Zy5eCa|1Cm11l#B z!{LcuFatndc>!`5P?H19DXw!98Fv5shmmA}YVH685Tk~M#(%xY4hBXxeui&9|3EM> zypB�y>MDyq?X{@ehj$=uxhf}&3~!{z54w|NLUOxoa9odICTIffA-ZC@}4d*D)|LF@y3L12YR7!=(9%46TLB z8Gm>f&^U{G|B|JV5UQg&6+*0;avcKfsCn{g+8_Z(bcj7)`bfI$a+?|7jSc7k@wo!1e9TaNFeTob0{{vcS*hqDgw2ai5AK`|<7jQBhoAtJYHUdG)^A zC@e^u!z{?}d^SH)7#!PDqlkJ{?Z-AJ5fLUb>43#^LGqz#lP?dyP$QSfwUjSjBoGCC zXchKpx99ry=48(eft(cnp$AxX>5KwCRW*5So6f zUMr}ftV&F6Fvbjmh(J%ZzkVlQx#Fd;#uyKNGjD!wB9k7-&5b^r4s7Z`VI)0}v%g(t Vya4!7M{fWC002ovPDHLkV1o5~>e2uJ diff --git a/resources/toruspointvector.png b/resources/toruspointvector.png index 843d71ad904169c58c9907beee0d55e60c150b9e..138b52042d4fde5102e7492ebd13262a10c2b3c7 100644 GIT binary patch delta 1145 zcmV-<1cv+V1C0rgBYyx1a7bBm000XT000XT0n*)m`~Uy|1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZ=14%?dRCwBA z{Qv(y12q9a05LI882|(jBQA;Z^78+G{`_J1_3IZy=9)DOU4QQG4Bx+hXZZT{E5nv8 zTX5ga>!=*`|m%)uRs47%wNC$|KrCGhKm<3Vi*h% zKqv+l6&3xLv5sT-`r|Ld%MaffK7aeo@cq|cu-wzP-x(Nz+L@Uc88pMY8UFtL$ME`f z)c80O{W{g<;#V)*d&H^Ynf-x%({_`-1G$p?npPu_s#AHI0c z@a*juhPR)70xkRlbUDzanTr^>xVXLmrMY3|00a=&!1VO=|MCv044;55dJS~hqgS69 zo;-iW@bTpXhA*$~gB5=N@SNe>=l4K0KN!CM{LSzSXn){OAhyh33zCK#3J^eGFMs>? zjp57pKMe0a|6q9j{yW3lcOQWUykI!JAP-`#q$I=1*%@G_L&*k)U(75(um52H1@GVA zKVgnD0OAV(0mSI<@Bd#fxQ^ldhj$EbKYnL;^5!$cUtr80o1O?#bO1y=`77Wc!~6lv zW@2J;@PDY;0d(yfU<&xn@aN}Opco6oiCJkNX%&C~VtV)P9mDH4Zy0|3=VbW9%)`LS zDTr*?7m#5vLqRV1_wV1Fi*pkhc=$vZ*f{wan3>raet-K2bEOJE05QFO{Tk?1NR0jf z#wa5&DlIeTfqe%u0O&Fg5C=$uytKgF+&slLV}CjWD1ZI^{hi_W_sCmA0J=A37nOlH1c*C~qB?-C`UfpH{)6dX-#;?2uyQc``SqRQ&yO!a zgFXQb|HAO-)OvVo0OBJc0|5dEW*|2-VS-|`1|*>6Qw;R_ABKN_{{mz3BiN;&L~{K1 z_Ya0gC)dKf2{Y^h$cG>rAb^ld3uHq>zh$VoS z2aAC)`8!arUVxQ200D%ppyY-cqylxR1Qs>yL2J{)=ITS(zO{rG<$q{8uE?dp;s zr!GHs7U*G@LT7=>p~7{}qW5WmD!-orkAVTC{Q9TeY_o1(sDJG3kO_DnsBj(RjD`L} zW$y6vfQXRafD{pn9p?Ri|!Of?kbaA_72~q@+p8*SKc)*5{UYji^H#jGsdv~ zv_1?=0}zuMQ%w~)mMii*$X!S0000< KMNUMnLSTZSvEnEI diff --git a/resources/translation.png b/resources/translation.png index 78e6f9012b78ce543e1556cfdbd55460ef3bb485..7f114323183957d699cf185a4a1c95b6131b7036 100644 GIT binary patch delta 766 zcmV004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0007vNklA8 zjN(AUUg$@5GW`1Um*M-bzYNmS(*K`5d&UFw?N@*R!t26w#>W5816}d=>sJO41_A>k zBcm4@A*~GGe*R|o`r{A7Hz3wcn#;h#!t#ZYk&zo9fbhD|_}n?3(;6CIKy1?+H!6UX z&D*zc89sjf#eeYo?>~lLzyASU_=n-o&+jlT1^@ws*M%n)6utlr3W2!}M1TzZ05tH! zmtPE@zkFr*_4OmeuWuh2ppk0>5I`(=4Et~K@Sy}qk;UW36QIHuzI^$@@Z%dW2!8(n z;-3uv{`>^fP#^&iKv)d~dJ|+A50I$>#2_ypflA#05r4nFeF7Tt9cb7uApXtp@9%H8 zUVs1sI~5t9H8BCXog0Ytf!G~Ni$gI;{699#%*+g;`vC$7#f2B0ocOVAg2FNZ7N#)p_wQdY4G=(#$T$$?pIG1UB&V=g$mZzW-+U^zAn= z7Xb0MU%;gC1)lmzF%%$xzy^N$^oilq_g~;F^>_K(51?V68Girx3{U;gFe3^81Q0k3 z-@SVWHVl*}|NQ*Q@aGpW(E@VdL_t(|oUN2G3WG2hg004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0008hNkltfHfPYxXafOSE%YWUl7KUHH z|1y02@rU8ntEm4^pFZUQN__3PL&S79-Vfg}- z<^~8Ll3n=q>sPQL-+w_|2V(#F@eL+z01!YV8~EwdCx%boeuEAA_VYKxpC4Zt{`~yP z0F7K5fB?eq@_%h(W4zJ+?%g|v_g{W8eEIT);n$aU48Oj802=xkCM^LFKo~A$WM>Ca z;y?@vldtIVZ{NOU`0@1_ct}aN>9pqx5VIX$!ISC06oeg!NGL%Ng$^ZcbH_*Ys;eXzY zWB>2Dx_|zU>E8ceN=oWK)G$y41p{$E5H~|L;sgKz1opCpg~fmE&{l>YKmRiP115)W zzy!OOg@r-)=~Ixj3N*%#K=pjVXCOcTfzu%hJPFf}$X z1CNM{uL068@EHgYK;T%G2YSsUZ7#!ipbIO;009IxkdKe=ziIXgU>5oY&PIQKeFNej4Cj}Yg3{I;pt>EP7~CQ%dco)Q z>jbDP??7pk#19Za;4u9B`7^`sZyyfM5w5U+Rau5Gj4)bRj?h!4kFsw$u+a4CV@u=8I682Uk7^0e}Dl0JbJjxEr&6 Q(EtDd07*qoM6N<$f*VP9g#Z8m delta 369 zcmV-%0gnFN2A~6wBo78+OGiWi{{a60|De66laV19e+P6)O+^RP1QQ867B%3@&Hw-b zElET{RCt`FluK&EFc5~naor+87g^>MzC@RS9wc|jDtE{&LZOgNOSU~gPLYMdUKlJ$ zo9U*CZN-l$9T2t<^Zg^uLs0HFX?ZIGkp2g@-W)F5m1Mem-*q&o1+{-lF|Z4CnUS<% z?eD#ofAm58{v=2(aFRxN%2EJ-&G5>Pzz-w>=covWOhF!$v%u4>K+tB@p#EQjv(6em z(cZFAK}4H(ZNITq1Vy%QTP^Z}V}9)TUI9axhlGhUslh&5=FG=|Aw>Z>*?;b%T5+_ni@cbGhS?tl zmQ{(X9L~AXsM^rcdFY&@b~WbP^hOgxts+qawlCve#I`5)YMI4wM}>X??R}hi7LRa4 P00000NkvXXu0mjfg%+;) diff --git a/resources/translationPoints.png b/resources/translationPoints.png index 9474b113296c3487c5788ef94fa1bedf27990056..eb02035428448bffea8783e6177ff315e22e4647 100644 GIT binary patch delta 744 zcmV004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0007ZNklpvVCP5DOv0Zhz_P|7ZB~hvAO3^?#M4 zM|prkUmYAA{_BOeG5r4fkKy~zzYMQmNBw{L^eI>lAb^+%8K`#gBG3PyKN*0AB>=ew zCMG8THA7k$zW@5m@b$+ZApXsulQ@Tgg@xq{P@WqgfLMqK6&|(Am%)aCIG;X!V)*?1 zH^Z;r{}_G%4S)Ui>kq^4AKzeV4FCd&7z05z-+{94eE9Hz;nUaO3_pJVVfgjyH^bjw z-x>b={0fT;8-M^J#=x&Yd;x0cm-p}AGkpH`gW=DwZ$QI-fDQcj=O;|91V8{`gyC%? zqyIPzeF>s}|NhPJ``br`-(P|F+Xsf<-#-Jr{1vVcAb)@uK~804WQ6z!7?b~h{bKm{ z{X2vDl`A|@gD_GWHg7O9Gc)}C`*#9B0HGKNilsZ2mS0qkA5VaK@d6e@^??{3Noe2# zKmehKArI6rnBqHF3`CA3bZ`eCfKXg$4fOK2Z{HZceEGs~`}S=c94_Pr1wP1fY$*aD zfZzs#Qh&cLF!g```G?^PFv0HZ3}yhvD6VkC2>=2J9LpBKys91A3O4K;Fe`ln8fcil z1fKdyF%Tetzy^Z62+BsF9PsJeFQ5y50h7XKcC;3pDgE(6E1hf0I?d0t67uTmP|PVCo0a{m{fr6aWYy7Nmg3Nd3U9M6v?` a0t^7demwo2Q;PBc0000u3Emy%r+mJ z#vNS>f6p)#q-`#jMynl*mj%V4VEefp^e9nd=UF}&8vPuK yLqV!3-d#O;afRM{j{b;0jRd?U9F!m9Sn&&bW@+YhS;H&<0000004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0007nNkl56<=StVq06=|E8v<|Mm3rPz(SFAQoZ_x_{{8^q-NLnL%gsW*#6{ z+|JJKg>Po8NUDe%kZWz>i@H6&p>it0Ro5#pFwAhjQ*bky5jHGuM8jz1O`S% zMlUo%S{c6m{LS$7#~+4oK&+cImw|04bZd zZ{IR}{Q8UG_kZ7i48MN=1G?}J!=InuVOk6T0tl}QPbw&U0U8tna~+5P8TbKc;D;~2 z7(Rdb%JA#!M}}YDKEmR{1|WcNy6}X&{D1QY4tk0ttWs!fN0tb@l&dH*bOhSp|qeUOobqx_<*Aetr7{G~_$buwOv@o8jNz z-*CME0fdok&YGBj1h|1%ABf$dv^W%l#Q$T%%*@Onx*s5bP+WMy(eb~*{{1kQfxPZ-3u%0OY601HzX`1|)Sm<9+SMvw~`85v>X+yo2*0c9ZefT}|WcK`wi#XuVyoB!Xw zePaOO8-F)$@L(|vW+})*9xQTS00IbZpd-+`y5X%1KYspY`18X4Fw1wuz{aGePa0Z{TDb(eg5_XXm8kOhTlIv!&5&r%!mR20R&Dq@7}!w z8wSdge|~;t`11>xXn{Eamilo-09F7HKrApXgHr$RA72>$0u2RaE0okv0ssggn78nz oerRqX3IGHU3o)sm6aWxl0CPS-Fq7le$N&HU07*qoM6N<$f(2SgtpET3 delta 257 zcmV+c0sj7u2Au+sB!A>dL_t(|oUN2G3WG2hg004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0004zNkl!WXbjqabNQ-oV0k`+pVe^a(^P?A`5Bh@x0o z7>3NuotgXhoNJ-U8q56Pa^S*;b2w*|b7r3${Qt37EOO47loBF>_nu)GFvd{VHLKN% z<#IXNf%Ex1Uq5|7aePWlN)%-rgu*9qiLbAo(KHPJ#Rko0vwVF23DyUCmuQE$eN7*^ zJb%iqM=wy-tAA0a(`hb>f^YB7u-4Lb9ev*uW5ilZ(=?QiUlRIe7g}p6A3i5UC49eN za^oI_7m_H4LHPN4iZ>O>8ARj?I_DT%!bPF&E%_*6L;ACz;80bfZAq@%?P!eQ$VQw` zw4H@XK%+w?lKk)&8YB#C&UXM%RTX378GOXFEmFNhBzlrXkmwN+x*wlVNxQJFYbIS! z`{g6!+jqea5FMHV8Z4?xaqWca@-6H2dbEY!dz#N5IJ|j>U@DRykmS)6(d1E8eqFqw zuItg}e50H*Wm#qsK~+&za?ab4HuYb$h5Mvn&-@+$JBm7ZQYVtJ00000NkvXXu0mjf DiRn15&-Qr)@JF!qk?FS=$aT9kfWN2 hNXM>`L_l`n006j795fjsMuPwV002ovPDHLkV1k%%H4Fd% diff --git a/resources/tree_compound.png b/resources/tree_compound.png index 1dd78eb3f8d4706e9e6f6c85a3f29706bf996dba..08b0c2d933468a10d9ab626d4defad7ea076c133 100644 GIT binary patch delta 592 zcmV-W0004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0005sNklr6lz$Ynl;GD?njv-dq|3T9PcHCj_9B626L=1xc354?BOQZo7_F)a@Amy8Fbibeivo+DS?&5fRmK ew->mV{tf^<&OQV?bAN>Z0000gu!t-T4(5^GdP;-Twj0!{xp$<809|i zOk@HbRas7Wf8`uxLT!Buep?FZ5_I5`*YJG2XM|g?)Hr)%8;9nQGGAst)u#4LXMZmM;f*Mt3UMuX>40#ezLX! P00000NkvXXu0mjf-P}lU diff --git a/resources/tree_compsolid.png b/resources/tree_compsolid.png index 87ec8684f098413251ae0471c1a954043b50e0c8..39c2b2817962a74b7e4d2c578248d540990f21ee 100644 GIT binary patch delta 434 zcmV;j0Zsml2f+i78Gi-<0019IEztk~010qNS#tmY3ljhU3ljkVnw%H_000DMK}|sb z0I`mI`%#ks001CkNK#Dz0D2_=0Dyx40Qvs_0D$QL0Cg|`0P0`>06Lfe02gnPU&TfM z00B2iL_t(|+LV&9O2c3jg}*CtaxSRoDCq7|L{K+JH=%TJlYb7nIJmTQ@c{%^7YA1- zpFrP0y0nBsAt@nRTcWhTKgo5_NJxU>fxDgWaPQ%Ys*+W++0-bC2!eoqzt3PW!1sM2 zr@4B){zJA}EnTVBSlT*barYG0br}wad4@`*qK+{JfJURCNs`dLY2$ewyzW`npQKDpJ@3+S(4YN{SzYt{#-sA}mN`73qv_e%P5f5C--?5~zJTh?*` c{Et2d0L<#=s}HwY(*OVf07*qoM6N<$f@!L_j{pDw literal 908 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh3?wzC-F?i!z|0Wf6XJU0$dLwy2B09r|NkIz z6pV(zND2W~R?aA(e;G@H{DK)Ap4~_Ta;!XE978H@rTR7UGAM8){i!ceowDQ393>vc zw2xo(n6IfO6f){^dH8I6vHH`e>LfRAoO(gb6Mw< G&;$U;u`&Sw diff --git a/resources/tree_edge.png b/resources/tree_edge.png index df9741d768116f313858e987b615e1aa4e3cf567..f0fe7058fd3c86cc797be9e7edc1d6bbc543cfd8 100644 GIT binary patch delta 198 zcmZo+e8f0GrJl3EBeIx*fm;}a85w5Hkzin8U`coMb!1@J*jMvAa59jukn9oU%fL{j z%D~Xj%)s#TKahUOz))(y!0;-8fx&791A}<}r1+z5K(!H`E{-7;xAt7x$lGAR<8slM z`H<8Gj-J24jAC9g>a6KIcdPH*z&PvVqLVfkgf`pDUayu@aBzCK?sw;hzbtz$3VhMv x-LJu#y@EShqeU?5kld<6JfAMq{l99&kbmsP%ExoU8G)8Cc)I$ztaD0e0sxA-MO**? delta 103 zcmV-t0GR*c0fYgNBw$NPL_t(|oW0V!4FDhr1W<5wcF?_C2wOD#3rViItz|gwU zV?{`7i+!96&COTWLK&!{2%5-)F0x>VG?+p!Od|06Lfe02gnPU&TfM00A{gL_t(|+MJR* zj@v*G1&gZ<6c~Gry@}zIDDxG3NS{HOOv&PKIPBlF18F5Nf3!Mmpir+HZ^%qunRkH0 z;gI|Np51OoW@2WzI{;=zDTT}B!s&G4csw$W`8zAuQnyj(d8V$0M`GS->gX3}!L%52U6A>* z1*d6ZS`4*7e=Mlts6CC+D!N>;<+=q$1kpe|Sj1V@r?I=@vJlz`Z4dB`7w7Su)q|eM4q^#P{?e>ckpUGwEHeM*Hwx}{V`FQ3mN|XHtCeRj tIX}F7zu(zIIg4e2fNaZ@M=W2yD>G!i<&yqo$S=+S1fH&bF6*2UngC0=BLe^c diff --git a/resources/tree_group_edge.png b/resources/tree_group_edge.png index 214be938a476686730b611a414a7035efaafaabd..410c233ada26a03b579d86a69debbe6c3bd2c482 100644 GIT binary patch delta 267 zcmV+m0rdWX0;U3xB!3BTNLh0L01FcU01FcV0GgZ_00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0001-NklHLege706{R07*qoLVO0|RG)M`SSr1Gf+eGhVt|_XjA*UgGKN%6^4I zoR8V^Sh3oEpirNui(^Q|oZd+n1(_8&T;#>3>u{=jv9D;OW!X1oEU%uB!3BTNLh0L01FcU01FcV0GgZ_00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0005(NklA*)_;H~(voPcsnu%C&(D+RInFtFPU)_W?Y5%vj@P@(UIs7!jq3FCE~b5 zqQ{3shzTDPAqw7m0Ah?hN?ll35Un-VT8uGRYsvGRxw$#AEaUC_PlO-eI6ORjkh;9Q zEZ5i9Dy2l@-AAg^4XRTOsxBjcol&2zGW!0N(ntJg1b@K6!GYL`)EFb79AImXxkRE)MK2eq>zs|of7z_Y7K0a1X|ouSw|#N00000NkvXXu0mjfK<^l& delta 230 zcmeyy(!?}DrJgOx+ueoXKL{?^yL>VO0|RG)M`SSr1Gf+eGhVt|_XjA*UgGKN%6^4I zoR8JIPW^!>P^jP2#WAE}&fZBEc@Hb_xXcfHelqSY-_IoWUErN@C|=p^;{NPW{Z}(K+hb;I52in8&z9Snxo6#t^s6^~ e5ANRcjWO(9rfu|;%mYBTF?hQAxvX004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0005PNkl0ncBRwlsI`_}uO~qe zC_ofN|E*~@o2sgum%i_-@B4bT$3>(t4E6T2uX^zM`#)q;uh$pSXTtM5E!{lA7{MCh z-jny7+6;m~U4I(e2n{THMPZyxTg3>MXe;P&>mmTo*Cle>f%!;g=L zT-$re;KKm`cOJdt?c;r-C=vkYd7h3&BdoRj{QMN>93p~kYC#aF zn@*=BNy6pu7TLlEYlW-WOpf1QjyM^Om*9+*6{~JI9Dho&Sk!bjCYhXIjAfpUNs@$k z^oJ7!YlU3aElE)niQC-VRDgM!kj};=)-g|G(ljL=AA=Z#q0OU7B)Ek_MCpdFH7R-RnLp9tu1xVF&GS1m)zOex$x!Adqd-#BMd_Y z2*XgT)hwz4R4NtS-Q87yTCJvyMneJG?Y08^9RQZ>3&kjbvzq__002ovPDHLkV1g&Z B0Dk}g delta 232 zcmX@Z(!w-BrJgOx+ueoXKL{?^yL>VO0|RG)M`SSr1Gf+eGhVt|_XjA*UgGKN%6^4I zoR35NXW*yZK%t4AE{-7;bGA-8$lGeb;~XFGJkg-+!4W>5V@^NY)l?l9KKi5^Dzbdr znrjSJ)7~qk|0#^?6qn}UGt6YQSI_Wfc06mDct0_0ezlU=@3~z}>plE$T(G`Zz_;QI z!>sOQg3TxQtyOptbgTA2eQQ6r)S;C-c5V1KFEsd&)j93j+9LDi`=9M$SZKMkDE^h$ gxuX&5RqH?5tBNPi$004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0003aNkl4m zE{eg5l#|@$+}v}&dqo(A^gItmQHV56*=n_rWtq@g69Do&7fLBQj)U23CWgZy+wC^s z`#woxml};m>qatps2n1Dy&mx;W0$C+BuVHPW6(LhrmWS`^bT=y^~9PKc)7a}n+C15 zSX+O5ep?;2+kfq@P`NClCX+}0_O#ZNQp%O__B<`&y?-o9VL}K9l7HUO(Nos;TsRFE z2W}JljXGZMFMoogDEjxVqqCb*KTT80ZLg;_CC?bM8Fiav7=}Afj>lt4Yb}&g1c1R{ xz&MTx0R4WS-=RSeFp44qfKrO{`5d1E0N^nBbZhdpGYkL#002ovPDHLkV1ml3t6u;B delta 220 zcmV<203-jc1NZ@uB!32COGiWi{{a60|De66lK=n!32;bRa{vGf5&!@T5&_cPe*6Fc z00(qQO+^RP2p0|k6~>(?-T(jqg-Jv~RCt`7lF;#3q<&0zGkDvR6)kr|Dlq+!Ks(|Of=>hZ}L004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0002bNklD?n{#Xs%;-G^0KIiy?-3ch Qvj6}907*qoM6N<$f^rjuwg3PC delta 229 zcmVK({ diff --git a/resources/tree_shape.png b/resources/tree_shape.png index 0ece93b756c4e14ec4f1972d960d61c7ed74c84b..0aef4c5d582c11e3868a37c9ed9db38958fc9953 100644 GIT binary patch delta 258 zcmeBWpUgBtvYw5BfkECw_aczuEbxddW?I(3R2di=ni&{={s+=885l|p7#Ln9FfdrnU|pA>)84XC!$)5S5Q;?|rX zN4^6J9NKB?FPeXl`)lz2rJq#F8C7M)tjkf=0WB&uTdtKcG|coo;w7?D>x_@lCovUA zp{-$)T;9+9C-dD{KYm{Pewps~htIf#PW&oSt$#CD(lCkD{&DD!r&T33o%PeJQXfbp z?_BXps^>Vvk@M$^ik|H{Fgc^>4-4nXk`4a+Yz*HSUS@ANYgh93Jzopr E09j*TNdN!< literal 909 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh3?wzC-F?i!z|0Wf6XFWwGW`F4!)WS0ZF3(e3_V@_T-G@y GGywp~<1P09 diff --git a/resources/tree_shell.png b/resources/tree_shell.png index 59992de3660d815473929e2498b9915a4be6d6fb..5c467dd7054077b60137770f75c657d7e2940c4e 100644 GIT binary patch delta 504 zcmV004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0004qNklR^`3WB7t*urAP(!zFshuCeqrU}7cBKQlmvVRq^P_VSLkS(?eW+cv= z%tvP4uX*paSX{{JHaX?xK3wiOCsS2+(Y4Ei*=(jMB|-?aZA(>E7-LwiR+MFlh%lee zvn_Bso$8%~XK?p`&PAk)*v2zz9Q*Bt-|t?sSS&Jt!Cz=HndrTz&#^wRv5~S36t$zM z9bL2L^zF$71b>jJD#ypiIv5N{DPgUpsw#@2pePEQbEK5W^E~_KM{6zPqZ2|D!r3?W zo*WW4o*P|Dv<+wPU;W=4=Nz5uaWPT1mi}fWc#re})pWJ1P1A78Mx5`dHx_PtQm{yh zpmH^6jA7JxIv;83n%;awVn9`plu%V3AHC3QIK+JaKyjYu=W&!}$=;@=KK;z-!6EpT z6dbBTmLej;aQ`8{zP@3(TxJ&+z4uf004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0004zNkl!WXbjqabNQ-oV0k`+pVe^a(^P?A`5Bh@x0o z7>3NuotgXhoNJ-U8q56Pa^S*;b2w*|b7r3${Qt37EOO47loBF>_nu)GFvd{VHLKN% z<#IXNf%Ex1Uq5|7aePWlN)%-rgu*9qiLbAo(KHPJ#Rko0vwVF23DyUCmuQE$eN7*^ zJb%iqM=wy-tAA0a(`hb>f^YB7u-4Lb9ev*uW5ilZ(=?QiUlRIe7g}p6A3i5UC49eN za^oI_7m_H4LHPN4iZ>O>8ARj?I_DT%!bPF&E%_*6L;ACz;80bfZAq@%?P!eQ$VQw` zw4H@XK%+w?lKk)&8YB#C&UXM%RTX378GOXFEmFNhBzlrXkmwN+x*wlVNxQJFYbIS! z`{g6!+jqea5FMHV8Z4?xaqWca@-6H2dbEY!dz#N5IJ|j>U@DRykmS)6(d1E8eqFqw zuItg}e50H*Wm#qsK~+&za?ab4HuYb$h5Mvn&-@+$JBm7ZQYVtJ00000NkvXXu0mjf DiRn15&-Qr)@JF!qk?FS=$aT9kfWN2 hNXM>`L_l`n006j795fjsMuPwV002ovPDHLkV1k%%H4Fd% diff --git a/resources/tree_vertex.png b/resources/tree_vertex.png index 6a112b51df98fe072e86103b5d1fc6a4ccd8cc91..223235ff280af5a4651abdf2c062808f45a150c7 100644 GIT binary patch delta 179 zcmXTFz&Jsrp0mIsvY3H^TNs2H8D`CqU|?WiNq6*hWMJ6XSMxh?GLWy3>=ES4z)+>i zz|hdl!0_`wkbcR)P-?)y@G60U!DwQim+jv*DdlK%YvZ_jMm(AntY zP}{4wGWI|F^kB(}&Z6@_e>>>~IBC?EDlch04s^3(79|No!;R==~!QvoKR5e)zT ZGc#;avhZYIQmF>wd%F6$taD0e0sxbjJ~aRU delta 89 zcmV-f0H*)Y0e6rjQ$9&VK~#90V`TWxKo(#kPurl<*gX9bUf+{#BO`jKVza3>Q;!i- v>woOHdD^A_xa1iAQ`4!$fysgN@Ch>&U>cv9IQL;A9|QA=x9ymw};5 zm4Tt5nStTwe<1ymfuYoZf#FpG1B2BJ1_tr`N%2SBfNJACT^vIyZta(j59sVzj99f z2)cY?_VHgW=c+?f_nPZV2JI_6eRbsqEvA(H|6dt1EXXh2@>8R8C(teiPgg&ebxsLQ E0JuX<5&!@I delta 116 zcmV-)0E_?W0g(ZaByCtpL_t(|oMUA8&p;MnB2OCw0}BHK14HxlOE~SV&D3MWF7qFP zo2Om+4`U-^T;fD2!YWRz4H)92I1fb}tNV%3j7uZlfFZ|5viwL^sFD?r*f1lxi5vh# W7p_2j`v{K!0000z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;-$_J4RCwBA{Qv(y12q9a05LI882|(j1IUFqTxki! zi-6dM6te&V2%CYNK-|SIEb%|NcF})jT^o>O8WQ#cVrg6k0t65Xnph??3)?jNz#InO zq(%ltRvw0D&t5PHN^8x8S^4Gt3x;QR&N6&{`*aqNI~|BGAR7P>K#VZgF)}iWa`B12 zifr7=AgZ9t@aHcB!}ni61Aa0v`~xas0fsgQD+DtG*%x-rVmPp%fZ@-t?><27TVXB) z2q0twK~$EYtie>h&|U^UaW#hTpI$J0e0+i7&(CiREbQD2Y&^mY!b+A5g2LhqEX)iH zch7ERI55#?J5Zk&%s_wuLJvcbsTn|gMNGr#zkW#1e{K;4kmL&>eg?%qllI=j81GOw06mE8zEB*&h{r2BD zW;#fI7Z5Xp%mD}>^hg0oeg)#2KwSLy_m71Pzki5B`5@Q*f?CS;=;AQmjK{|{>DLm+++#N0sq4TwJh@gJy~KWsdr48Oj-Vfgm`2?JCd)QtmFRtzcsn`$o83RB7;W9AOGkXq$tfmb(4T93- z&)*CTAAbP-{oyUc=T~@O``!h%%Kmg$?9HM~uBvQB`W01z%K)ecw zOMut~h(%zz4j_Qga|$v5B^Og5Rs&*ov{V4{-diBP3&rn%_%FyTfB?d0AO{c&LX!g% zT3Y>sl$5^1A_Qa>KmajPyTk?vAgY(x009O7#HKIZQl!~300000NkvXXu0mjfr72_5 literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sK#ov=Pl)S*0|(O5(ij+Krlrkf zU;r{0c8fE|0x8ClAirP+hi5lHVvI@N?k=o9@?RbYa>PnpBT9nv(@M${i&7cVGt-O; z^3oNI^bGV2ZR7T309Dv~x;TbZ%t=mQU}j}wb7#{iVECBO(8;)tf!9FG&|rfFL+EA) z6N97`4y=4Uemp!~4sBgbS7OxF+1c3AYpNKu@|hn*9eH^jXcU8|tDnm{r-UW|1Q0o1 diff --git a/resources/vector.png b/resources/vector.png index 9a1a7e85a951160215e000b7b44b62a932e4ba63..1c01c13f495c4d53218d98c0992e2060a2dcd1c2 100644 GIT binary patch delta 412 zcmeBW+QvLVrJl3EBeIx*fm;ZK886+f`@_J%z>@Ch>&U>cv9IQL;A9|QA=x9ymw};5 zm4Tt5nStTwe<1ymfuYoZf#FpG1B2BJ1_tr`N%2SB7#J9JJY5_^DsCnH`TyUZ*_6?N z!LWg6$&rA`KmPqck;cd(aFXp155vU(GjW0LhKvdImJEzXTvm0T)6se2RwgQt!L-rl zN&;I0Lz2?r=`kK{=}elz8sDWm7&sJ)_U7;$aSbSAyV9Ca%)r#4!aVWN8Hua_L4j(A z!vZ;c4h(|13X>8S7;J8q;yPTw%*fQC!Msso8Ryf($r5P_Kxq?!{=|sOCJqb_O(%#P zPGDnV5vccL_B7=I$tIdkkb#JGHTwAY{67g1KFHf5$+l>rXQK*4Qu$12Pft&b!{L4Z zet*{&)~c84Sbuo4$V8A~MRCuVq{Ns`yE%Ml1DemE&=4`rm$YvRm z3X({_@2jEsn5v?!c6XO{_vgn)@Ga&I!jHk0L$N_H273(}Y%F#!f4wS?C85~!2`%Oq r>>2b>AQ*#zXXD;i2nLa#!%*A+{3MNj23P|u00000NkvXXu0mjfqhM$K diff --git a/resources/vector2points.png b/resources/vector2points.png index ff58a8ad4ed629d39d07434923c54ec57699a22a..2475d4a9819582b14446ca0e20791da2505d0ba8 100644 GIT binary patch delta 393 zcmV;40e1eC0;2004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0003QNkli|_X=bHZh$%GW-Gp!eC}MmA*1!kwp7Mry6T+d0@x|u%Ky4AWi-AoD-$jfYptGggqT2)A zqLiBuw1_bW9)EzsQq6!*19G<@vN5bNFM#%Za8B9S&t||Q@N8o?e9%xbvw#z@zikS* z7&Zk=g8c_fhK+$DqF2E#fg+;2<4Q$Dfu|(cs5xXJ()NA-YJ2DEPwj_!-}hV7<{+tV nsWdN@(we}ru}OYX0000{Y9BoRb}?QUxzV#!&4vFUze0Q8|$j|x@o`h&n0D{_v7UCplCt2@-7bp+UA z<+-!~BEozzN2Y=#(tVeNVycSP`l{XZRX;ah!H<};5pKLo4#m7+3^oiJY%JCcA8wVW zl2EMwhs`yL#rmLw0>Kz~j!k>MLNJJY9DI2K<(QIstZ4bV00000NkvXXu0mjfRKRf% diff --git a/resources/vectordxyz.png b/resources/vectordxyz.png index e37e015cbc3b3f2f3f9284ad9a6817b93d458e4a..034e6a1dc49541b567c36f9e352286fe17b474fd 100644 GIT binary patch delta 443 zcmV;s0Yv_y0@VYMB!3BTNLh0L01FZT01FZU(%pXi00004XF*Lt006O$eEU(80000W zV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F}0003?NklUZRfxGjwiuQh%+O*(^%W@ujKZ>N}m2 zSoviAlI=nWoOO%==XLYvXcrkiB~Y9bSQ&J1s7Nmh7ec@}H=6Ety}AZIhd`n_u?#%m z$22Sq+5mT5+A0!a18&U9Qz;jbh6f#ON7(Ztu&`Hu3g~Ta&AjdKTT~w+eTmm|fcx$T z6$zp`wcWkg_kWGe09@v_gTW@i%!0k!(k=>~2UL-d2v$Zi#F^yvp^ChU>TLqs0qwkQ zzEa@PKK#$o+pbscXdfD^0-k_pU}^nUb!I+G>(dID4eoGWH(|S8P0VRwJ=g+2N!+VQ zhCR?8fCh09tkcY=IwcoJTqNHEnhw*%aW?`idgpkk$~0EF99Y*fZO zkwdgY2M?9ZfD)yWQw$1TD#g}I{J(1lLDgvL;{E{irGz+$6Sz|TbiOCCj)z^UbDD;d zom!yV^%LX?M5MPIA)jFJWjr#5aR4*_reTD2mrgdT2l}B0CVzk@)>{V38b(;S1z~3J z#9(F+5y;bbKn+Ho002bqZ_#DT%c2qOzD*aKG_=A@z;9rSKxcr7;(%^Sc52xjxp~Du z#Q_M{fTcFINoexqtSBoiX{OETY;3d}<9ulbXpvgBE(9~MR#acGFWhjj_%zuX1ONa4 M07*qoM6N<$f*ucZ!vFvP diff --git a/resources/whatis.png b/resources/whatis.png index 1b39f3544c0fc3c9c78be530a9531b9e5e767c32..d213e309ba3fc9d6333147efee21e58bea9fc111 100644 GIT binary patch delta 1060 zcmV+<1l#+b1Gor~BYyx1a7bBm000XU000XU0RWnu7ytkO1ZP1_K>z@;j(q!3lK=n! zAY({UO#lFTB>(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fdMgRZrq8&|aP;WMWl)2U zpc@DfKqv-+3}aMH#}p=FMP-F_b&r4(9kc) z1_A^S6Pn92+ke}17$PFLfeP+1{Qq|YsPZNdKLFyFK>Uv3Kf?!x0RLYM@o~%`L(0&- z4iG?a7fMJ-*qE8}9A3Xx5vb`CQ1eHI-@ku=T*1J>!3Uimwy>Pynp}4aPiWAhLx-SGrWDrz|h0l=U1Q4=; z(-$xK&42Un-#*p^ub?- z7eIUs7++t%{(1cS_wVme7lHvm0I{G&(q|yP0)NDJK`B5`P_VJISTv}hfQRAlpO*}8 zf!=-n`Y*%NXa5TER|YKc z?b|iZduYCRbbq`SL4YGj%0mOnQd#Wodb22b9gA(^=hIhbN z|9|x9Kf{KNEI?O&ISn*yGf>SrsDW?*5J310y#M&o4~DXehrk35N_+npUIVp$`0(>S z&@fP5-VaI{AjczX0tg^{27dhX`7gue%Rd?Z{reA$O$LUazZgMT6qqU*KzaBQBrh_c z6jcBLgwH?~1qBv{ZCf}Q-n{+6@Z>QlGJpOsq-U~$3XhxE3h+h delta 388 zcmV-~0ek+q2%ZCwBYy#9NkljZLbu(;_kH?zecR>wu{i`tYk&G)Zg}*2Lf{8T ztD50SAb@zn{A13;eTct%LvM5$=1C={(X}t+ul1V14=OSnXJ|7$$Pc`rwh - +// #include "Archimede_VolumeSection.hxx" #include "utilities.h" @@ -41,14 +38,10 @@ #include #include #include -#include -#include -#include #include #include #include #include -#include #include #include diff --git a/src/ARCHIMEDE/Archimede_VolumeSection.hxx b/src/ARCHIMEDE/Archimede_VolumeSection.hxx index 6dc4c8799..70790e4f8 100644 --- a/src/ARCHIMEDE/Archimede_VolumeSection.hxx +++ b/src/ARCHIMEDE/Archimede_VolumeSection.hxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM ARCHIMEDE : algorithm implementation -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Archimede_VolumeSection.hxx // Author : Nicolas REJNERI // Module : GEOM // $Header$ - +// #ifndef ARCHIMEDE_VOLUMESECTION_HXX #define ARCHIMEDE_VOLUMESECTION_HXX @@ -33,7 +32,8 @@ #include #include #include -#include + +class Handle(Geom_RectangularTrimmedSurface); class VolumeSection{ diff --git a/src/ARCHIMEDE/Makefile.am b/src/ARCHIMEDE/Makefile.am index 63d6d9d08..51f12a394 100644 --- a/src/ARCHIMEDE/Makefile.am +++ b/src/ARCHIMEDE/Makefile.am @@ -1,35 +1,34 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM ARCHIMEDE : algorithm implementation -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.am # Author : Nicolas REJNERI # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am -salomeinclude_HEADERS = \ +salomeinclude_HEADERS = \ Archimede_VolumeSection.hxx # Libraries targets @@ -37,17 +36,18 @@ salomeinclude_HEADERS = \ lib_LTLIBRARIES = libGEOMArchimede.la # sources files -dist_libGEOMArchimede_la_SOURCES = \ +dist_libGEOMArchimede_la_SOURCES = \ Archimede_VolumeSection.cxx -# additionnal information to compil and link file -libGEOMArchimede_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ +# additional information to compile and link file + +libGEOMArchimede_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ $(KERNEL_CXXFLAGS) -libGEOMArchimede_la_LDFLAGS = \ - $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ - $(CAS_KERNEL) \ - $(CAS_MODELER) -lTKMesh \ +libGEOMArchimede_la_LDFLAGS = \ + $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ + $(CAS_KERNEL) \ + $(CAS_MODELER) -lTKMesh \ $(STDLIB) diff --git a/src/BREPExport/BREPExport.cxx b/src/BREPExport/BREPExport.cxx index c7d25b655..bce5d516e 100644 --- a/src/BREPExport/BREPExport.cxx +++ b/src/BREPExport/BREPExport.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: BREPExport.cxx // Created: Wed May 19 13:10:05 2004 // Author: Pavel TELKOV // - +// #include "utilities.h" #include diff --git a/src/BREPExport/BREPExport.pro b/src/BREPExport/BREPExport.pro new file mode 100644 index 000000000..72dc646d0 --- /dev/null +++ b/src/BREPExport/BREPExport.pro @@ -0,0 +1,49 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = BREPExport +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} + +LIBS += $${KERNEL_LDFLAGS} -lSALOMELocalTrace $${STDLIB} $${CAS_LDPATH} -lTKBRep + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += BREPEXPORT_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +SOURCES = BREPExport.cxx diff --git a/src/BREPExport/Makefile.am b/src/BREPExport/Makefile.am index fa1ce21e3..239baba5a 100644 --- a/src/BREPExport/Makefile.am +++ b/src/BREPExport/Makefile.am @@ -1,44 +1,46 @@ -# Copyright (C) 2003 CEA -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.in # Author : Pavel TELKOV # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libBREPExport.la # Sources files -dist_libBREPExport_la_SOURCES = \ +dist_libBREPExport_la_SOURCES = \ BREPExport.cxx -# additionnal information to compil and link file -libBREPExport_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ +# additional information to compile and link file + +libBREPExport_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ $(KERNEL_CXXFLAGS) -libBREPExport_la_LDFLAGS = \ - $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ - $(STDLIB) \ +libBREPExport_la_LDFLAGS = \ + $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ + $(STDLIB) \ $(CAS_LDPATH) -lTKBRep diff --git a/src/BREPImport/BREPImport.cxx b/src/BREPImport/BREPImport.cxx index cd78468ba..ecc09a6e2 100644 --- a/src/BREPImport/BREPImport.cxx +++ b/src/BREPImport/BREPImport.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: BREPImport.cxx // Created: Wed May 19 14:29:52 2004 // Author: Pavel TELKOV // - +// #include "utilities.h" #include diff --git a/src/BREPImport/BREPImport.pro b/src/BREPImport/BREPImport.pro new file mode 100644 index 000000000..dc2fe28d4 --- /dev/null +++ b/src/BREPImport/BREPImport.pro @@ -0,0 +1,49 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = BREPImport +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} + +LIBS += $${KERNEL_LDFLAGS} -lSALOMELocalTrace $${STDLIB} $${CAS_LDPATH} -lTKBRep + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += BREPIMPORT_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +SOURCES = BREPImport.cxx diff --git a/src/BREPImport/Makefile.am b/src/BREPImport/Makefile.am index 610cddfb4..6d5eaf220 100644 --- a/src/BREPImport/Makefile.am +++ b/src/BREPImport/Makefile.am @@ -1,44 +1,46 @@ -# Copyright (C) 2003 CEA -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.in # Author : Pavel TELKOV # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libBREPImport.la # Sources files -dist_libBREPImport_la_SOURCES = \ +dist_libBREPImport_la_SOURCES = \ BREPImport.cxx -# additionnal information to compil and link file -libBREPImport_la_CPPFLAGS = \ - $(KERNEL_CXXFLAGS) \ +# additional information to compile and link file + +libBREPImport_la_CPPFLAGS = \ + $(KERNEL_CXXFLAGS) \ $(CAS_CPPFLAGS) -libBREPImport_la_LDFLAGS = \ - $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ - $(CAS_LDPATH) -lTKBRep \ +libBREPImport_la_LDFLAGS = \ + $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ + $(CAS_LDPATH) -lTKBRep \ $(STDLIB) diff --git a/src/BasicGUI/BasicGUI.cxx b/src/BasicGUI/BasicGUI.cxx index 41b484848..47c7e1135 100644 --- a/src/BasicGUI/BasicGUI.cxx +++ b/src/BasicGUI/BasicGUI.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -10,7 +10,7 @@ // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public @@ -19,30 +19,11 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : BasicGUI.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "BasicGUI.h" -#include "GeometryGUI.h" - -#include "SUIT_Session.h" -#include "SUIT_Desktop.h" -#include "SUIT_ViewWindow.h" -#include "OCCViewer_ViewWindow.h" -#include "OCCViewer_ViewModel.h" -#include "OCCViewer_ViewManager.h" -#include "OCCViewer_ViewPort3d.h" -#include "utilities.h" - -#include -#include -#include -#include -#include #include "BasicGUI_PointDlg.h" // Method POINT #include "BasicGUI_LineDlg.h" // Method LINE @@ -55,14 +36,29 @@ #include "BasicGUI_WorkingPlaneDlg.h" // Method WORKING PLANE #include "BasicGUI_MarkerDlg.h" // Method REPAIR -using namespace std; +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include //======================================================================= // function : BasicGUI() // purpose : Constructor //======================================================================= -BasicGUI::BasicGUI( GeometryGUI* parent ) : - GEOMGUI(parent) +BasicGUI::BasicGUI( GeometryGUI* parent ) + : GEOMGUI( parent ) { } @@ -79,51 +75,50 @@ BasicGUI::~BasicGUI() // function : OnGUIEvent() // purpose : //======================================================================= -bool BasicGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) +bool BasicGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { getGeometryGUI()->EmitSignalDeactivateDialog(); QDialog* aDlg = NULL; - switch ( theCommandID ) - { - case 4011: // POINT - aDlg = new BasicGUI_PointDlg( getGeometryGUI(), parent, "" ); - break; - case 4012: // LINE - aDlg = new BasicGUI_LineDlg( getGeometryGUI(), parent, "" ); - break; - case 4013: // CIRCLE - aDlg = new BasicGUI_CircleDlg( getGeometryGUI(), parent, ""); - break; - case 4014: // ELLIPSE - aDlg = new BasicGUI_EllipseDlg( getGeometryGUI(), parent, "" ); - break; - case 4015: // ARC - aDlg = new BasicGUI_ArcDlg( getGeometryGUI(), parent, "" ); - break ; - case 4016: // VECTOR - aDlg = new BasicGUI_VectorDlg( getGeometryGUI(), parent, "" ); - break; - case 4017: // PLANE - aDlg = new BasicGUI_PlaneDlg( getGeometryGUI(), parent, ""); - break; - case 4018: // WORKING PLANE - aDlg = new BasicGUI_WorkingPlaneDlg( getGeometryGUI(), parent, "" ); - break; - case 4019: // CURVE - aDlg = new BasicGUI_CurveDlg( getGeometryGUI(), parent, "" ); - break; - case 4020: // REPAIR - aDlg = new BasicGUI_MarkerDlg( getGeometryGUI(), parent ); - break; - default: - SUIT_Session::session()->activeApplication()->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); - break; - } - + switch ( theCommandID ) { + case 4011: // POINT + aDlg = new BasicGUI_PointDlg( getGeometryGUI(), parent ); + break; + case 4012: // LINE + aDlg = new BasicGUI_LineDlg( getGeometryGUI(), parent ); + break; + case 4013: // CIRCLE + aDlg = new BasicGUI_CircleDlg( getGeometryGUI(), parent ); + break; + case 4014: // ELLIPSE + aDlg = new BasicGUI_EllipseDlg( getGeometryGUI(), parent ); + break; + case 4015: // ARC + aDlg = new BasicGUI_ArcDlg( getGeometryGUI(), parent ); + break ; + case 4016: // VECTOR + aDlg = new BasicGUI_VectorDlg( getGeometryGUI(), parent ); + break; + case 4017: // PLANE + aDlg = new BasicGUI_PlaneDlg( getGeometryGUI(), parent ); + break; + case 4018: // WORKING PLANE + aDlg = new BasicGUI_WorkingPlaneDlg( getGeometryGUI(), parent ); + break; + case 4019: // CURVE + aDlg = new BasicGUI_CurveDlg( getGeometryGUI(), parent ); + break; + case 4020: // REPAIR + aDlg = new BasicGUI_MarkerDlg( getGeometryGUI(), parent ); + break; + default: + SUIT_Session::session()->activeApplication()->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); + break; + } + if ( aDlg != NULL ) aDlg->show(); - + return true; } @@ -137,34 +132,30 @@ bool BasicGUI::OnMousePress( QMouseEvent* pe, SUIT_Desktop* parent, SUIT_ViewWin QDialog* aDlg = getGeometryGUI()->GetActiveDialogBox(); // Create Point dialog, OCC viewer - if ( aDlg && aDlg->isA( "BasicGUI_PointDlg" ) && + if ( aDlg && ( QString( aDlg->metaObject()->className() ).compare( "BasicGUI_PointDlg" ) == 0 ) && theViewWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() && - pe->state() != Qt::ControlButton ) - { + pe->modifiers() != Qt::ControlModifier ) { BasicGUI_PointDlg* aPntDlg = (BasicGUI_PointDlg*) aDlg; - if ( aPntDlg->acceptMouseEvent() ) - { + if ( aPntDlg->acceptMouseEvent() ) { OCCViewer_Viewer* anOCCViewer = - ((OCCViewer_ViewManager*)(theViewWindow->getViewManager()))->getOCCViewer(); + ( (OCCViewer_ViewManager*)( theViewWindow->getViewManager() ) )->getOCCViewer(); Handle(AIS_InteractiveContext) ic = anOCCViewer->getAISContext(); gp_Pnt aPnt; ic->InitSelected(); - if ( pe->state() == Qt::ShiftButton ) + if ( pe->modifiers() == Qt::ShiftModifier ) ic->ShiftSelect(); // Append selection else ic->Select(); // New selection ic->InitSelected(); - if ( ic->MoreSelected() ) - { + if ( ic->MoreSelected() ) { TopoDS_Shape aShape = ic->SelectedShape(); if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX ) aPnt = BRep_Tool::Pnt( TopoDS::Vertex( ic->SelectedShape() ) ); } - else - { + else { OCCViewer_ViewPort3d* vp = ((OCCViewer_ViewWindow*)theViewWindow)->getViewPort(); aPnt = ConvertClickToPoint( pe->x(), pe->y(), vp->getView() ); } @@ -180,25 +171,25 @@ bool BasicGUI::OnMousePress( QMouseEvent* pe, SUIT_Desktop* parent, SUIT_ViewWin // function : ConvertClickToPoint() // purpose : Returns the point clicked in 3D view //======================================================================= -gp_Pnt BasicGUI::ConvertClickToPoint( int x, int y, Handle(V3d_View) aView) +gp_Pnt BasicGUI::ConvertClickToPoint( int x, int y, Handle(V3d_View) aView ) { V3d_Coordinate XEye, YEye, ZEye, XAt, YAt, ZAt; - aView->Eye(XEye, YEye, ZEye); + aView->Eye( XEye, YEye, ZEye ); - aView->At(XAt, YAt, ZAt); - gp_Pnt EyePoint(XEye, YEye, ZEye); - gp_Pnt AtPoint(XAt, YAt, ZAt); + aView->At( XAt, YAt, ZAt ); + gp_Pnt EyePoint( XEye, YEye, ZEye ); + gp_Pnt AtPoint( XAt, YAt, ZAt ); - gp_Vec EyeVector(EyePoint, AtPoint); - gp_Dir EyeDir(EyeVector); + gp_Vec EyeVector( EyePoint, AtPoint ); + gp_Dir EyeDir( EyeVector ); - gp_Pln PlaneOfTheView = gp_Pln(AtPoint,EyeDir); + gp_Pln PlaneOfTheView = gp_Pln( AtPoint, EyeDir ); Standard_Real X, Y, Z; - aView->Convert(x, y, X, Y, Z); - gp_Pnt ConvertedPoint(X, Y, Z); + aView->Convert( x, y, X, Y, Z ); + gp_Pnt ConvertedPoint( X, Y, Z ); - gp_Pnt2d ConvertedPointOnPlane = ProjLib::Project(PlaneOfTheView, ConvertedPoint); - gp_Pnt ResultPoint = ElSLib::Value(ConvertedPointOnPlane.X(), ConvertedPointOnPlane.Y(), PlaneOfTheView); + gp_Pnt2d ConvertedPointOnPlane = ProjLib::Project( PlaneOfTheView, ConvertedPoint ); + gp_Pnt ResultPoint = ElSLib::Value( ConvertedPointOnPlane.X(), ConvertedPointOnPlane.Y(), PlaneOfTheView ); return ResultPoint; } @@ -207,7 +198,9 @@ gp_Pnt BasicGUI::ConvertClickToPoint( int x, int y, Handle(V3d_View) aView) //===================================================================================== extern "C" { -GEOM_BASICGUI_EXPORT +#ifdef WIN32 + __declspec( dllexport ) +#endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { return new BasicGUI( parent ); diff --git a/src/BasicGUI/BasicGUI.h b/src/BasicGUI/BasicGUI.h index 73a16e6bd..1b95e5fbf 100644 --- a/src/BasicGUI/BasicGUI.h +++ b/src/BasicGUI/BasicGUI.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -10,7 +10,7 @@ // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public @@ -19,35 +19,30 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : BasicGUI.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef BASICGUI_H #define BASICGUI_H -#include "GEOM_BasicGUI.hxx" - -#include "GEOMGUI.h" -#include "GEOMBase.h" +#include #include //================================================================================= // class : BasicGUI // purpose : //================================================================================= -class GEOM_BASICGUI_EXPORT BasicGUI : public GEOMGUI +class BasicGUI : public GEOMGUI { public: - BasicGUI( GeometryGUI* parent ); + BasicGUI( GeometryGUI* ); ~BasicGUI(); - bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent); - bool OnMousePress(QMouseEvent* pe, SUIT_Desktop* parent, SUIT_ViewWindow* theViewWindow); + bool OnGUIEvent( int, SUIT_Desktop* ); + bool OnMousePress( QMouseEvent*, SUIT_Desktop*, SUIT_ViewWindow* ); - gp_Pnt ConvertClickToPoint( int x, int y, Handle(V3d_View) aView ); + gp_Pnt ConvertClickToPoint( int, int, Handle(V3d_View) ); }; -#endif +#endif // BASICGUI_H diff --git a/src/BasicGUI/BasicGUI.pro b/src/BasicGUI/BasicGUI.pro new file mode 100644 index 000000000..2ef9147a0 --- /dev/null +++ b/src/BasicGUI/BasicGUI.pro @@ -0,0 +1,75 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = BasicGUI +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +GUI_LDFLAGS = -L$$(GUI_ROOT_DIR)/lib/salome + +INCLUDEPATH += $${QT_INCLUDES} $${VTK_INCLUDES} $${CAS_CPPFLAGS} $${PYTHON_INCLUDES} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} $${CORBA_INCLUDES} ../OBJECT ../DlgRef ../GEOMGUI ../GEOMFiltersSelection ../GEOMBase ../GEOMImpl ../GEOMClient $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lGEOMFiltersSelection -lGEOMBase -lGEOM $${GUI_LDFLAGS} -lsuit + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += BASICGUI_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +HEADERS = BasicGUI_PointDlg.h +HEADERS += GEOM_BasicGUI.hxx + +SOURCES = BasicGUI.cxx +SOURCES += BasicGUI_PointDlg.cxx +SOURCES += BasicGUI_LineDlg.cxx +SOURCES += BasicGUI_CircleDlg.cxx +SOURCES += BasicGUI_EllipseDlg.cxx +SOURCES += BasicGUI_ArcDlg.cxx +SOURCES += BasicGUI_VectorDlg.cxx +SOURCES += BasicGUI_PlaneDlg.cxx +SOURCES += BasicGUI_WorkingPlaneDlg.cxx +SOURCES += BasicGUI_CurveDlg.cxx +SOURCES += BasicGUI_MarkerDlg.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/BasicGUI/BasicGUI_ArcDlg.cxx b/src/BasicGUI/BasicGUI_ArcDlg.cxx index f9668b5ce..7326a37e2 100644 --- a/src/BasicGUI/BasicGUI_ArcDlg.cxx +++ b/src/BasicGUI/BasicGUI_ArcDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,19 +19,20 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_ArcDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : BasicGUI_ArcDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "BasicGUI_ArcDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include + +#include +#include +#include +#include #include #include @@ -40,12 +41,7 @@ #include #include -#include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" +#include //================================================================================= // class : BasicGUI_ArcDlg() @@ -54,60 +50,91 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BasicGUI_ArcDlg::BasicGUI_ArcDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - : GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BasicGUI_ArcDlg::BasicGUI_ArcDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); - QPixmap image0(aResMgr->loadPixmap("GEOM",tr("ICON_DLG_ARC"))); - QPixmap image1(aResMgr->loadPixmap("GEOM",tr("ICON_DLG_ARC_CENTER"))); - QPixmap image2(aResMgr->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_ARC" ) ) ); + QPixmap image1( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_ARC_CENTER" ) ) ); + QPixmap image2( aResMgr->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); + QPixmap image3( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_ARC_OF_ELLIPSE" ) ) ); - setCaption(tr("GEOM_ARC_TITLE")); + setWindowTitle( tr( "GEOM_ARC_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_ARC")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_ARC" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setIcon( image1 ); + mainFrame()->RadioButton3->setIcon( image3 ); - Group3Pnts = new DlgRef_3Sel_QTD(this, "Group3Pnts"); - Group3Pnts->GroupBox1->setTitle(tr("GEOM_POINTS")); - Group3Pnts->TextLabel1->setText(tr("GEOM_POINT_I").arg("1")); - Group3Pnts->TextLabel2->setText(tr("GEOM_POINT_I").arg("2")); - Group3Pnts->TextLabel3->setText(tr("GEOM_POINT_I").arg("3")); + Group3Pnts = new DlgRef_3Sel( centralWidget() ); + + Group3Pnts->GroupBox1->setTitle( tr( "GEOM_POINTS" ) ); + Group3Pnts->TextLabel1->setText( tr( "GEOM_POINT_I" ).arg( 1 ) ); + Group3Pnts->TextLabel2->setText( tr( "GEOM_POINT_I" ).arg( 2 ) ); + Group3Pnts->TextLabel3->setText( tr( "GEOM_POINT_I" ).arg( 3 ) ); Group3Pnts->LineEdit1->setReadOnly( true ); Group3Pnts->LineEdit2->setReadOnly( true ); Group3Pnts->LineEdit3->setReadOnly( true ); - Group3Pnts->PushButton1->setPixmap(image2); - Group3Pnts->PushButton2->setPixmap(image2); - Group3Pnts->PushButton3->setPixmap(image2); + Group3Pnts->LineEdit1->setEnabled(true); + Group3Pnts->LineEdit2->setEnabled(false); + Group3Pnts->LineEdit3->setEnabled(false); + + Group3Pnts->PushButton1->setIcon(image2); + Group3Pnts->PushButton2->setIcon(image2); + Group3Pnts->PushButton3->setIcon(image2); - Group3Pnts2 = new DlgRef_3Sel1Check_QTD(this, "Group3Pnts2"); - Group3Pnts2->GroupBox1->setTitle(tr("GEOM_POINTS")); - Group3Pnts2->TextLabel1->setText(tr("GEOM_CENTER_POINT")); - Group3Pnts2->TextLabel2->setText(tr("GEOM_POINT_I").arg("Start")); - Group3Pnts2->TextLabel3->setText(tr("GEOM_POINT_I").arg("End")); + Group3Pnts2 = new DlgRef_3Sel1Check( centralWidget() ); + + Group3Pnts2->GroupBox1->setTitle( tr( "GEOM_POINTS" ) ); + Group3Pnts2->TextLabel1->setText( tr( "GEOM_CENTER_POINT" ) ); + Group3Pnts2->TextLabel2->setText( tr( "GEOM_POINT_I" ).arg( "Start" ) ); + Group3Pnts2->TextLabel3->setText( tr( "GEOM_POINT_I" ).arg( "End" ) ); Group3Pnts2->LineEdit1->setReadOnly( true ); Group3Pnts2->LineEdit2->setReadOnly( true ); Group3Pnts2->LineEdit3->setReadOnly( true ); - Group3Pnts2->PushButton1->setPixmap(image2); - Group3Pnts2->PushButton2->setPixmap(image2); - Group3Pnts2->PushButton3->setPixmap(image2); + Group3Pnts2->LineEdit1->setEnabled(true); + Group3Pnts2->LineEdit2->setEnabled(false); + Group3Pnts2->LineEdit3->setEnabled(false); - Group3Pnts2->CheckButton1->setText(tr("GEOM_REVERSE")); + Group3Pnts2->PushButton1->setIcon( image2 ); + Group3Pnts2->PushButton2->setIcon( image2 ); + Group3Pnts2->PushButton3->setIcon( image2 ); + + Group3Pnts2->CheckButton1->setText( tr( "GEOM_REVERSE" ) ); - Layout1->addWidget( Group3Pnts, 2, 0 ); - Layout1->addWidget( Group3Pnts2, 2, 0 ); - /***************************************************************/ + Group3Pnts3 = new DlgRef_3Sel( centralWidget() ); - setHelpFileName("create_arc_page.html"); + Group3Pnts3->GroupBox1->setTitle( tr( "GEOM_POINTS" ) ); + Group3Pnts3->TextLabel1->setText( tr( "GEOM_CENTER_POINT" ) ); + Group3Pnts3->TextLabel2->setText( tr( "GEOM_POINT_I" ).arg( 1 ) ); + Group3Pnts3->TextLabel3->setText( tr( "GEOM_POINT_I" ).arg( 2 ) ); + + Group3Pnts3->LineEdit1->setReadOnly( true ); + Group3Pnts3->LineEdit2->setReadOnly( true ); + Group3Pnts3->LineEdit3->setReadOnly( true ); + + Group3Pnts3->LineEdit1->setEnabled(true); + Group3Pnts3->LineEdit2->setEnabled(false); + Group3Pnts3->LineEdit3->setEnabled(false); + + Group3Pnts3->PushButton1->setIcon(image2); + Group3Pnts3->PushButton2->setIcon(image2); + Group3Pnts3->PushButton3->setIcon(image2); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( Group3Pnts ); + layout->addWidget( Group3Pnts2 ); + layout->addWidget( Group3Pnts3 ); + + setHelpFileName( "create_arc_page.html" ); Init(); } @@ -130,102 +157,56 @@ void BasicGUI_ArcDlg::Init() { /* init variables */ myEditCurrentArgument = Group3Pnts->LineEdit1; + myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil(); - Group3Pnts2->CheckButton1->setChecked(FALSE); + Group3Pnts2->CheckButton1->setChecked( false ); + Group3Pnts->PushButton1->setDown(true); /* signals and slots connections */ - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); - connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); - connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); + + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); + + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect( Group3Pnts->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( Group3Pnts->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group3Pnts->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group3Pnts->LineEdit3, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + + connect( Group3Pnts2->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts2->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts2->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(Group3Pnts->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group3Pnts->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group3Pnts->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( Group3Pnts2->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group3Pnts2->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group3Pnts2->LineEdit3, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(Group3Pnts->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group3Pnts->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group3Pnts->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( Group3Pnts2->CheckButton1, SIGNAL( toggled( bool ) ), this, SLOT( ReverseSense() ) ); - connect(Group3Pnts2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group3Pnts2->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group3Pnts2->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( Group3Pnts3->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts3->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts3->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(Group3Pnts2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group3Pnts2->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group3Pnts2->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( Group3Pnts3->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group3Pnts3->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group3Pnts3->LineEdit3, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(Group3Pnts2->CheckButton1, SIGNAL(stateChanged(int)), this, SLOT(ReverseSense(int))); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + initName( tr( "GEOM_ARC" ) ); + - initName( tr( "GEOM_ARC" )); ConstructorsClicked( 0 ); } -//================================================================================= -// function : ConstructorsClicked() -// purpose : Radio button management -//================================================================================= -void BasicGUI_ArcDlg::ConstructorsClicked (int constructorId) -{ - disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - - switch (constructorId) - { - case 0: - { - globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); //Select Vertex on All Shapes - - Group3Pnts->show(); - resize(0, 0); - Group3Pnts2->hide(); - - Group3Pnts->LineEdit1->setText(Group3Pnts2->LineEdit1->text()); - Group3Pnts->LineEdit2->setText(Group3Pnts2->LineEdit2->text()); - Group3Pnts->LineEdit3->setText(Group3Pnts2->LineEdit3->text()); - - myEditCurrentArgument = Group3Pnts->LineEdit1; - - break; - } - case 1: - { - globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); //Select Vertex on All Shapes - - Group3Pnts->hide(); - resize(0, 0); - Group3Pnts2->show(); - - Group3Pnts2->LineEdit1->setText(Group3Pnts->LineEdit1->text()); - Group3Pnts2->LineEdit2->setText(Group3Pnts->LineEdit2->text()); - Group3Pnts2->LineEdit3->setText(Group3Pnts->LineEdit3->text()); - - myEditCurrentArgument = Group3Pnts2->LineEdit1; - - break; - } - } - - myEditCurrentArgument->setFocus(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); - - if (CORBA::is_nil(myPoint1)) - SelectionIntoArgument(); - - displayPreview(); -} - - //================================================================================= // function : ClickOnOk() // purpose : @@ -246,57 +227,58 @@ bool BasicGUI_ArcDlg::ClickOnApply() return false; initName(); + ConstructorsClicked( getConstructorId() ); + return true; } + //================================================================================= // function : SelectionIntoArgument() // purpose : Called when selection as changed or other case //================================================================================= void BasicGUI_ArcDlg::SelectionIntoArgument() { - if ((getConstructorId() != 0) && (getConstructorId() != 1)) - return; + myEditCurrentArgument->setText( "" ); - myEditCurrentArgument->setText(""); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); - if (IObjectCount() != 1) - { - switch (getConstructorId()) - { + if (aSelList.Extent() != 1) { + switch (getConstructorId()) { case 0: - { - if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil(); - return; - break; - } + if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil(); + return; + break; case 1: - { - if ( myEditCurrentArgument == Group3Pnts2->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == Group3Pnts2->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == Group3Pnts2->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil(); - return; - break; - } + if ( myEditCurrentArgument == Group3Pnts2->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == Group3Pnts2->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == Group3Pnts2->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil(); + return; + break; + case 2: + if ( myEditCurrentArgument == Group3Pnts3->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == Group3Pnts3->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == Group3Pnts3->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil(); + return; + break; } - } - + } // nbSel == 1 Standard_Boolean aRes = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), aRes); - if (!CORBA::is_nil(aSelectedObject) && aRes) - { + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); + if ( !CORBA::is_nil( aSelectedObject ) && aRes ) { QString aName = GEOMBase::GetName(aSelectedObject); // Get Selected object if selected subshape TopoDS_Shape aShape; if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes(firstIObject(), aMap); + aSelMgr->GetIndexes(aSelList.First(), aMap); if (aMap.Extent() == 1) // Local Selection { int anIndex = aMap(1); @@ -323,43 +305,69 @@ void BasicGUI_ArcDlg::SelectionIntoArgument() myEditCurrentArgument->setText(aName); - switch (getConstructorId()) - { - case 0: - { - if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = aSelectedObject; - else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = aSelectedObject; - else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = aSelectedObject; - break; + if (!aSelectedObject->_is_nil()) { // clear selection if something selected + globalSelection(); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + } + + switch ( getConstructorId() ) { + case 0: + if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) { + myPoint1 = aSelectedObject; + if ( !myPoint1->_is_nil() && myPoint2->_is_nil() ) + Group3Pnts->PushButton2->click(); } - case 1: - { - if ( myEditCurrentArgument == Group3Pnts2->LineEdit1 ) myPoint1 = aSelectedObject; - else if ( myEditCurrentArgument == Group3Pnts2->LineEdit2 ) myPoint2 = aSelectedObject; - else if ( myEditCurrentArgument == Group3Pnts2->LineEdit3 ) myPoint3 = aSelectedObject; - break; + else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) { + myPoint2 = aSelectedObject; + if ( !myPoint2->_is_nil() && myPoint3->_is_nil() ) + Group3Pnts->PushButton3->click(); } + else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) { + myPoint3 = aSelectedObject; + if ( !myPoint3->_is_nil() && myPoint1->_is_nil() ) + Group3Pnts->PushButton1->click(); + } + break; + case 1: + if ( myEditCurrentArgument == Group3Pnts2->LineEdit1 ) { + myPoint1 = aSelectedObject; + if ( !myPoint1->_is_nil() && myPoint2->_is_nil() ) + Group3Pnts2->PushButton2->click(); + } + else if ( myEditCurrentArgument == Group3Pnts2->LineEdit2 ) { + myPoint2 = aSelectedObject; + if ( !myPoint2->_is_nil() && myPoint3->_is_nil() ) + Group3Pnts2->PushButton3->click(); + } + else if ( myEditCurrentArgument == Group3Pnts2->LineEdit3 ) { + myPoint3 = aSelectedObject; + if ( !myPoint3->_is_nil() && myPoint1->_is_nil() ) + Group3Pnts2->PushButton1->click(); + } + break; + case 2: + if ( myEditCurrentArgument == Group3Pnts3->LineEdit1 ) { + myPoint1 = aSelectedObject; + if ( !myPoint1->_is_nil() && myPoint2->_is_nil() ) + Group3Pnts3->PushButton2->click(); + } + else if ( myEditCurrentArgument == Group3Pnts3->LineEdit2 ) { + myPoint2 = aSelectedObject; + if ( !myPoint2->_is_nil() && myPoint3->_is_nil() ) + Group3Pnts3->PushButton3->click(); + } + else if ( myEditCurrentArgument == Group3Pnts3->LineEdit3 ) { + myPoint3 = aSelectedObject; + if ( !myPoint3->_is_nil() && myPoint1->_is_nil() ) + Group3Pnts3->PushButton1->click(); + } + break; } } displayPreview(); } -//================================================================================= -// function : LineEditReturnPressed() -// purpose : -//================================================================================= -void BasicGUI_ArcDlg::LineEditReturnPressed() -{ - QLineEdit* send = (QLineEdit*)sender(); - if (send == Group3Pnts->LineEdit1 || send == Group3Pnts->LineEdit2 || send == Group3Pnts->LineEdit3 || - send == Group3Pnts2->LineEdit1 || send == Group3Pnts2->LineEdit2 || send == Group3Pnts2->LineEdit3) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } -} - //================================================================================= // function : SetEditCurrentArgument() @@ -367,26 +375,110 @@ void BasicGUI_ArcDlg::LineEditReturnPressed() //================================================================================= void BasicGUI_ArcDlg::SetEditCurrentArgument() { + globalSelection(); // close local selection to clear it + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + QPushButton* send = (QPushButton*)sender(); - switch (getConstructorId()) - { - case 0: - { - if ( send == Group3Pnts->PushButton1 ) myEditCurrentArgument = Group3Pnts->LineEdit1; - else if ( send == Group3Pnts->PushButton2 ) myEditCurrentArgument = Group3Pnts->LineEdit2; - else if ( send == Group3Pnts->PushButton3 ) myEditCurrentArgument = Group3Pnts->LineEdit3; - break; + switch ( getConstructorId() ) { + case 0: + if ( send == Group3Pnts->PushButton1 ) { + myEditCurrentArgument = Group3Pnts->LineEdit1; + Group3Pnts->PushButton2->setDown(false); + Group3Pnts->PushButton3->setDown(false); + Group3Pnts->LineEdit1->setEnabled(true); + Group3Pnts->LineEdit2->setEnabled(false); + Group3Pnts->LineEdit3->setEnabled(false); } - case 1: - { - if ( send == Group3Pnts2->PushButton1 ) myEditCurrentArgument = Group3Pnts2->LineEdit1; - else if ( send == Group3Pnts2->PushButton2 ) myEditCurrentArgument = Group3Pnts2->LineEdit2; - else if ( send == Group3Pnts2->PushButton3 ) myEditCurrentArgument = Group3Pnts2->LineEdit3; - break; + else if ( send == Group3Pnts->PushButton2 ) { + myEditCurrentArgument = Group3Pnts->LineEdit2; + Group3Pnts->PushButton1->setDown(false); + Group3Pnts->PushButton3->setDown(false); + Group3Pnts->LineEdit1->setEnabled(false); + Group3Pnts->LineEdit2->setEnabled(true); + Group3Pnts->LineEdit3->setEnabled(false); } + else if ( send == Group3Pnts->PushButton3 ) { + myEditCurrentArgument = Group3Pnts->LineEdit3; + Group3Pnts->PushButton1->setDown(false); + Group3Pnts->PushButton2->setDown(false); + Group3Pnts->LineEdit1->setEnabled(false); + Group3Pnts->LineEdit2->setEnabled(false); + Group3Pnts->LineEdit3->setEnabled(true); + } + break; + case 1: + if ( send == Group3Pnts2->PushButton1 ) { + myEditCurrentArgument = Group3Pnts2->LineEdit1; + Group3Pnts2->PushButton2->setDown(false); + Group3Pnts2->PushButton3->setDown(false); + Group3Pnts2->LineEdit1->setEnabled(true); + Group3Pnts2->LineEdit2->setEnabled(false); + Group3Pnts2->LineEdit3->setEnabled(false); + } + else if ( send == Group3Pnts2->PushButton2 ) { + myEditCurrentArgument = Group3Pnts2->LineEdit2; + Group3Pnts2->PushButton1->setDown(false); + Group3Pnts2->PushButton3->setDown(false); + Group3Pnts2->LineEdit1->setEnabled(false); + Group3Pnts2->LineEdit2->setEnabled(true); + Group3Pnts2->LineEdit3->setEnabled(false); + } + else if ( send == Group3Pnts2->PushButton3 ) { + myEditCurrentArgument = Group3Pnts2->LineEdit3; + Group3Pnts2->PushButton1->setDown(false); + Group3Pnts2->PushButton2->setDown(false); + Group3Pnts2->LineEdit1->setEnabled(false); + Group3Pnts2->LineEdit2->setEnabled(false); + Group3Pnts2->LineEdit3->setEnabled(true); + } + break; + case 2: + if ( send == Group3Pnts3->PushButton1 ) { + myEditCurrentArgument = Group3Pnts3->LineEdit1; + Group3Pnts3->PushButton2->setDown(false); + Group3Pnts3->PushButton3->setDown(false); + Group3Pnts3->LineEdit1->setEnabled(true); + Group3Pnts3->LineEdit2->setEnabled(false); + Group3Pnts3->LineEdit3->setEnabled(false); + } + else if ( send == Group3Pnts3->PushButton2 ) { + myEditCurrentArgument = Group3Pnts3->LineEdit2; + Group3Pnts3->PushButton1->setDown(false); + Group3Pnts3->PushButton3->setDown(false); + Group3Pnts3->LineEdit1->setEnabled(false); + Group3Pnts3->LineEdit2->setEnabled(true); + Group3Pnts3->LineEdit3->setEnabled(false); + } + else if ( send == Group3Pnts3->PushButton3 ) { + myEditCurrentArgument = Group3Pnts3->LineEdit3; + Group3Pnts3->PushButton1->setDown(false); + Group3Pnts3->PushButton2->setDown(false); + Group3Pnts3->LineEdit1->setEnabled(false); + Group3Pnts3->LineEdit2->setEnabled(false); + Group3Pnts3->LineEdit3->setEnabled(true); + } + break; } myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // SelectionIntoArgument(); + send->setDown(true); + displayPreview(); +} + + +//================================================================================= +// function : LineEditReturnPressed() +// purpose : +//================================================================================= +void BasicGUI_ArcDlg::LineEditReturnPressed() +{ + QLineEdit* send = (QLineEdit*)sender(); + if ( send == Group3Pnts->LineEdit1 || send == Group3Pnts->LineEdit2 || send == Group3Pnts->LineEdit3 || + send == Group3Pnts2->LineEdit1 || send == Group3Pnts2->LineEdit2 || send == Group3Pnts2->LineEdit3 || + send == Group3Pnts3->LineEdit1 || send == Group3Pnts3->LineEdit2 || send == Group3Pnts3->LineEdit3 ) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } } @@ -398,24 +490,24 @@ void BasicGUI_ArcDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), + this, + SLOT(SelectionIntoArgument() ) ); ConstructorsClicked( getConstructorId() ); } - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void BasicGUI_ArcDlg::enterEvent(QEvent* e) +void BasicGUI_ArcDlg::enterEvent( QEvent* ) { - if (!GroupConstructors->isEnabled()) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } - //================================================================================= // function : createOperation // purpose : @@ -440,6 +532,32 @@ static bool isEqual( const GEOM::GEOM_Object_var& thePnt1, const GEOM::GEOM_Obje //================================================================================= bool BasicGUI_ArcDlg::isValid( QString& msg ) { + switch (getConstructorId()) { + case 0: + { + if (Group3Pnts->LineEdit1->text().trimmed().isEmpty() || + Group3Pnts->LineEdit2->text().trimmed().isEmpty() || + Group3Pnts->LineEdit3->text().trimmed().isEmpty()) + return false; + break; + } + case 1: + { + if (Group3Pnts2->LineEdit1->text().trimmed().isEmpty() || + Group3Pnts2->LineEdit2->text().trimmed().isEmpty() || + Group3Pnts2->LineEdit3->text().trimmed().isEmpty()) + return false; + break; + } + case 2: + { + if (Group3Pnts3->LineEdit1->text().trimmed().isEmpty() || + Group3Pnts3->LineEdit2->text().trimmed().isEmpty() || + Group3Pnts3->LineEdit3->text().trimmed().isEmpty()) + return false; + break; + } + } return !myPoint1->_is_nil() && !myPoint2->_is_nil() && !myPoint3->_is_nil() && !isEqual( myPoint1, myPoint2 ) && !isEqual( myPoint1, myPoint3 ) && !isEqual( myPoint2, myPoint3 ); } @@ -453,42 +571,135 @@ bool BasicGUI_ArcDlg::execute( ObjectList& objects ) bool res = false; GEOM::GEOM_Object_var anObj; - switch (getConstructorId()) - { + switch ( getConstructorId() ) { case 0: { - if ( !CORBA::is_nil(myPoint1) && !CORBA::is_nil(myPoint2) &&!CORBA::is_nil(myPoint3) ) - { - anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())-> - MakeArc(myPoint1, myPoint2, myPoint3); - res = true; + if ( !CORBA::is_nil( myPoint1 ) && !CORBA::is_nil( myPoint2 ) && !CORBA::is_nil( myPoint3 ) ) { + anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeArc( myPoint1, myPoint2, myPoint3 ); + res = true; } break; } case 1: { - bool Sense; - (Group3Pnts2->CheckButton1->isChecked()) ? Sense = true : Sense = false; - if ( !CORBA::is_nil(myPoint1) && !CORBA::is_nil(myPoint2) &&!CORBA::is_nil(myPoint3) ) - { - anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())-> - MakeArcCenter(myPoint1, myPoint2, myPoint3, Sense); - res = true; + bool Sense = Group3Pnts2->CheckButton1->isChecked(); + if ( !CORBA::is_nil( myPoint1 ) && !CORBA::is_nil( myPoint2 ) && !CORBA::is_nil( myPoint3 ) ) { + anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeArcCenter( myPoint1, myPoint2, myPoint3, Sense ); + res = true; + } + break; + } + case 2: + { + if ( !CORBA::is_nil( myPoint1 ) && !CORBA::is_nil( myPoint2 ) && !CORBA::is_nil( myPoint3 ) ) { + anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeArcOfEllipse( myPoint1, myPoint2, myPoint3 ); + res = true; } break; } } - if ( !anObj->_is_nil() ) + if ( !anObj->_is_nil() ) { objects.push_back( anObj._retn() ); - + } return res; } +//================================================================================= +// function : ConstructorsClicked() +// purpose : Radio button management +//================================================================================= +void BasicGUI_ArcDlg::ConstructorsClicked( int constructorId ) +{ + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); + + switch ( constructorId ) { + case 0: + { + globalSelection(); // close local contexts, if any + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); //Select Vertex on All Shapes + + Group3Pnts->show(); + Group3Pnts2->hide(); + Group3Pnts3->hide(); + Group3Pnts->PushButton1->setDown(true); + Group3Pnts->PushButton2->setDown(false); + Group3Pnts->PushButton3->setDown(false); + Group3Pnts->LineEdit1->setText( "" ); + Group3Pnts->LineEdit2->setText( "" ); + Group3Pnts->LineEdit3->setText( "" ); + Group3Pnts->LineEdit1->setEnabled(true); + Group3Pnts->LineEdit2->setEnabled(false); + Group3Pnts->LineEdit3->setEnabled(false); + myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil(); + + myEditCurrentArgument = Group3Pnts->LineEdit1; + break; + } + case 1: + { + globalSelection(); // close local contexts, if any + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); //Select Vertex on All Shapes + + Group3Pnts->hide(); + Group3Pnts2->show(); + Group3Pnts3->hide(); + Group3Pnts2->PushButton1->setDown(true); + Group3Pnts2->PushButton2->setDown(false); + Group3Pnts2->PushButton3->setDown(false); + Group3Pnts2->LineEdit1->setText( "" ); + Group3Pnts2->LineEdit2->setText( "" ); + Group3Pnts2->LineEdit3->setText( "" ); + Group3Pnts2->LineEdit1->setEnabled(true); + Group3Pnts2->LineEdit2->setEnabled(false); + Group3Pnts2->LineEdit3->setEnabled(false); + myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil(); + + myEditCurrentArgument = Group3Pnts2->LineEdit1; + break; + } + case 2: + { + globalSelection(); // close local contexts, if any + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); //Select Vertex on All Shapes + + Group3Pnts->hide(); + Group3Pnts2->hide(); + Group3Pnts3->show(); + Group3Pnts3->PushButton1->setDown(true); + Group3Pnts3->PushButton2->setDown(false); + Group3Pnts3->PushButton3->setDown(false); + Group3Pnts3->LineEdit1->setText( "" ); + Group3Pnts3->LineEdit2->setText( "" ); + Group3Pnts3->LineEdit3->setText( "" ); + Group3Pnts3->LineEdit1->setEnabled(true); + Group3Pnts3->LineEdit2->setEnabled(false); + Group3Pnts3->LineEdit3->setEnabled(false); + myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil(); + + myEditCurrentArgument = Group3Pnts3->LineEdit1; + break; + } + } + + qApp->processEvents(); + updateGeometry(); + resize( minimumSizeHint() ); + + myEditCurrentArgument->setFocus(); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + + if ( CORBA::is_nil( myPoint1 ) ) + SelectionIntoArgument(); + + displayPreview(); +} + //================================================================================= // function : ReverseSense() // purpose : Orientation of the arc //================================================================================= -void BasicGUI_ArcDlg::ReverseSense(int sense) +void BasicGUI_ArcDlg::ReverseSense() { displayPreview(); } @@ -501,8 +712,7 @@ void BasicGUI_ArcDlg::addSubshapesToStudy() { QMap objMap; -switch (getConstructorId()) - { + switch ( getConstructorId() ) { case 0: objMap[Group3Pnts->LineEdit1->text()] = myPoint1; objMap[Group3Pnts->LineEdit2->text()] = myPoint2; @@ -513,6 +723,11 @@ switch (getConstructorId()) objMap[Group3Pnts2->LineEdit2->text()] = myPoint2; objMap[Group3Pnts2->LineEdit3->text()] = myPoint3; break; + case 2: + objMap[Group3Pnts3->LineEdit1->text()] = myPoint1; + objMap[Group3Pnts3->LineEdit2->text()] = myPoint2; + objMap[Group3Pnts3->LineEdit3->text()] = myPoint3; + break; } - addSubshapesToFather( objMap ); + addSubshapesToFather( objMap ); } diff --git a/src/BasicGUI/BasicGUI_ArcDlg.h b/src/BasicGUI/BasicGUI_ArcDlg.h index fcead28cc..49828b720 100644 --- a/src/BasicGUI/BasicGUI_ArcDlg.h +++ b/src/BasicGUI/BasicGUI_ArcDlg.h @@ -1,78 +1,76 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_ArcDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : BasicGUI_ArcDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +#ifndef BASICGUI_ARCDLG_H +#define BASICGUI_ARCDLG_H -#ifndef DIALOGBOX_ARC_H -#define DIALOGBOX_ARC_H +#include -#include "GEOM_BasicGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_3Sel_QTD.h" -#include "DlgRef_3Sel1Check_QTD.h" +class DlgRef_3Sel; +class DlgRef_3Sel1Check; //================================================================================= // class : BasicGUI_ArcDlg // purpose : //================================================================================= -class GEOM_BASICGUI_EXPORT BasicGUI_ArcDlg : public GEOMBase_Skeleton +class BasicGUI_ArcDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BasicGUI_ArcDlg( GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); - ~BasicGUI_ArcDlg(); + BasicGUI_ArcDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~BasicGUI_ArcDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); + +private: + void Init(); + void enterEvent( QEvent* ); private: - void Init(); - void enterEvent(QEvent* e); + GEOM::GEOM_Object_var myPoint1, myPoint2, myPoint3; - GEOM::GEOM_Object_var myPoint1, myPoint2, myPoint3; - - DlgRef_3Sel_QTD* Group3Pnts; - DlgRef_3Sel1Check_QTD* Group3Pnts2; + DlgRef_3Sel* Group3Pnts; + DlgRef_3Sel1Check* Group3Pnts2; + DlgRef_3Sel* Group3Pnts3; private slots: - void ClickOnOk(); - bool ClickOnApply(); - - void ActivateThisDialog(); - void ConstructorsClicked(int); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ReverseSense(int); + void ClickOnOk(); + bool ClickOnApply(); + + void ActivateThisDialog(); + void ConstructorsClicked( int ); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ReverseSense(); }; -#endif // DIALOGBOX_ARC_H +#endif // BASICGUI_ARCDLG_H diff --git a/src/BasicGUI/BasicGUI_CircleDlg.cxx b/src/BasicGUI/BasicGUI_CircleDlg.cxx index 450ffd984..3c1858203 100644 --- a/src/BasicGUI/BasicGUI_CircleDlg.cxx +++ b/src/BasicGUI/BasicGUI_CircleDlg.cxx @@ -1,121 +1,131 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_CircleDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : BasicGUI_CircleDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "BasicGUI_CircleDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include + +#include +#include + +#include +#include +#include +#include #include #include -#include - #include #include #include #include -//#include - -//#include "GEOMImpl_Types.hxx" -#include "utilities.h" - //================================================================================= // class : BasicGUI_CircleDlg() -// purpose : Constructs a BasicGUI_CircleDlg which is a child of 'parent', with the +// purpose : Constructs a BasicGUI_CircleDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BasicGUI_CircleDlg::BasicGUI_CircleDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BasicGUI_CircleDlg::BasicGUI_CircleDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CIRCLE_PV"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CIRCLE_PNTS"))); - QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CIRCLE_C2P"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_CIRCLE_PV" ) ) ); + QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_CIRCLE_PNTS" ) ) ); + QPixmap image3( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_CIRCLE_C2P" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_CIRCLE_TITLE")); + setWindowTitle( tr( "GEOM_CIRCLE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_CIRCLE")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image2); - RadioButton3->setPixmap(image3); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_CIRCLE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setIcon( image2 ); + mainFrame()->RadioButton3->setIcon( image3 ); - GroupPntVecR = new DlgRef_2Sel1Spin(this, "GroupPntVecR"); - GroupPntVecR->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - - GroupPntVecR->TextLabel1->setText(tr("GEOM_CENTER_POINT")); - GroupPntVecR->TextLabel2->setText(tr("GEOM_VECTOR")); - GroupPntVecR->TextLabel3->setText(tr("GEOM_RADIUS")); - GroupPntVecR->PushButton1->setPixmap(image1); - GroupPntVecR->PushButton2->setPixmap(image1); + GroupPntVecR = new DlgRef_2Sel1Spin( centralWidget() ); + GroupPntVecR->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + + GroupPntVecR->TextLabel1->setText( tr( "GEOM_CENTER_POINT" ) + " (Origin by default)" ); + GroupPntVecR->TextLabel2->setText( tr( "GEOM_VECTOR" ) + " (Z axis by default)" ); + GroupPntVecR->TextLabel3->setText( tr( "GEOM_RADIUS" ) ); + GroupPntVecR->PushButton1->setIcon( image1 ); + GroupPntVecR->PushButton2->setIcon( image1 ); + GroupPntVecR->PushButton1->setDown( true ); GroupPntVecR->LineEdit1->setReadOnly( true ); GroupPntVecR->LineEdit2->setReadOnly( true ); - Group3Pnts = new DlgRef_3Sel_QTD(this, "Group3Pnts"); - Group3Pnts->GroupBox1->setTitle(tr("GEOM_3_POINTS")); - Group3Pnts->TextLabel1->setText(tr("GEOM_POINT1")); - Group3Pnts->TextLabel2->setText(tr("GEOM_POINT2")); - Group3Pnts->TextLabel3->setText(tr("GEOM_POINT3")); - Group3Pnts->PushButton1->setPixmap(image1); - Group3Pnts->PushButton2->setPixmap(image1); - Group3Pnts->PushButton3->setPixmap(image1); + GroupPntVecR->LineEdit1->setEnabled( true ); + GroupPntVecR->LineEdit2->setEnabled( false ); + + Group3Pnts = new DlgRef_3Sel( centralWidget() ); + + Group3Pnts->GroupBox1->setTitle( tr( "GEOM_3_POINTS" ) ); + Group3Pnts->TextLabel1->setText( tr( "GEOM_POINT1" ) ); + Group3Pnts->TextLabel2->setText( tr( "GEOM_POINT2" ) ); + Group3Pnts->TextLabel3->setText( tr( "GEOM_POINT3" ) ); + Group3Pnts->PushButton1->setIcon( image1 ); + Group3Pnts->PushButton2->setIcon( image1 ); + Group3Pnts->PushButton3->setIcon( image1 ); + Group3Pnts->PushButton1->setDown( true ); Group3Pnts->LineEdit1->setReadOnly( true ); Group3Pnts->LineEdit2->setReadOnly( true ); Group3Pnts->LineEdit3->setReadOnly( true ); + Group3Pnts->LineEdit1->setEnabled( true ); + Group3Pnts->LineEdit2->setEnabled( false ); + Group3Pnts->LineEdit3->setEnabled( false ); - GroupCenter2Pnts = new DlgRef_3Sel_QTD(this, "GroupCenter2Pnts"); - GroupCenter2Pnts->GroupBox1->setTitle(tr("GEOM_CENTER_2POINTS")); - GroupCenter2Pnts->TextLabel1->setText(tr("GEOM_CENTER_POINT")); - GroupCenter2Pnts->TextLabel2->setText(tr("GEOM_POINT1")); - GroupCenter2Pnts->TextLabel3->setText(tr("GEOM_POINT2")); - GroupCenter2Pnts->PushButton1->setPixmap(image1); - GroupCenter2Pnts->PushButton2->setPixmap(image1); - GroupCenter2Pnts->PushButton3->setPixmap(image1); + GroupCenter2Pnts = new DlgRef_3Sel( centralWidget() ); + GroupCenter2Pnts->GroupBox1->setTitle( tr( "GEOM_CENTER_2POINTS" ) ); + GroupCenter2Pnts->TextLabel1->setText( tr( "GEOM_CENTER_POINT" ) ); + GroupCenter2Pnts->TextLabel2->setText( tr( "GEOM_POINT1" ) ); + GroupCenter2Pnts->TextLabel3->setText( tr( "GEOM_POINT2" ) ); + GroupCenter2Pnts->PushButton1->setIcon( image1 ); + GroupCenter2Pnts->PushButton2->setIcon( image1 ); + GroupCenter2Pnts->PushButton3->setIcon( image1 ); + GroupCenter2Pnts->PushButton1->setDown( true ); GroupCenter2Pnts->LineEdit1->setReadOnly( true ); GroupCenter2Pnts->LineEdit2->setReadOnly( true ); GroupCenter2Pnts->LineEdit3->setReadOnly( true ); - Layout1->addWidget( GroupPntVecR, 2, 0 ); - Layout1->addWidget( Group3Pnts, 2, 0 ); - Layout1->addWidget( GroupCenter2Pnts, 2, 0 ); + GroupCenter2Pnts->LineEdit1->setEnabled( true ); + GroupCenter2Pnts->LineEdit2->setEnabled( false ); + GroupCenter2Pnts->LineEdit3->setEnabled( false ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPntVecR ); + layout->addWidget( Group3Pnts ); + layout->addWidget( GroupCenter2Pnts ); /***************************************************************/ - setHelpFileName("create_circle_page.html"); + setHelpFileName( "create_circle_page.html" ); Init(); } @@ -145,105 +155,130 @@ void BasicGUI_CircleDlg::Init() /* Get setting of step value from file configuration */ SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 ); /* min, max, step and decimals for spin boxes & initial values */ - GroupPntVecR->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, aStep, DBL_DIGITS_DISPLAY); - GroupPntVecR->SpinBox_DX->SetValue( 100 ); + initSpinBox( GroupPntVecR->SpinBox_DX, 0.000001, COORD_MAX, aStep, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupPntVecR->SpinBox_DX->setValue( 100 ); /* signals and slots connections */ - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); - connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); - connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); + + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); - connect(GroupPntVecR->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPntVecR->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group3Pnts->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group3Pnts->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group3Pnts->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( GroupPntVecR->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPntVecR->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(GroupCenter2Pnts->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupCenter2Pnts->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupCenter2Pnts->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( GroupCenter2Pnts->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupCenter2Pnts->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupCenter2Pnts->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(GroupPntVecR->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPntVecR->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPntVecR->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupPntVecR->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(GroupPntVecR->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupPntVecR->SpinBox_DX, SLOT(SetStep(double))); + connect( GroupPntVecR->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT(ValueChangedInSpinBox() ) ); + connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_CIRCLE" ) ); - Group3Pnts->hide(); - GroupCenter2Pnts->hide(); ConstructorsClicked( 0 ); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void BasicGUI_CircleDlg::SetDoubleSpinBoxStep( double step ) +{ + GroupPntVecR->SpinBox_DX->setSingleStep(step); +} + //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= void BasicGUI_CircleDlg::ConstructorsClicked( int constructorId ) { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - disconnect(aSelMgr, 0, this, 0); myPoint = myDir = myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil(); - switch (constructorId) - { + switch ( constructorId ) { case 0: { Group3Pnts->hide(); GroupCenter2Pnts->hide(); - resize(0, 0); GroupPntVecR->show(); myEditCurrentArgument = GroupPntVecR->LineEdit1; - GroupPntVecR->LineEdit1->setText(""); - GroupPntVecR->LineEdit2->setText(""); + GroupPntVecR->LineEdit1->setText( "" ); + GroupPntVecR->LineEdit2->setText( "" ); + GroupPntVecR->PushButton1->setDown( true ); + GroupPntVecR->PushButton2->setDown( false ); + GroupPntVecR->LineEdit1->setEnabled( true ); + GroupPntVecR->LineEdit2->setEnabled( false ); break; } case 1: { GroupPntVecR->hide(); GroupCenter2Pnts->hide(); - resize( 0, 0 ); Group3Pnts->show(); myEditCurrentArgument = Group3Pnts->LineEdit1; - Group3Pnts->LineEdit1->setText(""); - Group3Pnts->LineEdit2->setText(""); - Group3Pnts->LineEdit3->setText(""); + Group3Pnts->LineEdit1->setText( "" ); + Group3Pnts->LineEdit2->setText( "" ); + Group3Pnts->LineEdit3->setText( "" ); + Group3Pnts->PushButton1->setDown( true ); + Group3Pnts->PushButton2->setDown( false ); + Group3Pnts->PushButton3->setDown( false ); + Group3Pnts->LineEdit1->setEnabled( true ); + Group3Pnts->LineEdit2->setEnabled( false ); + Group3Pnts->LineEdit3->setEnabled( false ); break; } case 2: { GroupPntVecR->hide(); Group3Pnts->hide(); - resize( 0, 0 ); GroupCenter2Pnts->show(); myEditCurrentArgument = GroupCenter2Pnts->LineEdit1; - GroupCenter2Pnts->LineEdit1->setText(""); - GroupCenter2Pnts->LineEdit2->setText(""); - GroupCenter2Pnts->LineEdit3->setText(""); + GroupCenter2Pnts->LineEdit1->setText( "" ); + GroupCenter2Pnts->LineEdit2->setText( "" ); + GroupCenter2Pnts->LineEdit3->setText( "" ); + GroupCenter2Pnts->PushButton1->setDown( true ); + GroupCenter2Pnts->PushButton2->setDown( false ); + GroupCenter2Pnts->PushButton3->setDown( false ); + GroupCenter2Pnts->LineEdit1->setEnabled( true ); + GroupCenter2Pnts->LineEdit2->setEnabled( false ); + GroupCenter2Pnts->LineEdit3->setEnabled( false ); break; } } + + qApp->processEvents(); + updateGeometry(); + resize( minimumSizeHint() ); myEditCurrentArgument->setFocus(); globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); - connect(aSelMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + + displayPreview(); } //================================================================================= @@ -266,41 +301,31 @@ bool BasicGUI_CircleDlg::ClickOnApply() return false; initName(); - ConstructorsClicked(getConstructorId()); + ConstructorsClicked( getConstructorId() ); return true; } -//================================================================================= -// function : ClickOnCancel() -// purpose : -//================================================================================= -void BasicGUI_CircleDlg::ClickOnCancel() -{ - GEOMBase_Skeleton::ClickOnCancel(); -} - //================================================================================= // function : SelectionIntoArgument() // purpose : Called when selection as changed or other case //================================================================================= void BasicGUI_CircleDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); - + myEditCurrentArgument->setText( "" ); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); SALOME_ListIO aList; - aSelMgr->selectedObjects(aList); + aSelMgr->selectedObjects( aList ); - if (aList.Extent() != 1) - { - if (myEditCurrentArgument == GroupPntVecR->LineEdit1) myPoint = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupPntVecR->LineEdit2) myDir = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == Group3Pnts->LineEdit1) myPoint1 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == Group3Pnts->LineEdit2) myPoint2 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == Group3Pnts->LineEdit3) myPoint3 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit1) myPoint4 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit2) myPoint5 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit3) myPoint6 = GEOM::GEOM_Object::_nil(); + if ( aList.Extent() != 1 ) { + if ( myEditCurrentArgument == GroupPntVecR->LineEdit1 ) myPoint = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == GroupPntVecR->LineEdit2 ) myDir = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit1 ) myPoint4 = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit2 ) myPoint5 = GEOM::GEOM_Object::_nil(); + else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit3 ) myPoint6 = GEOM::GEOM_Object::_nil(); return; } @@ -309,58 +334,93 @@ void BasicGUI_CircleDlg::SelectionIntoArgument() Standard_Boolean aRes = Standard_False; GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(anIO, aRes); - if (!CORBA::is_nil(aSelectedObject) && aRes) - { - QString aName = GEOMBase::GetName(aSelectedObject); + if ( !CORBA::is_nil( aSelectedObject ) && aRes ) { + QString aName = GEOMBase::GetName( aSelectedObject ); + + TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; + if ( myEditCurrentArgument == GroupPntVecR->LineEdit2 ) + aNeedType = TopAbs_EDGE; // If selected Vertex or Edge on the some Shape Get selection Subshape TopoDS_Shape aShape; - if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) - { - TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; - if (myEditCurrentArgument == GroupPntVecR->LineEdit2) - aNeedType = TopAbs_EDGE; - + if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) { TColStd_IndexedMapOfInteger aMap; aSelMgr->GetIndexes(anIO, aMap); - if (aMap.Extent() == 1) // Local Selection - { + if ( aMap.Extent() == 1 ) { // Local Selection int anIndex = aMap(1); - if (aNeedType == TopAbs_EDGE) - aName += QString(":edge_%1").arg(anIndex); + if ( aNeedType == TopAbs_EDGE ) + aName += QString( ":edge_%1" ).arg( anIndex ); else - aName += QString(":vertex_%1").arg(anIndex); + aName += QString( ":vertex_%1" ).arg( anIndex ); //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( aSelectedObject, aName ); if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); + aSelectedObject = aShapesOp->GetSubShape( aSelectedObject, anIndex ); } - else + else { aSelectedObject = aFindedObject; // get Object from study + } } - else // Global Selection - { - if (aShape.ShapeType() != aNeedType) { + else { // Global Selection + if ( aShape.ShapeType() != aNeedType ) { aSelectedObject = GEOM::GEOM_Object::_nil(); aName = ""; } } } + + myEditCurrentArgument->setText( aName ); - myEditCurrentArgument->setText(aName); + if (!aSelectedObject->_is_nil()) { // clear selection if something selected + globalSelection(); + localSelection( GEOM::GEOM_Object::_nil(), aNeedType ); + } - if (myEditCurrentArgument == GroupPntVecR->LineEdit1) myPoint = aSelectedObject; - else if (myEditCurrentArgument == GroupPntVecR->LineEdit2) myDir = aSelectedObject; - else if (myEditCurrentArgument == Group3Pnts->LineEdit1) myPoint1 = aSelectedObject; - else if (myEditCurrentArgument == Group3Pnts->LineEdit2) myPoint2 = aSelectedObject; - else if (myEditCurrentArgument == Group3Pnts->LineEdit3) myPoint3 = aSelectedObject; - else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit1) myPoint4 = aSelectedObject; - else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit2) myPoint5 = aSelectedObject; - else if (myEditCurrentArgument == GroupCenter2Pnts->LineEdit3) myPoint6 = aSelectedObject; + if ( myEditCurrentArgument == GroupPntVecR->LineEdit1 ) { + myPoint = aSelectedObject; + if ( !myPoint->_is_nil() && myDir->_is_nil() ) + GroupPntVecR->PushButton2->click(); + } + else if ( myEditCurrentArgument == GroupPntVecR->LineEdit2 ) { + myDir = aSelectedObject; + if ( !myDir->_is_nil() && myPoint->_is_nil() ) + GroupPntVecR->PushButton1->click(); + } + else if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) { + myPoint1 = aSelectedObject; + if ( !myPoint1->_is_nil() && myPoint2->_is_nil() ) + Group3Pnts->PushButton2->click(); + } + else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) { + myPoint2 = aSelectedObject; + if ( !myPoint2->_is_nil() && myPoint3->_is_nil() ) + Group3Pnts->PushButton3->click(); + } + else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) { + myPoint3 = aSelectedObject; + if ( !myPoint3->_is_nil() && myPoint1->_is_nil() ) + Group3Pnts->PushButton1->click(); + } + else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit1 ) { + myPoint4 = aSelectedObject; + if ( !myPoint4->_is_nil() && myPoint5->_is_nil() ) + GroupCenter2Pnts->PushButton2->click(); + } + else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit2 ) { + myPoint5 = aSelectedObject; + if ( !myPoint5->_is_nil() && myPoint6->_is_nil() ) + GroupCenter2Pnts->PushButton3->click(); + } + else if ( myEditCurrentArgument == GroupCenter2Pnts->LineEdit3 ) { + myPoint6 = aSelectedObject; + if ( !myPoint6->_is_nil() && myPoint4->_is_nil() ) + GroupCenter2Pnts->PushButton1->click(); + } } + displayPreview(); } @@ -373,26 +433,84 @@ void BasicGUI_CircleDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if ( send == GroupPntVecR->PushButton1 ) myEditCurrentArgument = GroupPntVecR->LineEdit1; - else if ( send == GroupPntVecR->PushButton2 ) myEditCurrentArgument = GroupPntVecR->LineEdit2; - else if ( send == Group3Pnts->PushButton1 ) myEditCurrentArgument = Group3Pnts->LineEdit1; - else if ( send == Group3Pnts->PushButton2 ) myEditCurrentArgument = Group3Pnts->LineEdit2; - else if ( send == Group3Pnts->PushButton3 ) myEditCurrentArgument = Group3Pnts->LineEdit3; - else if ( send == GroupCenter2Pnts->PushButton1 ) myEditCurrentArgument = GroupCenter2Pnts->LineEdit1; - else if ( send == GroupCenter2Pnts->PushButton2 ) myEditCurrentArgument = GroupCenter2Pnts->LineEdit2; - else if ( send == GroupCenter2Pnts->PushButton3 ) myEditCurrentArgument = GroupCenter2Pnts->LineEdit3; + if ( send == GroupPntVecR->PushButton1 ) { + myEditCurrentArgument = GroupPntVecR->LineEdit1; + GroupPntVecR->PushButton2->setDown(false); + GroupPntVecR->LineEdit1->setEnabled( true ); + GroupPntVecR->LineEdit2->setEnabled( false ); + } + else if ( send == GroupPntVecR->PushButton2 ) { + myEditCurrentArgument = GroupPntVecR->LineEdit2; + GroupPntVecR->PushButton1->setDown(false); + GroupPntVecR->LineEdit1->setEnabled( false ); + GroupPntVecR->LineEdit2->setEnabled( true ); + } + else if ( send == Group3Pnts->PushButton1 ) { + myEditCurrentArgument = Group3Pnts->LineEdit1; + Group3Pnts->PushButton2->setDown( false ); + Group3Pnts->PushButton3->setDown( false ); + Group3Pnts->LineEdit1->setEnabled( true ); + Group3Pnts->LineEdit2->setEnabled( false ); + Group3Pnts->LineEdit3->setEnabled( false ); + } + else if ( send == Group3Pnts->PushButton2 ) { + myEditCurrentArgument = Group3Pnts->LineEdit2; + Group3Pnts->PushButton1->setDown( false ); + Group3Pnts->PushButton3->setDown( false ); + Group3Pnts->LineEdit1->setEnabled( false ); + Group3Pnts->LineEdit2->setEnabled( true ); + Group3Pnts->LineEdit3->setEnabled( false ); + } + else if ( send == Group3Pnts->PushButton3 ) { + myEditCurrentArgument = Group3Pnts->LineEdit3; + Group3Pnts->PushButton1->setDown( false ); + Group3Pnts->PushButton2->setDown( false ); + Group3Pnts->LineEdit1->setEnabled( false ); + Group3Pnts->LineEdit2->setEnabled( false ); + Group3Pnts->LineEdit3->setEnabled( true ); + } + else if ( send == GroupCenter2Pnts->PushButton1 ) { + myEditCurrentArgument = GroupCenter2Pnts->LineEdit1; + GroupCenter2Pnts->PushButton2->setDown( false ); + GroupCenter2Pnts->PushButton3->setDown( false ); + GroupCenter2Pnts->LineEdit1->setEnabled( true ); + GroupCenter2Pnts->LineEdit2->setEnabled( false ); + GroupCenter2Pnts->LineEdit3->setEnabled( false ); + } + else if ( send == GroupCenter2Pnts->PushButton2 ) { + myEditCurrentArgument = GroupCenter2Pnts->LineEdit2; + GroupCenter2Pnts->PushButton1->setDown( false ); + GroupCenter2Pnts->PushButton3->setDown( false ); + GroupCenter2Pnts->LineEdit1->setEnabled( false ); + GroupCenter2Pnts->LineEdit2->setEnabled( true ); + GroupCenter2Pnts->LineEdit3->setEnabled( false ); + + } + else if ( send == GroupCenter2Pnts->PushButton3 ) { + myEditCurrentArgument = GroupCenter2Pnts->LineEdit3; + GroupCenter2Pnts->PushButton1->setDown( false ); + GroupCenter2Pnts->PushButton2->setDown( false ); + GroupCenter2Pnts->LineEdit1->setEnabled( false ); + GroupCenter2Pnts->LineEdit2->setEnabled( false ); + GroupCenter2Pnts->LineEdit3->setEnabled( true ); + } + myEditCurrentArgument->setFocus(); - if (myEditCurrentArgument == GroupPntVecR->LineEdit2) { + if ( myEditCurrentArgument == GroupPntVecR->LineEdit2 ) { globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); } else { globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); } - SelectionIntoArgument(); + + myEditCurrentArgument->setFocus(); + // SelectionIntoArgument(); + send->setDown(true); + displayPreview(); } //================================================================================= @@ -409,13 +527,13 @@ void BasicGUI_CircleDlg::LineEditReturnPressed() send == Group3Pnts->LineEdit3 || send == GroupCenter2Pnts->LineEdit1 || send == GroupCenter2Pnts->LineEdit2 || - send == GroupCenter2Pnts->LineEdit3 ) - { + send == GroupCenter2Pnts->LineEdit3 ) { myEditCurrentArgument = send; GEOMBase_Skeleton::LineEditReturnPressed(); } } + //================================================================================= // function : ActivateThisDialog() // purpose : @@ -423,19 +541,21 @@ void BasicGUI_CircleDlg::LineEditReturnPressed() void BasicGUI_CircleDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); ConstructorsClicked( getConstructorId() ); } + //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void BasicGUI_CircleDlg::enterEvent(QEvent* e) +void BasicGUI_CircleDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -464,12 +584,12 @@ void BasicGUI_CircleDlg::ValueChangedInSpinBox() //================================================================================= double BasicGUI_CircleDlg::getRadius() const { - switch (getConstructorId()) - { + double r = 0.; + switch ( getConstructorId() ) { case 0: - return GroupPntVecR->SpinBox_DX->GetValue(); + r = GroupPntVecR->SpinBox_DX->value(); break; } - return 0.; + return r; } //================================================================================= @@ -494,16 +614,21 @@ static bool isEqual( const GEOM::GEOM_Object_var& thePnt1, const GEOM::GEOM_Obje // function : isValid // purpose : //================================================================================= -bool BasicGUI_CircleDlg::isValid(QString& msg) +bool BasicGUI_CircleDlg::isValid( QString& msg ) { const int id = getConstructorId(); - if ( id == 0 ) - return !myPoint->_is_nil() && !myDir->_is_nil() && getRadius() > 0; + if ( id == 0 ) { + //return !myPoint->_is_nil() && !myDir->_is_nil() && getRadius() > 0; + //nil point means origin of global CS + //nil vector means Z axis + bool ok = GroupPntVecR->SpinBox_DX->isValid(msg, !IsPreview()); + return getRadius() > 0 && ok; + } else if ( id == 1 ) return !myPoint1->_is_nil() && !myPoint2->_is_nil() && !myPoint3->_is_nil() && !isEqual( myPoint1, myPoint2 ) && !isEqual( myPoint1, myPoint3 ) && !isEqual( myPoint2, myPoint3 ); else if ( id == 2 ) - return !myPoint4->_is_nil() && !myPoint5->_is_nil() && !myPoint6->_is_nil() && + return !myPoint4->_is_nil() && !myPoint5->_is_nil() && !myPoint6->_is_nil() && !isEqual( myPoint4, myPoint5 ) && !isEqual( myPoint5, myPoint6 ) && !isEqual( myPoint4, myPoint6 ); return false; } @@ -512,49 +637,42 @@ bool BasicGUI_CircleDlg::isValid(QString& msg) // function : execute // purpose : //================================================================================= -bool BasicGUI_CircleDlg::execute(ObjectList& objects) +bool BasicGUI_CircleDlg::execute( ObjectList& objects ) { bool res = false; - + GEOM::GEOM_Object_var anObj; - - switch (getConstructorId()) - { - case 0: - anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())-> - MakeCirclePntVecR(myPoint, myDir, getRadius()); - res = true; - break; - case 1: - anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())-> - MakeCircleThreePnt(myPoint1, myPoint2, myPoint3); + + switch ( getConstructorId() ) { + case 0 : + { + QStringList aParameters; + aParameters << GroupPntVecR->SpinBox_DX->text(); + anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeCirclePntVecR( myPoint, myDir, getRadius() ); + if ( !anObj->_is_nil() && !IsPreview() ) + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + res = true; + break; + } + case 1 : + anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeCircleThreePnt( myPoint1, myPoint2, myPoint3 ); res = true; break; case 2: - anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())-> - MakeCircleCenter2Pnt(myPoint4, myPoint5, myPoint6); + anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeCircleCenter2Pnt( myPoint4, myPoint5, myPoint6 ); res = true; break; } - - if (!anObj->_is_nil()) - objects.push_back(anObj._retn()); + + if ( !anObj->_is_nil() ) + objects.push_back( anObj._retn() ); else { - MESSAGE("Execute Object is NULL!"); + MESSAGE( "Execute Object is NULL!" ); } - + return res; } -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void BasicGUI_CircleDlg::closeEvent (QCloseEvent* e) -{ - GEOMBase_Skeleton::closeEvent(e); -} - //================================================================================= // function : addSubshapeToStudy // purpose : virtual method to add new SubObjects if local selection @@ -563,11 +681,12 @@ void BasicGUI_CircleDlg::addSubshapesToStudy() { QMap objMap; -switch (getConstructorId()) - { + switch ( getConstructorId() ) { case 0: - objMap[GroupPntVecR->LineEdit1->text()] = myPoint; - objMap[GroupPntVecR->LineEdit2->text()] = myDir; + if (!CORBA::is_nil(myPoint)) + objMap[GroupPntVecR->LineEdit1->text()] = myPoint; + if (!CORBA::is_nil(myDir)) + objMap[GroupPntVecR->LineEdit2->text()] = myDir; break; case 1: objMap[Group3Pnts->LineEdit1->text()] = myPoint1; @@ -580,5 +699,5 @@ switch (getConstructorId()) objMap[GroupCenter2Pnts->LineEdit3->text()] = myPoint6; break; } - addSubshapesToFather( objMap ); + addSubshapesToFather( objMap ); } diff --git a/src/BasicGUI/BasicGUI_CircleDlg.h b/src/BasicGUI/BasicGUI_CircleDlg.h index cbe68d98b..b1574fd6d 100644 --- a/src/BasicGUI/BasicGUI_CircleDlg.h +++ b/src/BasicGUI/BasicGUI_CircleDlg.h @@ -1,88 +1,82 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BasicGUI_CircleDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_CircleDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef BASICGUI_CIRCLEDLG_H +#define BASICGUI_CIRCLEDLG_H -#ifndef DIALOGBOX_CIRCLE_H -#define DIALOGBOX_CIRCLE_H +#include -#include "GEOM_BasicGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel1Spin.h" -#include "DlgRef_3Sel_QTD.h" - -#include "BasicGUI.h" +class DlgRef_3Sel; +class DlgRef_2Sel1Spin; //================================================================================= // class : BasicGUI_CircleDlg // purpose : //================================================================================= -class GEOM_BASICGUI_EXPORT BasicGUI_CircleDlg : public GEOMBase_Skeleton +class BasicGUI_CircleDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BasicGUI_CircleDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BasicGUI_CircleDlg(); + BasicGUI_CircleDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~BasicGUI_CircleDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void closeEvent( QCloseEvent* e ); - virtual void addSubshapesToStudy(); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + + virtual void addSubshapesToStudy(); + +private: + void Init(); + void enterEvent( QEvent* ); + double getRadius() const; private: - void Init(); - void enterEvent(QEvent* e); - double getRadius() const; + GEOM::GEOM_Object_var myPoint, myDir, myPoint1, myPoint2, myPoint3, myPoint4, myPoint5, myPoint6; - GEOM::GEOM_Object_var myPoint, myDir, myPoint1, myPoint2, myPoint3, myPoint4, myPoint5, myPoint6; - CORBA::Double myRadius; - - DlgRef_2Sel1Spin* GroupPntVecR; - DlgRef_3Sel_QTD* Group3Pnts; - DlgRef_3Sel_QTD* GroupCenter2Pnts; + DlgRef_2Sel1Spin* GroupPntVecR; + DlgRef_3Sel* Group3Pnts; + DlgRef_3Sel* GroupCenter2Pnts; private slots: - void ClickOnOk(); - void ClickOnCancel(); - bool ClickOnApply(); + void ClickOnOk(); + bool ClickOnApply(); - void ActivateThisDialog(); - void DeactivateActiveDialog(); + void ActivateThisDialog(); + void DeactivateActiveDialog(); - void SelectionIntoArgument(); + void SelectionIntoArgument(); - void ConstructorsClicked( int ); - void LineEditReturnPressed(); - void SetEditCurrentArgument(); - void ValueChangedInSpinBox(); + void ConstructorsClicked( int ); + void LineEditReturnPressed(); + void SetEditCurrentArgument(); + void ValueChangedInSpinBox(); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_CIRCLE_H +#endif // BASICGUI_CIRCLEDLG_H diff --git a/src/BasicGUI/BasicGUI_CurveDlg.cxx b/src/BasicGUI/BasicGUI_CurveDlg.cxx index 49d8bf5cc..05a7baf26 100644 --- a/src/BasicGUI/BasicGUI_CurveDlg.cxx +++ b/src/BasicGUI/BasicGUI_CurveDlg.cxx @@ -1,44 +1,42 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_CurveDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : BasicGUI_CurveDlg.cxx -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - #include "BasicGUI_CurveDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "SalomeApp_Study.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include +#include +#include +#include +#include +#include -#include "utilities.h" - -#include "SALOME_ListIteratorOfListIO.hxx" -#include "SALOME_ListIO.hxx" +#include +#include #include #include @@ -46,10 +44,7 @@ #include #include -#include "GEOMImpl_Types.hxx" - -using namespace std; -#include +#include //================================================================================= // class : BasicGUI_CurveDlg() @@ -58,35 +53,37 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BasicGUI_CurveDlg::BasicGUI_CurveDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BasicGUI_CurveDlg::BasicGUI_CurveDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_POLYLINE"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SPLINE"))); - QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_BEZIER"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_POLYLINE" ) ) ); + QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_SPLINE" ) ) ); + QPixmap image3( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_BEZIER" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); - - setCaption(tr("GEOM_CURVE_TITLE")); + setWindowTitle( tr( "GEOM_CURVE_TITLE" ) ); /***************************************************************/ - RadioButton1->setPixmap( image0 ); - RadioButton2->setPixmap( image3 ); - RadioButton3->setPixmap( image2 ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setIcon( image3 ); + mainFrame()->RadioButton3->setIcon( image2 ); + + GroupPoints = new DlgRef_1Sel( centralWidget() ); - GroupPoints = new DlgRef_1Sel_QTD( this, "GroupPoints" ); GroupPoints->GroupBox1->setTitle( tr( "GEOM_NODES" ) ); - GroupPoints->TextLabel1->setText( tr("GEOM_POINTS") ); - GroupPoints->PushButton1->setPixmap(image1); + GroupPoints->TextLabel1->setText( tr( "GEOM_POINTS" ) ); + GroupPoints->PushButton1->setIcon( image1 ); + GroupPoints->PushButton1->setDown( true ); GroupPoints->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupPoints, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); /***************************************************************/ - setHelpFileName("create_curve_page.html"); + setHelpFileName( "create_curve_page.html" ); Init(); } @@ -114,23 +111,23 @@ void BasicGUI_CurveDlg::Init() myPoints->length( 0 ); globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); /* signals and slots connections */ - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); - connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); - connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog( ) ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ) ; + initName( tr( "GEOM_CURVE" ) ); ConstructorsClicked( 0 ); } @@ -142,12 +139,12 @@ void BasicGUI_CurveDlg::Init() void BasicGUI_CurveDlg::ConstructorsClicked( int id ) { QString aTitle = tr( id == 0 ? "GEOM_POLYLINE" : id == 1 ? "GEOM_BEZIER" : "GEOM_INTERPOL" ); - GroupConstructors->setTitle( aTitle ); + mainFrame()->GroupConstructors->setTitle( aTitle ); - myPoints = new GEOM::ListOfGO(); + myPoints = new GEOM::ListOfGO(); myPoints->length( 0 ); - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); } @@ -197,21 +194,11 @@ bool BasicGUI_CurveDlg::ClickOnApply() return false; initName(); - ConstructorsClicked( getConstructorId() ); globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); return true; } -//======================================================================= -// function : ClickOnCancel() -// purpose : -//======================================================================= -void BasicGUI_CurveDlg::ClickOnCancel() -{ - GEOMBase_Skeleton::ClickOnCancel(); -} - //================================================================================= /*! function : isPointInList() * purpose : Check is point (theObject) in the list \a thePoints. @@ -219,23 +206,23 @@ void BasicGUI_CurveDlg::ClickOnCancel() * \retval -1, if point not in list, else 1 in list */ //================================================================================= -static int isPointInList(list& thePoints, - GEOM::GEOM_Object_var& theObject) +static int isPointInList( std::list& thePoints, + GEOM::GEOM_Object_var& theObject ) { int len = thePoints.size(); - if(len<1){ + if ( len < 1 ) { return -1; } - for(list::iterator i=thePoints.begin();i!=thePoints.end();i++) - if (string((*i)->GetEntry()) == string(theObject->GetEntry())){ + for ( std::list::iterator i = thePoints.begin(); i != thePoints.end(); i++ ) { + if ( std::string( (*i)->GetEntry() ) == std::string( theObject->GetEntry() ) ) { return 1; } + } return -1; } - //================================================================================= /*! function : removeUnnecessaryPnt() * purpose : Remove unnecessary points from list \a theOldPoints @@ -244,24 +231,24 @@ static int isPointInList(list& thePoints, * \li \a theNewPoints - not ordered sequence with necessary points */ //================================================================================= -static void removeUnnecessaryPnt(list& theOldPoints, - GEOM::ListOfGO_var& theNewPoints) +static void removeUnnecessaryPnt( std::list& theOldPoints, + GEOM::ListOfGO_var& theNewPoints ) { - list objs_to_remove; - for(list::iterator i=theOldPoints.begin();i!=theOldPoints.end();i++){ + std::list objs_to_remove; + for ( std::list::iterator i = theOldPoints.begin(); i != theOldPoints.end(); i++ ) { bool found = false; - for (int j=0;jlength() && !found ; j++){ - if(string((*i)->GetEntry()) == string(theNewPoints[j]->GetEntry())){ + for ( int j = 0; j < theNewPoints->length() && !found ; j++ ) { + if ( std::string( (*i)->GetEntry() ) == std::string( theNewPoints[j]->GetEntry() ) ) { found = true; } } - if(!found){ - objs_to_remove.push_back(*i); + if ( !found ) { + objs_to_remove.push_back( *i ); //cout << "removed: " << (*i)->GetEntry() << endl; } } - for(list::iterator i=objs_to_remove.begin();i!=objs_to_remove.end();i++){ - theOldPoints.remove(*i); + for ( std::list::iterator i = objs_to_remove.begin(); i != objs_to_remove.end(); i++ ) { + theOldPoints.remove( *i ); } } @@ -271,102 +258,99 @@ static void removeUnnecessaryPnt(list& theOldPoints, //================================================================================= void BasicGUI_CurveDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); Standard_Boolean aRes = Standard_False; - int IOC = IObjectCount(); - // bool is_append = myPoints->length() < IOC; // if true - add point, else remove - // myPoints->length( IOC ); // this length may be greater than number of objects, - // that will actually be put into myPoints - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - SalomeApp_Application* app = - dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); - SalomeApp_Study* appStudy = dynamic_cast( app->activeStudy() ); + SalomeApp_Application* app = myGeomGUI->getApp(); + SalomeApp_Study* appStudy = dynamic_cast(app->activeStudy()); _PTR(Study) aDStudy = appStudy->studyDS(); - GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); int anIndex; TopoDS_Shape aShape; TColStd_IndexedMapOfInteger aMapIndexes; GEOM::GEOM_Object_var anObject; std::list aList; + LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); SALOME_ListIO selected; - aSelMgr->selectedObjects( selected, QString::null, false ); + aSelMgr->selectedObjects(selected, QString::null, false); - for ( SALOME_ListIteratorOfListIO anIt( selected ); anIt.More(); anIt.Next() ) - { - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIt.Value(), aRes ); - - if ( !CORBA::is_nil( aSelectedObject ) && aRes ) - { - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) - { - aSelMgr->GetIndexes( anIt.Value(), aMapIndexes ); - - if ( aMapIndexes.Extent() > 0 ) - { - for (int ii=1; ii <= aMapIndexes.Extent(); ii++) { - anIndex = aMapIndexes(ii); - QString aName = GEOMBase::GetName( aSelectedObject ); - aName = aName + ":vertex_" + QString::number( anIndex ); - anObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); - //Find Object in study - _PTR(SObject) obj ( aDStudy->FindObjectID( anIt.Value()->getEntry() ) ); - bool inStudy = false; - for (_PTR(ChildIterator) iit (aDStudy->NewChildIterator(obj)); iit->More(); iit->Next()) { - _PTR(SObject) child (iit->Value()); - QString aChildName = child->GetName(); - if (aChildName == aName) { - inStudy = true; - CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject(iit->Value()); - anObject = GEOM::GEOM_Object::_narrow( corbaObj ); - } - } - - if (!inStudy) - GeometryGUI::GetGeomGen()->AddInStudy(GeometryGUI::ClientStudyToStudy(aDStudy), - anObject, aName, aSelectedObject); - - int pos = isPointInList(myOrderedSel, anObject); - if (pos==-1) { - myOrderedSel.push_back(anObject); - } - // if (!inStudy) - aList.push_back(anObject); - } - } else { // aMap.Extent() == 0 - int pos = isPointInList(myOrderedSel,aSelectedObject); - if(pos==-1) - myOrderedSel.push_back(aSelectedObject); - aList.push_back(aSelectedObject); - } + int IOC = selected.Extent(); + // bool is_append = myPoints->length() < IOC; // if true - add point, else remove + // myPoints->length( IOC ); // this length may be greater than number of objects, + // that will actually be put into myPoints + + for (SALOME_ListIteratorOfListIO anIt (selected); anIt.More(); anIt.Next()) { + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(anIt.Value(), aRes); + if (!CORBA::is_nil(aSelectedObject) && aRes) { + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { + aSelMgr->GetIndexes(anIt.Value(), aMapIndexes); + + if (aMapIndexes.Extent() > 0) { + for (int ii = 1; ii <= aMapIndexes.Extent(); ii++) { + anIndex = aMapIndexes(ii); + QString aName = GEOMBase::GetName( aSelectedObject ); + aName = aName + ":vertex_" + QString::number( anIndex ); + anObject = aShapesOp->GetSubShape( aSelectedObject, anIndex ); + //Find Object in study + _PTR(SObject) obj ( aDStudy->FindObjectID( anIt.Value()->getEntry() ) ); + bool inStudy = false; + _PTR(ChildIterator) iit( aDStudy->NewChildIterator( obj ) ); + for (; iit->More() && !inStudy; iit->Next()) { + _PTR(SObject) child( iit->Value() ); + QString aChildName = child->GetName().c_str(); + if ( aChildName == aName ) { + inStudy = true; + CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject( iit->Value() ); + anObject = GEOM::GEOM_Object::_narrow( corbaObj ); + } } - } + + if ( !inStudy ) + GeometryGUI::GetGeomGen()->AddInStudy( GeometryGUI::ClientStudyToStudy( aDStudy ), + anObject, aName.toLatin1().data(), aSelectedObject ); + + int pos = isPointInList( myOrderedSel, anObject ); + if ( pos == -1 ) { + myOrderedSel.push_back( anObject ); + } + // if (!inStudy) + aList.push_back(anObject); + } + } + else { // aMap.Extent() == 0 + int pos = isPointInList( myOrderedSel, aSelectedObject ); + if ( pos == -1 ) + myOrderedSel.push_back( aSelectedObject ); + aList.push_back( aSelectedObject ); + } + } } - + } + myPoints->length( aList.size() ); - int k=0; - for (list::iterator j=aList.begin();j!=aList.end();j++) + int k = 0; + for ( std::list::iterator j = aList.begin(); j != aList.end(); j++ ) myPoints[k++] = *j; - if(IOC == 0) + if ( IOC == 0 ) myOrderedSel.clear(); else - removeUnnecessaryPnt(myOrderedSel, myPoints); + removeUnnecessaryPnt( myOrderedSel, myPoints ); // if ( myOrderedSel.size() == myPoints->length() ) { myPoints->length( myOrderedSel.size() ); - k=0; - for (list::iterator j=myOrderedSel.begin();j!=myOrderedSel.end();j++) + k = 0; + for ( std::list::iterator j = myOrderedSel.begin(); j != myOrderedSel.end(); j++ ) myPoints[k++] = *j; // } if ( myPoints->length() > 0 ) GroupPoints->LineEdit1->setText( QString::number( myPoints->length() ) + "_" + tr( "GEOM_POINT" ) + tr( "_S_" ) ); - - displayPreview(); + +displayPreview(); } @@ -377,11 +361,12 @@ void BasicGUI_CurveDlg::SelectionIntoArgument() void BasicGUI_CurveDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); globalSelection(); // close local contexts, if any localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + ConstructorsClicked( getConstructorId() ); } @@ -399,9 +384,9 @@ void BasicGUI_CurveDlg::DeactivateActiveDialog() // function : enterEvent() // purpose : //================================================================================= -void BasicGUI_CurveDlg::enterEvent(QEvent* e) +void BasicGUI_CurveDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -433,8 +418,7 @@ bool BasicGUI_CurveDlg::execute( ObjectList& objects ) GEOM::GEOM_Object_var anObj; - switch ( getConstructorId() ) - { + switch ( getConstructorId() ) { case 0 : anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakePolyline( myPoints ); res = true; @@ -454,13 +438,3 @@ bool BasicGUI_CurveDlg::execute( ObjectList& objects ) return res; } - -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void BasicGUI_CurveDlg::closeEvent( QCloseEvent* e ) -{ - GEOMBase_Skeleton::closeEvent( e ); -} - diff --git a/src/BasicGUI/BasicGUI_CurveDlg.h b/src/BasicGUI/BasicGUI_CurveDlg.h index 6a1b6fa9b..5c3730859 100644 --- a/src/BasicGUI/BasicGUI_CurveDlg.h +++ b/src/BasicGUI/BasicGUI_CurveDlg.h @@ -1,83 +1,75 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BasicGUI_CurveDlg.h -// Author : Alexander SLADKOV -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_CurveDlg.h +// Author : Alexander SLADKOV, Open CASCADE S.A.S. (alexander.sladkov@opencascade.com) +// +#ifndef BASICGUI_CURVEDLG_H +#define BASICGUI_CURVEDLG_H -#ifndef BASICGUI_CURVE_H -#define BASICGUI_CURVE_H - -#include "GEOM_BasicGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_QTD.h" - -#include "BasicGUI.h" +#include #include +class DlgRef_1Sel; + //================================================================================= // class : BasicGUI_CurveDlg // purpose : //================================================================================= -class GEOM_BASICGUI_EXPORT BasicGUI_CurveDlg : public GEOMBase_Skeleton +class BasicGUI_CurveDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BasicGUI_CurveDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BasicGUI_CurveDlg(); - + BasicGUI_CurveDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~BasicGUI_CurveDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); - virtual void closeEvent( QCloseEvent* e ); +private: + void Init(); + void enterEvent( QEvent* ); -private : - void Init(); - void enterEvent(QEvent* e); - - DlgRef_1Sel_QTD* GroupPoints; - GEOM::ListOfGO_var myPoints; - list myOrderedSel;//!< This list used for managing orderes selection +private: + DlgRef_1Sel* GroupPoints; + GEOM::ListOfGO_var myPoints; + std::list myOrderedSel; //!< This list used for managing orderes selection private slots: - void ClickOnOk(); - void ClickOnCancel(); - bool ClickOnApply(); - - void ActivateThisDialog(); - void DeactivateActiveDialog(); - - void ConstructorsClicked( int ); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - + void ClickOnOk(); + bool ClickOnApply(); + + void ActivateThisDialog(); + void DeactivateActiveDialog(); + + void ConstructorsClicked( int ); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // BASICGUI_CURVE_H +#endif // BASICGUI_CURVEDLG_H diff --git a/src/BasicGUI/BasicGUI_EllipseDlg.cxx b/src/BasicGUI/BasicGUI_EllipseDlg.cxx index 04baab168..9b9eb6c07 100644 --- a/src/BasicGUI/BasicGUI_EllipseDlg.cxx +++ b/src/BasicGUI/BasicGUI_EllipseDlg.cxx @@ -1,36 +1,39 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_EllipseDlg.cxx +// Author : Nicolas REJNERI, Open CASCADE S.A.S. // -// -// File : BasicGUI_EllipseDlg.cxx -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - #include "BasicGUI_EllipseDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include + +#include +#include + +#include +#include +#include +#include #include #include @@ -39,13 +42,7 @@ #include #include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : BasicGUI_EllipseDlg() @@ -54,38 +51,43 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BasicGUI_EllipseDlg::BasicGUI_EllipseDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BasicGUI_EllipseDlg::BasicGUI_EllipseDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_ELLIPSE_PV"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_ELLIPSE_PV" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_ELLIPSE_TITLE")); + setWindowTitle( tr( "GEOM_ELLIPSE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_ELLIPSE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_ELLIPSE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_2Sel2Spin(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - GroupPoints->TextLabel1->setText(tr("GEOM_CENTER")); - GroupPoints->TextLabel2->setText(tr("GEOM_VECTOR")); - GroupPoints->TextLabel3->setText(tr("GEOM_RADIUS_MAJOR")); - GroupPoints->TextLabel4->setText(tr("GEOM_RADIUS_MINOR")); - GroupPoints->PushButton1->setPixmap(image1); - GroupPoints->PushButton2->setPixmap(image1); + GroupPoints = new DlgRef_2Sel2Spin( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_CENTER" ) + " (Origin by default)" ); + GroupPoints->TextLabel2->setText( tr( "GEOM_VECTOR" ) + " (Z axis by default)" ); + GroupPoints->TextLabel3->setText( tr( "GEOM_RADIUS_MAJOR" ) ); + GroupPoints->TextLabel4->setText( tr( "GEOM_RADIUS_MINOR" ) ); + GroupPoints->PushButton1->setIcon( image1 ); + GroupPoints->PushButton2->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); GroupPoints->LineEdit2->setReadOnly( true ); + GroupPoints->LineEdit1->setEnabled( true ); + GroupPoints->LineEdit2->setEnabled( false ); - Layout1->addWidget(GroupPoints, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); /***************************************************************/ - setHelpFileName("create_ellipse_page.html"); + setHelpFileName( "create_ellipse_page.html" ); Init(); } @@ -109,50 +111,60 @@ void BasicGUI_EllipseDlg::Init() /* init variables */ myEditCurrentArgument = GroupPoints->LineEdit1; globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + GroupPoints->PushButton1->setDown(true); myPoint = myDir = GEOM::GEOM_Object::_nil(); /* Get setting of step value from file configuration */ SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 ); double aMajorR( 200. ), aMinorR( 100. ); /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_DX->RangeStepAndValidator( 0.001, COORD_MAX, step, DBL_DIGITS_DISPLAY ); - GroupPoints->SpinBox_DY->RangeStepAndValidator( 0.001, COORD_MAX, step, DBL_DIGITS_DISPLAY ); - GroupPoints->SpinBox_DX->SetValue( aMajorR ); - GroupPoints->SpinBox_DY->SetValue( aMinorR ); + initSpinBox( GroupPoints->SpinBox_DX, 0.000001, COORD_MAX, step, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( GroupPoints->SpinBox_DY, 0.000001, COORD_MAX, step, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupPoints->SpinBox_DX->setValue( aMajorR ); + GroupPoints->SpinBox_DY->setValue( aMinorR ); /* signals and slots connections */ - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); - connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); - connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupPoints->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupPoints->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); + connect( GroupPoints->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupPoints->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupPoints->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupPoints->SpinBox_DY, SLOT(SetStep(double))); + connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_ELLIPSE" ) ); + + displayPreview(); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void BasicGUI_EllipseDlg::SetDoubleSpinBoxStep( double step ) +{ + GroupPoints->SpinBox_DX->setSingleStep(step); + GroupPoints->SpinBox_DY->setSingleStep(step); +} + + //================================================================================= // function : ClickOnOk() // purpose : @@ -163,6 +175,7 @@ void BasicGUI_EllipseDlg::ClickOnOk() ClickOnCancel(); } + //================================================================================= // function : ClickOnApply() // purpose : @@ -178,59 +191,54 @@ bool BasicGUI_EllipseDlg::ClickOnApply() myPoint = myDir = GEOM::GEOM_Object::_nil(); GroupPoints->LineEdit1->setText( "" ); GroupPoints->LineEdit2->setText( "" ); + GroupPoints->PushButton1->setDown(true); + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit1->setEnabled( true ); + GroupPoints->LineEdit2->setEnabled( false ); myEditCurrentArgument = GroupPoints->LineEdit1; - //globalSelection(GEOM_POINT); + globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); - + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + displayPreview(); + return true; } -//======================================================================= -// function : ClickOnCancel() -// purpose : -//======================================================================= -void BasicGUI_EllipseDlg::ClickOnCancel() -{ - GEOMBase_Skeleton::ClickOnCancel(); -} - //================================================================================= // function : SelectionIntoArgument() // purpose : Called when selection as changed or other case //================================================================================= void BasicGUI_EllipseDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); - if ( IObjectCount() != 1 ) - { - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myDir = GEOM::GEOM_Object::_nil(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { + if (myEditCurrentArgument == GroupPoints->LineEdit1) myPoint = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit2) myDir = GEOM::GEOM_Object::_nil(); return; } Standard_Boolean aRes = Standard_False; - Handle(SALOME_InteractiveObject) anIO = firstIObject(); - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), aRes); - if (!CORBA::is_nil(aSelectedObject) && aRes) - { + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(anIO, aRes); + if (!CORBA::is_nil(aSelectedObject) && aRes) { QString aName = GEOMBase::GetName(aSelectedObject); - + // Get Selected object if selected subshape TopoDS_Shape aShape; - if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) - { - TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; - if (myEditCurrentArgument == GroupPoints->LineEdit2) - aNeedType = TopAbs_EDGE; - - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; + if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) + aNeedType = TopAbs_EDGE; + + if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) { TColStd_IndexedMapOfInteger aMap; aSelMgr->GetIndexes(anIO, aMap); - if (aMap.Extent() == 1) - { + if (aMap.Extent() == 1) { int anIndex = aMap(1); if (aNeedType == TopAbs_EDGE) aName += QString(":edge_%1").arg(anIndex); @@ -240,26 +248,39 @@ void BasicGUI_EllipseDlg::SelectionIntoArgument() //Find SubShape Object in Father GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); - } else { + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { aSelectedObject = aFindedObject; // get Object from study } } - else // Global Selection - { + else { // Global Selection if (aShape.ShapeType() != aNeedType) { aSelectedObject = GEOM::GEOM_Object::_nil(); aName = ""; } } } + + myEditCurrentArgument->setText( aName ); - myEditCurrentArgument->setText(aName); + if (!aSelectedObject->_is_nil()) { // clear selection if something selected + globalSelection(); + localSelection( GEOM::GEOM_Object::_nil(), aNeedType ); + } - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint = aSelectedObject; - else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myDir = aSelectedObject; + if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) { + myPoint = aSelectedObject; + if ( !myPoint->_is_nil() && myDir->_is_nil() ) + GroupPoints->PushButton2->click(); + } + else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) { + myDir = aSelectedObject; + if ( !myDir->_is_nil() && myPoint->_is_nil() ) + GroupPoints->PushButton1->click(); + } } displayPreview(); @@ -273,18 +294,30 @@ void BasicGUI_EllipseDlg::SelectionIntoArgument() void BasicGUI_EllipseDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - globalSelection( GEOM_POINT ); - if ( send == GroupPoints->PushButton1 ) myEditCurrentArgument = GroupPoints->LineEdit1; - else if ( send == GroupPoints->PushButton2 ) myEditCurrentArgument = GroupPoints->LineEdit2; + if ( send == GroupPoints->PushButton1 ) { + myEditCurrentArgument = GroupPoints->LineEdit1; + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit1->setEnabled( true ); + GroupPoints->LineEdit2->setEnabled( false ); + } + else if ( send == GroupPoints->PushButton2 ) { + myEditCurrentArgument = GroupPoints->LineEdit2; + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled( false ); + GroupPoints->LineEdit2->setEnabled( true ); + } + + globalSelection(); // close local contexts, if any + TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; + if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) + aNeedType = TopAbs_EDGE; + localSelection( GEOM::GEOM_Object::_nil(), aNeedType ); myEditCurrentArgument->setFocus(); - globalSelection(); // close local contexts, if any - if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); - else - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); - SelectionIntoArgument(); + //SelectionIntoArgument(); + send->setDown(true); + displayPreview(); } //================================================================================= @@ -295,8 +328,7 @@ void BasicGUI_EllipseDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); if ( send == GroupPoints->LineEdit1 || - send == GroupPoints->LineEdit2 ) - { + send == GroupPoints->LineEdit2 ) { myEditCurrentArgument = send; GEOMBase_Skeleton::LineEditReturnPressed(); } @@ -310,9 +342,9 @@ void BasicGUI_EllipseDlg::LineEditReturnPressed() void BasicGUI_EllipseDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); - + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + GroupPoints->LineEdit1->setFocus(); myEditCurrentArgument = GroupPoints->LineEdit1; @@ -322,7 +354,7 @@ void BasicGUI_EllipseDlg::ActivateThisDialog() myPoint = myDir = GEOM::GEOM_Object::_nil(); //globalSelection( GEOM_POINT ); globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); } //================================================================================= @@ -339,9 +371,9 @@ void BasicGUI_EllipseDlg::DeactivateActiveDialog() // function : enterEvent() // purpose : //================================================================================= -void BasicGUI_EllipseDlg::enterEvent(QEvent* e) +void BasicGUI_EllipseDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -349,7 +381,7 @@ void BasicGUI_EllipseDlg::enterEvent(QEvent* e) // function : ValueChangedInSpinBox() // purpose : //================================================================================= -void BasicGUI_EllipseDlg::ValueChangedInSpinBox(double newValue) +void BasicGUI_EllipseDlg::ValueChangedInSpinBox( double newValue ) { displayPreview(); } @@ -369,14 +401,19 @@ GEOM::GEOM_IOperations_ptr BasicGUI_EllipseDlg::createOperation() //================================================================================= bool BasicGUI_EllipseDlg::isValid( QString& msg ) { - double aMajorR = GroupPoints->SpinBox_DX->GetValue(); - double aMinorR = GroupPoints->SpinBox_DY->GetValue(); - if ( aMajorR < aMinorR ) - { - msg = tr( "GEOM_ELLIPSE_ERROR_1" ); - return false; + double aMajorR = GroupPoints->SpinBox_DX->value(); + double aMinorR = GroupPoints->SpinBox_DY->value(); + if ( aMajorR < aMinorR ) { + msg = tr( "GEOM_ELLIPSE_ERROR_1" ); + return false; } - return !myPoint->_is_nil() && !myDir->_is_nil(); + //return !myPoint->_is_nil() && !myDir->_is_nil(); + //nil point means origin of global CS + //nil vector means Z axis + bool ok = true; + ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + return ok; } //================================================================================= @@ -385,25 +422,22 @@ bool BasicGUI_EllipseDlg::isValid( QString& msg ) //================================================================================= bool BasicGUI_EllipseDlg::execute( ObjectList& objects ) { - double aMajorR = GroupPoints->SpinBox_DX->GetValue(); - double aMinorR = GroupPoints->SpinBox_DY->GetValue(); + double aMajorR = GroupPoints->SpinBox_DX->value(); + double aMinorR = GroupPoints->SpinBox_DY->value(); + + QStringList aParameters; + aParameters<SpinBox_DX->text(); + aParameters<SpinBox_DY->text(); + GEOM::GEOM_Object_var anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeEllipse( myPoint, myDir, aMajorR, aMinorR ); - - if ( !anObj->_is_nil() ) + if ( !anObj->_is_nil() ) { + if ( !IsPreview() ) + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); objects.push_back( anObj._retn() ); - + } return true; } -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void BasicGUI_EllipseDlg::closeEvent( QCloseEvent* e ) -{ - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : addSubshapeToStudy // purpose : virtual method to add new SubObjects if local selection @@ -412,8 +446,10 @@ void BasicGUI_EllipseDlg::addSubshapesToStudy() { QMap objMap; - objMap[GroupPoints->LineEdit1->text()] = myPoint; - objMap[GroupPoints->LineEdit2->text()] = myDir; + if (!CORBA::is_nil(myPoint)) + objMap[GroupPoints->LineEdit1->text()] = myPoint; + if (!CORBA::is_nil(myDir)) + objMap[GroupPoints->LineEdit2->text()] = myDir; addSubshapesToFather( objMap ); } diff --git a/src/BasicGUI/BasicGUI_EllipseDlg.h b/src/BasicGUI/BasicGUI_EllipseDlg.h index 5cf4f5a73..ab6ef7cb4 100644 --- a/src/BasicGUI/BasicGUI_EllipseDlg.h +++ b/src/BasicGUI/BasicGUI_EllipseDlg.h @@ -1,81 +1,75 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BasicGUI_EllipseDlg.h -// Author : Nicolas REJNERI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_EllipseDlg.h +// Author : Nicolas REJNERI, Open CASCADE S.A.S. +// +#ifndef BASICGUI_ELLIPSEDLG_H +#define BASICGUI_ELLIPSEDLG_H -#ifndef BASICGUI_ELLIPSE_H -#define BASICGUI_ELLIPSE_H +#include -#include "GEOM_BasicGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel2Spin.h" - -#include "BasicGUI.h" +class DlgRef_2Sel2Spin; //================================================================================= // class : BasicGUI_EllipseDlg // purpose : //================================================================================= -class GEOM_BASICGUI_EXPORT BasicGUI_EllipseDlg : public GEOMBase_Skeleton +class BasicGUI_EllipseDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BasicGUI_EllipseDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BasicGUI_EllipseDlg(); + BasicGUI_EllipseDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~BasicGUI_EllipseDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void closeEvent( QCloseEvent* e ); - virtual void addSubshapesToStudy(); - -private : - void Init(); - void enterEvent(QEvent* e); - - GEOM::GEOM_Object_var myPoint, myDir; - - DlgRef_2Sel2Spin* GroupPoints; + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); + +private: + void Init(); + void enterEvent( QEvent* ); +private: + GEOM::GEOM_Object_var myPoint, myDir; + + DlgRef_2Sel2Spin* GroupPoints; + private slots: - void ClickOnOk(); - void ClickOnCancel(); - bool ClickOnApply(); - - void ActivateThisDialog(); - void DeactivateActiveDialog(); - - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ValueChangedInSpinBox(double newValue); - + void ClickOnOk(); + bool ClickOnApply(); + + void ActivateThisDialog(); + void DeactivateActiveDialog(); + + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ValueChangedInSpinBox( double ); + void SetDoubleSpinBoxStep( double ); }; -#endif // BASICGUI_ELLIPSE_H +#endif // BASICGUI_ELLIPSEDLG_H diff --git a/src/BasicGUI/BasicGUI_LineDlg.cxx b/src/BasicGUI/BasicGUI_LineDlg.cxx index 1c5770ed9..03159903b 100644 --- a/src/BasicGUI/BasicGUI_LineDlg.cxx +++ b/src/BasicGUI/BasicGUI_LineDlg.cxx @@ -1,37 +1,38 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_LineDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : BasicGUI_LineDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "BasicGUI_LineDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include + +#include +#include +#include +#include #include #include @@ -39,13 +40,7 @@ #include #include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : BasicGUI_LineDlg() @@ -54,53 +49,59 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BasicGUI_LineDlg::BasicGUI_LineDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BasicGUI_LineDlg::BasicGUI_LineDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM",tr("ICON_DLG_LINE_2P"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM",tr("ICON_SELECT"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM",tr("ICON_DLG_LINE_2F"))); - - setCaption(tr("GEOM_LINE_TITLE")); - - QGroupBox* aFrame = new QGroupBox( 1, Qt::Horizontal, this ); - aFrame->setInsideMargin( 0 ); - aFrame->setFrameStyle( QFrame::NoFrame ); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_LINE_2P" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); + QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_LINE_2F" ) ) ); + setWindowTitle( tr( "GEOM_LINE_TITLE" ) ); + /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_LINE")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image2); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_LINE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setIcon( image2 ); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_2Sel_QTD( aFrame, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_POINTS")); - GroupPoints->TextLabel1->setText(tr("GEOM_POINT_I").arg("1")); - GroupPoints->TextLabel2->setText(tr("GEOM_POINT_I").arg("2")); - GroupPoints->PushButton1->setPixmap(image1); - GroupPoints->PushButton2->setPixmap(image1); + GroupPoints = new DlgRef_2Sel( centralWidget() ); + + GroupPoints->GroupBox1->setTitle( tr( "GEOM_POINTS" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_POINT_I" ).arg( 1 ) ); + GroupPoints->TextLabel2->setText( tr( "GEOM_POINT_I" ).arg( 2 ) ); + GroupPoints->PushButton1->setIcon( image1 ); + GroupPoints->PushButton2->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); GroupPoints->LineEdit2->setReadOnly( true ); + GroupPoints->LineEdit1->setEnabled( true ); + GroupPoints->LineEdit2->setEnabled( false ); - GroupFaces = new DlgRef_2Sel_QTD( aFrame, "GroupFaces"); - GroupFaces->GroupBox1->setTitle(tr("GEOM_FACES")); - GroupFaces->TextLabel1->setText(tr("GEOM_FACE_I").arg("1")); - GroupFaces->TextLabel2->setText(tr("GEOM_FACE_I").arg("2")); - GroupFaces->PushButton1->setPixmap(image1); - GroupFaces->PushButton2->setPixmap(image1); + GroupFaces = new DlgRef_2Sel( centralWidget() ); + GroupFaces->GroupBox1->setTitle( tr( "GEOM_FACES" ) ); + GroupFaces->TextLabel1->setText( tr( "GEOM_FACE_I" ).arg( "1" ) ); + GroupFaces->TextLabel2->setText( tr( "GEOM_FACE_I" ).arg( "2" ) ); + GroupFaces->PushButton1->setIcon( image1 ); + GroupFaces->PushButton2->setIcon( image1 ); GroupFaces->LineEdit1->setReadOnly( true ); GroupFaces->LineEdit2->setReadOnly( true ); + GroupFaces->LineEdit1->setEnabled( true ); + GroupFaces->LineEdit2->setEnabled( false ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); + layout->addWidget( GroupFaces ); - Layout1->addWidget(aFrame, 2, 0); /***************************************************************/ - setHelpFileName("create_line_page.html"); + setHelpFileName( "create_line_page.html" ); Init(); } + //================================================================================= // function : ~BasicGUI_LineDlg() // purpose : Destroys the object and frees any allocated resources @@ -109,6 +110,7 @@ BasicGUI_LineDlg::~BasicGUI_LineDlg() { } + //================================================================================= // function : Init() // purpose : @@ -116,37 +118,41 @@ BasicGUI_LineDlg::~BasicGUI_LineDlg() void BasicGUI_LineDlg::Init() { /* init variables */ - //myEditCurrentArgument = GroupPoints->LineEdit1; - //myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); - //globalSelection(); // close local contexts, if any - //localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + myEditCurrentArgument = GroupPoints->LineEdit1; + myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); + globalSelection(); // close local contexts, if any + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + GroupPoints->PushButton1->setDown(true); + /* signals and slots connections */ - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); - connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); - connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupFaces->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupFaces->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupFaces->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupFaces->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupFaces->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupFaces->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupPoints->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupFaces->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupFaces->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); - ConstructorsClicked(0); - initName( tr("GEOM_LINE") ); + initName( tr( "GEOM_LINE" ) ); + + ConstructorsClicked( 0 ); } + //================================================================================= // function : ClickOnOk() // purpose : @@ -157,28 +163,20 @@ void BasicGUI_LineDlg::ClickOnOk() ClickOnCancel(); } -//================================================================================= -// function : ClickOnCancel() -// purpose : -//================================================================================= -void BasicGUI_LineDlg::ClickOnCancel() -{ - GEOMBase_Skeleton::ClickOnCancel(); -} - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool BasicGUI_LineDlg::ClickOnApply() { - if ( !onAccept() ) return false; - + initName(); - myEditCurrentArgument->setText(""); - ConstructorsClicked(getConstructorId()); + + myEditCurrentArgument->setText( "" ); + ConstructorsClicked( getConstructorId() ); + return true; } @@ -186,19 +184,23 @@ bool BasicGUI_LineDlg::ClickOnApply() // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void BasicGUI_LineDlg::ConstructorsClicked(int constructorId) +void BasicGUI_LineDlg::ConstructorsClicked( int constructorId ) { - switch ( constructorId ) - { + switch ( constructorId ) { case 0: { globalSelection(); // close local contexts, if any localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - + myEditCurrentArgument = GroupPoints->LineEdit1; - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); + GroupPoints->LineEdit2->setText( "" ); myPoint1 = GEOM::GEOM_Object::_nil(); myPoint2 = GEOM::GEOM_Object::_nil(); + GroupPoints->PushButton1->setDown(true); + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit1->setEnabled(true); + GroupPoints->LineEdit2->setEnabled(false); GroupPoints->show(); GroupFaces->hide(); break; @@ -212,14 +214,20 @@ void BasicGUI_LineDlg::ConstructorsClicked(int constructorId) myEditCurrentArgument->setText(""); myFace1 = GEOM::GEOM_Object::_nil(); myFace2 = GEOM::GEOM_Object::_nil(); + GroupFaces->PushButton1->setDown(true); + GroupFaces->PushButton2->setDown(false); + GroupFaces->LineEdit1->setEnabled(true); + GroupFaces->LineEdit2->setEnabled(false); GroupPoints->hide(); GroupFaces->show(); break; } } + qApp->processEvents(); updateGeometry(); - resize(minimumSize()); + resize( minimumSizeHint() ); + SelectionIntoArgument(); } @@ -229,73 +237,93 @@ void BasicGUI_LineDlg::ConstructorsClicked(int constructorId) //================================================================================= void BasicGUI_LineDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); - if (IObjectCount() != 1) - { - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == GroupFaces->LineEdit1 ) myFace1 = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == GroupFaces->LineEdit2 ) myFace2 = GEOM::GEOM_Object::_nil(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { + if (myEditCurrentArgument == GroupPoints->LineEdit1) myPoint1 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit2) myPoint2 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupFaces->LineEdit1) myFace1 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupFaces->LineEdit2) myFace2 = GEOM::GEOM_Object::_nil(); + displayPreview(); return; } - // nbSel == 1 Standard_Boolean aRes = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), aRes); - if (!CORBA::is_nil(aSelectedObject) && aRes) - { - QString aName = GEOMBase::GetName(aSelectedObject); + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); + if ( !CORBA::is_nil( aSelectedObject ) && aRes ) { + QString aName = GEOMBase::GetName( aSelectedObject ); + TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; + if ( myEditCurrentArgument == GroupFaces->LineEdit1 || + myEditCurrentArgument == GroupFaces->LineEdit2 ) + aNeedType = TopAbs_FACE; TopoDS_Shape aShape; - if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) - { - TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; - if (myEditCurrentArgument == GroupFaces->LineEdit1 || - myEditCurrentArgument == GroupFaces->LineEdit2) - aNeedType = TopAbs_FACE; - - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) { TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes(firstIObject(), aMap); - if (aMap.Extent() == 1) // Local Selection - { + aSelMgr->GetIndexes(aSelList.First(), aMap); + if ( aMap.Extent() == 1 ) { // Local Selection int anIndex = aMap( 1 ); - if (aNeedType == TopAbs_FACE) - aName += QString(":face_%1").arg(anIndex); + if ( aNeedType == TopAbs_FACE ) + aName += QString( ":face_%1" ).arg( anIndex ); else - aName += QString(":vertex_%1").arg(anIndex); + aName += QString( ":vertex_%1" ).arg( anIndex ); //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( aSelectedObject, aName ); if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); + aSelectedObject = aShapesOp->GetSubShape( aSelectedObject, anIndex ); } - else + else { aSelectedObject = aFindedObject; // get Object from study + } } - else // Global Selection - { - if (aShape.ShapeType() != aNeedType) { + else { // Global Selection + if ( aShape.ShapeType() != aNeedType ) { aSelectedObject = GEOM::GEOM_Object::_nil(); aName = ""; } } } - myEditCurrentArgument->setText(aName); + myEditCurrentArgument->setText( aName ); - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint1 = aSelectedObject; - else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myPoint2 = aSelectedObject; - else if ( myEditCurrentArgument == GroupFaces->LineEdit1 ) myFace1 = aSelectedObject; - else if ( myEditCurrentArgument == GroupFaces->LineEdit2 ) myFace2 = aSelectedObject; + if (!aSelectedObject->_is_nil()) { // clear selection if something selected + globalSelection(); + localSelection( GEOM::GEOM_Object::_nil(), aNeedType ); + } + + if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) { + myPoint1 = aSelectedObject; + if ( !myPoint1->_is_nil() && myPoint2->_is_nil() ) + GroupPoints->PushButton2->click(); + } + else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) { + myPoint2 = aSelectedObject; + if ( !myPoint2->_is_nil() && myPoint1->_is_nil() ) + GroupPoints->PushButton1->click(); + } + else if ( myEditCurrentArgument == GroupFaces->LineEdit1 ) { + myFace1 = aSelectedObject; + if ( !myFace1->_is_nil() && myFace2->_is_nil() ) + GroupFaces->PushButton2->click(); + } + else if ( myEditCurrentArgument == GroupFaces->LineEdit2 ) { + myFace2 = aSelectedObject; + if ( !myFace2->_is_nil() && myFace1->_is_nil() ) + GroupFaces->PushButton1->click(); + } } displayPreview(); } + //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -303,14 +331,44 @@ void BasicGUI_LineDlg::SelectionIntoArgument() void BasicGUI_LineDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if ( send == GroupPoints->PushButton1 ) myEditCurrentArgument = GroupPoints->LineEdit1; - else if ( send == GroupPoints->PushButton2 ) myEditCurrentArgument = GroupPoints->LineEdit2; - else if ( send == GroupFaces->PushButton1 ) myEditCurrentArgument = GroupFaces->LineEdit1; - else if ( send == GroupFaces->PushButton2 ) myEditCurrentArgument = GroupFaces->LineEdit2; + if ( send == GroupPoints->PushButton1 ) { + myEditCurrentArgument = GroupPoints->LineEdit1; + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit1->setEnabled(true); + GroupPoints->LineEdit2->setEnabled(false); + } + else if ( send == GroupPoints->PushButton2 ) { + myEditCurrentArgument = GroupPoints->LineEdit2; + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + GroupPoints->LineEdit2->setEnabled(true); + } + else if ( send == GroupFaces->PushButton1 ) { + myEditCurrentArgument = GroupFaces->LineEdit1; + GroupFaces->PushButton2->setDown(false); + GroupFaces->LineEdit1->setEnabled(true); + GroupFaces->LineEdit2->setEnabled(false); + } + else if ( send == GroupFaces->PushButton2 ) { + myEditCurrentArgument = GroupFaces->LineEdit2; + GroupFaces->PushButton1->setDown(false); + GroupFaces->LineEdit1->setEnabled(false); + GroupFaces->LineEdit2->setEnabled(true); + } + + globalSelection(); // close local selection to clear it + TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; + if ( myEditCurrentArgument == GroupFaces->LineEdit1 || myEditCurrentArgument == GroupFaces->LineEdit2 ) + aNeedType = TopAbs_FACE; + localSelection( GEOM::GEOM_Object::_nil(), aNeedType ); + myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // SelectionIntoArgument(); + send->setDown(true); + displayPreview(); } + //================================================================================= // function : LineEditReturnPressed() // purpose : @@ -320,12 +378,13 @@ void BasicGUI_LineDlg::LineEditReturnPressed() QLineEdit* send = (QLineEdit*)sender(); if ( send == GroupPoints->LineEdit1 ) myEditCurrentArgument = GroupPoints->LineEdit1; else if ( send == GroupPoints->LineEdit2 ) myEditCurrentArgument = GroupPoints->LineEdit2; - else if ( send == GroupFaces->LineEdit1 ) myEditCurrentArgument = GroupFaces->LineEdit1; - else if ( send == GroupFaces->LineEdit2 ) myEditCurrentArgument = GroupFaces->LineEdit2; + else if ( send == GroupFaces->LineEdit1 ) myEditCurrentArgument = GroupFaces->LineEdit1; + else if ( send == GroupFaces->LineEdit2 ) myEditCurrentArgument = GroupFaces->LineEdit2; else return; GEOMBase_Skeleton::LineEditReturnPressed(); } + //================================================================================= // function : ActivateThisDialog() // purpose : @@ -333,10 +392,10 @@ void BasicGUI_LineDlg::LineEditReturnPressed() void BasicGUI_LineDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); - ConstructorsClicked(getConstructorId()); + ConstructorsClicked( getConstructorId() ); } //================================================================================= @@ -352,9 +411,9 @@ void BasicGUI_LineDlg::DeactivateActiveDialog() // function : enterEvent() // purpose : //================================================================================= -void BasicGUI_LineDlg::enterEvent(QEvent* e) +void BasicGUI_LineDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -389,36 +448,23 @@ bool BasicGUI_LineDlg::execute( ObjectList& objects ) { bool res = false; GEOM::GEOM_Object_var anObj; - switch ( getConstructorId() ) - { - case 0 : - { - anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeLineTwoPnt( myPoint1, myPoint2 ); - res = true; - break; - } - case 1 : - { - anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeLineTwoFaces( myFace1, myFace2 ); - res = true; - break; - } - } + switch ( getConstructorId() ) { + case 0 : + anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeLineTwoPnt( myPoint1, myPoint2 ); + res = true; + break; + case 1 : + anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeLineTwoFaces( myFace1, myFace2 ); + res = true; + break; + } + if ( !anObj->_is_nil() ) objects.push_back( anObj._retn() ); return res; } -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void BasicGUI_LineDlg::closeEvent( QCloseEvent* e ) -{ - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : addSubshapeToStudy // purpose : virtual method to add new SubObjects if local selection @@ -426,16 +472,15 @@ void BasicGUI_LineDlg::closeEvent( QCloseEvent* e ) void BasicGUI_LineDlg::addSubshapesToStudy() { QMap objMap; - switch ( getConstructorId() ) - { - case 0 : - objMap[GroupPoints->LineEdit1->text()] = myPoint1; - objMap[GroupPoints->LineEdit2->text()] = myPoint2; - break; - case 1 : - objMap[GroupFaces->LineEdit1->text()] = myFace1; - objMap[GroupFaces->LineEdit2->text()] = myFace2; - break; - } + switch ( getConstructorId() ) { + case 0 : + objMap[GroupPoints->LineEdit1->text()] = myPoint1; + objMap[GroupPoints->LineEdit2->text()] = myPoint2; + break; + case 1 : + objMap[GroupFaces->LineEdit1->text()] = myFace1; + objMap[GroupFaces->LineEdit2->text()] = myFace2; + break; + } addSubshapesToFather( objMap ); } diff --git a/src/BasicGUI/BasicGUI_LineDlg.h b/src/BasicGUI/BasicGUI_LineDlg.h index 9985759fd..5b716f206 100644 --- a/src/BasicGUI/BasicGUI_LineDlg.h +++ b/src/BasicGUI/BasicGUI_LineDlg.h @@ -1,84 +1,78 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BasicGUI_LineDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_LineDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef BASICGUI_LINEDLG_H +#define BASICGUI_LINEDLG_H -#ifndef DIALOGBOX_LINE_H -#define DIALOGBOX_LINE_H +#include -#include "GEOM_BasicGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel_QTD.h" +class DlgRef_2Sel; //================================================================================= // class : BasicGUI_LineDlg // purpose : //================================================================================= -class GEOM_BASICGUI_EXPORT BasicGUI_LineDlg : public GEOMBase_Skeleton +class BasicGUI_LineDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BasicGUI_LineDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BasicGUI_LineDlg(); - + BasicGUI_LineDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~BasicGUI_LineDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - - virtual void closeEvent( QCloseEvent* e ); - virtual void addSubshapesToStudy(); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); -private : - void Init(); - void enterEvent(QEvent* e); - - GEOM::GEOM_Object_var myPoint1; - GEOM::GEOM_Object_var myPoint2; - GEOM::GEOM_Object_var myFace1; - GEOM::GEOM_Object_var myFace2; - - DlgRef_2Sel_QTD* GroupPoints; - DlgRef_2Sel_QTD* GroupFaces; +private: + void Init(); + void enterEvent( QEvent* ); + +private: + GEOM::GEOM_Object_var myPoint1; + GEOM::GEOM_Object_var myPoint2; + GEOM::GEOM_Object_var myFace1; + GEOM::GEOM_Object_var myFace2; + + DlgRef_2Sel* GroupPoints; + DlgRef_2Sel* GroupFaces; private slots: - void ClickOnOk(); - void ClickOnCancel(); - bool ClickOnApply(); - - void ActivateThisDialog(); - void DeactivateActiveDialog(); - void ConstructorsClicked(int constructorId); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void DeactivateActiveDialog(); + void ConstructorsClicked( int ); + + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_LINE_H +#endif // BASICGUI_LINEDLG_H diff --git a/src/BasicGUI/BasicGUI_MarkerDlg.cxx b/src/BasicGUI/BasicGUI_MarkerDlg.cxx index 7b6cf2766..ecd49f548 100644 --- a/src/BasicGUI/BasicGUI_MarkerDlg.cxx +++ b/src/BasicGUI/BasicGUI_MarkerDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,26 +19,24 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_MarkerDlg.cxx +// Author : Sergey LITONIN, Open CASCADE S.A.S. (sergey.litonin@opencascade.com) // -// -// File : BasicGUI_MarkerDlg.cxx -// Author : Sergey LITONIN -// Module : GEOM -// $Header$ - #include "BasicGUI_MarkerDlg.h" -#include "DlgRef_SpinBox.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include +#include +#include +#include +#include -#include "GEOMImpl_Types.hxx" +#include -#include "utilities.h" +#include // OCCT Includes #include @@ -58,72 +56,102 @@ // purpose : Constructor //================================================================================= BasicGUI_MarkerDlg::BasicGUI_MarkerDlg( GeometryGUI* theGeometryGUI, QWidget* theParent ) - : GEOMBase_Skeleton(theGeometryGUI, theParent, "BasicGUI_MarkerDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) + : GEOMBase_Skeleton( theGeometryGUI, theParent, false, + Qt::WindowTitleHint | Qt::WindowSystemMenuHint ) { QPixmap iconCS1 ( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_MARKER" ) ) ); QPixmap iconCS2 ( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_MARKER2" ) ) ); QPixmap iconCS3 ( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_MARKER3" ) ) ); QPixmap iconSelect( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption( tr( "CAPTION" ) ); + setWindowTitle( tr( "CAPTION" ) ); - GroupConstructors->setTitle( tr( "LOCALCS" ) ); - RadioButton1->setPixmap( iconCS1 ); - RadioButton2->setPixmap( iconCS2 ); - RadioButton3->setPixmap( iconCS3 ); + mainFrame()->GroupConstructors->setTitle( tr( "LOCALCS" ) ); + mainFrame()->RadioButton1->setIcon( iconCS1 ); + mainFrame()->RadioButton2->setIcon( iconCS2 ); + mainFrame()->RadioButton3->setIcon( iconCS3 ); - Group1 = new DlgRef_1Sel_QTD(this, "Group1"); - Group1->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - Group1->TextLabel1->setText(tr("GEOM_OBJECT")); - Group1->PushButton1->setPixmap(iconSelect); + Group1 = new DlgRef_1Sel( centralWidget() ); - Group2 = new DlgRef_3Sel_QTD(this, "Group2"); - Group2->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - Group2->TextLabel1->setText(tr("GEOM_POINT")); - Group2->TextLabel2->setText(tr("XDIR")); - Group2->TextLabel3->setText(tr("YDIR")); - Group2->PushButton1->setPixmap(iconSelect); - Group2->PushButton2->setPixmap(iconSelect); - Group2->PushButton3->setPixmap(iconSelect); + Group1->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + Group1->TextLabel1->setText( tr( "GEOM_OBJECT" ) ); + Group1->PushButton1->setIcon( iconSelect ); + Group1->PushButton1->setDown( true ); - aMainGrp = new QGroupBox( 1, Qt::Horizontal, this ); - aMainGrp->setFrameStyle( QFrame::NoFrame ); - aMainGrp->setInsideMargin( 0 ); + Group2 = new DlgRef_3Sel( centralWidget() ); - QGroupBox* anOriGrp = new QGroupBox( 1, Qt::Vertical, tr( "ORIGIN" ), aMainGrp ); - new QLabel( tr( "GEOM_X" ), anOriGrp ); - myData[ X ] = new DlgRef_SpinBox( anOriGrp ); - new QLabel( tr( "GEOM_Y" ), anOriGrp ); - myData[ Y ] = new DlgRef_SpinBox( anOriGrp ); - new QLabel( tr( "GEOM_Z" ), anOriGrp ); - myData[ Z ] = new DlgRef_SpinBox( anOriGrp ); + Group2->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + Group2->TextLabel1->setText( tr( "GEOM_POINT" ) ); + Group2->TextLabel2->setText( tr( "XDIR" ) ); + Group2->TextLabel3->setText( tr( "YDIR" ) ); + Group2->PushButton1->setIcon( iconSelect ); + Group2->PushButton2->setIcon( iconSelect ); + Group2->PushButton3->setIcon( iconSelect ); + Group2->PushButton1->setDown( true ); - QGroupBox* aXAxisGrp = new QGroupBox( 1, Qt::Vertical, tr( "XDIR" ), aMainGrp ); - new QLabel( tr( "DX" ), aXAxisGrp ); - myData[ DX1 ] = new DlgRef_SpinBox( aXAxisGrp ); - new QLabel( tr( "DY" ), aXAxisGrp ); - myData[ DY1 ] = new DlgRef_SpinBox( aXAxisGrp ); - new QLabel( tr( "DZ" ), aXAxisGrp ); - myData[ DZ1 ] = new DlgRef_SpinBox( aXAxisGrp ); + aMainGrp = new QFrame( centralWidget() ); + aMainGrp->setFrameStyle( QFrame::NoFrame | QFrame::Plain ); + aMainGrp->setContentsMargins( 0, 0, 0, 0 ); + QHBoxLayout* aMainGrpLayout = new QHBoxLayout( aMainGrp ); + aMainGrpLayout->setMargin( 0 ); + + QGroupBox* anOriGrp = new QGroupBox( tr( "ORIGIN" ), aMainGrp ); + QVBoxLayout* anOriGrpLayout = new QVBoxLayout( anOriGrp ); - QGroupBox* anYAxisGrp = new QGroupBox( 1, Qt::Vertical, tr( "YDIR" ), aMainGrp ); - new QLabel( tr( "DX" ), anYAxisGrp ); - myData[ DX2 ] = new DlgRef_SpinBox( anYAxisGrp ); - new QLabel( tr( "DY" ), anYAxisGrp ); - myData[ DY2 ] = new DlgRef_SpinBox( anYAxisGrp ); - new QLabel( tr( "DZ" ), anYAxisGrp ); - myData[ DZ2 ] = new DlgRef_SpinBox( anYAxisGrp ); + anOriGrpLayout->addWidget( new QLabel( tr( "GEOM_X" ), anOriGrp ) ); + myData[ X ] = new SalomeApp_DoubleSpinBox( anOriGrp ); + anOriGrpLayout->addWidget( myData[ X ] ); + anOriGrpLayout->addWidget( new QLabel( tr( "GEOM_Y" ), anOriGrp ) ); + myData[ Y ] = new SalomeApp_DoubleSpinBox( anOriGrp ); + anOriGrpLayout->addWidget( myData[ Y ] ); + anOriGrpLayout->addWidget( new QLabel( tr( "GEOM_Z" ), anOriGrp ) ); + myData[ Z ] = new SalomeApp_DoubleSpinBox( anOriGrp ); + anOriGrpLayout->addWidget( myData[ Z ] ); - Layout1->addWidget( aMainGrp, 2, 0 ); - Layout1->addWidget( Group1, 2, 0 ); - Layout1->addWidget( Group2, 2, 0 ); + aMainGrpLayout->addWidget( anOriGrp ); - setHelpFileName("create_lcs_page.html"); + QGroupBox* aXAxisGrp = new QGroupBox( tr( "XDIR" ), aMainGrp ); + QVBoxLayout* aXAxisGrpLayout = new QVBoxLayout( aXAxisGrp ); + + aXAxisGrpLayout->addWidget( new QLabel( tr( "DX" ), aXAxisGrp ) ); + myData[ DX1 ] = new SalomeApp_DoubleSpinBox( aXAxisGrp ); + aXAxisGrpLayout->addWidget( myData[ DX1 ] ); + aXAxisGrpLayout->addWidget( new QLabel( tr( "DY" ), aXAxisGrp ) ); + myData[ DY1 ] = new SalomeApp_DoubleSpinBox( aXAxisGrp ); + aXAxisGrpLayout->addWidget( myData[ DY1 ] ); + aXAxisGrpLayout->addWidget( new QLabel( tr( "DZ" ), aXAxisGrp ) ); + myData[ DZ1 ] = new SalomeApp_DoubleSpinBox( aXAxisGrp ); + aXAxisGrpLayout->addWidget( myData[ DZ1 ] ); + + aMainGrpLayout->addWidget( aXAxisGrp ); + + QGroupBox* anYAxisGrp = new QGroupBox( tr( "YDIR" ), aMainGrp ); + QVBoxLayout* anYAxisGrpLayout = new QVBoxLayout( anYAxisGrp ); + + anYAxisGrpLayout->addWidget( new QLabel( tr( "DX" ), anYAxisGrp ) ); + myData[ DX2 ] = new SalomeApp_DoubleSpinBox( anYAxisGrp ); + anYAxisGrpLayout->addWidget( myData[ DX2 ] ); + anYAxisGrpLayout->addWidget( new QLabel( tr( "DY" ), anYAxisGrp ) ); + myData[ DY2 ] = new SalomeApp_DoubleSpinBox( anYAxisGrp ); + anYAxisGrpLayout->addWidget( myData[ DY2 ] ); + anYAxisGrpLayout->addWidget( new QLabel( tr( "DZ" ), anYAxisGrp ) ); + myData[ DZ2 ] = new SalomeApp_DoubleSpinBox( anYAxisGrp ); + anYAxisGrpLayout->addWidget( myData[ DZ2 ] ); + + aMainGrpLayout->addWidget( anYAxisGrp ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( aMainGrp ); + layout->addWidget( Group1 ); + layout->addWidget( Group2 ); + + setHelpFileName( "create_lcs_page.html" ); Init(); } + //================================================================================= // function : ~BasicGUI_MarkerDlg() // purpose : Destroys the object and frees any allocated resources @@ -132,6 +160,7 @@ BasicGUI_MarkerDlg::~BasicGUI_MarkerDlg() { } + //================================================================================= // function : Init() // purpose : @@ -145,49 +174,52 @@ void BasicGUI_MarkerDlg::Init() Group2->LineEdit1->setReadOnly( true ); Group2->LineEdit2->setReadOnly( true ); Group2->LineEdit3->setReadOnly( true ); + Group2->LineEdit1->setEnabled( true ); + Group2->LineEdit2->setEnabled( false ); + Group2->LineEdit3->setEnabled( false ); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); - connect(Group1->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group2->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group2->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); - connect(Group1->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group2->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group2->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( Group1->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group2->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group2->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group2->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( onClose() ) ); - connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( onDeactivate() ) ); - connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( onClose() ) ); + connect( Group1->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group2->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group2->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group2->LineEdit3, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect( buttonOk, SIGNAL( clicked() ), this, SLOT( onOk() ) ); - connect( buttonApply, SIGNAL( clicked() ), this, SLOT( onApply() ) ); + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( onDeactivate() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); - connect(myGeomGUI->getApp()->selectionMgr(), + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( onOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( onApply() ) ); + + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionDone() ) ); initName( tr( "LCS_NAME" ) ); SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 ); - for ( DataMap::iterator anIter = myData.begin(); anIter != myData.end(); ++anIter ) - { - anIter.data()->RangeStepAndValidator( COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY ); - connect( anIter.data(), SIGNAL( valueChanged( double ) ), + for ( DataMap::iterator anIter = myData.begin(); anIter != myData.end(); ++anIter ) { + initSpinBox( anIter.value(), COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + connect( anIter.value(), SIGNAL( valueChanged( double ) ), this, SLOT( onValueChanged( double ) ) ); } - + myBlockPreview = true; for ( DataMap::iterator anIter = myData.begin(); anIter != myData.end(); ++anIter ) - anIter.data()->SetValue( 0 ); - myData[ DX1 ]->SetValue( 1 ); - myData[ DY2 ]->SetValue( 1 ); + anIter.value()->setValue( 0 ); + myData[ DX1 ]->setValue( 1 ); + myData[ DY2 ]->setValue( 1 ); myBlockPreview = false; ConstructorsClicked( 0 ); + //@ /* QAD_ViewFrame* aFrame = QAD_Application::getDesktop()->getActiveApp()-> @@ -212,8 +244,7 @@ void BasicGUI_MarkerDlg::Init() //================================================================================= void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId ) { - if ( myConstructorId == constructorId && myConstructorId == 0 ) - { + if ( myConstructorId == constructorId && myConstructorId == 0 ) { globalSelection(); // close local contexts, if any localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); activate( GEOM_MARKER ); @@ -223,15 +254,13 @@ void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId ) myConstructorId = constructorId; - disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); - switch (constructorId) - { + switch ( constructorId ) { case 0: { Group1->hide(); Group2->hide(); - resize(0, 0); aMainGrp->show(); globalSelection(); // close local contexts, if any localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); @@ -240,35 +269,42 @@ void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId ) } case 1: { - Group2->hide(); aMainGrp->hide(); - //PAL6669: resize(0, 0); + Group2->hide(); Group1->show(); - + Group1->PushButton1->setDown( true ); globalSelection( GEOM_ALLGEOM ); myEditCurrentArgument = Group1->LineEdit1; - Group1->LineEdit1->setText(""); + Group1->LineEdit1->setText( "" ); break; } case 2: { aMainGrp->hide(); - Group1->show(); - //PAL6669: resize(0, 0); + Group1->hide(); Group2->show(); - + Group2->PushButton1->setDown( true ); + Group2->PushButton2->setDown( false ); + Group2->PushButton3->setDown( false ); globalSelection(); // close local contexts, if any localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); myEditCurrentArgument = Group2->LineEdit1; - Group2->LineEdit1->setText(""); - Group2->LineEdit2->setText(""); - Group2->LineEdit3->setText(""); + Group2->LineEdit1->setText( "" ); + Group2->LineEdit2->setText( "" ); + Group2->LineEdit3->setText( "" ); + Group2->LineEdit1->setEnabled( true ); + Group2->LineEdit2->setEnabled( false ); + Group2->LineEdit3->setEnabled( false ); break; } } - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(onSelectionDone())); + qApp->processEvents(); + updateGeometry(); + resize( minimumSizeHint() ); + + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( onSelectionDone() ) ); onSelectionDone(); } @@ -279,16 +315,7 @@ void BasicGUI_MarkerDlg::ConstructorsClicked( int constructorId ) void BasicGUI_MarkerDlg::onOk() { if ( onApply() ) - onClose(); -} - -//======================================================================= -// function : onClose() -// purpose : -//======================================================================= -void BasicGUI_MarkerDlg::onClose() -{ - GEOMBase_Skeleton::ClickOnCancel(); + ClickOnCancel(); } //================================================================================= @@ -312,201 +339,204 @@ bool BasicGUI_MarkerDlg::onApply() //================================================================================= void BasicGUI_MarkerDlg::onSelectionDone0() { - if (IObjectCount() == 1) - { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() == 1) { Standard_Boolean aRes = Standard_False; - Handle(SALOME_InteractiveObject) anIO = firstIObject(); + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); GEOM::GEOM_Object_var aSelectedObj = GEOMBase::ConvertIOinGEOMObject(anIO, aRes); - - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - - if (aRes && !aSelectedObj->_is_nil()) - { + + if ( aRes && !aSelectedObj->_is_nil() ) { TopoDS_Shape aShape; - if (GEOMBase::GetShape(aSelectedObj, aShape, TopAbs_SHAPE) && !aShape.IsNull()) - { + if ( GEOMBase::GetShape( aSelectedObj, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) { // Existing LCS selected - if (aSelectedObj->GetType() == GEOM_MARKER && aShape.ShapeType() == TopAbs_FACE) - { - TopoDS_Face aFace = TopoDS::Face(aShape); - Handle(Geom_Plane) aPlane = Handle(Geom_Plane)::DownCast(BRep_Tool::Surface(aFace)); - - if (!aPlane.IsNull()) - { + if ( aSelectedObj->GetType() == GEOM_MARKER && aShape.ShapeType() == TopAbs_FACE ) { + TopoDS_Face aFace = TopoDS::Face( aShape ); + Handle(Geom_Plane) aPlane = Handle(Geom_Plane)::DownCast( BRep_Tool::Surface( aFace ) ); + + if ( !aPlane.IsNull() ) { gp_Ax3 anAx3 = aPlane->Pln().Position(); gp_Pnt aLoc = anAx3.Location(); gp_Dir aXDir = anAx3.XDirection(); gp_Dir aYDir = anAx3.YDirection(); - - myData[ X ]->SetValue( aLoc.X() ); - myData[ Y ]->SetValue( aLoc.Y() ); - myData[ Z ]->SetValue( aLoc.Z() ); - - myData[ DX1 ]->SetValue( aXDir.X() ); - myData[ DY1 ]->SetValue( aXDir.Y() ); - myData[ DZ1 ]->SetValue( aXDir.Z() ); - - myData[ DX2 ]->SetValue( aYDir.X() ); - myData[ DY2 ]->SetValue( aYDir.Y() ); - myData[ DZ2 ]->SetValue( aYDir.Z() ); + + myData[ X ]->setValue( aLoc.X() ); + myData[ Y ]->setValue( aLoc.Y() ); + myData[ Z ]->setValue( aLoc.Z() ); + + myData[ DX1 ]->setValue( aXDir.X() ); + myData[ DY1 ]->setValue( aXDir.Y() ); + myData[ DZ1 ]->setValue( aXDir.Z() ); + + myData[ DX2 ]->setValue( aYDir.X() ); + myData[ DY2 ]->setValue( aYDir.Y() ); + myData[ DZ2 ]->setValue( aYDir.Z() ); aSelMgr->clearSelected(); } } - else - { + else { TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes(anIO, aMap); - if (aMap.Extent() == 1) // Local Selection - { - int anIndex = aMap(1); + aSelMgr->GetIndexes( anIO, aMap ); + if ( aMap.Extent() == 1 ) { // Local Selection + int anIndex = aMap( 1 ); TopTools_IndexedMapOfShape aShapes; - TopExp::MapShapes(aShape, aShapes); - aShape = aShapes.FindKey(anIndex); + TopExp::MapShapes( aShape, aShapes ); + aShape = aShapes.FindKey( anIndex ); aSelMgr->clearSelected(); // ??? } - if (!aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX) - { - gp_Pnt aPnt = BRep_Tool::Pnt(TopoDS::Vertex(aShape)); - myData[ X ]->SetValue( aPnt.X() ); - myData[ Y ]->SetValue( aPnt.Y() ); - myData[ Z ]->SetValue( aPnt.Z() ); + if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX ) { + gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) ); + myData[ X ]->setValue( aPnt.X() ); + myData[ Y ]->setValue( aPnt.Y() ); + myData[ Z ]->setValue( aPnt.Z() ); } } } } } - + displayPreview(); } + //================================================================================= // function : onSelectionDone() // purpose : Called when selection as changed or other case //================================================================================= void BasicGUI_MarkerDlg::onSelectionDone() { - if (getConstructorId() == 0) { + if ( getConstructorId() == 0 ) { onSelectionDone0(); return; } - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); - if (IObjectCount() == 1) { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() == 1) { Standard_Boolean aRes = Standard_False; - Handle(SALOME_InteractiveObject) anIO = firstIObject(); - GEOM::GEOM_Object_var aSelectedObj = GEOMBase::ConvertIOinGEOMObject(anIO, aRes); + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); + GEOM::GEOM_Object_var aSelectedObj = GEOMBase::ConvertIOinGEOMObject( anIO, aRes ); - if (!CORBA::is_nil(aSelectedObj) && aRes) { - QString aName = GEOMBase::GetName(aSelectedObj); - - if (getConstructorId() == 1) { // by shape position + if ( !CORBA::is_nil( aSelectedObj ) && aRes ) { + QString aName = GEOMBase::GetName( aSelectedObj ); + + if ( getConstructorId() == 1 ) { // by shape position // Get shape's position - CORBA::Double Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz, Yx,Yy,Yz; + CORBA::Double Ox, Oy, Oz, Zx, Zy, Zz, Xx, Xy, Xz, Yx, Yy, Yz; Ox = Oy = Oz = Zx = Zy = Xy = Xz = Yx = Yz = 0; Zz = Xx = Yy = 1.; - + GEOM::GEOM_IMeasureOperations_ptr aMeasureOp = - myGeomGUI->GetGeomGen()->GetIMeasureOperations(getStudyId()); - aMeasureOp->GetPosition(aSelectedObj, Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz); - + myGeomGUI->GetGeomGen()->GetIMeasureOperations( getStudyId() ); + aMeasureOp->GetPosition( aSelectedObj, Ox, Oy, Oz, Zx, Zy, Zz, Xx, Xy, Xz ); + // Calculate Y direction - if (aMeasureOp->IsDone()) { - gp_Pnt aPnt (Ox,Oy,Oz); - gp_Dir aDirN (Zx,Zy,Zz); - gp_Dir aDirX (Xx,Xy,Xz); - gp_Ax3 anAx3 (aPnt, aDirN, aDirX); + if ( aMeasureOp->IsDone() ) { + gp_Pnt aPnt ( Ox, Oy, Oz ); + gp_Dir aDirN ( Zx, Zy, Zz ); + gp_Dir aDirX ( Xx, Xy, Xz ); + gp_Ax3 anAx3 ( aPnt, aDirN, aDirX ); gp_Dir aDirY = anAx3.YDirection(); aDirY.Coord(Yx,Yy,Yz); } // Set values - myData[ X ]->SetValue( Ox ); - myData[ Y ]->SetValue( Oy ); - myData[ Z ]->SetValue( Oz ); + myData[ X ]->setValue( Ox ); + myData[ Y ]->setValue( Oy ); + myData[ Z ]->setValue( Oz ); - myData[ DX1 ]->SetValue( Xx ); - myData[ DY1 ]->SetValue( Xy ); - myData[ DZ1 ]->SetValue( Xz ); + myData[ DX1 ]->setValue( Xx ); + myData[ DY1 ]->setValue( Xy ); + myData[ DZ1 ]->setValue( Xz ); - myData[ DX2 ]->SetValue( Yx ); - myData[ DY2 ]->SetValue( Yy ); - myData[ DZ2 ]->SetValue( Yz ); + myData[ DX2 ]->setValue( Yx ); + myData[ DY2 ]->setValue( Yy ); + myData[ DZ2 ]->setValue( Yz ); - myEditCurrentArgument->setText(aName); + myEditCurrentArgument->setText( aName ); } - else if (getConstructorId() == 2) { // by point and two vectors + else if ( getConstructorId() == 2 ) { // by point and two vectors TopoDS_Shape aShape; - if (GEOMBase::GetShape(aSelectedObj, aShape, TopAbs_SHAPE)) - { + if ( GEOMBase::GetShape( aSelectedObj, aShape, TopAbs_SHAPE ) ) { TopAbs_ShapeEnum aNeedType = TopAbs_EDGE; - if (myEditCurrentArgument == Group2->LineEdit1) + if ( myEditCurrentArgument == Group2->LineEdit1 ) aNeedType = TopAbs_VERTEX; - + TColStd_IndexedMapOfInteger aMap; - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - aSelMgr->GetIndexes(anIO, aMap); + aSelMgr->GetIndexes( anIO, aMap ); - if (!aMap.IsEmpty()) { - int anIndex = aMap(1); - if (aNeedType == TopAbs_EDGE) - aName += QString("_edge_%1").arg(anIndex); + if ( !aMap.IsEmpty() ) { + int anIndex = aMap( 1 ); + if ( aNeedType == TopAbs_EDGE ) + aName += QString( "_edge_%1" ).arg( anIndex ); else - aName += QString("_vertex_%1").arg(anIndex); + aName += QString( "_vertex_%1" ).arg( anIndex ); TopTools_IndexedMapOfShape aShapes; - TopExp::MapShapes(aShape, aShapes); - aShape = aShapes.FindKey(anIndex); + TopExp::MapShapes( aShape, aShapes ); + aShape = aShapes.FindKey( anIndex ); } - if (myEditCurrentArgument == Group2->LineEdit1) { - if (!aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX) { - gp_Pnt aPnt = BRep_Tool::Pnt(TopoDS::Vertex(aShape)); - myData[ X ]->SetValue( aPnt.X() ); - myData[ Y ]->SetValue( aPnt.Y() ); - myData[ Z ]->SetValue( aPnt.Z() ); - myEditCurrentArgument->setText(aName); + if ( myEditCurrentArgument == Group2->LineEdit1 ) { + if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX ) { + gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) ); + myData[ X ]->setValue( aPnt.X() ); + myData[ Y ]->setValue( aPnt.Y() ); + myData[ Z ]->setValue( aPnt.Z() ); + myEditCurrentArgument->setText( aName ); + if (Group2->LineEdit2->text() == "") + Group2->PushButton2->click(); } else { - myData[ X ]->SetValue( 0 ); - myData[ Y ]->SetValue( 0 ); - myData[ Z ]->SetValue( 0 ); + myData[ X ]->setValue( 0 ); + myData[ Y ]->setValue( 0 ); + myData[ Z ]->setValue( 0 ); } } else if (myEditCurrentArgument == Group2->LineEdit2) { if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_EDGE ) { - gp_Pnt aP1 = BRep_Tool::Pnt(TopExp::FirstVertex(TopoDS::Edge(aShape))); - gp_Pnt aP2 = BRep_Tool::Pnt(TopExp::LastVertex(TopoDS::Edge(aShape))); - gp_Dir aDir (gp_Vec(aP1, aP2)); + gp_Pnt aP1 = BRep_Tool::Pnt( TopExp::FirstVertex( TopoDS::Edge( aShape ) ) ); + gp_Pnt aP2 = BRep_Tool::Pnt( TopExp::LastVertex( TopoDS::Edge( aShape ) ) ); + gp_Dir aDir( gp_Vec( aP1, aP2 ) ); - myData[ DX1 ]->SetValue( aDir.X() ); - myData[ DY1 ]->SetValue( aDir.Y() ); - myData[ DZ1 ]->SetValue( aDir.Z() ); - myEditCurrentArgument->setText(aName); + myData[ DX1 ]->setValue( aDir.X() ); + myData[ DY1 ]->setValue( aDir.Y() ); + myData[ DZ1 ]->setValue( aDir.Z() ); + myEditCurrentArgument->setText( aName ); + if (Group2->LineEdit3->text() == "") + Group2->PushButton3->click(); } else { - myData[ DX1 ]->SetValue( 0 ); - myData[ DY1 ]->SetValue( 0 ); - myData[ DZ1 ]->SetValue( 0 ); + myData[ DX1 ]->setValue( 0 ); + myData[ DY1 ]->setValue( 0 ); + myData[ DZ1 ]->setValue( 0 ); } } - else if (myEditCurrentArgument == Group2->LineEdit3) { + else if ( myEditCurrentArgument == Group2->LineEdit3 ) { if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_EDGE ) { - gp_Pnt aP1 = BRep_Tool::Pnt(TopExp::FirstVertex(TopoDS::Edge(aShape))); - gp_Pnt aP2 = BRep_Tool::Pnt(TopExp::LastVertex(TopoDS::Edge(aShape))); - gp_Dir aDir(gp_Vec(aP1, aP2)); + gp_Pnt aP1 = BRep_Tool::Pnt( TopExp::FirstVertex( TopoDS::Edge( aShape ) ) ); + gp_Pnt aP2 = BRep_Tool::Pnt( TopExp::LastVertex( TopoDS::Edge( aShape ) ) ); + gp_Dir aDir(gp_Vec( aP1, aP2 )); - myData[ DX2 ]->SetValue( aDir.X() ); - myData[ DY2 ]->SetValue( aDir.Y() ); - myData[ DZ2 ]->SetValue( aDir.Z() ); - myEditCurrentArgument->setText(aName); + myData[ DX2 ]->setValue( aDir.X() ); + myData[ DY2 ]->setValue( aDir.Y() ); + myData[ DZ2 ]->setValue( aDir.Z() ); + myEditCurrentArgument->setText( aName ); + if (Group2->LineEdit1->text() == "") + Group2->PushButton1->click(); } else { - myData[ DX2 ]->SetValue( 0 ); - myData[ DY2 ]->SetValue( 0 ); - myData[ DZ2 ]->SetValue( 0 ); + myData[ DX2 ]->setValue( 0 ); + myData[ DY2 ]->setValue( 0 ); + myData[ DZ2 ]->setValue( 0 ); } } } @@ -515,33 +545,33 @@ void BasicGUI_MarkerDlg::onSelectionDone() } else { if ( getConstructorId() == 1 ) { - myData[ X ]->SetValue( 0 ); - myData[ Y ]->SetValue( 0 ); - myData[ Z ]->SetValue( 0 ); + myData[ X ]->setValue( 0 ); + myData[ Y ]->setValue( 0 ); + myData[ Z ]->setValue( 0 ); - myData[ DX1 ]->SetValue( 0 ); - myData[ DY1 ]->SetValue( 0 ); - myData[ DZ1 ]->SetValue( 0 ); + myData[ DX1 ]->setValue( 0 ); + myData[ DY1 ]->setValue( 0 ); + myData[ DZ1 ]->setValue( 0 ); - myData[ DX2 ]->SetValue( 0 ); - myData[ DY2 ]->SetValue( 0 ); - myData[ DZ2 ]->SetValue( 0 ); + myData[ DX2 ]->setValue( 0 ); + myData[ DY2 ]->setValue( 0 ); + myData[ DZ2 ]->setValue( 0 ); } else if ( getConstructorId() == 2 ) { - if (myEditCurrentArgument == Group2->LineEdit1) { - myData[ X ]->SetValue( 0 ); - myData[ Y ]->SetValue( 0 ); - myData[ Z ]->SetValue( 0 ); + if ( myEditCurrentArgument == Group2->LineEdit1 ) { + myData[ X ]->setValue( 0 ); + myData[ Y ]->setValue( 0 ); + myData[ Z ]->setValue( 0 ); } - else if (myEditCurrentArgument == Group2->LineEdit2) { - myData[ DX1 ]->SetValue( 0 ); - myData[ DY1 ]->SetValue( 0 ); - myData[ DZ1 ]->SetValue( 0 ); + else if ( myEditCurrentArgument == Group2->LineEdit2 ) { + myData[ DX1 ]->setValue( 0 ); + myData[ DY1 ]->setValue( 0 ); + myData[ DZ1 ]->setValue( 0 ); } - else if (myEditCurrentArgument == Group2->LineEdit3) { - myData[ DX2 ]->SetValue( 0 ); - myData[ DY2 ]->SetValue( 0 ); - myData[ DZ2 ]->SetValue( 0 ); + else if ( myEditCurrentArgument == Group2->LineEdit3 ) { + myData[ DX2 ]->setValue( 0 ); + myData[ DY2 ]->setValue( 0 ); + myData[ DZ2 ]->setValue( 0 ); } } } @@ -556,30 +586,42 @@ void BasicGUI_MarkerDlg::onSelectionDone() void BasicGUI_MarkerDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); + globalSelection(); // close local contexts, if any - if (send == Group1->PushButton1) { + if ( send == Group1->PushButton1 ) { myEditCurrentArgument = Group1->LineEdit1; globalSelection( GEOM_ALLGEOM ); } - else if (send == Group2->PushButton1) { + else if ( send == Group2->PushButton1 ) { myEditCurrentArgument = Group2->LineEdit1; - //globalSelection( GEOM_POINT ); - globalSelection(); // close local contexts, if any localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + Group2->PushButton2->setDown( false ); + Group2->PushButton3->setDown( false ); + Group2->LineEdit1->setEnabled( true ); + Group2->LineEdit2->setEnabled( false ); + Group2->LineEdit3->setEnabled( false ); } - else if (send == Group2->PushButton2) { + else if ( send == Group2->PushButton2 ) { myEditCurrentArgument = Group2->LineEdit2; - //globalSelection( GEOM_LINE ); - globalSelection(); // close local contexts, if any localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + Group2->PushButton1->setDown( false ); + Group2->PushButton3->setDown( false ); + Group2->LineEdit1->setEnabled( false ); + Group2->LineEdit2->setEnabled( true ); + Group2->LineEdit3->setEnabled( false ); } - else if (send == Group2->PushButton3) { + else if ( send == Group2->PushButton3 ) { myEditCurrentArgument = Group2->LineEdit3; - globalSelection(); // close local contexts, if any localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + Group2->PushButton1->setDown( false ); + Group2->PushButton2->setDown( false ); + Group2->LineEdit1->setEnabled( false ); + Group2->LineEdit2->setEnabled( false ); + Group2->LineEdit3->setEnabled( true ); } - + myEditCurrentArgument->setFocus(); + send->setDown(true); onSelectionDone(); } @@ -602,10 +644,10 @@ void BasicGUI_MarkerDlg::LineEditReturnPressed() void BasicGUI_MarkerDlg::onActivate() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(onSelectionDone())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( onSelectionDone() ) ); - ConstructorsClicked(getConstructorId()); + ConstructorsClicked( getConstructorId() ); } //================================================================================= @@ -621,9 +663,9 @@ void BasicGUI_MarkerDlg::onDeactivate() // function : enterEvent() // purpose : //================================================================================= -void BasicGUI_MarkerDlg::enterEvent(QEvent* e) +void BasicGUI_MarkerDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) onActivate(); } @@ -643,8 +685,8 @@ GEOM::GEOM_IOperations_ptr BasicGUI_MarkerDlg::createOperation() bool BasicGUI_MarkerDlg::isValid( QString& msg ) { const int id = getConstructorId(); - gp_Vec v1( myData[ DX1 ]->GetValue(), myData[ DY1 ]->GetValue(), myData[ DZ1 ]->GetValue() ), - v2( myData[ DX2 ]->GetValue(), myData[ DY2 ]->GetValue(), myData[ DZ2 ]->GetValue() ); + gp_Vec v1( myData[ DX1 ]->value(), myData[ DY1 ]->value(), myData[ DZ1 ]->value() ), + v2( myData[ DX2 ]->value(), myData[ DY2 ]->value(), myData[ DZ2 ]->value() ); bool isOk = false; // we will got exception if the magnitude of any of the 2 vectors <= gp::Resolution() @@ -655,16 +697,19 @@ bool BasicGUI_MarkerDlg::isValid( QString& msg ) msg += tr( "VEC_PARALLEL" ); } - switch ( id ) - { - case 0: - return isOk; - case 1: - return !Group1->LineEdit1->text().isEmpty() && isOk; - case 2: - return !Group2->LineEdit1->text().isEmpty() && - !Group2->LineEdit2->text().isEmpty() && - !Group2->LineEdit3->text().isEmpty() && isOk; + switch ( id ) { + case 0: { + bool ok = true; + for ( DataMap::iterator anIter = myData.begin(); anIter != myData.end(); ++anIter ) + ok = anIter.value()->isValid( msg, !IsPreview()) && ok; + return isOk && ok; + } + case 1: + return !Group1->LineEdit1->text().isEmpty() && isOk; + case 2: + return !Group2->LineEdit1->text().isEmpty() && + !Group2->LineEdit2->text().isEmpty() && + !Group2->LineEdit3->text().isEmpty() && isOk; } return false; } @@ -675,26 +720,30 @@ bool BasicGUI_MarkerDlg::isValid( QString& msg ) //================================================================================= bool BasicGUI_MarkerDlg::execute( ObjectList& objects ) { - GEOM::GEOM_Object_var anObj = GEOM::GEOM_IBasicOperations::_narrow(getOperation())-> - MakeMarker(myData[ X ]->GetValue(), myData[ Y ]->GetValue(), myData[ Z ]->GetValue(), - myData[ DX1 ]->GetValue(), myData[ DY1 ]->GetValue(), myData[ DZ1 ]->GetValue(), - myData[ DX2 ]->GetValue(), myData[ DY2 ]->GetValue(), myData[ DZ2 ]->GetValue()); - - if ( !anObj->_is_nil() ) + GEOM::GEOM_Object_var anObj = GEOM::GEOM_IBasicOperations::_narrow( + getOperation() )->MakeMarker( myData[ X ]->value(), myData[ Y ]->value(), myData[ Z ]->value(), + myData[ DX1 ]->value(), myData[ DY1 ]->value(), myData[ DZ1 ]->value(), + myData[ DX2 ]->value(), myData[ DY2 ]->value(), myData[ DZ2 ]->value() ); + QStringList aParameters; + aParameters<text(); + aParameters<text(); + aParameters<text(); + aParameters<text(); + aParameters<text(); + aParameters<text(); + aParameters<text(); + aParameters<text(); + aParameters<text(); + + if ( !anObj->_is_nil() ) { + if ( !IsPreview() ) + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); objects.push_back( anObj._retn() ); + } return true; } -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void BasicGUI_MarkerDlg::closeEvent( QCloseEvent* e ) -{ - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : onValueChanged // purpose : @@ -713,12 +762,9 @@ void BasicGUI_MarkerDlg::displayPreview ( const bool activate, const bool toRemoveFromEngine, const double lineWidth ) { - if ( !myBlockPreview ) - { + if ( !myBlockPreview ) { GEOMBase_Skeleton::displayPreview( activate, update, toRemoveFromEngine, lineWidth ); if ( myConstructorId == 0 ) - { GEOMBase_Skeleton::activate( GEOM_MARKER ); - } } } diff --git a/src/BasicGUI/BasicGUI_MarkerDlg.h b/src/BasicGUI/BasicGUI_MarkerDlg.h index 7ba75b60b..364b0d737 100644 --- a/src/BasicGUI/BasicGUI_MarkerDlg.h +++ b/src/BasicGUI/BasicGUI_MarkerDlg.h @@ -1,73 +1,68 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BasicGUI_MarkerDlg.h -// Author : Sergey LITONIN -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_MarkerDlg.h +// Author : Sergey LITONIN, Open CASCADE S.A.S. (sergey.litonin@opencascade.com) +// +#ifndef BASICGUI_MARKERDLG_H +#define BASICGUI_MARKERDLG_H -#ifndef DIALOGBOX_Marker_H -#define DIALOGBOX_Marker_H +#include -#include "GEOM_BasicGUI.hxx" +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_QTD.h" -#include "DlgRef_3Sel_QTD.h" +class DlgRef_1Sel; +class DlgRef_3Sel; +class SalomeApp_DoubleSpinBox; +class QFrame; -#include - -class DlgRef_SpinBox; - -class GEOM_BASICGUI_EXPORT BasicGUI_MarkerDlg : public GEOMBase_Skeleton +class BasicGUI_MarkerDlg : public GEOMBase_Skeleton { Q_OBJECT private: enum { X, Y, Z, DX1, DY1, DZ1, DX2, DY2, DZ2 }; - typedef QMap< int, DlgRef_SpinBox* > DataMap; + typedef QMap< int, SalomeApp_DoubleSpinBox* > DataMap; public: - BasicGUI_MarkerDlg( GeometryGUI* theGeometryGUI, QWidget* ); + BasicGUI_MarkerDlg( GeometryGUI*, QWidget* ); virtual ~BasicGUI_MarkerDlg(); void Init(); protected: virtual GEOM::GEOM_IOperations_ptr createOperation(); virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void closeEvent( QCloseEvent* e ); - virtual void displayPreview ( const bool activate = false, - const bool update = true, - const bool toRemoveFromEngine = true, - const double lineWidth = -1 ); + virtual bool execute( ObjectList& ); + virtual void displayPreview ( const bool = false, + const bool = true, + const bool = true, + const double = -1 ); private: - void enterEvent( QEvent* e ); + void enterEvent( QEvent* ); void onSelectionDone0(); private slots: void onOk(); - void onClose(); bool onApply(); void onActivate(); void onDeactivate(); @@ -82,10 +77,9 @@ private: int myConstructorId; int myBlockPreview; - QGroupBox* aMainGrp; - DlgRef_1Sel_QTD* Group1; - DlgRef_3Sel_QTD* Group2; - + QFrame* aMainGrp; + DlgRef_1Sel* Group1; + DlgRef_3Sel* Group2; }; -#endif // DIALOGBOX_Marker_H +#endif // BASICGUI_MARKERDLG_H diff --git a/src/BasicGUI/BasicGUI_PlaneDlg.cxx b/src/BasicGUI/BasicGUI_PlaneDlg.cxx index 64936d546..8d5b14f37 100644 --- a/src/BasicGUI/BasicGUI_PlaneDlg.cxx +++ b/src/BasicGUI/BasicGUI_PlaneDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,22 +19,23 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_PlaneDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : BasicGUI_PlaneDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "BasicGUI_PlaneDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include + +#include +#include + +#include +#include +#include +#include #include - #include #include #include @@ -42,11 +43,7 @@ #include #include -#include - -#include "GEOMImpl_Types.hxx" - -using namespace std; +#include //================================================================================= // class : BasicGUI_PlaneDlg() @@ -55,62 +52,75 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BasicGUI_PlaneDlg::BasicGUI_PlaneDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BasicGUI_PlaneDlg::BasicGUI_PlaneDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PLANE_PV"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PLANE_3PNTS"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PLANE_FACE"))); - QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_PLANE_PV" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_PLANE_3PNTS" ) ) ); + QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_PLANE_FACE" ) ) ); + QPixmap image3( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_PLANE_TITLE")); + setWindowTitle( tr( "GEOM_PLANE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_PLANE")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->setPixmap(image2); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_PLANE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setIcon( image1 ); + mainFrame()->RadioButton3->setIcon( image2 ); - GroupPntDir = new DlgRef_2Sel1Spin(this, "GroupPointDirection"); - GroupPntDir->GroupBox1->setTitle(tr("GEOM_PLANE_PV")); - GroupPntDir->TextLabel1->setText(tr("GEOM_POINT")); - GroupPntDir->TextLabel2->setText(tr("GEOM_VECTOR")); - GroupPntDir->TextLabel3->setText(tr("GEOM_PLANE_SIZE")); - GroupPntDir->PushButton1->setPixmap(image3); - GroupPntDir->PushButton2->setPixmap(image3); + GroupPntDir = new DlgRef_2Sel1Spin( centralWidget() ); + GroupPntDir->GroupBox1->setTitle( tr( "GEOM_PLANE_PV" ) ); + GroupPntDir->TextLabel1->setText( tr( "GEOM_POINT" ) ); + GroupPntDir->TextLabel2->setText( tr( "GEOM_VECTOR" ) ); + GroupPntDir->TextLabel3->setText( tr( "GEOM_PLANE_SIZE" ) ); + GroupPntDir->PushButton1->setIcon( image3 ); + GroupPntDir->PushButton2->setIcon( image3 ); GroupPntDir->LineEdit1->setReadOnly( true ); GroupPntDir->LineEdit2->setReadOnly( true ); + GroupPntDir->PushButton1->setDown( true ); + GroupPntDir->LineEdit1->setEnabled( true ); + GroupPntDir->LineEdit2->setEnabled( false ); - Group3Pnts = new DlgRef_3Sel1Spin(this, "Group3Pnts"); - Group3Pnts->GroupBox1->setTitle(tr("GEOM_3_POINTS")); - Group3Pnts->TextLabel1->setText(tr("GEOM_POINT1")); - Group3Pnts->TextLabel2->setText(tr("GEOM_POINT2")); - Group3Pnts->TextLabel3->setText(tr("GEOM_POINT3")); - Group3Pnts->TextLabel4->setText(tr("GEOM_PLANE_SIZE")); - Group3Pnts->PushButton1->setPixmap(image3); - Group3Pnts->PushButton2->setPixmap(image3); - Group3Pnts->PushButton3->setPixmap(image3); + Group3Pnts = new DlgRef_3Sel1Spin( centralWidget() ); + Group3Pnts->GroupBox1->setTitle( tr( "GEOM_3_POINTS" ) ); + Group3Pnts->TextLabel1->setText( tr( "GEOM_POINT1" ) ); + Group3Pnts->TextLabel2->setText( tr( "GEOM_POINT2" ) ); + Group3Pnts->TextLabel3->setText( tr( "GEOM_POINT3" ) ); + Group3Pnts->TextLabel4->setText( tr( "GEOM_PLANE_SIZE" ) ); + Group3Pnts->PushButton1->setIcon( image3 ); + Group3Pnts->PushButton2->setIcon( image3 ); + Group3Pnts->PushButton3->setIcon( image3 ); + Group3Pnts->PushButton1->setDown( true ); Group3Pnts->LineEdit1->setReadOnly( true ); Group3Pnts->LineEdit2->setReadOnly( true ); Group3Pnts->LineEdit3->setReadOnly( true ); + Group3Pnts->LineEdit1->setEnabled( true ); + Group3Pnts->LineEdit2->setEnabled( false ); + Group3Pnts->LineEdit3->setEnabled( false ); - GroupFace = new DlgRef_1Sel1Spin(this, "GroupFace"); - GroupFace->GroupBox1->setTitle(tr("GEOM_FACE_OR_LCS")); - GroupFace->TextLabel1->setText(tr("GEOM_SELECTION")); - GroupFace->TextLabel2->setText(tr("GEOM_PLANE_SIZE")); - GroupFace->PushButton1->setPixmap(image3); + GroupFace = new DlgRef_3Radio1Sel1Spin( centralWidget() ); + GroupFace->RadioButton1->setText(tr("GEOM_FACE")); + GroupFace->RadioButton2->setText(tr("GEOM_LCS")); + GroupFace->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + GroupFace->RadioButton3->close(); + GroupFace->GroupBox1->setTitle( tr( "GEOM_FACE_OR_LCS" ) ); + GroupFace->TextLabel1->setText( tr( "GEOM_SELECTION" ) ); + GroupFace->TextLabel2->setText( tr( "GEOM_PLANE_SIZE" ) ); + GroupFace->PushButton1->setIcon( image3 ); + GroupFace->PushButton1->setDown( true ); GroupFace->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupPntDir, 2, 0); - Layout1->addWidget(Group3Pnts, 2, 0); - Layout1->addWidget(GroupFace, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPntDir ); + layout->addWidget( Group3Pnts ); + layout->addWidget( GroupFace ); /***************************************************************/ - setHelpFileName("create_plane_page.html"); + setHelpFileName( "create_plane_page.html" ); Init(); } @@ -133,6 +143,7 @@ void BasicGUI_PlaneDlg::Init() { /* init variables */ myEditCurrentArgument = GroupPntDir->LineEdit1; + GroupFace->RadioButton1->setChecked(true); myPoint = myDir = myPoint1 = myPoint2 = myPoint3 = myFace = GEOM::GEOM_Object::_nil(); @@ -140,81 +151,111 @@ void BasicGUI_PlaneDlg::Init() /* Get setting of step value from file configuration */ SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 ); double aTrimSize = 2000.0; /* min, max, step and decimals for spin boxes */ - GroupPntDir->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, aStep, DBL_DIGITS_DISPLAY); - GroupPntDir->SpinBox_DX->SetValue( aTrimSize ); - Group3Pnts->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, aStep, DBL_DIGITS_DISPLAY); - Group3Pnts->SpinBox_DX->SetValue( aTrimSize ); - GroupFace->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, aStep, DBL_DIGITS_DISPLAY); - GroupFace->SpinBox_DX->SetValue( aTrimSize ); + initSpinBox( GroupPntDir->SpinBox_DX, 0.000001, COORD_MAX, aStep, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupPntDir->SpinBox_DX->setValue( aTrimSize ); + initSpinBox( Group3Pnts->SpinBox_DX, 0.000001, COORD_MAX, aStep, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + Group3Pnts->SpinBox_DX->setValue( aTrimSize ); + initSpinBox( GroupFace->SpinBox_DX, 0.000001, COORD_MAX, aStep, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupFace->SpinBox_DX->setValue( aTrimSize ); /* signals and slots connections */ - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); - connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); - connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPntDir->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPntDir->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group3Pnts->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group3Pnts->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group3Pnts->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupFace->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); - connect(GroupPntDir->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPntDir->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group3Pnts->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group3Pnts->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group3Pnts->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupFace->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPntDir->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPntDir->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group3Pnts->PushButton3, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupFace->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(GroupPntDir->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(Group3Pnts->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupFace->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); + connect( GroupPntDir->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupPntDir->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group3Pnts->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group3Pnts->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group3Pnts->LineEdit3, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupFace->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupFace->RadioButton1,SIGNAL( clicked() ), this, SLOT( SelectionTypeClicked() ) ); + connect( GroupFace->RadioButton2,SIGNAL( clicked() ), this, SLOT( SelectionTypeClicked() ) ); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPntDir->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group3Pnts->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupFace->SpinBox_DX, SLOT(SetStep(double))); + connect( GroupPntDir->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group3Pnts->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupFace->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); + + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_PLANE" ) ); - Group3Pnts->hide(); - GroupFace->hide(); ConstructorsClicked( 0 ); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void BasicGUI_PlaneDlg::SetDoubleSpinBoxStep( double step ) +{ + GroupPntDir->SpinBox_DX->setSingleStep(step); + Group3Pnts->SpinBox_DX->setSingleStep(step); + GroupFace->SpinBox_DX->setSingleStep(step); +} + +//================================================================================= +// function : SelectionTypeClicked() +// purpose : Selection type radio buttons managment +//================================================================================= +void BasicGUI_PlaneDlg::SelectionTypeClicked() +{ + myFace = GEOM::GEOM_Object::_nil(); + if ( GroupFace->RadioButton1->isChecked()) { + globalSelection(); // close local contexts, if any + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_FACE ); + } else if ( GroupFace->RadioButton2->isChecked()) { + TColStd_MapOfInteger aMap; + aMap.Add( GEOM_PLANE ); + aMap.Add( GEOM_MARKER ); + globalSelection( aMap ); + } + displayPreview(); +} + //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void BasicGUI_PlaneDlg::ConstructorsClicked(int constructorId) +void BasicGUI_PlaneDlg::ConstructorsClicked( int constructorId ) { - disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); myPoint = myDir = myPoint1 = myPoint2 = myPoint3 = myFace = GEOM::GEOM_Object::_nil(); - switch (constructorId) - { + switch ( constructorId ) { case 0: /* plane from a point and a direction (vector, edge...) */ { Group3Pnts->hide(); GroupFace->hide(); - resize(0, 0); GroupPntDir->show(); - + myEditCurrentArgument = GroupPntDir->LineEdit1; - GroupPntDir->LineEdit1->setText(tr("")); - GroupPntDir->LineEdit2->setText(tr("")); - + GroupPntDir->LineEdit1->setText( "" ); + GroupPntDir->LineEdit2->setText( "" ); + GroupPntDir->PushButton1->setDown( true ); + GroupPntDir->PushButton2->setDown( false ); + GroupPntDir->LineEdit1->setEnabled( true ); + GroupPntDir->LineEdit2->setEnabled( false ); + /* for the first argument */ globalSelection(); // close local contexts, if any localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); @@ -224,44 +265,57 @@ void BasicGUI_PlaneDlg::ConstructorsClicked(int constructorId) { GroupPntDir->hide(); GroupFace->hide(); - resize(0, 0); Group3Pnts->show(); - + myEditCurrentArgument = Group3Pnts->LineEdit1; - Group3Pnts->LineEdit1->setText(""); - Group3Pnts->LineEdit2->setText(""); - Group3Pnts->LineEdit3->setText(""); - + Group3Pnts->LineEdit1->setText( "" ); + Group3Pnts->LineEdit2->setText( "" ); + Group3Pnts->LineEdit3->setText( "" ); + Group3Pnts->PushButton1->setDown( true ); + Group3Pnts->PushButton2->setDown( false ); + Group3Pnts->PushButton3->setDown( false ); + Group3Pnts->LineEdit1->setEnabled( true ); + Group3Pnts->LineEdit2->setEnabled( false ); + Group3Pnts->LineEdit3->setEnabled( false ); + /* for the first argument */ globalSelection(); // close local contexts, if any localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); break; } - case 2: /* plane from a planar face selection */ + case 2: /* plane from a planar face or LSC selection */ { GroupPntDir->hide(); Group3Pnts->hide(); - resize(0, 0); GroupFace->show(); - + myEditCurrentArgument = GroupFace->LineEdit1; - GroupFace->LineEdit1->setText(tr("")); - - /* for the first argument */ - //globalSelection( GEOM_PLANE ); - TColStd_MapOfInteger aMap; - aMap.Add( GEOM_PLANE ); - aMap.Add( GEOM_MARKER ); - globalSelection( aMap ); + GroupFace->LineEdit1->setText( "" ); + GroupFace->PushButton1->setDown( true ); + + if ( GroupFace->RadioButton1->isChecked()) { + globalSelection(); // close local contexts, if any + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_FACE ); + } else if ( GroupFace->RadioButton2->isChecked()) { + TColStd_MapOfInteger aMap; + aMap.Add( GEOM_PLANE ); + aMap.Add( GEOM_MARKER ); + globalSelection( aMap ); + } break; } } + + qApp->processEvents(); + updateGeometry(); + resize( minimumSizeHint() ); myEditCurrentArgument->setFocus(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); } + //================================================================================= // function : ClickOnOk() // purpose : @@ -272,6 +326,7 @@ void BasicGUI_PlaneDlg::ClickOnOk() ClickOnCancel(); } + //================================================================================= // function : ClickOnApply() // purpose : @@ -286,15 +341,6 @@ bool BasicGUI_PlaneDlg::ClickOnApply() return true; } -//======================================================================= -// function : ClickOnCancel() -// purpose : -//======================================================================= -void BasicGUI_PlaneDlg::ClickOnCancel() -{ - GEOMBase_Skeleton::ClickOnCancel(); -} - //================================================================================= // function : SelectionIntoArgument() // purpose : Called when selection has changed @@ -303,8 +349,11 @@ void BasicGUI_PlaneDlg::SelectionIntoArgument() { myEditCurrentArgument->setText(""); - if (IObjectCount() != 1) - { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { if ( myEditCurrentArgument == GroupPntDir->LineEdit1 ) myPoint = GEOM::GEOM_Object::_nil(); else if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) myDir = GEOM::GEOM_Object::_nil(); else if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil(); @@ -316,61 +365,88 @@ void BasicGUI_PlaneDlg::SelectionIntoArgument() // nbSel == 1 Standard_Boolean aRes = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), aRes); - if (!CORBA::is_nil(aSelectedObject) && aRes) - { - QString aName = GEOMBase::GetName(aSelectedObject); + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); + if ( !CORBA::is_nil( aSelectedObject ) && aRes ) { + QString aName = GEOMBase::GetName( aSelectedObject ); + TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; + if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) + aNeedType = TopAbs_EDGE; + else if ( myEditCurrentArgument == GroupFace->LineEdit1 ) + aNeedType = TopAbs_FACE; TopoDS_Shape aShape; - if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) - { - TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; - if (myEditCurrentArgument == GroupPntDir->LineEdit2) - aNeedType = TopAbs_EDGE; - else if (myEditCurrentArgument == GroupFace->LineEdit1) - aNeedType = TopAbs_FACE; - - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) { TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes(firstIObject(), aMap); - if (aMap.Extent() == 1) // Local Selection - { - - int anIndex = aMap(1); - if (aNeedType == TopAbs_EDGE) - aName += QString(":edge_%1").arg(anIndex); + aSelMgr->GetIndexes(aSelList.First(), aMap); + if ( aMap.Extent() == 1 ) { // Local Selection + int anIndex = aMap( 1 ); + if ( aNeedType == TopAbs_EDGE ) + aName += QString( ":edge_%1" ).arg( anIndex ); else if (aNeedType == TopAbs_FACE) - aName += QString(":face_%1").arg(anIndex); + aName += QString( ":face_%1" ).arg( anIndex ); else - aName += QString(":vertex_%1").arg(anIndex); + aName += QString( ":vertex_%1" ).arg( anIndex ); //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( aSelectedObject, aName ); if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); + aSelectedObject = aShapesOp->GetSubShape( aSelectedObject, anIndex ); } - else + else { aSelectedObject = aFindedObject; // get Object from study + } } - else // Global Selection - { - if (aShape.ShapeType() != aNeedType) { + else { // Global Selection + if ( aShape.ShapeType() != aNeedType ) { aSelectedObject = GEOM::GEOM_Object::_nil(); aName = ""; } } } - myEditCurrentArgument->setText(aName); + myEditCurrentArgument->setText( aName ); - if ( myEditCurrentArgument == GroupPntDir->LineEdit1 ) myPoint = aSelectedObject; - else if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) myDir = aSelectedObject; - else if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = aSelectedObject; - else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = aSelectedObject; - else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = aSelectedObject; - else if ( myEditCurrentArgument == GroupFace->LineEdit1 ) myFace = aSelectedObject; + /* if (!aSelectedObject->_is_nil()) { // clear selection if something selected + globalSelection(); + if ( myEditCurrentArgument == GroupFace->LineEdit1 ) { + TColStd_MapOfInteger aMap; + aMap.Add( GEOM_PLANE ); + aMap.Add( GEOM_MARKER ); + globalSelection( aMap ); + } + else + localSelection( GEOM::GEOM_Object::_nil(), aNeedType ); + }*/ + + if ( myEditCurrentArgument == GroupPntDir->LineEdit1 ) { + myPoint = aSelectedObject; + if ( !myPoint->_is_nil() && myDir->_is_nil() ) + GroupPntDir->PushButton2->click(); + } + else if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) { + myDir = aSelectedObject; + if ( !myDir->_is_nil() && myPoint->_is_nil() ) + GroupPntDir->PushButton1->click(); + } + else if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) { + myPoint1 = aSelectedObject; + if ( !myPoint1->_is_nil() && myPoint2->_is_nil() ) + Group3Pnts->PushButton2->click(); + } + else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) { + myPoint2 = aSelectedObject; + if ( !myPoint2->_is_nil() && myPoint3->_is_nil() ) + Group3Pnts->PushButton3->click(); + } + else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) { + myPoint3 = aSelectedObject; + if ( !myPoint3->_is_nil() && myPoint1->_is_nil() ) + Group3Pnts->PushButton1->click(); + } + else if ( myEditCurrentArgument == GroupFace->LineEdit1 ) + myFace = aSelectedObject; } displayPreview(); @@ -386,33 +462,69 @@ void BasicGUI_PlaneDlg::SetEditCurrentArgument() QPushButton* send = (QPushButton*)sender(); globalSelection( GEOM_POINT ); - if ( send == GroupPntDir->PushButton1 ) myEditCurrentArgument = GroupPntDir->LineEdit1; - else if ( send == GroupPntDir->PushButton2 ) myEditCurrentArgument = GroupPntDir->LineEdit2; - else if ( send == Group3Pnts->PushButton1 ) myEditCurrentArgument = Group3Pnts->LineEdit1; - else if ( send == Group3Pnts->PushButton2 ) myEditCurrentArgument = Group3Pnts->LineEdit2; - else if ( send == Group3Pnts->PushButton3 ) myEditCurrentArgument = Group3Pnts->LineEdit3; - else if ( send == GroupFace->PushButton1 ) myEditCurrentArgument = GroupFace->LineEdit1; + if ( send == GroupPntDir->PushButton1 ) { + myEditCurrentArgument = GroupPntDir->LineEdit1; + GroupPntDir->PushButton2->setDown( false ); + GroupPntDir->LineEdit1->setEnabled( true ); + GroupPntDir->LineEdit2->setEnabled( false ); + } + else if ( send == GroupPntDir->PushButton2 ) { + myEditCurrentArgument = GroupPntDir->LineEdit2; + GroupPntDir->PushButton1->setDown( false ); + GroupPntDir->LineEdit1->setEnabled( false ); + GroupPntDir->LineEdit2->setEnabled( true ); + } + else if ( send == Group3Pnts->PushButton1 ) { + myEditCurrentArgument = Group3Pnts->LineEdit1; + Group3Pnts->PushButton2->setDown( false ); + Group3Pnts->PushButton3->setDown( false ); + Group3Pnts->LineEdit1->setEnabled( true ); + Group3Pnts->LineEdit2->setEnabled( false ); + Group3Pnts->LineEdit3->setEnabled( false ); + } + else if ( send == Group3Pnts->PushButton2 ) { + myEditCurrentArgument = Group3Pnts->LineEdit2; + Group3Pnts->PushButton1->setDown( false ); + Group3Pnts->PushButton3->setDown( false ); + Group3Pnts->LineEdit1->setEnabled( false ); + Group3Pnts->LineEdit2->setEnabled( true ); + Group3Pnts->LineEdit3->setEnabled( false ); + } + else if ( send == Group3Pnts->PushButton3 ) { + myEditCurrentArgument = Group3Pnts->LineEdit3; + Group3Pnts->PushButton1->setDown( false ); + Group3Pnts->PushButton2->setDown( false ); + Group3Pnts->LineEdit1->setEnabled( false ); + Group3Pnts->LineEdit2->setEnabled( false ); + Group3Pnts->LineEdit3->setEnabled( true ); + } + else if ( send == GroupFace->PushButton1 ) { + myEditCurrentArgument = GroupFace->LineEdit1; + GroupFace->PushButton1->setDown( true ); + } myEditCurrentArgument->setFocus(); - if (myEditCurrentArgument == GroupPntDir->LineEdit2) { - globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + if ( myEditCurrentArgument == GroupPntDir->LineEdit2 ) { + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); } - else if (myEditCurrentArgument == GroupFace->LineEdit1) { + else if ( myEditCurrentArgument == GroupFace->LineEdit1 ) { TColStd_MapOfInteger aMap; aMap.Add( GEOM_PLANE ); aMap.Add( GEOM_MARKER ); globalSelection( aMap ); } else { // 3 Pnts - globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); } - SelectionIntoArgument(); + // SelectionIntoArgument(); + myEditCurrentArgument->setFocus(); + send->setDown(true); + displayPreview(); } + //================================================================================= // function : LineEditReturnPressed() // purpose : @@ -425,13 +537,13 @@ void BasicGUI_PlaneDlg::LineEditReturnPressed() send == Group3Pnts->LineEdit1 || send == Group3Pnts->LineEdit2 || send == Group3Pnts->LineEdit3 || - send == GroupFace->LineEdit1 ) - { + send == GroupFace->LineEdit1 ) { myEditCurrentArgument = send; GEOMBase_Skeleton::LineEditReturnPressed(); } } + //================================================================================= // function : ActivateThisDialog() // purpose : @@ -439,10 +551,10 @@ void BasicGUI_PlaneDlg::LineEditReturnPressed() void BasicGUI_PlaneDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); - ConstructorsClicked(getConstructorId()); + ConstructorsClicked( getConstructorId() ); } //================================================================================= @@ -458,9 +570,9 @@ void BasicGUI_PlaneDlg::DeactivateActiveDialog() // function : enterEvent() // purpose : //================================================================================= -void BasicGUI_PlaneDlg::enterEvent(QEvent* e) +void BasicGUI_PlaneDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -469,7 +581,7 @@ void BasicGUI_PlaneDlg::enterEvent(QEvent* e) // function : ValueChangedInSpinBox() // purpose : //================================================================================= -void BasicGUI_PlaneDlg::ValueChangedInSpinBox(double newValue) +void BasicGUI_PlaneDlg::ValueChangedInSpinBox( double newValue ) { displayPreview(); } @@ -480,15 +592,28 @@ void BasicGUI_PlaneDlg::ValueChangedInSpinBox(double newValue) //================================================================================= double BasicGUI_PlaneDlg::getSize() const { - switch ( getConstructorId() ) - { - case 0 : return GroupPntDir->SpinBox_DX->GetValue(); - case 1 : return Group3Pnts->SpinBox_DX->GetValue(); - case 2 : return GroupFace->SpinBox_DX->GetValue(); + switch ( getConstructorId() ) { + case 0 : return GroupPntDir->SpinBox_DX->value(); + case 1 : return Group3Pnts->SpinBox_DX->value(); + case 2 : return GroupFace->SpinBox_DX->value(); } return 0.; } +//================================================================================= +// function : getSize() +// purpose : +//================================================================================= +QString BasicGUI_PlaneDlg::getSizeAsString() const +{ + switch ( getConstructorId() ) { + case 0 : return GroupPntDir->SpinBox_DX->text(); + case 1 : return Group3Pnts->SpinBox_DX->text(); + case 2 : return GroupFace->SpinBox_DX->text(); + } + return QString(); +} + //================================================================================= // function : createOperation // purpose : @@ -513,20 +638,26 @@ static bool isEqual( const GEOM::GEOM_Object_var& thePnt1, const GEOM::GEOM_Obje //================================================================================= bool BasicGUI_PlaneDlg::isValid( QString& msg ) { - const int id = getConstructorId(); - if ( getSize() <= 0 ) - { - msg = QString( "Please, enter size greater than 0." ); - return false; - } - if ( id == 0 ) - return !CORBA::is_nil( myPoint ) && !CORBA::is_nil( myDir ); - else if ( id == 1 ) - return !CORBA::is_nil( myPoint1 ) && !CORBA::is_nil( myPoint2 ) && !CORBA::is_nil( myPoint3 ) && - !isEqual( myPoint1, myPoint2 ) && !isEqual( myPoint1, myPoint3 ) && !isEqual( myPoint2, myPoint3 ); - else if ( id == 2 ) - return !CORBA::is_nil( myFace ); - return false; + const int id = getConstructorId(); + if ( getSize() <= 0 ) { + msg = QString( "Please, enter size greater than 0." ); + return false; + } + + if ( id == 0 ) { + bool ok = GroupPntDir->SpinBox_DX->isValid( msg, !IsPreview() ); + return !CORBA::is_nil( myPoint ) && !CORBA::is_nil( myDir ) && ok; + } + else if ( id == 1 ) { + bool ok = Group3Pnts->SpinBox_DX->isValid( msg, !IsPreview() ); + return !CORBA::is_nil( myPoint1 ) && !CORBA::is_nil( myPoint2 ) && !CORBA::is_nil( myPoint3 ) && + !isEqual( myPoint1, myPoint2 ) && !isEqual( myPoint1, myPoint3 ) && !isEqual( myPoint2, myPoint3 ) && ok; + } + else if ( id == 2 ) { + bool ok = GroupFace->SpinBox_DX->isValid( msg, !IsPreview() ); + return !CORBA::is_nil( myFace ) && ok; + } + return false; } //================================================================================= @@ -539,8 +670,7 @@ bool BasicGUI_PlaneDlg::execute( ObjectList& objects ) GEOM::GEOM_Object_var anObj; - switch ( getConstructorId() ) - { + switch ( getConstructorId() ) { case 0 : anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakePlanePntVec( myPoint, myDir, getSize() ); res = true; @@ -554,22 +684,14 @@ bool BasicGUI_PlaneDlg::execute( ObjectList& objects ) res = true; break; } - - if ( !anObj->_is_nil() ) + + if ( !anObj->_is_nil() ) { + if ( !IsPreview() ) + anObj->SetParameters(getSizeAsString().toLatin1().constData()); objects.push_back( anObj._retn() ); - + } return res; } - -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void BasicGUI_PlaneDlg::closeEvent( QCloseEvent* e ) -{ - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : addSubshapeToStudy // purpose : virtual method to add new SubObjects if local selection @@ -578,8 +700,7 @@ void BasicGUI_PlaneDlg::addSubshapesToStudy() { QMap objMap; -switch (getConstructorId()) - { + switch ( getConstructorId() ) { case 0: objMap[GroupPntDir->LineEdit1->text()] = myPoint; objMap[GroupPntDir->LineEdit2->text()] = myDir; @@ -593,5 +714,5 @@ switch (getConstructorId()) objMap[GroupFace->LineEdit1->text()] = myFace; break; } - addSubshapesToFather( objMap ); + addSubshapesToFather( objMap ); } diff --git a/src/BasicGUI/BasicGUI_PlaneDlg.h b/src/BasicGUI/BasicGUI_PlaneDlg.h index 7eaf7ed3f..5d83df4e3 100644 --- a/src/BasicGUI/BasicGUI_PlaneDlg.h +++ b/src/BasicGUI/BasicGUI_PlaneDlg.h @@ -1,86 +1,84 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BasicGUI_PlaneDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_PlaneDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef BASICGUI_PLANEDLG_H +#define BASICGUI_PLANEDLG_H -#ifndef DIALOGBOX_PLANE_H -#define DIALOGBOX_PLANE_H +#include -#include "GEOM_BasicGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel1Spin.h" -#include "DlgRef_2Sel1Spin.h" -#include "DlgRef_3Sel1Spin.h" +class DlgRef_1Sel1Spin; +class DlgRef_2Sel1Spin; +class DlgRef_3Sel1Spin; +class DlgRef_3Radio1Sel1Spin; //================================================================================= // class : BasicGUI_PlaneDlg // purpose : //================================================================================= -class GEOM_BASICGUI_EXPORT BasicGUI_PlaneDlg : public GEOMBase_Skeleton +class BasicGUI_PlaneDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BasicGUI_PlaneDlg( GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BasicGUI_PlaneDlg(); - + BasicGUI_PlaneDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~BasicGUI_PlaneDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); -private : - void Init(); - void enterEvent(QEvent* e); - double getSize() const; +private: + void Init(); + void enterEvent( QEvent* ); + double getSize() const; + QString getSizeAsString() const; - GEOM::GEOM_Object_var myPoint, myDir, myPoint1, myPoint2, myPoint3, myFace; +private: + GEOM::GEOM_Object_var myPoint, myDir, myPoint1, myPoint2, myPoint3, myFace; - DlgRef_2Sel1Spin* GroupPntDir; - DlgRef_3Sel1Spin* Group3Pnts; - DlgRef_1Sel1Spin* GroupFace; + DlgRef_2Sel1Spin* GroupPntDir; + DlgRef_3Sel1Spin* Group3Pnts; + DlgRef_3Radio1Sel1Spin* GroupFace; private slots: - void ClickOnOk(); - void ClickOnCancel(); - bool ClickOnApply(); - - void ActivateThisDialog(); - void DeactivateActiveDialog(); - - void SelectionIntoArgument(); - void LineEditReturnPressed(); - void SetEditCurrentArgument(); - void ConstructorsClicked(int constructorId); - void ValueChangedInSpinBox(double newValue); - + void ClickOnOk(); + bool ClickOnApply(); + + void ActivateThisDialog(); + void DeactivateActiveDialog(); + + void SelectionIntoArgument(); + void LineEditReturnPressed(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void ValueChangedInSpinBox( double ); + void SetDoubleSpinBoxStep( double ); + void SelectionTypeClicked(); }; -#endif // DIALOGBOX_PLANE_H +#endif // BASICGUI_PLANEDLG_H diff --git a/src/BasicGUI/BasicGUI_PointDlg.cxx b/src/BasicGUI/BasicGUI_PointDlg.cxx index 573e8bda8..9b2f525ac 100644 --- a/src/BasicGUI/BasicGUI_PointDlg.cxx +++ b/src/BasicGUI/BasicGUI_PointDlg.cxx @@ -1,15 +1,15 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // @@ -19,28 +19,29 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_PointDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : BasicGUI_PointDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "BasicGUI_PointDlg.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include -#include "GEOMImpl_Types.hxx" +#include +#include -#include +#include -#include "utilities.h" +#include + +#include +#include #include #include -#include #include #include #include @@ -48,78 +49,91 @@ #include #include -#include - -using namespace std; - //================================================================================= // class : BasicGUI_PointDlg() -// purpose : Constructs a BasicGUI_PointDlg which is a child of 'parent', with the +// purpose : Constructs a BasicGUI_PointDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BasicGUI_PointDlg::BasicGUI_PointDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, fl ) +BasicGUI_PointDlg::BasicGUI_PointDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_POINT"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_POINT_EDGE"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); - QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_POINT_REF"))); - QPixmap image4(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_POINT_LINES"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_POINT") ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_POINT_EDGE" ) ) ); + QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); + QPixmap image3( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_POINT_REF" ) ) ); + QPixmap image4( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_POINT_LINES") ) ); + QPixmap image5( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_POINT_FACE" ) ) ); - setCaption(tr("GEOM_POINT_TITLE")); - - QGroupBox* aFrame = new QGroupBox( 1, Qt::Horizontal, this ); - aFrame->setInsideMargin( 0 ); - aFrame->setFrameStyle( QFrame::NoFrame ); + setWindowTitle( tr( "GEOM_POINT_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_POINTS")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image3); - RadioButton3->setPixmap(image1); - RadioButton4->show(); - RadioButton4->setPixmap(image4); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_POINTS" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setIcon( image3 ); + mainFrame()->RadioButton3->setIcon( image1 ); + mainFrame()->RadioButton4->show(); + mainFrame()->RadioButton4->setIcon( image4 ); + mainFrame()->RadioButton5->show(); + mainFrame()->RadioButton5->setIcon( image5 ); - GroupXYZ = new DlgRef_3Spin( aFrame, "GroupXYZ" ); - GroupXYZ->GroupBox1->setTitle(tr("GEOM_COORDINATES")); - GroupXYZ->TextLabel1->setText(tr("GEOM_X")); - GroupXYZ->TextLabel2->setText(tr("GEOM_Y")); - GroupXYZ->TextLabel3->setText(tr("GEOM_Z")); + GroupXYZ = new DlgRef_3Spin( centralWidget() ); + GroupXYZ->GroupBox1->setTitle( tr( "GEOM_COORDINATES" ) ); + GroupXYZ->TextLabel1->setText( tr( "GEOM_X" ) ); + GroupXYZ->TextLabel2->setText( tr( "GEOM_Y" ) ); + GroupXYZ->TextLabel3->setText( tr( "GEOM_Z" ) ); - GroupOnCurve = new DlgRef_1Sel1Spin( aFrame, "GroupOnCurve" ); - GroupOnCurve->GroupBox1->setTitle(tr("GEOM_PARAM_POINT")); - GroupOnCurve->TextLabel1->setText(tr("GEOM_EDGE")); - GroupOnCurve->TextLabel2->setText(tr("GEOM_PARAMETER")); - GroupOnCurve->PushButton1->setPixmap(image2); + GroupOnCurve = new DlgRef_1Sel1Spin( centralWidget() ); + GroupOnCurve->GroupBox1->setTitle( tr( "GEOM_PARAM_POINT" ) ); + GroupOnCurve->TextLabel1->setText( tr( "GEOM_EDGE" ) ); + GroupOnCurve->TextLabel2->setText( tr( "GEOM_PARAMETER" ) ); + GroupOnCurve->PushButton1->setIcon( image2 ); - GroupRefPoint = new DlgRef_1Sel3Spin( aFrame, "GoupRefPoint" ); - GroupRefPoint->GroupBox1->setTitle(tr("GEOM_REF_POINT")); - GroupRefPoint->TextLabel1->setText(tr("GEOM_POINT")); - GroupRefPoint->PushButton1->setPixmap(image2); - GroupRefPoint->TextLabel2->setText(tr("GEOM_DX")); - GroupRefPoint->TextLabel3->setText(tr("GEOM_DY")); - GroupRefPoint->TextLabel4->setText(tr("GEOM_DZ")); + GroupOnSurface = new DlgRef_1Sel2Spin( centralWidget() ); + GroupOnSurface->GroupBox1->setTitle( tr( "GEOM_PARAM_POINT" ) ); + GroupOnSurface->TextLabel1->setText( tr( "GEOM_FACE" ) ); + GroupOnSurface->TextLabel2->setText( tr( "GEOM_UPARAMETER" ) ); + GroupOnSurface->TextLabel3->setText( tr( "GEOM_VPARAMETER" ) ); + GroupOnSurface->PushButton1->setIcon( image2 ); - GroupLineIntersection = new DlgRef_2Sel_QTD (aFrame, "GroupLineIntersection"); - GroupLineIntersection->GroupBox1->setTitle(tr("GEOM_LINE_INTERSECTION")); - GroupLineIntersection->TextLabel1->setText(tr("GEOM_LINE1")); - GroupLineIntersection->PushButton1->setPixmap(image2); - GroupLineIntersection->TextLabel2->setText(tr("GEOM_LINE2")); - GroupLineIntersection->PushButton2->setPixmap(image2); + GroupRefPoint = new DlgRef_1Sel3Spin( centralWidget() ); + GroupRefPoint->GroupBox1->setTitle( tr( "GEOM_REF_POINT" ) ); + GroupRefPoint->TextLabel1->setText( tr( "GEOM_POINT" ) ); + GroupRefPoint->PushButton1->setIcon( image2 ); + GroupRefPoint->TextLabel2->setText( tr( "GEOM_DX" ) ); + GroupRefPoint->TextLabel3->setText( tr( "GEOM_DY" ) ); + GroupRefPoint->TextLabel4->setText( tr( "GEOM_DZ" ) ); - Layout1->addWidget( aFrame, 2, 0 ); - /***************************************************************/ + GroupLineIntersection = new DlgRef_2Sel( centralWidget() ); + GroupLineIntersection->GroupBox1->setTitle( tr( "GEOM_LINE_INTERSECTION" ) ); + GroupLineIntersection->TextLabel1->setText( tr( "GEOM_LINE1" ) ); + GroupLineIntersection->TextLabel2->setText( tr( "GEOM_LINE2" ) ); + GroupLineIntersection->PushButton1->setIcon( image2 ); + GroupLineIntersection->PushButton2->setIcon( image2 ); + GroupLineIntersection->LineEdit2->setEnabled(false); - myCoordGrp = new QGroupBox( 2, Qt::Horizontal, tr( "GEOM_COORDINATES" ), aFrame ); - new QLabel( tr( "GEOM_X" ), myCoordGrp ); + myCoordGrp = new QGroupBox( tr( "GEOM_COORDINATES" ), centralWidget() ); + QGridLayout* myCoordGrpLayout = new QGridLayout( myCoordGrp ); + myCoordGrpLayout->addWidget( new QLabel( tr( "GEOM_X" ), myCoordGrp ), 0, 0 ); myX = new QLineEdit( myCoordGrp ); - new QLabel( tr( "GEOM_Y" ), myCoordGrp ); + myCoordGrpLayout->addWidget( myX, 0, 1 ); + myCoordGrpLayout->addWidget( new QLabel( tr( "GEOM_Y" ), myCoordGrp ), 1, 0 ); myY = new QLineEdit( myCoordGrp ); - new QLabel( tr( "GEOM_Z" ), myCoordGrp ); + myCoordGrpLayout->addWidget( myY, 1, 1 ); + myCoordGrpLayout->addWidget( new QLabel( tr( "GEOM_Z" ), myCoordGrp ), 2, 0 ); myZ = new QLineEdit( myCoordGrp ); + myCoordGrpLayout->addWidget( myZ, 2, 1 ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupXYZ ); + layout->addWidget( GroupOnCurve ); + layout->addWidget( GroupOnSurface ); + layout->addWidget( GroupRefPoint ); + layout->addWidget( GroupLineIntersection ); + layout->addWidget( myCoordGrp ); myX->setReadOnly( true ); myY->setReadOnly( true ); @@ -130,17 +144,17 @@ BasicGUI_PointDlg::BasicGUI_PointDlg(GeometryGUI* theGeometryGUI, QWidget* paren myZ->setEnabled( false ); QPalette aPal = myX->palette(); - aPal.setColor( QPalette::Disabled, QColorGroup::Text, QColor( 0, 0, 0 ) ) ; + aPal.setColor( QPalette::Disabled, QPalette::Text, QColor( 0, 0, 0 ) ) ; myX->setPalette( aPal ); myY->setPalette( aPal ); myZ->setPalette( aPal ); - // setHelpFileName("create_point_page.html"); - setHelpFileName("point.htm"); - + setHelpFileName( "create_point_page.html" ); + Init(); } + //================================================================================= // function : ~BasicGUI_PointDlg() // purpose : Destructor @@ -149,6 +163,7 @@ BasicGUI_PointDlg::~BasicGUI_PointDlg() { } + //================================================================================= // function : Init() // purpose : @@ -156,9 +171,12 @@ BasicGUI_PointDlg::~BasicGUI_PointDlg() void BasicGUI_PointDlg::Init() { GroupOnCurve->LineEdit1->setReadOnly( true ); + GroupOnSurface->LineEdit1->setReadOnly( true ); GroupRefPoint->LineEdit1->setReadOnly( true ); GroupLineIntersection->LineEdit1->setReadOnly( true ); GroupLineIntersection->LineEdit2->setReadOnly( true ); + GroupLineIntersection->LineEdit1->setEnabled( true ); + GroupLineIntersection->LineEdit2->setEnabled( false ); myEdge = GEOM::GEOM_Object::_nil(); myRefPoint = GEOM::GEOM_Object::_nil(); @@ -167,140 +185,191 @@ void BasicGUI_PointDlg::Init() /* Get setting of step value from file configuration */ SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); - + double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 ); + /* min, max, step and decimals for spin boxes */ - GroupXYZ->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupXYZ->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupXYZ->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupXYZ->SpinBox_DX->SetValue(0.0); - GroupXYZ->SpinBox_DY->SetValue(0.0); - GroupXYZ->SpinBox_DZ->SetValue(0.0); + initSpinBox( GroupXYZ->SpinBox_DX, COORD_MIN, COORD_MAX, step, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( GroupXYZ->SpinBox_DY, COORD_MIN, COORD_MAX, step, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( GroupXYZ->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupXYZ->SpinBox_DX->setValue( 0.0 ); + GroupXYZ->SpinBox_DY->setValue( 0.0 ); + GroupXYZ->SpinBox_DZ->setValue( 0.0 ); - GroupRefPoint->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupRefPoint->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupRefPoint->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupRefPoint->SpinBox_DX->SetValue(0.0); - GroupRefPoint->SpinBox_DY->SetValue(0.0); - GroupRefPoint->SpinBox_DZ->SetValue(0.0); + initSpinBox( GroupRefPoint->SpinBox_DX, COORD_MIN, COORD_MAX, step, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( GroupRefPoint->SpinBox_DY, COORD_MIN, COORD_MAX, step, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( GroupRefPoint->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupRefPoint->SpinBox_DX->setValue( 0.0 ); + GroupRefPoint->SpinBox_DY->setValue( 0.0 ); + GroupRefPoint->SpinBox_DZ->setValue( 0.0 ); step = 0.1; - GroupOnCurve->SpinBox_DX->RangeStepAndValidator(0., 1., step, DBL_DIGITS_DISPLAY); - GroupOnCurve->SpinBox_DX->SetValue( 0.5 ); + + initSpinBox( GroupOnCurve->SpinBox_DX, 0., 1., step, 6 ); // VSR:TODO : DBL_DIGITS_DISPLAY + GroupOnCurve->SpinBox_DX->setValue( 0.5 ); + + initSpinBox( GroupOnSurface->SpinBox_DX, 0., 1., step, 6 ); // VSR:TODO : DBL_DIGITS_DISPLAY + GroupOnSurface->SpinBox_DX->setValue( 0.5 ); + initSpinBox( GroupOnSurface->SpinBox_DY, 0., 1., step, 6 ); // VSR:TODO : DBL_DIGITS_DISPLAY + GroupOnSurface->SpinBox_DY->setValue( 0.5 ); /* signals and slots connections */ - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); - connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); - connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupOnCurve->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupOnCurve->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupLineIntersection->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupLineIntersection->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupLineIntersection->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupLineIntersection->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); - connect(GroupOnCurve->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupXYZ->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupXYZ->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupXYZ->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupRefPoint->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupRefPoint->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupRefPoint->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); + connect( GroupOnCurve->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupOnCurve->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupOnCurve->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupXYZ->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupXYZ->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupXYZ->SpinBox_DZ, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupRefPoint->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupRefPoint->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupRefPoint->SpinBox_DZ, SLOT(SetStep(double))); + connect( GroupOnSurface->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupOnSurface->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + connect( GroupLineIntersection->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupLineIntersection->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupLineIntersection->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupLineIntersection->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - initName( tr("GEOM_VERTEX") ); + connect( GroupOnCurve->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupOnSurface->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupOnSurface->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupXYZ->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupXYZ->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupXYZ->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupRefPoint->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupRefPoint->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupRefPoint->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); + + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged() ), + this, SLOT(SelectionIntoArgument() ) ); + + + initName( tr( "GEOM_VERTEX" ) ); + ConstructorsClicked( 0 ); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void BasicGUI_PointDlg::SetDoubleSpinBoxStep( double step ) +{ + GroupOnCurve->SpinBox_DX->setSingleStep(step); + GroupXYZ->SpinBox_DX->setSingleStep(step); + GroupXYZ->SpinBox_DY->setSingleStep(step); + GroupXYZ->SpinBox_DZ->setSingleStep(step); + GroupRefPoint->SpinBox_DX->setSingleStep(step); + GroupRefPoint->SpinBox_DY->setSingleStep(step); + GroupRefPoint->SpinBox_DZ->setSingleStep(step); + GroupOnSurface->SpinBox_DX->setSingleStep(step); + GroupOnSurface->SpinBox_DY->setSingleStep(step); +} + + //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void BasicGUI_PointDlg::ConstructorsClicked (int constructorId) -{ +void BasicGUI_PointDlg::ConstructorsClicked(int constructorId) +{ globalSelection(); // close local contexts, if any - switch (constructorId) - { + switch ( constructorId ) { case 0: { - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); - + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + GroupRefPoint->hide(); GroupOnCurve->hide(); GroupLineIntersection->hide(); - GroupXYZ->show(); + GroupOnSurface->hide(); + myCoordGrp->hide(); + + GroupXYZ->show(); break; } case 1: { myEditCurrentArgument = GroupRefPoint->LineEdit1; - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); myRefPoint = GEOM::GEOM_Object::_nil(); - - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); - + GroupRefPoint->PushButton1->setDown(true); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + GroupXYZ->hide(); GroupOnCurve->hide(); - GroupRefPoint->show(); GroupLineIntersection->hide(); + GroupOnSurface->hide(); + + GroupRefPoint->show(); + myCoordGrp->show(); break; } case 2: { myEditCurrentArgument = GroupOnCurve->LineEdit1; - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); myEdge = GEOM::GEOM_Object::_nil(); - - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + GroupOnCurve->PushButton1->setDown(true); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); GroupXYZ->hide(); GroupRefPoint->hide(); - GroupOnCurve->show(); GroupLineIntersection->hide(); + GroupOnSurface->hide(); + + GroupOnCurve->show(); + myCoordGrp->show(); break; } case 3: { myEditCurrentArgument = GroupLineIntersection->LineEdit1; - GroupLineIntersection->LineEdit1->setText(""); - GroupLineIntersection->LineEdit2->setText(""); + GroupLineIntersection->LineEdit1->setText( "" ); + GroupLineIntersection->LineEdit2->setText( "" ); + GroupLineIntersection->LineEdit1->setEnabled( true ); + GroupLineIntersection->LineEdit2->setEnabled( false ); myLine1 = GEOM::GEOM_Object::_nil(); myLine2 = GEOM::GEOM_Object::_nil(); + GroupLineIntersection->PushButton1->setDown(true); + GroupLineIntersection->PushButton2->setDown(false); - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); GroupXYZ->hide(); GroupRefPoint->hide(); GroupOnCurve->hide(); - GroupLineIntersection->show(); + GroupOnSurface->hide(); + myCoordGrp->hide(); + + GroupLineIntersection->show(); + break; + } + case 4: + { + myEditCurrentArgument = GroupOnSurface->LineEdit1; + myEditCurrentArgument->setText( "" ); + myFace = GEOM::GEOM_Object::_nil(); + GroupOnSurface->PushButton1->setDown(true); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_FACE ); + + GroupXYZ->hide(); + GroupRefPoint->hide(); + GroupOnCurve->hide(); + GroupLineIntersection->hide(); + + GroupOnSurface->show(); + + myCoordGrp->show(); break; } } @@ -311,43 +380,37 @@ void BasicGUI_PointDlg::ConstructorsClicked (int constructorId) qApp->processEvents(); updateGeometry(); - resize( minimumSize() ); + resize( minimumSizeHint() ); SelectionIntoArgument(); } + //================================================================================= // function : ClickOnOk() // purpose : //================================================================================= void BasicGUI_PointDlg::ClickOnOk() { - if (onAccept()) + if ( onAccept() ) ClickOnCancel(); } + //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool BasicGUI_PointDlg::ClickOnApply() { - if (!onAccept()) + if ( !onAccept() ) return false; - + initName(); - ConstructorsClicked(getConstructorId()); + ConstructorsClicked( getConstructorId() ); return true; } -//================================================================================= -// function : ClickOnCancel() -// purpose : -//================================================================================= -void BasicGUI_PointDlg::ClickOnCancel() -{ - GEOMBase_Skeleton::ClickOnCancel(); -} //================================================================================= // function : SelectionIntoArgument() @@ -357,97 +420,108 @@ void BasicGUI_PointDlg::SelectionIntoArgument() { const int id = getConstructorId(); - if ((id == 1 || id == 2) && myEditCurrentArgument != 0) + if ( ( id == 1 || id == 2 || id == 4 ) && myEditCurrentArgument != 0 ) { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); myX->setText( "" ); myY->setText( "" ); myZ->setText( "" ); - myRefPoint = myEdge = GEOM::GEOM_Object::_nil(); + myRefPoint = myEdge = myFace = GEOM::GEOM_Object::_nil(); } - if (IObjectCount() == 1) - { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() == 1) { Standard_Boolean aRes = Standard_False; - Handle(SALOME_InteractiveObject) anIO = firstIObject(); - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(anIO, aRes); - if (!CORBA::is_nil(aSelectedObject) && aRes) - { + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes ); + if ( !CORBA::is_nil( aSelectedObject ) && aRes ) { QString aName = GEOMBase::GetName(aSelectedObject); - + TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; TopoDS_Shape aShape; - if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) - { - TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; - if (id == 2 || id == 3) + if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) { + if ( id == 2 || id == 3 ) aNeedType = TopAbs_EDGE; + else if ( id == 4 ) + aNeedType = TopAbs_FACE; - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes(firstIObject(), aMap); - if (aMap.Extent() == 1) // Local Selection - { - int anIndex = aMap(1); - if (aNeedType == TopAbs_EDGE) - aName += QString(":edge_%1").arg(anIndex); + aSelMgr->GetIndexes(anIO, aMap); + if ( aMap.Extent() == 1 ) { // Local Selection + int anIndex = aMap( 1 ); + if ( aNeedType == TopAbs_EDGE ) + aName += QString( ":edge_%1" ).arg( anIndex ); else - aName += QString(":vertex_%1").arg(anIndex); + aName += QString( ":vertex_%1" ).arg( anIndex ); //Find SubShape Object in Father GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); } - else + else { aSelectedObject = aFindedObject; // get Object from study + } + GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ); } - else // Global Selection - { - if (aShape.ShapeType() != aNeedType) { + else { // Global Selection + if ( aShape.ShapeType() != aNeedType ) { aSelectedObject = GEOM::GEOM_Object::_nil(); aName = ""; - if (id == 0) return; + if ( id == 0 ) return; } } } - if (id == 0) - { - if (aShape.IsNull()) return; + if ( aShape.IsNull() || aShape.ShapeType() != aNeedType) + return; + + if ( id == 0 ) { gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) ); - GroupXYZ->SpinBox_DX->SetValue( aPnt.X() ); - GroupXYZ->SpinBox_DY->SetValue( aPnt.Y() ); - GroupXYZ->SpinBox_DZ->SetValue( aPnt.Z() ); + GroupXYZ->SpinBox_DX->setValue( aPnt.X() ); + GroupXYZ->SpinBox_DY->setValue( aPnt.Y() ); + GroupXYZ->SpinBox_DZ->setValue( aPnt.Z() ); } - else if (id == 1) - { + else if ( id == 1 ) { myRefPoint = aSelectedObject; - GroupRefPoint->LineEdit1->setText(aName); + GroupRefPoint->LineEdit1->setText( aName ); } - else if (id == 2) - { + else if ( id == 2 ) { myEdge = aSelectedObject; - GroupOnCurve->LineEdit1->setText(aName); + GroupOnCurve->LineEdit1->setText( aName ); } - else if (id == 3) - { - if (myEditCurrentArgument == GroupLineIntersection->LineEdit1) { + else if ( id == 3 ) { + myEditCurrentArgument->setText( aName ); + globalSelection(); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + if ( myEditCurrentArgument == GroupLineIntersection->LineEdit1 ) { myLine1 = aSelectedObject; - myEditCurrentArgument->setText(aName); + if ( !myLine1->_is_nil() && myLine2->_is_nil() ) + GroupLineIntersection->PushButton2->click(); } - else if (myEditCurrentArgument == GroupLineIntersection->LineEdit2) { + else if ( myEditCurrentArgument == GroupLineIntersection->LineEdit2 ) { myLine2 = aSelectedObject; - myEditCurrentArgument->setText(aName); + if ( !myLine2->_is_nil() && myLine1->_is_nil() ) + GroupLineIntersection->PushButton1->click(); } } + else if ( id == 4 ) + { + myFace = aSelectedObject; + GroupOnSurface->LineEdit1->setText( aName ); + } } } - + displayPreview(); } + //================================================================================= // function : LineEditReturnPressed() // purpose : @@ -455,14 +529,16 @@ void BasicGUI_PointDlg::SelectionIntoArgument() void BasicGUI_PointDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if ( send == GroupRefPoint->LineEdit1 || send == GroupOnCurve->LineEdit1 || - send == GroupLineIntersection->LineEdit1 || send == GroupLineIntersection->LineEdit2 ) - { + if ( send == GroupRefPoint->LineEdit1 || + send == GroupOnCurve->LineEdit1 || + send == GroupLineIntersection->LineEdit1 || + send == GroupLineIntersection->LineEdit2 ) { myEditCurrentArgument = send; GEOMBase_Skeleton::LineEditReturnPressed(); } } + //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -472,48 +548,57 @@ void BasicGUI_PointDlg::SetEditCurrentArgument() globalSelection(); // close local contexts, if any QPushButton* send = (QPushButton*)sender(); - globalSelection( GEOM_POINT); // to break previous local selection - if ( send == GroupRefPoint->PushButton1 ) - { + if ( send == GroupRefPoint->PushButton1 ) { GroupRefPoint->LineEdit1->setFocus(); myEditCurrentArgument = GroupRefPoint->LineEdit1; - + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); } - else if ( send == GroupOnCurve->PushButton1 ) - { + else if ( send == GroupOnCurve->PushButton1 ) { GroupOnCurve->LineEdit1->setFocus(); myEditCurrentArgument = GroupOnCurve->LineEdit1; - + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); } - else if ( send == GroupLineIntersection->PushButton1 ) + else if ( send == GroupOnSurface->PushButton1 ) { + GroupOnSurface->LineEdit1->setFocus(); + myEditCurrentArgument = GroupOnSurface->LineEdit1; + + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_FACE ); + } + else if ( send == GroupLineIntersection->PushButton1 ) { GroupLineIntersection->LineEdit1->setFocus(); myEditCurrentArgument = GroupLineIntersection->LineEdit1; - + GroupLineIntersection->PushButton2->setDown( false ); + GroupLineIntersection->LineEdit1->setEnabled(true); + GroupLineIntersection->LineEdit2->setEnabled(false); localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); } - else if ( send == GroupLineIntersection->PushButton2 ) - { + else if ( send == GroupLineIntersection->PushButton2 ) { GroupLineIntersection->LineEdit2->setFocus(); myEditCurrentArgument = GroupLineIntersection->LineEdit2; - + GroupLineIntersection->PushButton1->setDown( false ); + GroupLineIntersection->LineEdit1->setEnabled(false); + GroupLineIntersection->LineEdit2->setEnabled(true); localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); } + send->setDown(true); } + //================================================================================= // function : enterEvent() // purpose : to reactivate this dialog box when mouse enter onto the window //================================================================================= -void BasicGUI_PointDlg::enterEvent(QEvent* e) +void BasicGUI_PointDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } + //================================================================================= // function : ActivateThisDialog() // purpose : @@ -525,6 +610,7 @@ void BasicGUI_PointDlg::ActivateThisDialog( ) ConstructorsClicked( getConstructorId() ); } + //================================================================================= // function : DeactivateActiveDialog() // purpose : public slot to deactivate if active @@ -535,6 +621,7 @@ void BasicGUI_PointDlg::DeactivateActiveDialog() GEOMBase_Skeleton::DeactivateActiveDialog(); } + //================================================================================= // function : ValueChangedInSpinBox() // purpose : @@ -550,20 +637,40 @@ void BasicGUI_PointDlg::ValueChangedInSpinBox(double newValue) //================================================================================= double BasicGUI_PointDlg::getParameter() const { - return GroupOnCurve->SpinBox_DX->GetValue(); + return GroupOnCurve->SpinBox_DX->value(); } + +//================================================================================= +// funcion : getUParameter() +// purpose : +//================================================================================= +double BasicGUI_PointDlg::getUParameter() const +{ + return GroupOnSurface->SpinBox_DX->value(); +} + + +//================================================================================= +// funcion : getVParameter() +// purpose : +//================================================================================= +double BasicGUI_PointDlg::getVParameter() const +{ + return GroupOnSurface->SpinBox_DY->value(); +} + + //================================================================================= // function : OnPointSelected // purpose : //================================================================================= void BasicGUI_PointDlg::OnPointSelected( const gp_Pnt& thePnt ) { - if ( getConstructorId() == 0 ) - { - GroupXYZ->SpinBox_DX->SetValue( thePnt.X() ); - GroupXYZ->SpinBox_DY->SetValue( thePnt.Y() ); - GroupXYZ->SpinBox_DZ->SetValue( thePnt.Z() ); + if ( getConstructorId() == 0 ) { + GroupXYZ->SpinBox_DX->setValue( thePnt.X() ); + GroupXYZ->SpinBox_DY->setValue( thePnt.Y() ); + GroupXYZ->SpinBox_DZ->setValue( thePnt.Z() ); displayPreview(); } @@ -585,14 +692,34 @@ GEOM::GEOM_IOperations_ptr BasicGUI_PointDlg::createOperation() bool BasicGUI_PointDlg::isValid( QString& msg ) { const int id = getConstructorId(); - if ( id == 0 ) - return true; - else if ( id == 1 ) - return !myRefPoint->_is_nil(); - else if ( id == 2 ) - return !myEdge->_is_nil(); - else if ( id == 3) + if ( id == 0 ) { + bool ok = true; + ok = GroupXYZ->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupXYZ->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + ok = GroupXYZ->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok; + return ok; + } + else if ( id == 1 ) { + bool ok = true; + ok = GroupRefPoint->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupRefPoint->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + ok = GroupRefPoint->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok; + + return !myRefPoint->_is_nil() && ok; + } + else if ( id == 2 ) { + bool ok = GroupOnCurve->SpinBox_DX->isValid( msg, !IsPreview() ); + return !myEdge->_is_nil() && ok; + } + else if ( id == 3 ) return ( !myLine1->_is_nil() && !myLine2->_is_nil() ); + else if ( id == 4 ) { + bool ok = true; + ok = GroupOnSurface->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupOnSurface->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + return !myFace->_is_nil() && ok; + + } return false; } @@ -605,78 +732,90 @@ bool BasicGUI_PointDlg::execute( ObjectList& objects ) bool res = false; GEOM::GEOM_Object_var anObj; + QStringList aParameters; - switch ( getConstructorId() ) - { + switch ( getConstructorId() ) { case 0 : - { - double x = GroupXYZ->SpinBox_DX->GetValue(); - double y = GroupXYZ->SpinBox_DY->GetValue(); - double z = GroupXYZ->SpinBox_DZ->GetValue(); + { + double x = GroupXYZ->SpinBox_DX->value(); + double y = GroupXYZ->SpinBox_DY->value(); + double z = GroupXYZ->SpinBox_DZ->value(); - anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakePointXYZ( x,y,z ); - res = true; - break; - } + aParameters << GroupXYZ->SpinBox_DX->text(); + aParameters << GroupXYZ->SpinBox_DY->text(); + aParameters << GroupXYZ->SpinBox_DZ->text(); + + anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakePointXYZ( x, y, z ); + res = true; + break; + } case 1 : - { - double dx = GroupRefPoint->SpinBox_DX->GetValue(); - double dy = GroupRefPoint->SpinBox_DY->GetValue(); - double dz = GroupRefPoint->SpinBox_DZ->GetValue(); + { + double dx = GroupRefPoint->SpinBox_DX->value(); + double dy = GroupRefPoint->SpinBox_DY->value(); + double dz = GroupRefPoint->SpinBox_DZ->value(); - anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )-> - MakePointWithReference( myRefPoint, dx, dy, dz ); - res = true; - break; - } + aParameters << GroupRefPoint->SpinBox_DX->text(); + aParameters << GroupRefPoint->SpinBox_DY->text(); + aParameters << GroupRefPoint->SpinBox_DZ->text(); + + anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )-> + MakePointWithReference( myRefPoint, dx, dy, dz ); + res = true; + break; + } case 2 : anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )-> MakePointOnCurve( myEdge, getParameter() ); + aParameters<SpinBox_DX->text(); res = true; break; case 3 : anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )-> MakePointOnLinesIntersection( myLine1, myLine2 ); - res = true; - break; + res = true; + break; + case 4 : + anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )-> + MakePointOnSurface( myFace, getUParameter(), getVParameter() ); + aParameters<SpinBox_DX->text(); + aParameters<SpinBox_DY->text(); + res = true; + break; } + + if(!anObj->_is_nil() && !IsPreview() && (getConstructorId()==0 || + getConstructorId() == 1 || + getConstructorId() == 2 || + getConstructorId() == 4) ) { + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + - if ( getConstructorId() == 1 || getConstructorId() == 2 ) - { + if ( getConstructorId() == 1 || getConstructorId() == 2 || + getConstructorId() == 4 ) { TopoDS_Shape aShape; - if ( GEOMBase::GetShape( anObj, aShape ) && !aShape.IsNull() && aShape.ShapeType() == TopAbs_VERTEX ) - { + if ( GEOMBase::GetShape( anObj, aShape ) && !aShape.IsNull() && + aShape.ShapeType() == TopAbs_VERTEX ) { gp_Pnt aPnt = BRep_Tool::Pnt( TopoDS::Vertex( aShape ) ); myX->setText( QString( "%1" ).arg( aPnt.X() ) ); myY->setText( QString( "%1" ).arg( aPnt.Y() ) ); myZ->setText( QString( "%1" ).arg( aPnt.Z() ) ); } - else - { + else { myX->setText( "" ); myY->setText( "" ); myZ->setText( "" ); } } - - if ( !anObj->_is_nil() ) - { - //printf( "--> a valid point is created\n" ); + + if ( !anObj->_is_nil() ) { objects.push_back( anObj._retn() ); } - + return res; } -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void BasicGUI_PointDlg::closeEvent( QCloseEvent* e ) -{ - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : addSubshapeToStudy // purpose : virtual method to add new SubObjects if local selection @@ -685,8 +824,7 @@ void BasicGUI_PointDlg::addSubshapesToStudy() { QMap objMap; -switch (getConstructorId()) - { + switch ( getConstructorId() ) { case 0: break; case 1: @@ -699,6 +837,9 @@ switch (getConstructorId()) objMap[GroupLineIntersection->LineEdit1->text()] = myLine1; objMap[GroupLineIntersection->LineEdit2->text()] = myLine2; break; + case 4: + objMap[GroupOnSurface->LineEdit1->text()] = myFace; + break; } - addSubshapesToFather( objMap ); + addSubshapesToFather( objMap ); } diff --git a/src/BasicGUI/BasicGUI_PointDlg.h b/src/BasicGUI/BasicGUI_PointDlg.h index 8a19f1ab9..1dfd48618 100644 --- a/src/BasicGUI/BasicGUI_PointDlg.h +++ b/src/BasicGUI/BasicGUI_PointDlg.h @@ -1,100 +1,103 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BasicGUI_PointDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_PointDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef BASICGUI_POINTDLG_H +#define BASICGUI_POINTDLG_H -#ifndef DIALOGBOX_POINT_H -#define DIALOGBOX_POINT_H +#include -#include "GEOM_BasicGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel1Spin.h" -#include "DlgRef_3Spin.h" -#include "DlgRef_2Sel_QTD.h" -#include "DlgRef_1Sel3Spin.h" +class DlgRef_1Sel1Spin; +class DlgRef_3Spin; +class DlgRef_2Sel; +class DlgRef_1Sel3Spin; +class DlgRef_1Sel2Spin; class QLineEdit; class QGroupBox; +class gp_Pnt; + //================================================================================= // class : BasicGUI_PointDlg // purpose : //================================================================================= -class GEOM_BASICGUI_EXPORT BasicGUI_PointDlg : public GEOMBase_Skeleton +class BasicGUI_PointDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BasicGUI_PointDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); + BasicGUI_PointDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); - ~BasicGUI_PointDlg(); + ~BasicGUI_PointDlg(); - bool acceptMouseEvent() const { return ( getConstructorId() == 0 ); }; - void OnPointSelected( const gp_Pnt& ); // called by BasicGUI::OnMousePress() + bool acceptMouseEvent() const { return ( getConstructorId() == 0 ); } + void OnPointSelected( const gp_Pnt& ); // called by BasicGUI::OnMousePress() protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); -private : - void Init(); - void enterEvent(QEvent* e); - double getParameter() const; - - GEOM::GEOM_Object_var myEdge; - GEOM::GEOM_Object_var myRefPoint; - GEOM::GEOM_Object_var myLine1; - GEOM::GEOM_Object_var myLine2; - - DlgRef_3Spin* GroupXYZ; - DlgRef_1Sel3Spin* GroupRefPoint; - DlgRef_1Sel1Spin* GroupOnCurve; - DlgRef_2Sel_QTD* GroupLineIntersection; - - QGroupBox* myCoordGrp; - QLineEdit* myX; - QLineEdit* myY; - QLineEdit* myZ; +private: + void Init(); + void enterEvent( QEvent* ); + double getParameter() const; + double getUParameter() const; + double getVParameter() const; +private: + GEOM::GEOM_Object_var myEdge; + GEOM::GEOM_Object_var myFace; + GEOM::GEOM_Object_var myRefPoint; + GEOM::GEOM_Object_var myLine1; + GEOM::GEOM_Object_var myLine2; + + DlgRef_3Spin* GroupXYZ; + DlgRef_1Sel3Spin* GroupRefPoint; + DlgRef_1Sel1Spin* GroupOnCurve; + DlgRef_2Sel* GroupLineIntersection; + DlgRef_1Sel2Spin* GroupOnSurface; + + QGroupBox* myCoordGrp; + QLineEdit* myX; + QLineEdit* myY; + QLineEdit* myZ; + private slots: - void ClickOnOk(); - void ClickOnCancel(); - bool ClickOnApply(); - void ActivateThisDialog(); - void DeactivateActiveDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ConstructorsClicked(int constructorId); - void ValueChangedInSpinBox(double newValue); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void DeactivateActiveDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void ValueChangedInSpinBox( double ); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_POINT_H +#endif // BASICGUI_POINTDLG_H diff --git a/src/BasicGUI/BasicGUI_VectorDlg.cxx b/src/BasicGUI/BasicGUI_VectorDlg.cxx index f5bb3bb44..23a1a8492 100644 --- a/src/BasicGUI/BasicGUI_VectorDlg.cxx +++ b/src/BasicGUI/BasicGUI_VectorDlg.cxx @@ -1,37 +1,38 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_VectorDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : BasicGUI_VectorDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "BasicGUI_VectorDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include + +#include +#include +#include +#include #include #include @@ -39,60 +40,61 @@ #include #include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : BasicGUI_VectorDlg() -// purpose : Constructs a BasicGUI_VectorDlg which is a child of 'parent', with the +// purpose : Constructs a BasicGUI_VectorDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BasicGUI_VectorDlg::BasicGUI_VectorDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, fl) +BasicGUI_VectorDlg::BasicGUI_VectorDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_VECTOR_2P"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_VECTOR_DXYZ"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_VECTOR_2P" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_VECTOR_DXYZ" ) ) ); + QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_VECTOR_TITLE")); + setWindowTitle( tr( "GEOM_VECTOR_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_VECTOR")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_VECTOR")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_2Sel_QTD(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_POINTS")); - GroupPoints->TextLabel1->setText(tr("GEOM_POINT_I").arg("1")); - GroupPoints->TextLabel2->setText(tr("GEOM_POINT_I").arg("2")); - GroupPoints->PushButton1->setPixmap(image2); - GroupPoints->PushButton2->setPixmap(image2); + GroupPoints = new DlgRef_2Sel( centralWidget() ); + + GroupPoints->GroupBox1->setTitle( tr( "GEOM_POINTS" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_POINT_I" ).arg( 1 ) ); + GroupPoints->TextLabel2->setText( tr( "GEOM_POINT_I" ).arg( 2 ) ); + GroupPoints->PushButton1->setIcon( image2 ); + GroupPoints->PushButton2->setIcon( image2 ); + GroupPoints->PushButton1->setDown( true ); GroupPoints->LineEdit1->setReadOnly( true ); GroupPoints->LineEdit2->setReadOnly( true ); + GroupPoints->LineEdit1->setEnabled( true ); + GroupPoints->LineEdit2->setEnabled( false ); - GroupDimensions = new DlgRef_3Spin1Check(this, "GroupDimensions"); - GroupDimensions->GroupBox1->setTitle(tr("GEOM_COORDINATES")); - GroupDimensions->TextLabel1->setText(tr("GEOM_DX")); - GroupDimensions->TextLabel2->setText(tr("GEOM_DY")); - GroupDimensions->TextLabel3->setText(tr("GEOM_DZ")); - GroupDimensions->CheckBox1->setText(tr("GEOM_REVERSE_VECTOR")); + GroupDimensions = new DlgRef_3Spin1Check( centralWidget() ); + GroupDimensions->GroupBox1->setTitle( tr( "GEOM_COORDINATES" ) ); + GroupDimensions->TextLabel1->setText( tr( "GEOM_DX" ) ); + GroupDimensions->TextLabel2->setText( tr( "GEOM_DY" ) ); + GroupDimensions->TextLabel3->setText( tr( "GEOM_DZ" ) ); + GroupDimensions->CheckButton1->setText( tr( "GEOM_REVERSE_VECTOR" ) ); - Layout1->addWidget(GroupPoints, 2, 0); - Layout1->addWidget(GroupDimensions, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); + layout->addWidget( GroupDimensions ); /***************************************************************/ - setHelpFileName("create_vector_page.html"); - + setHelpFileName( "create_vector_page.html" ); + /* Initialisations */ Init(); } @@ -103,7 +105,7 @@ BasicGUI_VectorDlg::BasicGUI_VectorDlg(GeometryGUI* theGeometryGUI, QWidget* par // purpose : Destroys the object and frees any allocated resources //================================================================================= BasicGUI_VectorDlg::~BasicGUI_VectorDlg() -{ +{ } @@ -121,52 +123,61 @@ void BasicGUI_VectorDlg::Init() /* Get setting of step value from file configuration */ SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); - + double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 ); + /* min, max, step and decimals for spin boxes */ - GroupDimensions->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); + initSpinBox( GroupDimensions->SpinBox_DX, COORD_MIN, COORD_MAX, step, 6 ); // VSR:TODO : DBL_DIGITS_DISPLAY + initSpinBox( GroupDimensions->SpinBox_DY, COORD_MIN, COORD_MAX, step, 6 ); // VSR:TODO : DBL_DIGITS_DISPLAY + initSpinBox( GroupDimensions->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 6 ); // VSR:TODO : DBL_DIGITS_DISPLAY double dx( 0. ), dy( 0. ), dz( 200. ); - GroupDimensions->SpinBox_DX->SetValue( dx ); - GroupDimensions->SpinBox_DY->SetValue( dy ); - GroupDimensions->SpinBox_DZ->SetValue( dz ); + GroupDimensions->SpinBox_DX->setValue( dx ); + GroupDimensions->SpinBox_DY->setValue( dy ); + GroupDimensions->SpinBox_DZ->setValue( dz ); - GroupDimensions->CheckBox1->setChecked(FALSE); + GroupDimensions->CheckButton1->setChecked( false ); /* signals and slots connections */ - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); - connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); - connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); - - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); - connect(GroupDimensions->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupDimensions->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupDimensions->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DZ, SLOT(SetStep(double))); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupPoints->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(GroupDimensions->CheckBox1, SIGNAL(stateChanged(int)), this, SLOT(ReverseVector(int))); + connect( GroupDimensions->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupDimensions->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupDimensions->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); + + connect( GroupDimensions->CheckButton1, SIGNAL( stateChanged( int ) ), this, SLOT( ReverseVector( int ) ) ); + + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr("GEOM_VECTOR") ); - GroupDimensions->hide(); - ConstructorsClicked( 0 ); + setConstructorId( 1 ); // simplest constructor + ConstructorsClicked( 1 ); +} + +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void BasicGUI_VectorDlg::SetDoubleSpinBoxStep( double step ) +{ + GroupDimensions->SpinBox_DX->setSingleStep(step); + GroupDimensions->SpinBox_DY->setSingleStep(step); + GroupDimensions->SpinBox_DZ->setSingleStep(step); } @@ -176,45 +187,50 @@ void BasicGUI_VectorDlg::Init() //================================================================================= void BasicGUI_VectorDlg::ConstructorsClicked( int constructorId ) { - disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); myPoint1 = GEOM::GEOM_Object::_nil(); myPoint2 = GEOM::GEOM_Object::_nil(); - switch (constructorId) - { - case 0: + switch ( constructorId ) { + case 0: { GroupDimensions->hide(); - resize(0, 0); GroupPoints->show(); myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setText(""); - GroupPoints->LineEdit2->setText(""); + GroupPoints->LineEdit1->setText( "" ); + GroupPoints->LineEdit2->setText( "" ); + GroupPoints->PushButton1->setDown( true ); + GroupPoints->PushButton2->setDown( false ); + GroupPoints->LineEdit1->setEnabled( true ); + GroupPoints->LineEdit2->setEnabled( false ); globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); break; } - case 1: + case 1: { GroupPoints->hide(); - resize( 0, 0 ); GroupDimensions->show(); globalSelection(); // close local contexts, if any - double dx( 0. ), dy( 0. ), dz( 0. ); - GroupDimensions->SpinBox_DX->SetValue( dx ); - GroupDimensions->SpinBox_DY->SetValue( dy ); - GroupDimensions->SpinBox_DZ->SetValue( dz ); + double dx( 0. ), dy( 0. ), dz( 0. ); + GroupDimensions->SpinBox_DX->setValue( dx ); + GroupDimensions->SpinBox_DY->setValue( dy ); + GroupDimensions->SpinBox_DZ->setValue( dz ); - GroupDimensions->CheckBox1->setChecked( FALSE ); + GroupDimensions->CheckButton1->setChecked( false ); break; } } + qApp->processEvents(); + updateGeometry(); + resize( minimumSizeHint() ); + displayPreview(); } @@ -229,29 +245,20 @@ void BasicGUI_VectorDlg::ClickOnOk() ClickOnCancel(); } -//======================================================================= -// function : ClickOnCancel() -// purpose : -//======================================================================= -void BasicGUI_VectorDlg::ClickOnCancel() -{ - GEOMBase_Skeleton::ClickOnCancel(); -} - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool BasicGUI_VectorDlg::ClickOnApply() { - buttonApply->setFocus(); + buttonApply()->setFocus(); if ( !onAccept() ) return false; initName(); if ( getConstructorId() != 1 ) - ConstructorsClicked( getConstructorId() ); + ConstructorsClicked( getConstructorId() ); return true; } @@ -262,10 +269,13 @@ bool BasicGUI_VectorDlg::ClickOnApply() //================================================================================= void BasicGUI_VectorDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); - if (IObjectCount() != 1) - { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { if (myEditCurrentArgument == GroupPoints->LineEdit1) myPoint1 = GEOM::GEOM_Object::_nil(); else if (myEditCurrentArgument == GroupPoints->LineEdit2) @@ -273,37 +283,32 @@ void BasicGUI_VectorDlg::SelectionIntoArgument() return; } - // nbSel == 1 + // nbSel == 1 Standard_Boolean aRes = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), aRes); - if (!CORBA::is_nil(aSelectedObject) && aRes) - { + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); + if (!CORBA::is_nil(aSelectedObject) && aRes) { QString aName = GEOMBase::GetName(aSelectedObject); TopoDS_Shape aShape; - if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) - { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes(firstIObject(), aMap); - if (aMap.Extent() == 1) // Local Selection - { - + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) { // Local Selection int anIndex = aMap(1); aName += QString(":vertex_%1").arg(anIndex); //Find SubShape Object in Father GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); } - else + else { aSelectedObject = aFindedObject; // get Object from study + } } - else // Global Selection - { + else { // Global Selection if (aShape.ShapeType() != TopAbs_VERTEX) { aSelectedObject = GEOM::GEOM_Object::_nil(); aName = ""; @@ -313,8 +318,21 @@ void BasicGUI_VectorDlg::SelectionIntoArgument() myEditCurrentArgument->setText(aName); - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myPoint1 = aSelectedObject; - else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) myPoint2 = aSelectedObject; + if (!aSelectedObject->_is_nil()) { // clear selection if something selected + globalSelection(); + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + } + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + myPoint1 = aSelectedObject; + if (!myPoint1->_is_nil() && myPoint2->_is_nil()) + GroupPoints->PushButton2->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { + myPoint2 = aSelectedObject; + if (!myPoint2->_is_nil() && myPoint1->_is_nil()) + GroupPoints->PushButton1->click(); + } } displayPreview(); @@ -327,10 +345,24 @@ void BasicGUI_VectorDlg::SelectionIntoArgument() void BasicGUI_VectorDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if ( send == GroupPoints->PushButton1 ) myEditCurrentArgument = GroupPoints->LineEdit1; - else if ( send == GroupPoints->PushButton2 ) myEditCurrentArgument = GroupPoints->LineEdit2; + if ( send == GroupPoints->PushButton1 ) { + myEditCurrentArgument = GroupPoints->LineEdit1; + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit1->setEnabled(true); + GroupPoints->LineEdit2->setEnabled(false); + } + else if ( send == GroupPoints->PushButton2 ) { + myEditCurrentArgument = GroupPoints->LineEdit2; + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + GroupPoints->LineEdit2->setEnabled(true); + } myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // SelectionIntoArgument(); + globalSelection(); // close local selection to clear it + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + send->setDown(true); + displayPreview(); } @@ -339,7 +371,7 @@ void BasicGUI_VectorDlg::SetEditCurrentArgument() // purpose : //================================================================================= void BasicGUI_VectorDlg::LineEditReturnPressed() -{ +{ QLineEdit* send = (QLineEdit*)sender(); if ( send == GroupPoints->LineEdit1 ) myEditCurrentArgument = GroupPoints->LineEdit1; else if ( send == GroupPoints->LineEdit2 ) myEditCurrentArgument = GroupPoints->LineEdit2; @@ -347,6 +379,7 @@ void BasicGUI_VectorDlg::LineEditReturnPressed() GEOMBase_Skeleton::LineEditReturnPressed(); } + //================================================================================= // function : ActivateThisDialog() // purpose : @@ -354,10 +387,10 @@ void BasicGUI_VectorDlg::LineEditReturnPressed() void BasicGUI_VectorDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); - ConstructorsClicked(getConstructorId()); + ConstructorsClicked( getConstructorId() ); } //================================================================================= @@ -373,9 +406,9 @@ void BasicGUI_VectorDlg::DeactivateActiveDialog() // function : enterEvent() // purpose : //================================================================================= -void BasicGUI_VectorDlg::enterEvent(QEvent* e) +void BasicGUI_VectorDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -392,16 +425,16 @@ void BasicGUI_VectorDlg::ValueChangedInSpinBox( double newValue ) // function : ReverseVector() // purpose : 'state' not used here //================================================================================= -void BasicGUI_VectorDlg::ReverseVector(int state) +void BasicGUI_VectorDlg::ReverseVector( int state ) { - double dx = -GroupDimensions->SpinBox_DX->GetValue(); - double dy = -GroupDimensions->SpinBox_DY->GetValue(); - double dz = -GroupDimensions->SpinBox_DZ->GetValue(); + double dx = -GroupDimensions->SpinBox_DX->value(); + double dy = -GroupDimensions->SpinBox_DY->value(); + double dz = -GroupDimensions->SpinBox_DZ->value(); + + GroupDimensions->SpinBox_DX->setValue( dx ); + GroupDimensions->SpinBox_DY->setValue( dy ); + GroupDimensions->SpinBox_DZ->setValue( dz ); - GroupDimensions->SpinBox_DX->SetValue( dx ); - GroupDimensions->SpinBox_DY->SetValue( dy ); - GroupDimensions->SpinBox_DZ->SetValue( dz ); - displayPreview(); } @@ -420,7 +453,17 @@ GEOM::GEOM_IOperations_ptr BasicGUI_VectorDlg::createOperation() //================================================================================= bool BasicGUI_VectorDlg::isValid( QString& msg ) { - return getConstructorId() == 0 ? !myPoint1->_is_nil() && !myPoint2->_is_nil(): true; + if(getConstructorId() == 0) + return !myPoint1->_is_nil() && !myPoint2->_is_nil(); + else if(getConstructorId() == 1) + { + bool ok = true; + ok = GroupDimensions->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok; + return ok; + } + return false; } //================================================================================= @@ -430,21 +473,31 @@ bool BasicGUI_VectorDlg::isValid( QString& msg ) bool BasicGUI_VectorDlg::execute( ObjectList& objects ) { bool res = false; - + GEOM::GEOM_Object_var anObj; switch ( getConstructorId() ) { case 0 : - anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeVectorTwoPnt( myPoint1, myPoint2 ); - res = true; - break; - + { + anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeVectorTwoPnt( myPoint1, myPoint2 ); + res = true; + break; + } case 1 : { - double dx = GroupDimensions->SpinBox_DX->GetValue(); - double dy = GroupDimensions->SpinBox_DY->GetValue(); - double dz = GroupDimensions->SpinBox_DZ->GetValue(); - anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeVectorDXDYDZ( dx,dy,dz ); + double dx = GroupDimensions->SpinBox_DX->value(); + double dy = GroupDimensions->SpinBox_DY->value(); + double dz = GroupDimensions->SpinBox_DZ->value(); + + QStringList aParameters; + aParameters << GroupDimensions->SpinBox_DX->text(); + aParameters << GroupDimensions->SpinBox_DY->text(); + aParameters << GroupDimensions->SpinBox_DZ->text(); + anObj = GEOM::GEOM_IBasicOperations::_narrow( getOperation() )->MakeVectorDXDYDZ( dx, dy, dz ); + + if ( !anObj->_is_nil() && !IsPreview() ) + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + res = true; break; } @@ -464,14 +517,13 @@ void BasicGUI_VectorDlg::addSubshapesToStudy() { QMap objMap; -switch (getConstructorId()) - { + switch ( getConstructorId() ) { case 0: - objMap[GroupPoints->LineEdit1->text()] = myPoint1; - objMap[GroupPoints->LineEdit2->text()] = myPoint2; + objMap[GroupPoints->LineEdit1->text()] = myPoint1; + objMap[GroupPoints->LineEdit2->text()] = myPoint2; break; case 1: return; } - addSubshapesToFather( objMap ); + addSubshapesToFather( objMap ); } diff --git a/src/BasicGUI/BasicGUI_VectorDlg.h b/src/BasicGUI/BasicGUI_VectorDlg.h index b0dc0dcd0..747ef534b 100644 --- a/src/BasicGUI/BasicGUI_VectorDlg.h +++ b/src/BasicGUI/BasicGUI_VectorDlg.h @@ -1,86 +1,79 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BasicGUI_VectorDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_VectorDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef BASICGUI_VECTORDLG_H +#define BASICGUI_VECTORDLG_H -#ifndef DIALOGBOX_VECTOR_H -#define DIALOGBOX_VECTOR_H +#include -#include "GEOM_BasicGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel_QTD.h" -#include "DlgRef_3Spin1Check.h" - -#include "BasicGUI.h" +class DlgRef_2Sel; +class DlgRef_3Spin1Check; //================================================================================= // class : BasicGUI_VectorDlg // purpose : //================================================================================= -class GEOM_BASICGUI_EXPORT BasicGUI_VectorDlg : public GEOMBase_Skeleton +class BasicGUI_VectorDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BasicGUI_VectorDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BasicGUI_VectorDlg(); - + BasicGUI_VectorDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~BasicGUI_VectorDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); -private : - void Init(); - void enterEvent(QEvent* e); +private: + void Init(); + void enterEvent( QEvent* ); - GEOM::GEOM_Object_var myPoint1; - GEOM::GEOM_Object_var myPoint2; + GEOM::GEOM_Object_var myPoint1; + GEOM::GEOM_Object_var myPoint2; - DlgRef_2Sel_QTD* GroupPoints; - DlgRef_3Spin1Check* GroupDimensions; - -private slots: - void ClickOnOk(); - void ClickOnCancel(); - bool ClickOnApply(); - - void ActivateThisDialog(); - void DeactivateActiveDialog(); + DlgRef_2Sel* GroupPoints; + DlgRef_3Spin1Check* GroupDimensions; - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ConstructorsClicked(int constructorId); - void ValueChangedInSpinBox(double newValue); - void ReverseVector(int state); +private slots: + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void DeactivateActiveDialog(); + + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void ValueChangedInSpinBox( double ); + void ReverseVector( int ); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_VECTOR_H +#endif // BASICGUI_VECTORDLG_H diff --git a/src/BasicGUI/BasicGUI_WorkingPlaneDlg.cxx b/src/BasicGUI/BasicGUI_WorkingPlaneDlg.cxx index 31c84cb9e..5fd3838c9 100644 --- a/src/BasicGUI/BasicGUI_WorkingPlaneDlg.cxx +++ b/src/BasicGUI/BasicGUI_WorkingPlaneDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,24 +19,23 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_WorkingPlaneDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : BasicGUI_WorkingPlaneDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM - #include "BasicGUI_WorkingPlaneDlg.h" -#include "GEOMBase.h" +#include +#include +#include -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include // OCCT Includes #include -#include #include #include #include @@ -48,12 +47,9 @@ #include // QT Includes -#include -#include +#include -#include "GEOMImpl_Types.hxx" - -using namespace std; +#include //================================================================================= // class : BasicGUI_WorkingPlaneDlg() @@ -62,61 +58,68 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BasicGUI_WorkingPlaneDlg::BasicGUI_WorkingPlaneDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BasicGUI_WorkingPlaneDlg::BasicGUI_WorkingPlaneDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_WPLANE_FACE"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_WPLANE_VECTOR"))); - QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_WPLANE_ORIGIN"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_WPLANE_FACE" ) ) ); + QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_WPLANE_VECTOR" ) ) ); + QPixmap image3( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_WPLANE_ORIGIN" ) ) ); - setCaption(tr("GEOM_WPLANE_TITLE")); + setWindowTitle( tr( "GEOM_WPLANE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_WPLANE")); - RadioButton1->setPixmap(image1); - RadioButton2->setPixmap(image2); - RadioButton3->setPixmap(image3); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_WPLANE" ) ); + mainFrame()->RadioButton1->setIcon( image1 ); + mainFrame()->RadioButton2->setIcon( image2 ); + mainFrame()->RadioButton3->setIcon( image3 ); - Group1 = new DlgRef_1Sel_QTD(this, "Group1"); - Group1->GroupBox1->setTitle(tr("GEOM_WPLANE_FACE")); - Group1->TextLabel1->setText(tr("GEOM_SELECTION")); - Group1->PushButton1->setPixmap(image0); + Group1 = new DlgRef_1Sel( centralWidget() ); + + Group1->GroupBox1->setTitle( tr( "GEOM_WPLANE_FACE" ) ); + Group1->TextLabel1->setText( tr( "GEOM_SELECTION" ) ); + Group1->PushButton1->setIcon( image0 ); Group1->LineEdit1->setReadOnly( true ); - Group2 = new DlgRef_2Sel_QTD(this, "Group2"); - Group2->GroupBox1->setTitle(tr("GEOM_WPLANE_VECTOR")); - Group2->TextLabel1->setText(tr("GEOM_WPLANE_VX")); - Group2->TextLabel2->setText(tr("GEOM_WPLANE_VZ")); - Group2->PushButton1->setPixmap(image0); - Group2->PushButton2->setPixmap(image0); + Group2 = new DlgRef_2Sel( centralWidget() ); + + Group2->GroupBox1->setTitle( tr( "GEOM_WPLANE_VECTOR" ) ); + Group2->TextLabel1->setText( tr( "GEOM_WPLANE_VX" ) ); + Group2->TextLabel2->setText( tr( "GEOM_WPLANE_VZ" ) ); + Group2->PushButton1->setIcon( image0 ); + Group2->PushButton2->setIcon( image0 ); Group2->LineEdit1->setReadOnly( true ); Group2->LineEdit2->setReadOnly( true ); + Group2->PushButton1->setDown( true ); + Group2->LineEdit1->setEnabled( true ); + Group2->LineEdit2->setEnabled( false ); - Group3 = new DlgRef_3Check_QTD(this, "Group3"); - Group3->GroupBox1->setTitle(tr("GEOM_WPLANE_ORIGIN")); - Group3->RadioButton1->setText(tr("GEOM_WPLANE_OXY")); - Group3->RadioButton2->setText(tr("GEOM_WPLANE_OYZ")); - Group3->RadioButton3->setText(tr("GEOM_WPLANE_OZX")); + Group3 = new DlgRef_3Check( centralWidget() ); + + Group3->GroupBox1->setTitle( tr( "GEOM_WPLANE_ORIGIN" ) ); + Group3->RadioButton1->setText( tr( "GEOM_WPLANE_OXY" ) ); + Group3->RadioButton2->setText( tr( "GEOM_WPLANE_OYZ" ) ); + Group3->RadioButton3->setText( tr( "GEOM_WPLANE_OZX" ) ); - Layout1->addWidget(Group1, 1, 0); - Layout1->addWidget(Group2, 1, 0); - Layout1->addWidget(Group3, 1, 0); /***************************************************************/ - QGroupBox* aReverseGroupBox = new QGroupBox(this, "aReverseGroupBox"); - aReverseGroupBox->setTitle(tr("")); - aReverseGroupBox->setColumnLayout(1, Qt::Horizontal); - aReverseGroupBox->setInsideMargin(10); - - myReverseCB = new QCheckBox(aReverseGroupBox, "myReverseCB"); - myReverseCB->setText(tr("GEOM_REVERSE_PLANE")); - - Layout1->addWidget(aReverseGroupBox, 2, 0); - + QGroupBox* aReverseGroupBox = new QGroupBox( centralWidget() ); + QHBoxLayout* aReverseGroupBoxLayout = new QHBoxLayout( aReverseGroupBox ); + aReverseGroupBoxLayout->setMargin( 9 ); + aReverseGroupBoxLayout->setSpacing( 6 ); - setHelpFileName("create_wplane_page.html"); + myReverseCB = new QCheckBox( aReverseGroupBox ); + myReverseCB->setText( tr( "GEOM_REVERSE_PLANE" ) ); + aReverseGroupBoxLayout->addWidget( myReverseCB ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( Group1 ); + layout->addWidget( Group2 ); + layout->addWidget( Group3 ); + layout->addWidget( aReverseGroupBox ); + + setHelpFileName( "create_wplane_page.html" ); Init(); } @@ -141,7 +144,7 @@ void BasicGUI_WorkingPlaneDlg::Init() // myGeomGUI->SetState( 0 ); - myFace = GEOM::GEOM_Object::_nil(); + myFace = GEOM::GEOM_Object::_nil(); myVectX = GEOM::GEOM_Object::_nil(); myVectZ = GEOM::GEOM_Object::_nil(); @@ -151,98 +154,96 @@ void BasicGUI_WorkingPlaneDlg::Init() globalSelection( GEOM_PLANE ); /* signals and slots connections */ - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); - connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); - connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(Group1->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group1->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); - connect(Group2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group2->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group2->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( Group1->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group1->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group2->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group2->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( Group2->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group2->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(Group3->GroupBox1, SIGNAL(clicked(int)), this, SLOT(GroupClicked(int))); + connect( Group3->GroupBox1, SIGNAL( clicked( int ) ), this, SLOT( GroupClicked( int ) ) ); - connect(myReverseCB, SIGNAL(clicked()), this, SLOT(onReverse())); + connect( myReverseCB, SIGNAL( clicked() ), this, SLOT( onReverse() ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_WPLANE" ) ); - ConstructorsClicked(0); + + setConstructorId( 2 ); // simplest constructor + ConstructorsClicked( 2 ); } //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void BasicGUI_WorkingPlaneDlg::ConstructorsClicked(int constructorId) +void BasicGUI_WorkingPlaneDlg::ConstructorsClicked( int constructorId ) { LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - disconnect(aSelMgr, 0, this, 0); + disconnect( aSelMgr, 0, this, 0 ); - switch (constructorId) + switch ( constructorId ) { + case 0: { - case 0: - { - //globalSelection( GEOM_PLANE ); - TColStd_MapOfInteger aMap; - aMap.Add( GEOM_PLANE ); - aMap.Add( GEOM_MARKER ); - globalSelection( aMap ); + TColStd_MapOfInteger aMap; + aMap.Add( GEOM_PLANE ); + aMap.Add( GEOM_MARKER ); + globalSelection( aMap ); + Group2->hide(); + Group3->hide(); + Group1->show(); + Group1->PushButton1->setDown(true); + myEditCurrentArgument = Group1->LineEdit1; + Group1->LineEdit1->setText( "" ); + myFace = GEOM::GEOM_Object::_nil(); - Group2->hide(); - Group3->hide(); - resize(0, 0); - Group1->show(); - - myEditCurrentArgument = Group1->LineEdit1; - Group1->LineEdit1->setText(""); - myFace = GEOM::GEOM_Object::_nil(); - - connect(aSelMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - break; - } - case 1: - { - //globalSelection( GEOM_LINE ); - GEOM::GEOM_Object_var anObj; - localSelection( anObj, TopAbs_EDGE ); - - Group1->hide(); - Group3->hide(); - resize(0, 0); - Group2->show(); - - myEditCurrentArgument = Group2->LineEdit1; - Group2->LineEdit1->setText(""); - Group2->LineEdit2->setText(""); - myVectX = GEOM::GEOM_Object::_nil(); - myVectZ = GEOM::GEOM_Object::_nil(); - - connect(aSelMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - break; - } - case 2: - { - Group1->hide(); - Group2->hide(); - resize(0, 0); - Group3->show(); - - Group3->RadioButton1->setChecked(true); - aOriginType = 1; - break; - } + connect( aSelMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); + break; } - + case 1: + { + globalSelection( GEOM_LINE ); + Group1->hide(); + Group3->hide(); + Group2->show(); + myEditCurrentArgument = Group2->LineEdit1; + Group2->LineEdit1->setText( "" ); + Group2->LineEdit2->setText( "" ); + Group2->PushButton1->setDown( true ); + Group2->PushButton2->setDown( false ); + Group2->LineEdit1->setEnabled( true ); + Group2->LineEdit2->setEnabled( false ); + myVectX = GEOM::GEOM_Object::_nil(); + myVectZ = GEOM::GEOM_Object::_nil(); + + connect( aSelMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); + break; + } + case 2: + { + Group1->hide(); + Group2->hide(); + Group3->show(); + Group3->RadioButton1->setChecked( true ); + aOriginType = 1; + break; + } + } + + qApp->processEvents(); + updateGeometry(); + resize( minimumSizeHint() ); + updateWPlane(); } @@ -250,7 +251,7 @@ void BasicGUI_WorkingPlaneDlg::ConstructorsClicked(int constructorId) // function : GroupClicked() // purpose : Radio button management //================================================================================= -void BasicGUI_WorkingPlaneDlg::GroupClicked(int groupId) +void BasicGUI_WorkingPlaneDlg::GroupClicked( int groupId ) { aOriginType = groupId; updateWPlane(); @@ -272,14 +273,14 @@ void BasicGUI_WorkingPlaneDlg::ClickOnOk() //================================================================================= bool BasicGUI_WorkingPlaneDlg::ClickOnApply() { - buttonApply->setFocus(); - myGeomGUI->application()->putInfo(tr("")); - - if (updateWPlane(false)){ - myGeomGUI->SetWorkingPlane(myWPlane); + buttonApply()->setFocus(); + myGeomGUI->application()->putInfo( "" ); + + if ( updateWPlane( false ) ) { + myGeomGUI->SetWorkingPlane( myWPlane ); myGeomGUI->ActiveWorkingPlane(); } - + return true; } @@ -289,17 +290,21 @@ bool BasicGUI_WorkingPlaneDlg::ClickOnApply() //================================================================================= void BasicGUI_WorkingPlaneDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); QString aName; + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + const int id = getConstructorId(); - if (IObjectCount() != 1) { - if (id == 0) + if (aSelList.Extent() != 1) { + if ( id == 0 ) myFace = GEOM::GEOM_Object::_nil(); - else if (id == 1) { - if (myEditCurrentArgument == Group2->LineEdit1) + else if ( id == 1 ) { + if ( myEditCurrentArgument == Group2->LineEdit1 ) myVectX = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == Group2->LineEdit2) + else if ( myEditCurrentArgument == Group2->LineEdit2 ) myVectZ = GEOM::GEOM_Object::_nil(); } return; @@ -307,42 +312,38 @@ void BasicGUI_WorkingPlaneDlg::SelectionIntoArgument() // nbSel == 1 Standard_Boolean aRes = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), aRes); + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); - if (!aRes || CORBA::is_nil(aSelectedObject)) + if ( !aRes || CORBA::is_nil( aSelectedObject ) ) return; aName = GEOMBase::GetName(aSelectedObject); - if (myEditCurrentArgument == Group1->LineEdit1) + if ( myEditCurrentArgument == Group1->LineEdit1 ) myFace = aSelectedObject; - else if (myEditCurrentArgument == Group2->LineEdit1 || myEditCurrentArgument == Group2->LineEdit2) - { - if ( aRes && !aSelectedObject->_is_nil() ) - { + else if ( myEditCurrentArgument == Group2->LineEdit1 || + myEditCurrentArgument == Group2->LineEdit2 ) { + if ( aRes && !aSelectedObject->_is_nil() ) { TopoDS_Shape aShape; - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) - { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) { TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes( firstIObject(), aMap ); - if ( aMap.Extent() == 1 ) - { + aSelMgr->GetIndexes(aSelList.First(), aMap); + if ( aMap.Extent() == 1 ) { int anIndex = aMap( 1 ); aName = aName + ":edge_" + QString::number( anIndex ); GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); - if(myEditCurrentArgument == Group2->LineEdit1) - myVectX = aShapesOp->GetSubShape(aSelectedObject, anIndex); + if ( myEditCurrentArgument == Group2->LineEdit1 ) + myVectX = aShapesOp->GetSubShape( aSelectedObject, anIndex ); else - myVectZ = aShapesOp->GetSubShape(aSelectedObject, anIndex); + myVectZ = aShapesOp->GetSubShape( aSelectedObject, anIndex ); } else { - if (myEditCurrentArgument == Group2->LineEdit1) - myVectX = aSelectedObject; - else - myVectZ = aSelectedObject; + if ( aShape.ShapeType() != TopAbs_EDGE ) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } } aSelMgr->clearSelected(); } @@ -351,9 +352,21 @@ void BasicGUI_WorkingPlaneDlg::SelectionIntoArgument() myEditCurrentArgument->setText( aName ); + if ( myEditCurrentArgument == Group2->LineEdit1 ) { + myVectX = aSelectedObject; + if ( !myVectX->_is_nil() && myVectZ->_is_nil() ) + Group2->PushButton2->click(); + } + else { + myVectZ = aSelectedObject; + if ( !myVectZ->_is_nil() && myVectX->_is_nil() ) + Group2->PushButton1->click(); + } + updateWPlane(); } + //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -362,25 +375,36 @@ void BasicGUI_WorkingPlaneDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if (send == Group1->PushButton1) { + if ( send == Group1->PushButton1 ) { myEditCurrentArgument = Group1->LineEdit1; globalSelection( GEOM_PLANE ); } - else if (send == Group2->PushButton1) { + else if ( send == Group2->PushButton1 ) { myEditCurrentArgument = Group2->LineEdit1; GEOM::GEOM_Object_var anObj; - localSelection( anObj, TopAbs_EDGE ); + // localSelection( anObj, TopAbs_EDGE ); + globalSelection( GEOM_LINE ); + Group2->PushButton2->setDown( false ); + Group2->LineEdit1->setEnabled( true ); + Group2->LineEdit2->setEnabled( false ); } - else if (send == Group2->PushButton2) { + else if ( send == Group2->PushButton2 ) { myEditCurrentArgument = Group2->LineEdit2; GEOM::GEOM_Object_var anObj; - localSelection( anObj, TopAbs_EDGE ); + // localSelection( anObj, TopAbs_EDGE ); + globalSelection( GEOM_LINE ); + Group2->PushButton1->setDown( false ); + Group2->LineEdit1->setEnabled( false ); + Group2->LineEdit2->setEnabled( true ); } myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // SelectionIntoArgument(); + send->setDown(true); + displayPreview(); } + //================================================================================= // function : LineEditReturnPressed() // purpose : @@ -388,12 +412,13 @@ void BasicGUI_WorkingPlaneDlg::SetEditCurrentArgument() void BasicGUI_WorkingPlaneDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == Group1->LineEdit1 || send == Group2->LineEdit1 || send == Group2->LineEdit2) { + if ( send == Group1->LineEdit1 || send == Group2->LineEdit1 || send == Group2->LineEdit2 ) { myEditCurrentArgument = send; GEOMBase_Skeleton::LineEditReturnPressed(); } } + //================================================================================= // function : onReverse() // purpose : @@ -403,6 +428,7 @@ void BasicGUI_WorkingPlaneDlg::onReverse() updateWPlane(); } + //================================================================================= // function : ActivateThisDialog() // purpose : @@ -410,49 +436,33 @@ void BasicGUI_WorkingPlaneDlg::onReverse() void BasicGUI_WorkingPlaneDlg::ActivateThisDialog( ) { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication( ) ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); ConstructorsClicked( getConstructorId() ); } + //================================================================================= // function : DeactivateActiveDialog() // purpose : public slot to deactivate if active //================================================================================= void BasicGUI_WorkingPlaneDlg::DeactivateActiveDialog() { + // myGeomGUI->SetState( -1 ); GEOMBase_Skeleton::DeactivateActiveDialog(); } -//================================================================================= -// function : ClickOnCancel() -// purpose : -//================================================================================= -void BasicGUI_WorkingPlaneDlg::ClickOnCancel() -{ - GEOMBase_Skeleton::ClickOnCancel(); -} - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void BasicGUI_WorkingPlaneDlg::enterEvent(QEvent* e) +void BasicGUI_WorkingPlaneDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void BasicGUI_WorkingPlaneDlg::closeEvent( QCloseEvent* e ) -{ - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : updateWPlane // purpose : @@ -460,40 +470,41 @@ void BasicGUI_WorkingPlaneDlg::closeEvent( QCloseEvent* e ) bool BasicGUI_WorkingPlaneDlg::updateWPlane( const bool showPreview ) { erasePreview(); - + const int id = getConstructorId(); - if (id == 0) { // by planar face selection - if (CORBA::is_nil(myFace)) { - if(!showPreview) + if ( id == 0 ) { // by planar face selection + if ( CORBA::is_nil( myFace ) ) { + if ( !showPreview ) showError( "Face has to be selected" ); return false; } // PAL12781: set center of WPL to face's center of mass // like it is done for LCS creation - CORBA::Double Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz; + CORBA::Double Ox, Oy, Oz, Zx, Zy, Zz, Xx, Xy, Xz; Ox = Oy = Oz = Zx = Zy = Xy = Xz = 0.; Zz = Xx = 1.; GEOM::GEOM_IMeasureOperations_ptr aMeasureOp = - myGeomGUI->GetGeomGen()->GetIMeasureOperations(getStudyId()); - aMeasureOp->GetPosition(myFace, Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz); + myGeomGUI->GetGeomGen()->GetIMeasureOperations( getStudyId() ); + aMeasureOp->GetPosition( myFace, Ox, Oy, Oz, Zx, Zy, Zz, Xx, Xy, Xz); - if (aMeasureOp->IsDone()) { - gp_Pnt aPnt (Ox,Oy,Oz); - gp_Dir aDirN (Zx,Zy,Zz); - gp_Dir aDirX (Xx,Xy,Xz); - myWPlane = gp_Ax3(aPnt, aDirN, aDirX); - } else { - if(!showPreview) + if ( aMeasureOp->IsDone() ) { + gp_Pnt aPnt ( Ox, Oy, Oz ); + gp_Dir aDirN ( Zx, Zy, Zz ); + gp_Dir aDirX ( Xx, Xy, Xz ); + myWPlane = gp_Ax3( aPnt, aDirN, aDirX ); + } + else { + if ( !showPreview ) showError( "Wrong shape selected (has to be a planar face)" ); return false; } } - else if (id == 1) { // by two vectors (Ox & Oz) + else if ( id == 1 ) { // by two vectors (Ox & Oz) if ( CORBA::is_nil( myVectX ) || CORBA::is_nil( myVectZ ) ) { - if(!showPreview) + if ( !showPreview ) showError( "Two vectors have to be selected" ); return false; } @@ -502,81 +513,80 @@ bool BasicGUI_WorkingPlaneDlg::updateWPlane( const bool showPreview ) TopoDS_Vertex VX1, VX2, VZ1, VZ2; gp_Vec aVX, aVZ; - if (!GEOMBase::GetShape( myVectX, aVectX, TopAbs_EDGE ) || - !GEOMBase::GetShape( myVectZ, aVectZ, TopAbs_EDGE )) { - if(!showPreview) + if ( !GEOMBase::GetShape( myVectX, aVectX, TopAbs_EDGE ) || + !GEOMBase::GetShape( myVectZ, aVectZ, TopAbs_EDGE ) ) { + if ( !showPreview ) showError( "Wrong shape selected (two vectors(edges) have to be selected)" ); return false; } - TopExp::Vertices(aVectX, VX1, VX2, Standard_True); - TopExp::Vertices(aVectZ, VZ1, VZ2, Standard_True); + TopExp::Vertices( aVectX, VX1, VX2, Standard_True ); + TopExp::Vertices( aVectZ, VZ1, VZ2, Standard_True ); - if (VX1.IsNull() || VX2.IsNull()) { - if(!showPreview) + if ( VX1.IsNull() || VX2.IsNull() ) { + if ( !showPreview ) showError( "Bad OX vector" ); return false; } - if (VZ1.IsNull() || VZ2.IsNull()) { - if(!showPreview) + if ( VZ1.IsNull() || VZ2.IsNull() ) { + if ( !showPreview ) showError( "Bad OZ vector" ); return false; } - aVX = gp_Vec(BRep_Tool::Pnt(VX1), BRep_Tool::Pnt(VX2)); - aVZ = gp_Vec(BRep_Tool::Pnt(VZ1), BRep_Tool::Pnt(VZ2)); + aVX = gp_Vec( BRep_Tool::Pnt( VX1 ), BRep_Tool::Pnt( VX2 ) ); + aVZ = gp_Vec( BRep_Tool::Pnt( VZ1 ), BRep_Tool::Pnt( VZ2 ) ); - if (aVX.Magnitude() < Precision::Confusion()) { - if(!showPreview) + if ( aVX.Magnitude() < Precision::Confusion() ) { + if ( !showPreview ) showError( "Bad OX vector" ); return false; } - if (aVZ.Magnitude() < Precision::Confusion()) { - if(!showPreview) + if ( aVZ.Magnitude() < Precision::Confusion() ) { + if ( !showPreview ) showError( "Bad OZ vector" ); return false; } - gp_Dir aDirX = gp_Dir(aVX.X(), aVX.Y(), aVX.Z()); - gp_Dir aDirZ = gp_Dir(aVZ.X(), aVZ.Y(), aVZ.Z()); + gp_Dir aDirX = gp_Dir( aVX.X(), aVX.Y(), aVX.Z() ); + gp_Dir aDirZ = gp_Dir( aVZ.X(), aVZ.Y(), aVZ.Z() ); - if (aDirX.IsParallel(aDirZ, Precision::Angular())) { - if(!showPreview) + if ( aDirX.IsParallel( aDirZ, Precision::Angular() ) ) { + if ( !showPreview ) showError( "Parallel vectors selected" ); return false; } - myWPlane = gp_Ax3(BRep_Tool::Pnt(VX1), aDirZ, aDirX); + myWPlane = gp_Ax3( BRep_Tool::Pnt( VX1 ), aDirZ, aDirX ); + } - else if (id == 2) { // by selection from standard (OXY or OYZ, or OZX) + else if ( id == 2 ) { // by selection from standard (OXY or OYZ, or OZX) gp_Ax2 anAx2; - if (aOriginType == 1) anAx2 = gp::XOY(); - else if (aOriginType == 2) anAx2 = gp::YOZ(); - else if (aOriginType == 0) anAx2 = gp::ZOX(); + if ( aOriginType == 1 ) anAx2 = gp::XOY(); + else if ( aOriginType == 2 ) anAx2 = gp::YOZ(); + else if ( aOriginType == 0 ) anAx2 = gp::ZOX(); + + myWPlane = gp_Ax3( anAx2 ); - myWPlane = gp_Ax3(anAx2); } else { return false; } - if (myReverseCB->isChecked()) - { + if ( myReverseCB->isChecked() ) { myWPlane.YReverse(); myWPlane.ZReverse(); } - if (showPreview) - { - GEOM::GEOM_IBasicOperations_var aBasicOp = getGeomEngine()->GetIBasicOperations(getStudyId()); + if ( showPreview ) { + GEOM::GEOM_IBasicOperations_var aBasicOp = getGeomEngine()->GetIBasicOperations( getStudyId() ); GEOM::GEOM_Object_var anObj = aBasicOp->MakeMarker - (myWPlane.Location().X() , myWPlane.Location().Y() , myWPlane.Location().Z(), - myWPlane.XDirection().X(), myWPlane.XDirection().Y(), myWPlane.XDirection().Z(), - myWPlane.YDirection().X(), myWPlane.YDirection().Y(), myWPlane.YDirection().Z()); - displayPreview(anObj); + ( myWPlane.Location().X(), myWPlane.Location().Y(), myWPlane.Location().Z(), + myWPlane.XDirection().X(), myWPlane.XDirection().Y(), myWPlane.XDirection().Z(), + myWPlane.YDirection().X(), myWPlane.YDirection().Y(), myWPlane.YDirection().Z() ); + displayPreview( anObj ); } return true; } - diff --git a/src/BasicGUI/BasicGUI_WorkingPlaneDlg.h b/src/BasicGUI/BasicGUI_WorkingPlaneDlg.h index 40cddf743..e125b8c7c 100644 --- a/src/BasicGUI/BasicGUI_WorkingPlaneDlg.h +++ b/src/BasicGUI/BasicGUI_WorkingPlaneDlg.h @@ -1,91 +1,85 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BasicGUI_WorkingPlaneDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_WorkingPlaneDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef BASICGUI_WORKINGPLANEDLG_H +#define BASICGUI_WORKINGPLANEDLG_H -#ifndef DIALOGBOX_WORKINGPLANE_H -#define DIALOGBOX_WORKINGPLANE_H +#include -#include "GEOM_BasicGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_QTD.h" -#include "DlgRef_2Sel_QTD.h" -#include "DlgRef_3Check_QTD.h" +#include +class DlgRef_1Sel; +class DlgRef_2Sel; +class DlgRef_3Check; class QCheckBox; //================================================================================= // class : BasicGUI_WorkingPlaneDlg // purpose : //================================================================================= -class GEOM_BASICGUI_EXPORT BasicGUI_WorkingPlaneDlg : public GEOMBase_Skeleton +class BasicGUI_WorkingPlaneDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BasicGUI_WorkingPlaneDlg( GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); - ~BasicGUI_WorkingPlaneDlg(); - virtual void closeEvent( QCloseEvent* e ); + BasicGUI_WorkingPlaneDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~BasicGUI_WorkingPlaneDlg(); private: - void Init(); - void enterEvent(QEvent* e); - - bool updateWPlane(const bool showPreview = true); - - GEOM::GEOM_Object_var myFace; - GEOM::GEOM_Object_var myVectX; - GEOM::GEOM_Object_var myVectZ; - - int aOriginType; - - DlgRef_1Sel_QTD* Group1; - DlgRef_2Sel_QTD* Group2; - DlgRef_3Check_QTD* Group3; - - QCheckBox* myReverseCB; - - gp_Ax3 myWPlane; + void Init(); + void enterEvent( QEvent* ); + + bool updateWPlane( const bool = true ); + GEOM::GEOM_Object_var myFace; + GEOM::GEOM_Object_var myVectX; + GEOM::GEOM_Object_var myVectZ; + + int aOriginType; + + DlgRef_1Sel* Group1; + DlgRef_2Sel* Group2; + DlgRef_3Check* Group3; + + QCheckBox* myReverseCB; + + gp_Ax3 myWPlane; + private slots: - void ClickOnOk(); - void ClickOnCancel(); - bool ClickOnApply(); - - void ConstructorsClicked(int constructorId); - void GroupClicked(int groupId); - void SetEditCurrentArgument(); - void SelectionIntoArgument(); - void LineEditReturnPressed(); - void onReverse(); - - void ActivateThisDialog(); - void DeactivateActiveDialog(); - + void ClickOnOk(); + bool ClickOnApply(); + + void ConstructorsClicked( int ); + void GroupClicked( int ); + void SetEditCurrentArgument(); + void SelectionIntoArgument(); + void LineEditReturnPressed(); + void onReverse(); + + void ActivateThisDialog(); + void DeactivateActiveDialog(); }; -#endif // DIALOGBOX_WORKINGPLANE_H +#endif // BASICGUI_WORKINGPLANEDLG_H diff --git a/src/BasicGUI/GEOM_BasicGUI.hxx b/src/BasicGUI/GEOM_BasicGUI.hxx deleted file mode 100755 index ba917e55d..000000000 --- a/src/BasicGUI/GEOM_BasicGUI.hxx +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : GEOM_BasicGUI.hxx -// Author : Alexander A. BORODIN -// Module : GEOM - -#ifndef _GEOM_BasicGUI_HXX_ -#define _GEOM_BasicGUI_HXX_ - -#ifdef WNT - #if defined BASICGUI_EXPORTS - #if defined WIN32 - #define GEOM_BASICGUI_EXPORT __declspec( dllexport ) - #else - #define GEOM_BASICGUI_EXPORT - #endif - #else - #if defined WIN32 - #define GEOM_BASICGUI_EXPORT __declspec( dllimport ) - #else - #define GEOM_BASICGUI_EXPORT - #endif - #endif -#else - #define GEOM_BASICGUI_EXPORT -#endif - -#endif diff --git a/src/BasicGUI/Makefile.am b/src/BasicGUI/Makefile.am index ab4659b13..2d364c18e 100644 --- a/src/BasicGUI/Makefile.am +++ b/src/BasicGUI/Makefile.am @@ -1,100 +1,105 @@ -# GEOM BASICGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : BasicGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = BasicGUI_PointDlg.h \ - GEOM_BasicGUI.hxx + + +salomeinclude_HEADERS = \ + BasicGUI.h \ + BasicGUI_ArcDlg.h \ + BasicGUI_CircleDlg.h \ + BasicGUI_CurveDlg.h \ + BasicGUI_EllipseDlg.h \ + BasicGUI_LineDlg.h \ + BasicGUI_MarkerDlg.h \ + BasicGUI_PlaneDlg.h \ + BasicGUI_PointDlg.h \ + BasicGUI_VectorDlg.h \ + BasicGUI_WorkingPlaneDlg.h # Libraries targets + lib_LTLIBRARIES = libBasicGUI.la # Sources files -dist_libBasicGUI_la_SOURCES = \ - BasicGUI.cxx \ - BasicGUI_PointDlg.cxx \ - BasicGUI_LineDlg.cxx \ - BasicGUI_CircleDlg.cxx \ - BasicGUI_EllipseDlg.cxx \ - BasicGUI_ArcDlg.cxx \ - BasicGUI_VectorDlg.cxx \ - BasicGUI_PlaneDlg.cxx \ - BasicGUI_WorkingPlaneDlg.cxx \ - BasicGUI_CurveDlg.cxx \ +dist_libBasicGUI_la_SOURCES = \ + BasicGUI.cxx \ + BasicGUI_PointDlg.cxx \ + BasicGUI_LineDlg.cxx \ + BasicGUI_CircleDlg.cxx \ + BasicGUI_EllipseDlg.cxx \ + BasicGUI_ArcDlg.cxx \ + BasicGUI_VectorDlg.cxx \ + BasicGUI_PlaneDlg.cxx \ + BasicGUI_WorkingPlaneDlg.cxx \ + BasicGUI_CurveDlg.cxx \ BasicGUI_MarkerDlg.cxx -MOC_FILES = \ - BasicGUI_PointDlg_moc.cxx \ - BasicGUI_LineDlg_moc.cxx \ - BasicGUI_CircleDlg_moc.cxx \ - BasicGUI_EllipseDlg_moc.cxx \ - BasicGUI_ArcDlg_moc.cxx \ - BasicGUI_VectorDlg_moc.cxx \ - BasicGUI_PlaneDlg_moc.cxx \ - BasicGUI_WorkingPlaneDlg_moc.cxx \ - BasicGUI_CurveDlg_moc.cxx \ +MOC_FILES = \ + BasicGUI_PointDlg_moc.cxx \ + BasicGUI_LineDlg_moc.cxx \ + BasicGUI_CircleDlg_moc.cxx \ + BasicGUI_EllipseDlg_moc.cxx \ + BasicGUI_ArcDlg_moc.cxx \ + BasicGUI_VectorDlg_moc.cxx \ + BasicGUI_PlaneDlg_moc.cxx \ + BasicGUI_WorkingPlaneDlg_moc.cxx \ + BasicGUI_CurveDlg_moc.cxx \ BasicGUI_MarkerDlg_moc.cxx -nodist_libBasicGUI_la_SOURCES= \ +nodist_libBasicGUI_la_SOURCES = \ $(MOC_FILES) +# additional information to compile and link file -# LIB_CLIENT_IDL = SALOME_GenericObj.idl SALOME_Exception.idl SALOME_Component.idl - -# LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libBasicGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../GEOMFiltersSelection \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMClient \ - -I$(top_builddir)/idl \ +libBasicGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../GEOMFiltersSelection \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMClient \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libBasicGUI_la_LDFLAGS = \ - ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ - ../GEOMBase/libGEOMBase.la \ - ../GEOMGUI/libGEOM.la \ +libBasicGUI_la_LDFLAGS = \ + ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ + ../GEOMBase/libGEOMBase.la \ + ../GEOMGUI/libGEOM.la \ $(GUI_LDFLAGS) -lsuit diff --git a/src/BlocksGUI/BlocksGUI.cxx b/src/BlocksGUI/BlocksGUI.cxx index 2ab3c1db0..547510dc8 100644 --- a/src/BlocksGUI/BlocksGUI.cxx +++ b/src/BlocksGUI/BlocksGUI.cxx @@ -1,6 +1,7 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -16,15 +17,12 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BooleanGUI.cxx +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) // -// -// File : BooleanGUI.cxx -// Author : Julia DOOVSKIKH -// Module : GEOM -// $Header$ - #include "BlocksGUI.h" #include "BlocksGUI_QuadFaceDlg.h" @@ -33,20 +31,19 @@ #include "BlocksGUI_ExplodeDlg.h" #include "BlocksGUI_PropagateDlg.h" -#include "GeometryGUI.h" +#include -#include "SUIT_Desktop.h" -#include "SUIT_MessageBox.h" -#include "SUIT_Session.h" - -#include "SalomeApp_Application.h" +#include +#include +#include +#include //======================================================================= // function : BlocksGUI() // purpose : Constructor //======================================================================= BlocksGUI::BlocksGUI( GeometryGUI* parent ) - : GEOMGUI( parent ) + : GEOMGUI( parent ) { } @@ -66,22 +63,24 @@ bool BlocksGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { getGeometryGUI()->EmitSignalDeactivateDialog(); - QDialog* aDlg = NULL; + QDialog* aDlg = 0; - switch (theCommandID) - { - case 9999: aDlg = new BlocksGUI_BlockDlg (getGeometryGUI(), parent); break; - case 9998: aDlg = new BlocksGUI_TrsfDlg (getGeometryGUI(), parent); break; - case 9997: aDlg = new BlocksGUI_QuadFaceDlg (getGeometryGUI(), parent); break; - case 9995: aDlg = new BlocksGUI_ExplodeDlg (getGeometryGUI(), parent); break; - case 99991: aDlg = new BlocksGUI_PropagateDlg (getGeometryGUI(), parent); break; - default: - getGeometryGUI()->getApp()->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); - break; + switch ( theCommandID ) { + case 9999: aDlg = new BlocksGUI_BlockDlg ( getGeometryGUI(), parent ); break; + case 9998: aDlg = new BlocksGUI_TrsfDlg ( getGeometryGUI(), parent ); break; + case 9997: aDlg = new BlocksGUI_QuadFaceDlg ( getGeometryGUI(), parent ); break; + case 9995: aDlg = new BlocksGUI_ExplodeDlg ( getGeometryGUI(), parent ); break; + case 99991: aDlg = new BlocksGUI_PropagateDlg( getGeometryGUI(), parent ); break; + default: + getGeometryGUI()->getApp()->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); + break; } - if (aDlg != NULL) + if ( aDlg ) { + aDlg->updateGeometry(); + aDlg->resize( aDlg->minimumSizeHint() ); aDlg->show(); + } return true; } @@ -91,7 +90,9 @@ bool BlocksGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) //===================================================================================== extern "C" { - GEOM_BLOCKSGUI_EXPORT +#ifdef WIN32 + __declspec( dllexport ) +#endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { return new BlocksGUI( parent ); diff --git a/src/BlocksGUI/BlocksGUI.h b/src/BlocksGUI/BlocksGUI.h index 9d546a298..b9d48fb0e 100644 --- a/src/BlocksGUI/BlocksGUI.h +++ b/src/BlocksGUI/BlocksGUI.h @@ -1,6 +1,7 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -16,32 +17,28 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI.h +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) // -// -// File : BuildGUI.h -// Author : Julia DOROVSKIKH -// Module : GEOM - #ifndef BLOCKSGUI_H #define BLOCKSGUI_H -#include "GEOM_BlocksGUI.hxx" - -#include "GEOMGUI.h" +#include //================================================================================= // class : BlocksGUI // purpose : //================================================================================= -class GEOM_BLOCKSGUI_EXPORT BlocksGUI : public GEOMGUI +class BlocksGUI : public GEOMGUI { - public: - BlocksGUI( GeometryGUI* parent ); +public: + BlocksGUI( GeometryGUI* ); ~BlocksGUI(); - bool OnGUIEvent (int theCommandID, SUIT_Desktop* parent); + bool OnGUIEvent( int, SUIT_Desktop* ); }; -#endif +#endif // BLOCKSGUI_H diff --git a/src/BlocksGUI/BlocksGUI_BlockDlg.cxx b/src/BlocksGUI/BlocksGUI_BlockDlg.cxx index decb907fc..5ebb5f4ce 100644 --- a/src/BlocksGUI/BlocksGUI_BlockDlg.cxx +++ b/src/BlocksGUI/BlocksGUI_BlockDlg.cxx @@ -1,6 +1,7 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -16,58 +17,60 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BlocksGUI_BlockDlg.cxx +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) // -// -// File : BlocksGUI_BlockDlg.cxx -// Author : Julia DOROVSKIKH -// Module : GEOM -// $Header$ - #include "BlocksGUI_BlockDlg.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include "GEOMImpl_Types.hxx" +#include +#include +#include +#include -using namespace std; +#include -#include +// OCCT Includes +#include //================================================================================= // class : BlocksGUI_BlockDlg() // purpose : Constructs a BlocksGUI_BlockDlg which is a child of 'parent'. //================================================================================= -BlocksGUI_BlockDlg::BlocksGUI_BlockDlg (GeometryGUI* theGeometryGUI, QWidget* parent, bool modal) - : GEOMBase_Skeleton(theGeometryGUI, parent, "BlockDlg", modal, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BlocksGUI_BlockDlg::BlocksGUI_BlockDlg (GeometryGUI* theGeometryGUI, QWidget* parent) + : GEOMBase_Skeleton(theGeometryGUI, parent), + myInitial(true) { QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_BLOCK_2F"))); QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_BLOCK_6F"))); QPixmap imageS (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_BLOCK_TITLE")); + setWindowTitle(tr("GEOM_BLOCK_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_BLOCK")); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_BLOCK")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); // Create first group - Group2F = new DlgRef_2Sel_QTD(this, "Group2F"); + Group2F = new DlgRef_2Sel (centralWidget()); Group2F->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); Group2F->TextLabel1->setText(tr("FACE_1")); Group2F->TextLabel2->setText(tr("FACE_2")); - Group2F->PushButton1->setPixmap(imageS); - Group2F->PushButton2->setPixmap(imageS); + Group2F->PushButton1->setIcon(imageS); + Group2F->PushButton2->setIcon(imageS); // Create second group - Group6F = new DlgRef_6Sel_QTD(this, "Group2F"); + Group6F = new DlgRef_6Sel (centralWidget()); Group6F->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); Group6F->TextLabel1->setText(tr("FACE_1")); Group6F->TextLabel2->setText(tr("FACE_2")); @@ -75,16 +78,19 @@ BlocksGUI_BlockDlg::BlocksGUI_BlockDlg (GeometryGUI* theGeometryGUI, QWidget* pa Group6F->TextLabel4->setText(tr("FACE_4")); Group6F->TextLabel5->setText(tr("FACE_5")); Group6F->TextLabel6->setText(tr("FACE_6")); - Group6F->PushButton1->setPixmap(imageS); - Group6F->PushButton2->setPixmap(imageS); - Group6F->PushButton3->setPixmap(imageS); - Group6F->PushButton4->setPixmap(imageS); - Group6F->PushButton5->setPixmap(imageS); - Group6F->PushButton6->setPixmap(imageS); + Group6F->PushButton1->setIcon(imageS); + Group6F->PushButton2->setIcon(imageS); + Group6F->PushButton3->setIcon(imageS); + Group6F->PushButton4->setIcon(imageS); + Group6F->PushButton5->setIcon(imageS); + Group6F->PushButton6->setIcon(imageS); // Add groups to layout - Layout1->addWidget(Group2F, 2, 0); - Layout1->addWidget(Group6F, 2, 0); + QVBoxLayout* layout = new QVBoxLayout (centralWidget()); + layout->setMargin(0); + layout->setSpacing(6); + layout->addWidget(Group2F); + layout->addWidget(Group6F); /***************************************************************/ setHelpFileName("build_by_blocks_page.html#hexa_solid_anchor"); @@ -119,9 +125,10 @@ void BlocksGUI_BlockDlg::Init() Group6F->LineEdit6->setReadOnly(true); // signals and slots connections - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); connect(Group2F->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(Group2F->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); @@ -133,9 +140,6 @@ void BlocksGUI_BlockDlg::Init() connect(Group6F->PushButton5, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(Group6F->PushButton6, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; - // init controls and fields initName(tr("GEOM_BLOCK")); @@ -154,41 +158,43 @@ void BlocksGUI_BlockDlg::ConstructorsClicked (int constructorId) myConstructorId = constructorId; + // init fields + myFace1 = myFace2 = GEOM::GEOM_Object::_nil(); + myFace3 = myFace4 = myFace5 = myFace6 = myFace1; + switch (constructorId) { case 0: Group6F->hide(); - resize(0, 0); Group2F->show(); - myEditCurrentArgument = Group2F->LineEdit1; Group2F->LineEdit1->setText(tr("")); Group2F->LineEdit2->setText(tr("")); + + Group2F->PushButton1->click(); break; case 1: Group2F->hide(); - resize(0, 0); Group6F->show(); - myEditCurrentArgument = Group6F->LineEdit1; Group6F->LineEdit1->setText(tr("")); Group6F->LineEdit2->setText(tr("")); Group6F->LineEdit3->setText(tr("")); Group6F->LineEdit4->setText(tr("")); Group6F->LineEdit5->setText(tr("")); Group6F->LineEdit6->setText(tr("")); + + Group6F->PushButton1->click(); break; default: break; } - // init fields - myFace1 = myFace2 = GEOM::GEOM_Object::_nil(); - myFace3 = myFace4 = myFace5 = myFace6 = myFace1; + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); - globalSelection(GEOM_FACE); + // on dialog initialization we init the first field with a selected object (if any) SelectionIntoArgument(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); } //================================================================================= @@ -216,56 +222,111 @@ bool BlocksGUI_BlockDlg::ClickOnApply() //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void BlocksGUI_BlockDlg::SelectionIntoArgument() { erasePreview(); myEditCurrentArgument->setText(""); - if (IObjectCount() != 1) - { - if (myEditCurrentArgument == Group2F->LineEdit1 || - myEditCurrentArgument == Group6F->LineEdit1) - myFace1 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == Group2F->LineEdit2 || - myEditCurrentArgument == Group6F->LineEdit2) - myFace2 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == Group6F->LineEdit3) - myFace3 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == Group6F->LineEdit4) - myFace4 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == Group6F->LineEdit5) - myFace5 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == Group6F->LineEdit6) - myFace6 = GEOM::GEOM_Object::_nil(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { + if (myEditCurrentArgument == Group2F->LineEdit1) myFace1 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group2F->LineEdit2) myFace2 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group6F->LineEdit1) myFace1 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group6F->LineEdit2) myFace2 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group6F->LineEdit3) myFace3 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group6F->LineEdit4) myFace4 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group6F->LineEdit5) myFace5 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group6F->LineEdit6) myFace6 = GEOM::GEOM_Object::_nil(); return; } // nbSel == 1 Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); - if (!testResult || CORBA::is_nil( aSelectedObject )) + if (!testResult || CORBA::is_nil(aSelectedObject)) return; - if (myEditCurrentArgument == Group2F->LineEdit1 || - myEditCurrentArgument == Group6F->LineEdit1) - myFace1 = aSelectedObject; - else if (myEditCurrentArgument == Group2F->LineEdit2 || - myEditCurrentArgument == Group6F->LineEdit2) - myFace2 = aSelectedObject; - else if (myEditCurrentArgument == Group6F->LineEdit3) - myFace3 = aSelectedObject; - else if (myEditCurrentArgument == Group6F->LineEdit4) - myFace4 = aSelectedObject; - else if (myEditCurrentArgument == Group6F->LineEdit5) - myFace5 = aSelectedObject; - else if (myEditCurrentArgument == Group6F->LineEdit6) - myFace6 = aSelectedObject; + QString aName = GEOMBase::GetName(aSelectedObject); - myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) ); + // Get Selected object if selected subshape + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) + { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) // Local Selection + { + int anIndex = aMap(1); + aName += QString(":face_%1").arg(anIndex); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); + + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { + aSelectedObject = aFindedObject; // get Object from study + } + } + else // Global Selection + { + if (aShape.ShapeType() != TopAbs_FACE) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } + } + + myEditCurrentArgument->setText(aName); + + if (myEditCurrentArgument == Group2F->LineEdit1) { + myFace1 = aSelectedObject; + if (!myFace1->_is_nil() && myFace2->_is_nil()) + Group2F->PushButton2->click(); + } + else if (myEditCurrentArgument == Group2F->LineEdit2) { + myFace2 = aSelectedObject; + if (!myFace2->_is_nil() && myFace1->_is_nil()) + Group2F->PushButton1->click(); + } + else if (myEditCurrentArgument == Group6F->LineEdit1) { + myFace1 = aSelectedObject; + if (!myFace1->_is_nil() && myFace2->_is_nil()) + Group6F->PushButton2->click(); + } + else if (myEditCurrentArgument == Group6F->LineEdit2) { + myFace2 = aSelectedObject; + if (!myFace2->_is_nil() && myFace3->_is_nil()) + Group6F->PushButton3->click(); + } + else if (myEditCurrentArgument == Group6F->LineEdit3) { + myFace3 = aSelectedObject; + if (!myFace3->_is_nil() && myFace4->_is_nil()) + Group6F->PushButton4->click(); + } + else if (myEditCurrentArgument == Group6F->LineEdit4) { + myFace4 = aSelectedObject; + if (!myFace4->_is_nil() && myFace5->_is_nil()) + Group6F->PushButton5->click(); + } + else if (myEditCurrentArgument == Group6F->LineEdit5) { + myFace5 = aSelectedObject; + if (!myFace5->_is_nil() && myFace6->_is_nil()) + Group6F->PushButton6->click(); + } + else if (myEditCurrentArgument == Group6F->LineEdit6) { + myFace6 = aSelectedObject; + if (!myFace6->_is_nil() && myFace1->_is_nil()) + Group6F->PushButton1->click(); + } displayPreview(); } @@ -278,29 +339,77 @@ void BlocksGUI_BlockDlg::SetEditCurrentArgument() { QPushButton* aSender = (QPushButton*)sender(); + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + if (myInitial) + myInitial = false; + else + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + + // disable all + switch (myConstructorId) { + case 0: + Group2F->PushButton1->setDown(false); + Group2F->PushButton2->setDown(false); + + Group2F->LineEdit1->setEnabled(false); + Group2F->LineEdit2->setEnabled(false); + break; + case 1: + Group6F->PushButton1->setDown(false); + Group6F->PushButton2->setDown(false); + Group6F->PushButton3->setDown(false); + Group6F->PushButton4->setDown(false); + Group6F->PushButton5->setDown(false); + Group6F->PushButton6->setDown(false); + + Group6F->LineEdit1->setEnabled(false); + Group6F->LineEdit2->setEnabled(false); + Group6F->LineEdit3->setEnabled(false); + Group6F->LineEdit4->setEnabled(false); + Group6F->LineEdit5->setEnabled(false); + Group6F->LineEdit6->setEnabled(false); + break; + default: + break; + } + + // set line edit as current argument if (aSender == Group2F->PushButton1) { myEditCurrentArgument = Group2F->LineEdit1; - } else if (aSender == Group2F->PushButton2) { + } + else if (aSender == Group2F->PushButton2) { myEditCurrentArgument = Group2F->LineEdit2; - - } else if (aSender == Group6F->PushButton1) { + } + else if (aSender == Group6F->PushButton1) { myEditCurrentArgument = Group6F->LineEdit1; - } else if (aSender == Group6F->PushButton2) { + } + else if (aSender == Group6F->PushButton2) { myEditCurrentArgument = Group6F->LineEdit2; - } else if (aSender == Group6F->PushButton3) { + } + else if (aSender == Group6F->PushButton3) { myEditCurrentArgument = Group6F->LineEdit3; - } else if (aSender == Group6F->PushButton4) { + } + else if (aSender == Group6F->PushButton4) { myEditCurrentArgument = Group6F->LineEdit4; - } else if (aSender == Group6F->PushButton5) { + } + else if (aSender == Group6F->PushButton5) { myEditCurrentArgument = Group6F->LineEdit5; - } else if (aSender == Group6F->PushButton6) { + } + else if (aSender == Group6F->PushButton6) { myEditCurrentArgument = Group6F->LineEdit6; } - globalSelection(GEOM_FACE); - + // enable push button and line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // after setFocus(), because it will be setDown(false) when loses focus + aSender->setDown(true); + + globalSelection(); // close local contexts, if any + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_FACE); //Select Faces on All Shapes + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); } //================================================================================= @@ -310,21 +419,20 @@ void BlocksGUI_BlockDlg::SetEditCurrentArgument() void BlocksGUI_BlockDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - - globalSelection(GEOM_FACE); - - SelectionIntoArgument(); + globalSelection(); // close local contexts, if any + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_FACE); //Select Faces on All Shapes + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + displayPreview(); } //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void BlocksGUI_BlockDlg::enterEvent (QEvent* e) +void BlocksGUI_BlockDlg::enterEvent (QEvent*) { - if (!GroupConstructors->isEnabled()) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } @@ -343,17 +451,20 @@ GEOM::GEOM_IOperations_ptr BlocksGUI_BlockDlg::createOperation() //================================================================================= bool BlocksGUI_BlockDlg::isValid (QString&) { + bool ok = false; switch (getConstructorId()) { - case 0: - return !(myFace1->_is_nil() || myFace2->_is_nil()); - case 1: - return !(myFace1->_is_nil() || myFace2->_is_nil() || - myFace3->_is_nil() || myFace4->_is_nil() || - myFace5->_is_nil() || myFace6->_is_nil()); - default: - return false; + case 0: + ok = !(myFace1->_is_nil() || myFace2->_is_nil()); + break; + case 1: + ok = !(myFace1->_is_nil() || myFace2->_is_nil() || + myFace3->_is_nil() || myFace4->_is_nil() || + myFace5->_is_nil() || myFace6->_is_nil()); + break; + default: + break; } - return false; + return ok; } //================================================================================= @@ -367,22 +478,22 @@ bool BlocksGUI_BlockDlg::execute (ObjectList& objects) GEOM::GEOM_Object_var anObj; switch (getConstructorId()) { - case 0: - if (!CORBA::is_nil(myFace1) && !CORBA::is_nil(myFace2)) { - anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())-> - MakeHexa2Faces(myFace1, myFace2); - res = true; - } - break; - case 1: - if (!CORBA::is_nil(myFace1) && !CORBA::is_nil(myFace2) && - !CORBA::is_nil(myFace3) && !CORBA::is_nil(myFace4) && - !CORBA::is_nil(myFace5) && !CORBA::is_nil(myFace6)) { - anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())-> - MakeHexa(myFace1, myFace2, myFace3, myFace4, myFace5, myFace6); - res = true; - } - break; + case 0: + if (!CORBA::is_nil(myFace1) && !CORBA::is_nil(myFace2)) { + anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())-> + MakeHexa2Faces(myFace1, myFace2); + res = true; + } + break; + case 1: + if (!CORBA::is_nil(myFace1) && !CORBA::is_nil(myFace2) && + !CORBA::is_nil(myFace3) && !CORBA::is_nil(myFace4) && + !CORBA::is_nil(myFace5) && !CORBA::is_nil(myFace6)) { + anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())-> + MakeHexa(myFace1, myFace2, myFace3, myFace4, myFace5, myFace6); + res = true; + } + break; } if (!anObj->_is_nil()) @@ -390,3 +501,28 @@ bool BlocksGUI_BlockDlg::execute (ObjectList& objects) return res; } + +//================================================================================= +// function : addSubshapesToStudy +// purpose : virtual method to add new SubObjects if local selection +//================================================================================= +void BlocksGUI_BlockDlg::addSubshapesToStudy() +{ + QMap objMap; + + switch (getConstructorId()) { + case 0: + objMap[Group2F->LineEdit1->text()] = myFace1; + objMap[Group2F->LineEdit2->text()] = myFace2; + break; + case 1: + objMap[Group6F->LineEdit1->text()] = myFace1; + objMap[Group6F->LineEdit2->text()] = myFace2; + objMap[Group6F->LineEdit3->text()] = myFace3; + objMap[Group6F->LineEdit4->text()] = myFace4; + objMap[Group6F->LineEdit5->text()] = myFace5; + objMap[Group6F->LineEdit6->text()] = myFace6; + break; + } + addSubshapesToFather(objMap); +} diff --git a/src/BlocksGUI/BlocksGUI_BlockDlg.h b/src/BlocksGUI/BlocksGUI_BlockDlg.h index 92801ac05..23e372ba6 100644 --- a/src/BlocksGUI/BlocksGUI_BlockDlg.h +++ b/src/BlocksGUI/BlocksGUI_BlockDlg.h @@ -1,6 +1,7 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -16,64 +17,63 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BlocksGUI_BlockDlg.h +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) // -// -// File : BlocksGUI_BlockDlg.h -// Author : Julia DOROVSKIKH -// Module : GEOM +#ifndef BLOCKSGUI_BLOCKDLG_H +#define BLOCKSGUI_BLOCKDLG_H -#ifndef DIALOGBOX_BLOCK_H -#define DIALOGBOX_BLOCK_H - -#include "GEOM_BlocksGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel_QTD.h" -#include "DlgRef_6Sel_QTD.h" +#include +class DlgRef_2Sel; +class DlgRef_6Sel; //================================================================================= // class : BlocksGUI_BlockDlg // purpose : //================================================================================= -class GEOM_BLOCKSGUI_EXPORT BlocksGUI_BlockDlg : public GEOMBase_Skeleton +class BlocksGUI_BlockDlg : public GEOMBase_Skeleton { Q_OBJECT public: - BlocksGUI_BlockDlg (GeometryGUI* theGeometryGUI, QWidget* parent, - bool modal = FALSE); + BlocksGUI_BlockDlg (GeometryGUI*, QWidget*); ~BlocksGUI_BlockDlg(); protected: // redefined from GEOMBase_Helper virtual GEOM::GEOM_IOperations_ptr createOperation(); virtual bool isValid (QString&); - virtual bool execute (ObjectList& objects); + virtual bool execute (ObjectList&); + virtual void addSubshapesToStudy(); private: - void Init(); - void enterEvent (QEvent* e); + void Init(); + void enterEvent (QEvent*); private: - int myConstructorId; + int myConstructorId; - GEOM::GEOM_Object_var myFace1, myFace2; - GEOM::GEOM_Object_var myFace3, myFace4, myFace5, myFace6; + GEOM::GEOM_Object_var myFace1, myFace2; + GEOM::GEOM_Object_var myFace3, myFace4, myFace5, myFace6; - DlgRef_2Sel_QTD* Group2F; - DlgRef_6Sel_QTD* Group6F; + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_2Sel* Group2F; + DlgRef_6Sel* Group6F; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void ConstructorsClicked (int constructorId); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void ConstructorsClicked (int); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_BLOCK_H +#endif // BLOCKSGUI_BLOCKDLG_H diff --git a/src/BlocksGUI/BlocksGUI_ExplodeDlg.cxx b/src/BlocksGUI/BlocksGUI_ExplodeDlg.cxx index 802980698..8dcbdbbeb 100644 --- a/src/BlocksGUI/BlocksGUI_ExplodeDlg.cxx +++ b/src/BlocksGUI/BlocksGUI_ExplodeDlg.cxx @@ -1,6 +1,7 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -16,98 +17,67 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BlocksGUI_ExplodeDlg.cxx +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) // -// -// File : BlocksGUI_ExplodeDlg.cxx -// Author : Julia DOROVSKIKH -// Module : GEOM -// $Header$ - #include "BlocksGUI_ExplodeDlg.h" -#include "DlgRef_SpinBox.h" +#include +#include +#include -#include "GEOM_Displayer.h" - -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "OCCViewer_ViewModel.h" -#include "SALOME_ListIteratorOfListIO.hxx" - -#include "utilities.h" - -#include - -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //================================================================================= // class : BlocksGUI_ExplodeDlg() // purpose : Constructs a BlocksGUI_ExplodeDlg which is a child of 'parent'. //================================================================================= -BlocksGUI_ExplodeDlg::BlocksGUI_ExplodeDlg (GeometryGUI* theGeometryGUI, QWidget* parent, bool modal) - : GEOMBase_Skeleton(theGeometryGUI, parent, "ExplodeDlg", modal, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BlocksGUI_ExplodeDlg::BlocksGUI_ExplodeDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) + : GEOMBase_Skeleton( theGeometryGUI, parent ) { - QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_BLOCK_EXPLODE"))); - QPixmap imageS (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_BLOCK_EXPLODE" ) ) ); + QPixmap imageS( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_BLOCK_EXPLODE_TITLE")); + setWindowTitle( tr( "GEOM_BLOCK_EXPLODE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_BLOCK_EXPLODE")); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_BLOCK_EXPLODE" ) ); - RadioButton1->setPixmap(image1); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->RadioButton1->setIcon( image1 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); // Create first group - myGrp1 = new QGroupBox(1, Qt::Horizontal, tr("GEOM_ARGUMENTS"), this); - - QGroupBox* aSelGrp = new QGroupBox(3, Qt::Horizontal, myGrp1); - aSelGrp->setFrameStyle(QFrame::NoFrame); - aSelGrp->setInsideMargin(0); - - new QLabel(tr("GEOM_MAIN_OBJECT"), aSelGrp); - mySelBtn = new QPushButton(aSelGrp); - mySelBtn->setPixmap(imageS); - mySelName = new QLineEdit(aSelGrp); - mySelName->setReadOnly(true); - - QGroupBox* aSpinGrp = new QGroupBox(2, Qt::Horizontal, myGrp1); - aSpinGrp->setFrameStyle(QFrame::NoFrame); - aSpinGrp->setInsideMargin(0); - - new QLabel(tr("NB_FACES_MIN"), aSpinGrp); - mySpinBoxMin = new DlgRef_SpinBox(aSpinGrp); - - new QLabel(tr("NB_FACES_MAX"), aSpinGrp); - mySpinBoxMax = new DlgRef_SpinBox(aSpinGrp); - - QGroupBox* anInfoGrp = new QGroupBox(2, Qt::Horizontal, myGrp1); - anInfoGrp->setFrameStyle(QFrame::NoFrame); - anInfoGrp->setInsideMargin(0); - - myBlocksNb = new QTextEdit(anInfoGrp); - myBlocksNb->setReadOnly(true); - - QGroupBox* aCheckGrp = new QGroupBox(3, Qt::Horizontal, myGrp1); - aCheckGrp->setFrameStyle(QFrame::NoFrame); - aCheckGrp->setInsideMargin(0); - - myCheckBtn = new QCheckBox(aCheckGrp, "CheckButton1"); - myCheckBtn->setText(tr("GEOM_SUBSHAPE_SELECT")); + myGrp1 = new DlgRef_1Sel2Spin1View1Check( centralWidget() ); + myGrp1->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + myGrp1->TextLabel1->setText( tr( "GEOM_MAIN_OBJECT" ) ); + myGrp1->PushButton1->setIcon( imageS ); + myGrp1->LineEdit1->setReadOnly( true ); + myGrp1->TextLabel2->setText( tr( "NB_FACES_MIN" ) ); + myGrp1->TextLabel3->setText( tr( "NB_FACES_MAX" ) ); + myGrp1->CheckBox1->setText( tr( "GEOM_SUBSHAPE_SELECT" ) ); // Add groups to layout - Layout1->addWidget(myGrp1, 1, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp1 ); /***************************************************************/ - setHelpFileName("explode_on_blocks_operation_page.html"); + setHelpFileName( "explode_on_blocks_operation_page.html" ); Init(); } @@ -128,57 +98,59 @@ BlocksGUI_ExplodeDlg::~BlocksGUI_ExplodeDlg() //================================================================================= void BlocksGUI_ExplodeDlg::Init() { - // Set range of spinboxes - double SpecificStep = 1.0; - mySpinBoxMin->RangeStepAndValidator(0.0, 999.0, SpecificStep, 3); - mySpinBoxMax->RangeStepAndValidator(0.0, 999.0, SpecificStep, 3); + mainFrame()->GroupBoxName->hide(); - if (SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() - != OCCViewer_Viewer::Type()) - myCheckBtn->setEnabled(false); + // Set range of spinboxes + int SpecificStep = 1; + initSpinBox( myGrp1->SpinBox1, 0, 999, SpecificStep ); + initSpinBox( myGrp1->SpinBox2, 0, 999, SpecificStep ); + + if ( SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() + != OCCViewer_Viewer::Type() ) + myGrp1->CheckBox1->setEnabled( false ); // signals and slots connections - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(mySelBtn, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( myGrp1->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(mySpinBoxMin, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(mySpinBoxMax, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); + connect( myGrp1->SpinBox1, SIGNAL( valueChanged( int ) ), this, SLOT( ValueChangedInSpinBox( int ) ) ); + connect( myGrp1->SpinBox2, SIGNAL( valueChanged( int ) ), this, SLOT( ValueChangedInSpinBox( int ) ) ); - connect(myCheckBtn, SIGNAL(stateChanged(int)), this, SLOT(SubShapeToggled())); + connect( myGrp1->CheckBox1, SIGNAL( stateChanged( int ) ), this, SLOT( SubShapeToggled() ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); myConstructorId = -1; - ConstructorsClicked(0); + ConstructorsClicked( 0 ); } //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void BlocksGUI_ExplodeDlg::ConstructorsClicked (int constructorId) +void BlocksGUI_ExplodeDlg::ConstructorsClicked( int constructorId ) { - if (myConstructorId == constructorId) + if ( myConstructorId == constructorId ) return; myConstructorId = constructorId; - switch (constructorId) { + switch ( constructorId ) { case 0: myGrp1->show(); - mySpinBoxMin->SetValue(6.0); - mySpinBoxMax->SetValue(6.0); - myCheckBtn->setChecked(FALSE); + myGrp1->SpinBox1->setValue( 6 ); + myGrp1->SpinBox2->setValue( 6 ); + myGrp1->CheckBox1->setChecked( false ); break; default: break; } // init fields - myEditCurrentArgument = mySelName; + myEditCurrentArgument = myGrp1->LineEdit1; myObject = GEOM::GEOM_Object::_nil(); activateSelection(); @@ -190,7 +162,7 @@ void BlocksGUI_ExplodeDlg::ConstructorsClicked (int constructorId) //================================================================================= void BlocksGUI_ExplodeDlg::ClickOnOk() { - if (ClickOnApply()) + if ( ClickOnApply() ) ClickOnCancel(); } @@ -200,23 +172,22 @@ void BlocksGUI_ExplodeDlg::ClickOnOk() //================================================================================= bool BlocksGUI_ExplodeDlg::ClickOnApply() { - SUIT_Session::session()->activeApplication()->putInfo(tr("")); + SUIT_Session::session()->activeApplication()->putInfo( tr( "" ) ); // Explode all sub shapes - if (isAllSubShapes()) { + if ( isAllSubShapes() ) { // More than 30 subshapes : ask confirmation - if (myNbBlocks > 30) { - const QString caption = tr("GEOM_CONFIRM"); - const QString text = tr("GEOM_CONFIRM_INFO").arg(myNbBlocks); - const QString button0 = tr("GEOM_BUT_EXPLODE"); - const QString button1 = tr("GEOM_BUT_CANCEL"); - - if (QMessageBox::warning(this, caption, text, button0, button1) != 0) + if ( myNbBlocks > 30 ) { + if ( SUIT_MessageBox::warning( this, + tr( "GEOM_CONFIRM" ), + tr( "GEOM_CONFIRM_INFO" ).arg( myNbBlocks ), + tr( "GEOM_BUT_EXPLODE" ), + tr( "GEOM_BUT_CANCEL" ) ) != 0 ) return false; /* aborted */ } } - if (!onAccept()) + if ( !onAccept() ) return false; activateSelection(); @@ -234,16 +205,19 @@ void BlocksGUI_ExplodeDlg::SelectionIntoArgument() return; myObject = GEOM::GEOM_Object::_nil(); - mySelName->setText(""); + myGrp1->LineEdit1->setText(""); - if (IObjectCount() == 1) { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() == 1) { Standard_Boolean aResult = Standard_False; - GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject(firstIObject(), aResult); + GEOM::GEOM_Object_var anObj = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); - if ( aResult && !anObj->_is_nil() && GEOMBase::IsShape( anObj ) ) { + if (aResult && !anObj->_is_nil() && GEOMBase::IsShape(anObj)) { myObject = anObj; - mySelName->setText(GEOMBase::GetName(anObj)); + myGrp1->LineEdit1->setText(GEOMBase::GetName(anObj)); } } @@ -258,10 +232,10 @@ void BlocksGUI_ExplodeDlg::SetEditCurrentArgument() { QPushButton* aSender = (QPushButton*)sender(); - if (mySelBtn == aSender) { - mySelName->setFocus(); - myEditCurrentArgument = mySelName; - myCheckBtn->setChecked(FALSE); + if ( myGrp1->PushButton1 == aSender ) { + myGrp1->LineEdit1->setFocus(); + myEditCurrentArgument = myGrp1->LineEdit1; + myGrp1->CheckBox1->setChecked( false ); } activateSelection(); @@ -274,8 +248,8 @@ void BlocksGUI_ExplodeDlg::SetEditCurrentArgument() void BlocksGUI_ExplodeDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); activateSelection(); } @@ -284,9 +258,9 @@ void BlocksGUI_ExplodeDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void BlocksGUI_ExplodeDlg::enterEvent (QEvent* e) +void BlocksGUI_ExplodeDlg::enterEvent( QEvent* ) { - if (!GroupConstructors->isEnabled()) + if ( !mainFrame()->GroupConstructors->isEnabled() ) this->ActivateThisDialog(); } @@ -294,9 +268,9 @@ void BlocksGUI_ExplodeDlg::enterEvent (QEvent* e) // function : ValueChangedInSpinBox() // purpose : //================================================================================= -void BlocksGUI_ExplodeDlg::ValueChangedInSpinBox (double newValue) +void BlocksGUI_ExplodeDlg::ValueChangedInSpinBox() { - if (!isAllSubShapes()) + if ( !isAllSubShapes() ) activateSelection(); else updateButtonState(); @@ -305,7 +279,7 @@ void BlocksGUI_ExplodeDlg::ValueChangedInSpinBox (double newValue) //================================================================================= // function : SubShapeToggled() // purpose : Allow user selection of all or only selected sub shapes -// : Called when 'myCheckBtn' state change +// : Called when 'myGrp1->CheckBox1' state change //================================================================================= void BlocksGUI_ExplodeDlg::SubShapeToggled() { @@ -319,20 +293,21 @@ void BlocksGUI_ExplodeDlg::SubShapeToggled() void BlocksGUI_ExplodeDlg::activateSelection() { clearTemporary(); - erasePreview(true); + erasePreview( true ); - if (isAllSubShapes()) { // Sub-shapes selection disabled - disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + if ( isAllSubShapes() ) { // Sub-shapes selection disabled + disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); globalSelection( GEOM_ALLSHAPES ); - if (myObject->_is_nil()) { + if ( myObject->_is_nil() ) { SelectionIntoArgument(); } - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; - } else { - displayPreview(true, true, false); - globalSelection(GEOM_PREVIEW); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); + } + else { + displayPreview( true, true, false ); + globalSelection( GEOM_PREVIEW ); } } @@ -342,28 +317,30 @@ void BlocksGUI_ExplodeDlg::activateSelection() //================================================================================= void BlocksGUI_ExplodeDlg::updateButtonState() { - if (SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() - != OCCViewer_Viewer::Type() || myObject->_is_nil()) { - myCheckBtn->setChecked(FALSE); - myCheckBtn->setEnabled(FALSE); - } else { - myCheckBtn->setEnabled(TRUE); + if ( SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() + != OCCViewer_Viewer::Type() || myObject->_is_nil() ) { + myGrp1->CheckBox1->setChecked( false ); + myGrp1->CheckBox1->setEnabled( false ); + } + else { + myGrp1->CheckBox1->setEnabled( true ); } myNbBlocks = 0; - if (myObject->_is_nil()) { - myBlocksNb->setText(""); - } else { + if ( myObject->_is_nil() ) { + myGrp1->TextBrowser1->setText( "" ); + } + else { bool isOnlyBlocks = GEOM::GEOM_IBlocksOperations::_narrow - (getOperation())->IsCompoundOfBlocks(myObject, - (int)mySpinBoxMin->GetValue(), - (int)mySpinBoxMax->GetValue(), - myNbBlocks); - if (isOnlyBlocks) - myBlocksNb->setText(tr("GEOM_NB_BLOCKS_NO_OTHERS").arg(myNbBlocks)); + ( getOperation() )->IsCompoundOfBlocks( myObject, + myGrp1->SpinBox1->value(), + myGrp1->SpinBox2->value(), + myNbBlocks ); + if ( isOnlyBlocks ) + myGrp1->TextBrowser1->setText( tr( "GEOM_NB_BLOCKS_NO_OTHERS" ).arg( myNbBlocks ) ); else - myBlocksNb->setText(tr("GEOM_NB_BLOCKS_SOME_OTHERS").arg(myNbBlocks)); + myGrp1->TextBrowser1->setText( tr( "GEOM_NB_BLOCKS_SOME_OTHERS" ).arg( myNbBlocks ) ); } } @@ -373,7 +350,7 @@ void BlocksGUI_ExplodeDlg::updateButtonState() //================================================================================= bool BlocksGUI_ExplodeDlg::isAllSubShapes() const { - return !myCheckBtn->isChecked() || !myCheckBtn->isEnabled(); + return !myGrp1->CheckBox1->isChecked() || !myGrp1->CheckBox1->isEnabled(); } //================================================================================= @@ -382,93 +359,122 @@ bool BlocksGUI_ExplodeDlg::isAllSubShapes() const //================================================================================= GEOM::GEOM_IOperations_ptr BlocksGUI_ExplodeDlg::createOperation() { - return getGeomEngine()->GetIBlocksOperations(getStudyId()); + return getGeomEngine()->GetIBlocksOperations( getStudyId() ); } //================================================================================= // function : isValid() // purpose : Verify validity of input data //================================================================================= -bool BlocksGUI_ExplodeDlg::isValid (QString&) +bool BlocksGUI_ExplodeDlg::isValid (QString& msg) { - switch (getConstructorId()) { + bool okSP = true; + okSP = myGrp1->SpinBox1->isValid( msg, !IsPreview() ) && okSP; + okSP = myGrp1->SpinBox2->isValid( msg, !IsPreview() ) && okSP; + + bool ok = false; + switch ( getConstructorId() ) { case 0: - if (IsPreview()) - return !myObject->_is_nil(); - else - return !myObject->_is_nil() && (isAllSubShapes() || IObjectCount()); + if ( IsPreview() ) { + ok = !myObject->_is_nil(); + } + else { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + ok = !myObject->_is_nil() && (isAllSubShapes() || aSelList.Extent()); + } + break; default: - return false; + break; } - return false; + return ok && okSP; } //================================================================================= // function : execute // purpose : //================================================================================= -bool BlocksGUI_ExplodeDlg::execute (ObjectList& objects) +bool BlocksGUI_ExplodeDlg::execute( ObjectList& objects ) { GEOM::ListOfGO_var aList; - switch (getConstructorId()) { - case 0: - aList = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())->ExplodeCompoundOfBlocks - (myObject, - (int)mySpinBoxMin->GetValue(), - (int)mySpinBoxMax->GetValue()); - break; + switch ( getConstructorId() ) { + case 0: + aList = GEOM::GEOM_IBlocksOperations::_narrow( getOperation() )->ExplodeCompoundOfBlocks + ( myObject, + myGrp1->SpinBox1->value(), + myGrp1->SpinBox2->value() ); + break; } - - if (!aList->length()) + + if ( !aList->length() ) return false; - if (IsPreview()) { + if ( IsPreview() ) { clearTemporary(); - + // Store objects. They will be put in study when "Apply" is pressed - for (int i = 0, n = aList->length(); i < n; i++) { - objects.push_back(GEOM::GEOM_Object::_duplicate(aList[i])); - myTmpObjs.push_back(GEOM::GEOM_Object::_duplicate(aList[i])); + for ( int i = 0, n = aList->length(); i < n; i++ ) { + objects.push_back( GEOM::GEOM_Object::_duplicate( aList[i] ) ); + myTmpObjs.push_back( GEOM::GEOM_Object::_duplicate( aList[i] ) ); } - return objects.size() ? true : false; + return objects.size() > 0; } + QStringList aParameters; + aParameters << myGrp1->SpinBox1->text(); + aParameters << myGrp1->SpinBox2->text(); + // Throw away sub-shapes not selected by user if not in preview mode // and manual selection is active - if (!isAllSubShapes()) - { + if ( !isAllSubShapes() ) { QMap selected; + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + // Get names of selected objects - SALOME_ListIteratorOfListIO it (selectedIO()); - for (; it.More(); it.Next()) { - selected.insert(it.Value()->getName(), 0); + SALOME_ListIteratorOfListIO it (aSelList); + for ( ; it.More(); it.Next() ) { + selected.insert( it.Value()->getName(), 0 ); } // Iterate through result and select objects with names from selection - ObjectList toRemoveFromEnggine; + ObjectList toRemoveFromEngine; ObjectList::iterator anIter; - for (anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter) { - CORBA::String_var objStr = myGeomGUI->getApp()->orb()->object_to_string(*anIter); - if (selected.contains(QString(objStr.in()))) - objects.push_back(*anIter); + for ( anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter ) { + CORBA::String_var objStr = myGeomGUI->getApp()->orb()->object_to_string( *anIter ); + if ( selected.contains( QString( objStr.in() ) ) ) + { + if ( !IsPreview() ) + (*anIter)->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + objects.push_back( *anIter ); + } else - toRemoveFromEnggine.push_back(*anIter); + toRemoveFromEngine.push_back( *anIter ); } // Remove from engine useless objects - ObjectList::iterator anIter2 = toRemoveFromEnggine.begin(); - for (; anIter2 != toRemoveFromEnggine.end(); ++anIter2) - getGeomEngine()->RemoveObject(*anIter2); + ObjectList::iterator anIter2 = toRemoveFromEngine.begin(); + for ( ; anIter2 != toRemoveFromEngine.end(); ++anIter2 ) + getGeomEngine()->RemoveObject( *anIter2 ); myTmpObjs.clear(); - } else { - for (int i = 0, n = aList->length(); i < n; i++) - objects.push_back(GEOM::GEOM_Object::_duplicate(aList[i])); + } + else { + for ( int i = 0, n = aList->length(); i < n; i++ ) + { + GEOM::GEOM_Object_var anObj = GEOM::GEOM_Object::_duplicate( aList[i] ); + if ( !IsPreview() ) + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + objects.push_back( anObj._retn() ); + } } return objects.size(); @@ -481,8 +487,8 @@ bool BlocksGUI_ExplodeDlg::execute (ObjectList& objects) void BlocksGUI_ExplodeDlg::clearTemporary() { ObjectList::iterator anIter; - for (anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter) - getGeomEngine()->RemoveObject(*anIter); + for ( anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter ) + getGeomEngine()->RemoveObject( *anIter ); myTmpObjs.clear(); } @@ -492,7 +498,7 @@ void BlocksGUI_ExplodeDlg::clearTemporary() // Purpose : Get father object for object to be added in study // ( called with addInStudy method ) //================================================================ -GEOM::GEOM_Object_ptr BlocksGUI_ExplodeDlg::getFather (GEOM::GEOM_Object_ptr) +GEOM::GEOM_Object_ptr BlocksGUI_ExplodeDlg::getFather( GEOM::GEOM_Object_ptr ) { return myObject; } @@ -501,7 +507,7 @@ GEOM::GEOM_Object_ptr BlocksGUI_ExplodeDlg::getFather (GEOM::GEOM_Object_ptr) // Function : getNewObjectName // Purpose : Redefine this method to return proper name for a new object //================================================================ -const char* BlocksGUI_ExplodeDlg::getNewObjectName() const +QString BlocksGUI_ExplodeDlg::getNewObjectName() const { - return ""; + return QString::null; } diff --git a/src/BlocksGUI/BlocksGUI_ExplodeDlg.h b/src/BlocksGUI/BlocksGUI_ExplodeDlg.h index 8e309ecfd..63b616a4d 100644 --- a/src/BlocksGUI/BlocksGUI_ExplodeDlg.h +++ b/src/BlocksGUI/BlocksGUI_ExplodeDlg.h @@ -1,6 +1,7 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -16,90 +17,74 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BlocksGUI_ExplodeDlg.h +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) // -// -// File : BlocksGUI_ExplodeDlg.h -// Author : Julia DOROVSKIKH -// Module : GEOM +#ifndef BLOCKSGUI_EXPLODEDLG_H +#define BLOCKSGUI_EXPLODEDLG_H -#ifndef DIALOGBOX_BLOCK_EXPLODE_H -#define DIALOGBOX_BLOCK_EXPLODE_H +#include -#include "GEOM_BlocksGUI.hxx" - -#include "GEOMBase_Skeleton.h" - -class DlgRef_SpinBox; -class QTextEdit; -class QCheckBox; +class DlgRef_1Sel2Spin1View1Check; //================================================================================= // class : BlocksGUI_ExplodeDlg // purpose : //================================================================================= -class GEOM_BLOCKSGUI_EXPORT BlocksGUI_ExplodeDlg : public GEOMBase_Skeleton +class BlocksGUI_ExplodeDlg : public GEOMBase_Skeleton { Q_OBJECT public: - BlocksGUI_ExplodeDlg (GeometryGUI*, QWidget* parent, bool modal = FALSE); + BlocksGUI_ExplodeDlg( GeometryGUI*, QWidget* ); ~BlocksGUI_ExplodeDlg(); protected: // redefined from GEOMBase_Helper virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid (QString& msg); - virtual bool execute (ObjectList& objects); - virtual GEOM::GEOM_Object_ptr getFather(GEOM::GEOM_Object_ptr theObj); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual GEOM::GEOM_Object_ptr getFather( GEOM::GEOM_Object_ptr ); - virtual const char* getNewObjectName() const; + virtual QString getNewObjectName() const; private: - void Init(); - void enterEvent (QEvent* e); + void Init(); + void enterEvent( QEvent* ); - void activateSelection(); + void activateSelection(); - void updateButtonState(); - bool isAllSubShapes() const; - int shapeType() const; + void updateButtonState(); + bool isAllSubShapes() const; + int shapeType() const; - void clearTemporary(); + void clearTemporary(); private: - int myConstructorId; + int myConstructorId; - CORBA::Long myNbBlocks; - GEOM::GEOM_Object_var myObject; + CORBA::Long myNbBlocks; + GEOM::GEOM_Object_var myObject; - ObjectList myTmpObjs; + ObjectList myTmpObjs; - QFrame* myGrp1; - - QPushButton* mySelBtn; - QLineEdit* mySelName; - - DlgRef_SpinBox* mySpinBoxMin; - DlgRef_SpinBox* mySpinBoxMax; - - QTextEdit* myBlocksNb; - - QCheckBox* myCheckBtn; + DlgRef_1Sel2Spin1View1Check* myGrp1; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void ConstructorsClicked (int constructorId); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void ConstructorsClicked( int ); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); - void SubShapeToggled(); + void SubShapeToggled(); - void ValueChangedInSpinBox (double newValue); + void ValueChangedInSpinBox(); }; -#endif // DIALOGBOX_BLOCK_EXPLODE_H +#endif // BLOCKSGUI_EXPLODEDLG_H diff --git a/src/BlocksGUI/BlocksGUI_PropagateDlg.cxx b/src/BlocksGUI/BlocksGUI_PropagateDlg.cxx index 8cd43fedc..07801d8a1 100644 --- a/src/BlocksGUI/BlocksGUI_PropagateDlg.cxx +++ b/src/BlocksGUI/BlocksGUI_PropagateDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,28 +17,26 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BlocksGUI_PropagateDlg.cxx +// Author : Vladimir KLYACHIN, Open CASCADE S.A.S. (vladimir.klyachin@opencascade.com) // -// -// File : BlocksGUI_PropagateDlg.cxx -// Author : VKN -// Module : GEOM -// $Header$ - #include "BlocksGUI_PropagateDlg.h" -#include "GEOMImpl_Types.hxx" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include + +#include +#include +#include +#include #include -#include - -using namespace std; - //================================================================================= // class : BlocksGUI_PropagateDlg() // purpose : Constructs a BlocksGUI_PropagateDlg which is a child of 'parent', with the @@ -46,38 +44,35 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BlocksGUI_PropagateDlg::BlocksGUI_PropagateDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BlocksGUI_PropagateDlg::BlocksGUI_PropagateDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) + : GEOMBase_Skeleton( theGeometryGUI, parent ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PROPAGATE"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_PROPAGATE" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_PROPAGATE_TITLE")); + setWindowTitle( tr( "GEOM_PROPAGATE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_PROPAGATE_TITLE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_PROPAGATE_TITLE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - QGroupBox* aMainGrp = new QGroupBox( 1, Qt::Horizontal, tr( "GEOM_SELECTED_SHAPE" ), this ); - QGroupBox* aSelGrp = new QGroupBox(3, Qt::Horizontal, aMainGrp); - aSelGrp->setFrameStyle(QFrame::NoFrame); - aSelGrp->setInsideMargin(0); + myGrp = new DlgRef_1Sel( centralWidget() ); + myGrp->GroupBox1->setTitle( tr( "GEOM_SELECTED_SHAPE" ) ); + myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) ); + myGrp->PushButton1->setIcon( image1 ); + myGrp->LineEdit1->setReadOnly( true ); - new QLabel(tr("GEOM_OBJECT"), aSelGrp); - mySelBtn = new QPushButton(aSelGrp); - mySelBtn->setPixmap(image1); - mySelName = new QLineEdit(aSelGrp); - mySelName->setReadOnly(true); - - Layout1->addWidget(aMainGrp, 1, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp ); /***************************************************************/ - setHelpFileName("propagate_operation_page.html"); + setHelpFileName( "propagate_operation_page.html" ); Init(); } @@ -99,16 +94,17 @@ void BlocksGUI_PropagateDlg::Init() /* init variables */ myObject = GEOM::GEOM_Object::_nil(); - ResultName->setText( "" ); + mainFrame()->ResultName->setText( "" ); + mainFrame()->GroupBoxName->hide(); //myGeomGUI->SetState( 0 ); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(mySelBtn, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(mySelName, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( myGrp->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( myGrp->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); activateSelection(); } @@ -135,7 +131,7 @@ bool BlocksGUI_PropagateDlg::ClickOnApply() initName(); - mySelName->setText(""); + myGrp->LineEdit1->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); activateSelection(); @@ -150,15 +146,19 @@ bool BlocksGUI_PropagateDlg::ClickOnApply() //================================================================================= void BlocksGUI_PropagateDlg::SelectionIntoArgument() { - mySelName->setText(""); + myGrp->LineEdit1->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); - if ( IObjectCount() == 1 ) { - Handle(SALOME_InteractiveObject) anIO = firstIObject(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() == 1) { + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); Standard_Boolean aRes; myObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes ); if ( aRes ) - mySelName->setText( GEOMBase::GetName( myObject ) ); + myGrp->LineEdit1->setText( GEOMBase::GetName( myObject ) ); } } @@ -169,8 +169,8 @@ void BlocksGUI_PropagateDlg::SelectionIntoArgument() void BlocksGUI_PropagateDlg::SetEditCurrentArgument() { const QObject* send = sender(); - if ( send == mySelBtn ) { - mySelName->setFocus(); + if ( send == myGrp->PushButton1 ) { + myGrp->LineEdit1->setFocus(); } activateSelection(); } @@ -183,7 +183,7 @@ void BlocksGUI_PropagateDlg::SetEditCurrentArgument() void BlocksGUI_PropagateDlg::LineEditReturnPressed() { const QObject* send = sender(); - if( send == mySelName ) { + if ( send == myGrp->LineEdit1 ) { GEOMBase_Skeleton::LineEditReturnPressed(); } } @@ -197,7 +197,7 @@ void BlocksGUI_PropagateDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - mySelName->setText(""); + myGrp->LineEdit1->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); //myGeomGUI->SetState( 0 ); @@ -209,23 +209,12 @@ void BlocksGUI_PropagateDlg::ActivateThisDialog() // function : enterEvent() // purpose : Mouse enter onto the dialog to activate it //================================================================================= -void BlocksGUI_PropagateDlg::enterEvent(QEvent* e) +void BlocksGUI_PropagateDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } - -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void BlocksGUI_PropagateDlg::closeEvent(QCloseEvent* e) -{ - //myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : createOperation // purpose : @@ -239,7 +228,7 @@ GEOM::GEOM_IOperations_ptr BlocksGUI_PropagateDlg::createOperation() // function : isValid // purpose : //================================================================================= -bool BlocksGUI_PropagateDlg::isValid( QString& msg ) +bool BlocksGUI_PropagateDlg::isValid( QString& ) { return !myObject->_is_nil() ; } @@ -250,19 +239,17 @@ bool BlocksGUI_PropagateDlg::isValid( QString& msg ) //================================================================================= bool BlocksGUI_PropagateDlg::execute( ObjectList& objects ) { - GEOM::ListOfGO_var aList = GEOM::GEOM_IBlocksOperations::_narrow( getOperation() )->Propagate( myObject ); - ResultName->setText( "" ); + mainFrame()->ResultName->setText( "" ); if ( !aList->length() ) return false; - for ( int i = 0, n = aList->length(); i < n; i++ ) - { - objects.push_back(aList[i]._retn()); + for ( int i = 0, n = aList->length(); i < n; i++ ) { + objects.push_back( aList[i]._retn() ); } - return objects.size() ? true : false; + return objects.size() > 0; } //================================================================================= @@ -275,11 +262,11 @@ void BlocksGUI_PropagateDlg::activateSelection() aMap.Add( GEOM_SOLID ); aMap.Add( GEOM_COMPOUND ); globalSelection( aMap ); - if (myObject->_is_nil()) { + if ( myObject->_is_nil() ) { SelectionIntoArgument(); } - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); } //================================================================ @@ -287,7 +274,7 @@ void BlocksGUI_PropagateDlg::activateSelection() // Purpose : Get father object for object to be added in study // ( called with addInStudy method ) //================================================================ -GEOM::GEOM_Object_ptr BlocksGUI_PropagateDlg::getFather (GEOM::GEOM_Object_ptr) +GEOM::GEOM_Object_ptr BlocksGUI_PropagateDlg::getFather( GEOM::GEOM_Object_ptr ) { return myObject; } diff --git a/src/BlocksGUI/BlocksGUI_PropagateDlg.h b/src/BlocksGUI/BlocksGUI_PropagateDlg.h index e6236d632..a4eaf5a83 100644 --- a/src/BlocksGUI/BlocksGUI_PropagateDlg.h +++ b/src/BlocksGUI/BlocksGUI_PropagateDlg.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,62 +17,56 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BlocksGUI_PropagateDlg.h +// Author : Vladimir KLYACHIN, Open CASCADE S.A.S. (vladimir.klyachin@opencascade.com) // -// -// File : BlocksGUI_PropagateDlg.h -// Author : VKN -// Module : GEOM +#ifndef BLOCKSGUI_PROPAGATEDLG_H +#define BLOCKSGUI_PROPAGATEDLG_H -#ifndef DIALOGBOX_BlocksGUI_PropagateDlg_H -#define DIALOGBOX_BlocksGUI_PropagateDlg_H - -#include "GEOM_BlocksGUI.hxx" - -#include "GEOMBase_Skeleton.h" +#include +class DlgRef_1Sel; //================================================================================= // class : BlocksGUI_PropagateDlg // purpose : //================================================================================= -class GEOM_BLOCKSGUI_EXPORT BlocksGUI_PropagateDlg : public GEOMBase_Skeleton +class BlocksGUI_PropagateDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BlocksGUI_PropagateDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = "", bool modal = FALSE, WFlags fl = 0); - ~BlocksGUI_PropagateDlg(); + BlocksGUI_PropagateDlg( GeometryGUI*, QWidget* = 0 ); + ~BlocksGUI_PropagateDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual GEOM::GEOM_Object_ptr getFather(GEOM::GEOM_Object_ptr theObj); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual GEOM::GEOM_Object_ptr getFather( GEOM::GEOM_Object_ptr ); private slots: - void ClickOnOk(); - bool ClickOnApply(); + void ClickOnOk(); + bool ClickOnApply(); - void ActivateThisDialog(); + void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); private: - void Init(); - void enterEvent(QEvent* e); - void closeEvent(QCloseEvent* e); - void activateSelection(); + void Init(); + void enterEvent( QEvent* ); + void activateSelection(); private: - GEOM::GEOM_Object_var myObject; - QPushButton* mySelBtn; - QLineEdit* mySelName; + GEOM::GEOM_Object_var myObject; + DlgRef_1Sel* myGrp; }; -#endif // DIALOGBOX_BlocksGUI_PropagateDlg_H +#endif // BLOCKSGUI_PROPAGATEDLG_H diff --git a/src/BlocksGUI/BlocksGUI_QuadFaceDlg.cxx b/src/BlocksGUI/BlocksGUI_QuadFaceDlg.cxx index 06c2136d7..930af1c45 100644 --- a/src/BlocksGUI/BlocksGUI_QuadFaceDlg.cxx +++ b/src/BlocksGUI/BlocksGUI_QuadFaceDlg.cxx @@ -1,6 +1,7 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -16,88 +17,83 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BlocksGUI_QuadFaceDlg.cxx +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) // -// -// File : BlocksGUI_QuadFaceDlg.cxx -// Author : Julia DOROVSKIKH -// Module : GEOM -// $Header$ - #include "BlocksGUI_QuadFaceDlg.h" -#include "GEOMImpl_Types.hxx" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include + +// QT Includes #include +// OCCT Includes +#include +#include + +#include + //================================================================================= // class : BlocksGUI_QuadFaceDlg() // purpose : Constructs a BlocksGUI_QuadFaceDlg which is a child of 'parent'. //================================================================================= -BlocksGUI_QuadFaceDlg::BlocksGUI_QuadFaceDlg (GeometryGUI* theGeometryGUI, QWidget* parent, bool modal) - : GEOMBase_Skeleton(theGeometryGUI, parent, "QuadFaceDlg", modal, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BlocksGUI_QuadFaceDlg::BlocksGUI_QuadFaceDlg (GeometryGUI* theGeometryGUI, QWidget* parent) + : GEOMBase_Skeleton(theGeometryGUI, parent), + myInitial(true) { SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); - QPixmap image1 (aResMgr->loadPixmap("GEOM",tr("ICON_DLG_QUAD_FACE_4_VERT"))); - QPixmap image2 (aResMgr->loadPixmap("GEOM",tr("ICON_DLG_QUAD_FACE_2_EDGE"))); - QPixmap image3 (aResMgr->loadPixmap("GEOM",tr("ICON_DLG_QUAD_FACE_4_EDGE"))); - QPixmap imageS (aResMgr->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_QUAD_FACE_4_VERT"))); + QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_QUAD_FACE_2_EDGE"))); + QPixmap image3 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_QUAD_FACE_4_EDGE"))); + QPixmap imageS (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_QUAD_FACE_TITLE")); + setWindowTitle(tr("GEOM_QUAD_FACE_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_QUAD_FACE")); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_QUAD_FACE")); - RadioButton1->setPixmap(image1); - RadioButton2->setPixmap(image2); - RadioButton3->setPixmap(image3); + mainFrame()->RadioButton1->setIcon(image1); + mainFrame()->RadioButton2->setIcon(image2); + mainFrame()->RadioButton3->setIcon(image3); // Create first group - myGrp1 = new QGroupBox(1, Qt::Horizontal, tr("GEOM_ARGUMENTS"), this); + myGrp1 = new QGroupBox(tr("GEOM_ARGUMENTS"), centralWidget()); - QGroupBox* aSelGrp1 = new QGroupBox(3, Qt::Horizontal, myGrp1); - aSelGrp1->setFrameStyle(QFrame::NoFrame); - aSelGrp1->setInsideMargin(0); - - createSelWg(tr("VERTEX_1"), imageS, aSelGrp1, Vertex1); - createSelWg(tr("VERTEX_2"), imageS, aSelGrp1, Vertex2); - createSelWg(tr("VERTEX_3"), imageS, aSelGrp1, Vertex3); - createSelWg(tr("VERTEX_4"), imageS, aSelGrp1, Vertex4); + createSelWg(tr("VERTEX_1"), imageS, myGrp1, Vertex1); + createSelWg(tr("VERTEX_2"), imageS, myGrp1, Vertex2); + createSelWg(tr("VERTEX_3"), imageS, myGrp1, Vertex3); + createSelWg(tr("VERTEX_4"), imageS, myGrp1, Vertex4); // Create second group - myGrp2 = new QGroupBox(1, Qt::Horizontal, tr("GEOM_ARGUMENTS"), this); + myGrp2 = new QGroupBox(tr("GEOM_ARGUMENTS"), centralWidget()); - QGroupBox* aSelGrp2 = new QGroupBox(3, Qt::Horizontal, myGrp2); - aSelGrp2->setFrameStyle(QFrame::NoFrame); - aSelGrp2->setInsideMargin(0); - - createSelWg(tr("EDGE_1"), imageS, aSelGrp2, Edge12); - createSelWg(tr("EDGE_2"), imageS, aSelGrp2, Edge22); + createSelWg(tr("EDGE_1"), imageS, myGrp2, Edge12); + createSelWg(tr("EDGE_2"), imageS, myGrp2, Edge22); // Create fird group - myGrp3 = new QGroupBox(1, Qt::Horizontal, tr("GEOM_ARGUMENTS"), this); + myGrp3 = new QGroupBox(tr("GEOM_ARGUMENTS"), centralWidget()); - QGroupBox* aSelGrp3 = new QGroupBox(3, Qt::Horizontal, myGrp3); - aSelGrp3->setFrameStyle(QFrame::NoFrame); - aSelGrp3->setInsideMargin(0); - - createSelWg(tr("EDGE_1"), imageS, aSelGrp3, Edge14); - createSelWg(tr("EDGE_2"), imageS, aSelGrp3, Edge24); - createSelWg(tr("EDGE_3"), imageS, aSelGrp3, Edge34); - createSelWg(tr("EDGE_4"), imageS, aSelGrp3, Edge44); - - (new QLabel(myGrp3))->setSizePolicy( - QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); + createSelWg(tr("EDGE_1"), imageS, myGrp3, Edge14); + createSelWg(tr("EDGE_2"), imageS, myGrp3, Edge24); + createSelWg(tr("EDGE_3"), imageS, myGrp3, Edge34); + createSelWg(tr("EDGE_4"), imageS, myGrp3, Edge44); // Add groups to layout - Layout1->addWidget(myGrp1, 2, 0); - Layout1->addWidget(myGrp2, 2, 0); - Layout1->addWidget(myGrp3, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(myGrp1); + layout->addWidget(myGrp2); + layout->addWidget(myGrp3); /***************************************************************/ setHelpFileName("build_by_blocks_page.html#quad_face_anchor"); @@ -121,16 +117,14 @@ BlocksGUI_QuadFaceDlg::~BlocksGUI_QuadFaceDlg() void BlocksGUI_QuadFaceDlg::Init() { // signals and slots connections - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); QMap::iterator anIterBtn; for (anIterBtn = mySelBtn.begin(); anIterBtn != mySelBtn.end(); ++anIterBtn) - connect(anIterBtn.data(), SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect(anIterBtn.value(), SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); // init controls and fields initName(tr("GEOM_QUAD_FACE")); @@ -150,39 +144,44 @@ void BlocksGUI_QuadFaceDlg::ConstructorsClicked (int constructorId) myConstructorId = constructorId; + // init fields + myShape1 = myShape2 = GEOM::GEOM_Object::_nil(); + myShape3 = myShape4 = myShape1; + + // clear line edits + QMap::iterator anIterLE; + for (anIterLE = mySelName.begin(); anIterLE != mySelName.end(); ++anIterLE) + anIterLE.value()->setText(""); + switch (constructorId) { case 0: myGrp2->hide(); myGrp3->hide(); myGrp1->show(); - myEditCurrentArgument = mySelName[Vertex1]; + mySelBtn[Vertex1]->click(); break; case 1: myGrp1->hide(); myGrp3->hide(); myGrp2->show(); - myEditCurrentArgument = mySelName[Edge12]; + mySelBtn[Edge12]->click(); break; case 2: myGrp1->hide(); myGrp2->hide(); myGrp3->show(); - myEditCurrentArgument = mySelName[Edge14]; + mySelBtn[Edge14]->click(); break; default: break; } - // clear line edits - QMap::iterator anIterLE; - for (anIterLE = mySelName.begin(); anIterLE != mySelName.end(); ++anIterLE) - anIterLE.data()->setText(""); + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); - // init fields - myShape1 = myShape2 = GEOM::GEOM_Object::_nil(); - myShape3 = myShape4 = myShape1; - - activateSelection(); + // on dialog initialization we init the first field with a selected object (if any) + SelectionIntoArgument(); } //================================================================================= @@ -210,48 +209,136 @@ bool BlocksGUI_QuadFaceDlg::ClickOnApply() //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection has changed +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void BlocksGUI_QuadFaceDlg::SelectionIntoArgument() { erasePreview(); - myEditCurrentArgument->setText(""); // Get index of current selection focus int aCurrFocus = -1; QMap::iterator anIter; for (anIter = mySelName.begin(); anIter != mySelName.end(); ++anIter) { - if (myEditCurrentArgument == anIter.data()) { + if (myEditCurrentArgument == anIter.value()) { aCurrFocus = anIter.key(); break; } } - GEOM::GEOM_Object_var anObj; - Standard_Boolean aResult = Standard_False; - if (IObjectCount() == 1) { - anObj = GEOMBase::ConvertIOinGEOMObject(firstIObject(), aResult); - if (aResult) { - if (anObj->_is_nil()) { - aResult = Standard_False; - } else { - mySelName[aCurrFocus]->setText(GEOMBase::GetName(anObj)); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + TopAbs_ShapeEnum aType = TopAbs_EDGE; + if (aCurrFocus == Vertex1 || aCurrFocus == Vertex2 || + aCurrFocus == Vertex3 || aCurrFocus == Vertex4) + aType = TopAbs_VERTEX; + + QString aName; + GEOM::GEOM_Object_var anObj = GEOM::GEOM_Object::_nil(); + + if (aSelList.Extent() == 1) { + Standard_Boolean aResult = Standard_False; + anObj = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); + if (aResult && !anObj->_is_nil()) { + aName = GEOMBase::GetName(anObj); + + // Get Selected object if selected subshape + TopoDS_Shape aShape; + if (GEOMBase::GetShape(anObj, aShape, TopAbs_SHAPE) && !aShape.IsNull()) + { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) // Local Selection + { + int anIndex = aMap(1); + if (aType == TopAbs_VERTEX) + aName += QString(":vertex_%1").arg(anIndex); + else + aName += QString(":edge_%1").arg(anIndex); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(anObj, aName); + + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); + anObj = aShapesOp->GetSubShape(anObj, anIndex); + } + else + anObj = aFindedObject; // get Object from study + } + else // Global Selection + { + if (aShape.ShapeType() != aType) { + anObj = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } } - } else { - anObj = GEOM::GEOM_Object::_nil(); } } - if (aCurrFocus == Vertex1 || aCurrFocus == Edge12 || aCurrFocus == Edge14) { + myEditCurrentArgument->setText(aName); + + switch (aCurrFocus) { + // four vertices + case Vertex1: myShape1 = anObj; - } else if (aCurrFocus == Vertex2 || aCurrFocus == Edge22 || aCurrFocus == Edge24) { + if (!myShape1->_is_nil() && myShape2->_is_nil()) + mySelBtn[Vertex2]->click(); + break; + case Vertex2: myShape2 = anObj; - } else if (aCurrFocus == Vertex3 || aCurrFocus == Edge34) { + if (!myShape2->_is_nil() && myShape3->_is_nil()) + mySelBtn[Vertex3]->click(); + break; + case Vertex3: myShape3 = anObj; - } else if (aCurrFocus == Vertex4 || aCurrFocus == Edge44) { + if (!myShape3->_is_nil() && myShape4->_is_nil()) + mySelBtn[Vertex4]->click(); + break; + case Vertex4: myShape4 = anObj; - } else { - return; + if (!myShape4->_is_nil() && myShape1->_is_nil()) + mySelBtn[Vertex1]->click(); + break; + + // two edges + case Edge12: + myShape1 = anObj; + if (!myShape1->_is_nil() && myShape2->_is_nil()) + mySelBtn[Edge22]->click(); + break; + case Edge22: + myShape2 = anObj; + if (!myShape2->_is_nil() && myShape1->_is_nil()) + mySelBtn[Edge12]->click(); + break; + + // four edges + case Edge14: + myShape1 = anObj; + if (!myShape1->_is_nil() && myShape2->_is_nil()) + mySelBtn[Edge24]->click(); + break; + case Edge24: + myShape2 = anObj; + if (!myShape2->_is_nil() && myShape3->_is_nil()) + mySelBtn[Edge34]->click(); + break; + case Edge34: + myShape3 = anObj; + if (!myShape3->_is_nil() && myShape4->_is_nil()) + mySelBtn[Edge44]->click(); + break; + case Edge44: + myShape4 = anObj; + if (!myShape4->_is_nil() && myShape1->_is_nil()) + mySelBtn[Edge14]->click(); + break; + + default: + break; } displayPreview(); @@ -265,14 +352,65 @@ void BlocksGUI_QuadFaceDlg::SetEditCurrentArgument() { QPushButton* aSender = (QPushButton*)sender(); + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + if (myInitial) + myInitial = false; + else + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + + // disable all + switch (myConstructorId) { + case 0: + mySelBtn[Vertex1]->setDown(false); + mySelBtn[Vertex2]->setDown(false); + mySelBtn[Vertex3]->setDown(false); + mySelBtn[Vertex4]->setDown(false); + + mySelName[Vertex1]->setEnabled(false); + mySelName[Vertex2]->setEnabled(false); + mySelName[Vertex3]->setEnabled(false); + mySelName[Vertex4]->setEnabled(false); + break; + case 1: + mySelBtn[Edge12]->setDown(false); + mySelBtn[Edge22]->setDown(false); + + mySelName[Edge12]->setEnabled(false); + mySelName[Edge22]->setEnabled(false); + break; + case 2: + mySelBtn[Edge14]->setDown(false); + mySelBtn[Edge24]->setDown(false); + mySelBtn[Edge34]->setDown(false); + mySelBtn[Edge44]->setDown(false); + + mySelName[Edge14]->setEnabled(false); + mySelName[Edge24]->setEnabled(false); + mySelName[Edge34]->setEnabled(false); + mySelName[Edge44]->setEnabled(false); + break; + default: + break; + } + + // set line edit as current argument QMap::iterator anIter; for (anIter = mySelBtn.begin(); anIter != mySelBtn.end(); ++anIter) { - if (anIter.data() == aSender) { - mySelName[anIter.key()]->setFocus(); + if (anIter.value() == aSender) { myEditCurrentArgument = mySelName[anIter.key()]; + break; } } + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + + // enable push button + // after setFocus(), because it will be setDown(false) when loses focus + aSender->setDown(true); + activateSelection(); } @@ -283,10 +421,9 @@ void BlocksGUI_QuadFaceDlg::SetEditCurrentArgument() void BlocksGUI_QuadFaceDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; - activateSelection(); + + // ?? displayPreview(); } @@ -294,22 +431,12 @@ void BlocksGUI_QuadFaceDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void BlocksGUI_QuadFaceDlg::enterEvent (QEvent* e) +void BlocksGUI_QuadFaceDlg::enterEvent (QEvent*) { - if (!GroupConstructors->isEnabled()) - this->ActivateThisDialog(); + if (!mainFrame()->GroupConstructors->isEnabled()) + ActivateThisDialog(); } -//================================================================================= -// function : DeactivateActiveDialog() -// purpose : -//================================================================================= -//void BlocksGUI_QuadFaceDlg::DeactivateActiveDialog() -//{ -// // disconnect selection -// GEOMBase_Skeleton::DeactivateActiveDialog(); -//} - //================================================================================= // function : createSelWg() // purpose : @@ -319,11 +446,24 @@ void BlocksGUI_QuadFaceDlg::createSelWg (const QString& theLbl, QWidget* theParent, const int theId) { - new QLabel(theLbl, theParent); + QLabel* lab = new QLabel(theLbl, theParent); mySelBtn[theId] = new QPushButton(theParent); - mySelBtn[theId]->setPixmap(thePix); + mySelBtn[theId]->setIcon(thePix); + mySelBtn[theId]->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); mySelName[theId] = new QLineEdit(theParent); mySelName[theId]->setReadOnly(true); + QGridLayout* l = 0; + if (!theParent->layout()) { + l = new QGridLayout(theParent); + l->setMargin(9); l->setSpacing(6); + } + else { + l = qobject_cast(theParent->layout()); + } + int row = l->rowCount(); + l->addWidget(lab, row, 0); + l->addWidget(mySelBtn[theId], row, 1); + l->addWidget(mySelName[theId], row, 2); } //================================================================================= @@ -332,18 +472,20 @@ void BlocksGUI_QuadFaceDlg::createSelWg (const QString& theLbl, //================================================================================= void BlocksGUI_QuadFaceDlg::activateSelection() { + globalSelection(); // close local contexts, if any if (myEditCurrentArgument == mySelName[Vertex1] || myEditCurrentArgument == mySelName[Vertex2] || myEditCurrentArgument == mySelName[Vertex3] || - myEditCurrentArgument == mySelName[Vertex4]) { - - globalSelection(GEOM_POINT); - - } else { - globalSelection(GEOM_EDGE); + myEditCurrentArgument == mySelName[Vertex4]) + { + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); //Select Vertices on All Shapes } - - SelectionIntoArgument(); + else + { + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); //Select Edges on All Shapes + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); } //================================================================================= @@ -361,19 +503,23 @@ GEOM::GEOM_IOperations_ptr BlocksGUI_QuadFaceDlg::createOperation() //================================================================================= bool BlocksGUI_QuadFaceDlg::isValid (QString&) { + bool ok = false; switch (getConstructorId()) { - case 0: - return (!myShape1->_is_nil() && !myShape2->_is_nil() && - !myShape3->_is_nil() && !myShape4->_is_nil()); - case 1: - return (!myShape1->_is_nil() && !myShape2->_is_nil()); - case 2: - return (!myShape1->_is_nil() && !myShape2->_is_nil() && - !myShape3->_is_nil() && !myShape4->_is_nil()); - default: - return false; + case 0: + ok = (!myShape1->_is_nil() && !myShape2->_is_nil() && + !myShape3->_is_nil() && !myShape4->_is_nil()); + break; + case 1: + ok = (!myShape1->_is_nil() && !myShape2->_is_nil()); + break; + case 2: + ok = (!myShape1->_is_nil() && !myShape2->_is_nil() && + !myShape3->_is_nil() && !myShape4->_is_nil()); + break; + default: + break; } - return false; + return ok; } //================================================================================= @@ -387,23 +533,23 @@ bool BlocksGUI_QuadFaceDlg::execute (ObjectList& objects) GEOM::GEOM_Object_var anObj; switch (getConstructorId()) { - case 0: - anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())->MakeQuad4Vertices - (myShape1, myShape2, myShape3, myShape4); - res = true; - break; - case 1: - anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())->MakeQuad2Edges - (myShape1, myShape2); - res = true; - break; - case 2: - anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())->MakeQuad - (myShape1, myShape2, myShape3, myShape4); - res = true; - break; - default: - break; + case 0: + anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())-> + MakeQuad4Vertices(myShape1, myShape2, myShape3, myShape4); + res = true; + break; + case 1: + anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())-> + MakeQuad2Edges(myShape1, myShape2); + res = true; + break; + case 2: + anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())-> + MakeQuad(myShape1, myShape2, myShape3, myShape4); + res = true; + break; + default: + break; } if (!anObj->_is_nil()) @@ -411,3 +557,32 @@ bool BlocksGUI_QuadFaceDlg::execute (ObjectList& objects) return res; } + +//================================================================================= +// function : addSubshapeToStudy +// purpose : virtual method to add new SubObjects if local selection +//================================================================================= +void BlocksGUI_QuadFaceDlg::addSubshapesToStudy() +{ + QMap objMap; + + switch (getConstructorId()) { + case 0: + objMap[mySelName[Vertex1]->text()] = myShape1; + objMap[mySelName[Vertex2]->text()] = myShape2; + objMap[mySelName[Vertex3]->text()] = myShape3; + objMap[mySelName[Vertex4]->text()] = myShape4; + break; + case 1: + objMap[mySelName[Edge12]->text()] = myShape1; + objMap[mySelName[Edge22]->text()] = myShape2; + break; + case 2: + objMap[mySelName[Edge14]->text()] = myShape1; + objMap[mySelName[Edge24]->text()] = myShape2; + objMap[mySelName[Edge34]->text()] = myShape3; + objMap[mySelName[Edge44]->text()] = myShape4; + break; + } + addSubshapesToFather(objMap); +} diff --git a/src/BlocksGUI/BlocksGUI_QuadFaceDlg.h b/src/BlocksGUI/BlocksGUI_QuadFaceDlg.h index be706bab3..1d55983f3 100644 --- a/src/BlocksGUI/BlocksGUI_QuadFaceDlg.h +++ b/src/BlocksGUI/BlocksGUI_QuadFaceDlg.h @@ -1,6 +1,7 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -16,73 +17,80 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BlocksGUI_QuadFaceDlg.h +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) // -// -// File : BlocksGUI_QuadFaceDlg.h -// Author : Julia DOROVSKIKH -// Module : GEOM +#ifndef BLOCKSGUI_QUADFACEDLG_H +#define BLOCKSGUI_QUADFACEDLG_H -#ifndef DIALOGBOX_QUAD_FACE_H -#define DIALOGBOX_QUAD_FACE_H +#include -#include "GEOM_BlocksGUI.hxx" +#include -#include "GEOMBase_Skeleton.h" +class QGroupBox; +class QPushButton; +class QLineEdit; //================================================================================= // class : BlocksGUI_QuadFaceDlg // purpose : //================================================================================= -class GEOM_BLOCKSGUI_EXPORT BlocksGUI_QuadFaceDlg : public GEOMBase_Skeleton +class BlocksGUI_QuadFaceDlg : public GEOMBase_Skeleton { Q_OBJECT enum { Vertex1, Vertex2, Vertex3, Vertex4, - Edge12, Edge22, - Edge14, Edge24, Edge34, Edge44 }; + Edge12, Edge22, + Edge14, Edge24, Edge34, Edge44 }; public: - BlocksGUI_QuadFaceDlg (GeometryGUI*, QWidget* parent, bool modal = FALSE); + BlocksGUI_QuadFaceDlg (GeometryGUI*, QWidget*); ~BlocksGUI_QuadFaceDlg(); protected: // redefined from GEOMBase_Helper virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid (QString& msg); - virtual bool execute (ObjectList& objects); + virtual bool isValid (QString&); + virtual bool execute (ObjectList&); + virtual void addSubshapesToStudy(); private: - void Init(); - void enterEvent (QEvent* e); + void Init(); + void enterEvent (QEvent*); - void createSelWg (const QString&, QPixmap&, QWidget*, const int); - void activateSelection(); + void createSelWg (const QString&, QPixmap&, + QWidget*, const int); + void activateSelection(); private: - int myConstructorId; + int myConstructorId; - GEOM::GEOM_Object_var myShape1; - GEOM::GEOM_Object_var myShape2; - GEOM::GEOM_Object_var myShape3; - GEOM::GEOM_Object_var myShape4; + GEOM::GEOM_Object_var myShape1; + GEOM::GEOM_Object_var myShape2; + GEOM::GEOM_Object_var myShape3; + GEOM::GEOM_Object_var myShape4; - QFrame* myGrp1; - QFrame* myGrp2; - QFrame* myGrp3; + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; - QMap mySelBtn; - QMap mySelName; + QGroupBox* myGrp1; + QGroupBox* myGrp2; + QGroupBox* myGrp3; + + QMap mySelBtn; + QMap mySelName; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void ConstructorsClicked( int constructorId ); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void ConstructorsClicked (int); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_QUAD_FACE_H +#endif // BLOCKSGUI_QUADFACEDLG_H diff --git a/src/BlocksGUI/BlocksGUI_TrsfDlg.cxx b/src/BlocksGUI/BlocksGUI_TrsfDlg.cxx index 9e5da6754..9e5e91a97 100644 --- a/src/BlocksGUI/BlocksGUI_TrsfDlg.cxx +++ b/src/BlocksGUI/BlocksGUI_TrsfDlg.cxx @@ -1,6 +1,7 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -16,107 +17,77 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BlocksGUI_TrsfDlg.cxx +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) // -// -// File : BlocksGUI_TrsfDlg.cxx -// Author : Julia DOROVSKIKH -// Module : GEOM -// $Header$ - #include "BlocksGUI_TrsfDlg.h" -#include "DlgRef_SpinBox.h" +#include +#include +#include -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "OCCViewer_ViewModel.h" +#include +#include +#include +#include +#include +#include +#include +#include +// OCCT Includes #include -#include - //================================================================================= // class : BlocksGUI_TrsfDlg() // purpose : Constructs a BlocksGUI_TrsfDlg which is a child of 'parent'. //================================================================================= -BlocksGUI_TrsfDlg::BlocksGUI_TrsfDlg (GeometryGUI* theGeometryGUI, QWidget* parent, bool modal) - : GEOMBase_Skeleton(theGeometryGUI, parent, "TrsfDlg", modal, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BlocksGUI_TrsfDlg::BlocksGUI_TrsfDlg (GeometryGUI* theGeometryGUI, QWidget* parent) + : GEOMBase_Skeleton(theGeometryGUI, parent), + myInitial(true) { SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_BLOCK_MULTITRSF_SIMPLE"))); QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_BLOCK_MULTITRSF_DOUBLE"))); QPixmap imageS (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_BLOCK_MULTITRSF_TITLE")); + setWindowTitle(tr("GEOM_BLOCK_MULTITRSF_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_BLOCK_MULTITRSF")); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_BLOCK_MULTITRSF")); - RadioButton1->setPixmap(image1); - RadioButton2->setPixmap(image2); - RadioButton3->close(TRUE); + mainFrame()->RadioButton1->setIcon(image1); + mainFrame()->RadioButton2->setIcon(image2); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); // Create first group - myGrp1 = new QGroupBox(1, Qt::Horizontal, tr("GEOM_BLOCK_MULTITRSF_SIMPLE"), this); + myGrp1 = new QGroupBox(tr("GEOM_BLOCK_MULTITRSF_SIMPLE"), centralWidget()); - QGroupBox* aSelGrp1 = new QGroupBox(3, Qt::Horizontal, myGrp1); - aSelGrp1->setFrameStyle(QFrame::NoFrame); - aSelGrp1->setInsideMargin(0); - - createSelWg(tr("GEOM_MAIN_OBJECT"), imageS, aSelGrp1, MainObj1); - createSelWg(tr("FACE_1"), imageS, aSelGrp1, Face1); - createSelWg(tr("FACE_2"), imageS, aSelGrp1, Face2); - - QGroupBox* aSpinGrp1 = new QGroupBox(1, Qt::Vertical, myGrp1); - aSpinGrp1->setFrameStyle(QFrame::NoFrame); - aSpinGrp1->setInsideMargin(0); - - new QLabel(tr("GEOM_NB_TIMES"), aSpinGrp1); - mySpinBox[SpinBox1] = new DlgRef_SpinBox(aSpinGrp1); + createSelWg(tr("GEOM_MAIN_OBJECT"), imageS, myGrp1, MainObj1); + createSelWg(tr("FACE_1"), imageS, myGrp1, Face1); + createSelWg(tr("FACE_2"), imageS, myGrp1, Face2); + createSpinWg(tr("GEOM_NB_TIMES"), myGrp1, SpinBox1); // Create second group - myGrp2 = new QGroupBox(1, Qt::Horizontal, tr("GEOM_BLOCK_MULTITRSF_DOUBLE"), this); + myGrp2 = new QGroupBox(tr("GEOM_BLOCK_MULTITRSF_DOUBLE"), centralWidget()); - // U trsf - QGroupBox* aSelGrp2U = new QGroupBox(3, Qt::Horizontal, myGrp2); - aSelGrp2U->setFrameStyle(QFrame::NoFrame); - aSelGrp2U->setInsideMargin(0); - - createSelWg(tr("GEOM_MAIN_OBJECT"), imageS, aSelGrp2U, MainObj2); - createSelWg(tr("FACE_1U"), imageS, aSelGrp2U, Face1U); - createSelWg(tr("FACE_2U"), imageS, aSelGrp2U, Face2U); - - QGroupBox* aSpinGrp2U = new QGroupBox(1, Qt::Vertical, myGrp2); - aSpinGrp2U->setFrameStyle(QFrame::NoFrame); - aSpinGrp2U->setInsideMargin(0); - - new QLabel(tr("GEOM_NB_TIMES_U"), aSpinGrp2U); - mySpinBox[SpinBox2U] = new DlgRef_SpinBox(aSpinGrp2U); - - // V trsf - QGroupBox* aSelGrp2V = new QGroupBox(3, Qt::Horizontal, myGrp2); - aSelGrp2V->setFrameStyle(QFrame::NoFrame); - aSelGrp2V->setInsideMargin(0); - - createSelWg(tr("FACE_1V"), imageS, aSelGrp2V, Face1V); - createSelWg(tr("FACE_2V"), imageS, aSelGrp2V, Face2V); - - QGroupBox* aSpinGrp2V = new QGroupBox(1, Qt::Vertical, myGrp2); - aSpinGrp2V->setFrameStyle(QFrame::NoFrame); - aSpinGrp2V->setInsideMargin(0); - - new QLabel(tr("GEOM_NB_TIMES_V"), aSpinGrp2V); - mySpinBox[SpinBox2V] = new DlgRef_SpinBox(aSpinGrp2V); - - (new QLabel(myGrp2))->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); + createSelWg(tr("GEOM_MAIN_OBJECT"), imageS, myGrp2, MainObj2); + createSelWg(tr("FACE_1U"), imageS, myGrp2, Face1U); + createSelWg(tr("FACE_2U"), imageS, myGrp2, Face2U); + createSpinWg(tr("GEOM_NB_TIMES_U"), myGrp2, SpinBox2U); + createSelWg(tr("FACE_1V"), imageS, myGrp2, Face1V); + createSelWg(tr("FACE_2V"), imageS, myGrp2, Face2V); + createSpinWg(tr("GEOM_NB_TIMES_V"), myGrp2, SpinBox2V); // Add groups to layout - Layout1->addWidget( myGrp1, 2, 0 ); - Layout1->addWidget( myGrp2, 2, 0 ); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(myGrp1); + layout->addWidget(myGrp2); /***************************************************************/ setHelpFileName("multi_transformation_operation_page.html"); @@ -141,27 +112,25 @@ void BlocksGUI_TrsfDlg::Init() { // Set range of spinboxes double SpecificStep = 1.0; - QMap::iterator anIter; + QMap::iterator anIter; for (anIter = mySpinBox.begin(); anIter != mySpinBox.end(); ++anIter) { //anIter.data()->RangeStepAndValidator(1.0, 999.999, SpecificStep, 3); - anIter.data()->RangeStepAndValidator(1.0, MAX_NUMBER, SpecificStep, 3); + initSpinBox(anIter.value(), 1.0, 999, SpecificStep, 3); } // signals and slots connections - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); QMap::iterator anIterBtn; for (anIterBtn = mySelBtn.begin(); anIterBtn != mySelBtn.end(); ++anIterBtn) - connect(anIterBtn.data(), SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(anIterBtn.value(), SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - QMap::iterator anIterSpin; + QMap::iterator anIterSpin; for (anIterSpin = mySpinBox.begin(); anIterSpin != mySpinBox.end(); ++anIterSpin) - connect(anIterSpin.data(), SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect(anIterSpin.value(), SIGNAL(valueChanged(int)), this, SLOT(ValueChangedInSpinBox(int))); // init controls and fields initName(tr("GEOM_BLOCK_MULTITRSF")); @@ -181,41 +150,44 @@ void BlocksGUI_TrsfDlg::ConstructorsClicked (int constructorId) myConstructorId = constructorId; + // init fields + myShape = GEOM::GEOM_Object::_nil(); + myFaces[Face1] = myFaces[Face2] = -1; + myFaces[Face1U] = myFaces[Face2U] = -1; + myFaces[Face1V] = myFaces[Face2V] = -1; + + // clear line edits + QMap::iterator anIterLE; + for (anIterLE = mySelName.begin(); anIterLE != mySelName.end(); ++anIterLE) + anIterLE.value()->setText(""); + switch (constructorId) { case 0: myGrp2->hide(); myGrp1->show(); - mySpinBox[SpinBox1]->SetValue(2.0); - myEditCurrentArgument = mySelName[MainObj1]; - myFaces[Face1] = -1; - myFaces[Face2] = -1; + mySpinBox[SpinBox1]->setValue(2); + mySpinBox[SpinBox1]->setDecimals(0); + mySelBtn[MainObj1]->click(); break; case 1: myGrp1->hide(); myGrp2->show(); - mySpinBox[SpinBox2U]->SetValue(2.0); - mySpinBox[SpinBox2V]->SetValue(2.0); - myEditCurrentArgument = mySelName[MainObj2]; - myFaces[Face1U] = -1; - myFaces[Face2U] = -1; - myFaces[Face1V] = -1; - myFaces[Face2V] = -1; + mySpinBox[SpinBox2U]->setValue(2); + mySpinBox[SpinBox2U]->setDecimals(0); + mySpinBox[SpinBox2V]->setValue(2); + mySpinBox[SpinBox2V]->setDecimals(0); + mySelBtn[MainObj2]->click(); break; default: break; } - // clear line edits - QMap::iterator anIterLE; - for (anIterLE = mySelName.begin(); anIterLE != mySelName.end(); ++anIterLE) - anIterLE.data()->setText(""); + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); - // init fields - myShape = GEOM::GEOM_Object::_nil(); - - activateSelection(); -// enableWidgets(); -// displayPreview(); + // on dialog initialization we init the first field with a selected object (if any) + SelectionIntoArgument(); } //================================================================================= @@ -243,7 +215,7 @@ bool BlocksGUI_TrsfDlg::ClickOnApply() //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection has changed +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void BlocksGUI_TrsfDlg::SelectionIntoArgument() { @@ -254,55 +226,97 @@ void BlocksGUI_TrsfDlg::SelectionIntoArgument() int aCurrFocus = -1; QMap::iterator anIter; for (anIter = mySelName.begin(); anIter != mySelName.end(); ++anIter) { - if (myEditCurrentArgument == anIter.data()) { + if (myEditCurrentArgument == anIter.value()) { aCurrFocus = anIter.key(); break; } } - // If selection of main object is activated - if (aCurrFocus == MainObj1 || aCurrFocus == MainObj2) { - if (IObjectCount() == 1) { - Standard_Boolean aResult = Standard_False; - GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject(firstIObject(), aResult); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); - if (aResult && !anObj->_is_nil() && GEOMBase::IsShape( anObj ) ) { - myShape = anObj; - mySelName[aCurrFocus]->setText(GEOMBase::GetName(anObj)); - enableWidgets(); - return; + QString aName; + GEOM::GEOM_Object_var anObj = GEOM::GEOM_Object::_nil(); + + if (aCurrFocus == MainObj1 || aCurrFocus == MainObj2) + { + // If selection of main object is activated + if (aSelList.Extent() == 1) { + Standard_Boolean aResult = Standard_False; + anObj = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); + + if (aResult && !anObj->_is_nil() && GEOMBase::IsShape(anObj)) { + aName = GEOMBase::GetName(anObj); } } - - myShape = GEOM::GEOM_Object::_nil(); + myEditCurrentArgument->setText(aName); + myShape = anObj; enableWidgets(); } - // If face selection is activated else if (aCurrFocus == Face1 || aCurrFocus == Face2 || aCurrFocus == Face1U || aCurrFocus == Face2U || aCurrFocus == Face1V || aCurrFocus == Face2V) { - if (IObjectCount() == 1) { + // If face selection is activated + int anIndex = -1; + if (aSelList.Extent() == 1) { Standard_Boolean aResult = Standard_False; - GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject(firstIObject(), aResult); - - if ( aResult && !anObj->_is_nil() && GEOMBase::IsShape( anObj ) ) { + anObj = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); + if (aResult && !anObj->_is_nil() && GEOMBase::IsShape(anObj)) { + aName = GEOMBase::GetName(anObj); TColStd_IndexedMapOfInteger anIndexes; - ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->GetIndexes( firstIObject(), anIndexes ); + aSelMgr->GetIndexes(aSelList.First(), anIndexes); if (anIndexes.Extent() == 1) { - int anIndex = anIndexes(1); - QString aFaceName = QString(GEOMBase::GetName(anObj)) + ":%1"; - myEditCurrentArgument->setText(aFaceName.arg(anIndex)); - myFaces[aCurrFocus] = anIndex; - displayPreview(); - return; + anIndex = anIndexes(1); + aName += QString(":face_%1").arg(anIndex); } } } + myEditCurrentArgument->setText(aName); + myFaces[aCurrFocus] = anIndex; + displayPreview(); + } - myFaces[aCurrFocus] = -1; + switch (aCurrFocus) { + // 1D + case MainObj1: + if (!myShape->_is_nil() && myFaces[Face1] == -1) + mySelBtn[Face1]->click(); + break; + case Face1: + if (myFaces[Face1] != -1 && myFaces[Face2] == -1) + mySelBtn[Face2]->click(); + break; + case Face2: + if (myFaces[Face2] != -1 && myShape->_is_nil()) + mySelBtn[MainObj1]->click(); + break; + + // 2D + case MainObj2: + if (!myShape->_is_nil() && myFaces[Face1U] == -1) + mySelBtn[Face1U]->click(); + break; + case Face1U: + if (myFaces[Face1U] != -1 && myFaces[Face2U] == -1) + mySelBtn[Face2U]->click(); + break; + case Face2U: + if (myFaces[Face2U] != -1 && myFaces[Face1V] == -1) + mySelBtn[Face1V]->click(); + break; + case Face1V: + if (myFaces[Face1V] != -1 && myFaces[Face2V] == -1) + mySelBtn[Face2V]->click(); + break; + case Face2V: + if (myFaces[Face2V] != -1 && myShape->_is_nil()) + mySelBtn[MainObj1]->click(); + break; + + default: + break; } } @@ -314,15 +328,58 @@ void BlocksGUI_TrsfDlg::SetEditCurrentArgument() { QPushButton* aSender = (QPushButton*)sender(); + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + if (myInitial) + myInitial = false; + else + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + + // disable all + switch (myConstructorId) { + case 0: + mySelBtn[MainObj1]->setDown(false); + mySelBtn[Face1]->setDown(false); + mySelBtn[Face2]->setDown(false); + + mySelName[MainObj1]->setEnabled(false); + mySelName[Face1]->setEnabled(false); + mySelName[Face2]->setEnabled(false); + break; + case 1: + mySelBtn[MainObj2]->setDown(false); + mySelBtn[Face1U]->setDown(false); + mySelBtn[Face2U]->setDown(false); + mySelBtn[Face1V]->setDown(false); + mySelBtn[Face2V]->setDown(false); + + mySelName[MainObj2]->setEnabled(false); + mySelName[Face1U]->setEnabled(false); + mySelName[Face2U]->setEnabled(false); + mySelName[Face1V]->setEnabled(false); + mySelName[Face2V]->setEnabled(false); + break; + default: + break; + } + + // set line edit as current argument QMap::iterator anIter; for (anIter = mySelBtn.begin(); anIter != mySelBtn.end(); ++anIter) { - if (anIter.data() == aSender) { - mySelName[anIter.key()]->setFocus(); + if (anIter.value() == aSender) { myEditCurrentArgument = mySelName[anIter.key()]; break; } } + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + + // enable push button + // after setFocus(), because it will be setDown(false) when loses focus + aSender->setDown(true); + activateSelection(); } @@ -333,10 +390,9 @@ void BlocksGUI_TrsfDlg::SetEditCurrentArgument() void BlocksGUI_TrsfDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; - activateSelection(); + + // ?? displayPreview(); } @@ -344,17 +400,17 @@ void BlocksGUI_TrsfDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void BlocksGUI_TrsfDlg::enterEvent (QEvent* e) +void BlocksGUI_TrsfDlg::enterEvent (QEvent*) { - if (!GroupConstructors->isEnabled()) - this->ActivateThisDialog(); + if (!mainFrame()->GroupConstructors->isEnabled()) + ActivateThisDialog(); } //================================================================================= // function : ValueChangedInSpinBox() // purpose : //================================================================================= -void BlocksGUI_TrsfDlg::ValueChangedInSpinBox (double newValue) +void BlocksGUI_TrsfDlg::ValueChangedInSpinBox(int) { displayPreview(); } @@ -368,11 +424,47 @@ void BlocksGUI_TrsfDlg::createSelWg (const QString& theLbl, QWidget* theParent, const int theId) { - new QLabel(theLbl, theParent); + QLabel* lab = new QLabel(theLbl, theParent); mySelBtn[theId] = new QPushButton(theParent); - mySelBtn[theId]->setPixmap(thePix); + mySelBtn[theId]->setIcon(thePix); + mySelBtn[theId]->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); mySelName[theId] = new QLineEdit(theParent); mySelName[theId]->setReadOnly(true); + QGridLayout* l = 0; + if (!theParent->layout()) { + l = new QGridLayout(theParent); + l->setMargin(9); l->setSpacing(6); + } + else { + l = qobject_cast(theParent->layout()); + } + int row = l->rowCount(); + l->addWidget(lab, row, 0); + l->addWidget(mySelBtn[theId], row, 1); + l->addWidget(mySelName[theId], row, 2); +} + +//================================================================================= +// function : createSpinWg() +// purpose : +//================================================================================= +void BlocksGUI_TrsfDlg::createSpinWg (const QString& theLbl, + QWidget* theParent, + const int theId) +{ + QLabel* lab = new QLabel(theLbl, theParent); + mySpinBox[theId] = new SalomeApp_DoubleSpinBox(theParent); + QGridLayout* l = 0; + if (!theParent->layout()) { + l = new QGridLayout(theParent); + l->setMargin(9); l->setSpacing(6); + } + else { + l = qobject_cast(theParent->layout()); + } + int row = l->rowCount(); + l->addWidget(lab, row, 0); + l->addWidget(mySpinBox[theId], row, 2); } //================================================================================= @@ -381,26 +473,22 @@ void BlocksGUI_TrsfDlg::createSelWg (const QString& theLbl, //================================================================================= void BlocksGUI_TrsfDlg::activateSelection() { + globalSelection(GEOM_ALLSHAPES); if (!myShape->_is_nil() && - (myEditCurrentArgument == mySelName[ Face1 ] || - myEditCurrentArgument == mySelName[ Face2 ] || - myEditCurrentArgument == mySelName[ Face1U ] || - myEditCurrentArgument == mySelName[ Face2U ] || - myEditCurrentArgument == mySelName[ Face1V ] || - myEditCurrentArgument == mySelName[ Face2V ])) { - + (myEditCurrentArgument == mySelName[Face1 ] || + myEditCurrentArgument == mySelName[Face2 ] || + myEditCurrentArgument == mySelName[Face1U] || + myEditCurrentArgument == mySelName[Face2U] || + myEditCurrentArgument == mySelName[Face1V] || + myEditCurrentArgument == mySelName[Face2V])) + { // Local selection is available only in the OCC Viewer - if (SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() - == OCCViewer_Viewer::Type()) { + if (getDesktop()->activeWindow()->getViewManager()->getType() == OCCViewer_Viewer::Type()) { localSelection(myShape, TopAbs_FACE); - } else { - return; } - } else { - globalSelection( GEOM_ALLSHAPES ); } - - SelectionIntoArgument(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); } //================================================================================= @@ -414,26 +502,27 @@ void BlocksGUI_TrsfDlg::enableWidgets() bool toEnable = !myShape->_is_nil(); if (anId == 0) { - mySelName[Face1]->setEnabled(toEnable); - mySelName[Face2]->setEnabled(toEnable); - mySelBtn[Face1]->setEnabled(toEnable); - mySelBtn[Face2]->setEnabled(toEnable); + //mySelName[Face1]->setEnabled(toEnable); + //mySelName[Face2]->setEnabled(toEnable); + //mySelBtn[Face1]->setEnabled(toEnable); + //mySelBtn[Face2]->setEnabled(toEnable); - if (!toEnable) { + if (!toEnable) { mySelName[Face1]->setText(""); mySelName[Face2]->setText(""); myFaces[Face1] = -1; myFaces[Face2] = -1; } - } else if (anId == 1) { - mySelName[Face1U]->setEnabled(toEnable); - mySelName[Face2U]->setEnabled(toEnable); - mySelName[Face1V]->setEnabled(toEnable); - mySelName[Face2V]->setEnabled(toEnable); - mySelBtn[Face1U]->setEnabled(toEnable); - mySelBtn[Face2U]->setEnabled(toEnable); - mySelBtn[Face1V]->setEnabled(toEnable); - mySelBtn[Face2V]->setEnabled(toEnable); + } + else if (anId == 1) { + //mySelName[Face1U]->setEnabled(toEnable); + //mySelName[Face2U]->setEnabled(toEnable); + //mySelName[Face1V]->setEnabled(toEnable); + //mySelName[Face2V]->setEnabled(toEnable); + //mySelBtn[Face1U]->setEnabled(toEnable); + //mySelBtn[Face2U]->setEnabled(toEnable); + //mySelBtn[Face1V]->setEnabled(toEnable); + //mySelBtn[Face2V]->setEnabled(toEnable); if (!toEnable) { mySelName[Face1U]->setText(""); @@ -458,20 +547,26 @@ GEOM::GEOM_IOperations_ptr BlocksGUI_TrsfDlg::createOperation() } //================================================================================= -// function : ClickOnApply() +// function : isValid // purpose : Verify validity of input data //================================================================================= -bool BlocksGUI_TrsfDlg::isValid (QString&) +bool BlocksGUI_TrsfDlg::isValid (QString& msg) { + bool ok = false, okSP = true; switch (getConstructorId()) { - case 0: - return !myShape->_is_nil() && myFaces[Face1] > 0; - case 1: - return !myShape->_is_nil() && myFaces[Face1U] > 0 && myFaces[Face1V] > 0; - default: - return false; + case 0: + ok = !myShape->_is_nil() && myFaces[Face1] > 0; + okSP = mySpinBox[SpinBox1]->isValid( msg, !IsPreview() ); + break; + case 1: + ok = !myShape->_is_nil() && myFaces[Face1U] > 0 && myFaces[Face1V] > 0; + okSP = mySpinBox[SpinBox2U]->isValid( msg, !IsPreview() ) && okSP; + okSP = mySpinBox[SpinBox2V]->isValid( msg, !IsPreview() ) && okSP; + break; + default: + break; } - return false; + return ok && okSP; } //================================================================================= @@ -485,25 +580,40 @@ bool BlocksGUI_TrsfDlg::execute (ObjectList& objects) GEOM::GEOM_Object_var anObj; switch (getConstructorId()) { - case 0: - anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())->MakeMultiTransformation1D - (myShape, - myFaces[Face1], - myFaces[Face2], - (int)mySpinBox[SpinBox1]->GetValue()); - res = true; - break; - case 1: - anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())->MakeMultiTransformation2D - (myShape, - myFaces[Face1U], - myFaces[Face2U], - (int)mySpinBox[SpinBox2U]->GetValue(), - myFaces[Face1V], - myFaces[Face2V], - (int)mySpinBox[SpinBox2V]->GetValue()); - res = true; - break; + case 0: + anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())-> + MakeMultiTransformation1D(myShape, + myFaces[Face1], myFaces[Face2], + mySpinBox[SpinBox1]->value()); + if (!anObj->_is_nil() && !IsPreview()) + { + QStringList aParameters; + aParameters << "" << ""; + aParameters << mySpinBox[SpinBox1]->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + res = true; + break; + case 1: + anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())-> + MakeMultiTransformation2D (myShape, + myFaces[Face1U], myFaces[Face2U], + mySpinBox[SpinBox2U]->value(), + myFaces[Face1V], myFaces[Face2V], + mySpinBox[SpinBox2V]->value()); + if (!anObj->_is_nil() && !IsPreview()) + { + QStringList aParameters; + aParameters << "" << ""; + aParameters << mySpinBox[SpinBox2U]->text(); + aParameters << "" << ""; + aParameters << mySpinBox[SpinBox2V]->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + res = true; + break; + default: + break; } if (!anObj->_is_nil()) diff --git a/src/BlocksGUI/BlocksGUI_TrsfDlg.h b/src/BlocksGUI/BlocksGUI_TrsfDlg.h index 7508c8e48..a0f823f14 100644 --- a/src/BlocksGUI/BlocksGUI_TrsfDlg.h +++ b/src/BlocksGUI/BlocksGUI_TrsfDlg.h @@ -1,6 +1,7 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -16,28 +17,29 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BlocksGUI_TrsfDlg.h +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) // -// -// File : BlocksGUI_TrsfDlg.h -// Author : Julia DOROVSKIKH -// Module : GEOM +#ifndef BLOCKSGUI_TRSFDLG_H +#define BLOCKSGUI_TRSFDLG_H -#ifndef DIALOGBOX_BLOCK_MULTITRSF_H -#define DIALOGBOX_BLOCK_MULTITRSF_H +#include -#include "GEOM_BlocksGUI.hxx" +#include -#include "GEOMBase_Skeleton.h" - -class DlgRef_SpinBox; +class SalomeApp_DoubleSpinBox; +class QGroupBox; +class QPushButton; +class QLineEdit; //================================================================================= // class : BlocksGUI_TrsfDlg // purpose : //================================================================================= -class GEOM_BLOCKSGUI_EXPORT BlocksGUI_TrsfDlg : public GEOMBase_Skeleton +class BlocksGUI_TrsfDlg : public GEOMBase_Skeleton { Q_OBJECT @@ -45,46 +47,50 @@ class GEOM_BLOCKSGUI_EXPORT BlocksGUI_TrsfDlg : public GEOMBase_Skeleton enum { SpinBox1, SpinBox2U, SpinBox2V }; public: - BlocksGUI_TrsfDlg (GeometryGUI*, QWidget* parent, bool modal = FALSE); + BlocksGUI_TrsfDlg (GeometryGUI*, QWidget*); ~BlocksGUI_TrsfDlg(); protected: // redefined from GEOMBase_Helper virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid (QString& msg); - virtual bool execute (ObjectList& objects); + virtual bool isValid (QString&); + virtual bool execute (ObjectList&); private: - void Init(); - void enterEvent (QEvent* e); + void Init(); + void enterEvent(QEvent*); - void createSelWg (const QString&, QPixmap&, QWidget*, const int); - void activateSelection(); - void enableWidgets(); + void createSelWg (const QString&, QPixmap&, QWidget*, const int); + void createSpinWg (const QString&, QWidget*, const int); + void activateSelection(); + void enableWidgets(); private: - int myConstructorId; + int myConstructorId; - GEOM::GEOM_Object_var myShape; - QMap myFaces; + GEOM::GEOM_Object_var myShape; + QMap myFaces; - QFrame* myGrp1; - QFrame* myGrp2; + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; - QMap mySelBtn; - QMap mySelName; - QMap mySpinBox; + QGroupBox* myGrp1; + QGroupBox* myGrp2; + + QMap mySelBtn; + QMap mySelName; + QMap mySpinBox; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void ConstructorsClicked (int constructorId); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void ConstructorsClicked (int); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); - void ValueChangedInSpinBox (double newValue); + void ValueChangedInSpinBox (int); }; -#endif // DIALOGBOX_BLOCK_MULTITRSF_H +#endif // BLOCKSGUI_TRSFDLG_H diff --git a/src/BlocksGUI/GEOM_BlocksGUI.hxx b/src/BlocksGUI/GEOM_BlocksGUI.hxx deleted file mode 100755 index 83f6cbc64..000000000 --- a/src/BlocksGUI/GEOM_BlocksGUI.hxx +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : GEOM_BlocksGUI.hxx -// Author : Alexander A. BORODIN -// Module : GEOM - -#ifndef _GEOM_BlocksGUI_HXX_ -#define _GEOM_BlocksGUI_HXX_ - -#ifdef WNT - #if defined BLOCKSGUI_EXPORTS - #if defined WIN32 - #define GEOM_BLOCKSGUI_EXPORT __declspec( dllexport ) - #else - #define GEOM_BLOCKSGUI_EXPORT - #endif - #else - #if defined WIN32 - #define GEOM_BLOCKSGUI_EXPORT __declspec( dllimport ) - #else - #define GEOM_BLOCKSGUI_EXPORT - #endif - #endif -#else - #define GEOM_BLOCKSGUI_EXPORT -#endif - -#endif diff --git a/src/BlocksGUI/Makefile.am b/src/BlocksGUI/Makefile.am index 0c1f70470..7ad9706cc 100644 --- a/src/BlocksGUI/Makefile.am +++ b/src/BlocksGUI/Makefile.am @@ -1,86 +1,88 @@ -# GEOM BUILDGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 CEA -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM BUILDGUI : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : BlockGUI # -# File : Makefile.in -# Author : Julia DOROVSKIKH (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header$ - include $(top_srcdir)/adm_local/unix/make_common_starter.am -# header files +# Headers files +salomeinclude_HEADERS = \ + BlocksGUI.h \ + BlocksGUI_QuadFaceDlg.h \ + BlocksGUI_BlockDlg.h \ + BlocksGUI_ExplodeDlg.h \ + BlocksGUI_PropagateDlg.h \ + BlocksGUI_TrsfDlg.h # Libraries targets lib_LTLIBRARIES = libBlocksGUI.la # Sources files -dist_libBlocksGUI_la_SOURCES = \ - BlocksGUI.cxx \ - BlocksGUI_QuadFaceDlg.cxx \ - BlocksGUI_BlockDlg.cxx \ - BlocksGUI_ExplodeDlg.cxx \ - BlocksGUI_PropagateDlg.cxx \ +dist_libBlocksGUI_la_SOURCES = \ + BlocksGUI.cxx \ + BlocksGUI_QuadFaceDlg.cxx \ + BlocksGUI_BlockDlg.cxx \ + BlocksGUI_ExplodeDlg.cxx \ + BlocksGUI_PropagateDlg.cxx \ BlocksGUI_TrsfDlg.cxx -MOC_FILES = \ - BlocksGUI_QuadFaceDlg_moc.cxx \ - BlocksGUI_BlockDlg_moc.cxx \ - BlocksGUI_ExplodeDlg_moc.cxx \ - BlocksGUI_PropagateDlg_moc.cxx \ +MOC_FILES = \ + BlocksGUI_QuadFaceDlg_moc.cxx \ + BlocksGUI_BlockDlg_moc.cxx \ + BlocksGUI_ExplodeDlg_moc.cxx \ + BlocksGUI_PropagateDlg_moc.cxx \ BlocksGUI_TrsfDlg_moc.cxx -nodist_libBlocksGUI_la_SOURCES= \ +nodist_libBlocksGUI_la_SOURCES = \ $(MOC_FILES) -#LIB_CLIENT_IDL = SALOME_Exception.idl SALOME_GenericObj.idl SALOME_Component.idl +# additional information to compile and link file -#LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libBlocksGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMFiltersSelection \ - -I$(top_builddir)/idl \ +libBlocksGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMFiltersSelection \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libBlocksGUI_la_LDFLAGS = \ - ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ - ../DlgRef/libDlgRef.la \ - ../GEOMBase/libGEOMBase.la \ - ../GEOMGUI/libGEOM.la \ +libBlocksGUI_la_LDFLAGS = \ + ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ + ../DlgRef/libDlgRef.la \ + ../GEOMBase/libGEOMBase.la \ + ../GEOMGUI/libGEOM.la \ $(QT_MT_LIBS) diff --git a/src/BooleanGUI/BooleanGUI.cxx b/src/BooleanGUI/BooleanGUI.cxx index 34ddff642..4284340e3 100644 --- a/src/BooleanGUI/BooleanGUI.cxx +++ b/src/BooleanGUI/BooleanGUI.cxx @@ -1,46 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BooleanGUI.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : BooleanGUI.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - - #include "BooleanGUI.h" - -#include "SUIT_Desktop.h" #include "BooleanGUI_Dialog.h" -#include "GeometryGUI.h" - -using namespace std; +#include +#include //======================================================================= // function : BooleanGUI() // purpose : Constructor //======================================================================= -BooleanGUI::BooleanGUI( GeometryGUI* parent ) : GEOMGUI( parent ) +BooleanGUI::BooleanGUI( GeometryGUI* parent ) + : GEOMGUI( parent ) { } @@ -57,7 +51,7 @@ BooleanGUI::~BooleanGUI() // function : OnGUIEvent() // purpose : //======================================================================= -bool BooleanGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) +bool BooleanGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { getGeometryGUI()->EmitSignalDeactivateDialog(); @@ -73,7 +67,7 @@ bool BooleanGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) else return false; - QDialog* aDlg = new BooleanGUI_Dialog( anOperation, getGeometryGUI(), parent, ""); + QDialog* aDlg = new BooleanGUI_Dialog( anOperation, getGeometryGUI(), parent ); aDlg->show(); return true; @@ -84,7 +78,9 @@ bool BooleanGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) //===================================================================================== extern "C" { -GEOM_BOOLEANGUI_EXPORT +#ifdef WIN32 + __declspec( dllexport ) +#endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { return new BooleanGUI( parent ); diff --git a/src/BooleanGUI/BooleanGUI.h b/src/BooleanGUI/BooleanGUI.h index 32d8f57e0..d4868c358 100644 --- a/src/BooleanGUI/BooleanGUI.h +++ b/src/BooleanGUI/BooleanGUI.h @@ -1,66 +1,46 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BooleanGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : BooleanGUI.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef BOOLEANGUI_H #define BOOLEANGUI_H -#include "GEOMGUI.h" - -#ifdef WNT - #if defined BOOLEANGUI_EXPORTS - #if defined WIN32 - #define GEOM_BOOLEANGUI_EXPORT __declspec( dllexport ) - #else - #define GEOM_BOOLEANGUI_EXPORT - #endif - #else - #if defined WIN32 - #define GEOM_BOOLEANGUI_EXPORT __declspec( dllimport ) - #else - #define GEOM_BOOLEANGUI_EXPORT - #endif - #endif -#else - #define GEOM_BOOLEANGUI_EXPORT -#endif +#include //================================================================================= // class : BooleanGUI // purpose : //================================================================================= -class GEOM_BOOLEANGUI_EXPORT BooleanGUI : public GEOMGUI +class BooleanGUI : public GEOMGUI { public: enum BooleanOperation { COMMON = 1, CUT = 2, FUSE = 3, SECTION = 4 }; - BooleanGUI( GeometryGUI* parent ); + BooleanGUI( GeometryGUI* ); ~BooleanGUI(); - bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent); + bool OnGUIEvent( int, SUIT_Desktop* ); }; -#endif +#endif // BOOLEANGUI_H diff --git a/src/BooleanGUI/BooleanGUI.pro b/src/BooleanGUI/BooleanGUI.pro new file mode 100644 index 000000000..8e4baf4a1 --- /dev/null +++ b/src/BooleanGUI/BooleanGUI.pro @@ -0,0 +1,61 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = BuildGUI +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +INCLUDEPATH += $${QT_INCLUDES} $${VTK_INCLUDES} $${CAS_CPPFLAGS} $${PYTHON_INCLUDES} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} $${CORBA_INCLUDES} ../GEOMGUI ../DlgRef ../GEOMBase ../OBJECT ../GEOMClient ../GEOMImpl ../GEOMFiltersSelection $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lGEOMBase + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += BOOLEANGUI_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +SOURCES = BooleanGUI.cxx +SOURCES += BooleanGUI_Dialog.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/BooleanGUI/BooleanGUI_Dialog.cxx b/src/BooleanGUI/BooleanGUI_Dialog.cxx index 39826043a..85e1f1990 100644 --- a/src/BooleanGUI/BooleanGUI_Dialog.cxx +++ b/src/BooleanGUI/BooleanGUI_Dialog.cxx @@ -1,42 +1,39 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BooleanGUI_Dialog.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : BooleanGUI_Dialog.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - -#include "BooleanGUI_Dialog.h" #include "BooleanGUI.h" -#include "DlgRef_2Sel_QTD.h" +#include "BooleanGUI_Dialog.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include - -using namespace std; +#include +#include +#include +#include //================================================================================= // class : BooleanGUI_Dialog() @@ -45,76 +42,77 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BooleanGUI_Dialog::BooleanGUI_Dialog( const int theOperation, GeometryGUI* theGeometryGUI, - QWidget* parent, const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, fl), - myOperation( theOperation ) +BooleanGUI_Dialog::BooleanGUI_Dialog (const int theOperation, GeometryGUI* theGeometryGUI, + QWidget* parent, bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myOperation(theOperation) { QPixmap image0; QString aTitle, aCaption; - switch ( myOperation ) - { - case BooleanGUI::COMMON: - image0 = QPixmap( SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_COMMON"))); - aTitle = tr("GEOM_COMMON"); - aCaption = tr("GEOM_COMMON_TITLE"); - setHelpFileName("common_operation_page.html"); - break; - case BooleanGUI::CUT: - image0 = QPixmap( SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CUT"))); - aTitle = tr("GEOM_CUT"); - aCaption = tr("GEOM_CUT_TITLE"); - setHelpFileName("cut_operation_page.html"); - break; - case BooleanGUI::FUSE: - image0 = QPixmap( SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_FUSE"))); - aTitle = tr("GEOM_FUSE"); - aCaption = tr("GEOM_FUSE_TITLE"); - setHelpFileName("fuse_operation_page.html"); - break; - case BooleanGUI::SECTION: - image0 = QPixmap( SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SECTION"))); - aTitle = tr("GEOM_SECTION"); - aCaption = tr("GEOM_SECTION_TITLE"); - setHelpFileName("section_opeartion_page.html"); - break; + switch (myOperation) { + case BooleanGUI::COMMON: + image0 = QPixmap(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_COMMON"))); + aTitle = tr("GEOM_COMMON"); + aCaption = tr("GEOM_COMMON_TITLE"); + setHelpFileName("common_operation_page.html"); + break; + case BooleanGUI::CUT: + image0 = QPixmap(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_CUT"))); + aTitle = tr("GEOM_CUT"); + aCaption = tr("GEOM_CUT_TITLE"); + setHelpFileName("cut_operation_page.html"); + break; + case BooleanGUI::FUSE: + image0 = QPixmap(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_FUSE"))); + aTitle = tr("GEOM_FUSE"); + aCaption = tr("GEOM_FUSE_TITLE"); + setHelpFileName("fuse_operation_page.html"); + break; + case BooleanGUI::SECTION: + image0 = QPixmap(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_SECTION"))); + aTitle = tr("GEOM_SECTION"); + aCaption = tr("GEOM_SECTION_TITLE"); + setHelpFileName("section_opeartion_page.html"); + break; } - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption( aCaption ); + setWindowTitle(aCaption); /***************************************************************/ - GroupConstructors->setTitle( aTitle ); - RadioButton1->setPixmap( image0 ); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(aTitle); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); + + myGroup = new DlgRef_2Sel(centralWidget()); - myGroup = new DlgRef_2Sel_QTD(this, "GroupCommon"); myGroup->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - if ( myOperation != BooleanGUI::CUT ) - { - myGroup->TextLabel1->setText(tr("GEOM_OBJECT_I").arg("1")); - myGroup->TextLabel2->setText(tr("GEOM_OBJECT_I").arg("2")); + if (myOperation != BooleanGUI::CUT) { + myGroup->TextLabel1->setText(tr("GEOM_OBJECT_I").arg(1)); + myGroup->TextLabel2->setText(tr("GEOM_OBJECT_I").arg(2)); } - else - { - myGroup->TextLabel1->setText(tr("GEOM_MAIN_OBJECT")); - myGroup->TextLabel2->setText(tr("GEOM_TOOL_OBJECT")); + else { + myGroup->TextLabel1->setText(tr("GEOM_MAIN_OBJECT")); + myGroup->TextLabel2->setText(tr("GEOM_TOOL_OBJECT")); } - - myGroup->PushButton1->setPixmap(image1); - myGroup->PushButton2->setPixmap(image1); - myGroup->LineEdit1->setReadOnly( true ); - myGroup->LineEdit2->setReadOnly( true ); - Layout1->addWidget(myGroup, 2, 0); + myGroup->PushButton1->setIcon(image1); + myGroup->PushButton2->setIcon(image1); + myGroup->LineEdit1->setReadOnly(true); + myGroup->LineEdit2->setReadOnly(true); + + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(myGroup); /***************************************************************/ - /* Initialisation */ + // Initialisation Init(); } - //================================================================================= // function : ~BooleanGUI_Dialog() // purpose : Destroys the object and frees any allocated resources @@ -123,19 +121,24 @@ BooleanGUI_Dialog::~BooleanGUI_Dialog() { } - //================================================================================= // function : Init() // purpose : //================================================================================= void BooleanGUI_Dialog::Init() { - /* init variables */ + mainFrame()->GroupBoxPublish->show(); + + // init variables myEditCurrentArgument = myGroup->LineEdit1; - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + myGroup->LineEdit1->setText(""); + myGroup->LineEdit2->setText(""); + myObject1 = myObject2 = GEOM::GEOM_Object::_nil(); + + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(myGroup->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(myGroup->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); @@ -143,77 +146,92 @@ void BooleanGUI_Dialog::Init() connect(myGroup->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(myGroup->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), + SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - initName( GroupConstructors->title() ); + initName(mainFrame()->GroupConstructors->title()); - setTabOrder (RadioButton1, ResultName ); - setTabOrder (ResultName, myGroup->PushButton1); - setTabOrder (myGroup->PushButton1, myGroup->PushButton2); - setTabOrder (myGroup->PushButton2, buttonOk); - setTabOrder (buttonOk, buttonApply); - setTabOrder (buttonApply, buttonCancel); - setTabOrder (buttonCancel, buttonHelp); + setTabOrder(mainFrame()->GroupConstructors, mainFrame()->GroupBoxName); + setTabOrder(mainFrame()->GroupBoxName, mainFrame()->GroupMedium); + setTabOrder(mainFrame()->GroupMedium, mainFrame()->GroupButtons); - RadioButton1->setFocus(); + mainFrame()->RadioButton1->setFocus(); - globalSelection( GEOM_ALLSHAPES ); + globalSelection(GEOM_ALLSHAPES); + + myGroup->PushButton1->click(); + SelectionIntoArgument(); } - //================================================================================= // function : ClickOnOk() // purpose : //================================================================================= void BooleanGUI_Dialog::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool BooleanGUI_Dialog::ClickOnApply() { - if ( !onAccept() ) - return false; + if (!onAccept()) + return false; initName(); + // activate selection and connect selection manager + myGroup->PushButton1->click(); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection has changed +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void BooleanGUI_Dialog::SelectionIntoArgument() { - myEditCurrentArgument->setText( "" ); + myEditCurrentArgument->setText(""); - if ( IObjectCount() != 1 ) - { - if ( myEditCurrentArgument == myGroup->LineEdit1 ) myObject1 = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == myGroup->LineEdit2 ) myObject2 = GEOM::GEOM_Object::_nil(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { + if (myEditCurrentArgument == myGroup->LineEdit1) myObject1 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == myGroup->LineEdit2) myObject2 = GEOM::GEOM_Object::_nil(); return; } // nbSel == 1 Standard_Boolean aRes = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes ); - if ( !CORBA::is_nil( aSelectedObject ) && aRes && GEOMBase::IsShape( aSelectedObject ) ) + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); + if (!CORBA::is_nil(aSelectedObject) && aRes && GEOMBase::IsShape(aSelectedObject)) { - myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) ); - if ( myEditCurrentArgument == myGroup->LineEdit1 ) myObject1 = aSelectedObject; - else if ( myEditCurrentArgument == myGroup->LineEdit2 ) myObject2 = aSelectedObject; + myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject)); + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (myEditCurrentArgument == myGroup->LineEdit1) { + myObject1 = aSelectedObject; + if (myObject2->_is_nil()) + myGroup->PushButton2->click(); + } + else if (myEditCurrentArgument == myGroup->LineEdit2) { + myObject2 = aSelectedObject; + if (myObject1->_is_nil()) + myGroup->PushButton1->click(); + } } } - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -222,14 +240,26 @@ void BooleanGUI_Dialog::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if ( send == myGroup->PushButton1 ) myEditCurrentArgument = myGroup->LineEdit1; - else if ( send == myGroup->PushButton2 ) myEditCurrentArgument = myGroup->LineEdit2; + if (send == myGroup->PushButton1) { + myEditCurrentArgument = myGroup->LineEdit1; + myGroup->PushButton2->setDown(false); + myGroup->LineEdit2->setEnabled(false); + } + else if (send == myGroup->PushButton2) { + myEditCurrentArgument = myGroup->LineEdit2; + + myGroup->PushButton1->setDown(false); + myGroup->LineEdit1->setEnabled(false); + } + + // enable line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); } - //================================================================================= // function : LineEditReturnPressed() // purpose : @@ -237,14 +267,12 @@ void BooleanGUI_Dialog::SetEditCurrentArgument() void BooleanGUI_Dialog::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if ( send == myGroup->LineEdit1 || send == myGroup->LineEdit2 ) - { + if (send == myGroup->LineEdit1 || send == myGroup->LineEdit2) { myEditCurrentArgument = send; GEOMBase_Skeleton::LineEditReturnPressed(); } } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -252,19 +280,19 @@ void BooleanGUI_Dialog::LineEditReturnPressed() void BooleanGUI_Dialog::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - globalSelection( GEOM_ALLSHAPES ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; -} + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + displayPreview(); +} //================================================================================= // function : enterEvent() // purpose : when mouse enter onto the QWidget //================================================================================= -void BooleanGUI_Dialog::enterEvent(QEvent * e) +void BooleanGUI_Dialog::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } @@ -274,35 +302,51 @@ void BooleanGUI_Dialog::enterEvent(QEvent * e) //================================================================================= GEOM::GEOM_IOperations_ptr BooleanGUI_Dialog::createOperation() { - return getGeomEngine()->GetIBooleanOperations( getStudyId() ); + return getGeomEngine()->GetIBooleanOperations(getStudyId()); } //================================================================================= // function : isValid // purpose : //================================================================================= -bool BooleanGUI_Dialog::isValid( QString& msg ) +bool BooleanGUI_Dialog::isValid (QString&) { - Handle(SALOME_InteractiveObject) IO = firstIObject(); - Standard_Boolean testResult; - GEOM::GEOM_Object_var anObject = GEOMBase::ConvertIOinGEOMObject( IO, testResult ); - if ( !testResult || anObject->_is_nil() ) - return false; + //Handle(SALOME_InteractiveObject) IO = firstIObject(); + //Standard_Boolean testResult; + //GEOM::GEOM_Object_var anObject = GEOMBase::ConvertIOinGEOMObject(IO, testResult); + //if (!testResult || anObject->_is_nil()) + // return false; - return !CORBA::is_nil( myObject1 ) && !CORBA::is_nil( myObject2 ); + return !CORBA::is_nil(myObject1) && !CORBA::is_nil(myObject2); } //================================================================================= // function : execute // purpose : //================================================================================= -bool BooleanGUI_Dialog::execute( ObjectList& objects ) +bool BooleanGUI_Dialog::execute (ObjectList& objects) { GEOM::GEOM_Object_var anObj; - - anObj = GEOM::GEOM_IBooleanOperations::_narrow( getOperation() )->MakeBoolean( myObject1, myObject2, myOperation ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + + anObj = GEOM::GEOM_IBooleanOperations::_narrow(getOperation())-> + MakeBoolean(myObject1, myObject2, myOperation); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); return true; } + +//================================================================================= +// function : restoreSubShapes +// purpose : +//================================================================================= +void BooleanGUI_Dialog::restoreSubShapes (SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject) +{ + if (mainFrame()->CheckBoxRestoreSS->isChecked()) { + // empty list of arguments means that all arguments should be restored + getGeomEngine()->RestoreSubShapesSO(theStudy, theSObject, GEOM::ListOfGO(), + /*theFindMethod=*/GEOM::FSM_GetInPlace, // ? GEOM::FSM_GetSame + /*theInheritFirstArg=*/myOperation == BooleanGUI::CUT); // ? false + } +} diff --git a/src/BooleanGUI/BooleanGUI_Dialog.h b/src/BooleanGUI/BooleanGUI_Dialog.h index e42fd2be2..c9ac5a5c2 100644 --- a/src/BooleanGUI/BooleanGUI_Dialog.h +++ b/src/BooleanGUI/BooleanGUI_Dialog.h @@ -1,76 +1,74 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BooleanGUI_Dialog.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BooleanGUI_Dialog.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef BOOLEANGUI_DIALOG_H +#define BOOLEANGUI_DIALOG_H -#ifndef BooleanGUI_Dialog_H -#define BooleanGUI_Dialog_H +#include -#include "BooleanGUI.h" //for wnt defines - -#include "GEOMBase_Skeleton.h" - -class DlgRef_2Sel_QTD; +class DlgRef_2Sel; //================================================================================= // class : BooleanGUI_Dialog // purpose : //================================================================================= -class GEOM_BOOLEANGUI_EXPORT BooleanGUI_Dialog : public GEOMBase_Skeleton +class BooleanGUI_Dialog : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BooleanGUI_Dialog( const int theOperation, GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BooleanGUI_Dialog(); - + BooleanGUI_Dialog( const int, GeometryGUI*, QWidget* = 0, + bool = false, Qt::WindowFlags = 0 ); + ~BooleanGUI_Dialog(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void restoreSubShapes( SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr ); private: - int myOperation; - - void Init(); - void enterEvent(QEvent * e); - - GEOM::GEOM_Object_var myObject1; - GEOM::GEOM_Object_var myObject2; - - DlgRef_2Sel_QTD* myGroup; + void Init(); + void enterEvent( QEvent* ); + +private: + int myOperation; + + GEOM::GEOM_Object_var myObject1; + GEOM::GEOM_Object_var myObject2; + + DlgRef_2Sel* myGroup; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void SetEditCurrentArgument(); - void SelectionIntoArgument(); - void LineEditReturnPressed(); - void ActivateThisDialog(); + void ClickOnOk(); + bool ClickOnApply(); + void SetEditCurrentArgument(); + void SelectionIntoArgument(); + void LineEditReturnPressed(); + void ActivateThisDialog(); }; -#endif // BooleanGUI_Dialog_H +#endif // BOOLEANGUI_DIALOG_H diff --git a/src/BooleanGUI/Makefile.am b/src/BooleanGUI/Makefile.am index fd149c69c..fbea57437 100644 --- a/src/BooleanGUI/Makefile.am +++ b/src/BooleanGUI/Makefile.am @@ -1,75 +1,75 @@ -# GEOM BOOLEANGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM BOOLEANGUI : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : BooleanGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files +salomeinclude_HEADERS = \ + BooleanGUI.h \ + BooleanGUI_Dialog.h # Libraries targets lib_LTLIBRARIES = libBooleanGUI.la # Sources files -dist_libBooleanGUI_la_SOURCES = \ - BooleanGUI.cxx \ +dist_libBooleanGUI_la_SOURCES = \ + BooleanGUI.h \ + BooleanGUI_Dialog.h \ + \ + BooleanGUI.cxx \ BooleanGUI_Dialog.cxx -MOC_FILES = \ +MOC_FILES = \ BooleanGUI_Dialog_moc.cxx -nodist_libBooleanGUI_la_SOURCES= \ +nodist_libBooleanGUI_la_SOURCES = \ $(MOC_FILES) -#LIB_CLIENT_IDL = SALOME_Exception.idl SALOME_GenericObj.idl SALOME_Component.idl +# additional information to compile and link file -#LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libBooleanGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMFiltersSelection \ - -I$(top_builddir)/idl \ +libBooleanGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMFiltersSelection \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libBooleanGUI_la_LDFLAGS = \ +libBooleanGUI_la_LDFLAGS = \ ../GEOMBase/libGEOMBase.la diff --git a/src/BuildGUI/BuildGUI.cxx b/src/BuildGUI/BuildGUI.cxx index a9d443817..643cbf11a 100644 --- a/src/BuildGUI/BuildGUI.cxx +++ b/src/BuildGUI/BuildGUI.cxx @@ -1,37 +1,32 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BooleanGUI.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : BooleanGUI.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "BuildGUI.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" - -#include "SalomeApp_Application.h" +#include +#include #include "BuildGUI_EdgeDlg.h" // Method EDGE #include "BuildGUI_WireDlg.h" // Method WIRE @@ -40,14 +35,14 @@ #include "BuildGUI_SolidDlg.h" // Method SOLID #include "BuildGUI_CompoundDlg.h" // Method COMPOUND -#include "GeometryGUI.h" +#include //======================================================================= // function : BuildGUI() // purpose : Constructor //======================================================================= BuildGUI::BuildGUI( GeometryGUI* parent ) -: GEOMGUI( parent ) + : GEOMGUI( parent ) { } @@ -68,24 +63,25 @@ bool BuildGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { getGeometryGUI()->EmitSignalDeactivateDialog(); - QDialog* aDlg = NULL; + QDialog* aDlg = 0; - switch ( theCommandID ) - { - case 4081: aDlg = new BuildGUI_EdgeDlg ( getGeometryGUI(), parent, "" ); break; - case 4082: aDlg = new BuildGUI_WireDlg ( getGeometryGUI(), parent, "" ); break; - case 4083: aDlg = new BuildGUI_FaceDlg ( getGeometryGUI(), parent, "" ); break; - case 4084: aDlg = new BuildGUI_ShellDlg ( getGeometryGUI(), parent, "" ); break; - case 4085: aDlg = new BuildGUI_SolidDlg ( getGeometryGUI(), parent, "" ); break; - case 4086: aDlg = new BuildGUI_CompoundDlg( getGeometryGUI(), parent, "" ); break; - - default: - getGeometryGUI()->getApp()->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); - break; + switch ( theCommandID ) { + case 4081: aDlg = new BuildGUI_EdgeDlg ( getGeometryGUI(), parent ); break; + case 4082: aDlg = new BuildGUI_WireDlg ( getGeometryGUI(), parent ); break; + case 4083: aDlg = new BuildGUI_FaceDlg ( getGeometryGUI(), parent ); break; + case 4084: aDlg = new BuildGUI_ShellDlg ( getGeometryGUI(), parent ); break; + case 4085: aDlg = new BuildGUI_SolidDlg ( getGeometryGUI(), parent ); break; + case 4086: aDlg = new BuildGUI_CompoundDlg( getGeometryGUI(), parent ); break; + default: + getGeometryGUI()->getApp()->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); + break; } - - if ( aDlg != NULL ) + + if ( aDlg ) { + aDlg->updateGeometry(); + aDlg->resize( aDlg->minimumSizeHint() ); aDlg->show(); + } return true; } @@ -95,7 +91,9 @@ bool BuildGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) //===================================================================================== extern "C" { - GEOM_BUILDGUI_EXPORT +#ifdef WIN32 + __declspec( dllexport ) +#endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { return new BuildGUI( parent ); diff --git a/src/BuildGUI/BuildGUI.h b/src/BuildGUI/BuildGUI.h index 60e57a347..1ae6aed71 100644 --- a/src/BuildGUI/BuildGUI.h +++ b/src/BuildGUI/BuildGUI.h @@ -1,48 +1,44 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : BuildGUI.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef BUILDGUI_H #define BUILDGUI_H -#include "GEOM_BuildGUI.hxx" - -#include "GEOMGUI.h" +#include //================================================================================= // class : BuildGUI // purpose : //================================================================================= -class GEOM_BUILDGUI_EXPORT BuildGUI : public GEOMGUI +class BuildGUI : public GEOMGUI { public : - BuildGUI( GeometryGUI* parent ); + BuildGUI( GeometryGUI* ); ~BuildGUI(); - bool OnGUIEvent( int theCommandID, SUIT_Desktop* parent ); + bool OnGUIEvent( int, SUIT_Desktop* ); }; -#endif +#endif // BUILDGUI_H diff --git a/src/BuildGUI/BuildGUI.pro b/src/BuildGUI/BuildGUI.pro new file mode 100644 index 000000000..4e3ff52c9 --- /dev/null +++ b/src/BuildGUI/BuildGUI.pro @@ -0,0 +1,66 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = BuildGUI +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +INCLUDEPATH += $${QT_INCLUDES} $${VTK_INCLUDES} $${CAS_CPPFLAGS} $${PYTHON_INCLUDES} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} $${CORBA_INCLUDES} ../GEOMGUI ../DlgRef ../GEOMBase ../OBJECT ../GEOMClient ../GEOMImpl ../GEOMFiltersSelection $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lGEOMFiltersSelection -lGEOMBase + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += BUILDGUI_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +SOURCES = BuildGUI.cxx +SOURCES += BuildGUI_EdgeDlg.cxx +SOURCES += BuildGUI_WireDlg.cxx +SOURCES += BuildGUI_FaceDlg.cxx +SOURCES += BuildGUI_ShellDlg.cxx +SOURCES += BuildGUI_SolidDlg.cxx +SOURCES += BuildGUI_CompoundDlg.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/BuildGUI/BuildGUI_CompoundDlg.cxx b/src/BuildGUI/BuildGUI_CompoundDlg.cxx index 4ea4ca696..66ec085eb 100644 --- a/src/BuildGUI/BuildGUI_CompoundDlg.cxx +++ b/src/BuildGUI/BuildGUI_CompoundDlg.cxx @@ -1,39 +1,40 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_CompoundDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : BuildGUI_CompoundDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "BuildGUI_CompoundDlg.h" -#include "GEOMImpl_Types.hxx" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include +#include + +#include +#include +#include +#include //================================================================================= // class : BuildGUI_CompoundDlg() @@ -42,29 +43,32 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BuildGUI_CompoundDlg::BuildGUI_CompoundDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BuildGUI_CompoundDlg::BuildGUI_CompoundDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) + : GEOMBase_Skeleton( theGeometryGUI, parent ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_BUILD_COMPOUND"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_BUILD_COMPOUND" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_COMPOUND_TITLE")); + setWindowTitle( tr( "GEOM_COMPOUND_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_COMPOUND")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_COMPOUND" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupShapes = new DlgRef_1Sel_QTD(this, "GroupShapes"); - GroupShapes->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - GroupShapes->TextLabel1->setText(tr("GEOM_OBJECTS")); - GroupShapes->PushButton1->setPixmap(image1); + GroupShapes = new DlgRef_1Sel( centralWidget() ); + + GroupShapes->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + GroupShapes->TextLabel1->setText( tr( "GEOM_OBJECTS" ) ); + GroupShapes->PushButton1->setIcon( image1 ); GroupShapes->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupShapes, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupShapes ); /***************************************************************/ setHelpFileName("create_compound_page.html"); @@ -96,12 +100,14 @@ void BuildGUI_CompoundDlg::Init() myOkShapes = false; + mainFrame()->GroupBoxPublish->show(); + /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupShapes->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( GroupShapes->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( ( (SalomeApp_Application*)(SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL(currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); globalSelection( GEOM_ALLSHAPES ); @@ -143,14 +149,18 @@ void BuildGUI_CompoundDlg::SelectionIntoArgument() myEditCurrentArgument->setText( "" ); QString aString = ""; /* name of selection */ + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + myOkShapes = false; - int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString, true ); + int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString, true); if ( nbSel == 0 ) return; if ( nbSel != 1 ) aString = QString( "%1_objects").arg( nbSel ); - GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myShapes, true ); + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myShapes, true); myEditCurrentArgument->setText( aString ); myOkShapes = true; } @@ -163,7 +173,7 @@ void BuildGUI_CompoundDlg::SelectionIntoArgument() void BuildGUI_CompoundDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if (send != GroupShapes->PushButton1) + if ( send != GroupShapes->PushButton1 ) return; myEditCurrentArgument = GroupShapes->LineEdit1; @@ -181,8 +191,8 @@ void BuildGUI_CompoundDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); globalSelection( GEOM_ALLSHAPES ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); } @@ -192,7 +202,7 @@ void BuildGUI_CompoundDlg::ActivateThisDialog() //================================================================================= void BuildGUI_CompoundDlg::enterEvent(QEvent* e) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -229,3 +239,18 @@ bool BuildGUI_CompoundDlg::execute( ObjectList& objects ) return true; } + +//================================================================================= +// function : restoreSubShapes +// purpose : +//================================================================================= +void BuildGUI_CompoundDlg::restoreSubShapes( SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject ) +{ + if ( mainFrame()->CheckBoxRestoreSS->isChecked() ) { + // empty list of arguments means that all arguments should be restored + getGeomEngine()->RestoreSubShapesSO( theStudy, theSObject, GEOM::ListOfGO(), + /*theFindMethod=*/GEOM::FSM_GetSame, // ? GEOM::FSM_GetInPlace + /*theInheritFirstArg=*/false ); + } +} diff --git a/src/BuildGUI/BuildGUI_CompoundDlg.h b/src/BuildGUI/BuildGUI_CompoundDlg.h index 31182622c..4aa6de210 100644 --- a/src/BuildGUI/BuildGUI_CompoundDlg.h +++ b/src/BuildGUI/BuildGUI_CompoundDlg.h @@ -1,72 +1,70 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : GEOMBase_CompoundDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_CompoundDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef BUILDGUI_COMPOUNDDLG_H +#define BUILDGUI_COMPOUNDDLG_H -#ifndef DIALOGBOX_COMPOUND_H -#define DIALOGBOX_COMPOUND_H +#include -#include "GEOM_BuildGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_QTD.h" +class DlgRef_1Sel; //================================================================================= // class : BuildGUI_CompoundDlg // purpose : //================================================================================= -class GEOM_BUILDGUI_EXPORT BuildGUI_CompoundDlg : public GEOMBase_Skeleton +class BuildGUI_CompoundDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BuildGUI_CompoundDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BuildGUI_CompoundDlg(); + BuildGUI_CompoundDlg( GeometryGUI*, QWidget* = 0 ); + ~BuildGUI_CompoundDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void restoreSubShapes( SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr ); private: - void Init(); - void enterEvent(QEvent* e); - - GEOM::ListOfGO myShapes; - bool myOkShapes; - - DlgRef_1Sel_QTD* GroupShapes; + void Init(); + void enterEvent( QEvent* ); + +private: + GEOM::ListOfGO myShapes; + bool myOkShapes; + + DlgRef_1Sel* GroupShapes; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_COMPOUND_H +#endif // BUILDGUI_COMPOUNDDLG_H diff --git a/src/BuildGUI/BuildGUI_EdgeDlg.cxx b/src/BuildGUI/BuildGUI_EdgeDlg.cxx index 6403242ce..1548635f4 100644 --- a/src/BuildGUI/BuildGUI_EdgeDlg.cxx +++ b/src/BuildGUI/BuildGUI_EdgeDlg.cxx @@ -1,193 +1,236 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_EdgeDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : BuildGUI_EdgeDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "BuildGUI_EdgeDlg.h" -#include -#include +#include +#include +#include -#include "utilities.h" -#include "GEOMImpl_Types.hxx" +#include +#include +#include +#include -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" - -#include +#include //================================================================================= // class : BuildGUI_EdgeDlg() -// purpose : Constructs a BuildGUI_EdgeDlg which is a child of 'parent', with the +// purpose : Constructs a BuildGUI_EdgeDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BuildGUI_EdgeDlg::BuildGUI_EdgeDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BuildGUI_EdgeDlg::BuildGUI_EdgeDlg (GeometryGUI* theGeometryGUI, QWidget* parent) + : GEOMBase_Skeleton(theGeometryGUI, parent) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_BUILD_EDGE"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_BUILD_EDGE"))); + QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_EDGE_TITLE")); + setWindowTitle(tr("GEOM_EDGE_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_EDGE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_EDGE")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); + + GroupPoints = new DlgRef_2Sel(centralWidget()); - GroupPoints = new DlgRef_2Sel_QTD(this, "GroupPoints"); GroupPoints->GroupBox1->setTitle(tr("GEOM_POINTS")); - GroupPoints->TextLabel1->setText(tr("GEOM_POINT_I").arg("1")); - GroupPoints->TextLabel2->setText(tr("GEOM_POINT_I").arg("2")); - GroupPoints->PushButton1->setPixmap(image1); - GroupPoints->PushButton2->setPixmap(image1); - - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); + GroupPoints->TextLabel1->setText(tr("GEOM_POINT_I").arg(1)); + GroupPoints->TextLabel2->setText(tr("GEOM_POINT_I").arg(2)); + GroupPoints->PushButton1->setIcon(image1); + GroupPoints->PushButton2->setIcon(image1); - Layout1->addWidget(GroupPoints, 2, 0); + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); + + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); /***************************************************************/ setHelpFileName("create_edge_page.html"); - /* Initialisations */ + // Initialisation Init(); } - //================================================================================= // function : ~BuildGUI_EdgeDlg() // purpose : Destroys the object and frees any allocated resources //================================================================================= BuildGUI_EdgeDlg::~BuildGUI_EdgeDlg() { - // no need to delete child widgets, Qt does it all for us + // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void BuildGUI_EdgeDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); + // init variables + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); myOkPoint1 = myOkPoint2 = false; - globalSelection( GEOM_POINT ); - - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; - initName( tr( "GEOM_EDGE") ); + initName(tr("GEOM_EDGE")); + + GroupPoints->PushButton1->click(); + SelectionIntoArgument(); } - //================================================================================= // function : ClickOnOk() // purpose : //================================================================================= void BuildGUI_EdgeDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool BuildGUI_EdgeDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); + // activate selection and connect selection manager + GroupPoints->PushButton1->click(); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void BuildGUI_EdgeDlg::SelectionIntoArgument() { erasePreview(); myEditCurrentArgument->setText(""); - - if(IObjectCount() != 1) { - if(myEditCurrentArgument == GroupPoints->LineEdit1) + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { + if (myEditCurrentArgument == GroupPoints->LineEdit1) myOkPoint1 = false; - else if(myEditCurrentArgument == GroupPoints->LineEdit2) + else if (myEditCurrentArgument == GroupPoints->LineEdit2) myOkPoint2 = false; return; } - + // nbSel == 1 Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult ); - - if(!testResult) + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (!testResult || aSelectedObject->_is_nil()) return; - if(myEditCurrentArgument == GroupPoints->LineEdit1) { + myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject)); + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { myPoint1 = aSelectedObject; myOkPoint1 = true; + if (!myOkPoint2) + GroupPoints->PushButton2->click(); } - else if(myEditCurrentArgument == GroupPoints->LineEdit2) { + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { myPoint2 = aSelectedObject; myOkPoint2 = true; + if (!myOkPoint1) + GroupPoints->PushButton1->click(); } - - myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) ); - + displayPreview(); } +//================================================================================= +// function : SetEditCurrentArgument() +// purpose : +//================================================================================= +void BuildGUI_EdgeDlg::SetEditCurrentArgument() +{ + QPushButton* send = (QPushButton*)sender(); + //globalSelection();//?? + + if (send == GroupPoints->PushButton1) { + myEditCurrentArgument = GroupPoints->LineEdit1; + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + } + else if (send == GroupPoints->PushButton2) { + myEditCurrentArgument = GroupPoints->LineEdit2; + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + } + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(GEOM_POINT); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); +} //================================================================================= // function : LineEditReturnPressed() @@ -196,38 +239,12 @@ void BuildGUI_EdgeDlg::SelectionIntoArgument() void BuildGUI_EdgeDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || send == GroupPoints->LineEdit2) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } -} - - -//================================================================================= -// function : SetEditCurrentArgument() -// purpose : -//================================================================================= -void BuildGUI_EdgeDlg::SetEditCurrentArgument() -{ - - QPushButton* send = (QPushButton*)sender(); - globalSelection(); - - if(send == GroupPoints->PushButton1) { - myEditCurrentArgument = GroupPoints->LineEdit1; - globalSelection( GEOM_POINT ); + if (send == GroupPoints->LineEdit1 || send == GroupPoints->LineEdit2) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); } - else if(send == GroupPoints->PushButton2) { - myEditCurrentArgument = GroupPoints->LineEdit2; - globalSelection( GEOM_POINT ); - } - - myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -235,20 +252,20 @@ void BuildGUI_EdgeDlg::SetEditCurrentArgument() void BuildGUI_EdgeDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; - globalSelection( GEOM_POINT ); + + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + displayPreview(); } - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void BuildGUI_EdgeDlg::enterEvent(QEvent* e) +void BuildGUI_EdgeDlg::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } @@ -258,14 +275,14 @@ void BuildGUI_EdgeDlg::enterEvent(QEvent* e) //================================================================================= GEOM::GEOM_IOperations_ptr BuildGUI_EdgeDlg::createOperation() { - return getGeomEngine()->GetIShapesOperations( getStudyId() ); + return getGeomEngine()->GetIShapesOperations(getStudyId()); } //================================================================================= // function : isValid // purpose : //================================================================================= -bool BuildGUI_EdgeDlg::isValid( QString& ) +bool BuildGUI_EdgeDlg::isValid (QString&) { return myOkPoint1 && myOkPoint2; } @@ -274,14 +291,14 @@ bool BuildGUI_EdgeDlg::isValid( QString& ) // function : execute // purpose : //================================================================================= -bool BuildGUI_EdgeDlg::execute( ObjectList& objects ) +bool BuildGUI_EdgeDlg::execute (ObjectList& objects) { GEOM::GEOM_Object_var anObj; - anObj = GEOM::GEOM_IShapesOperations::_narrow( getOperation() )->MakeEdge( myPoint1, myPoint2 ); + anObj = GEOM::GEOM_IShapesOperations::_narrow(getOperation())->MakeEdge(myPoint1, myPoint2); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); return true; } diff --git a/src/BuildGUI/BuildGUI_EdgeDlg.h b/src/BuildGUI/BuildGUI_EdgeDlg.h index 3a7b7b2b5..17dda7703 100644 --- a/src/BuildGUI/BuildGUI_EdgeDlg.h +++ b/src/BuildGUI/BuildGUI_EdgeDlg.h @@ -1,74 +1,71 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BuildGUI_EdgeDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_EdgeDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef BUILDGUI_EDGEDLG_H +#define BUILDGUI_EDGEDLG_H -#ifndef DIALOGBOX_EDGE_H -#define DIALOGBOX_EDGE_H +#include -#include "GEOM_BuildGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel_QTD.h" +class DlgRef_2Sel; //================================================================================= // class : BuildGUI_EdgeDlg // purpose : //================================================================================= -class GEOM_BUILDGUI_EXPORT BuildGUI_EdgeDlg : public GEOMBase_Skeleton +class BuildGUI_EdgeDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BuildGUI_EdgeDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BuildGUI_EdgeDlg(); + BuildGUI_EdgeDlg( GeometryGUI*, QWidget* = 0 ); + ~BuildGUI_EdgeDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); private: - void Init(); - void enterEvent(QEvent* e); - - GEOM::GEOM_Object_var myPoint1, myPoint2; /* Points containing the edge */ - bool myOkPoint1; /* true when myPoint is defined */ - bool myOkPoint2; - - DlgRef_2Sel_QTD* GroupPoints; + void Init(); + void enterEvent( QEvent* ); + +private: + GEOM::GEOM_Object_var myPoint1, myPoint2; /* Points containing the edge */ + bool myOkPoint1; /* true when myPoint is defined */ + bool myOkPoint2; + + DlgRef_2Sel* GroupPoints; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_EDGE_H +#endif // BUILDGUI_EDGEDLG_H diff --git a/src/BuildGUI/BuildGUI_FaceDlg.cxx b/src/BuildGUI/BuildGUI_FaceDlg.cxx index a008a721f..e1adb30c6 100644 --- a/src/BuildGUI/BuildGUI_FaceDlg.cxx +++ b/src/BuildGUI/BuildGUI_FaceDlg.cxx @@ -1,44 +1,41 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_FaceDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : BuildGUI_FaceDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "BuildGUI_FaceDlg.h" -#include "GEOMImpl_Types.hxx" -#include "TColStd_MapOfInteger.hxx" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include -//Qt includes -#include -#include +#include +#include +#include -using namespace std; +#include +#include +#include +#include //================================================================================= // class : BuildGUI_FaceDlg() @@ -47,29 +44,32 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BuildGUI_FaceDlg::BuildGUI_FaceDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BuildGUI_FaceDlg::BuildGUI_FaceDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) + : GEOMBase_Skeleton( theGeometryGUI, parent ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_BUILD_FACE"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_BUILD_FACE" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_FACE_TITLE")); + setWindowTitle( tr( "GEOM_FACE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_FACE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_FACE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupWire = new DlgRef_1Sel1Check_QTD(this, "GroupWire"); - GroupWire->GroupBox1->setTitle(tr("GEOM_FACE_FFW")); - GroupWire->TextLabel1->setText(tr("GEOM_OBJECTS")); - GroupWire->CheckButton1->setText(tr("GEOM_FACE_OPT")); - GroupWire->PushButton1->setPixmap(image1); + GroupWire = new DlgRef_1Sel1Check( centralWidget() ); - Layout1->addWidget(GroupWire, 2, 0); + GroupWire->GroupBox1->setTitle( tr( "GEOM_FACE_FFW" ) ); + GroupWire->TextLabel1->setText( tr( "GEOM_OBJECTS" ) ); + GroupWire->CheckButton1->setText( tr( "GEOM_FACE_OPT" ) ); + GroupWire->PushButton1->setIcon( image1 ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupWire ); /***************************************************************/ setHelpFileName("create_face_page.html"); @@ -99,7 +99,7 @@ void BuildGUI_FaceDlg::Init() myEditCurrentArgument = GroupWire->LineEdit1; GroupWire->LineEdit1->setReadOnly( true ); - GroupWire->CheckButton1->setChecked(TRUE); + GroupWire->CheckButton1->setChecked( true ); TColStd_MapOfInteger aMap; aMap.Add( GEOM_EDGE ); @@ -107,14 +107,14 @@ void BuildGUI_FaceDlg::Init() globalSelection( aMap ); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupWire->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupWire->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( GroupWire->LineEdit1, SIGNAL( returnPressed()), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupWire->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); - initName(tr("GEOM_FACE")); + initName( tr( "GEOM_FACE" ) ); } @@ -149,24 +149,25 @@ bool BuildGUI_FaceDlg::ClickOnApply() //================================================================================= void BuildGUI_FaceDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); QString aName; - int aNbSel = GEOMBase::GetNameOfSelectedIObjects(selectedIO(), aName); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName); - if(aNbSel < 1) - { - myWires.length(0); - return; - } - - GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), myWires); - if (!myWires.length()) + if ( aNbSel < 1) { + myWires.length(0); return; - if(aNbSel != 1) - aName = tr("%1_objects").arg(aNbSel); + } - myEditCurrentArgument->setText( aName ); + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myWires); + if ( !myWires.length() ) + return; + if ( aNbSel != 1 ) + aName = tr( "%1_objects" ).arg( aNbSel ); myEditCurrentArgument->setText( aName ); } @@ -179,7 +180,7 @@ void BuildGUI_FaceDlg::SelectionIntoArgument() void BuildGUI_FaceDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if (send != GroupWire->PushButton1) + if ( send != GroupWire->PushButton1 ) return; TColStd_MapOfInteger aMap; @@ -201,8 +202,8 @@ void BuildGUI_FaceDlg::SetEditCurrentArgument() void BuildGUI_FaceDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); TColStd_MapOfInteger aMap; aMap.Add( GEOM_EDGE ); aMap.Add( GEOM_WIRE ); @@ -214,9 +215,9 @@ void BuildGUI_FaceDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void BuildGUI_FaceDlg::enterEvent(QEvent* e) +void BuildGUI_FaceDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -235,7 +236,7 @@ GEOM::GEOM_IOperations_ptr BuildGUI_FaceDlg::createOperation() //================================================================================= bool BuildGUI_FaceDlg::isValid( QString& ) { - return (myWires.length() != 0); + return ( myWires.length() != 0 ); } //================================================================================= diff --git a/src/BuildGUI/BuildGUI_FaceDlg.h b/src/BuildGUI/BuildGUI_FaceDlg.h index 734cbc2f3..12bd7d713 100644 --- a/src/BuildGUI/BuildGUI_FaceDlg.h +++ b/src/BuildGUI/BuildGUI_FaceDlg.h @@ -1,71 +1,68 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BuildGUI_FaceDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_FaceDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef BUILDGUI_FACEDLG_H +#define BUILDGUI_FACEDLG_H -#ifndef DIALOGBOX_FACE_H -#define DIALOGBOX_FACE_H +#include -#include "GEOM_BuildGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel1Check_QTD.h" +class DlgRef_1Sel1Check; //================================================================================= // class : BuildGUI_FaceDlg // purpose : //================================================================================= -class GEOM_BUILDGUI_EXPORT BuildGUI_FaceDlg : public GEOMBase_Skeleton +class BuildGUI_FaceDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BuildGUI_FaceDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BuildGUI_FaceDlg(); + BuildGUI_FaceDlg( GeometryGUI*, QWidget* = 0 ); + ~BuildGUI_FaceDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); - + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + private: - void Init(); - void enterEvent(QEvent* e); - - GEOM::ListOfGO myWires; - - DlgRef_1Sel1Check_QTD* GroupWire; + void Init(); + void enterEvent( QEvent* ); + +private: + GEOM::ListOfGO myWires; + + DlgRef_1Sel1Check* GroupWire; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_FACE_H +#endif // BUILDGUI_FACEDLG_H diff --git a/src/BuildGUI/BuildGUI_ShellDlg.cxx b/src/BuildGUI/BuildGUI_ShellDlg.cxx index 99c99f03f..bd1cb125a 100644 --- a/src/BuildGUI/BuildGUI_ShellDlg.cxx +++ b/src/BuildGUI/BuildGUI_ShellDlg.cxx @@ -1,41 +1,42 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_ShellDlg.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// File : BuildGUI_ShellDlg.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "BuildGUI_ShellDlg.h" -#include "GEOMImpl_Types.hxx" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include "TColStd_MapOfInteger.hxx" +#include -#include +#include +#include +#include +#include + +#include //================================================================================= // class : BuildGUI_ShellDlg() @@ -44,29 +45,32 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BuildGUI_ShellDlg::BuildGUI_ShellDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BuildGUI_ShellDlg::BuildGUI_ShellDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) + : GEOMBase_Skeleton( theGeometryGUI, parent ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_BUILD_SHELL"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_BUILD_SHELL" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_SHELL_TITLE")); + setWindowTitle( tr( "GEOM_SHELL_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_SHELL")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_SHELL" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupShell = new DlgRef_1Sel_QTD(this, "GroupShell"); - GroupShell->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - GroupShell->TextLabel1->setText(tr("GEOM_OBJECTS")); - GroupShell->PushButton1->setPixmap(image1); + GroupShell = new DlgRef_1Sel( centralWidget() ); + + GroupShell->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + GroupShell->TextLabel1->setText( tr( "GEOM_OBJECTS" ) ); + GroupShell->PushButton1->setIcon( image1 ); GroupShell->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupShell, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupShell ); /***************************************************************/ setHelpFileName("create_shell_page.html"); @@ -99,20 +103,25 @@ void BuildGUI_ShellDlg::Init() myOkFacesAndShells = false; TColStd_MapOfInteger aMap; - aMap.Add(GEOM_SHELL); - aMap.Add(GEOM_FACE); - globalSelection( aMap ); + aMap.Add( GEOM_SHELL ); + aMap.Add( GEOM_FACE ); + aMap.Add( GEOM_COMPOUNDFILTER ); + + QList aSubShapes; + aSubShapes.append( GEOM_FACE ); + globalSelection( aMap, aSubShapes ); + /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupShell->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( GroupShell->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); - initName(tr("GEOM_SHELL")); + initName( tr( "GEOM_SHELL" ) ); } @@ -150,14 +159,18 @@ void BuildGUI_ShellDlg::SelectionIntoArgument() myEditCurrentArgument->setText( "" ); QString aString; + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + myOkFacesAndShells = false; - int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString, true ); + int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString, true); if ( nbSel == 0 ) return; if ( nbSel != 1 ) aString = QString( "%1_objects ").arg( nbSel ); - GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myFacesAndShells, true ); + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myFacesAndShells, true); if ( !myFacesAndShells.length() ) return; @@ -173,13 +186,18 @@ void BuildGUI_ShellDlg::SelectionIntoArgument() void BuildGUI_ShellDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if (send != GroupShell->PushButton1) + if ( send != GroupShell->PushButton1 ) return; TColStd_MapOfInteger aMap; - aMap.Add(GEOM_SHELL); - aMap.Add(GEOM_FACE); - globalSelection( aMap ); + aMap.Add( GEOM_SHELL ); + aMap.Add( GEOM_FACE ); + aMap.Add( GEOM_COMPOUNDFILTER ); + + QList aSubShapes; + aSubShapes.append( GEOM_FACE ); + globalSelection( aMap, aSubShapes ); + myEditCurrentArgument = GroupShell->LineEdit1; myEditCurrentArgument->setFocus(); @@ -194,12 +212,16 @@ void BuildGUI_ShellDlg::SetEditCurrentArgument() void BuildGUI_ShellDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); TColStd_MapOfInteger aMap; - aMap.Add(GEOM_SHELL); - aMap.Add(GEOM_FACE); - globalSelection( aMap ); + aMap.Add( GEOM_SHELL ); + aMap.Add( GEOM_FACE ); + aMap.Add( GEOM_COMPOUNDFILTER ); + + QList aSubShapes; + aSubShapes.append( GEOM_FACE ); + globalSelection( aMap, aSubShapes ); } @@ -207,9 +229,9 @@ void BuildGUI_ShellDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void BuildGUI_ShellDlg::enterEvent(QEvent* e) +void BuildGUI_ShellDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } diff --git a/src/BuildGUI/BuildGUI_ShellDlg.h b/src/BuildGUI/BuildGUI_ShellDlg.h index 8c1132468..d611afe24 100644 --- a/src/BuildGUI/BuildGUI_ShellDlg.h +++ b/src/BuildGUI/BuildGUI_ShellDlg.h @@ -1,72 +1,69 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BuildGUI_ShellDlg.h -// Author : Damien COQUERET -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_ShellDlg.h +// Author : Damien COQUERET, Open CASCADE S.A.S. +// +#ifndef BUILDGUI_SHELLDLG_H +#define BUILDGUI_SHELLDLG_H -#ifndef DIALOGBOX_SHELL_H -#define DIALOGBOX_SHELL_H +#include -#include "GEOM_BuildGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_QTD.h" +class DlgRef_1Sel; //================================================================================= // class : BuildGUI_ShellDlg // purpose : //================================================================================= -class GEOM_BUILDGUI_EXPORT BuildGUI_ShellDlg : public GEOMBase_Skeleton +class BuildGUI_ShellDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BuildGUI_ShellDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BuildGUI_ShellDlg(); + BuildGUI_ShellDlg( GeometryGUI*, QWidget* = 0 ); + ~BuildGUI_ShellDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); private: - void Init(); - void enterEvent(QEvent * e); + void Init(); + void enterEvent( QEvent* ); - GEOM::ListOfGO myFacesAndShells; - bool myOkFacesAndShells; /* to check when arguments is defined */ - - DlgRef_1Sel_QTD* GroupShell; +private: + GEOM::ListOfGO myFacesAndShells; + bool myOkFacesAndShells;/* to check when arguments is defined */ + + DlgRef_1Sel* GroupShell; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void SetEditCurrentArgument(); - void SelectionIntoArgument(); - void ActivateThisDialog(); + void ClickOnOk(); + bool ClickOnApply(); + void SetEditCurrentArgument(); + void SelectionIntoArgument(); + void ActivateThisDialog(); }; -#endif // DIALOGBOX_SHELL_H +#endif // BUILDGUI_SHELLDLG_H diff --git a/src/BuildGUI/BuildGUI_SolidDlg.cxx b/src/BuildGUI/BuildGUI_SolidDlg.cxx index 0d0bcb075..05b62c1a2 100644 --- a/src/BuildGUI/BuildGUI_SolidDlg.cxx +++ b/src/BuildGUI/BuildGUI_SolidDlg.cxx @@ -1,41 +1,41 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_SolidDlg.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// File : BuildGUI_SolidDlg.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "BuildGUI_SolidDlg.h" -#include "GEOMImpl_Types.hxx" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -//Qt includes -#include -#include +#include + +#include +#include +#include +#include +#include //================================================================================= // class : BuildGUI_SolidDlg() @@ -44,30 +44,33 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BuildGUI_SolidDlg::BuildGUI_SolidDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BuildGUI_SolidDlg::BuildGUI_SolidDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) + : GEOMBase_Skeleton( theGeometryGUI, parent ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_BUILD_SOLID"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_BUILD_SOLID" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_SOLID_TITLE")); + setWindowTitle( tr( "GEOM_SOLID_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_SOLID")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_SOLID" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupSolid = new DlgRef_1Sel1Check_QTD(this, "GroupSolid"); - GroupSolid->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - GroupSolid->TextLabel1->setText(tr("GEOM_OBJECTS")); - GroupSolid->CheckButton1->setText(tr("GEOM_CREATE_SINGLE_SOLID")); - GroupSolid->PushButton1->setPixmap(image1); + GroupSolid = new DlgRef_1Sel1Check( centralWidget() ); + + GroupSolid->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + GroupSolid->TextLabel1->setText( tr( "GEOM_OBJECTS" ) ); + GroupSolid->CheckButton1->setText( tr( "GEOM_CREATE_SINGLE_SOLID" ) ); + GroupSolid->PushButton1->setIcon( image1 ); GroupSolid->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupSolid, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupSolid ); /***************************************************************/ setHelpFileName("create_solid_page.html"); @@ -83,7 +86,7 @@ BuildGUI_SolidDlg::BuildGUI_SolidDlg(GeometryGUI* theGeometryGUI, QWidget* paren //================================================================================= BuildGUI_SolidDlg::~BuildGUI_SolidDlg() { - // no need to delete child widgets, Qt does it all for us + // no need to delete child widgets, Qt does it all for us } @@ -103,16 +106,16 @@ void BuildGUI_SolidDlg::Init() globalSelection( GEOM_SHELL ); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupSolid->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupSolid->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(EnableNameField(bool))); + connect( GroupSolid->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupSolid->CheckButton1, SIGNAL( toggled( bool ) ), this, SLOT( EnableNameField( bool ) ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); - initName(tr("GEOM_SOLID")); + initName( tr( "GEOM_SOLID" ) ); } @@ -132,6 +135,17 @@ void BuildGUI_SolidDlg::ClickOnOk() //================================================================================= bool BuildGUI_SolidDlg::ClickOnApply() { + for ( int i = 0, n = myShells.length(); i< n; i++ ) { + if ( !isClosed(i)) { + QString aName = GEOMBase::GetName( myShells[i] ); + SUIT_MessageBox::warning( (QWidget*)SUIT_Session::session()->activeApplication()->desktop(), + QObject::tr("WRN_WARNING"), + QObject::tr("WRN_SHAPE_UNCLOSED").arg(aName) , + QObject::tr("BUT_OK") ); + return false; + } + } + if ( !onAccept() ) return false; @@ -146,21 +160,25 @@ bool BuildGUI_SolidDlg::ClickOnApply() //================================================================================= void BuildGUI_SolidDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); QString aString = ""; + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + myOkShells = false; - int nbSel = GEOMBase::GetNameOfSelectedIObjects(selectedIO(), aString); - if (nbSel == 0) + int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString); + if ( nbSel == 0 ) return; - if(nbSel != 1) - aString = tr("%1_objects").arg(nbSel); + if ( nbSel != 1 ) + aString = tr( "%1_objects" ).arg( nbSel ); - GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), myShells); - if (!myShells.length()) + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myShells); + if ( !myShells.length() ) return; - myEditCurrentArgument->setText(aString); + myEditCurrentArgument->setText( aString ); myOkShells = true; } @@ -171,7 +189,7 @@ void BuildGUI_SolidDlg::SelectionIntoArgument() void BuildGUI_SolidDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if(send != GroupSolid->PushButton1) + if ( send != GroupSolid->PushButton1 ) return; globalSelection( GEOM_SHELL ); @@ -189,8 +207,8 @@ void BuildGUI_SolidDlg::SetEditCurrentArgument() void BuildGUI_SolidDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); globalSelection( GEOM_SHELL ); } @@ -199,9 +217,9 @@ void BuildGUI_SolidDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void BuildGUI_SolidDlg::enterEvent(QEvent* e) +void BuildGUI_SolidDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -210,9 +228,9 @@ void BuildGUI_SolidDlg::enterEvent(QEvent* e) // function : EnableNameField() // purpose : //================================================================================= -void BuildGUI_SolidDlg::EnableNameField(bool toEnable) +void BuildGUI_SolidDlg::EnableNameField( bool toEnable ) { - this->GroupBoxName->setEnabled(toEnable); + mainFrame()->GroupBoxName->setEnabled( toEnable ); } //================================================================================= @@ -233,6 +251,42 @@ bool BuildGUI_SolidDlg::isValid( QString& ) return myOkShells; } +//================================================================================= +// function : isClosed +// purpose : Check the object 'i' in myShells list is closed or unclosed +//================================================================================= +bool BuildGUI_SolidDlg::isClosed(int i) +{ + GEOM::GEOM_Object_var aShape = myShells[i]; + GEOM::GEOM_IKindOfShape::shape_kind aKind; + GEOM::ListOfLong_var anInts; + GEOM::ListOfDouble_var aDbls; + + if (aShape->_is_nil()) { + MESSAGE ("Shape is NULL!!!"); + return false; + } + + GEOM::GEOM_IMeasureOperations_ptr anOp = myGeomGUI->GetGeomGen()->GetIMeasureOperations( getStudyId() ); + + // GEOM::GEOM_IMeasureOperations_var anOp = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() ); + + // Detect kind of shape and parameters + aKind = anOp->KindOfShape(aShape, anInts, aDbls); + + if ( !anOp->IsDone() ) { + MESSAGE ("KindOfShape Operation is NOT DONE!!!"); + return false; + } + + if ( anInts[0] == 1 ) + return true; + else if ( anInts[0] == 2 ) + return false; + + return false; +} + //================================================================================= // function : execute // purpose : @@ -241,18 +295,15 @@ bool BuildGUI_SolidDlg::execute( ObjectList& objects ) { bool toCreateSingleSolid = GroupSolid->CheckButton1->isChecked(); - if ( toCreateSingleSolid ) - { + if ( toCreateSingleSolid ) { GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow( getOperation() )->MakeSolidShells( myShells ); if ( !anObj->_is_nil() ) objects.push_back( anObj._retn() ); } - else - { - for ( int i = 0, n = myShells.length(); i< n; i++ ) - { + else { + for ( int i = 0, n = myShells.length(); i< n; i++ ) { GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow( getOperation() )->MakeSolidShell( myShells[ i ] ); diff --git a/src/BuildGUI/BuildGUI_SolidDlg.h b/src/BuildGUI/BuildGUI_SolidDlg.h index 41982f4a2..3236ad4aa 100644 --- a/src/BuildGUI/BuildGUI_SolidDlg.h +++ b/src/BuildGUI/BuildGUI_SolidDlg.h @@ -1,74 +1,72 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BuildGUI_SolidDlg.h -// Author : Damien COQUERET -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_SolidDlg.h +// Author : Damien COQUERET, Open CASCADE S.A.S. +// +#ifndef BUILDGUI_SOLIDDLG_H +#define BUILDGUI_SOLIDDLG_H -#ifndef DIALOGBOX_SOLID_H -#define DIALOGBOX_SOLID_H +#include -#include "GEOM_BuildGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel1Check_QTD.h" +class DlgRef_1Sel1Check; //================================================================================= // class : BuildGUI_SolidDlg // purpose : //================================================================================= -class GEOM_BUILDGUI_EXPORT BuildGUI_SolidDlg : public GEOMBase_Skeleton +class BuildGUI_SolidDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BuildGUI_SolidDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BuildGUI_SolidDlg(); + BuildGUI_SolidDlg( GeometryGUI*, QWidget* = 0 ); + ~BuildGUI_SolidDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); private: - void Init(); - void enterEvent(QEvent * e); + void Init(); + bool isClosed(int i); + void enterEvent( QEvent* ); - GEOM::ListOfGO myShells; - bool myOkShells; /* to check when arguments is defined and - all shells are closed */ +private: + GEOM::ListOfGO myShells; + bool myOkShells; /* to check when arguments is defined and + all shells are closed */ - DlgRef_1Sel1Check_QTD* GroupSolid; + DlgRef_1Sel1Check* GroupSolid; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void SetEditCurrentArgument(); - void SelectionIntoArgument(); - void ActivateThisDialog(); - void EnableNameField(bool toEnable); + void ClickOnOk(); + bool ClickOnApply(); + void SetEditCurrentArgument(); + void SelectionIntoArgument(); + void ActivateThisDialog(); + void EnableNameField( bool ); }; -#endif // DIALOGBOX_SOLID_H +#endif // BUILDGUI_SOLIDDLG_H diff --git a/src/BuildGUI/BuildGUI_WireDlg.cxx b/src/BuildGUI/BuildGUI_WireDlg.cxx index 6bf55259c..05326e457 100644 --- a/src/BuildGUI/BuildGUI_WireDlg.cxx +++ b/src/BuildGUI/BuildGUI_WireDlg.cxx @@ -1,41 +1,42 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_WireDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : BuildGUI_WireDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "BuildGUI_WireDlg.h" -#include "GEOMImpl_Types.hxx" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include -#include "TColStd_MapOfInteger.hxx" +#include +#include +#include -#include +#include +#include +#include +#include + +#include //================================================================================= // class : BuildGUI_WireDlg() @@ -44,32 +45,35 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -BuildGUI_WireDlg::BuildGUI_WireDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +BuildGUI_WireDlg::BuildGUI_WireDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) + : GEOMBase_Skeleton( theGeometryGUI, parent ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_BUILD_WIRE"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_BUILD_WIRE" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_WIRE_TITLE")); + setWindowTitle( tr( "GEOM_WIRE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_WIRE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_WIRE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel_QTD(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_WIRE_CONNECT")); - GroupPoints->TextLabel1->setText(tr("GEOM_OBJECTS")); - GroupPoints->PushButton1->setPixmap(image1); + GroupPoints = new DlgRef_1Sel( centralWidget() ); + + GroupPoints->GroupBox1->setTitle( tr( "GEOM_WIRE_CONNECT" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_OBJECTS" ) ); + GroupPoints->PushButton1->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupPoints, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); /***************************************************************/ - setHelpFileName("create_wire_page.html"); + setHelpFileName( "create_wire_page.html" ); /* Initialisations */ Init(); @@ -99,18 +103,18 @@ void BuildGUI_WireDlg::Init() myOkEdgesAndWires = false; TColStd_MapOfInteger aMap; - aMap.Add(GEOM_WIRE); - aMap.Add(GEOM_EDGE); + aMap.Add( GEOM_WIRE ); + aMap.Add( GEOM_EDGE ); globalSelection( aMap ); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); - initName(tr("GEOM_WIRE")); + initName( tr( "GEOM_WIRE" ) ); } @@ -145,22 +149,26 @@ bool BuildGUI_WireDlg::ClickOnApply() //================================================================================= void BuildGUI_WireDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); QString aString = ""; /* name of selection */ + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + myOkEdgesAndWires = false; - int nbSel = GEOMBase::GetNameOfSelectedIObjects(selectedIO(), aString); + int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString); - if(nbSel == 0) + if ( nbSel == 0 ) return; - if(nbSel != 1) - aString = tr("%1_objects").arg(nbSel); + if ( nbSel != 1 ) + aString = tr( "%1_objects" ).arg( nbSel ); - GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), myEdgesAndWires); - if (!myEdgesAndWires.length()) + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myEdgesAndWires); + if ( !myEdgesAndWires.length() ) return; - myEditCurrentArgument->setText(aString); + myEditCurrentArgument->setText( aString ); myOkEdgesAndWires = true; } @@ -172,12 +180,12 @@ void BuildGUI_WireDlg::SelectionIntoArgument() void BuildGUI_WireDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if (send != GroupPoints->PushButton1) + if ( send != GroupPoints->PushButton1 ) return; TColStd_MapOfInteger aMap; - aMap.Add(GEOM_WIRE); - aMap.Add(GEOM_EDGE); + aMap.Add( GEOM_WIRE ); + aMap.Add( GEOM_EDGE ); globalSelection( aMap ); myEditCurrentArgument = GroupPoints->LineEdit1; @@ -193,11 +201,11 @@ void BuildGUI_WireDlg::SetEditCurrentArgument() void BuildGUI_WireDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); TColStd_MapOfInteger aMap; - aMap.Add(GEOM_WIRE); - aMap.Add(GEOM_EDGE); + aMap.Add( GEOM_WIRE ); + aMap.Add( GEOM_EDGE ); globalSelection( aMap ); } @@ -206,9 +214,9 @@ void BuildGUI_WireDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void BuildGUI_WireDlg::enterEvent(QEvent* e) +void BuildGUI_WireDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } diff --git a/src/BuildGUI/BuildGUI_WireDlg.h b/src/BuildGUI/BuildGUI_WireDlg.h index ecfcc2c14..616df0246 100644 --- a/src/BuildGUI/BuildGUI_WireDlg.h +++ b/src/BuildGUI/BuildGUI_WireDlg.h @@ -1,72 +1,69 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : BuildGUI_WireDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BuildGUI_WireDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef BUILDGUI_WIREDLG_H +#define BUILDGUI_WIREDLG_H -#ifndef DIALOGBOX_WIRE_H -#define DIALOGBOX_WIRE_H +#include -#include "GEOM_BuildGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_QTD.h" +class DlgRef_1Sel; //================================================================================= // class : BuildGUI_WireDlg // purpose : //================================================================================= -class GEOM_BUILDGUI_EXPORT BuildGUI_WireDlg : public GEOMBase_Skeleton +class BuildGUI_WireDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - BuildGUI_WireDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~BuildGUI_WireDlg(); + BuildGUI_WireDlg( GeometryGUI*, QWidget* = 0 ); + ~BuildGUI_WireDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); private: - void Init(); - void enterEvent(QEvent* e); + void Init(); + void enterEvent( QEvent* ); - GEOM::ListOfGO myEdgesAndWires; - bool myOkEdgesAndWires; /* to check when arguments is defined */ - - DlgRef_1Sel_QTD* GroupPoints; +private: + GEOM::ListOfGO myEdgesAndWires; + bool myOkEdgesAndWires; /* to check when arguments is defined */ + + DlgRef_1Sel* GroupPoints; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_WIRE_H +#endif // BUILDGUI_WIREDLG_H diff --git a/src/BuildGUI/GEOM_BuildGUI.hxx b/src/BuildGUI/GEOM_BuildGUI.hxx deleted file mode 100755 index 7a36f8552..000000000 --- a/src/BuildGUI/GEOM_BuildGUI.hxx +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : GEOM_BuildGUI.hxx -// Author : Alexander A. BORODIN -// Module : GEOM - -#ifndef _GEOM_BuildGUI_HXX_ -#define _GEOM_BuildGUI_HXX_ - -#ifdef WNT - #if defined BUILDGUI_EXPORTS - #if defined WIN32 - #define GEOM_BUILDGUI_EXPORT __declspec( dllexport ) - #else - #define GEOM_BUILDGUI_EXPORT - #endif - #else - #if defined WIN32 - #define GEOM_BUILDGUI_EXPORT __declspec( dllimport ) - #else - #define GEOM_BUILDGUI_EXPORT - #endif - #endif -#else - #define GEOM_BUILDGUI_EXPORT -#endif - -#endif diff --git a/src/BuildGUI/Makefile.am b/src/BuildGUI/Makefile.am index 59820f17b..d4f2af548 100644 --- a/src/BuildGUI/Makefile.am +++ b/src/BuildGUI/Makefile.am @@ -1,87 +1,88 @@ -# GEOM BUILDGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM BUILDGUI : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : BuildGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = +salomeinclude_HEADERS = \ + BuildGUI.h \ + BuildGUI_EdgeDlg.h \ + BuildGUI_WireDlg.h \ + BuildGUI_FaceDlg.h \ + BuildGUI_ShellDlg.h \ + BuildGUI_SolidDlg.h \ + BuildGUI_CompoundDlg.h # Libraries targets lib_LTLIBRARIES = libBuildGUI.la # Sources files -dist_libBuildGUI_la_SOURCES = \ - BuildGUI.cxx \ - BuildGUI_EdgeDlg.cxx \ - BuildGUI_WireDlg.cxx \ - BuildGUI_FaceDlg.cxx \ - BuildGUI_ShellDlg.cxx \ - BuildGUI_SolidDlg.cxx \ +dist_libBuildGUI_la_SOURCES = \ + BuildGUI.cxx \ + BuildGUI_EdgeDlg.cxx \ + BuildGUI_WireDlg.cxx \ + BuildGUI_FaceDlg.cxx \ + BuildGUI_ShellDlg.cxx \ + BuildGUI_SolidDlg.cxx \ BuildGUI_CompoundDlg.cxx -MOC_FILES = \ - BuildGUI_EdgeDlg_moc.cxx \ - BuildGUI_WireDlg_moc.cxx \ - BuildGUI_FaceDlg_moc.cxx \ - BuildGUI_ShellDlg_moc.cxx \ - BuildGUI_SolidDlg_moc.cxx \ +MOC_FILES = \ + BuildGUI_EdgeDlg_moc.cxx \ + BuildGUI_WireDlg_moc.cxx \ + BuildGUI_FaceDlg_moc.cxx \ + BuildGUI_ShellDlg_moc.cxx \ + BuildGUI_SolidDlg_moc.cxx \ BuildGUI_CompoundDlg_moc.cxx -nodist_libBuildGUI_la_SOURCES= \ +nodist_libBuildGUI_la_SOURCES = \ $(MOC_FILES) -# LIB_CLIENT_IDL = SALOME_Exception.idl SALOME_GenericObj.idl SALOME_Component.idl +# additional information to compile and link file -# LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libBuildGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMFiltersSelection \ - -I$(top_builddir)/idl \ +libBuildGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMFiltersSelection \ + -I$(top_builddir)/idl \ + -I$(top_builddir)/src/DlgRef \ -I$(top_builddir)/salome_adm/unix -libBuildGUI_la_LDFLAGS = \ - ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ +libBuildGUI_la_LDFLAGS = \ + ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ ../GEOMBase/libGEOMBase.la diff --git a/src/DisplayGUI/DisplayGUI.cxx b/src/DisplayGUI/DisplayGUI.cxx index 6e4b90646..6b62fe2fe 100644 --- a/src/DisplayGUI/DisplayGUI.cxx +++ b/src/DisplayGUI/DisplayGUI.cxx @@ -1,44 +1,41 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : DisplayGUI.cxx +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) // -// -// File : DisplayGUI.cxx -// Author : Vadim SANDLER -// Module : GEOM -// $Header$ - #include "DisplayGUI.h" -#include "GeometryGUI.h" -#include "GEOM_Displayer.h" +#include +#include +#include #include -#include #include #include #include #include -#include +#include #include #include @@ -56,8 +53,7 @@ #include -#include - +#include //======================================================================= // function : DisplayGUI::DisplayGUI() @@ -94,7 +90,7 @@ bool DisplayGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) { InvertDisplayMode(); int newMode = GetDisplayMode(); - getGeometryGUI()->action( 211 )->setMenuText + getGeometryGUI()->action( 211 )->setText ( newMode == 1 ? tr( "GEOM_MEN_WIREFRAME" ) : tr("GEOM_MEN_SHADING") ); getGeometryGUI()->menuMgr()->update(); break; @@ -476,7 +472,9 @@ void DisplayGUI::ChangeDisplayMode( const int mode, SUIT_ViewWindow* viewWindow //===================================================================================== extern "C" { - GEOM_DISPLAYGUI_EXPORT +#ifdef WIN32 + __declspec( dllexport ) +#endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { return new DisplayGUI( parent ); diff --git a/src/DisplayGUI/DisplayGUI.h b/src/DisplayGUI/DisplayGUI.h index 9e31f223c..d9e089e2a 100644 --- a/src/DisplayGUI/DisplayGUI.h +++ b/src/DisplayGUI/DisplayGUI.h @@ -1,60 +1,48 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : DisplayGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : DisplayGUI.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef DISPLAYGUI_H #define DISPLAYGUI_H #include "GEOMGUI.h" -#include "GEOMBase.h" - -#ifdef WNT -# if defined DISPLAYGUI_EXPORTS -# define GEOM_DISPLAYGUI_EXPORT __declspec( dllexport ) -# else -# define GEOM_DISPLAYGUI_EXPORT __declspec( dllimport ) -# endif -#else -# define GEOM_DISPLAYGUI_EXPORT -#endif //================================================================================= -// class : GEOMBase_Display +// class : DisplayGUI // purpose : //================================================================================= -//class QAD_ViewFrame; + class SUIT_ViewWindow; -class GEOM_DISPLAYGUI_EXPORT DisplayGUI : public GEOMGUI + +class DisplayGUI : public GEOMGUI { public: - DisplayGUI( GeometryGUI* parent ); + DisplayGUI( GeometryGUI* ); ~DisplayGUI(); // Dispatch menu command - bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent); + bool OnGUIEvent( int, SUIT_Desktop* ); // Display all GEOM objects void DisplayAll(); @@ -69,16 +57,16 @@ public: // DISPLAY MODE methods : 0 - wireframe, 1 - shading // Set display mode for the viewer (current viewer if - 0 ) - void SetDisplayMode( const int mode, SUIT_ViewWindow* viewWindow = 0 ); + void SetDisplayMode( const int, SUIT_ViewWindow* = 0 ); // Get display mode of the viewer (current viewer if - 0 ) - int GetDisplayMode( SUIT_ViewWindow* viewWindow = 0 ); + int GetDisplayMode( SUIT_ViewWindow* = 0 ); // Invert display mode ( shadin <-> wireframe ) for the viewer // (current viewer if = 0 ) - void InvertDisplayMode( SUIT_ViewWindow* viewWindow = 0 ); + void InvertDisplayMode( SUIT_ViewWindow* = 0 ); // Set display mode for selected objects in the viewer given // (current viewer if = 0 ) - void ChangeDisplayMode( const int mode, SUIT_ViewWindow* viewWindo = 0 ); + void ChangeDisplayMode( const int, SUIT_ViewWindow* = 0 ); }; -#endif +#endif // DISPLAYGUI_H diff --git a/src/DisplayGUI/DisplayGUI.pro b/src/DisplayGUI/DisplayGUI.pro new file mode 100644 index 000000000..c4ab18b6d --- /dev/null +++ b/src/DisplayGUI/DisplayGUI.pro @@ -0,0 +1,68 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = DisplayGUI +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +GUI_LDFLAGS = -L$$(GUI_ROOT_DIR)/lib/salome + +VTK_LIBS = -L$$(VTKHOME)/lib/vtk -L$$(VTKHOME)/lib/vtk/python -lvtkCommon -lvtkGraphics -lvtkImaging -lvtkFiltering -lvtkIO -lvtkRendering -lvtkHybrid -lvtkParallel -lvtkWidgets -lGL -L/usr/X11R6/lib -lGLU -L/usr/X11R6/lib -lX11 -lXt + +QT_MT_LIBS = -L$$(QTDIR)/lib -lQtCore -lQtXml -lQtGui -lQtOpenGL + +INCLUDEPATH += $${QT_INCLUDES} $${VTK_INCLUDES} $${CAS_CPPFLAGS} $${PYTHON_INCLUDES} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} $${CORBA_INCLUDES} ../OBJECT ../GEOMBase ../GEOMClient ../GEOMImpl ../GEOMGUI $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lGEOM -lGEOMToolsGUI $${GUI_LDFLAGS} -lsuit -lSVTK -lSOCC -lSalomePrs -lSalomeApp $${VTK_LIBS} $${QT_MT_LIBS} + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += DISPLAYGUI_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +HEADERS = DisplayGUI.h + +SOURCES = DisplayGUI.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/DisplayGUI/Makefile.am b/src/DisplayGUI/Makefile.am index 9f4f6a3bc..434048fe1 100644 --- a/src/DisplayGUI/Makefile.am +++ b/src/DisplayGUI/Makefile.am @@ -1,70 +1,64 @@ -# GEOM DISPLAYGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM DISPLAYGUI : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : DisplayGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = \ +salomeinclude_HEADERS = \ DisplayGUI.h # Libraries targets lib_LTLIBRARIES = libDisplayGUI.la -dist_libDisplayGUI_la_SOURCES = DisplayGUI.cxx +dist_libDisplayGUI_la_SOURCES = \ + DisplayGUI.h \ + DisplayGUI.cxx -#LIB_CLIENT_IDL = SALOME_Exception.idl SALOME_GenericObj.idl SALOME_Component.idl +# additional information to compile and link file -#LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libDisplayGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMClient \ - -I$(top_builddir)/idl \ +libDisplayGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMClient \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libDisplayGUI_la_LDFLAGS = \ - ../GEOMGUI/libGEOM.la \ - ../GEOMToolsGUI/libGEOMToolsGUI.la \ - $(GUI_LDFLAGS) -lsuit -lSVTK -lSOCC -lSalomePrs -lSalomeApp \ - $(VTK_LIBS) \ +libDisplayGUI_la_LDFLAGS = \ + ../GEOMGUI/libGEOM.la \ + $(GUI_LDFLAGS) -lsuit -lSVTK \ + -lSOCC -lSalomePrs -lSalomeApp \ + $(VTK_LIBS) \ $(QT_MT_LIBS) diff --git a/src/DlgRef/DlgRef.cxx b/src/DlgRef/DlgRef.cxx new file mode 100644 index 000000000..c22828f46 --- /dev/null +++ b/src/DlgRef/DlgRef.cxx @@ -0,0 +1,790 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : DlgRef.cxx +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +// +#include "DlgRef.h" + +////////////////////////////////////////// +// DlgRef_1List1Spin1Btn +////////////////////////////////////////// + +DlgRef_1List1Spin1Btn::DlgRef_1List1Spin1Btn( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1List1Spin1Btn::~DlgRef_1List1Spin1Btn() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel1Check1List +////////////////////////////////////////// + +DlgRef_1Sel1Check1List::DlgRef_1Sel1Check1List( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel1Check1List::~DlgRef_1Sel1Check1List() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel1Check1Sel +////////////////////////////////////////// + +DlgRef_1Sel1Check1Sel::DlgRef_1Sel1Check1Sel( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel1Check1Sel::~DlgRef_1Sel1Check1Sel() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel1Check +////////////////////////////////////////// + +DlgRef_1Sel1Check::DlgRef_1Sel1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel1Check::~DlgRef_1Sel1Check() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel1List1Check3Btn +////////////////////////////////////////// + +DlgRef_1Sel1List1Check3Btn::DlgRef_1Sel1List1Check3Btn( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel1List1Check3Btn::~DlgRef_1Sel1List1Check3Btn() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel1Spin1Check +////////////////////////////////////////// + +DlgRef_1Sel1Spin1Check::DlgRef_1Sel1Spin1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel1Spin1Check::~DlgRef_1Sel1Spin1Check() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel1Spin +////////////////////////////////////////// + +DlgRef_1Sel1Spin::DlgRef_1Sel1Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel1Spin::~DlgRef_1Sel1Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel2Spin1View1Check +////////////////////////////////////////// + +DlgRef_1Sel2Spin1View1Check::DlgRef_1Sel2Spin1View1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel2Spin1View1Check::~DlgRef_1Sel2Spin1View1Check() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel2Spin +////////////////////////////////////////// + +DlgRef_1Sel2Spin::DlgRef_1Sel2Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel2Spin::~DlgRef_1Sel2Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel3Check +////////////////////////////////////////// + +DlgRef_1Sel3Check::DlgRef_1Sel3Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel3Check::~DlgRef_1Sel3Check() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel3Spin +////////////////////////////////////////// + +DlgRef_1Sel3Spin::DlgRef_1Sel3Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel3Spin::~DlgRef_1Sel3Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel3Spin1Check +////////////////////////////////////////// + +DlgRef_1Sel3Spin1Check::DlgRef_1Sel3Spin1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel3Spin1Check::~DlgRef_1Sel3Spin1Check() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel4Spin +////////////////////////////////////////// + +DlgRef_1Sel4Spin::DlgRef_1Sel4Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel4Spin::~DlgRef_1Sel4Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel5Spin1Check +////////////////////////////////////////// + +DlgRef_1Sel5Spin1Check::DlgRef_1Sel5Spin1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel5Spin1Check::~DlgRef_1Sel5Spin1Check() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel5Spin +////////////////////////////////////////// + +DlgRef_1Sel5Spin::DlgRef_1Sel5Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel5Spin::~DlgRef_1Sel5Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_1Spin +////////////////////////////////////////// + +DlgRef_1Spin::DlgRef_1Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Spin::~DlgRef_1Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_1Sel +////////////////////////////////////////// + +DlgRef_1Sel::DlgRef_1Sel( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1Sel::~DlgRef_1Sel() +{ +} + +////////////////////////////////////////// +// DlgRef_1SelExt +////////////////////////////////////////// + +DlgRef_1SelExt::DlgRef_1SelExt( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_1SelExt::~DlgRef_1SelExt() +{ +} + +////////////////////////////////////////// +// DlgRef_2Sel1List1Check +////////////////////////////////////////// + +DlgRef_2Sel1List1Check::DlgRef_2Sel1List1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Sel1List1Check::~DlgRef_2Sel1List1Check() +{ +} + +////////////////////////////////////////// +// DlgRef_2Sel1List +////////////////////////////////////////// + +DlgRef_2Sel1List::DlgRef_2Sel1List( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Sel1List::~DlgRef_2Sel1List() +{ +} + +////////////////////////////////////////// +// DlgRef_2Sel1Spin2Check +////////////////////////////////////////// + +DlgRef_2Sel1Spin2Check::DlgRef_2Sel1Spin2Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Sel1Spin2Check::~DlgRef_2Sel1Spin2Check() +{ +} + +////////////////////////////////////////// +// DlgRef_2Sel1Spin +////////////////////////////////////////// + +DlgRef_2Sel1Spin::DlgRef_2Sel1Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Sel1Spin::~DlgRef_2Sel1Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_2Sel2List +////////////////////////////////////////// + +DlgRef_2Sel2List::DlgRef_2Sel2List( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Sel2List::~DlgRef_2Sel2List() +{ +} + +////////////////////////////////////////// +// DlgRef_2Sel2Spin1Check +////////////////////////////////////////// + +DlgRef_2Sel2Spin1Check::DlgRef_2Sel2Spin1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Sel2Spin1Check::~DlgRef_2Sel2Spin1Check() +{ +} + +////////////////////////////////////////// +// DlgRef_2Sel2Spin +////////////////////////////////////////// + +DlgRef_2Sel2Spin::DlgRef_2Sel2Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Sel2Spin::~DlgRef_2Sel2Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_2Sel3Spin2Rb +////////////////////////////////////////// + +DlgRef_2Sel3Spin2Rb::DlgRef_2Sel3Spin2Rb( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Sel3Spin2Rb::~DlgRef_2Sel3Spin2Rb() +{ +} + +////////////////////////////////////////// +// DlgRef_2Sel3Spin +////////////////////////////////////////// + +DlgRef_2Sel3Spin::DlgRef_2Sel3Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Sel3Spin::~DlgRef_2Sel3Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_2Sel4Spin1Check +////////////////////////////////////////// + +DlgRef_2Sel4Spin1Check::DlgRef_2Sel4Spin1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Sel4Spin1Check::~DlgRef_2Sel4Spin1Check() +{ +} + +////////////////////////////////////////// +// DlgRef_2Sel +////////////////////////////////////////// + +DlgRef_2Sel::DlgRef_2Sel( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Sel::~DlgRef_2Sel() +{ +} + +////////////////////////////////////////// +// DlgRef_2SelExt +////////////////////////////////////////// + +DlgRef_2SelExt::DlgRef_2SelExt( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2SelExt::~DlgRef_2SelExt() +{ +} + +////////////////////////////////////////// +// DlgRef_2Spin +////////////////////////////////////////// + +DlgRef_2Spin::DlgRef_2Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_2Spin::~DlgRef_2Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_3Check +////////////////////////////////////////// + +DlgRef_3Check::DlgRef_3Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_3Check::~DlgRef_3Check() +{ +} + +////////////////////////////////////////// +// DlgRef_3Radio +////////////////////////////////////////// + +DlgRef_3Radio::DlgRef_3Radio( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_3Radio::~DlgRef_3Radio() +{ +} + +////////////////////////////////////////// +// DlgRef_3Radio1Sel1Spin +////////////////////////////////////////// + +DlgRef_3Radio1Sel1Spin::DlgRef_3Radio1Sel1Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_3Radio1Sel1Spin::~DlgRef_3Radio1Sel1Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_3Sel1Check +////////////////////////////////////////// + +DlgRef_3Sel1Check::DlgRef_3Sel1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_3Sel1Check::~DlgRef_3Sel1Check() +{ +} + +////////////////////////////////////////// +// DlgRef_3Sel1Spin +////////////////////////////////////////// + +DlgRef_3Sel1Spin::DlgRef_3Sel1Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_3Sel1Spin::~DlgRef_3Sel1Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_3Sel3Spin1Check +////////////////////////////////////////// + +DlgRef_3Sel3Spin1Check::DlgRef_3Sel3Spin1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_3Sel3Spin1Check::~DlgRef_3Sel3Spin1Check() +{ +} + +void DlgRef_3Sel3Spin1Check::ShowRows( int fromRow, int toRow, bool toShow ) +{ + const int maxRows = 7; + + if ( toRow >= fromRow && fromRow >= 0 && toRow <= maxRows ) { + int c = gridLayout1->count(); + for ( int i = 0; i < c; i++ ) { + QWidget* w = gridLayout1->itemAt( i )->widget(); + int row, col, rowspan, colspan; + gridLayout1->getItemPosition( i, &row, &col, &rowspan, &colspan ); + if ( w && row >= fromRow && row <= toRow ) + w->setVisible( toShow ); + } + } +} + +////////////////////////////////////////// +// DlgRef_3Sel3Spin2Check +////////////////////////////////////////// + +DlgRef_3Sel3Spin2Check::DlgRef_3Sel3Spin2Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_3Sel3Spin2Check::~DlgRef_3Sel3Spin2Check() +{ +} + +void DlgRef_3Sel3Spin2Check::ShowRows( int fromRow, int toRow, bool toShow ) +{ + const int maxRows = 8; + + if ( toRow >= fromRow && fromRow >= 0 && toRow <= maxRows ) { + int c = gridLayout1->count(); + for ( int i = 0; i < c; i++ ) { + QWidget* w = gridLayout1->itemAt( i )->widget(); + int row, col, rowspan, colspan; + gridLayout1->getItemPosition( i, &row, &col, &rowspan, &colspan ); + if ( w && row >= fromRow && row <= toRow ) + w->setVisible( toShow ); + } + } +} + +////////////////////////////////////////// +// DlgRef_3Sel4Spin2Check +////////////////////////////////////////// + +DlgRef_3Sel4Spin2Check::DlgRef_3Sel4Spin2Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_3Sel4Spin2Check::~DlgRef_3Sel4Spin2Check() +{ +} + +////////////////////////////////////////// +// DlgRef_3Sel +////////////////////////////////////////// + +DlgRef_3Sel::DlgRef_3Sel( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_3Sel::~DlgRef_3Sel() +{ +} + +////////////////////////////////////////// +// DlgRef_3Spin1Check +////////////////////////////////////////// + +DlgRef_3Spin1Check::DlgRef_3Spin1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_3Spin1Check::~DlgRef_3Spin1Check() +{ +} + +////////////////////////////////////////// +// DlgRef_3Spin +////////////////////////////////////////// + +DlgRef_3Spin::DlgRef_3Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_3Spin::~DlgRef_3Spin() +{ +} + +////////////////////////////////////////// +// DlgRef_4Sel1List1Check +////////////////////////////////////////// + +DlgRef_4Sel1List1Check::DlgRef_4Sel1List1Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_4Sel1List1Check::~DlgRef_4Sel1List1Check() +{ +} + +////////////////////////////////////////// +// DlgRef_4Sel1List +////////////////////////////////////////// + +DlgRef_4Sel1List::DlgRef_4Sel1List( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_4Sel1List::~DlgRef_4Sel1List() +{ +} + +////////////////////////////////////////// +// DlgRef_4Sel1Spin2Check +////////////////////////////////////////// + +DlgRef_4Sel1Spin2Check::DlgRef_4Sel1Spin2Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_4Sel1Spin2Check::~DlgRef_4Sel1Spin2Check() +{ +} + +void DlgRef_4Sel1Spin2Check::ShowRows( int fromRow, int toRow, bool toShow ) +{ + const int maxRows = 6; + + if ( toRow >= fromRow && fromRow >= 0 && toRow <= maxRows ) { + int c = gridLayout1->count(); + for ( int i = 0; i < c; i++ ) { + QWidget* w = gridLayout1->itemAt( i )->widget(); + int row, col, rowspan, colspan; + gridLayout1->getItemPosition( i, &row, &col, &rowspan, &colspan ); + if ( w && row >= fromRow && row <= toRow ) + w->setVisible( toShow ); + } + } +} + +////////////////////////////////////////// +// DlgRef_4Sel1Spin3Check +////////////////////////////////////////// + +DlgRef_4Sel1Spin3Check::DlgRef_4Sel1Spin3Check( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_4Sel1Spin3Check::~DlgRef_4Sel1Spin3Check() +{ +} + +////////////////////////////////////////// +// DlgRef_6Sel +////////////////////////////////////////// + +DlgRef_6Sel::DlgRef_6Sel( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_6Sel::~DlgRef_6Sel() +{ +} + +////////////////////////////////////////// +// DlgRef_Skeleton +////////////////////////////////////////// + +DlgRef_Skeleton::DlgRef_Skeleton( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +DlgRef_Skeleton::~DlgRef_Skeleton() +{ +} + +////////////////////////////////////////// +// Utility functions +////////////////////////////////////////// + +QString DlgRef::PrintDoubleValue( double theValue, int thePrecision ) +{ + const double prec = 1e-12; + + if ( abs(theValue) < thePrecision) + return "0"; + + QString aRes; + aRes.setNum( theValue, 'g', thePrecision ); + + if ( prec > 0 ) { + int p = 0; + while ( p < thePrecision ) { + aRes.setNum( theValue, 'g', p++ ); + double v = aRes.toDouble(); + double err = qAbs( theValue - v ); + if ( err > 0 && err <= prec ) + break; + } + } + + // remove trailing zeroes + QString delim( "." ); + + int idx = aRes.lastIndexOf( delim ); + if ( idx == -1 ) + return aRes; + + QString iPart = aRes.left( idx ); + QString fPart = aRes.mid( idx + 1 ); + + while ( !fPart.isEmpty() && fPart.at( fPart.length() - 1 ) == '0' ) + fPart.remove( fPart.length() - 1, 1 ); + + aRes = iPart; + if ( !fPart.isEmpty() ) + aRes += delim + fPart; + + return aRes; +} diff --git a/src/DlgRef/DlgRef.h b/src/DlgRef/DlgRef.h new file mode 100644 index 000000000..d786fe841 --- /dev/null +++ b/src/DlgRef/DlgRef.h @@ -0,0 +1,823 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : DlgRef.h +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +// +#ifndef GEOM_DLGREF_H +#define GEOM_DLGREF_H + +#if defined WIN32 +# if defined DLGREF_EXPORTS +# define DLGREF_EXPORT __declspec( dllexport ) +# else +# define DLGREF_EXPORT __declspec( dllimport ) +# endif +#else +# define DLGREF_EXPORT +#endif + +////////////////////////////////////////// +// DlgRef_1List1Spin1Btn +////////////////////////////////////////// + +#include "ui_DlgRef_1List1Spin1Btn_QTD.h" + +class DLGREF_EXPORT DlgRef_1List1Spin1Btn : public QWidget, + public Ui::DlgRef_1List1Spin1Btn_QTD +{ + Q_OBJECT + +public: + DlgRef_1List1Spin1Btn( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1List1Spin1Btn(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel1Check1List +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel1Check1List_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel1Check1List : public QWidget, + public Ui::DlgRef_1Sel1Check1List_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel1Check1List( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel1Check1List(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel1Check1Sel +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel1Check1Sel_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel1Check1Sel : public QWidget, + public Ui::DlgRef_1Sel1Check1Sel_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel1Check1Sel( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel1Check1Sel(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel1Check +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel1Check : public QWidget, + public Ui::DlgRef_1Sel1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel1Check(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel1List1Check3Btn +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel1List1Check3Btn_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel1List1Check3Btn : public QWidget, + public Ui::DlgRef_1Sel1List1Check3Btn_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel1List1Check3Btn( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel1List1Check3Btn(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel1Spin1Check +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel1Spin1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel1Spin1Check : public QWidget, + public Ui::DlgRef_1Sel1Spin1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel1Spin1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel1Spin1Check(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel1Spin +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel1Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel1Spin : public QWidget, + public Ui::DlgRef_1Sel1Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel1Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel1Spin(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel2Spin1View1Check +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel2Spin1View1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel2Spin1View1Check : public QWidget, + public Ui::DlgRef_1Sel2Spin1View1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel2Spin1View1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel2Spin1View1Check(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel2Spin +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel2Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel2Spin : public QWidget, + public Ui::DlgRef_1Sel2Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel2Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel2Spin(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel3Check +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel3Check_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel3Check : public QWidget, + public Ui::DlgRef_1Sel3Check_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel3Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel3Check(); +}; + + + +////////////////////////////////////////// +// DlgRef_1Sel3Spin +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel3Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel3Spin : public QWidget, + public Ui::DlgRef_1Sel3Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel3Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel3Spin(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel3Spin1Check +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel3Spin1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel3Spin1Check : public QWidget, + public Ui::DlgRef_1Sel3Spin1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel3Spin1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel3Spin1Check(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel4Spin +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel4Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel4Spin : public QWidget, + public Ui::DlgRef_1Sel4Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel4Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel4Spin(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel5Spin1Check +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel5Spin1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel5Spin1Check : public QWidget, + public Ui::DlgRef_1Sel5Spin1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel5Spin1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel5Spin1Check(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel5Spin +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel5Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel5Spin : public QWidget, + public Ui::DlgRef_1Sel5Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel5Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel5Spin(); +}; + +////////////////////////////////////////// +// DlgRef_1Spin +////////////////////////////////////////// + +#include "ui_DlgRef_1Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_1Spin : public QWidget, + public Ui::DlgRef_1Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_1Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Spin(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel +////////////////////////////////////////// + +#include "ui_DlgRef_1Sel_QTD.h" + +class DLGREF_EXPORT DlgRef_1Sel : public QWidget, + public Ui::DlgRef_1Sel_QTD +{ + Q_OBJECT + +public: + DlgRef_1Sel( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1Sel(); +}; + +////////////////////////////////////////// +// DlgRef_1SelExt +////////////////////////////////////////// + +#include "ui_DlgRef_1SelExt_QTD.h" + +class DLGREF_EXPORT DlgRef_1SelExt : public QWidget, + public Ui::DlgRef_1SelExt_QTD +{ + Q_OBJECT + +public: + DlgRef_1SelExt( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_1SelExt(); +}; + +////////////////////////////////////////// +// DlgRef_2Sel1List1Check +////////////////////////////////////////// + +#include "ui_DlgRef_2Sel1List1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_2Sel1List1Check : public QWidget, + public Ui::DlgRef_2Sel1List1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_2Sel1List1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Sel1List1Check(); +}; + +////////////////////////////////////////// +// DlgRef_2Sel1List +////////////////////////////////////////// + +#include "ui_DlgRef_2Sel1List_QTD.h" + +class DLGREF_EXPORT DlgRef_2Sel1List : public QWidget, + public Ui::DlgRef_2Sel1List_QTD +{ + Q_OBJECT + +public: + DlgRef_2Sel1List( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Sel1List(); +}; + +////////////////////////////////////////// +// DlgRef_2Sel1Spin2Check +////////////////////////////////////////// + +#include "ui_DlgRef_2Sel1Spin2Check_QTD.h" + +class DLGREF_EXPORT DlgRef_2Sel1Spin2Check : public QWidget, + public Ui::DlgRef_2Sel1Spin2Check_QTD +{ + Q_OBJECT + +public: + DlgRef_2Sel1Spin2Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Sel1Spin2Check(); +}; + +////////////////////////////////////////// +// DlgRef_2Sel1Spin +////////////////////////////////////////// + +#include "ui_DlgRef_2Sel1Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_2Sel1Spin : public QWidget, + public Ui::DlgRef_2Sel1Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_2Sel1Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Sel1Spin(); +}; + +////////////////////////////////////////// +// DlgRef_2Sel2List +////////////////////////////////////////// + +#include "ui_DlgRef_2Sel2List_QTD.h" + +class DLGREF_EXPORT DlgRef_2Sel2List : public QWidget, + public Ui::DlgRef_2Sel2List_QTD +{ + Q_OBJECT + +public: + DlgRef_2Sel2List( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Sel2List(); +}; + +////////////////////////////////////////// +// DlgRef_2Sel2Spin1Check +////////////////////////////////////////// + +#include "ui_DlgRef_2Sel2Spin1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_2Sel2Spin1Check : public QWidget, + public Ui::DlgRef_2Sel2Spin1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_2Sel2Spin1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Sel2Spin1Check(); +}; + +////////////////////////////////////////// +// DlgRef_2Sel2Spin +////////////////////////////////////////// + +#include "ui_DlgRef_2Sel2Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_2Sel2Spin : public QWidget, + public Ui::DlgRef_2Sel2Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_2Sel2Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Sel2Spin(); +}; + +////////////////////////////////////////// +// DlgRef_2Sel3Spin2Rb +////////////////////////////////////////// + +#include "ui_DlgRef_2Sel3Spin2Rb_QTD.h" + +class DLGREF_EXPORT DlgRef_2Sel3Spin2Rb : public QWidget, + public Ui::DlgRef_2Sel3Spin2Rb_QTD +{ + Q_OBJECT + +public: + DlgRef_2Sel3Spin2Rb( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Sel3Spin2Rb(); +}; + +////////////////////////////////////////// +// DlgRef_2Sel3Spin +////////////////////////////////////////// + +#include "ui_DlgRef_2Sel3Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_2Sel3Spin : public QWidget, + public Ui::DlgRef_2Sel3Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_2Sel3Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Sel3Spin(); +}; + +////////////////////////////////////////// +// DlgRef_2Sel4Spin1Check +////////////////////////////////////////// + +#include "ui_DlgRef_2Sel4Spin1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_2Sel4Spin1Check : public QWidget, + public Ui::DlgRef_2Sel4Spin1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_2Sel4Spin1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Sel4Spin1Check(); +}; + +////////////////////////////////////////// +// DlgRef_2Sel +////////////////////////////////////////// + +#include "ui_DlgRef_2Sel_QTD.h" + +class DLGREF_EXPORT DlgRef_2Sel : public QWidget, + public Ui::DlgRef_2Sel_QTD +{ + Q_OBJECT + +public: + DlgRef_2Sel( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Sel(); +}; + +////////////////////////////////////////// +// DlgRef_2SelExt +////////////////////////////////////////// + +#include "ui_DlgRef_2SelExt_QTD.h" + +class DLGREF_EXPORT DlgRef_2SelExt : public QWidget, + public Ui::DlgRef_2SelExt_QTD +{ + Q_OBJECT + +public: + DlgRef_2SelExt( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2SelExt(); +}; + +////////////////////////////////////////// +// DlgRef_2Spin +////////////////////////////////////////// + +#include "ui_DlgRef_2Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_2Spin : public QWidget, + public Ui::DlgRef_2Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_2Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_2Spin(); +}; + +////////////////////////////////////////// +// DlgRef_3Check +////////////////////////////////////////// + +#include "ui_DlgRef_3Check_QTD.h" + +class DLGREF_EXPORT DlgRef_3Check : public QWidget, + public Ui::DlgRef_3Check_QTD +{ + Q_OBJECT + +public: + DlgRef_3Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_3Check(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel3Radio +////////////////////////////////////////// + +#include "ui_DlgRef_3Radio_QTD.h" + +class DLGREF_EXPORT DlgRef_3Radio : public QWidget, + public Ui::DlgRef_3Radio_QTD +{ + Q_OBJECT + +public: + DlgRef_3Radio( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_3Radio(); +}; + +////////////////////////////////////////// +// DlgRef_1Sel3Radio1Sel1Spin +////////////////////////////////////////// + +#include "ui_DlgRef_3Radio1Sel1Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_3Radio1Sel1Spin : public QWidget, + public Ui::DlgRef_3Radio1Sel1Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_3Radio1Sel1Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_3Radio1Sel1Spin(); +}; + +////////////////////////////////////////// +// DlgRef_3Sel1Check +////////////////////////////////////////// + +#include "ui_DlgRef_3Sel1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_3Sel1Check : public QWidget, + public Ui::DlgRef_3Sel1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_3Sel1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_3Sel1Check(); +}; + +////////////////////////////////////////// +// DlgRef_3Sel1Spin +////////////////////////////////////////// + +#include "ui_DlgRef_3Sel1Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_3Sel1Spin : public QWidget, + public Ui::DlgRef_3Sel1Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_3Sel1Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_3Sel1Spin(); +}; + +////////////////////////////////////////// +// DlgRef_3Sel3Spin1Check +////////////////////////////////////////// + +#include "ui_DlgRef_3Sel3Spin1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_3Sel3Spin1Check : public QWidget, + public Ui::DlgRef_3Sel3Spin1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_3Sel3Spin1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_3Sel3Spin1Check(); + + void ShowRows( int, int, bool = true ); +}; + +////////////////////////////////////////// +// DlgRef_3Sel3Spin2Check +////////////////////////////////////////// + +#include "ui_DlgRef_3Sel3Spin2Check_QTD.h" + +class DLGREF_EXPORT DlgRef_3Sel3Spin2Check : public QWidget, + public Ui::DlgRef_3Sel3Spin2Check_QTD +{ + Q_OBJECT + +public: + DlgRef_3Sel3Spin2Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_3Sel3Spin2Check(); + + void ShowRows( int, int, bool = true ); +}; + +////////////////////////////////////////// +// DlgRef_3Sel4Spin2Check +////////////////////////////////////////// + +#include "ui_DlgRef_3Sel4Spin2Check_QTD.h" + +class DLGREF_EXPORT DlgRef_3Sel4Spin2Check : public QWidget, + public Ui::DlgRef_3Sel4Spin2Check_QTD +{ + Q_OBJECT + +public: + DlgRef_3Sel4Spin2Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_3Sel4Spin2Check(); +}; + +////////////////////////////////////////// +// DlgRef_3Sel +////////////////////////////////////////// + +#include "ui_DlgRef_3Sel_QTD.h" + +class DLGREF_EXPORT DlgRef_3Sel : public QWidget, + public Ui::DlgRef_3Sel_QTD +{ + Q_OBJECT + +public: + DlgRef_3Sel( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_3Sel(); +}; + +////////////////////////////////////////// +// DlgRef_3Spin1Check +////////////////////////////////////////// + +#include "ui_DlgRef_3Spin1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_3Spin1Check : public QWidget, + public Ui::DlgRef_3Spin1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_3Spin1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_3Spin1Check(); +}; + +////////////////////////////////////////// +// DlgRef_3Spin +////////////////////////////////////////// + +#include "ui_DlgRef_3Spin_QTD.h" + +class DLGREF_EXPORT DlgRef_3Spin : public QWidget, + public Ui::DlgRef_3Spin_QTD +{ + Q_OBJECT + +public: + DlgRef_3Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_3Spin(); +}; + +////////////////////////////////////////// +// DlgRef_4Sel1List1Check +////////////////////////////////////////// + +#include "ui_DlgRef_4Sel1List1Check_QTD.h" + +class DLGREF_EXPORT DlgRef_4Sel1List1Check : public QWidget, + public Ui::DlgRef_4Sel1List1Check_QTD +{ + Q_OBJECT + +public: + DlgRef_4Sel1List1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_4Sel1List1Check(); +}; + +////////////////////////////////////////// +// DlgRef_4Sel1List +////////////////////////////////////////// + +#include "ui_DlgRef_4Sel1List_QTD.h" + +class DLGREF_EXPORT DlgRef_4Sel1List : public QWidget, + public Ui::DlgRef_4Sel1List_QTD +{ + Q_OBJECT + +public: + DlgRef_4Sel1List( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_4Sel1List(); +}; + +////////////////////////////////////////// +// DlgRef_4Sel1Spin2Check +////////////////////////////////////////// + +#include "ui_DlgRef_4Sel1Spin2Check_QTD.h" + +class DLGREF_EXPORT DlgRef_4Sel1Spin2Check : public QWidget, + public Ui::DlgRef_4Sel1Spin2Check_QTD +{ + Q_OBJECT + +public: + DlgRef_4Sel1Spin2Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_4Sel1Spin2Check(); + + void ShowRows( int, int, bool = true ); +}; + +////////////////////////////////////////// +// DlgRef_4Sel1Spin2Check +////////////////////////////////////////// + +#include "ui_DlgRef_4Sel1Spin3Check_QTD.h" + +class DLGREF_EXPORT DlgRef_4Sel1Spin3Check : public QWidget, + public Ui::DlgRef_4Sel1Spin3Check_QTD +{ + Q_OBJECT + +public: + DlgRef_4Sel1Spin3Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_4Sel1Spin3Check(); +}; + +////////////////////////////////////////// +// DlgRef_6Sel +////////////////////////////////////////// + +#include "ui_DlgRef_6Sel_QTD.h" + +class DLGREF_EXPORT DlgRef_6Sel : public QWidget, + public Ui::DlgRef_6Sel_QTD +{ + Q_OBJECT + +public: + DlgRef_6Sel( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_6Sel(); +}; + +////////////////////////////////////////// +// DlgRef_Skeleton +////////////////////////////////////////// + +#include "ui_DlgRef_Skeleton_QTD.h" + +class DLGREF_EXPORT DlgRef_Skeleton : public QWidget, + public Ui::DlgRef_Skeleton_QTD +{ + Q_OBJECT + +public: + DlgRef_Skeleton( QWidget* = 0, Qt::WindowFlags = 0 ); + ~DlgRef_Skeleton(); +}; + +////////////////////////////////////////// +// Utility functions +////////////////////////////////////////// + +namespace DlgRef +{ + DLGREF_EXPORT QString PrintDoubleValue( double, int = 16 ); +}; + +#endif // GEOM_DLGREF_H diff --git a/src/DlgRef/DlgRef.pro b/src/DlgRef/DlgRef.pro new file mode 100644 index 000000000..1abf89059 --- /dev/null +++ b/src/DlgRef/DlgRef.pro @@ -0,0 +1,136 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = DlgRef +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +GUI_LDFLAGS = -L$$(GUI_ROOT_DIR)/lib/salome + +STDLIB = -lstdc++ + +QT_MT_LIBS = -L$$(QTDIR)/lib -lQtCore -lQtXml -lQtGui -lQtOpenGL + +INCLUDEPATH += $${QT_INCLUDES} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} + +LIBS += $${GUI_LDFLAGS} -lqtx $${STDLIB} $${QT_MT_LIBS} + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += DLGREF_EXPORTS + +HEADERS = DlgRef_Skeleton_QTD.h +HEADERS += DlgRef_1Sel_QTD.h +HEADERS += DlgRef_2Sel_QTD.h +HEADERS += DlgRef_3Sel_QTD.h +HEADERS += DlgRef_1Sel1Check_QTD.h +HEADERS += DlgRef_1Sel3Check_QTD.h +HEADERS += DlgRef_1Sel1Check1List_QTD.h +HEADERS += DlgRef_1Sel1Spin_QTD.h +HEADERS += DlgRef_1Sel2Spin_QTD.h +HEADERS += DlgRef_1Sel3Spin_QTD.h +HEADERS += DlgRef_1Sel4Spin_QTD.h +HEADERS += DlgRef_1Sel5Spin_QTD.h +HEADERS += DlgRef_2Sel1Spin_QTD.h +HEADERS += DlgRef_2Sel2Spin_QTD.h +HEADERS += DlgRef_2Sel3Spin_QTD.h +HEADERS += DlgRef_1Sel1Spin1Check_QTD.h +HEADERS += DlgRef_1Sel3Spin1Check_QTD.h +HEADERS += DlgRef_2Sel1Spin2Check_QTD.h +HEADERS += DlgRef_2Sel2Spin1Check_QTD.h +HEADERS += DlgRef_2Sel4Spin1Check_QTD.h +HEADERS += DlgRef_3Sel4Spin2Check_QTD.h +HEADERS += DlgRef_4Sel1List_QTD.h +HEADERS += DlgRef_2Sel1List_QTD.h +HEADERS += DlgRef_1List1Spin1Btn_QTD.h +HEADERS += DlgRef_4Sel1List1Check_QTD.h +HEADERS += DlgRef_1Spin_QTD.h +HEADERS += DlgRef_2Spin_QTD.h +HEADERS += DlgRef_3Spin_QTD.h +HEADERS += DlgRef_3Spin1Check_QTD.h +HEADERS += DlgRef_3Sel3Spin1Check_QTD.h +HEADERS += DlgRef_4Sel1Spin2Check_QTD.h +HEADERS += DlgRef_4Sel1Spin3Check_QTD.h +HEADERS += DlgRef_SpinBox.h +HEADERS += DlgRef_1Sel1Spin.h +HEADERS += DlgRef_1Sel2Spin.h +HEADERS += DlgRef_1Sel3Spin.h +HEADERS += DlgRef_1Sel4Spin.h +HEADERS += DlgRef_1Sel5Spin.h +HEADERS += DlgRef_2Sel1Spin.h +HEADERS += DlgRef_2Sel2Spin.h +HEADERS += DlgRef_2Sel3Spin.h +HEADERS += DlgRef_1Sel1Spin1Check.h +HEADERS += DlgRef_1Sel3Spin1Check.h +HEADERS += DlgRef_2Sel1Spin2Check.h +HEADERS += DlgRef_2Sel2Spin1Check.h +HEADERS += DlgRef_2Sel4Spin1Check.h +HEADERS += DlgRef_3Sel4Spin2Check.h +HEADERS += DlgRef_3Sel3Spin1Check.h +HEADERS += DlgRef_1Spin.h +HEADERS += DlgRef_2Spin.h +HEADERS += DlgRef_3Spin.h +HEADERS += DlgRef_3Spin1Check.h +HEADERS += DlgRef_3Sel1Spin.h +HEADERS += DlgRef_1Sel_Ext.h +HEADERS += DlgRef_3Check_QTD.h +HEADERS += DlgRef_6Sel_QTD.h +HEADERS += DlgRef_4Sel1Spin2Check.h +HEADERS += DlgRef_3Sel1Check_QTD.h +HEADERS += GEOM_DlgRef.hxx + +SOURCES = DlgRef_SpinBox.cxx +SOURCES += DlgRef_1Sel1Spin.cxx +SOURCES += DlgRef_1Sel2Spin.cxx +SOURCES += DlgRef_1Sel3Spin.cxx +SOURCES += DlgRef_1Sel4Spin.cxx +SOURCES += DlgRef_1Sel5Spin.cxx +SOURCES += DlgRef_2Sel1Spin.cxx +SOURCES += DlgRef_2Sel2Spin.cxx +SOURCES += DlgRef_2Sel3Spin.cxx +SOURCES += DlgRef_1Sel1Spin1Check.cxx +SOURCES += DlgRef_1Sel3Spin1Check.cxx +SOURCES += DlgRef_2Sel1Spin2Check.cxx +SOURCES += DlgRef_2Sel2Spin1Check.cxx +SOURCES += DlgRef_2Sel4Spin1Check.cxx +SOURCES += DlgRef_3Sel4Spin2Check.cxx +SOURCES += DlgRef_3Sel3Spin1Check.cxx +SOURCES += DlgRef_1Spin.cxx +SOURCES += DlgRef_2Spin.cxx +SOURCES += DlgRef_3Spin.cxx +SOURCES += DlgRef_3Spin1Check.cxx +SOURCES += DlgRef_3Sel1Spin.cxx +SOURCES += DlgRef_4Sel1Spin2Check.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/DlgRef/DlgRef_1List1Spin1Btn_QTD.cxx b/src/DlgRef/DlgRef_1List1Spin1Btn_QTD.cxx deleted file mode 100644 index 0159516ca..000000000 --- a/src/DlgRef/DlgRef_1List1Spin1Btn_QTD.cxx +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1List1Spin1Btn_QTD.ui' -** -** Created: Wed Mar 17 11:29:24 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1List1Spin1Btn_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1List1Spin1Btn_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1List1Spin1Btn_QTD::DlgRef_1List1Spin1Btn_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1List1Spin1Btn_QTD" ); - resize( 204, 148 ); - setCaption( trUtf8( "DlgRef_3Sel4Spin2Check_QTD" ) ); - DlgRef_1List1Spin1Btn_QTDLayout = new QGridLayout( this, 1, 1, 11, 6, "DlgRef_1List1Spin1Btn_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - QSpacerItem* spacer = new QSpacerItem( 0, 23, QSizePolicy::Minimum, QSizePolicy::Expanding ); - GroupBox1Layout->addItem( spacer, 3, 1 ); - - ListView1 = new QListView( GroupBox1, "ListView1" ); - - GroupBox1Layout->addMultiCellWidget( ListView1, 0, 3, 0, 0 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - GroupBox1Layout->addWidget( TextLabel1, 0, 1 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - - GroupBox1Layout->addWidget( SpinBox1, 1, 1 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setText( trUtf8( "" ) ); - - GroupBox1Layout->addWidget( PushButton1, 2, 1 ); - - DlgRef_1List1Spin1Btn_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1List1Spin1Btn_QTD::~DlgRef_1List1Spin1Btn_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1List1Spin1Btn_QTD.h b/src/DlgRef/DlgRef_1List1Spin1Btn_QTD.h deleted file mode 100644 index a14fe62a5..000000000 --- a/src/DlgRef/DlgRef_1List1Spin1Btn_QTD.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1List1Spin1Btn_QTD.ui' -** -** Created: Wed Mar 17 11:29:24 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1LIST1SPIN1BTN_QTD_H -#define DLGREF_1LIST1SPIN1BTN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QListView; -class QListViewItem; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_1List1Spin1Btn_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1List1Spin1Btn_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1List1Spin1Btn_QTD(); - - QGroupBox* GroupBox1; - QListView* ListView1; - QLabel* TextLabel1; - QSpinBox* SpinBox1; - QPushButton* PushButton1; - - -protected: - QGridLayout* DlgRef_1List1Spin1Btn_QTDLayout; - QGridLayout* GroupBox1Layout; -}; - -#endif // DLGREF_1LIST1SPIN1BTN_QTD_H diff --git a/src/DlgRef/DlgRef_1List1Spin1Btn_QTD.ui b/src/DlgRef/DlgRef_1List1Spin1Btn_QTD.ui new file mode 100644 index 000000000..719494523 --- /dev/null +++ b/src/DlgRef/DlgRef_1List1Spin1Btn_QTD.ui @@ -0,0 +1,87 @@ + + DlgRef_1List1Spin1Btn_QTD + + + + 0 + 0 + 213 + 116 + + + + + + + + 0 + + + 0 + + + + + + + + + 9 + + + 6 + + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 16 + 120 + + + + + + + + + + + + + + + + + + TL1 + + + false + + + + + + + + + + qPixmapFromMimeSource + + ListView1 + SpinBox1 + PushButton1 + + + + diff --git a/src/DlgRef/DlgRef_1Sel1Check1List_QTD.cxx b/src/DlgRef/DlgRef_1Sel1Check1List_QTD.cxx deleted file mode 100644 index 05e896b28..000000000 --- a/src/DlgRef/DlgRef_1Sel1Check1List_QTD.cxx +++ /dev/null @@ -1,110 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Sel1Check1List_QTD.ui' -** -** Created: lun oct 27 16:18:55 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1Sel1Check1List_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel1Check1List_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Sel1Check1List_QTD::DlgRef_1Sel1Check1List_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Sel1Check1List_QTD" ); - resize( 129, 104 ); - setCaption( trUtf8( "DlgRef_1Sel1Check1List_QTD" ) ); - DlgRef_1Sel1Check1List_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel1Check1List_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - QSpacerItem* spacer = new QSpacerItem( 0, 166, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 2 ); - - CheckButton1 = new QRadioButton( GroupBox1, "CheckButton1" ); - CheckButton1->setText( trUtf8( "" ) ); - - Layout1->addMultiCellWidget( CheckButton1, 2, 2, 0, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addMultiCellWidget( TextLabel2, 1, 1, 0, 1 ); - - ComboBox1 = new QComboBox( FALSE, GroupBox1, "ComboBox1" ); - ComboBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, ComboBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( ComboBox1, 1, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_1Sel1Check1List_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel1Check1List_QTD::~DlgRef_1Sel1Check1List_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1Sel1Check1List_QTD.h b/src/DlgRef/DlgRef_1Sel1Check1List_QTD.h deleted file mode 100644 index 834d71a32..000000000 --- a/src/DlgRef/DlgRef_1Sel1Check1List_QTD.h +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel1Check1List_QTD.ui' -** -** Created: lun oct 27 16:18:55 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1SEL1CHECK1LIST_QTD_H -#define DLGREF_1SEL1CHECK1LIST_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QComboBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QRadioButton; - -class GEOM_DLGREF_EXPORT DlgRef_1Sel1Check1List_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Sel1Check1List_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel1Check1List_QTD(); - - QGroupBox* GroupBox1; - QRadioButton* CheckButton1; - QLabel* TextLabel2; - QComboBox* ComboBox1; - QLineEdit* LineEdit1; - QLabel* TextLabel1; - QPushButton* PushButton1; - - -protected: - QGridLayout* DlgRef_1Sel1Check1List_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_1SEL1CHECK1LIST_QTD_H diff --git a/src/DlgRef/DlgRef_1Sel1Check1List_QTD.ui b/src/DlgRef/DlgRef_1Sel1Check1List_QTD.ui new file mode 100644 index 000000000..67e158a1b --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel1Check1List_QTD.ui @@ -0,0 +1,122 @@ + + DlgRef_1Sel1Check1List_QTD + + + + 0 + 0 + 156 + 94 + + + + + + + + 0 + + + 0 + + + + + + + + + 9 + + + 6 + + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + 7 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + ComboBox1 + CheckButton1 + + + + diff --git a/src/DlgRef/DlgRef_1Sel1Check1Sel_QTD.ui b/src/DlgRef/DlgRef_1Sel1Check1Sel_QTD.ui new file mode 100644 index 000000000..a8b94432f --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel1Check1Sel_QTD.ui @@ -0,0 +1,148 @@ + + DlgRef_1Sel1Check1Sel_QTD + + + + 0 + 0 + 156 + 99 + + + + + 5 + 5 + 0 + 0 + + + + + + + + 0 + + + 0 + + + + + + 5 + 5 + 0 + 0 + + + + + + + + 9 + + + 6 + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + CheckButton1 + PushButton2 + LineEdit2 + + + + diff --git a/src/DlgRef/DlgRef_1Sel1Check_QTD.cxx b/src/DlgRef/DlgRef_1Sel1Check_QTD.cxx deleted file mode 100644 index 7c86f65c7..000000000 --- a/src/DlgRef/DlgRef_1Sel1Check_QTD.cxx +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Sel1Check_QTD.ui' -** -** Created: Thu May 20 11:55:05 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1Sel1Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel1Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Sel1Check_QTD::DlgRef_1Sel1Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Sel1Check_QTD" ); - resize( 382, 219 ); - setCaption( trUtf8( "DlgRef_1Sel1Check_QTD" ) ); - DlgRef_1Sel1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel1Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout3->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout3->addWidget( PushButton1, 0, 1 ); - - CheckButton1 = new QCheckBox( GroupBox1, "CheckButton1" ); - CheckButton1->setText( trUtf8( "" ) ); - - Layout3->addMultiCellWidget( CheckButton1, 1, 1, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout3->addItem( spacer, 2, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout3->addWidget( LineEdit1, 0, 2 ); - - GroupBox1Layout->addLayout( Layout3, 0, 0 ); - - DlgRef_1Sel1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - // tab order - setTabOrder( PushButton1, LineEdit1 ); - setTabOrder( LineEdit1, CheckButton1 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel1Check_QTD::~DlgRef_1Sel1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1Sel1Check_QTD.h b/src/DlgRef/DlgRef_1Sel1Check_QTD.h deleted file mode 100644 index ace1e2606..000000000 --- a/src/DlgRef/DlgRef_1Sel1Check_QTD.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel1Check_QTD.ui' -** -** Created: Thu May 20 11:55:05 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1SEL1CHECK_QTD_H -#define DLGREF_1SEL1CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QCheckBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_DLGREF_EXPORT DlgRef_1Sel1Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Sel1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel1Check_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel1; - QPushButton* PushButton1; - QCheckBox* CheckButton1; - QLineEdit* LineEdit1; - - -protected: - QGridLayout* DlgRef_1Sel1Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout3; -}; - -#endif // DLGREF_1SEL1CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_1Sel1Check_QTD.ui b/src/DlgRef/DlgRef_1Sel1Check_QTD.ui new file mode 100644 index 000000000..ca24f20f8 --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel1Check_QTD.ui @@ -0,0 +1,91 @@ + + DlgRef_1Sel1Check_QTD + + + + 0 + 0 + 155 + 64 + + + + + + + + 0 + + + 6 + + + + + + + + + 9 + + + 6 + + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + CheckButton1 + + + + diff --git a/src/DlgRef/DlgRef_1Sel1List1Check3Btn_QTD.ui b/src/DlgRef/DlgRef_1Sel1List1Check3Btn_QTD.ui new file mode 100644 index 000000000..366d2d6ee --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel1List1Check3Btn_QTD.ui @@ -0,0 +1,140 @@ + + DlgRef_1Sel1List1Check3Btn_QTD + + + + 0 + 0 + 156 + 180 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 21 + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + CheckButton1 + ListView1 + PushButton2 + PushButton3 + PushButton4 + + + + diff --git a/src/DlgRef/DlgRef_1Sel1Spin.cxx b/src/DlgRef/DlgRef_1Sel1Spin.cxx deleted file mode 100644 index 1788e1892..000000000 --- a/src/DlgRef/DlgRef_1Sel1Spin.cxx +++ /dev/null @@ -1,54 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel1Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_1Sel1Spin.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel1Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_1Sel1Spin::DlgRef_1Sel1Spin(QWidget* parent, const char* name, WFlags fl) - :DlgRef_1Sel1Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout2->addWidget(SpinBox_DX, 0, 1); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel1Spin::~DlgRef_1Sel1Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_1Sel1Spin.h b/src/DlgRef/DlgRef_1Sel1Spin.h deleted file mode 100644 index 3202db597..000000000 --- a/src/DlgRef/DlgRef_1Sel1Spin.h +++ /dev/null @@ -1,49 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel1Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_1SEL1SPIN_H -#define DLGREF_1SEL1SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_1Sel1Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_1Sel1Spin : public DlgRef_1Sel1Spin_QTD -{ - Q_OBJECT - -public: - DlgRef_1Sel1Spin( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel1Spin(); - - DlgRef_SpinBox* SpinBox_DX; - -}; - -#endif // DLGREF_1SEL1SPIN_H diff --git a/src/DlgRef/DlgRef_1Sel1Spin1Check.cxx b/src/DlgRef/DlgRef_1Sel1Spin1Check.cxx deleted file mode 100644 index cfca35fa2..000000000 --- a/src/DlgRef/DlgRef_1Sel1Spin1Check.cxx +++ /dev/null @@ -1,54 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel1Spin1Check.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_1Sel1Spin1Check.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel1Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_1Sel1Spin1Check::DlgRef_1Sel1Spin1Check(QWidget* parent, const char* name, WFlags fl) - :DlgRef_1Sel1Spin1Check_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout2->addWidget(SpinBox_DX, 0, 1); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel1Spin1Check::~DlgRef_1Sel1Spin1Check() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_1Sel1Spin1Check.h b/src/DlgRef/DlgRef_1Sel1Spin1Check.h deleted file mode 100644 index 0e30376eb..000000000 --- a/src/DlgRef/DlgRef_1Sel1Spin1Check.h +++ /dev/null @@ -1,49 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel1Spin1Check.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_1SEL1SPIN1CHECK_H -#define DLGREF_1SEL1SPIN1CHECK_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_1Sel1Spin1Check_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_1Sel1Spin1Check : public DlgRef_1Sel1Spin1Check_QTD -{ - Q_OBJECT - -public: - DlgRef_1Sel1Spin1Check(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_1Sel1Spin1Check(); - - DlgRef_SpinBox* SpinBox_DX; - -}; - -#endif // DLGREF_1SEL1SPIN1CHECK_H diff --git a/src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.cxx b/src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.cxx deleted file mode 100644 index 57014bf69..000000000 --- a/src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.cxx +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Sel1Spin1Check_QTD.ui' -** -** Created: Mon May 24 15:59:03 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1Sel1Spin1Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel1Spin1Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Sel1Spin1Check_QTD::DlgRef_1Sel1Spin1Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Sel1Spin1Check_QTD" ); - resize( 163, 109 ); - setCaption( trUtf8( "DlgRef_1Sel1Spin1Check_QTD" ) ); - DlgRef_1Sel1Spin1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel1Spin1Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout8 = new QGridLayout( 0, 1, 1, 0, 6, "Layout8"); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout2->addWidget( TextLabel2, 0, 0 ); - - Layout8->addMultiCellLayout( Layout2, 1, 1, 0, 2 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout8->addWidget( TextLabel1, 0, 0 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout8->addWidget( LineEdit1, 0, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout8->addWidget( PushButton1, 0, 1 ); - - CheckButton1 = new QCheckBox( GroupBox1, "CheckButton1" ); - CheckButton1->setText( trUtf8( "" ) ); - - Layout8->addMultiCellWidget( CheckButton1, 2, 2, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout8->addItem( spacer, 3, 2 ); - - GroupBox1Layout->addLayout( Layout8, 0, 0 ); - - DlgRef_1Sel1Spin1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel1Spin1Check_QTD::~DlgRef_1Sel1Spin1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.h b/src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.h deleted file mode 100644 index 1dd195db4..000000000 --- a/src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.h +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel1Spin1Check_QTD.ui' -** -** Created: Mon May 24 15:59:03 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1SEL1SPIN1CHECK_QTD_H -#define DLGREF_1SEL1SPIN1CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QCheckBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_1Sel1Spin1Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Sel1Spin1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel1Spin1Check_QTD(); - - QGroupBox* GroupBox1; - QSpinBox* SpinBox1; - QLabel* TextLabel2; - QLabel* TextLabel1; - QLineEdit* LineEdit1; - QPushButton* PushButton1; - QCheckBox* CheckButton1; - - -protected: - QGridLayout* DlgRef_1Sel1Spin1Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout8; - QGridLayout* Layout2; -}; - -#endif // DLGREF_1SEL1SPIN1CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.ui b/src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.ui new file mode 100644 index 000000000..ab8c89f83 --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel1Spin1Check_QTD.ui @@ -0,0 +1,138 @@ + + DlgRef_1Sel1Spin1Check_QTD + + + + 0 + 0 + 156 + 89 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +

      SalomeApp_DoubleSpinBox.h
      + + + + PushButton1 + LineEdit1 + SpinBox_DX + CheckButton1 + + + + diff --git a/src/DlgRef/DlgRef_1Sel1Spin_QTD.cxx b/src/DlgRef/DlgRef_1Sel1Spin_QTD.cxx deleted file mode 100644 index 716703312..000000000 --- a/src/DlgRef/DlgRef_1Sel1Spin_QTD.cxx +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Sel1Spin_QTD.ui' -** -** Created: mar sep 23 16:05:08 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1Sel1Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel1Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Sel1Spin_QTD::DlgRef_1Sel1Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Sel1Spin_QTD" ); - resize( 129, 87 ); - setCaption( trUtf8( "DlgRef_1Sel1Spin_QTD" ) ); - DlgRef_1Sel1Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel1Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout2->addWidget( TextLabel2, 0, 0 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - Layout1->addMultiCellLayout( Layout2, 1, 1, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 2, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_1Sel1Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel1Spin_QTD::~DlgRef_1Sel1Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1Sel1Spin_QTD.h b/src/DlgRef/DlgRef_1Sel1Spin_QTD.h deleted file mode 100644 index f00c396ef..000000000 --- a/src/DlgRef/DlgRef_1Sel1Spin_QTD.h +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel1Spin_QTD.ui' -** -** Created: mar sep 23 16:05:08 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1SEL1SPIN_QTD_H -#define DLGREF_1SEL1SPIN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_1Sel1Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Sel1Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel1Spin_QTD(); - - QGroupBox* GroupBox1; - QPushButton* PushButton1; - QLabel* TextLabel1; - QLineEdit* LineEdit1; - QLabel* TextLabel2; - QSpinBox* SpinBox1; - - -protected: - QGridLayout* DlgRef_1Sel1Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // DLGREF_1SEL1SPIN_QTD_H diff --git a/src/DlgRef/DlgRef_1Sel1Spin_QTD.ui b/src/DlgRef/DlgRef_1Sel1Spin_QTD.ui new file mode 100644 index 000000000..06d9d7c13 --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel1Spin_QTD.ui @@ -0,0 +1,130 @@ + + DlgRef_1Sel1Spin_QTD + + + + 0 + 0 + 156 + 70 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + SpinBox_DX + + + +
      diff --git a/src/DlgRef/DlgRef_1Sel2Spin.cxx b/src/DlgRef/DlgRef_1Sel2Spin.cxx deleted file mode 100644 index 17b68a9a5..000000000 --- a/src/DlgRef/DlgRef_1Sel2Spin.cxx +++ /dev/null @@ -1,60 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel2Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_1Sel2Spin.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel2Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_1Sel2Spin::DlgRef_1Sel2Spin(QWidget* parent, const char* name, WFlags fl) - :DlgRef_1Sel2Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout2->addWidget(SpinBox_DX, 0, 1); - - SpinBox_DY = new DlgRef_SpinBox( GroupBox1, "SpinBox_DY"); - Layout2->addWidget(SpinBox_DY, 1, 1); - -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel2Spin::~DlgRef_1Sel2Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_1Sel2Spin.h b/src/DlgRef/DlgRef_1Sel2Spin.h deleted file mode 100644 index c7e8054c1..000000000 --- a/src/DlgRef/DlgRef_1Sel2Spin.h +++ /dev/null @@ -1,50 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel2Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_1SEL2SPIN_H -#define DLGREF_1SEL2SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_1Sel2Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_1Sel2Spin : public DlgRef_1Sel2Spin_QTD -{ - Q_OBJECT - -public: - DlgRef_1Sel2Spin(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_1Sel2Spin(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - -}; - -#endif // DLGREF_1SEL2SPIN_H diff --git a/src/DlgRef/DlgRef_1Sel2Spin1View1Check_QTD.ui b/src/DlgRef/DlgRef_1Sel2Spin1View1Check_QTD.ui new file mode 100644 index 000000000..675626f54 --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel2Spin1View1Check_QTD.ui @@ -0,0 +1,146 @@ + + DlgRef_1Sel2Spin1View1Check_QTD + + + + 0 + 0 + 176 + 220 + + + + + + + + 0 + + + 6 + + + + + + + + + 9 + + + 6 + + + + + + + + + + + + + + Check + + + + + + + + 0 + 0 + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_IntSpinBox + QSpinBox +
      SalomeApp_IntSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + SpinBox1 + SpinBox2 + TextBrowser1 + CheckBox1 + + + +
      diff --git a/src/DlgRef/DlgRef_1Sel2Spin_QTD.cxx b/src/DlgRef/DlgRef_1Sel2Spin_QTD.cxx deleted file mode 100644 index ea98f7166..000000000 --- a/src/DlgRef/DlgRef_1Sel2Spin_QTD.cxx +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Sel2Spin_QTD.ui' -** -** Created: jeu oct 2 11:08:05 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1Sel2Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel2Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Sel2Spin_QTD::DlgRef_1Sel2Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Sel2Spin_QTD" ); - resize( 129, 115 ); - setCaption( trUtf8( "DlgRef_1Sel2Spin_QTD" ) ); - DlgRef_1Sel2Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel2Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 1, 0 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout2->addWidget( TextLabel2, 0, 0 ); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox2, 1, 1 ); - - Layout1->addMultiCellLayout( Layout2, 1, 1, 0, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 30, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 2, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_1Sel2Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel2Spin_QTD::~DlgRef_1Sel2Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1Sel2Spin_QTD.h b/src/DlgRef/DlgRef_1Sel2Spin_QTD.h deleted file mode 100644 index b85a76a37..000000000 --- a/src/DlgRef/DlgRef_1Sel2Spin_QTD.h +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel2Spin_QTD.ui' -** -** Created: jeu oct 2 11:08:05 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1SEL2SPIN_QTD_H -#define DLGREF_1SEL2SPIN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_1Sel2Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Sel2Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel2Spin_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel3; - QSpinBox* SpinBox1; - QLabel* TextLabel2; - QSpinBox* SpinBox2; - QLineEdit* LineEdit1; - QPushButton* PushButton1; - QLabel* TextLabel1; - - -protected: - QGridLayout* DlgRef_1Sel2Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // DLGREF_1SEL2SPIN_QTD_H diff --git a/src/DlgRef/DlgRef_1Sel2Spin_QTD.ui b/src/DlgRef/DlgRef_1Sel2Spin_QTD.ui new file mode 100644 index 000000000..432160bea --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel2Spin_QTD.ui @@ -0,0 +1,150 @@ + + DlgRef_1Sel2Spin_QTD + + + + 0 + 0 + 156 + 95 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + SpinBox_DX + SpinBox_DY + + + +
      diff --git a/src/DlgRef/DlgRef_1Sel3Check_QTD.cxx b/src/DlgRef/DlgRef_1Sel3Check_QTD.cxx deleted file mode 100644 index db0cb79ec..000000000 --- a/src/DlgRef/DlgRef_1Sel3Check_QTD.cxx +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Sel3Check_QTD.ui' -** -** Created: Thu May 20 10:15:08 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1Sel3Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel3Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Sel3Check_QTD::DlgRef_1Sel3Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Sel3Check_QTD" ); - resize( 163, 116 ); - setCaption( trUtf8( "DlgRef_1Sel3Check_QTD" ) ); - DlgRef_1Sel3Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel3Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout6 = new QGridLayout( 0, 1, 1, 0, 6, "Layout6"); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout6->addItem( spacer, 4, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout6->addWidget( LineEdit1, 0, 2 ); - - CheckButton2 = new QCheckBox( GroupBox1, "CheckButton2" ); - CheckButton2->setText( trUtf8( "" ) ); - - Layout6->addMultiCellWidget( CheckButton2, 2, 2, 0, 2 ); - - CheckButton1 = new QCheckBox( GroupBox1, "CheckButton1" ); - CheckButton1->setText( trUtf8( "" ) ); - - Layout6->addMultiCellWidget( CheckButton1, 1, 1, 0, 2 ); - - CheckButton3 = new QCheckBox( GroupBox1, "CheckButton3" ); - CheckButton3->setText( trUtf8( "" ) ); - - Layout6->addMultiCellWidget( CheckButton3, 3, 3, 0, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout6->addWidget( PushButton1, 0, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout6->addWidget( TextLabel1, 0, 0 ); - - GroupBox1Layout->addLayout( Layout6, 0, 0 ); - - DlgRef_1Sel3Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - // tab order - setTabOrder( PushButton1, LineEdit1 ); - setTabOrder( LineEdit1, CheckButton1 ); - setTabOrder( CheckButton1, CheckButton2 ); - setTabOrder( CheckButton2, CheckButton3 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel3Check_QTD::~DlgRef_1Sel3Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1Sel3Check_QTD.h b/src/DlgRef/DlgRef_1Sel3Check_QTD.h deleted file mode 100644 index 83e38df33..000000000 --- a/src/DlgRef/DlgRef_1Sel3Check_QTD.h +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel3Check_QTD.ui' -** -** Created: Thu May 20 10:15:07 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1SEL3CHECK_QTD_H -#define DLGREF_1SEL3CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QCheckBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_DLGREF_EXPORT DlgRef_1Sel3Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Sel3Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel3Check_QTD(); - - QGroupBox* GroupBox1; - QLineEdit* LineEdit1; - QCheckBox* CheckButton2; - QCheckBox* CheckButton1; - QCheckBox* CheckButton3; - QPushButton* PushButton1; - QLabel* TextLabel1; - - -protected: - QGridLayout* DlgRef_1Sel3Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout6; -}; - -#endif // DLGREF_1SEL3CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_1Sel3Check_QTD.ui b/src/DlgRef/DlgRef_1Sel3Check_QTD.ui new file mode 100644 index 000000000..bcc2e309d --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel3Check_QTD.ui @@ -0,0 +1,107 @@ + + DlgRef_1Sel3Check_QTD + + + + 0 + 0 + 155 + 114 + + + + + + + + 0 + + + 0 + + + + + + + + + 9 + + + 6 + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + CheckButton1 + CheckButton2 + CheckButton3 + + + + diff --git a/src/DlgRef/DlgRef_1Sel3Spin.cxx b/src/DlgRef/DlgRef_1Sel3Spin.cxx deleted file mode 100644 index a356d2f1f..000000000 --- a/src/DlgRef/DlgRef_1Sel3Spin.cxx +++ /dev/null @@ -1,63 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel3Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_1Sel3Spin.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel3Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_1Sel3Spin::DlgRef_1Sel3Spin(QWidget* parent, const char* name, WFlags fl) - :DlgRef_1Sel3Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout2->addWidget(SpinBox_DX, 0, 1); - - SpinBox_DY = new DlgRef_SpinBox( GroupBox1, "SpinBox_DY"); - Layout2->addWidget(SpinBox_DY, 1, 1); - - SpinBox_DZ = new DlgRef_SpinBox( GroupBox1, "SpinBox_DZ"); - Layout2->addWidget(SpinBox_DZ, 2, 1); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel3Spin::~DlgRef_1Sel3Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_1Sel3Spin.h b/src/DlgRef/DlgRef_1Sel3Spin.h deleted file mode 100644 index f307a283b..000000000 --- a/src/DlgRef/DlgRef_1Sel3Spin.h +++ /dev/null @@ -1,51 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel3Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_1SEL3SPIN_H -#define DLGREF_1SEL3SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_1Sel3Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_1Sel3Spin : public DlgRef_1Sel3Spin_QTD -{ - Q_OBJECT - -public: - DlgRef_1Sel3Spin(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_1Sel3Spin(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - DlgRef_SpinBox* SpinBox_DZ; - -}; - -#endif // DLGREF_1SEL3SPIN_H diff --git a/src/DlgRef/DlgRef_1Sel3Spin1Check_QTD.ui b/src/DlgRef/DlgRef_1Sel3Spin1Check_QTD.ui new file mode 100644 index 000000000..37a9f4a66 --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel3Spin1Check_QTD.ui @@ -0,0 +1,177 @@ + + DlgRef_1Sel3Spin1Check_QTD + + + + 0 + 0 + 156 + 120 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + SpinBox_DX + SpinBox_DY + SpinBox_DZ + + + +
      diff --git a/src/DlgRef/DlgRef_1Sel3Spin_QTD.cxx b/src/DlgRef/DlgRef_1Sel3Spin_QTD.cxx deleted file mode 100644 index e0356a604..000000000 --- a/src/DlgRef/DlgRef_1Sel3Spin_QTD.cxx +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Sel3Spin_QTD.ui' -** -** Created: ven oct 24 15:55:11 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1Sel3Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel3Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Sel3Spin_QTD::DlgRef_1Sel3Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Sel3Spin_QTD" ); - resize( 129, 143 ); - setCaption( trUtf8( "DlgRef_1Sel3Spin_QTD" ) ); - DlgRef_1Sel3Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel3Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 150, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 2, 2 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox2, 1, 1 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 1, 0 ); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox3, 2, 1 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 2, 0 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout2->addWidget( TextLabel2, 0, 0 ); - - Layout1->addMultiCellLayout( Layout2, 1, 1, 0, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_1Sel3Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel3Spin_QTD::~DlgRef_1Sel3Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1Sel3Spin_QTD.h b/src/DlgRef/DlgRef_1Sel3Spin_QTD.h deleted file mode 100644 index 61b0d21f0..000000000 --- a/src/DlgRef/DlgRef_1Sel3Spin_QTD.h +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel3Spin_QTD.ui' -** -** Created: ven oct 24 15:55:10 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1SEL3SPIN_QTD_H -#define DLGREF_1SEL3SPIN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_1Sel3Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Sel3Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel3Spin_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel1; - QPushButton* PushButton1; - QLineEdit* LineEdit1; - QSpinBox* SpinBox2; - QLabel* TextLabel3; - QSpinBox* SpinBox3; - QSpinBox* SpinBox1; - QLabel* TextLabel4; - QLabel* TextLabel2; - - -protected: - QGridLayout* DlgRef_1Sel3Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // DLGREF_1SEL3SPIN_QTD_H diff --git a/src/DlgRef/DlgRef_1Sel3Spin_QTD.ui b/src/DlgRef/DlgRef_1Sel3Spin_QTD.ui new file mode 100644 index 000000000..6ec567c6e --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel3Spin_QTD.ui @@ -0,0 +1,170 @@ + + DlgRef_1Sel3Spin_QTD + + + + 0 + 0 + 156 + 120 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + SpinBox_DX + SpinBox_DY + SpinBox_DZ + + + +
      diff --git a/src/DlgRef/DlgRef_1Sel4Spin.cxx b/src/DlgRef/DlgRef_1Sel4Spin.cxx deleted file mode 100644 index 66af2fea2..000000000 --- a/src/DlgRef/DlgRef_1Sel4Spin.cxx +++ /dev/null @@ -1,67 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel4Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_1Sel4Spin.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel4Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_1Sel4Spin::DlgRef_1Sel4Spin(QWidget* parent, const char* name, WFlags fl) - :DlgRef_1Sel4Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - SpinBox4->close(TRUE); - - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout3->addWidget(SpinBox_DX, 0, 2); - - SpinBox_DY = new DlgRef_SpinBox( GroupBox1, "SpinBox_DY"); - Layout3->addWidget(SpinBox_DY, 0, 4); - - SpinBox_DZ = new DlgRef_SpinBox( GroupBox1, "SpinBox_DZ"); - Layout3->addWidget(SpinBox_DZ, 0, 6); - - SpinBox_S = new DlgRef_SpinBox( GroupBox1, "SpinBox_S"); - Layout4->addWidget(SpinBox_S, 0, 1); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel4Spin::~DlgRef_1Sel4Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_1Sel4Spin.h b/src/DlgRef/DlgRef_1Sel4Spin.h deleted file mode 100644 index 4dcfeb3c6..000000000 --- a/src/DlgRef/DlgRef_1Sel4Spin.h +++ /dev/null @@ -1,53 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel4Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_1SEL4SPIN_H -#define DLGREF_1SEL4SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_1Sel4Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_1Sel4Spin : public DlgRef_1Sel4Spin_QTD -{ - Q_OBJECT - -public: - DlgRef_1Sel4Spin( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel4Spin(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - DlgRef_SpinBox* SpinBox_DZ; - - DlgRef_SpinBox* SpinBox_S; - -}; - -#endif // DLGREF_1SEL4SPIN_H diff --git a/src/DlgRef/DlgRef_1Sel4Spin_QTD.cxx b/src/DlgRef/DlgRef_1Sel4Spin_QTD.cxx deleted file mode 100644 index f245c6292..000000000 --- a/src/DlgRef/DlgRef_1Sel4Spin_QTD.cxx +++ /dev/null @@ -1,151 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Sel4Spin_QTD.ui' -** -** Created: mar sep 23 16:05:09 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1Sel4Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel4Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Sel4Spin_QTD::DlgRef_1Sel4Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Sel4Spin_QTD" ); - resize( 284, 119 ); - setCaption( trUtf8( "DlgRef_1Sel4Spin_QTD" ) ); - DlgRef_1Sel4Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel4Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - TextLabel5->setText( trUtf8( "TL5" ) ); - - Layout3->addWidget( TextLabel5, 0, 5 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout3->addWidget( TextLabel3, 0, 1 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout3->addWidget( TextLabel4, 0, 3 ); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout3->addWidget( SpinBox3, 0, 6 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout3->addWidget( SpinBox1, 0, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout3->addWidget( TextLabel2, 0, 0 ); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout3->addWidget( SpinBox2, 0, 4 ); - - Layout1->addLayout( Layout3, 1, 0 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 0 ); - - Layout4 = new QGridLayout( 0, 1, 1, 0, 6, "Layout4"); - - TextLabel6 = new QLabel( GroupBox1, "TextLabel6" ); - TextLabel6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel6->sizePolicy().hasHeightForWidth() ) ); - TextLabel6->setText( trUtf8( "TL6" ) ); - - Layout4->addWidget( TextLabel6, 0, 0 ); - - SpinBox4 = new QSpinBox( GroupBox1, "SpinBox4" ); - - Layout4->addWidget( SpinBox4, 0, 1 ); - - Layout1->addLayout( Layout4, 2, 0 ); - - Layout2 = new QHBoxLayout( 0, 0, 6, "Layout2"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - Layout2->addWidget( TextLabel1 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - Layout2->addWidget( PushButton1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - Layout2->addWidget( LineEdit1 ); - - Layout1->addLayout( Layout2, 0, 0 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_1Sel4Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel4Spin_QTD::~DlgRef_1Sel4Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1Sel4Spin_QTD.h b/src/DlgRef/DlgRef_1Sel4Spin_QTD.h deleted file mode 100644 index a865d411b..000000000 --- a/src/DlgRef/DlgRef_1Sel4Spin_QTD.h +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel4Spin_QTD.ui' -** -** Created: mar sep 23 16:05:09 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1SEL4SPIN_QTD_H -#define DLGREF_1SEL4SPIN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_1Sel4Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Sel4Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel4Spin_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel5; - QLabel* TextLabel3; - QLabel* TextLabel4; - QSpinBox* SpinBox3; - QSpinBox* SpinBox1; - QLabel* TextLabel2; - QSpinBox* SpinBox2; - QLabel* TextLabel6; - QSpinBox* SpinBox4; - QLabel* TextLabel1; - QPushButton* PushButton1; - QLineEdit* LineEdit1; - - -protected: - QGridLayout* DlgRef_1Sel4Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout3; - QGridLayout* Layout4; - QHBoxLayout* Layout2; -}; - -#endif // DLGREF_1SEL4SPIN_QTD_H diff --git a/src/DlgRef/DlgRef_1Sel4Spin_QTD.ui b/src/DlgRef/DlgRef_1Sel4Spin_QTD.ui new file mode 100644 index 000000000..5bb4e299c --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel4Spin_QTD.ui @@ -0,0 +1,214 @@ + + DlgRef_1Sel4Spin_QTD + + + + 0 + 0 + 271 + 117 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + TL6 + + + false + + + + + + + + + + + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + qPixmapFromMimeSource + + + QtxDoubleSpinBox + QDoubleSpinBox +
      QtxDoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + SpinBox_DX + SpinBox_DY + SpinBox_DZ + SpinBox_S + + + +
      diff --git a/src/DlgRef/DlgRef_1Sel5Spin.cxx b/src/DlgRef/DlgRef_1Sel5Spin.cxx deleted file mode 100644 index 1820c25e2..000000000 --- a/src/DlgRef/DlgRef_1Sel5Spin.cxx +++ /dev/null @@ -1,71 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel5Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_1Sel5Spin.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel5Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_1Sel5Spin::DlgRef_1Sel5Spin(QWidget* parent, const char* name, WFlags fl) - :DlgRef_1Sel5Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - SpinBox4->close(TRUE); - SpinBox5->close(TRUE); - - SpinBox_1 = new DlgRef_SpinBox(GroupBox1, "SpinBox_1"); - Layout2->addWidget(SpinBox_1, 0, 1); - - SpinBox_2 = new DlgRef_SpinBox(GroupBox1, "SpinBox_2"); - Layout2->addWidget(SpinBox_2, 0, 3); - - SpinBox_3 = new DlgRef_SpinBox(GroupBox1, "SpinBox_3"); - Layout2->addWidget(SpinBox_3, 2, 1); - - SpinBox_4 = new DlgRef_SpinBox(GroupBox1, "SpinBox_4"); - Layout2->addWidget(SpinBox_4, 1, 1); - - SpinBox_5 = new DlgRef_SpinBox(GroupBox1, "SpinBox_5"); - Layout2->addWidget(SpinBox_5, 1, 3); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel5Spin::~DlgRef_1Sel5Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_1Sel5Spin.h b/src/DlgRef/DlgRef_1Sel5Spin.h deleted file mode 100644 index e1bbefbeb..000000000 --- a/src/DlgRef/DlgRef_1Sel5Spin.h +++ /dev/null @@ -1,53 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel5Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_1SEL5SPIN_H -#define DLGREF_1SEL5SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_1Sel5Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_1Sel5Spin : public DlgRef_1Sel5Spin_QTD -{ - Q_OBJECT - -public: - DlgRef_1Sel5Spin( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel5Spin(); - - DlgRef_SpinBox* SpinBox_1; - DlgRef_SpinBox* SpinBox_2; - DlgRef_SpinBox* SpinBox_3; - DlgRef_SpinBox* SpinBox_4; - DlgRef_SpinBox* SpinBox_5; - -}; - -#endif // DLGREF_1SEL5SPIN_H diff --git a/src/DlgRef/DlgRef_1Sel5Spin1Check.cxx b/src/DlgRef/DlgRef_1Sel5Spin1Check.cxx deleted file mode 100644 index d683e9745..000000000 --- a/src/DlgRef/DlgRef_1Sel5Spin1Check.cxx +++ /dev/null @@ -1,71 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel5Spin1Check.cxx -// Author : Vladimir TURIN -// Module : GEOM -// $Header: - -#include "DlgRef_1Sel5Spin1Check.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel5Spin1Check which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_1Sel5Spin1Check::DlgRef_1Sel5Spin1Check(QWidget* parent, const char* name, WFlags fl) - :DlgRef_1Sel5Spin1Check_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - SpinBox4->close(TRUE); - SpinBox5->close(TRUE); - - SpinBox_1 = new DlgRef_SpinBox(GroupBox1, "SpinBox_1"); - Layout2->addWidget(SpinBox_1, 0, 1); - - SpinBox_2 = new DlgRef_SpinBox(GroupBox1, "SpinBox_2"); - Layout2->addWidget(SpinBox_2, 0, 3); - - SpinBox_3 = new DlgRef_SpinBox(GroupBox1, "SpinBox_3"); - Layout2->addWidget(SpinBox_3, 2, 1); - - SpinBox_4 = new DlgRef_SpinBox(GroupBox1, "SpinBox_4"); - Layout2->addWidget(SpinBox_4, 1, 1); - - SpinBox_5 = new DlgRef_SpinBox(GroupBox1, "SpinBox_5"); - Layout2->addWidget(SpinBox_5, 1, 3); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel5Spin1Check::~DlgRef_1Sel5Spin1Check() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_1Sel5Spin1Check.h b/src/DlgRef/DlgRef_1Sel5Spin1Check.h deleted file mode 100644 index 271839c42..000000000 --- a/src/DlgRef/DlgRef_1Sel5Spin1Check.h +++ /dev/null @@ -1,53 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Sel5Spin1Check.h -// Author : Vladimir TURIN -// Module : GEOM -// $Header: - -#ifndef DLGREF_1SEL5SPIN_H -#define DLGREF_1SEL5SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_1Sel5Spin1Check_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_1Sel5Spin1Check : public DlgRef_1Sel5Spin1Check_QTD -{ - Q_OBJECT - -public: - DlgRef_1Sel5Spin1Check( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel5Spin1Check(); - - DlgRef_SpinBox* SpinBox_1; - DlgRef_SpinBox* SpinBox_2; - DlgRef_SpinBox* SpinBox_3; - DlgRef_SpinBox* SpinBox_4; - DlgRef_SpinBox* SpinBox_5; - -}; - -#endif // DLGREF_1SEL5SPIN_H diff --git a/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.cxx b/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.cxx deleted file mode 100644 index 27857593a..000000000 --- a/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.cxx +++ /dev/null @@ -1,150 +0,0 @@ -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Sel5Spin1Check_QTD.ui' -** -** Created: Fri Feb 1 14:04:55 2008 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include "DlgRef_1Sel5Spin1Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel5Spin1Check_QTD as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Sel5Spin1Check_QTD::DlgRef_1Sel5Spin1Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Sel5Spin1Check_QTD" ); - DlgRef_1Sel5Spin1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel5Spin1Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox2, 0, 3 ); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox3, 2, 1 ); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( TextLabel5, 1, 0 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( TextLabel3, 0, 2 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( TextLabel4, 2, 0 ); - - SpinBox4 = new QSpinBox( GroupBox1, "SpinBox4" ); - SpinBox4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox4->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox4, 1, 1 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - TextLabel6 = new QLabel( GroupBox1, "TextLabel6" ); - TextLabel6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel6->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( TextLabel6, 1, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( TextLabel2, 0, 0 ); - - SpinBox5 = new QSpinBox( GroupBox1, "SpinBox5" ); - SpinBox5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox5->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox5, 1, 3 ); - - CheckBox1 = new QCheckBox( GroupBox1, "CheckBox1" ); - - Layout2->addMultiCellWidget( CheckBox1, 2, 2, 2, 3 ); - - Layout1->addMultiCellLayout( Layout2, 1, 1, 0, 2 ); - Spacer6 = new QSpacerItem( 0, 120, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( Spacer6, 2, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_1Sel5Spin1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - languageChange(); - resize( QSize(162, 143).expandedTo(minimumSizeHint()) ); - clearWState( WState_Polished ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel5Spin1Check_QTD::~DlgRef_1Sel5Spin1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void DlgRef_1Sel5Spin1Check_QTD::languageChange() -{ - setCaption( tr( "DlgRef_1Sel5Spin1Check_QTD" ) ); - GroupBox1->setTitle( QString::null ); - TextLabel1->setText( tr( "TL1" ) ); - PushButton1->setText( QString::null ); - TextLabel5->setText( tr( "TL5" ) ); - TextLabel3->setText( tr( "TL3" ) ); - TextLabel4->setText( tr( "TL4" ) ); - TextLabel6->setText( tr( "TL6" ) ); - TextLabel2->setText( tr( "TL2" ) ); - CheckBox1->setText( QString::null ); -} - diff --git a/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.h b/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.h deleted file mode 100644 index 0f7fbc84b..000000000 --- a/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.h +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel5Spin1Check_QTD.ui' -** -** Created: Fri Feb 1 14:04:51 2008 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#ifndef DLGREF_1SEL5SPIN1CHECK_QTD_H -#define DLGREF_1SEL5SPIN1CHECK_QTD_H - -#include -#include - -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QSpacerItem; -class QGroupBox; -class QLabel; -class QPushButton; -class QSpinBox; -class QCheckBox; -class QLineEdit; - -class DlgRef_1Sel5Spin1Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Sel5Spin1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel5Spin1Check_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel1; - QPushButton* PushButton1; - QSpinBox* SpinBox2; - QSpinBox* SpinBox3; - QLabel* TextLabel5; - QLabel* TextLabel3; - QLabel* TextLabel4; - QSpinBox* SpinBox4; - QSpinBox* SpinBox1; - QLabel* TextLabel6; - QLabel* TextLabel2; - QSpinBox* SpinBox5; - QCheckBox* CheckBox1; - QLineEdit* LineEdit1; - -protected: - QGridLayout* DlgRef_1Sel5Spin1Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QSpacerItem* Spacer6; - QGridLayout* Layout2; - -protected slots: - virtual void languageChange(); - -}; - -#endif // DLGREF_1SEL5SPIN1CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.ui b/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.ui new file mode 100644 index 000000000..3c50b200c --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel5Spin1Check_QTD.ui @@ -0,0 +1,196 @@ + + DlgRef_1Sel5Spin1Check_QTD + + + + 0 + 0 + 165 + 125 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + + + + + 0 + 0 + + + + TL6 + + + false + + + + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + + + + + + + + + + + + + + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + SpinBox1 + SpinBox2 + SpinBox4 + SpinBox5 + SpinBox3 + CheckBox1 + + + +
      diff --git a/src/DlgRef/DlgRef_1Sel5Spin_QTD.cxx b/src/DlgRef/DlgRef_1Sel5Spin_QTD.cxx deleted file mode 100644 index 3fd23ef11..000000000 --- a/src/DlgRef/DlgRef_1Sel5Spin_QTD.cxx +++ /dev/null @@ -1,152 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Sel5Spin_QTD.ui' -** -** Created: mar nov 18 11:19:14 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1Sel5Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel5Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Sel5Spin_QTD::DlgRef_1Sel5Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Sel5Spin_QTD" ); - resize( 162, 143 ); - setCaption( trUtf8( "DlgRef_1Sel5Spin_QTD" ) ); - DlgRef_1Sel5Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel5Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox2, 0, 3 ); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox3, 2, 1 ); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - TextLabel5->setText( trUtf8( "TL5" ) ); - - Layout2->addWidget( TextLabel5, 1, 0 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 0, 2 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 2, 0 ); - - SpinBox4 = new QSpinBox( GroupBox1, "SpinBox4" ); - SpinBox4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox4->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox4, 1, 1 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - TextLabel6 = new QLabel( GroupBox1, "TextLabel6" ); - TextLabel6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel6->sizePolicy().hasHeightForWidth() ) ); - TextLabel6->setText( trUtf8( "TL6" ) ); - - Layout2->addWidget( TextLabel6, 1, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout2->addWidget( TextLabel2, 0, 0 ); - - SpinBox5 = new QSpinBox( GroupBox1, "SpinBox5" ); - SpinBox5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox5->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox5, 1, 3 ); - - Layout1->addMultiCellLayout( Layout2, 1, 1, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 120, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 2, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_1Sel5Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel5Spin_QTD::~DlgRef_1Sel5Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1Sel5Spin_QTD.h b/src/DlgRef/DlgRef_1Sel5Spin_QTD.h deleted file mode 100644 index d5375b19c..000000000 --- a/src/DlgRef/DlgRef_1Sel5Spin_QTD.h +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel5Spin_QTD.ui' -** -** Created: mar nov 18 11:19:13 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1SEL5SPIN_QTD_H -#define DLGREF_1SEL5SPIN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_1Sel5Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Sel5Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel5Spin_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel1; - QPushButton* PushButton1; - QSpinBox* SpinBox2; - QSpinBox* SpinBox3; - QLabel* TextLabel5; - QLabel* TextLabel3; - QLabel* TextLabel4; - QSpinBox* SpinBox4; - QSpinBox* SpinBox1; - QLabel* TextLabel6; - QLabel* TextLabel2; - QSpinBox* SpinBox5; - QLineEdit* LineEdit1; - - -protected: - QGridLayout* DlgRef_1Sel5Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // DLGREF_1SEL5SPIN_QTD_H diff --git a/src/DlgRef/DlgRef_1Sel5Spin_QTD.ui b/src/DlgRef/DlgRef_1Sel5Spin_QTD.ui new file mode 100644 index 000000000..eb2fd7743 --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel5Spin_QTD.ui @@ -0,0 +1,232 @@ + + DlgRef_1Sel5Spin_QTD + + + + 0 + 0 + 174 + 123 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + 0 + 0 + + + + TL6 + + + false + + + + + + + + + + + + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + + + qPixmapFromMimeSource + + + QtxDoubleSpinBox + QDoubleSpinBox +
      QtxDoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + SpinBox1 + SpinBox2 + SpinBox4 + SpinBox5 + SpinBox3 + + + +
      diff --git a/src/DlgRef/DlgRef_1SelExt_QTD.ui b/src/DlgRef/DlgRef_1SelExt_QTD.ui new file mode 100644 index 000000000..6b285a1b2 --- /dev/null +++ b/src/DlgRef/DlgRef_1SelExt_QTD.ui @@ -0,0 +1,94 @@ + + DlgRef_1SelExt_QTD + + + + 0 + 0 + 155 + 51 + + + + + + + + 0 + + + 0 + + + + + + 7 + 7 + 0 + 0 + + + + + + + + 9 + + + 6 + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + + + + diff --git a/src/DlgRef/DlgRef_1Sel_QTD.cxx b/src/DlgRef/DlgRef_1Sel_QTD.cxx deleted file mode 100644 index 0c2220e53..000000000 --- a/src/DlgRef/DlgRef_1Sel_QTD.cxx +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Sel_QTD.ui' -** -** Created: lun sep 22 17:38:06 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1Sel_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Sel_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Sel_QTD::DlgRef_1Sel_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Sel_QTD" ); - resize( 129, 57 ); - setCaption( trUtf8( "DlgRef_1Sel_QTD" ) ); - DlgRef_1Sel_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Sel_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, GroupBox1->sizePolicy().hasHeightForWidth() ) ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 1, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_1Sel_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Sel_QTD::~DlgRef_1Sel_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1Sel_QTD.h b/src/DlgRef/DlgRef_1Sel_QTD.h deleted file mode 100644 index 4fce28453..000000000 --- a/src/DlgRef/DlgRef_1Sel_QTD.h +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel_QTD.ui' -** -** Created: lun sep 22 17:38:05 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1SEL_QTD_H -#define DLGREF_1SEL_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_DLGREF_EXPORT DlgRef_1Sel_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Sel_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Sel_QTD(); - - QGroupBox* GroupBox1; - QPushButton* PushButton1; - QLineEdit* LineEdit1; - QLabel* TextLabel1; - - -protected: - QGridLayout* DlgRef_1Sel_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_1SEL_QTD_H diff --git a/src/DlgRef/DlgRef_1Sel_QTD.ui b/src/DlgRef/DlgRef_1Sel_QTD.ui new file mode 100644 index 000000000..ffcb8aa8c --- /dev/null +++ b/src/DlgRef/DlgRef_1Sel_QTD.ui @@ -0,0 +1,91 @@ + + DlgRef_1Sel_QTD + + + + 0 + 0 + 155 + 45 + + + + + + + + 0 + + + 0 + + + + + + 7 + 7 + 0 + 0 + + + + + + + + 9 + + + 6 + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + + + + diff --git a/src/DlgRef/DlgRef_1Spin.cxx b/src/DlgRef/DlgRef_1Spin.cxx deleted file mode 100644 index 00244bc79..000000000 --- a/src/DlgRef/DlgRef_1Spin.cxx +++ /dev/null @@ -1,56 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_1Spin.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_1Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_1Spin::DlgRef_1Spin(QWidget* parent, const char* name, WFlags fl) - :DlgRef_1Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout1->addWidget(SpinBox_DX, 0, 1); - -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Spin::~DlgRef_1Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_1Spin.h b/src/DlgRef/DlgRef_1Spin.h deleted file mode 100644 index 8acaa2680..000000000 --- a/src/DlgRef/DlgRef_1Spin.h +++ /dev/null @@ -1,49 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_1Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_1SPIN_H -#define DLGREF_1SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_1Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_1Spin : public DlgRef_1Spin_QTD -{ - Q_OBJECT - -public: - DlgRef_1Spin(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_1Spin(); - - DlgRef_SpinBox* SpinBox_DX; - -}; - -#endif // DLGREF_1SPIN_H diff --git a/src/DlgRef/DlgRef_1Spin_QTD.cxx b/src/DlgRef/DlgRef_1Spin_QTD.cxx deleted file mode 100644 index a028f91d9..000000000 --- a/src/DlgRef/DlgRef_1Spin_QTD.cxx +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_1Spin_QTD.ui' -** -** Created: jeu sep 25 12:22:29 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_1Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_1Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_1Spin_QTD::DlgRef_1Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_1Spin_QTD" ); - resize( 124, 55 ); - setCaption( trUtf8( "DlgRef_1Spin_QTD" ) ); - DlgRef_1Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_1Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 1 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox1, 0, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_1Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_1Spin_QTD::~DlgRef_1Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_1Spin_QTD.h b/src/DlgRef/DlgRef_1Spin_QTD.h deleted file mode 100644 index 25177e9e5..000000000 --- a/src/DlgRef/DlgRef_1Spin_QTD.h +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Spin_QTD.ui' -** -** Created: jeu sep 25 12:22:29 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_1SPIN_QTD_H -#define DLGREF_1SPIN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_1Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_1Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_1Spin_QTD(); - - QGroupBox* GroupBox1; - QSpinBox* SpinBox1; - QLabel* TextLabel1; - - -protected: - QGridLayout* DlgRef_1Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_1SPIN_QTD_H diff --git a/src/DlgRef/DlgRef_1Spin_QTD.ui b/src/DlgRef/DlgRef_1Spin_QTD.ui new file mode 100644 index 000000000..1ede440a5 --- /dev/null +++ b/src/DlgRef/DlgRef_1Spin_QTD.ui @@ -0,0 +1,93 @@ + + DlgRef_1Spin_QTD + + + + 0 + 0 + 99 + 41 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + +
      diff --git a/src/DlgRef/DlgRef_2Sel1List1Check_QTD.cxx b/src/DlgRef/DlgRef_2Sel1List1Check_QTD.cxx deleted file mode 100644 index b469af6b6..000000000 --- a/src/DlgRef/DlgRef_2Sel1List1Check_QTD.cxx +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_4Sel1List_QTD.ui' -** -** Created: lun oct 31 17:21:04 2006 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_2Sel1List1Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel1List_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_2Sel1List1Check_QTD::DlgRef_2Sel1List1Check_QTD( QWidget* parent, - const char* name, - WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_2Sel1List1Check_QTD" ); - resize( 129, 175 ); - setCaption( trUtf8( "DlgRef_2Sel1List1Check_QTD" ) ); - DlgRef_2Sel1List1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_2Sel1List1Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); - - ComboBox1 = new QComboBox( FALSE, GroupBox1, "ComboBox1" ); - ComboBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, ComboBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( ComboBox1, 2, 2 ); - - radioButton4 = new QRadioButton( GroupBox1, "radioButton4" ); - GroupBox1Layout->addMultiCellWidget( radioButton4, 3, 3, 0, 1 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_2Sel1List1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - QSpacerItem* spacer = new QSpacerItem( 0, 80, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 5, 2 ); - -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel1List1Check_QTD::~DlgRef_2Sel1List1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_2Sel1List1Check_QTD.h b/src/DlgRef/DlgRef_2Sel1List1Check_QTD.h deleted file mode 100644 index 8b636a8d9..000000000 --- a/src/DlgRef/DlgRef_2Sel1List1Check_QTD.h +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_2Sel1List_QTD.ui' -** -** Created: lun oct 31 17:21:03 2006 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_2SEL1LIST_QTD_H -#define DLGREF_2SEL1LIST_QTD_H - -#include "GEOM_DlgRef.hxx" -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QComboBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QRadioButton; - -class GEOM_DLGREF_EXPORT DlgRef_2Sel1List1Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_2Sel1List1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Sel1List1Check_QTD(); - - QGroupBox* GroupBox1; - QLineEdit* LineEdit2; - QPushButton* PushButton1; - QPushButton* PushButton2; - QLabel* TextLabel1; - QLineEdit* LineEdit1; - QLabel* TextLabel2; - QComboBox* ComboBox1; - QLabel* TextLabel3; - QRadioButton* radioButton4; - - -protected: - QGridLayout* DlgRef_2Sel1List1Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_2SEL1LIST1CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_2Sel1List1Check_QTD.ui b/src/DlgRef/DlgRef_2Sel1List1Check_QTD.ui new file mode 100644 index 000000000..463393043 --- /dev/null +++ b/src/DlgRef/DlgRef_2Sel1List1Check_QTD.ui @@ -0,0 +1,153 @@ + + DlgRef_2Sel1List1Check_QTD + + + + 0 + 0 + 211 + 121 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + ComboBox1 + + + + diff --git a/src/DlgRef/DlgRef_2Sel1List_QTD.cxx b/src/DlgRef/DlgRef_2Sel1List_QTD.cxx deleted file mode 100644 index ec428c3fe..000000000 --- a/src/DlgRef/DlgRef_2Sel1List_QTD.cxx +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_4Sel1List_QTD.ui' -** -** Created: lun oct 31 17:21:04 2006 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_2Sel1List_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel1List_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_2Sel1List_QTD::DlgRef_2Sel1List_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_2Sel1List_QTD" ); - resize( 129, 175 ); - setCaption( trUtf8( "DlgRef_2Sel1List_QTD" ) ); - DlgRef_2Sel1List_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_2Sel1List_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); - - ComboBox1 = new QComboBox( FALSE, GroupBox1, "ComboBox1" ); - ComboBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, ComboBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( ComboBox1, 2, 2 ); - - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_2Sel1List_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - QSpacerItem* spacer = new QSpacerItem( 0, 80, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 5, 2 ); - -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel1List_QTD::~DlgRef_2Sel1List_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_2Sel1List_QTD.h b/src/DlgRef/DlgRef_2Sel1List_QTD.h deleted file mode 100644 index a5665797e..000000000 --- a/src/DlgRef/DlgRef_2Sel1List_QTD.h +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_2Sel1List_QTD.ui' -** -** Created: lun oct 31 17:21:03 2006 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_2SEL1LIST_QTD_H -#define DLGREF_2SEL1LIST_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QComboBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_DLGREF_EXPORT DlgRef_2Sel1List_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_2Sel1List_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Sel1List_QTD(); - - QGroupBox* GroupBox1; - QLineEdit* LineEdit2; - QPushButton* PushButton1; - QPushButton* PushButton2; - QLabel* TextLabel1; - QLineEdit* LineEdit1; - QLabel* TextLabel2; - QComboBox* ComboBox1; - QLabel* TextLabel3; - - -protected: - QGridLayout* DlgRef_2Sel1List_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_2SEL1LIST_QTD_H diff --git a/src/DlgRef/DlgRef_2Sel1List_QTD.ui b/src/DlgRef/DlgRef_2Sel1List_QTD.ui new file mode 100644 index 000000000..53ba9da42 --- /dev/null +++ b/src/DlgRef/DlgRef_2Sel1List_QTD.ui @@ -0,0 +1,152 @@ + + DlgRef_2Sel1List_QTD + + + + 0 + 0 + 156 + 100 + + + + + + + + 0 + + + 0 + + + + + + + + + 9 + + + 6 + + + + + + 7 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + ComboBox1 + + + + diff --git a/src/DlgRef/DlgRef_2Sel1Spin.cxx b/src/DlgRef/DlgRef_2Sel1Spin.cxx deleted file mode 100644 index 141e744fd..000000000 --- a/src/DlgRef/DlgRef_2Sel1Spin.cxx +++ /dev/null @@ -1,59 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel1Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_2Sel1Spin.h" - -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel1Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_2Sel1Spin::DlgRef_2Sel1Spin(QWidget* parent, const char* name, WFlags fl) - :DlgRef_2Sel1Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout2->addWidget(SpinBox_DX, 0, 1); - - // PAL 6532 - PushButton1->setAutoDefault( false ); - PushButton2->setAutoDefault( false ); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel1Spin::~DlgRef_2Sel1Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_2Sel1Spin.h b/src/DlgRef/DlgRef_2Sel1Spin.h deleted file mode 100644 index 8e401687f..000000000 --- a/src/DlgRef/DlgRef_2Sel1Spin.h +++ /dev/null @@ -1,49 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel1Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_2SEL1SPIN_H -#define DLGREF_2SEL1SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_2Sel1Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_2Sel1Spin : public DlgRef_2Sel1Spin_QTD -{ - Q_OBJECT - -public: - DlgRef_2Sel1Spin( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Sel1Spin(); - - DlgRef_SpinBox* SpinBox_DX; - -}; - -#endif // DLGREF_2SEL1SPIN_H diff --git a/src/DlgRef/DlgRef_2Sel1Spin2Check.cxx b/src/DlgRef/DlgRef_2Sel1Spin2Check.cxx deleted file mode 100644 index 0184c15e4..000000000 --- a/src/DlgRef/DlgRef_2Sel1Spin2Check.cxx +++ /dev/null @@ -1,54 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel1Spin2Check.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_2Sel1Spin2Check.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel1Spin2Check which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_2Sel1Spin2Check::DlgRef_2Sel1Spin2Check(QWidget* parent, const char* name, WFlags fl) - :DlgRef_2Sel1Spin2Check_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout1->addWidget(SpinBox_DX, 2, 2); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel1Spin2Check::~DlgRef_2Sel1Spin2Check() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_2Sel1Spin2Check.h b/src/DlgRef/DlgRef_2Sel1Spin2Check.h deleted file mode 100644 index 227dcee67..000000000 --- a/src/DlgRef/DlgRef_2Sel1Spin2Check.h +++ /dev/null @@ -1,49 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel1Spin2Check.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_2SEL1SPIN2CHECK_H -#define DLGREF_2SEL1SPIN2CHECK_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_2Sel1Spin2Check_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_2Sel1Spin2Check : public DlgRef_2Sel1Spin2Check_QTD -{ - Q_OBJECT - -public: - DlgRef_2Sel1Spin2Check(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_2Sel1Spin2Check(); - - DlgRef_SpinBox* SpinBox_DX; - -}; - -#endif // DLGREF_2SEL1SPIN2CHECK_H diff --git a/src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.cxx b/src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.cxx deleted file mode 100644 index 35fd8b355..000000000 --- a/src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.cxx +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_2Sel1Spin2Check_QTD.ui' -** -** Created: Fri Aug 13 15:32:26 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_2Sel1Spin2Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel1Spin2Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_2Sel1Spin2Check_QTD::DlgRef_2Sel1Spin2Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_2Sel1Spin2Check_QTD" ); - resize( 256, 139 ); - setCaption( trUtf8( "DlgRef_2Sel1Spin2Check_QTD" ) ); - DlgRef_2Sel1Spin2Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_2Sel1Spin2Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addWidget( TextLabel3, 2, 0 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - QSpacerItem* spacer = new QSpacerItem( 0, 316, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 4, 2 ); - - CheckButton2 = new QCheckBox( GroupBox1, "CheckButton2" ); - CheckButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( CheckButton2, 2, 3 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addMultiCellWidget( LineEdit2, 1, 1, 2, 3 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addMultiCellWidget( LineEdit1, 0, 0, 2, 3 ); - - CheckButton1 = new QCheckBox( GroupBox1, "CheckButton1" ); - CheckButton1->setText( trUtf8( "" ) ); - - Layout1->addMultiCellWidget( CheckButton1, 3, 3, 0, 3 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox1, 2, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_2Sel1Spin2Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - // tab order - setTabOrder( PushButton1, LineEdit1 ); - setTabOrder( LineEdit1, PushButton2 ); - setTabOrder( PushButton2, LineEdit2 ); - setTabOrder( LineEdit2, SpinBox1 ); - setTabOrder( SpinBox1, CheckButton2 ); - setTabOrder( CheckButton2, CheckButton1 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel1Spin2Check_QTD::~DlgRef_2Sel1Spin2Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.h b/src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.h deleted file mode 100644 index 617fd445a..000000000 --- a/src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.h +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_2Sel1Spin2Check_QTD.ui' -** -** Created: Fri Aug 13 15:32:26 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_2SEL1SPIN2CHECK_QTD_H -#define DLGREF_2SEL1SPIN2CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QCheckBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_2Sel1Spin2Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_2Sel1Spin2Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Sel1Spin2Check_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel2; - QPushButton* PushButton1; - QLabel* TextLabel3; - QLabel* TextLabel1; - QCheckBox* CheckButton2; - QLineEdit* LineEdit2; - QPushButton* PushButton2; - QLineEdit* LineEdit1; - QCheckBox* CheckButton1; - QSpinBox* SpinBox1; - - -protected: - QGridLayout* DlgRef_2Sel1Spin2Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_2SEL1SPIN2CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.ui b/src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.ui new file mode 100644 index 000000000..5bb1b8e38 --- /dev/null +++ b/src/DlgRef/DlgRef_2Sel1Spin2Check_QTD.ui @@ -0,0 +1,193 @@ + + DlgRef_2Sel1Spin2Check_QTD + + + + 0 + 0 + 170 + 118 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + SpinBox_DX + CheckButton2 + CheckButton1 + + + +
      diff --git a/src/DlgRef/DlgRef_2Sel1Spin_QTD.cxx b/src/DlgRef/DlgRef_2Sel1Spin_QTD.cxx deleted file mode 100644 index 0e649c958..000000000 --- a/src/DlgRef/DlgRef_2Sel1Spin_QTD.cxx +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_2Sel1Spin_QTD.ui' -** -** Created: Tue Jun 1 16:15:00 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_2Sel1Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel1Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_2Sel1Spin_QTD::DlgRef_2Sel1Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_2Sel1Spin_QTD" ); - resize( 163, 122 ); - setCaption( trUtf8( "DlgRef_2Sel1Spin_QTD" ) ); - DlgRef_2Sel1Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_2Sel1Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setFrameShape( QLabel::NoFrame ); - TextLabel2->setFrameShadow( QLabel::Plain ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 0, 0 ); - - Layout1->addMultiCellLayout( Layout2, 2, 2, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_2Sel1Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - // tab order - setTabOrder( PushButton1, LineEdit1 ); - setTabOrder( LineEdit1, PushButton2 ); - setTabOrder( PushButton2, LineEdit2 ); - setTabOrder( LineEdit2, SpinBox1 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel1Spin_QTD::~DlgRef_2Sel1Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_2Sel1Spin_QTD.h b/src/DlgRef/DlgRef_2Sel1Spin_QTD.h deleted file mode 100644 index d35c3606e..000000000 --- a/src/DlgRef/DlgRef_2Sel1Spin_QTD.h +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_2Sel1Spin_QTD.ui' -** -** Created: Tue Jun 1 16:14:59 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_2SEL1SPIN_QTD_H -#define DLGREF_2SEL1SPIN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_2Sel1Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_2Sel1Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Sel1Spin_QTD(); - - QGroupBox* GroupBox1; - QLineEdit* LineEdit1; - QPushButton* PushButton2; - QLabel* TextLabel1; - QLineEdit* LineEdit2; - QPushButton* PushButton1; - QLabel* TextLabel2; - QSpinBox* SpinBox1; - QLabel* TextLabel3; - - -protected: - QGridLayout* DlgRef_2Sel1Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // DLGREF_2SEL1SPIN_QTD_H diff --git a/src/DlgRef/DlgRef_2Sel1Spin_QTD.ui b/src/DlgRef/DlgRef_2Sel1Spin_QTD.ui new file mode 100644 index 000000000..76fc2d494 --- /dev/null +++ b/src/DlgRef/DlgRef_2Sel1Spin_QTD.ui @@ -0,0 +1,169 @@ + + DlgRef_2Sel1Spin_QTD + + + + 0 + 0 + 156 + 99 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + QFrame::NoFrame + + + QFrame::Plain + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + + + +
      diff --git a/src/DlgRef/DlgRef_2Sel2List_QTD.ui b/src/DlgRef/DlgRef_2Sel2List_QTD.ui new file mode 100644 index 000000000..b54bca512 --- /dev/null +++ b/src/DlgRef/DlgRef_2Sel2List_QTD.ui @@ -0,0 +1,166 @@ + + DlgRef_2Sel2List_QTD + + + + 0 + 0 + 128 + 144 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + ComboBox1 + + + + diff --git a/src/DlgRef/DlgRef_2Sel2Spin.cxx b/src/DlgRef/DlgRef_2Sel2Spin.cxx deleted file mode 100644 index 58341f3bf..000000000 --- a/src/DlgRef/DlgRef_2Sel2Spin.cxx +++ /dev/null @@ -1,57 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel2Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_2Sel2Spin.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel1Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_2Sel2Spin::DlgRef_2Sel2Spin(QWidget* parent, const char* name, WFlags fl) - :DlgRef_2Sel2Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout2->addWidget(SpinBox_DX, 0, 1); - SpinBox_DY = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - Layout2->addWidget(SpinBox_DY, 1, 1); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel2Spin::~DlgRef_2Sel2Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_2Sel2Spin.h b/src/DlgRef/DlgRef_2Sel2Spin.h deleted file mode 100644 index ed09840e0..000000000 --- a/src/DlgRef/DlgRef_2Sel2Spin.h +++ /dev/null @@ -1,50 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel2Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_2SEL2SPIN_H -#define DLGREF_2SEL2SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_2Sel2Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_2Sel2Spin : public DlgRef_2Sel2Spin_QTD -{ - Q_OBJECT - -public: - DlgRef_2Sel2Spin(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_2Sel2Spin(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - -}; - -#endif // DLGREF_2SEL2SPIN_H diff --git a/src/DlgRef/DlgRef_2Sel2Spin1Check.cxx b/src/DlgRef/DlgRef_2Sel2Spin1Check.cxx deleted file mode 100644 index e352f7d34..000000000 --- a/src/DlgRef/DlgRef_2Sel2Spin1Check.cxx +++ /dev/null @@ -1,62 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel1Spin1Check.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_2Sel2Spin1Check.h" - -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel1Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_2Sel2Spin1Check::DlgRef_2Sel2Spin1Check(QWidget* parent, const char* name, WFlags fl) - :DlgRef_2Sel2Spin1Check_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - SpinBox_DY = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - Layout2->addWidget(SpinBox_DX, 0, 1); - Layout2->addWidget(SpinBox_DY, 1, 1); - - // PAL 6532 - PushButton1->setAutoDefault( false ); - PushButton2->setAutoDefault( false ); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel2Spin1Check::~DlgRef_2Sel2Spin1Check() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_2Sel2Spin1Check.h b/src/DlgRef/DlgRef_2Sel2Spin1Check.h deleted file mode 100644 index b15de5665..000000000 --- a/src/DlgRef/DlgRef_2Sel2Spin1Check.h +++ /dev/null @@ -1,50 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel1Spin1Check.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_2SEL2SPIN1CHECK_H -#define DLGREF_2SEL2SPIN1CHECK_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_2Sel2Spin1Check_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_2Sel2Spin1Check : public DlgRef_2Sel2Spin1Check_QTD -{ - Q_OBJECT - -public: - DlgRef_2Sel2Spin1Check(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_2Sel2Spin1Check(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - -}; - -#endif // DLGREF_2SEL2SPIN1CHECK_H diff --git a/src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.cxx b/src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.cxx deleted file mode 100644 index b2d22bfda..000000000 --- a/src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.cxx +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_2Sel2Spin1Check_QTD.ui' -** -** Created: Tue Jun 1 16:29:28 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_2Sel2Spin1Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel2Spin1Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_2Sel2Spin1Check_QTD::DlgRef_2Sel2Spin1Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_2Sel2Spin1Check_QTD" ); - resize( 163, 170 ); - setCaption( trUtf8( "DlgRef_2Sel2Spin1Check_QTD" ) ); - DlgRef_2Sel2Spin1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_2Sel2Spin1Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 0, 0 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 1, 0 ); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox2, 1, 1 ); - - Layout1->addMultiCellLayout( Layout2, 2, 2, 0, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 4, 2 ); - - CheckButton1 = new QCheckBox( GroupBox1, "CheckButton1" ); - CheckButton1->setText( trUtf8( "" ) ); - - Layout1->addMultiCellWidget( CheckButton1, 3, 3, 0, 2 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_2Sel2Spin1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - // tab order - setTabOrder( PushButton1, LineEdit1 ); - setTabOrder( LineEdit1, PushButton2 ); - setTabOrder( PushButton2, LineEdit2 ); - setTabOrder( LineEdit2, SpinBox1 ); - setTabOrder( SpinBox1, SpinBox2 ); - setTabOrder( SpinBox2, CheckButton1 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel2Spin1Check_QTD::~DlgRef_2Sel2Spin1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.h b/src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.h deleted file mode 100644 index c3d703005..000000000 --- a/src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.h +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_2Sel2Spin1Check_QTD.ui' -** -** Created: Tue Jun 1 16:29:28 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_2SEL2SPIN1CHECK_QTD_H -#define DLGREF_2SEL2SPIN1CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QCheckBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_2Sel2Spin1Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_2Sel2Spin1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Sel2Spin1Check_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel2; - QLabel* TextLabel1; - QSpinBox* SpinBox1; - QLabel* TextLabel3; - QLabel* TextLabel4; - QSpinBox* SpinBox2; - QLineEdit* LineEdit1; - QCheckBox* CheckButton1; - QLineEdit* LineEdit2; - QPushButton* PushButton2; - QPushButton* PushButton1; - - -protected: - QGridLayout* DlgRef_2Sel2Spin1Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // DLGREF_2SEL2SPIN1CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.ui b/src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.ui new file mode 100644 index 000000000..07800a567 --- /dev/null +++ b/src/DlgRef/DlgRef_2Sel2Spin1Check_QTD.ui @@ -0,0 +1,192 @@ + + DlgRef_2Sel2Spin1Check_QTD + + + + 0 + 0 + 156 + 143 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + SpinBox_DX + SpinBox_DY + CheckButton1 + + + +
      diff --git a/src/DlgRef/DlgRef_2Sel2Spin_QTD.cxx b/src/DlgRef/DlgRef_2Sel2Spin_QTD.cxx deleted file mode 100644 index faf1f66b1..000000000 --- a/src/DlgRef/DlgRef_2Sel2Spin_QTD.cxx +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_2Sel2Spin_QTD.ui' -** -** Created: jeu sep 25 12:10:29 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_2Sel2Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel2Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_2Sel2Spin_QTD::DlgRef_2Sel2Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_2Sel2Spin_QTD" ); - resize( 129, 145 ); - setCaption( trUtf8( "DlgRef_2Sel2Spin_QTD" ) ); - DlgRef_2Sel2Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_2Sel2Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox2, 1, 1 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 1, 0 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 0, 0 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - Layout1->addMultiCellLayout( Layout2, 2, 2, 0, 2 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - QSpacerItem* spacer = new QSpacerItem( 0, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 2 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_2Sel2Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel2Spin_QTD::~DlgRef_2Sel2Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_2Sel2Spin_QTD.h b/src/DlgRef/DlgRef_2Sel2Spin_QTD.h deleted file mode 100644 index bc5157559..000000000 --- a/src/DlgRef/DlgRef_2Sel2Spin_QTD.h +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_2Sel2Spin_QTD.ui' -** -** Created: jeu sep 25 12:10:29 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_2SEL2SPIN_QTD_H -#define DLGREF_2SEL2SPIN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_2Sel2Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_2Sel2Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Sel2Spin_QTD(); - - QGroupBox* GroupBox1; - QLineEdit* LineEdit1; - QSpinBox* SpinBox2; - QLabel* TextLabel4; - QLabel* TextLabel3; - QSpinBox* SpinBox1; - QPushButton* PushButton2; - QLabel* TextLabel2; - QLabel* TextLabel1; - QPushButton* PushButton1; - QLineEdit* LineEdit2; - - -protected: - QGridLayout* DlgRef_2Sel2Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // DLGREF_2SEL2SPIN_QTD_H diff --git a/src/DlgRef/DlgRef_2Sel2Spin_QTD.ui b/src/DlgRef/DlgRef_2Sel2Spin_QTD.ui new file mode 100644 index 000000000..f9df9178f --- /dev/null +++ b/src/DlgRef/DlgRef_2Sel2Spin_QTD.ui @@ -0,0 +1,184 @@ + + DlgRef_2Sel2Spin_QTD + + + + 0 + 0 + 156 + 124 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + SpinBox_DX + SpinBox_DY + + + +
      diff --git a/src/DlgRef/DlgRef_2Sel3Spin.cxx b/src/DlgRef/DlgRef_2Sel3Spin.cxx deleted file mode 100644 index 8006c508f..000000000 --- a/src/DlgRef/DlgRef_2Sel3Spin.cxx +++ /dev/null @@ -1,60 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel3Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_2Sel3Spin.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel1Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_2Sel3Spin::DlgRef_2Sel3Spin(QWidget* parent, const char* name, WFlags fl) - :DlgRef_2Sel3Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout2->addWidget(SpinBox_DX, 0, 1); - SpinBox_DY = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - Layout2->addWidget(SpinBox_DY, 1, 1); - SpinBox_DZ = new DlgRef_SpinBox(GroupBox1, "SpinBox_DZ"); - Layout2->addWidget(SpinBox_DZ, 2, 1); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel3Spin::~DlgRef_2Sel3Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_2Sel3Spin.h b/src/DlgRef/DlgRef_2Sel3Spin.h deleted file mode 100644 index 53b857b66..000000000 --- a/src/DlgRef/DlgRef_2Sel3Spin.h +++ /dev/null @@ -1,51 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel3Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_2SEL3SPIN_H -#define DLGREF_2SEL3SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_2Sel3Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_2Sel3Spin : public DlgRef_2Sel3Spin_QTD -{ - Q_OBJECT - -public: - DlgRef_2Sel3Spin(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_2Sel3Spin(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - DlgRef_SpinBox* SpinBox_DZ; - -}; - -#endif // DLGREF_2SEL3SPIN_H diff --git a/src/DlgRef/DlgRef_2Sel3Spin2Rb.cxx b/src/DlgRef/DlgRef_2Sel3Spin2Rb.cxx deleted file mode 100755 index a17d55e41..000000000 --- a/src/DlgRef/DlgRef_2Sel3Spin2Rb.cxx +++ /dev/null @@ -1,41 +0,0 @@ -// File : DlgRef_2Sel2Spin.cxx -// Author : Dmitry MATVEITCHEV -// Module : GEOM -// $Header: - -#include "DlgRef_2Sel3Spin2Rb.h" -#include - -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel3Spin2Rb which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_2Sel3Spin2Rb::DlgRef_2Sel3Spin2Rb(QWidget* parent, const char* name, WFlags fl) - :DlgRef_2Sel3Spin2Rb_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - RadioButton1->setChecked(true); - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout2->addMultiCellWidget(SpinBox_DX, 0, 0, 2, 4); - SpinBox_DY = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - Layout2->addWidget(SpinBox_DY, 1, 2); - SpinBox_DZ = new DlgRef_SpinBox(GroupBox1, "SpinBox_DZ"); - Layout2->addWidget(SpinBox_DZ, 1, 4); - SpinBox_DY->setEnabled(false); - SpinBox_DZ->setEnabled(false); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel3Spin2Rb::~DlgRef_2Sel3Spin2Rb() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_2Sel3Spin2Rb.h b/src/DlgRef/DlgRef_2Sel3Spin2Rb.h deleted file mode 100755 index e651662f7..000000000 --- a/src/DlgRef/DlgRef_2Sel3Spin2Rb.h +++ /dev/null @@ -1,34 +0,0 @@ -// File : DlgRef_2Sel3Spin2Rb.h -// Author : Dmitry MATVEITCHEV -// Module : GEOM -// $Header: - -#ifndef DLGREF_2SEL3SPIN2RB_H -#define DLGREF_2SEL3SPIN2RB_H - -#include "DlgRef_2Sel3Spin2Rb_QTD.h" -#include "DlgRef_SpinBox.h" -//#if defined WNT -//#include -//#else -//#define SALOME_WNT_EXPORT -//#endif -#if defined WNT && defined WIN32 && defined SALOME_WNT_EXPORTS -#define DLGREF_WNT_EXPORT __declspec( dllexport ) -#else -#define DLGREF_WNT_EXPORT -#endif -class DLGREF_WNT_EXPORT DlgRef_2Sel3Spin2Rb : public DlgRef_2Sel3Spin2Rb_QTD -{ - Q_OBJECT - -public: - DlgRef_2Sel3Spin2Rb(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_2Sel3Spin2Rb(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - DlgRef_SpinBox* SpinBox_DZ; -}; - -#endif // DLGREF_2SEL3SPIN2RB_H diff --git a/src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.cxx b/src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.cxx deleted file mode 100755 index bcbd3d658..000000000 --- a/src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.cxx +++ /dev/null @@ -1,129 +0,0 @@ -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_2Sel3Spin2Rb_QTD.ui' -** -** Created: Tue Oct 9 15:16:54 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include "DlgRef_2Sel3Spin2Rb_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel3Spin2Rb_QTD as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_2Sel3Spin2Rb_QTD::DlgRef_2Sel3Spin2Rb_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_2Sel3Spin2Rb_QTD" ); - DlgRef_2Sel3Spin2Rb_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_2Sel3Spin2Rb_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( TextLabel5, 1, 3 ); - - RadioButton2 = new QRadioButton( GroupBox1, "RadioButton2" ); - - Layout2->addWidget( RadioButton2, 1, 0 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( TextLabel3, 0, 1 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addMultiCellWidget( SpinBox1, 0, 0, 2, 4 ); - - RadioButton1 = new QRadioButton( GroupBox1, "RadioButton1" ); - - Layout2->addWidget( RadioButton1, 0, 0 ); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox3, 1, 4 ); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox2, 1, 2 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( TextLabel4, 1, 1 ); - - Layout1->addMultiCellLayout( Layout2, 2, 2, 0, 2 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - Spacer5 = new QSpacerItem( 0, 207, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( Spacer5, 3, 2 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_2Sel3Spin2Rb_QTDLayout->addWidget( GroupBox1, 0, 0 ); - resize( QSize(439, 340).expandedTo(minimumSizeHint()) ); - clearWState( WState_Polished ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel3Spin2Rb_QTD::~DlgRef_2Sel3Spin2Rb_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.h b/src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.h deleted file mode 100755 index 89f145aff..000000000 --- a/src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.h +++ /dev/null @@ -1,60 +0,0 @@ -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_2Sel3Spin2Rb_QTD.ui' -** -** Created: Tue Oct 9 15:16:54 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#ifndef DLGREF_2SEL3SPIN2RB_QTD_H -#define DLGREF_2SEL3SPIN2RB_QTD_H - -#include -#include - -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QSpacerItem; -class QGroupBox; -class QPushButton; -class QLineEdit; -class QLabel; -class QRadioButton; -class QSpinBox; - -class DlgRef_2Sel3Spin2Rb_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_2Sel3Spin2Rb_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Sel3Spin2Rb_QTD(); - - QGroupBox* GroupBox1; - QPushButton* PushButton1; - QLineEdit* LineEdit1; - QLabel* TextLabel2; - QLabel* TextLabel5; - QRadioButton* RadioButton2; - QLabel* TextLabel3; - QSpinBox* SpinBox1; - QRadioButton* RadioButton1; - QSpinBox* SpinBox3; - QSpinBox* SpinBox2; - QLabel* TextLabel4; - QPushButton* PushButton2; - QLineEdit* LineEdit2; - QLabel* TextLabel1; - -protected: - QGridLayout* DlgRef_2Sel3Spin2Rb_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QSpacerItem* Spacer5; - QGridLayout* Layout2; - -}; - -#endif // DLGREF_2SEL3SPIN2RB_QTD_H diff --git a/src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.ui b/src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.ui new file mode 100644 index 000000000..050f8baae --- /dev/null +++ b/src/DlgRef/DlgRef_2Sel3Spin2Rb_QTD.ui @@ -0,0 +1,211 @@ + + DlgRef_2Sel3Spin2Rb_QTD + + + + 0 + 0 + 211 + 128 + + + + DlgRef_2Sel3Spin2Rb_QTD + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + true + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + false + + + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + false + + + + + + + + + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + RadioButton1 + SpinBox_DX + RadioButton2 + SpinBox_DY + SpinBox_DZ + + + +
      diff --git a/src/DlgRef/DlgRef_2Sel3Spin_QTD.cxx b/src/DlgRef/DlgRef_2Sel3Spin_QTD.cxx deleted file mode 100644 index a47905184..000000000 --- a/src/DlgRef/DlgRef_2Sel3Spin_QTD.cxx +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_2Sel3Spin_QTD.ui' -** -** Created: jeu sep 25 16:18:43 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_2Sel3Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel3Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_2Sel3Spin_QTD::DlgRef_2Sel3Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_2Sel3Spin_QTD" ); - resize( 129, 173 ); - setCaption( trUtf8( "DlgRef_2Sel3Spin_QTD" ) ); - DlgRef_2Sel3Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_2Sel3Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 0, 0 ); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox2, 1, 1 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 1, 0 ); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - TextLabel5->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel5, 2, 0 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox3, 2, 1 ); - - Layout1->addMultiCellLayout( Layout2, 2, 2, 0, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - QSpacerItem* spacer = new QSpacerItem( 0, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 2 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_2Sel3Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel3Spin_QTD::~DlgRef_2Sel3Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_2Sel3Spin_QTD.h b/src/DlgRef/DlgRef_2Sel3Spin_QTD.h deleted file mode 100644 index 8b49e9f50..000000000 --- a/src/DlgRef/DlgRef_2Sel3Spin_QTD.h +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_2Sel3Spin_QTD.ui' -** -** Created: jeu sep 25 16:18:43 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_2SEL3SPIN_QTD_H -#define DLGREF_2SEL3SPIN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_2Sel3Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_2Sel3Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Sel3Spin_QTD(); - - QGroupBox* GroupBox1; - QLineEdit* LineEdit1; - QLabel* TextLabel1; - QLabel* TextLabel2; - QLabel* TextLabel3; - QSpinBox* SpinBox2; - QLabel* TextLabel4; - QLabel* TextLabel5; - QSpinBox* SpinBox1; - QSpinBox* SpinBox3; - QPushButton* PushButton1; - QLineEdit* LineEdit2; - QPushButton* PushButton2; - - -protected: - QGridLayout* DlgRef_2Sel3Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // DLGREF_2SEL3SPIN_QTD_H diff --git a/src/DlgRef/DlgRef_2Sel3Spin_QTD.ui b/src/DlgRef/DlgRef_2Sel3Spin_QTD.ui new file mode 100644 index 000000000..b3f27fb8e --- /dev/null +++ b/src/DlgRef/DlgRef_2Sel3Spin_QTD.ui @@ -0,0 +1,204 @@ + + DlgRef_2Sel3Spin_QTD + + + + 0 + 0 + 156 + 149 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + SpinBox_DX + SpinBox_DY + SpinBox_DZ + + + +
      diff --git a/src/DlgRef/DlgRef_2Sel4Spin1Check.cxx b/src/DlgRef/DlgRef_2Sel4Spin1Check.cxx deleted file mode 100644 index bfb387e53..000000000 --- a/src/DlgRef/DlgRef_2Sel4Spin1Check.cxx +++ /dev/null @@ -1,68 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel4Spin1Check.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_2Sel4Spin1Check.h" - -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel1Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_2Sel4Spin1Check::DlgRef_2Sel4Spin1Check(QWidget* parent, const char* name, WFlags fl) - :DlgRef_2Sel4Spin1Check_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - SpinBox4->close(TRUE); - SpinBox_DX1 = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX1"); - SpinBox_DY1 = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY1"); - SpinBox_DX2 = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX2"); - SpinBox_DY2 = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY2"); - Layout2->addWidget(SpinBox_DX1, 0, 1); - Layout2->addWidget(SpinBox_DY1, 1, 1); - Layout3->addWidget(SpinBox_DX2, 0, 1); - Layout3->addWidget(SpinBox_DY2, 1, 1); - - // PAL 6532 - PushButton1->setAutoDefault( false ); - PushButton2->setAutoDefault( false ); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel4Spin1Check::~DlgRef_2Sel4Spin1Check() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_2Sel4Spin1Check.h b/src/DlgRef/DlgRef_2Sel4Spin1Check.h deleted file mode 100644 index 1d5e0c4ab..000000000 --- a/src/DlgRef/DlgRef_2Sel4Spin1Check.h +++ /dev/null @@ -1,53 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Sel4Spin1Check.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_2SEL4SPIN1CHECK_H -#define DLGREF_2SEL4SPIN1CHECK_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_2Sel4Spin1Check_QTD.h" -#include "DlgRef_SpinBox.h" - - -class GEOM_DLGREF_EXPORT DlgRef_2Sel4Spin1Check : public DlgRef_2Sel4Spin1Check_QTD -{ - Q_OBJECT - -public: - DlgRef_2Sel4Spin1Check(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_2Sel4Spin1Check(); - - DlgRef_SpinBox* SpinBox_DX1; - DlgRef_SpinBox* SpinBox_DY1; - DlgRef_SpinBox* SpinBox_DX2; - DlgRef_SpinBox* SpinBox_DY2; - -}; - -#endif // DLGREF_2SEL4SPIN1CHECK_H diff --git a/src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.cxx b/src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.cxx deleted file mode 100644 index 3dd3f2e38..000000000 --- a/src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.cxx +++ /dev/null @@ -1,177 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_2Sel4Spin1Check_QTD.ui' -** -** Created: Tue Jun 1 12:38:04 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_2Sel4Spin1Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel4Spin1Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_2Sel4Spin1Check_QTD::DlgRef_2Sel4Spin1Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_2Sel4Spin1Check_QTD" ); - resize( 262, 230 ); - setCaption( trUtf8( "DlgRef_2Sel4Spin1Check_QTD" ) ); - DlgRef_2Sel4Spin1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_2Sel4Spin1Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout5 = new QGridLayout( 0, 1, 1, 0, 6, "Layout5"); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout5->addWidget( PushButton1, 0, 1 ); - - CheckButton1 = new QCheckBox( GroupBox1, "CheckButton1" ); - CheckButton1->setText( trUtf8( "" ) ); - - Layout5->addMultiCellWidget( CheckButton1, 3, 3, 0, 3 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 0, 0 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox2, 1, 1 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 1, 0 ); - - Layout5->addMultiCellLayout( Layout2, 2, 2, 0, 2 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout5->addWidget( LineEdit2, 1, 2 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout5->addWidget( TextLabel1, 0, 0 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout5->addWidget( LineEdit1, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout5->addItem( spacer, 5, 3 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout5->addWidget( PushButton2, 1, 1 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout5->addWidget( TextLabel2, 1, 0 ); - - Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); - - SpinBox4 = new QSpinBox( GroupBox1, "SpinBox4" ); - SpinBox4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox4->sizePolicy().hasHeightForWidth() ) ); - - Layout3->addWidget( SpinBox4, 1, 1 ); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - TextLabel5->setText( trUtf8( "TL5" ) ); - - Layout3->addWidget( TextLabel5, 0, 0 ); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout3->addWidget( SpinBox3, 0, 1 ); - - TextLabel6 = new QLabel( GroupBox1, "TextLabel6" ); - TextLabel6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel6->sizePolicy().hasHeightForWidth() ) ); - TextLabel6->setText( trUtf8( "TL6" ) ); - - Layout3->addWidget( TextLabel6, 1, 0 ); - - Layout5->addMultiCellLayout( Layout3, 4, 4, 0, 2 ); - - GroupBox1Layout->addLayout( Layout5, 0, 0 ); - - DlgRef_2Sel4Spin1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - // tab order - setTabOrder( PushButton1, LineEdit1 ); - setTabOrder( LineEdit1, PushButton2 ); - setTabOrder( PushButton2, LineEdit2 ); - setTabOrder( LineEdit2, SpinBox1 ); - setTabOrder( SpinBox1, SpinBox2 ); - setTabOrder( SpinBox2, CheckButton1 ); - setTabOrder( CheckButton1, SpinBox3 ); - setTabOrder( SpinBox3, SpinBox4 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel4Spin1Check_QTD::~DlgRef_2Sel4Spin1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.h b/src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.h deleted file mode 100644 index 7f49d2b09..000000000 --- a/src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.h +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_2Sel4Spin1Check_QTD.ui' -** -** Created: Tue Jun 1 12:38:04 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_2SEL4SPIN1CHECK_QTD_H -#define DLGREF_2SEL4SPIN1CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QCheckBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_2Sel4Spin1Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_2Sel4Spin1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Sel4Spin1Check_QTD(); - - QGroupBox* GroupBox1; - QPushButton* PushButton1; - QCheckBox* CheckButton1; - QLabel* TextLabel3; - QSpinBox* SpinBox1; - QSpinBox* SpinBox2; - QLabel* TextLabel4; - QLineEdit* LineEdit2; - QLabel* TextLabel1; - QLineEdit* LineEdit1; - QPushButton* PushButton2; - QLabel* TextLabel2; - QSpinBox* SpinBox4; - QLabel* TextLabel5; - QSpinBox* SpinBox3; - QLabel* TextLabel6; - - -protected: - QGridLayout* DlgRef_2Sel4Spin1Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout5; - QGridLayout* Layout2; - QGridLayout* Layout3; -}; - -#endif // DLGREF_2SEL4SPIN1CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.ui b/src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.ui new file mode 100644 index 000000000..27e0b7e56 --- /dev/null +++ b/src/DlgRef/DlgRef_2Sel4Spin1Check_QTD.ui @@ -0,0 +1,232 @@ + + DlgRef_2Sel4Spin1Check_QTD + + + + 0 + 0 + 156 + 197 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + TL6 + + + false + + + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + SpinBox_DX1 + SpinBox_DY1 + CheckButton1 + SpinBox_DX2 + SpinBox_DY2 + + + +
      diff --git a/src/DlgRef/DlgRef_2SelExt_QTD.ui b/src/DlgRef/DlgRef_2SelExt_QTD.ui new file mode 100644 index 000000000..a5ab1a440 --- /dev/null +++ b/src/DlgRef/DlgRef_2SelExt_QTD.ui @@ -0,0 +1,132 @@ + + DlgRef_2SelExt_QTD + + + + 0 + 0 + 155 + 80 + + + + + + + + 0 + + + 6 + + + + + + 7 + 7 + 0 + 0 + + + + + + + + 9 + + + 6 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + + + + diff --git a/src/DlgRef/DlgRef_2Sel_QTD.cxx b/src/DlgRef/DlgRef_2Sel_QTD.cxx deleted file mode 100644 index 7e305f6ef..000000000 --- a/src/DlgRef/DlgRef_2Sel_QTD.cxx +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_2Sel_QTD.ui' -** -** Created: mar sep 23 16:05:09 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_2Sel_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_2Sel_QTD::DlgRef_2Sel_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_2Sel_QTD" ); - resize( 129, 87 ); - setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)7, 0, 0, sizePolicy().hasHeightForWidth() ) ); - setCaption( trUtf8( "DlgRef_2Sel_QTD" ) ); - DlgRef_2Sel_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_2Sel_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 2, 2 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_2Sel_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Sel_QTD::~DlgRef_2Sel_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_2Sel_QTD.h b/src/DlgRef/DlgRef_2Sel_QTD.h deleted file mode 100644 index c28d7e908..000000000 --- a/src/DlgRef/DlgRef_2Sel_QTD.h +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_2Sel_QTD.ui' -** -** Created: mar sep 23 16:05:09 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_2SEL_QTD_H -#define DLGREF_2SEL_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_DLGREF_EXPORT DlgRef_2Sel_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_2Sel_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Sel_QTD(); - - QGroupBox* GroupBox1; - QPushButton* PushButton1; - QLineEdit* LineEdit2; - QPushButton* PushButton2; - QLabel* TextLabel1; - QLabel* TextLabel2; - QLineEdit* LineEdit1; - - -protected: - QGridLayout* DlgRef_2Sel_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_2SEL_QTD_H diff --git a/src/DlgRef/DlgRef_2Sel_QTD.ui b/src/DlgRef/DlgRef_2Sel_QTD.ui new file mode 100644 index 000000000..753d9587e --- /dev/null +++ b/src/DlgRef/DlgRef_2Sel_QTD.ui @@ -0,0 +1,129 @@ + + DlgRef_2Sel_QTD + + + + 0 + 0 + 156 + 74 + + + + + 5 + 7 + 0 + 0 + + + + + + + + 0 + + + 6 + + + + + + + + + 9 + + + 6 + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + + + + diff --git a/src/DlgRef/DlgRef_2Spin.cxx b/src/DlgRef/DlgRef_2Spin.cxx deleted file mode 100644 index 437ed0b28..000000000 --- a/src/DlgRef/DlgRef_2Spin.cxx +++ /dev/null @@ -1,60 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_2Spin.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_2Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_2Spin::DlgRef_2Spin(QWidget* parent, const char* name, WFlags fl) - :DlgRef_2Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout1->addWidget(SpinBox_DX, 0, 1); - - SpinBox_DY = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - Layout1->addWidget(SpinBox_DY, 1, 1); - -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Spin::~DlgRef_2Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_2Spin.h b/src/DlgRef/DlgRef_2Spin.h deleted file mode 100644 index a69052c94..000000000 --- a/src/DlgRef/DlgRef_2Spin.h +++ /dev/null @@ -1,50 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_2Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_2SPIN_H -#define DLGREF_2SPIN_H - -#include "DlgRef_2Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -#include "GEOM_DlgRef.hxx" - -class GEOM_DLGREF_EXPORT DlgRef_2Spin : public DlgRef_2Spin_QTD -{ - Q_OBJECT - -public: - DlgRef_2Spin(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_2Spin(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - -}; - -#endif // DLGREF_2SPIN_H diff --git a/src/DlgRef/DlgRef_2Spin_QTD.cxx b/src/DlgRef/DlgRef_2Spin_QTD.cxx deleted file mode 100644 index fab9c4f8c..000000000 --- a/src/DlgRef/DlgRef_2Spin_QTD.cxx +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_2Spin_QTD.ui' -** -** Created: jeu sep 25 12:10:30 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_2Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_2Spin_QTD::DlgRef_2Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_2Spin_QTD" ); - resize( 124, 83 ); - setCaption( trUtf8( "DlgRef_2Spin_QTD" ) ); - DlgRef_2Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_2Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox2, 1, 1 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 1 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox1, 0, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_2Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_2Spin_QTD::~DlgRef_2Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_2Spin_QTD.h b/src/DlgRef/DlgRef_2Spin_QTD.h deleted file mode 100644 index b820d4b55..000000000 --- a/src/DlgRef/DlgRef_2Spin_QTD.h +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_2Spin_QTD.ui' -** -** Created: jeu sep 25 12:10:30 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_2SPIN_QTD_H -#define DLGREF_2SPIN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_2Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_2Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_2Spin_QTD(); - - QGroupBox* GroupBox1; - QSpinBox* SpinBox2; - QSpinBox* SpinBox1; - QLabel* TextLabel1; - QLabel* TextLabel2; - - -protected: - QGridLayout* DlgRef_2Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_2SPIN_QTD_H diff --git a/src/DlgRef/DlgRef_2Spin_QTD.ui b/src/DlgRef/DlgRef_2Spin_QTD.ui new file mode 100644 index 000000000..466bf527d --- /dev/null +++ b/src/DlgRef/DlgRef_2Spin_QTD.ui @@ -0,0 +1,112 @@ + + DlgRef_2Spin_QTD + + + + 0 + 0 + 100 + 66 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + +
      diff --git a/src/DlgRef/DlgRef_3Check_QTD.cxx b/src/DlgRef/DlgRef_3Check_QTD.cxx deleted file mode 100644 index 9640159b6..000000000 --- a/src/DlgRef/DlgRef_3Check_QTD.cxx +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_3Check_QTD.ui' -** -** Created: Tue Aug 24 11:27:47 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_3Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_3Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_3Check_QTD::DlgRef_3Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_3Check_QTD" ); - resize( 135, 108 ); - setCaption( trUtf8( "DlgRef_3Check_QTD" ) ); - DlgRef_3Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_3Check_QTDLayout"); - - GroupBox1 = new QButtonGroup( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - RadioButton3 = new QRadioButton( GroupBox1, "RadioButton3" ); - RadioButton3->setText( trUtf8( "RadioButton3" ) ); - - Layout1->addWidget( RadioButton3, 2, 0 ); - - RadioButton1 = new QRadioButton( GroupBox1, "RadioButton1" ); - RadioButton1->setText( trUtf8( "RadioButton1" ) ); - - Layout1->addWidget( RadioButton1, 0, 0 ); - - RadioButton2 = new QRadioButton( GroupBox1, "RadioButton2" ); - RadioButton2->setText( trUtf8( "RadioButton2" ) ); - - Layout1->addWidget( RadioButton2, 1, 0 ); - QSpacerItem* spacer = new QSpacerItem( 0, 91, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 0 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_3Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - // tab order - setTabOrder( RadioButton1, RadioButton2 ); - setTabOrder( RadioButton2, RadioButton3 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_3Check_QTD::~DlgRef_3Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_3Check_QTD.h b/src/DlgRef/DlgRef_3Check_QTD.h deleted file mode 100644 index 976bf8904..000000000 --- a/src/DlgRef/DlgRef_3Check_QTD.h +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_3Check_QTD.ui' -** -** Created: Tue Aug 24 11:27:47 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_3CHECK_QTD_H -#define DLGREF_3CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QButtonGroup; -class QRadioButton; - -class GEOM_DLGREF_EXPORT DlgRef_3Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_3Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_3Check_QTD(); - - QButtonGroup* GroupBox1; - QRadioButton* RadioButton3; - QRadioButton* RadioButton1; - QRadioButton* RadioButton2; - - -protected: - QGridLayout* DlgRef_3Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_3CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_3Check_QTD.ui b/src/DlgRef/DlgRef_3Check_QTD.ui new file mode 100644 index 000000000..aa9a70705 --- /dev/null +++ b/src/DlgRef/DlgRef_3Check_QTD.ui @@ -0,0 +1,69 @@ + + DlgRef_3Check_QTD + + + + 0 + 0 + 118 + 88 + + + + + + + + 0 + + + 6 + + + + + + + + + 9 + + + 6 + + + + + RadioButton2 + + + + + + + RadioButton1 + + + + + + + RadioButton3 + + + + + + + + + + qPixmapFromMimeSource + + RadioButton1 + RadioButton2 + RadioButton3 + + + + diff --git a/src/DlgRef/DlgRef_3Radio1Sel1Spin_QTD.ui b/src/DlgRef/DlgRef_3Radio1Sel1Spin_QTD.ui new file mode 100644 index 000000000..74e1d6bcc --- /dev/null +++ b/src/DlgRef/DlgRef_3Radio1Sel1Spin_QTD.ui @@ -0,0 +1,150 @@ + + DlgRef_3Radio1Sel1Spin_QTD + + + + 0 + 0 + 357 + 131 + + + + + + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 357 + 131 + + + + + + + + + + + + RadioButton1 + + + + + + + RadioButton2 + + + + + + + RadioButton3 + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + Qt::Vertical + + + + 256 + 19 + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + SpinBox_DX + + + +
      diff --git a/src/DlgRef/DlgRef_3Radio_QTD.ui b/src/DlgRef/DlgRef_3Radio_QTD.ui new file mode 100644 index 000000000..e55899e6b --- /dev/null +++ b/src/DlgRef/DlgRef_3Radio_QTD.ui @@ -0,0 +1,75 @@ + + DlgRef_3Radio_QTD + + + + 0 + 0 + 335 + 44 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + + + RadioButton1 + + + + + + + RadioButton2 + + + + + + + RadioButton3 + + + + + + + + + + qPixmapFromMimeSource + + RadioButton1 + RadioButton2 + RadioButton3 + + + + diff --git a/src/DlgRef/DlgRef_3Sel1Check_QTD.cxx b/src/DlgRef/DlgRef_3Sel1Check_QTD.cxx deleted file mode 100644 index e30a066a7..000000000 --- a/src/DlgRef/DlgRef_3Sel1Check_QTD.cxx +++ /dev/null @@ -1,127 +0,0 @@ -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_3Sel1Check_QTD.ui' -** -** Created: Mon Oct 29 18:14:59 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include "DlgRef_3Sel1Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_3Sel1Check_QTD as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_3Sel1Check_QTD::DlgRef_3Sel1Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_3Sel1Check_QTD" ); - setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, 0, 0, sizePolicy().hasHeightForWidth() ) ); - DlgRef_3Sel1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_3Sel1Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, 0, 0, GroupBox1->sizePolicy().hasHeightForWidth() ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - - GroupBox1Layout->addWidget( PushButton1, 0, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - GroupBox1Layout->addMultiCellWidget( LineEdit1, 0, 0, 2, 3 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - - GroupBox1Layout->addWidget( TextLabel1, 0, 0 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - - GroupBox1Layout->addWidget( PushButton2, 1, 1 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - GroupBox1Layout->addMultiCellWidget( LineEdit2, 1, 1, 2, 3 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - - GroupBox1Layout->addWidget( TextLabel2, 1, 0 ); - - PushButton3 = new QPushButton( GroupBox1, "PushButton3" ); - PushButton3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton3->sizePolicy().hasHeightForWidth() ) ); - - GroupBox1Layout->addWidget( PushButton3, 2, 1 ); - - LineEdit3 = new QLineEdit( GroupBox1, "LineEdit3" ); - - GroupBox1Layout->addMultiCellWidget( LineEdit3, 2, 2, 2, 3 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - - GroupBox1Layout->addWidget( TextLabel3, 2, 0 ); - Spacer3 = new QSpacerItem( 16, 721, QSizePolicy::Minimum, QSizePolicy::Expanding ); - GroupBox1Layout->addItem( Spacer3, 4, 3 ); - - CheckButton1 = new QCheckBox( GroupBox1, "CheckButton1" ); - - GroupBox1Layout->addMultiCellWidget( CheckButton1, 3, 3, 0, 2 ); - - DlgRef_3Sel1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - languageChange(); - resize( QSize(403, 441).expandedTo(minimumSizeHint()) ); - clearWState( WState_Polished ); - - // tab order - setTabOrder( PushButton1, LineEdit1 ); - setTabOrder( LineEdit1, PushButton2 ); - setTabOrder( PushButton2, LineEdit2 ); - setTabOrder( LineEdit2, PushButton3 ); - setTabOrder( PushButton3, LineEdit3 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_3Sel1Check_QTD::~DlgRef_3Sel1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void DlgRef_3Sel1Check_QTD::languageChange() -{ - setCaption( tr( "DlgRef_3Sel3Spin1Check_QTD" ) ); - GroupBox1->setTitle( QString::null ); - PushButton1->setText( QString::null ); - TextLabel1->setText( tr( "TL1" ) ); - PushButton2->setText( QString::null ); - TextLabel2->setText( tr( "TL2" ) ); - PushButton3->setText( QString::null ); - TextLabel3->setText( tr( "TL3" ) ); - CheckButton1->setText( tr( "CheckButton1" ) ); -} - diff --git a/src/DlgRef/DlgRef_3Sel1Check_QTD.h b/src/DlgRef/DlgRef_3Sel1Check_QTD.h deleted file mode 100644 index 52a73f98e..000000000 --- a/src/DlgRef/DlgRef_3Sel1Check_QTD.h +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_3Sel1Check_QTD.ui' -** -** Created: Mon Oct 29 18:14:59 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#ifndef DLGREF_3SEL1CHECK_QTD_H -#define DLGREF_3SEL1CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include - -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QSpacerItem; -class QGroupBox; -class QPushButton; -class QLineEdit; -class QLabel; -class QCheckBox; - -class GEOM_DLGREF_EXPORT DlgRef_3Sel1Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_3Sel1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_3Sel1Check_QTD(); - - QGroupBox* GroupBox1; - QPushButton* PushButton1; - QLineEdit* LineEdit1; - QLabel* TextLabel1; - QPushButton* PushButton2; - QLineEdit* LineEdit2; - QLabel* TextLabel2; - QPushButton* PushButton3; - QLineEdit* LineEdit3; - QLabel* TextLabel3; - QCheckBox* CheckButton1; - -protected: - QGridLayout* DlgRef_3Sel1Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QSpacerItem* Spacer3; - -protected slots: - virtual void languageChange(); - -}; - -#endif // DLGREF_3SEL1CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_3Sel1Check_QTD.ui b/src/DlgRef/DlgRef_3Sel1Check_QTD.ui new file mode 100644 index 000000000..91d9258e2 --- /dev/null +++ b/src/DlgRef/DlgRef_3Sel1Check_QTD.ui @@ -0,0 +1,182 @@ + + DlgRef_3Sel1Check_QTD + + + + 0 + 0 + 156 + 126 + + + + + 5 + 5 + 0 + 0 + + + + + + + + 0 + + + 0 + + + + + + 5 + 5 + 0 + 0 + + + + + + + + 9 + + + 6 + + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + PushButton3 + LineEdit3 + + + + diff --git a/src/DlgRef/DlgRef_3Sel1Spin.cxx b/src/DlgRef/DlgRef_3Sel1Spin.cxx deleted file mode 100644 index d9e7176cf..000000000 --- a/src/DlgRef/DlgRef_3Sel1Spin.cxx +++ /dev/null @@ -1,55 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File: DlgRef_3Sel1Spin.cxx -// Created: Thu May 13 12:19:31 2004 -// Author: Alexander SLADKOV -// - - -#include "DlgRef_3Sel1Spin.h" - -//================================================================================= -// class : DlgRef_3Sel1Spin -// purpose : -//================================================================================= -DlgRef_3Sel1Spin::DlgRef_3Sel1Spin( QWidget* parent, const char* name, WFlags fl ) - :DlgRef_3Sel_QTD( parent, name, fl ) -{ - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - TextLabel4 = new QLabel( (QWidget*)GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - Layout2->addWidget( TextLabel4, 0, 0 ); - - SpinBox_DX = new DlgRef_SpinBox( (QWidget*)GroupBox1, "SpinBox_DX" ); - Layout2->addWidget( SpinBox_DX, 0, 1 ); - - Layout1->addMultiCellLayout( Layout2, 3, 3, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 4, 2 ); -} - -DlgRef_3Sel1Spin::~DlgRef_3Sel1Spin() -{ -} diff --git a/src/DlgRef/DlgRef_3Sel1Spin.h b/src/DlgRef/DlgRef_3Sel1Spin.h deleted file mode 100644 index 60a779899..000000000 --- a/src/DlgRef/DlgRef_3Sel1Spin.h +++ /dev/null @@ -1,58 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_3Sel1Spin.h -// Author : Alexander SLADKOV -// Module : GEOM -// $Header$ - -#ifndef DlgRef_3SEL_1SPIN_H -#define DlgRef_3SEL_1SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_3Sel_QTD.h" -#include "DlgRef_SpinBox.h" -#include -#include - -//================================================================================= -// class : DlgRef_3Sel1Spin -// purpose : extension of a DlgRef_3Sel_QTD class, 1 additional spin box is added -//================================================================================= -class GEOM_DLGREF_EXPORT DlgRef_3Sel1Spin : public DlgRef_3Sel_QTD -{ - Q_OBJECT - - public: - DlgRef_3Sel1Spin( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_3Sel1Spin(); - - QLabel* TextLabel4; - DlgRef_SpinBox* SpinBox_DX; - - protected: - QGridLayout* Layout2; -}; - -#endif // DlgRef_3SEL_1SPIN_H diff --git a/src/DlgRef/DlgRef_3Sel1Spin_QTD.ui b/src/DlgRef/DlgRef_3Sel1Spin_QTD.ui new file mode 100644 index 000000000..d1f2f04f4 --- /dev/null +++ b/src/DlgRef/DlgRef_3Sel1Spin_QTD.ui @@ -0,0 +1,210 @@ + + DlgRef_3Sel1Spin_QTD + + + + 0 + 0 + 156 + 128 + + + + + 0 + 0 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + PushButton3 + LineEdit3 + SpinBox_DX + + + +
      diff --git a/src/DlgRef/DlgRef_3Sel3Spin1Check.cxx b/src/DlgRef/DlgRef_3Sel3Spin1Check.cxx deleted file mode 100644 index dd1a8b249..000000000 --- a/src/DlgRef/DlgRef_3Sel3Spin1Check.cxx +++ /dev/null @@ -1,114 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_3Sel3Spin1Check.cxx -// Author : Michael Zorin -// Module : GEOM -// $Header: - -#include -#include -#include -#include -#include -#include -#include -#include - - -/* - * Constructs a DlgRef_3Sel3Spin1Check which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_3Sel3Spin1Check::DlgRef_3Sel3Spin1Check(QWidget* parent, const char* name, WFlags fl) - :DlgRef_3Sel3Spin1Check_QTD(parent, name, fl) -{ - SpinBox_1->close(TRUE); - SpinBox_2->close(TRUE); - SpinBox_3->close(TRUE); - SpinBox1 = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - SpinBox2 = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - SpinBox3 = new DlgRef_SpinBox(GroupBox1, "SpinBox_DZ"); - Layout1->addWidget(SpinBox1, 3, 2); - Layout1->addWidget(SpinBox2, 4, 2); - Layout1->addWidget(SpinBox3, 5, 2); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_3Sel3Spin1Check::~DlgRef_3Sel3Spin1Check() -{ - // no need to delete child widgets, Qt does it all for us -} - -void DlgRef_3Sel3Spin1Check:: ShowRows(int fromRow, int toRow, bool toShow) -{ - typedef void (QWidget::* ShowFun)(); - ShowFun pShowFun; - - if (toShow) - pShowFun = &QWidget::show; - else - pShowFun = &QWidget::hide; - - if (fromRow >= 0 && toRow>=0 && toRow >= fromRow) - { - if ( fromRow == 0) - { - (TextLabel1->*pShowFun)(); - (PushButton1->*pShowFun)(); - (LineEdit1->*pShowFun)(); - } - if ( fromRow <= 1 && 1 <= toRow) - { - (TextLabel2->*pShowFun)(); - (PushButton2->*pShowFun)(); - (LineEdit2->*pShowFun)(); - } - if ( fromRow <= 2 && 2 <= toRow) - { - (TextLabel3->*pShowFun)(); - (PushButton3->*pShowFun)(); - (LineEdit3->*pShowFun)(); - } - if ( fromRow <= 3 && 3 <= toRow) - { - (TextLabel4->*pShowFun)(); - (SpinBox1->*pShowFun)(); - } - if ( fromRow <= 4 && 4 <= toRow) - { - (TextLabel5->*pShowFun)(); - (SpinBox2->*pShowFun)(); - } - if ( fromRow <= 5 && 5 <= toRow) - { - (TextLabel6->*pShowFun)(); - (SpinBox3->*pShowFun)(); - } - if ( fromRow <= 6 && 6 <= toRow) - (CheckBox1->*pShowFun)(); - } -} diff --git a/src/DlgRef/DlgRef_3Sel3Spin1Check.h b/src/DlgRef/DlgRef_3Sel3Spin1Check.h deleted file mode 100644 index d1731cfd0..000000000 --- a/src/DlgRef/DlgRef_3Sel3Spin1Check.h +++ /dev/null @@ -1,53 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_3Sel3Spin1Check.h -// Author : Michael ZORIN -// Module : GEOM -// $Header: - -#ifndef DLGREF_3SEL3SPIN1CHECK_H -#define DLGREF_3SEL3SPIN1CHECK_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_3Sel3Spin1Check_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_3Sel3Spin1Check : public DlgRef_3Sel3Spin1Check_QTD -{ - Q_OBJECT - -public: - DlgRef_3Sel3Spin1Check( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_3Sel3Spin1Check(); - - DlgRef_SpinBox* SpinBox1; - DlgRef_SpinBox* SpinBox2; - DlgRef_SpinBox* SpinBox3; - - void ShowRows(int fromRow, int toRow, bool toShow = true); - -}; - -#endif // DLGREF_3SEL3SPIN1CHECK_H diff --git a/src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.cxx b/src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.cxx deleted file mode 100644 index 9c9ca5145..000000000 --- a/src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.cxx +++ /dev/null @@ -1,177 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_3Sel3Spin1Check_QTD.ui' -** -** Created: Mon Apr 19 16:36:48 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_3Sel3Spin1Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_3Sel3Spin1Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_3Sel3Spin1Check_QTD::DlgRef_3Sel3Spin1Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_3Sel3Spin1Check_QTD" ); - resize( 380, 229 ); - setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, 0, 0, sizePolicy().hasHeightForWidth() ) ); - setCaption( trUtf8( "DlgRef_3Sel3Spin1Check_QTD" ) ); - DlgRef_3Sel3Spin1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_3Sel3Spin1Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, 0, 0, GroupBox1->sizePolicy().hasHeightForWidth() ) ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - SpinBox_2 = new QSpinBox( GroupBox1, "SpinBox_2" ); - SpinBox_2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox_2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox_2, 4, 2 ); - - LineEdit3 = new QLineEdit( GroupBox1, "LineEdit3" ); - - Layout1->addWidget( LineEdit3, 2, 2 ); - - SpinBox_3 = new QSpinBox( GroupBox1, "SpinBox_3" ); - SpinBox_3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox_3->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox_3, 5, 2 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addWidget( TextLabel3, 2, 0 ); - - CheckBox1 = new QCheckBox( GroupBox1, "CheckBox1" ); - CheckBox1->setText( trUtf8( "" ) ); - - Layout1->addMultiCellWidget( CheckBox1, 6, 6, 0, 1 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout1->addWidget( TextLabel4, 3, 0 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - PushButton3 = new QPushButton( GroupBox1, "PushButton3" ); - PushButton3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton3->sizePolicy().hasHeightForWidth() ) ); - PushButton3->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton3, 2, 1 ); - - TextLabel6 = new QLabel( GroupBox1, "TextLabel6" ); - TextLabel6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel6->sizePolicy().hasHeightForWidth() ) ); - TextLabel6->setText( trUtf8( "TL6" ) ); - - Layout1->addWidget( TextLabel6, 5, 0 ); - - SpinBox_1 = new QSpinBox( GroupBox1, "SpinBox_1" ); - SpinBox_1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox_1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox_1, 3, 2 ); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - TextLabel5->setText( trUtf8( "TL5" ) ); - - Layout1->addWidget( TextLabel5, 4, 0 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - QSpacerItem* spacer = new QSpacerItem( 0, 250, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 7, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_3Sel3Spin1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - // tab order - setTabOrder( PushButton1, LineEdit1 ); - setTabOrder( LineEdit1, PushButton2 ); - setTabOrder( PushButton2, LineEdit2 ); - setTabOrder( LineEdit2, PushButton3 ); - setTabOrder( PushButton3, LineEdit3 ); - setTabOrder( LineEdit3, SpinBox_1 ); - setTabOrder( SpinBox_1, SpinBox_2 ); - setTabOrder( SpinBox_2, SpinBox_3 ); - setTabOrder( SpinBox_3, CheckBox1 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_3Sel3Spin1Check_QTD::~DlgRef_3Sel3Spin1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.h b/src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.h deleted file mode 100644 index a4c0c63b6..000000000 --- a/src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.h +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_3Sel3Spin1Check_QTD.ui' -** -** Created: Mon Apr 19 16:36:48 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_3SEL3SPIN1CHECK_QTD_H -#define DLGREF_3SEL3SPIN1CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QCheckBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_3Sel3Spin1Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_3Sel3Spin1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_3Sel3Spin1Check_QTD(); - - QGroupBox* GroupBox1; - QSpinBox* SpinBox_2; - QLineEdit* LineEdit3; - QSpinBox* SpinBox_3; - QLabel* TextLabel1; - QLabel* TextLabel3; - QCheckBox* CheckBox1; - QPushButton* PushButton1; - QLabel* TextLabel4; - QLineEdit* LineEdit2; - QPushButton* PushButton3; - QLabel* TextLabel6; - QSpinBox* SpinBox_1; - QLabel* TextLabel5; - QLabel* TextLabel2; - QLineEdit* LineEdit1; - QPushButton* PushButton2; - - -protected: - QGridLayout* DlgRef_3Sel3Spin1Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_3SEL3SPIN1CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.ui b/src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.ui new file mode 100644 index 000000000..ac29be9fd --- /dev/null +++ b/src/DlgRef/DlgRef_3Sel3Spin1Check_QTD.ui @@ -0,0 +1,258 @@ + + DlgRef_3Sel3Spin1Check_QTD + + + + 0 + 0 + 156 + 201 + + + + + 0 + 0 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + Check + + + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + + 0 + 0 + + + + TL6 + + + false + + + + + + + + + + qPixmapFromMimeSource + + + QtxDoubleSpinBox + QDoubleSpinBox +
      QtxDoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + PushButton3 + LineEdit3 + SpinBox1 + SpinBox2 + SpinBox3 + CheckBox1 + + + +
      diff --git a/src/DlgRef/DlgRef_3Sel3Spin2Check_QTD.ui b/src/DlgRef/DlgRef_3Sel3Spin2Check_QTD.ui new file mode 100644 index 000000000..10ee30bc3 --- /dev/null +++ b/src/DlgRef/DlgRef_3Sel3Spin2Check_QTD.ui @@ -0,0 +1,230 @@ + + DlgRef_3Sel3Spin2Check_QTD + + + + 0 + 0 + 120 + 242 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + + + + + 0 + 0 + + + + TL6 + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + PushButton3 + LineEdit3 + SpinBox1 + SpinBox2 + SpinBox3 + CheckBox1 + CheckBox2 + + + +
      diff --git a/src/DlgRef/DlgRef_3Sel4Spin2Check.cxx b/src/DlgRef/DlgRef_3Sel4Spin2Check.cxx deleted file mode 100644 index d8faeac59..000000000 --- a/src/DlgRef/DlgRef_3Sel4Spin2Check.cxx +++ /dev/null @@ -1,69 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_3Sel4Spin2Check.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_3Sel4Spin2Check.h" - -#include -#include -#include -#include - -/* - * Constructs a DlgRef_2Sel1Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_3Sel4Spin2Check::DlgRef_3Sel4Spin2Check(QWidget* parent, const char* name, WFlags fl) - :DlgRef_3Sel4Spin2Check_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - SpinBox4->close(TRUE); - SpinBox_DX1 = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX1"); - SpinBox_DY1 = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY1"); - SpinBox_DX2 = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX2"); - SpinBox_DY2 = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY2"); - Layout2->addWidget(SpinBox_DX1, 0, 1); - Layout2->addWidget(SpinBox_DY1, 1, 1); - Layout3->addWidget(SpinBox_DX2, 0, 1); - Layout3->addWidget(SpinBox_DY2, 1, 1); - - // PAL6532 - PushButton1->setAutoDefault( false ); - PushButton2->setAutoDefault( false ); - PushButton3->setAutoDefault( false ); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_3Sel4Spin2Check::~DlgRef_3Sel4Spin2Check() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_3Sel4Spin2Check.h b/src/DlgRef/DlgRef_3Sel4Spin2Check.h deleted file mode 100644 index 696c6461b..000000000 --- a/src/DlgRef/DlgRef_3Sel4Spin2Check.h +++ /dev/null @@ -1,52 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_3Sel4Spin2Check.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_3SEL4SPIN2CHECK_H -#define DLGREF_3SEL4SPIN2CHECK_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_3Sel4Spin2Check_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_3Sel4Spin2Check : public DlgRef_3Sel4Spin2Check_QTD -{ - Q_OBJECT - -public: - DlgRef_3Sel4Spin2Check(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_3Sel4Spin2Check(); - - DlgRef_SpinBox* SpinBox_DX1; - DlgRef_SpinBox* SpinBox_DY1; - DlgRef_SpinBox* SpinBox_DX2; - DlgRef_SpinBox* SpinBox_DY2; - -}; - -#endif // DLGREF_3SEL4SPIN2CHECK_H diff --git a/src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.cxx b/src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.cxx deleted file mode 100644 index c0f469b30..000000000 --- a/src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.cxx +++ /dev/null @@ -1,201 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_3Sel4Spin2Check_QTD.ui' -** -** Created: Tue Jun 1 16:29:29 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_3Sel4Spin2Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_3Sel4Spin2Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_3Sel4Spin2Check_QTD::DlgRef_3Sel4Spin2Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_3Sel4Spin2Check_QTD" ); - resize( 269, 281 ); - setCaption( trUtf8( "DlgRef_3Sel4Spin2Check_QTD" ) ); - DlgRef_3Sel4Spin2Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_3Sel4Spin2Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - CheckButton2 = new QCheckBox( GroupBox1, "CheckButton2" ); - CheckButton2->setText( trUtf8( "" ) ); - - Layout1->addMultiCellWidget( CheckButton2, 6, 6, 0, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addWidget( TextLabel3, 2, 0 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - LineEdit3 = new QLineEdit( GroupBox1, "LineEdit3" ); - - Layout1->addWidget( LineEdit3, 2, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); - - SpinBox4 = new QSpinBox( GroupBox1, "SpinBox4" ); - SpinBox4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox4->sizePolicy().hasHeightForWidth() ) ); - - Layout3->addWidget( SpinBox4, 1, 1 ); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout3->addWidget( SpinBox3, 0, 1 ); - - TextLabel7 = new QLabel( GroupBox1, "TextLabel7" ); - TextLabel7->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel7->sizePolicy().hasHeightForWidth() ) ); - TextLabel7->setText( trUtf8( "TL7" ) ); - - Layout3->addWidget( TextLabel7, 1, 0 ); - - TextLabel6 = new QLabel( GroupBox1, "TextLabel6" ); - TextLabel6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel6->sizePolicy().hasHeightForWidth() ) ); - TextLabel6->setText( trUtf8( "TL6" ) ); - - Layout3->addWidget( TextLabel6, 0, 0 ); - - Layout1->addMultiCellLayout( Layout3, 5, 5, 0, 2 ); - - CheckButton1 = new QCheckBox( GroupBox1, "CheckButton1" ); - CheckButton1->setText( trUtf8( "" ) ); - - Layout1->addMultiCellWidget( CheckButton1, 4, 4, 0, 2 ); - - PushButton3 = new QPushButton( GroupBox1, "PushButton3" ); - PushButton3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton3->sizePolicy().hasHeightForWidth() ) ); - PushButton3->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton3, 2, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 7, 2 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - TextLabel5->setText( trUtf8( "TL5" ) ); - - Layout2->addWidget( TextLabel5, 1, 0 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 0, 0 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox1, 0, 1 ); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout2->addWidget( SpinBox2, 1, 1 ); - - Layout1->addMultiCellLayout( Layout2, 3, 3, 0, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_3Sel4Spin2Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - // tab order - setTabOrder( PushButton1, LineEdit1 ); - setTabOrder( LineEdit1, PushButton2 ); - setTabOrder( PushButton2, LineEdit2 ); - setTabOrder( LineEdit2, PushButton3 ); - setTabOrder( PushButton3, LineEdit3 ); - setTabOrder( LineEdit3, SpinBox1 ); - setTabOrder( SpinBox1, SpinBox2 ); - setTabOrder( SpinBox2, CheckButton1 ); - setTabOrder( CheckButton1, SpinBox3 ); - setTabOrder( SpinBox3, SpinBox4 ); - setTabOrder( SpinBox4, CheckButton2 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_3Sel4Spin2Check_QTD::~DlgRef_3Sel4Spin2Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.h b/src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.h deleted file mode 100644 index 9503dec91..000000000 --- a/src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.h +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_3Sel4Spin2Check_QTD.ui' -** -** Created: Tue Jun 1 16:29:29 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_3SEL4SPIN2CHECK_QTD_H -#define DLGREF_3SEL4SPIN2CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QCheckBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_3Sel4Spin2Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_3Sel4Spin2Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_3Sel4Spin2Check_QTD(); - - QGroupBox* GroupBox1; - QCheckBox* CheckButton2; - QLineEdit* LineEdit1; - QLabel* TextLabel3; - QPushButton* PushButton2; - QLineEdit* LineEdit3; - QPushButton* PushButton1; - QSpinBox* SpinBox4; - QSpinBox* SpinBox3; - QLabel* TextLabel7; - QLabel* TextLabel6; - QCheckBox* CheckButton1; - QPushButton* PushButton3; - QLabel* TextLabel1; - QLineEdit* LineEdit2; - QLabel* TextLabel5; - QLabel* TextLabel4; - QSpinBox* SpinBox1; - QSpinBox* SpinBox2; - QLabel* TextLabel2; - - -protected: - QGridLayout* DlgRef_3Sel4Spin2Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout3; - QGridLayout* Layout2; -}; - -#endif // DLGREF_3SEL4SPIN2CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.ui b/src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.ui new file mode 100644 index 000000000..41fcdd0d0 --- /dev/null +++ b/src/DlgRef/DlgRef_3Sel4Spin2Check_QTD.ui @@ -0,0 +1,274 @@ + + DlgRef_3Sel4Spin2Check_QTD + + + + 0 + 0 + 156 + 241 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + TL6 + + + false + + + + + + + + 0 + 0 + + + + TL7 + + + false + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + PushButton3 + LineEdit3 + SpinBox_DX1 + SpinBox_DY1 + CheckButton1 + SpinBox_DX2 + SpinBox_DY2 + CheckButton2 + + + +
      diff --git a/src/DlgRef/DlgRef_3Sel_QTD.cxx b/src/DlgRef/DlgRef_3Sel_QTD.cxx deleted file mode 100644 index 66a038632..000000000 --- a/src/DlgRef/DlgRef_3Sel_QTD.cxx +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_3Sel_QTD.ui' -** -** Created: lun sep 29 11:05:21 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_3Sel_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_3Sel_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_3Sel_QTD::DlgRef_3Sel_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_3Sel_QTD" ); - resize( 129, 117 ); - setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)7, 0, 0, sizePolicy().hasHeightForWidth() ) ); - setCaption( trUtf8( "DlgRef_3Sel_QTD" ) ); - DlgRef_3Sel_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_3Sel_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - LineEdit3 = new QLineEdit( GroupBox1, "LineEdit3" ); - - Layout1->addWidget( LineEdit3, 2, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addWidget( TextLabel3, 2, 0 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 159, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - PushButton3 = new QPushButton( GroupBox1, "PushButton3" ); - PushButton3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton3->sizePolicy().hasHeightForWidth() ) ); - PushButton3->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton3, 2, 1 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_3Sel_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_3Sel_QTD::~DlgRef_3Sel_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_3Sel_QTD.h b/src/DlgRef/DlgRef_3Sel_QTD.h deleted file mode 100644 index f4b44a57f..000000000 --- a/src/DlgRef/DlgRef_3Sel_QTD.h +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_3Sel_QTD.ui' -** -** Created: lun sep 29 11:05:21 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_3SEL_QTD_H -#define DLGREF_3SEL_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_DLGREF_EXPORT DlgRef_3Sel_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_3Sel_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_3Sel_QTD(); - - QGroupBox* GroupBox1; - QLineEdit* LineEdit3; - QPushButton* PushButton1; - QLineEdit* LineEdit2; - QLabel* TextLabel1; - QLabel* TextLabel3; - QLineEdit* LineEdit1; - QLabel* TextLabel2; - QPushButton* PushButton3; - QPushButton* PushButton2; - - -protected: - QGridLayout* DlgRef_3Sel_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_3SEL_QTD_H diff --git a/src/DlgRef/DlgRef_3Sel_QTD.ui b/src/DlgRef/DlgRef_3Sel_QTD.ui new file mode 100644 index 000000000..b16200bc7 --- /dev/null +++ b/src/DlgRef/DlgRef_3Sel_QTD.ui @@ -0,0 +1,167 @@ + + DlgRef_3Sel_QTD + + + + 0 + 0 + 156 + 103 + + + + + 5 + 7 + 0 + 0 + + + + + + + + 0 + + + 6 + + + + + + + + + 9 + + + 6 + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + PushButton3 + LineEdit3 + + + + diff --git a/src/DlgRef/DlgRef_3Spin.cxx b/src/DlgRef/DlgRef_3Spin.cxx deleted file mode 100644 index bd2f5cee8..000000000 --- a/src/DlgRef/DlgRef_3Spin.cxx +++ /dev/null @@ -1,63 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_3Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_3Spin.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_3Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_3Spin::DlgRef_3Spin(QWidget* parent, const char* name, WFlags fl) - :DlgRef_3Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout1->addWidget(SpinBox_DX, 0, 1); - - SpinBox_DY = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - Layout1->addWidget(SpinBox_DY, 1, 1); - - SpinBox_DZ = new DlgRef_SpinBox(GroupBox1, "SpinBox_DZ"); - Layout1->addWidget(SpinBox_DZ, 2, 1); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_3Spin::~DlgRef_3Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_3Spin.h b/src/DlgRef/DlgRef_3Spin.h deleted file mode 100644 index 18ca9f610..000000000 --- a/src/DlgRef/DlgRef_3Spin.h +++ /dev/null @@ -1,51 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_3Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_3SPIN_H -#define DLGREF_3SPIN_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_3Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_3Spin : public DlgRef_3Spin_QTD -{ - Q_OBJECT - -public: - DlgRef_3Spin( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_3Spin(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - DlgRef_SpinBox* SpinBox_DZ; - -}; - -#endif // DLGREF_3SPIN_H diff --git a/src/DlgRef/DlgRef_3Spin1Check.cxx b/src/DlgRef/DlgRef_3Spin1Check.cxx deleted file mode 100644 index 2cf12b7e7..000000000 --- a/src/DlgRef/DlgRef_3Spin1Check.cxx +++ /dev/null @@ -1,63 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_3Spin1Check.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_3Spin1Check.h" - -#include -#include -#include - -/* - * Constructs a DlgRef_3Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_3Spin1Check::DlgRef_3Spin1Check(QWidget* parent, const char* name, WFlags fl) - :DlgRef_3Spin1Check_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout1->addWidget(SpinBox_DX, 0, 1); - - SpinBox_DY = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - Layout1->addWidget(SpinBox_DY, 1, 1); - - SpinBox_DZ = new DlgRef_SpinBox(GroupBox1, "SpinBox_DZ"); - Layout1->addWidget(SpinBox_DZ, 2, 1); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_3Spin1Check::~DlgRef_3Spin1Check() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/DlgRef/DlgRef_3Spin1Check.h b/src/DlgRef/DlgRef_3Spin1Check.h deleted file mode 100644 index 36c5fc2ac..000000000 --- a/src/DlgRef/DlgRef_3Spin1Check.h +++ /dev/null @@ -1,51 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_3Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_3SPIN1CHECK_H -#define DLGREF_3SPIN1CHECK_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_3Spin1Check_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_3Spin1Check : public DlgRef_3Spin1Check_QTD -{ - Q_OBJECT - -public: - DlgRef_3Spin1Check(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_3Spin1Check(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - DlgRef_SpinBox* SpinBox_DZ; - -}; - -#endif // DLGREF_3SPIN1CHECK_H diff --git a/src/DlgRef/DlgRef_3Spin1Check_QTD.cxx b/src/DlgRef/DlgRef_3Spin1Check_QTD.cxx deleted file mode 100644 index 2be55011e..000000000 --- a/src/DlgRef/DlgRef_3Spin1Check_QTD.cxx +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_3Spin1Check_QTD.ui' -** -** Created: dim sep 28 18:11:19 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_3Spin1Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_3Spin1Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_3Spin1Check_QTD::DlgRef_3Spin1Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_3Spin1Check_QTD" ); - resize( 124, 130 ); - setCaption( trUtf8( "DlgRef_3Spin1Check_QTD" ) ); - DlgRef_3Spin1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_3Spin1Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - CheckBox1 = new QRadioButton( GroupBox1, "CheckBox1" ); - CheckBox1->setText( trUtf8( "" ) ); - - Layout1->addMultiCellWidget( CheckBox1, 3, 3, 0, 1 ); - QSpacerItem* spacer = new QSpacerItem( 0, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 4, 1 ); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox2, 1, 1 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addWidget( TextLabel3, 2, 0 ); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox3, 2, 1 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox1, 0, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_3Spin1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_3Spin1Check_QTD::~DlgRef_3Spin1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_3Spin1Check_QTD.h b/src/DlgRef/DlgRef_3Spin1Check_QTD.h deleted file mode 100644 index 6df92fb08..000000000 --- a/src/DlgRef/DlgRef_3Spin1Check_QTD.h +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_3Spin1Check_QTD.ui' -** -** Created: dim sep 28 18:11:19 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_3SPIN1CHECK_QTD_H -#define DLGREF_3SPIN1CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QRadioButton; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_3Spin1Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_3Spin1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_3Spin1Check_QTD(); - - QGroupBox* GroupBox1; - QRadioButton* CheckBox1; - QSpinBox* SpinBox2; - QLabel* TextLabel3; - QSpinBox* SpinBox3; - QSpinBox* SpinBox1; - QLabel* TextLabel1; - QLabel* TextLabel2; - - -protected: - QGridLayout* DlgRef_3Spin1Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_3SPIN1CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_3Spin1Check_QTD.ui b/src/DlgRef/DlgRef_3Spin1Check_QTD.ui new file mode 100644 index 000000000..7408ae941 --- /dev/null +++ b/src/DlgRef/DlgRef_3Spin1Check_QTD.ui @@ -0,0 +1,144 @@ + + DlgRef_3Spin1Check_QTD + + + + 0 + 0 + 100 + 110 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + SpinBox_DX + SpinBox_DY + SpinBox_DZ + CheckButton1 + + + +
      diff --git a/src/DlgRef/DlgRef_3Spin_QTD.cxx b/src/DlgRef/DlgRef_3Spin_QTD.cxx deleted file mode 100644 index 99a1d464e..000000000 --- a/src/DlgRef/DlgRef_3Spin_QTD.cxx +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_3Spin_QTD.ui' -** -** Created: mar sep 23 16:05:10 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_3Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_3Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_3Spin_QTD::DlgRef_3Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_3Spin_QTD" ); - resize( 124, 111 ); - setCaption( trUtf8( "DlgRef_3Spin_QTD" ) ); - DlgRef_3Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_3Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox2, 1, 1 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 1 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addWidget( TextLabel3, 2, 0 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox1, 0, 1 ); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox3, 2, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_3Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_3Spin_QTD::~DlgRef_3Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_3Spin_QTD.h b/src/DlgRef/DlgRef_3Spin_QTD.h deleted file mode 100644 index 7f76b90b5..000000000 --- a/src/DlgRef/DlgRef_3Spin_QTD.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_3Spin_QTD.ui' -** -** Created: mar sep 23 16:05:09 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_3SPIN_QTD_H -#define DLGREF_3SPIN_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_3Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_3Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_3Spin_QTD(); - - QGroupBox* GroupBox1; - QSpinBox* SpinBox2; - QLabel* TextLabel3; - QSpinBox* SpinBox1; - QSpinBox* SpinBox3; - QLabel* TextLabel1; - QLabel* TextLabel2; - - -protected: - QGridLayout* DlgRef_3Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_3SPIN_QTD_H diff --git a/src/DlgRef/DlgRef_3Spin_QTD.ui b/src/DlgRef/DlgRef_3Spin_QTD.ui new file mode 100644 index 000000000..4ac7e5d12 --- /dev/null +++ b/src/DlgRef/DlgRef_3Spin_QTD.ui @@ -0,0 +1,136 @@ + + DlgRef_3Spin_QTD + + + + 0 + 0 + 100 + 91 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + SpinBox_DX + SpinBox_DY + SpinBox_DZ + + + +
      diff --git a/src/DlgRef/DlgRef_4Sel1List1Check_QTD.cxx b/src/DlgRef/DlgRef_4Sel1List1Check_QTD.cxx deleted file mode 100644 index c47a7a47e..000000000 --- a/src/DlgRef/DlgRef_4Sel1List1Check_QTD.cxx +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_4Sel1List1Check_QTD.ui' -** -** Created: lun oct 27 17:21:04 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_4Sel1List1Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_4Sel1List1Check_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_4Sel1List1Check_QTD::DlgRef_4Sel1List1Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_4Sel1List1Check_QTD" ); - resize( 129, 210 ); - setCaption( trUtf8( "DlgRef_4Sel1List1Check_QTD" ) ); - DlgRef_4Sel1List1Check_QTDLayout = - new QGridLayout( this, 1, 1, 0, 6, "DlgRef_4Sel1List1Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); - - ComboBox1 = new QComboBox( FALSE, GroupBox1, "ComboBox1" ); - ComboBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, ComboBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( ComboBox1, 2, 2 ); - - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_4Sel1List1Check_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - - GroupBox2 = new QGroupBox( this, "GroupBox2" ); - GroupBox2->setTitle( trUtf8( "" ) ); - GroupBox2->setColumnLayout(0, Qt::Vertical ); - GroupBox2->layout()->setSpacing( 6 ); - GroupBox2->layout()->setMargin( 11 ); - GroupBox2Layout = new QGridLayout( GroupBox2->layout() ); - GroupBox2Layout->setAlignment( Qt::AlignTop ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - TextLabel4 = new QLabel( GroupBox2, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 0, 0 ); - QSpacerItem* spacer = new QSpacerItem( 0, 80, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 5, 2 ); - - PushButton3 = new QPushButton( GroupBox2, "PushButton3" ); - PushButton3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton3->sizePolicy().hasHeightForWidth() ) ); - PushButton3->setText( trUtf8( "" ) ); - - Layout2->addWidget( PushButton3, 0, 1 ); - - LineEdit3 = new QLineEdit( GroupBox2, "LineEdit3" ); - - Layout2->addWidget( LineEdit3, 0, 2 ); - - - TextLabel5 = new QLabel( GroupBox2, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - TextLabel5->setText( trUtf8( "TL5" ) ); - - Layout2->addWidget( TextLabel5, 1, 0 ); - - PushButton4 = new QPushButton( GroupBox2, "PushButton4" ); - PushButton4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton4->sizePolicy().hasHeightForWidth() ) ); - PushButton4->setText( trUtf8( "" ) ); - - Layout2->addWidget( PushButton4, 1, 1 ); - - LineEdit4 = new QLineEdit( GroupBox2, "LineEdit4" ); - - Layout2->addWidget( LineEdit4, 1, 2 ); - - CheckBox1 = new QCheckBox( GroupBox1, "CheckBox1" ); - CheckBox1->setText( trUtf8( "" ) ); - Layout1->addMultiCellWidget( CheckBox1, 5, 5, 0, 1 ); - - PushButton5 = new QPushButton( GroupBox1, "PushButton5" ); - PushButton5->setText( trUtf8( "" ) ); - Layout1->addWidget( PushButton5, 5, 2 ); - - GroupBox2Layout->addLayout( Layout2, 0, 0 ); - - DlgRef_4Sel1List1Check_QTDLayout->addWidget( GroupBox2, 1, 0 ); - - // tab order - setTabOrder(PushButton1 , LineEdit1); - setTabOrder(LineEdit1 , PushButton2); - setTabOrder(PushButton2 , LineEdit2); - setTabOrder(LineEdit2, ComboBox1); - setTabOrder(ComboBox1, CheckBox1); - setTabOrder(CheckBox1, PushButton5); - setTabOrder(PushButton5, PushButton3); - setTabOrder(PushButton3 , LineEdit3); - setTabOrder(LineEdit3, PushButton4 ); - setTabOrder(PushButton4 , LineEdit4); - -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_4Sel1List1Check_QTD::~DlgRef_4Sel1List1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_4Sel1List1Check_QTD.h b/src/DlgRef/DlgRef_4Sel1List1Check_QTD.h deleted file mode 100644 index 3d4a9a42f..000000000 --- a/src/DlgRef/DlgRef_4Sel1List1Check_QTD.h +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_4Sel1List1Check_QTD.ui' -** -** Created: lun oct 27 17:21:03 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_4SEL1LIST1CHECK_QTD_H -#define DLGREF_4SEL1LIST1CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QComboBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QCheckBox; -class QPushButton; - -class GEOM_DLGREF_EXPORT DlgRef_4Sel1List1Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_4Sel1List1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_4Sel1List1Check_QTD(); - - QGroupBox* GroupBox1; - QGroupBox* GroupBox2; - QLabel* TextLabel1; - QLabel* TextLabel2; - QLabel* TextLabel3; - QLabel* TextLabel4; - QLabel* TextLabel5; - QPushButton* PushButton1; - QPushButton* PushButton2; - QPushButton* PushButton3; - QPushButton* PushButton4; - QLineEdit* LineEdit1; - QLineEdit* LineEdit2; - QLineEdit* LineEdit3; - QLineEdit* LineEdit4; - QComboBox* ComboBox1; - QCheckBox* CheckBox1; - QPushButton* PushButton5; - -protected: - QGridLayout* DlgRef_4Sel1List1Check_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* GroupBox2Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // DLGREF_4SEL1LIST1CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_4Sel1List1Check_QTD.ui b/src/DlgRef/DlgRef_4Sel1List1Check_QTD.ui new file mode 100644 index 000000000..516d9a22e --- /dev/null +++ b/src/DlgRef/DlgRef_4Sel1List1Check_QTD.ui @@ -0,0 +1,244 @@ + + DlgRef_4Sel1List1Check_QTD + + + + 0 + 0 + 216 + 187 + + + + + + + + 0 + + + 0 + + + + + + + + + 9 + + + 6 + + + + + + 7 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL4 + + + false + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL5 + + + false + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + + + + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + ComboBox1 + PushButton3 + LineEdit3 + PushButton4 + LineEdit4 + CheckBox1 + PushButton5 + + + + diff --git a/src/DlgRef/DlgRef_4Sel1List_QTD.cxx b/src/DlgRef/DlgRef_4Sel1List_QTD.cxx deleted file mode 100644 index 1c7c3a6ea..000000000 --- a/src/DlgRef/DlgRef_4Sel1List_QTD.cxx +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_4Sel1List_QTD.ui' -** -** Created: lun oct 27 17:21:04 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_4Sel1List_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_4Sel1List_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_4Sel1List_QTD::DlgRef_4Sel1List_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_4Sel1List_QTD" ); - resize( 129, 175 ); - setCaption( trUtf8( "DlgRef_4Sel1List_QTD" ) ); - DlgRef_4Sel1List_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_4Sel1List_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addMultiCellWidget( TextLabel3, 2, 2, 0, 1 ); - - ComboBox1 = new QComboBox( FALSE, GroupBox1, "ComboBox1" ); - ComboBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, ComboBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( ComboBox1, 2, 2 ); - - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_4Sel1List_QTDLayout->addWidget( GroupBox1, 0, 0 ); - - - GroupBox2 = new QGroupBox( this, "GroupBox2" ); - GroupBox2->setTitle( trUtf8( "" ) ); - GroupBox2->setColumnLayout(0, Qt::Vertical ); - GroupBox2->layout()->setSpacing( 6 ); - GroupBox2->layout()->setMargin( 11 ); - GroupBox2Layout = new QGridLayout( GroupBox2->layout() ); - GroupBox2Layout->setAlignment( Qt::AlignTop ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - TextLabel4 = new QLabel( GroupBox2, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 0, 0 ); - QSpacerItem* spacer = new QSpacerItem( 0, 80, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 5, 2 ); - - PushButton3 = new QPushButton( GroupBox2, "PushButton3" ); - PushButton3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton3->sizePolicy().hasHeightForWidth() ) ); - PushButton3->setText( trUtf8( "" ) ); - - Layout2->addWidget( PushButton3, 0, 1 ); - - LineEdit3 = new QLineEdit( GroupBox2, "LineEdit3" ); - - Layout2->addWidget( LineEdit3, 0, 2 ); - - - TextLabel5 = new QLabel( GroupBox2, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - TextLabel5->setText( trUtf8( "TL5" ) ); - - Layout2->addWidget( TextLabel5, 1, 0 ); - - PushButton4 = new QPushButton( GroupBox2, "PushButton4" ); - PushButton4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton4->sizePolicy().hasHeightForWidth() ) ); - PushButton4->setText( trUtf8( "" ) ); - - Layout2->addWidget( PushButton4, 1, 1 ); - - LineEdit4 = new QLineEdit( GroupBox2, "LineEdit4" ); - - Layout2->addWidget( LineEdit4, 1, 2 ); - - GroupBox2Layout->addLayout( Layout2, 0, 0 ); - - DlgRef_4Sel1List_QTDLayout->addWidget( GroupBox2, 1, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_4Sel1List_QTD::~DlgRef_4Sel1List_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_4Sel1List_QTD.h b/src/DlgRef/DlgRef_4Sel1List_QTD.h deleted file mode 100644 index d391942f9..000000000 --- a/src/DlgRef/DlgRef_4Sel1List_QTD.h +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_4Sel1List_QTD.ui' -** -** Created: lun oct 27 17:21:03 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_4SEL1LIST_QTD_H -#define DLGREF_4SEL1LIST_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QComboBox; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_DLGREF_EXPORT DlgRef_4Sel1List_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_4Sel1List_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_4Sel1List_QTD(); - - QGroupBox* GroupBox1; - QGroupBox* GroupBox2; - QLineEdit* LineEdit2; - QPushButton* PushButton4; - QPushButton* PushButton1; - QLineEdit* LineEdit4; - QPushButton* PushButton3; - QPushButton* PushButton2; - QLabel* TextLabel1; - QLabel* TextLabel4; - QLineEdit* LineEdit1; - QLabel* TextLabel5; - QLineEdit* LineEdit3; - QLabel* TextLabel2; - QComboBox* ComboBox1; - QLabel* TextLabel3; - - -protected: - QGridLayout* DlgRef_4Sel1List_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* GroupBox2Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // DLGREF_4SEL1LIST_QTD_H diff --git a/src/DlgRef/DlgRef_4Sel1List_QTD.ui b/src/DlgRef/DlgRef_4Sel1List_QTD.ui new file mode 100644 index 000000000..5388836ef --- /dev/null +++ b/src/DlgRef/DlgRef_4Sel1List_QTD.ui @@ -0,0 +1,228 @@ + + DlgRef_4Sel1List_QTD + + + + 0 + 0 + 156 + 158 + + + + + + + + 0 + + + 6 + + + + + + + + + 9 + + + 6 + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL4 + + + false + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL5 + + + false + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + 7 + 0 + 0 + 0 + + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + ComboBox1 + PushButton3 + LineEdit3 + PushButton4 + LineEdit4 + + + + diff --git a/src/DlgRef/DlgRef_4Sel1Spin2Check.cxx b/src/DlgRef/DlgRef_4Sel1Spin2Check.cxx deleted file mode 100644 index 8fc0e900a..000000000 --- a/src/DlgRef/DlgRef_4Sel1Spin2Check.cxx +++ /dev/null @@ -1,106 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_4Sel1Spin2Check.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "DlgRef_4Sel1Spin2Check.h" - -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_4Sel1Spin2Check which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -DlgRef_4Sel1Spin2Check::DlgRef_4Sel1Spin2Check(QWidget* parent, const char* name, WFlags fl) - :DlgRef_4Sel1Spin2Check_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout1->addWidget(SpinBox_DX, 4, 2); -} - - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_4Sel1Spin2Check::~DlgRef_4Sel1Spin2Check() -{ - // no need to delete child widgets, Qt does it all for us -} - -void DlgRef_4Sel1Spin2Check::ShowRows(int fromRow, int toRow, bool toShow) -{ - typedef void (QWidget::* ShowFun)(); - ShowFun pShowFun; - - if (toShow) - pShowFun = &QWidget::show; - else - pShowFun = &QWidget::hide; - - if (fromRow >= 0 && toRow >= 0 && toRow >= fromRow) - { - if ( fromRow == 0) - { - (TextLabel1->*pShowFun)(); - (PushButton1->*pShowFun)(); - (LineEdit1->*pShowFun)(); - } - if ( fromRow <= 1 && 1 <= toRow) - { - (TextLabel2->*pShowFun)(); - (PushButton2->*pShowFun)(); - (LineEdit2->*pShowFun)(); - } - if ( fromRow <= 2 && 2 <= toRow) - { - (TextLabel4->*pShowFun)(); - (PushButton4->*pShowFun)(); - (LineEdit4->*pShowFun)(); - } - if ( fromRow <= 3 && 3 <= toRow) - { - (TextLabel5->*pShowFun)(); - (PushButton5->*pShowFun)(); - (LineEdit5->*pShowFun)(); - } - if ( fromRow <= 4 && 4 <= toRow) - { - (TextLabel3->*pShowFun)(); - (SpinBox_DX->*pShowFun)(); - (CheckButton2->*pShowFun)(); - } - if ( fromRow <= 5 && 5 <= toRow) - (CheckButton1->*pShowFun)(); - } -} - diff --git a/src/DlgRef/DlgRef_4Sel1Spin2Check.h b/src/DlgRef/DlgRef_4Sel1Spin2Check.h deleted file mode 100644 index ab366bac6..000000000 --- a/src/DlgRef/DlgRef_4Sel1Spin2Check.h +++ /dev/null @@ -1,51 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_4Sel1Spin2Check.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef DLGREF_4SEL1SPIN2CHECK_H -#define DLGREF_4SEL1SPIN2CHECK_H - -#include "GEOM_DlgRef.hxx" - -#include "DlgRef_4Sel1Spin2Check_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_DLGREF_EXPORT DlgRef_4Sel1Spin2Check : public DlgRef_4Sel1Spin2Check_QTD -{ - Q_OBJECT - -public: - DlgRef_4Sel1Spin2Check(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~DlgRef_4Sel1Spin2Check(); - - DlgRef_SpinBox* SpinBox_DX; - - void ShowRows(int fromRow, int toRow, bool toShow = true); - -}; - -#endif // DLGREF_4SEL1SPIN2CHECK_H diff --git a/src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.cxx b/src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.cxx deleted file mode 100644 index 0039c9d26..000000000 --- a/src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.cxx +++ /dev/null @@ -1,158 +0,0 @@ -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_4Sel1Spin2Check_QTD.ui' -** -** Created: Wed Oct 25 20:32:42 2006 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include "DlgRef_4Sel1Spin2Check_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_4Sel1Spin2Check_QTD as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_4Sel1Spin2Check_QTD::DlgRef_4Sel1Spin2Check_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_4Sel1Spin2Check_QTD" ); - DlgRef_4Sel1Spin2Check_QTDLayout = new QVBoxLayout( this, 0, 6, "DlgRef_4Sel1Spin2Check_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QVBoxLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 6, 6, "Layout1"); - - CheckButton2 = new QCheckBox( GroupBox1, "CheckButton2" ); - - Layout1->addWidget( CheckButton2, 4, 3 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - LineEdit5 = new QLineEdit( GroupBox1, "LineEdit5" ); - - Layout1->addMultiCellWidget( LineEdit5, 3, 3, 2, 3 ); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel5, 3, 0 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addMultiCellWidget( LineEdit1, 0, 0, 2, 3 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox1, 4, 2 ); - - CheckButton1 = new QCheckBox( GroupBox1, "CheckButton1" ); - - Layout1->addMultiCellWidget( CheckButton1, 5, 5, 0, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - PushButton5 = new QPushButton( GroupBox1, "PushButton5" ); - PushButton5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton5->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( PushButton5, 3, 1 ); - - PushButton4 = new QPushButton( GroupBox1, "PushButton4" ); - PushButton4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton4->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( PushButton4, 2, 1 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel4, 2, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit4 = new QLineEdit( GroupBox1, "LineEdit4" ); - - Layout1->addMultiCellWidget( LineEdit4, 2, 2, 2, 3 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addMultiCellWidget( LineEdit2, 1, 1, 2, 3 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel3, 4, 0 ); - GroupBox1Layout->addLayout( Layout1 ); - DlgRef_4Sel1Spin2Check_QTDLayout->addWidget( GroupBox1 ); - languageChange(); - resize( QSize(261, 198).expandedTo(minimumSizeHint()) ); - clearWState( WState_Polished ); - - // tab order - setTabOrder( PushButton1, LineEdit1 ); - setTabOrder( LineEdit1, PushButton2 ); - setTabOrder( PushButton2, LineEdit2 ); - setTabOrder( LineEdit2, SpinBox1 ); - setTabOrder( SpinBox1, CheckButton2 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_4Sel1Spin2Check_QTD::~DlgRef_4Sel1Spin2Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void DlgRef_4Sel1Spin2Check_QTD::languageChange() -{ - setCaption( tr( "DlgRef_4Sel1Spin2Check_QTD" ) ); - GroupBox1->setTitle( QString::null ); - CheckButton2->setText( QString::null ); - PushButton2->setText( QString::null ); - TextLabel5->setText( tr( "TL5" ) ); - TextLabel1->setText( tr( "TL1" ) ); - CheckButton1->setText( QString::null ); - TextLabel2->setText( tr( "TL2" ) ); - PushButton5->setText( QString::null ); - PushButton4->setText( QString::null ); - TextLabel4->setText( tr( "TL4" ) ); - PushButton1->setText( QString::null ); - TextLabel3->setText( tr( "TL3" ) ); -} - diff --git a/src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.h b/src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.h deleted file mode 100644 index 0d1e1d459..000000000 --- a/src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.h +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_4Sel1Spin2Check_QTD.ui' -** -** Created: Wed Oct 25 20:32:41 2006 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#ifndef DLGREF_4SEL1SPIN2CHECK_QTD_H -#define DLGREF_4SEL1SPIN2CHECK_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include - -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QSpacerItem; -class QGroupBox; -class QCheckBox; -class QPushButton; -class QLineEdit; -class QLabel; -class QSpinBox; - -class GEOM_DLGREF_EXPORT DlgRef_4Sel1Spin2Check_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_4Sel1Spin2Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_4Sel1Spin2Check_QTD(); - - QGroupBox* GroupBox1; - QCheckBox* CheckButton2; - QPushButton* PushButton2; - QLineEdit* LineEdit5; - QLabel* TextLabel5; - QLabel* TextLabel1; - QLineEdit* LineEdit1; - QSpinBox* SpinBox1; - QCheckBox* CheckButton1; - QLabel* TextLabel2; - QPushButton* PushButton5; - QPushButton* PushButton4; - QLabel* TextLabel4; - QPushButton* PushButton1; - QLineEdit* LineEdit4; - QLineEdit* LineEdit2; - QLabel* TextLabel3; - -protected: - QVBoxLayout* DlgRef_4Sel1Spin2Check_QTDLayout; - QVBoxLayout* GroupBox1Layout; - QGridLayout* Layout1; - -protected slots: - virtual void languageChange(); - -}; - -#endif // DLGREF_4SEL1SPIN2CHECK_QTD_H diff --git a/src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.ui b/src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.ui new file mode 100644 index 000000000..83501ec05 --- /dev/null +++ b/src/DlgRef/DlgRef_4Sel1Spin2Check_QTD.ui @@ -0,0 +1,252 @@ + + DlgRef_4Sel1Spin2Check_QTD + + + + 0 + 0 + 225 + 306 + + + + + + + + 0 + + + 6 + + + + + + + + + 9 + + + 6 + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + + SpinBox_DX + TextLabel3 + TextLabel5 + TextLabel4 + TextLabel2 + TextLabel1 + PushButton2 + LineEdit5 + LineEdit1 + PushButton5 + PushButton4 + PushButton1 + LineEdit4 + LineEdit2 + CheckButton1 + CheckButton2 + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + PushButton4 + LineEdit4 + PushButton5 + LineEdit5 + SpinBox_DX + CheckButton1 + + + +
      diff --git a/src/DlgRef/DlgRef_4Sel1Spin3Check_QTD.ui b/src/DlgRef/DlgRef_4Sel1Spin3Check_QTD.ui new file mode 100755 index 000000000..7dc96d006 --- /dev/null +++ b/src/DlgRef/DlgRef_4Sel1Spin3Check_QTD.ui @@ -0,0 +1,265 @@ + + DlgRef_4Sel1Spin3Check_QTD + + + + 0 + 0 + 225 + 306 + + + + + + + + 0 + + + 6 + + + + + + + + + 9 + + + 6 + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + + + + + + SpinBox_DX + TextLabel3 + TextLabel5 + TextLabel4 + TextLabel2 + TextLabel1 + PushButton2 + LineEdit5 + LineEdit1 + PushButton5 + PushButton4 + PushButton1 + LineEdit4 + LineEdit2 + CheckButton1 + CheckButton2 + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + PushButton4 + LineEdit4 + PushButton5 + LineEdit5 + SpinBox_DX + CheckButton1 + + + +
      diff --git a/src/DlgRef/DlgRef_6Sel_QTD.cxx b/src/DlgRef/DlgRef_6Sel_QTD.cxx deleted file mode 100644 index bc3ebe641..000000000 --- a/src/DlgRef/DlgRef_6Sel_QTD.cxx +++ /dev/null @@ -1,171 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_6Sel_QTD.ui' -** -** Created: Tue Aug 24 18:18:57 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "DlgRef_6Sel_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_6Sel_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -DlgRef_6Sel_QTD::DlgRef_6Sel_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "DlgRef_6Sel_QTD" ); - resize( 235, 196 ); - setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)7, 0, 0, sizePolicy().hasHeightForWidth() ) ); - setCaption( trUtf8( "DlgRef_6Sel_QTD" ) ); - DlgRef_6Sel_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_6Sel_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addWidget( TextLabel3, 2, 0 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout1->addWidget( TextLabel4, 3, 0 ); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - TextLabel5->setText( trUtf8( "TL5" ) ); - - Layout1->addWidget( TextLabel5, 4, 0 ); - - TextLabel6 = new QLabel( GroupBox1, "TextLabel6" ); - TextLabel6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel6->sizePolicy().hasHeightForWidth() ) ); - TextLabel6->setText( trUtf8( "TL6" ) ); - - Layout1->addWidget( TextLabel6, 5, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - PushButton2->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - PushButton3 = new QPushButton( GroupBox1, "PushButton3" ); - PushButton3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton3->sizePolicy().hasHeightForWidth() ) ); - PushButton3->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton3, 2, 1 ); - - PushButton4 = new QPushButton( GroupBox1, "PushButton4" ); - PushButton4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton4->sizePolicy().hasHeightForWidth() ) ); - PushButton4->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton4, 3, 1 ); - - PushButton5 = new QPushButton( GroupBox1, "PushButton5" ); - PushButton5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton5->sizePolicy().hasHeightForWidth() ) ); - PushButton5->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton5, 4, 1 ); - - PushButton6 = new QPushButton( GroupBox1, "PushButton6" ); - PushButton6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton6->sizePolicy().hasHeightForWidth() ) ); - PushButton6->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton6, 5, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - LineEdit3 = new QLineEdit( GroupBox1, "LineEdit3" ); - - Layout1->addWidget( LineEdit3, 2, 2 ); - - LineEdit4 = new QLineEdit( GroupBox1, "LineEdit4" ); - - Layout1->addWidget( LineEdit4, 3, 2 ); - - LineEdit5 = new QLineEdit( GroupBox1, "LineEdit5" ); - - Layout1->addWidget( LineEdit5, 4, 2 ); - - LineEdit6 = new QLineEdit( GroupBox1, "LineEdit6" ); - - Layout1->addWidget( LineEdit6, 5, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - DlgRef_6Sel_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_6Sel_QTD::~DlgRef_6Sel_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/DlgRef/DlgRef_6Sel_QTD.h b/src/DlgRef/DlgRef_6Sel_QTD.h deleted file mode 100644 index 517c3a5aa..000000000 --- a/src/DlgRef/DlgRef_6Sel_QTD.h +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_6Sel_QTD.ui' -** -** Created: Tue Aug 24 18:18:28 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DLGREF_6SEL_QTD_H -#define DLGREF_6SEL_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_DLGREF_EXPORT DlgRef_6Sel_QTD : public QWidget -{ - Q_OBJECT - -public: - DlgRef_6Sel_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~DlgRef_6Sel_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel1; - QLabel* TextLabel2; - QLabel* TextLabel3; - QLabel* TextLabel4; - QLabel* TextLabel5; - QLabel* TextLabel6; - QPushButton* PushButton1; - QPushButton* PushButton2; - QPushButton* PushButton3; - QPushButton* PushButton4; - QPushButton* PushButton5; - QPushButton* PushButton6; - QLineEdit* LineEdit1; - QLineEdit* LineEdit2; - QLineEdit* LineEdit3; - QLineEdit* LineEdit4; - QLineEdit* LineEdit5; - QLineEdit* LineEdit6; - - -protected: - QGridLayout* DlgRef_6Sel_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // DLGREF_6SEL_QTD_H diff --git a/src/DlgRef/DlgRef_6Sel_QTD.ui b/src/DlgRef/DlgRef_6Sel_QTD.ui new file mode 100644 index 000000000..22ce9046b --- /dev/null +++ b/src/DlgRef/DlgRef_6Sel_QTD.ui @@ -0,0 +1,281 @@ + + DlgRef_6Sel_QTD + + + + 0 + 0 + 156 + 190 + + + + + 5 + 7 + 0 + 0 + + + + + + + + 0 + + + 0 + + + + + + + + + 9 + + + 6 + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL6 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL3 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL5 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + PushButton3 + LineEdit3 + PushButton4 + LineEdit4 + PushButton5 + LineEdit5 + PushButton6 + LineEdit6 + + + + diff --git a/src/DlgRef/DlgRef_Skeleton_QTD.cxx b/src/DlgRef/DlgRef_Skeleton_QTD.cxx deleted file mode 100644 index 0e2b081bc..000000000 --- a/src/DlgRef/DlgRef_Skeleton_QTD.cxx +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'DlgRef_Skeleton_QTD.ui' -** -** Created: Tue Mar 13 14:40:34 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include "DlgRef_Skeleton_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a DlgRef_Skeleton_QTD as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - * - * The dialog will by default be modeless, unless you set 'modal' to - * TRUE to construct a modal dialog. - */ -DlgRef_Skeleton_QTD::DlgRef_Skeleton_QTD( QWidget* parent, const char* name, bool modal, WFlags fl ) - : QDialog( parent, name, modal, fl ) -{ - if ( !name ) - setName( "DlgRef_Skeleton_QTD" ); - setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)7, 0, 0, sizePolicy().hasHeightForWidth() ) ); - setSizeGripEnabled( TRUE ); - DlgRef_Skeleton_QTDLayout = new QGridLayout( this, 1, 1, 11, 6, "DlgRef_Skeleton_QTDLayout"); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - GroupButtons = new QGroupBox( this, "GroupButtons" ); - GroupButtons->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupButtons->sizePolicy().hasHeightForWidth() ) ); - GroupButtons->setColumnLayout(0, Qt::Vertical ); - GroupButtons->layout()->setSpacing( 6 ); - GroupButtons->layout()->setMargin( 11 ); - GroupButtonsLayout = new QHBoxLayout( GroupButtons->layout() ); - GroupButtonsLayout->setAlignment( Qt::AlignTop ); - - Layout3 = new QHBoxLayout( 0, 0, 6, "Layout3"); - - buttonOk = new QPushButton( GroupButtons, "buttonOk" ); - Layout3->addWidget( buttonOk ); - - buttonApply = new QPushButton( GroupButtons, "buttonApply" ); - Layout3->addWidget( buttonApply ); - Spacer1 = new QSpacerItem( 91, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); - Layout3->addItem( Spacer1 ); - - buttonCancel = new QPushButton( GroupButtons, "buttonCancel" ); - Layout3->addWidget( buttonCancel ); - - buttonHelp = new QPushButton( GroupButtons, "buttonHelp" ); - Layout3->addWidget( buttonHelp ); - GroupButtonsLayout->addLayout( Layout3 ); - - Layout1->addWidget( GroupButtons, 3, 0 ); - - GroupConstructors = new QButtonGroup( this, "GroupConstructors" ); - GroupConstructors->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0, 0, 0, GroupConstructors->sizePolicy().hasHeightForWidth() ) ); - GroupConstructors->setColumnLayout(0, Qt::Vertical ); - GroupConstructors->layout()->setSpacing( 6 ); - GroupConstructors->layout()->setMargin( 11 ); - GroupConstructorsLayout = new QHBoxLayout( GroupConstructors->layout() ); - GroupConstructorsLayout->setAlignment( Qt::AlignTop ); - - Layout2 = new QHBoxLayout( 0, 0, 6, "Layout2"); - - RadioButton1 = new QRadioButton( GroupConstructors, "RadioButton1" ); - Layout2->addWidget( RadioButton1 ); - - RadioButton2 = new QRadioButton( GroupConstructors, "RadioButton2" ); - Layout2->addWidget( RadioButton2 ); - - RadioButton3 = new QRadioButton( GroupConstructors, "RadioButton3" ); - Layout2->addWidget( RadioButton3 ); - - RadioButton4 = new QRadioButton( GroupConstructors, "RadioButton4" ); - Layout2->addWidget( RadioButton4 ); - GroupConstructorsLayout->addLayout( Layout2 ); - - Layout1->addWidget( GroupConstructors, 0, 0 ); - - GroupBoxName = new QGroupBox( this, "GroupBoxName" ); - GroupBoxName->setColumnLayout(0, Qt::Vertical ); - GroupBoxName->layout()->setSpacing( 6 ); - GroupBoxName->layout()->setMargin( 11 ); - GroupBoxNameLayout = new QGridLayout( GroupBoxName->layout() ); - GroupBoxNameLayout->setAlignment( Qt::AlignTop ); - - Layout66 = new QGridLayout( 0, 1, 1, 0, 6, "Layout66"); - - ResultName = new QLineEdit( GroupBoxName, "ResultName" ); - - Layout66->addWidget( ResultName, 0, 1 ); - - NameLabel = new QLabel( GroupBoxName, "NameLabel" ); - - Layout66->addWidget( NameLabel, 0, 0 ); - - GroupBoxNameLayout->addLayout( Layout66, 0, 0 ); - - Layout1->addWidget( GroupBoxName, 1, 0 ); - - DlgRef_Skeleton_QTDLayout->addLayout( Layout1, 0, 0 ); - languageChange(); - resize( QSize(307, 378).expandedTo(minimumSizeHint()) ); - clearWState( WState_Polished ); -} - -/* - * Destroys the object and frees any allocated resources - */ -DlgRef_Skeleton_QTD::~DlgRef_Skeleton_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void DlgRef_Skeleton_QTD::languageChange() -{ -} - diff --git a/src/DlgRef/DlgRef_Skeleton_QTD.h b/src/DlgRef/DlgRef_Skeleton_QTD.h deleted file mode 100644 index 0ecfdfcaa..000000000 --- a/src/DlgRef/DlgRef_Skeleton_QTD.h +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_Skeleton_QTD.ui' -** -** Created: Tue Mar 13 14:40:29 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#ifndef DLGREF_SKELETON_QTD_H -#define DLGREF_SKELETON_QTD_H - -#include "GEOM_DlgRef.hxx" - -#include -#include - -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QSpacerItem; -class QGroupBox; -class QPushButton; -class QButtonGroup; -class QRadioButton; -class QLineEdit; -class QLabel; - -class GEOM_DLGREF_EXPORT DlgRef_Skeleton_QTD : public QDialog -{ - Q_OBJECT - -public: - DlgRef_Skeleton_QTD( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); - ~DlgRef_Skeleton_QTD(); - - QGroupBox* GroupButtons; - QPushButton* buttonOk; - QPushButton* buttonApply; - QPushButton* buttonCancel; - QPushButton* buttonHelp; - QButtonGroup* GroupConstructors; - QRadioButton* RadioButton1; - QRadioButton* RadioButton2; - QRadioButton* RadioButton3; - QRadioButton* RadioButton4; - QGroupBox* GroupBoxName; - QLineEdit* ResultName; - QLabel* NameLabel; - -protected: - QGridLayout* DlgRef_Skeleton_QTDLayout; - QGridLayout* Layout1; - QHBoxLayout* GroupButtonsLayout; - QHBoxLayout* Layout3; - QSpacerItem* Spacer1; - QHBoxLayout* GroupConstructorsLayout; - QHBoxLayout* Layout2; - QGridLayout* GroupBoxNameLayout; - QGridLayout* Layout66; - -protected slots: - virtual void languageChange(); - -}; - -#endif // DLGREF_SKELETON_QTD_H diff --git a/src/DlgRef/DlgRef_Skeleton_QTD.ui b/src/DlgRef/DlgRef_Skeleton_QTD.ui new file mode 100644 index 000000000..02624d442 --- /dev/null +++ b/src/DlgRef/DlgRef_Skeleton_QTD.ui @@ -0,0 +1,226 @@ + + DlgRef_Skeleton_QTD + + + + 0 + 0 + 364 + 217 + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + + + + false + + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + &Ok + + + + + + + &Apply + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 91 + 0 + + + + + + + + &Cancel + + + + + + + &Help + + + + + + + + + + CheckBoxRestoreSS + buttonOk + buttonApply + buttonCancel + buttonHelp + RadioButton1 + RadioButton2 + RadioButton3 + RadioButton4 + RadioButton5 + ResultName + + + + diff --git a/src/DlgRef/DlgRef_SpinBox.cxx b/src/DlgRef/DlgRef_SpinBox.cxx deleted file mode 100644 index 35bec55ba..000000000 --- a/src/DlgRef/DlgRef_SpinBox.cxx +++ /dev/null @@ -1,129 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_SpinBox.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - -#include "DlgRef_SpinBox.h" - -#include - -//================================================================================= -// class : DlgRef_SpinBox() -// purpose : constructor of specific widget accepting floats in double precision. -//================================================================================= -DlgRef_SpinBox::DlgRef_SpinBox(QWidget* parent, const char* name) - : QtxDblSpinBox(parent, name) -{ -} - - -//================================================================================= -// function : ~DlgRef_SpinBox() -// purpose : destructor -//================================================================================= -DlgRef_SpinBox::~DlgRef_SpinBox() -{ -} - - -//================================================================================= -// function : SetStep() [SLOT] -// purpose : -//================================================================================= -void DlgRef_SpinBox::SetStep(double newStep) -{ - setLineStep(newStep); -} - - -//================================================================================= -// function : SetValue() -// purpose : -//================================================================================= -void DlgRef_SpinBox::SetValue(double v) -{ - setValue(v); -} - - -//================================================================================= -// function : GetValue() -// purpose : returns a double -//================================================================================= -double DlgRef_SpinBox::GetValue() -{ - return value(); -} - - -//================================================================================= -// function : GetString() -// purpose : returns a QString -//================================================================================= -QString DlgRef_SpinBox::GetString() -{ - return cleanText(); -} - - -//================================================================================= -// function : RangeStepAndValidator() -// purpose : -//================================================================================= -void DlgRef_SpinBox::RangeStepAndValidator(double min, double max,double step, - unsigned short decimals) -{ - setPrecision(-decimals); // PAL12789. Minus is for using 'g' double->string conversion specifier, - // see QtxDblSpinBox::mapValueToText( double v ) - setRange(min, max); - setLineStep(step); - ((QDoubleValidator*)validator())->setRange(min, max, decimals); -} - -QString DlgRef_SpinBox::PrintDoubleValue (double theValue, int thePrecision) -{ - QString aRes; - aRes.setNum(theValue, 'g', thePrecision); - - // remove trailing zeroes - QString delim( "." ); - - int idx = aRes.findRev( delim ); - if ( idx == -1 ) - return aRes; - - QString iPart = aRes.left( idx ); - QString fPart = aRes.mid( idx + 1 ); - - while ( !fPart.isEmpty() && fPart.at( fPart.length() - 1 ) == '0' ) - fPart.remove( fPart.length() - 1, 1 ); - - aRes = iPart; - if ( !fPart.isEmpty() ) - aRes += delim + fPart; - - return aRes; -} diff --git a/src/DlgRef/DlgRef_SpinBox.h b/src/DlgRef/DlgRef_SpinBox.h deleted file mode 100644 index e576781d0..000000000 --- a/src/DlgRef/DlgRef_SpinBox.h +++ /dev/null @@ -1,65 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : DlgRef_SpinBox.h -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - -#ifndef GEOMSPINBOX_H -#define GEOMSPINBOX_H - -#include "GEOM_DlgRef.hxx" - -#include "QtxDblSpinBox.h" - -#define COORD_MIN -1e+15 -#define COORD_MAX +1e+15 -#define MAX_NUMBER 100000 -#define DBL_DIGITS_DISPLAY 16 - -//================================================================================= -// class : DlgRef_SpinBox -// purpose : Derivated from QSpinBox class and modified to accept floats -//================================================================================= -class GEOM_DLGREF_EXPORT DlgRef_SpinBox : public QtxDblSpinBox -{ - Q_OBJECT - -public : - DlgRef_SpinBox(QWidget* parent, const char* name = 0); - ~DlgRef_SpinBox(); - - void RangeStepAndValidator(double min = -1000000.0, double max = +1000000.0, - double step = 100.0, unsigned short decimals = 3); - void SetValue(double v); - double GetValue(); - QString GetString(); - - static QString PrintDoubleValue (double theValue, int Precision = DBL_DIGITS_DISPLAY); - -public slots: - void SetStep(double newStep); -}; - -#endif // GEOMSPINBOX_H diff --git a/src/DlgRef/GEOM_DlgRef.hxx b/src/DlgRef/GEOM_DlgRef.hxx deleted file mode 100755 index f0497ac78..000000000 --- a/src/DlgRef/GEOM_DlgRef.hxx +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : GEOM_DlgRef.hxx -// Author : Alexander A. BORODIN -// Module : GEOM - -#ifndef _GEOM_DlgRef_HXX_ -#define _GEOM_DlgRef_HXX_ - -#ifdef WNT - #if defined DLGREF_EXPORTS - #if defined WIN32 - #define GEOM_DLGREF_EXPORT __declspec( dllexport ) - #else - #define GEOM_DLGREF_EXPORT - #endif - #else - #if defined WIN32 - #define GEOM_DLGREF_EXPORT __declspec( dllimport ) - #else - #define GEOM_DLGREF_EXPORT - #endif - #endif -#else - #define GEOM_DLGREF_EXPORT -#endif - -#endif diff --git a/src/DlgRef/Makefile.am b/src/DlgRef/Makefile.am index 960a9ad06..3a4606f02 100644 --- a/src/DlgRef/Makefile.am +++ b/src/DlgRef/Makefile.am @@ -1,235 +1,104 @@ -# GEOM DLGREF : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM DLGREF : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : DlgRef # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libDlgRef.la # Sources files -dist_libDlgRef_la_SOURCES = \ - DlgRef_Skeleton_QTD.cxx \ - DlgRef_1Sel_QTD.cxx \ - DlgRef_2Sel_QTD.cxx \ - DlgRef_3Sel_QTD.cxx \ - DlgRef_1Sel1Check_QTD.cxx \ - DlgRef_1Sel3Check_QTD.cxx \ - DlgRef_1Sel1Check1List_QTD.cxx \ - DlgRef_1Sel1Spin_QTD.cxx \ - DlgRef_1Sel2Spin_QTD.cxx \ - DlgRef_1Sel3Spin_QTD.cxx \ - DlgRef_1Sel4Spin_QTD.cxx \ - DlgRef_1Sel5Spin_QTD.cxx \ - DlgRef_1Sel5Spin1Check_QTD.cxx \ - DlgRef_2Sel1Spin_QTD.cxx \ - DlgRef_2Sel2Spin_QTD.cxx \ - DlgRef_2Sel3Spin_QTD.cxx \ - DlgRef_1Sel1Spin1Check_QTD.cxx \ - DlgRef_2Sel1Spin2Check_QTD.cxx \ - DlgRef_2Sel2Spin1Check_QTD.cxx \ - DlgRef_2Sel4Spin1Check_QTD.cxx \ - DlgRef_3Sel4Spin2Check_QTD.cxx \ - DlgRef_2Sel3Spin2Rb_QTD.cxx \ - DlgRef_2Sel3Spin2Rb.cxx \ - DlgRef_4Sel1List_QTD.cxx \ - DlgRef_2Sel1List_QTD.cxx \ - DlgRef_2Sel1List1Check_QTD.cxx \ - DlgRef_1List1Spin1Btn_QTD.cxx \ - DlgRef_4Sel1List1Check_QTD.cxx \ - DlgRef_1Spin_QTD.cxx \ - DlgRef_2Spin_QTD.cxx \ - DlgRef_3Spin_QTD.cxx \ - DlgRef_3Spin1Check_QTD.cxx \ - DlgRef_3Sel3Spin1Check_QTD.cxx \ - DlgRef_4Sel1Spin2Check_QTD.cxx \ - DlgRef_SpinBox.cxx \ - DlgRef_1Sel1Spin.cxx \ - DlgRef_1Sel2Spin.cxx \ - DlgRef_1Sel3Spin.cxx \ - DlgRef_1Sel4Spin.cxx \ - DlgRef_1Sel5Spin.cxx \ - DlgRef_1Sel5Spin1Check.cxx \ - DlgRef_2Sel1Spin.cxx \ - DlgRef_2Sel2Spin.cxx \ - DlgRef_2Sel3Spin.cxx \ - DlgRef_1Sel1Spin1Check.cxx \ - DlgRef_2Sel1Spin2Check.cxx \ - DlgRef_2Sel2Spin1Check.cxx \ - DlgRef_2Sel4Spin1Check.cxx \ - DlgRef_3Sel4Spin2Check.cxx \ - DlgRef_3Sel3Spin1Check.cxx \ - DlgRef_1Spin.cxx \ - DlgRef_2Spin.cxx \ - DlgRef_3Spin.cxx \ - DlgRef_3Spin1Check.cxx \ - DlgRef_3Sel1Spin.cxx \ - DlgRef_3Check_QTD.cxx \ - DlgRef_6Sel_QTD.cxx \ - DlgRef_4Sel1Spin2Check.cxx \ - DlgRef_3Sel1Check_QTD.cxx +dist_libDlgRef_la_SOURCES = \ + DlgRef.h \ + DlgRef.cxx -MOC_FILES = \ - DlgRef_Skeleton_QTD_moc.cxx \ - DlgRef_1Sel_QTD_moc.cxx \ - DlgRef_2Sel_QTD_moc.cxx \ - DlgRef_3Sel_QTD_moc.cxx \ - DlgRef_1Sel1Check_QTD_moc.cxx \ - DlgRef_1Sel3Check_QTD_moc.cxx \ - DlgRef_1Sel1Check1List_QTD_moc.cxx \ - DlgRef_1Sel1Spin_QTD_moc.cxx \ - DlgRef_1Sel2Spin_QTD_moc.cxx \ - DlgRef_1Sel3Spin_QTD_moc.cxx \ - DlgRef_1Sel4Spin_QTD_moc.cxx \ - DlgRef_1Sel5Spin_QTD_moc.cxx \ - DlgRef_1Sel5Spin1Check_QTD_moc.cxx \ - DlgRef_2Sel1Spin_QTD_moc.cxx \ - DlgRef_2Sel2Spin_QTD_moc.cxx \ - DlgRef_2Sel3Spin_QTD_moc.cxx \ - DlgRef_2Sel3Spin2Rb_QTD_moc.cxx \ - DlgRef_2Sel3Spin2Rb_moc.cxx \ - DlgRef_1Sel1Spin1Check_QTD_moc.cxx \ - DlgRef_2Sel1Spin2Check_QTD_moc.cxx \ - DlgRef_2Sel2Spin1Check_QTD_moc.cxx \ - DlgRef_2Sel4Spin1Check_QTD_moc.cxx \ - DlgRef_3Sel4Spin2Check_QTD_moc.cxx \ - DlgRef_4Sel1List_QTD_moc.cxx \ - DlgRef_2Sel1List_QTD_moc.cxx \ - DlgRef_2Sel1List1Check_QTD_moc.cxx \ - DlgRef_1List1Spin1Btn_QTD_moc.cxx \ - DlgRef_4Sel1List1Check_QTD_moc.cxx \ - DlgRef_1Spin_QTD_moc.cxx \ - DlgRef_2Spin_QTD_moc.cxx \ - DlgRef_3Spin_QTD_moc.cxx \ - DlgRef_3Spin1Check_QTD_moc.cxx \ - DlgRef_3Sel3Spin1Check_QTD_moc.cxx \ - DlgRef_4Sel1Spin2Check_QTD_moc.cxx \ - DlgRef_SpinBox_moc.cxx \ - DlgRef_1Sel1Spin_moc.cxx \ - DlgRef_1Sel2Spin_moc.cxx \ - DlgRef_1Sel3Spin_moc.cxx \ - DlgRef_1Sel4Spin_moc.cxx \ - DlgRef_1Sel5Spin_moc.cxx \ - DlgRef_1Sel5Spin1Check_moc.cxx \ - DlgRef_2Sel1Spin_moc.cxx \ - DlgRef_2Sel2Spin_moc.cxx \ - DlgRef_2Sel3Spin_moc.cxx \ - DlgRef_1Sel1Spin1Check_moc.cxx \ - DlgRef_2Sel1Spin2Check_moc.cxx \ - DlgRef_2Sel2Spin1Check_moc.cxx \ - DlgRef_2Sel4Spin1Check_moc.cxx \ - DlgRef_3Sel4Spin2Check_moc.cxx \ - DlgRef_3Sel3Spin1Check_moc.cxx \ - DlgRef_1Spin_moc.cxx \ - DlgRef_2Spin_moc.cxx \ - DlgRef_3Spin_moc.cxx \ - DlgRef_3Spin1Check_moc.cxx \ - DlgRef_3Sel1Spin_moc.cxx \ - DlgRef_1Sel_Ext_moc.cxx \ - DlgRef_3Check_QTD_moc.cxx \ - DlgRef_6Sel_QTD_moc.cxx \ - DlgRef_4Sel1Spin2Check_moc.cxx \ - DlgRef_3Sel1Check_QTD_moc.cxx +MOC_FILES = \ + DlgRef_moc.cxx -# header files -salomeinclude_HEADERS = \ - DlgRef_Skeleton_QTD.h \ - DlgRef_1Sel_QTD.h \ - DlgRef_2Sel_QTD.h \ - DlgRef_3Sel_QTD.h \ - DlgRef_1Sel1Check_QTD.h \ - DlgRef_1Sel3Check_QTD.h \ - DlgRef_1Sel1Check1List_QTD.h \ - DlgRef_1Sel1Spin_QTD.h \ - DlgRef_1Sel2Spin_QTD.h \ - DlgRef_1Sel3Spin_QTD.h \ - DlgRef_1Sel4Spin_QTD.h \ - DlgRef_1Sel5Spin_QTD.h \ - DlgRef_1Sel5Spin1Check_QTD.h \ - DlgRef_2Sel1Spin_QTD.h \ - DlgRef_2Sel2Spin_QTD.h \ - DlgRef_2Sel3Spin_QTD.h \ - DlgRef_1Sel1Spin1Check_QTD.h \ - DlgRef_2Sel1Spin2Check_QTD.h \ - DlgRef_2Sel2Spin1Check_QTD.h \ - DlgRef_2Sel4Spin1Check_QTD.h \ - DlgRef_3Sel4Spin2Check_QTD.h \ - DlgRef_2Sel3Spin2Rb_QTD.h \ - DlgRef_2Sel3Spin2Rb.h \ - DlgRef_4Sel1List_QTD.h \ - DlgRef_2Sel1List_QTD.h \ - DlgRef_2Sel1List1Check_QTD.h \ - DlgRef_1List1Spin1Btn_QTD.h \ - DlgRef_4Sel1List1Check_QTD.h \ - DlgRef_1Spin_QTD.h \ - DlgRef_2Spin_QTD.h \ - DlgRef_3Spin_QTD.h \ - DlgRef_3Spin1Check_QTD.h \ - DlgRef_3Sel3Spin1Check_QTD.h \ - DlgRef_4Sel1Spin2Check_QTD.h \ - DlgRef_SpinBox.h \ - DlgRef_1Sel1Spin.h \ - DlgRef_1Sel2Spin.h \ - DlgRef_1Sel3Spin.h \ - DlgRef_1Sel4Spin.h \ - DlgRef_1Sel5Spin.h \ - DlgRef_1Sel5Spin1Check.h \ - DlgRef_2Sel1Spin.h \ - DlgRef_2Sel2Spin.h \ - DlgRef_2Sel3Spin.h \ - DlgRef_1Sel1Spin1Check.h \ - DlgRef_2Sel1Spin2Check.h \ - DlgRef_2Sel2Spin1Check.h \ - DlgRef_2Sel4Spin1Check.h \ - DlgRef_3Sel4Spin2Check.h \ - DlgRef_3Sel3Spin1Check.h \ - DlgRef_1Spin.h \ - DlgRef_2Spin.h \ - DlgRef_3Spin.h \ - DlgRef_3Spin1Check.h \ - DlgRef_3Sel1Spin.h \ - DlgRef_1Sel_Ext.h \ - DlgRef_3Check_QTD.h \ - DlgRef_6Sel_QTD.h \ - DlgRef_4Sel1Spin2Check.h \ - DlgRef_3Sel1Check_QTD.h \ - GEOM_DlgRef.hxx +UIC_FILES = \ + ui_DlgRef_1List1Spin1Btn_QTD.h \ + ui_DlgRef_1Sel1Check1List_QTD.h \ + ui_DlgRef_1Sel1Check1Sel_QTD.h \ + ui_DlgRef_1Sel1Check_QTD.h \ + ui_DlgRef_1Sel1List1Check3Btn_QTD.h \ + ui_DlgRef_1Sel1Spin1Check_QTD.h \ + ui_DlgRef_1Sel1Spin_QTD.h \ + ui_DlgRef_1Sel2Spin1View1Check_QTD.h \ + ui_DlgRef_1Sel2Spin_QTD.h \ + ui_DlgRef_1Sel3Check_QTD.h \ + ui_DlgRef_1Sel3Spin_QTD.h \ + ui_DlgRef_1Sel3Spin1Check_QTD.h \ + ui_DlgRef_1Sel4Spin_QTD.h \ + ui_DlgRef_1Sel5Spin1Check_QTD.h \ + ui_DlgRef_1Sel5Spin_QTD.h \ + ui_DlgRef_1Sel_QTD.h \ + ui_DlgRef_1SelExt_QTD.h \ + ui_DlgRef_1Spin_QTD.h \ + ui_DlgRef_2Sel1List1Check_QTD.h \ + ui_DlgRef_2Sel1List_QTD.h \ + ui_DlgRef_2Sel1Spin2Check_QTD.h \ + ui_DlgRef_2Sel1Spin_QTD.h \ + ui_DlgRef_2Sel2List_QTD.h \ + ui_DlgRef_2Sel2Spin1Check_QTD.h \ + ui_DlgRef_2Sel2Spin_QTD.h \ + ui_DlgRef_2Sel3Spin2Rb_QTD.h \ + ui_DlgRef_2Sel3Spin_QTD.h \ + ui_DlgRef_2Sel4Spin1Check_QTD.h \ + ui_DlgRef_2Sel_QTD.h \ + ui_DlgRef_2SelExt_QTD.h \ + ui_DlgRef_2Spin_QTD.h \ + ui_DlgRef_3Check_QTD.h \ + ui_DlgRef_3Radio_QTD.h \ + ui_DlgRef_3Radio1Sel1Spin_QTD.h \ + ui_DlgRef_3Sel1Check_QTD.h \ + ui_DlgRef_3Sel1Spin_QTD.h \ + ui_DlgRef_3Sel3Spin1Check_QTD.h \ + ui_DlgRef_3Sel3Spin2Check_QTD.h \ + ui_DlgRef_3Sel4Spin2Check_QTD.h \ + ui_DlgRef_3Sel_QTD.h \ + ui_DlgRef_3Spin1Check_QTD.h \ + ui_DlgRef_3Spin_QTD.h \ + ui_DlgRef_4Sel1List1Check_QTD.h \ + ui_DlgRef_4Sel1List_QTD.h \ + ui_DlgRef_4Sel1Spin2Check_QTD.h \ + ui_DlgRef_4Sel1Spin3Check_QTD.h \ + ui_DlgRef_6Sel_QTD.h \ + ui_DlgRef_Skeleton_QTD.h -nodist_libDlgRef_la_SOURCES= \ - $(MOC_FILES) +BUILT_SOURCES = $(UIC_FILES) -# additionnal information to compil and link file -libDlgRef_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(KERNEL_CXXFLAGS) \ +nodist_libDlgRef_la_SOURCES = \ + $(MOC_FILES) \ + $(UIC_FILES) + +# additional information to compile and link file + +libDlgRef_la_CPPFLAGS = \ + $(QT_INCLUDES) \ $(GUI_CXXFLAGS) -libDlgRef_la_LDFLAGS = \ - $(GUI_LDFLAGS) -lqtx \ - $(STDLIB) \ +libDlgRef_la_LDFLAGS = \ + $(STDLIB) \ $(QT_MT_LIBS) diff --git a/src/DlgRef/UIFiles/DlgRef_1List1Spin1Btn_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1List1Spin1Btn_QTD.ui deleted file mode 100644 index 6366a74a7..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1List1Spin1Btn_QTD.ui +++ /dev/null @@ -1,93 +0,0 @@ - -DlgRef_1List1Spin1Btn_QTD - - - DlgRef_1List1Spin1Btn_QTD - - - - 0 - 0 - 204 - 148 - - - - DlgRef_3Sel4Spin2Check_QTD - - - - unnamed - - - 11 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 23 - - - - - - ListView1 - - - - - TextLabel1 - - - TL1 - - - - - SpinBox1 - - - - - PushButton1 - - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel1Check1List_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel1Check1List_QTD.ui deleted file mode 100644 index 677fe88ff..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Sel1Check1List_QTD.ui +++ /dev/null @@ -1,157 +0,0 @@ - -DlgRef_1Sel1Check1List_QTD - - - DlgRef_1Sel1Check1List_QTD - - - - 0 - 0 - 129 - 104 - - - - DlgRef_1Sel1Check1List_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 166 - - - - - - CheckButton1 - - - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - ComboBox1 - - - - 7 - 0 - 0 - 0 - - - - - - LineEdit1 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel1Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel1Check_QTD.ui deleted file mode 100644 index f86081355..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Sel1Check_QTD.ui +++ /dev/null @@ -1,133 +0,0 @@ - -DlgRef_1Sel1Check_QTD - - - DlgRef_1Sel1Check_QTD - - - - 0 - 0 - 382 - 219 - - - - DlgRef_1Sel1Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - CheckButton1 - - - - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - LineEdit1 - - - - - - - - - - PushButton1 - LineEdit1 - CheckButton1 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel1Spin1Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel1Spin1Check_QTD.ui deleted file mode 100644 index c90e9c67e..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Sel1Spin1Check_QTD.ui +++ /dev/null @@ -1,179 +0,0 @@ - -DlgRef_1Sel1Spin1Check_QTD - - - DlgRef_1Sel1Spin1Check_QTD - - - - 0 - 0 - 163 - 109 - - - - DlgRef_1Sel1Spin1Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout8 - - - - unnamed - - - 0 - - - 6 - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - LineEdit1 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - CheckButton1 - - - - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - - - - - - PushButton1 - LineEdit1 - SpinBox1 - CheckButton1 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel1Spin_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel1Spin_QTD.ui deleted file mode 100644 index e3551d166..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Sel1Spin_QTD.ui +++ /dev/null @@ -1,165 +0,0 @@ - -DlgRef_1Sel1Spin_QTD - - - DlgRef_1Sel1Spin_QTD - - - - 0 - 0 - 129 - 87 - - - - DlgRef_1Sel1Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - LineEdit1 - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - - - Spacer7 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel2Spin_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel2Spin_QTD.ui deleted file mode 100644 index 641264bb6..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Sel2Spin_QTD.ui +++ /dev/null @@ -1,194 +0,0 @@ - -DlgRef_1Sel2Spin_QTD - - - DlgRef_1Sel2Spin_QTD - - - - 0 - 0 - 129 - 115 - - - - DlgRef_1Sel2Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - - - LineEdit1 - - - - - Spacer7 - - - Vertical - - - Expanding - - - - 0 - 30 - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel3Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel3Check_QTD.ui deleted file mode 100644 index c2e482a23..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Sel3Check_QTD.ui +++ /dev/null @@ -1,151 +0,0 @@ - -DlgRef_1Sel3Check_QTD - - - DlgRef_1Sel3Check_QTD - - - - 0 - 0 - 163 - 116 - - - - DlgRef_1Sel3Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout6 - - - - unnamed - - - 0 - - - 6 - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - LineEdit1 - - - - - CheckButton2 - - - - - - - - CheckButton1 - - - - - - - - CheckButton3 - - - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - - - - - - PushButton1 - LineEdit1 - CheckButton1 - CheckButton2 - CheckButton3 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel3Spin_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel3Spin_QTD.ui deleted file mode 100644 index de8d35e33..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Sel3Spin_QTD.ui +++ /dev/null @@ -1,223 +0,0 @@ - -DlgRef_1Sel3Spin_QTD - - - DlgRef_1Sel3Spin_QTD - - - - 0 - 0 - 129 - 143 - - - - DlgRef_1Sel3Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit1 - - - - - Spacer6 - - - Vertical - - - Expanding - - - - 0 - 150 - - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel4Spin_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel4Spin_QTD.ui deleted file mode 100644 index 49a0cd1c2..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Sel4Spin_QTD.ui +++ /dev/null @@ -1,292 +0,0 @@ - -DlgRef_1Sel4Spin_QTD - - - DlgRef_1Sel4Spin_QTD - - - - 0 - 0 - 284 - 119 - - - - DlgRef_1Sel4Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - - - Spacer6 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - Layout4 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel6 - - - - 0 - 0 - 0 - 0 - - - - TL6 - - - - - SpinBox4 - - - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit1 - - - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel5Spin1Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel5Spin1Check_QTD.ui deleted file mode 100644 index 155cbeca0..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Sel5Spin1Check_QTD.ui +++ /dev/null @@ -1,290 +0,0 @@ - -DlgRef_1Sel5Spin1Check_QTD - - - DlgRef_1Sel5Spin1Check_QTD - - - - 0 - 0 - 162 - 143 - - - - DlgRef_1Sel5Spin1Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - SpinBox4 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel6 - - - - 0 - 0 - 0 - 0 - - - - TL6 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - SpinBox5 - - - - 7 - 0 - 0 - 0 - - - - - - CheckBox1 - - - - - - - - - - Spacer6 - - - Vertical - - - Expanding - - - - 0 - 120 - - - - - - LineEdit1 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel5Spin_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel5Spin_QTD.ui deleted file mode 100644 index c1bca88db..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Sel5Spin_QTD.ui +++ /dev/null @@ -1,281 +0,0 @@ - -DlgRef_1Sel5Spin_QTD - - - DlgRef_1Sel5Spin_QTD - - - - 0 - 0 - 162 - 143 - - - - DlgRef_1Sel5Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - SpinBox4 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel6 - - - - 0 - 0 - 0 - 0 - - - - TL6 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - SpinBox5 - - - - 7 - 0 - 0 - 0 - - - - - - - - Spacer6 - - - Vertical - - - Expanding - - - - 0 - 120 - - - - - - LineEdit1 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Sel_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Sel_QTD.ui deleted file mode 100644 index 3816fd110..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Sel_QTD.ui +++ /dev/null @@ -1,128 +0,0 @@ - -DlgRef_1Sel_QTD - - - DlgRef_1Sel_QTD - - - - 0 - 0 - 129 - 57 - - - - DlgRef_1Sel_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - 7 - 7 - 0 - 0 - - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - Spacer8 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - LineEdit1 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_1Spin_QTD.ui b/src/DlgRef/UIFiles/DlgRef_1Spin_QTD.ui deleted file mode 100644 index ddeca8757..000000000 --- a/src/DlgRef/UIFiles/DlgRef_1Spin_QTD.ui +++ /dev/null @@ -1,112 +0,0 @@ - -DlgRef_1Spin_QTD - - - DlgRef_1Spin_QTD - - - - 0 - 0 - 124 - 55 - - - - DlgRef_1Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_2Sel1Spin2Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_2Sel1Spin2Check_QTD.ui deleted file mode 100644 index a2e4e0ace..000000000 --- a/src/DlgRef/UIFiles/DlgRef_2Sel1Spin2Check_QTD.ui +++ /dev/null @@ -1,211 +0,0 @@ - -DlgRef_2Sel1Spin2Check_QTD - - - DlgRef_2Sel1Spin2Check_QTD - - - - 0 - 0 - 256 - 139 - - - - DlgRef_2Sel1Spin2Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 316 - - - - - - CheckButton2 - - - - - - - - LineEdit2 - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit1 - - - - - CheckButton1 - - - - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - - - - - - PushButton1 - LineEdit1 - PushButton2 - LineEdit2 - SpinBox1 - CheckButton2 - CheckButton1 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_2Sel1Spin_QTD.ui b/src/DlgRef/UIFiles/DlgRef_2Sel1Spin_QTD.ui deleted file mode 100644 index df952819a..000000000 --- a/src/DlgRef/UIFiles/DlgRef_2Sel1Spin_QTD.ui +++ /dev/null @@ -1,215 +0,0 @@ - -DlgRef_2Sel1Spin_QTD - - - DlgRef_2Sel1Spin_QTD - - - - 0 - 0 - 163 - 122 - - - - DlgRef_2Sel1Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - LineEdit1 - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - LineEdit2 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - NoFrame - - - Plain - - - TL2 - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - - - - - - PushButton1 - LineEdit1 - PushButton2 - LineEdit2 - SpinBox1 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_2Sel2Spin1Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_2Sel2Spin1Check_QTD.ui deleted file mode 100644 index 1a97c8724..000000000 --- a/src/DlgRef/UIFiles/DlgRef_2Sel2Spin1Check_QTD.ui +++ /dev/null @@ -1,248 +0,0 @@ - -DlgRef_2Sel2Spin1Check_QTD - - - DlgRef_2Sel2Spin1Check_QTD - - - - 0 - 0 - 163 - 170 - - - - DlgRef_2Sel2Spin1Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - - - LineEdit1 - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - CheckButton1 - - - - - - - - LineEdit2 - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - PushButton1 - LineEdit1 - PushButton2 - LineEdit2 - SpinBox1 - SpinBox2 - CheckButton1 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_2Sel2Spin_QTD.ui b/src/DlgRef/UIFiles/DlgRef_2Sel2Spin_QTD.ui deleted file mode 100644 index b935dc89a..000000000 --- a/src/DlgRef/UIFiles/DlgRef_2Sel2Spin_QTD.ui +++ /dev/null @@ -1,231 +0,0 @@ - -DlgRef_2Sel2Spin_QTD - - - DlgRef_2Sel2Spin_QTD - - - - 0 - 0 - 129 - 145 - - - - DlgRef_2Sel2Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - LineEdit1 - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 20 - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit2 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_2Sel3Spin2Rb_QTD.ui b/src/DlgRef/UIFiles/DlgRef_2Sel3Spin2Rb_QTD.ui deleted file mode 100644 index ca4821cc0..000000000 --- a/src/DlgRef/UIFiles/DlgRef_2Sel3Spin2Rb_QTD.ui +++ /dev/null @@ -1,279 +0,0 @@ - -DlgRef_2Sel3Spin2Rb_QTD - - - DlgRef_2Sel3Spin2Rb_QTD - - - - 0 - 0 - 439 - 340 - - - - DlgRef_2Sel3Spin2Rb_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit1 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - RadioButton2 - - - - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - RadioButton1 - - - - - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 207 - - - - - - LineEdit2 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - - - - - - RadioButton_Clicked() - - - diff --git a/src/DlgRef/UIFiles/DlgRef_2Sel3Spin_QTD.ui b/src/DlgRef/UIFiles/DlgRef_2Sel3Spin_QTD.ui deleted file mode 100644 index e51bd758a..000000000 --- a/src/DlgRef/UIFiles/DlgRef_2Sel3Spin_QTD.ui +++ /dev/null @@ -1,260 +0,0 @@ - -DlgRef_2Sel3Spin_QTD - - - DlgRef_2Sel3Spin_QTD - - - - 0 - 0 - 129 - 173 - - - - DlgRef_2Sel3Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - LineEdit1 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 20 - - - - - - LineEdit2 - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_2Sel4Spin1Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_2Sel4Spin1Check_QTD.ui deleted file mode 100644 index f148e2c89..000000000 --- a/src/DlgRef/UIFiles/DlgRef_2Sel4Spin1Check_QTD.ui +++ /dev/null @@ -1,324 +0,0 @@ - -DlgRef_2Sel4Spin1Check_QTD - - - DlgRef_2Sel4Spin1Check_QTD - - - - 0 - 0 - 262 - 230 - - - - DlgRef_2Sel4Spin1Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout5 - - - - unnamed - - - 0 - - - 6 - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - CheckButton1 - - - - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - - - LineEdit2 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - LineEdit1 - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox4 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel6 - - - - 0 - 0 - 0 - 0 - - - - TL6 - - - - - - - - - - - - PushButton1 - LineEdit1 - PushButton2 - LineEdit2 - SpinBox1 - SpinBox2 - CheckButton1 - SpinBox3 - SpinBox4 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_2Sel_QTD.ui b/src/DlgRef/UIFiles/DlgRef_2Sel_QTD.ui deleted file mode 100644 index 46e7f5b7e..000000000 --- a/src/DlgRef/UIFiles/DlgRef_2Sel_QTD.ui +++ /dev/null @@ -1,165 +0,0 @@ - -DlgRef_2Sel_QTD - - - DlgRef_2Sel_QTD - - - - 0 - 0 - 129 - 87 - - - - - 5 - 7 - 0 - 0 - - - - DlgRef_2Sel_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - Spacer3 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - LineEdit2 - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - LineEdit1 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_2Spin_QTD.ui b/src/DlgRef/UIFiles/DlgRef_2Spin_QTD.ui deleted file mode 100644 index 3fe8a9fe0..000000000 --- a/src/DlgRef/UIFiles/DlgRef_2Spin_QTD.ui +++ /dev/null @@ -1,141 +0,0 @@ - -DlgRef_2Spin_QTD - - - DlgRef_2Spin_QTD - - - - 0 - 0 - 124 - 83 - - - - DlgRef_2Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_3Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_3Check_QTD.ui deleted file mode 100644 index 9573bb295..000000000 --- a/src/DlgRef/UIFiles/DlgRef_3Check_QTD.ui +++ /dev/null @@ -1,112 +0,0 @@ - -DlgRef_3Check_QTD - - - DlgRef_3Check_QTD - - - - 0 - 0 - 135 - 108 - - - - DlgRef_3Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - RadioButton3 - - - RadioButton3 - - - - - RadioButton1 - - - RadioButton1 - - - - - RadioButton2 - - - RadioButton2 - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 91 - - - - - - - - - - - RadioButton1 - RadioButton2 - RadioButton3 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_3Sel1Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_3Sel1Check_QTD.ui deleted file mode 100644 index b14325d36..000000000 --- a/src/DlgRef/UIFiles/DlgRef_3Sel1Check_QTD.ui +++ /dev/null @@ -1,210 +0,0 @@ - -DlgRef_3Sel1Check_QTD - - - DlgRef_3Sel1Check_QTD - - - - 0 - 0 - 403 - 441 - - - - - 5 - 5 - 0 - 0 - - - - DlgRef_3Sel3Spin1Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - 5 - 5 - 0 - 0 - - - - - - - - unnamed - - - 11 - - - 6 - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit1 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit2 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - PushButton3 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit3 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - Spacer3 - - - Vertical - - - Expanding - - - - 16 - 721 - - - - - - CheckButton1 - - - CheckButton1 - - - - - - - - PushButton1 - LineEdit1 - PushButton2 - LineEdit2 - PushButton3 - LineEdit3 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_3Sel3Spin1Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_3Sel3Spin1Check_QTD.ui deleted file mode 100644 index c48cc30c3..000000000 --- a/src/DlgRef/UIFiles/DlgRef_3Sel3Spin1Check_QTD.ui +++ /dev/null @@ -1,317 +0,0 @@ - -DlgRef_3Sel3Spin1Check_QTD - - - DlgRef_3Sel3Spin1Check_QTD - - - - 0 - 0 - 380 - 229 - - - - - 5 - 5 - 0 - 0 - - - - DlgRef_3Sel3Spin1Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - 5 - 5 - 0 - 0 - - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox_2 - - - - 7 - 0 - 0 - 0 - - - - - - LineEdit3 - - - - - SpinBox_3 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - CheckBox1 - - - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - LineEdit2 - - - - - PushButton3 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel6 - - - - 0 - 0 - 0 - 0 - - - - TL6 - - - - - SpinBox_1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - LineEdit1 - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - Spacer3 - - - Vertical - - - Expanding - - - - 0 - 250 - - - - - - - - - - - PushButton1 - LineEdit1 - PushButton2 - LineEdit2 - PushButton3 - LineEdit3 - SpinBox_1 - SpinBox_2 - SpinBox_3 - CheckBox1 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_3Sel4Spin2Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_3Sel4Spin2Check_QTD.ui deleted file mode 100644 index 441a99a72..000000000 --- a/src/DlgRef/UIFiles/DlgRef_3Sel4Spin2Check_QTD.ui +++ /dev/null @@ -1,372 +0,0 @@ - -DlgRef_3Sel4Spin2Check_QTD - - - DlgRef_3Sel4Spin2Check_QTD - - - - 0 - 0 - 269 - 281 - - - - DlgRef_3Sel4Spin2Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - CheckButton2 - - - - - - - - LineEdit1 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit3 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox4 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel7 - - - - 0 - 0 - 0 - 0 - - - - TL7 - - - - - TextLabel6 - - - - 0 - 0 - 0 - 0 - - - - TL6 - - - - - - - CheckButton1 - - - - - - - - PushButton3 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - LineEdit2 - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - - - - - - PushButton1 - LineEdit1 - PushButton2 - LineEdit2 - PushButton3 - LineEdit3 - SpinBox1 - SpinBox2 - CheckButton1 - SpinBox3 - SpinBox4 - CheckButton2 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_3Sel_QTD.ui b/src/DlgRef/UIFiles/DlgRef_3Sel_QTD.ui deleted file mode 100644 index 0fe998827..000000000 --- a/src/DlgRef/UIFiles/DlgRef_3Sel_QTD.ui +++ /dev/null @@ -1,202 +0,0 @@ - -DlgRef_3Sel_QTD - - - DlgRef_3Sel_QTD - - - - 0 - 0 - 129 - 117 - - - - - 5 - 7 - 0 - 0 - - - - DlgRef_3Sel_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - LineEdit3 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit2 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - LineEdit1 - - - - - Spacer3 - - - Vertical - - - Expanding - - - - 0 - 159 - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - PushButton3 - - - - 0 - 0 - 0 - 0 - - - - - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_3Spin1Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_3Spin1Check_QTD.ui deleted file mode 100644 index fd3317f2d..000000000 --- a/src/DlgRef/UIFiles/DlgRef_3Spin1Check_QTD.ui +++ /dev/null @@ -1,178 +0,0 @@ - -DlgRef_3Spin1Check_QTD - - - DlgRef_3Spin1Check_QTD - - - - 0 - 0 - 124 - 130 - - - - DlgRef_3Spin1Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - CheckBox1 - - - - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 20 - - - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_3Spin_QTD.ui b/src/DlgRef/UIFiles/DlgRef_3Spin_QTD.ui deleted file mode 100644 index 96f6b4dfb..000000000 --- a/src/DlgRef/UIFiles/DlgRef_3Spin_QTD.ui +++ /dev/null @@ -1,170 +0,0 @@ - -DlgRef_3Spin_QTD - - - DlgRef_3Spin_QTD - - - - 0 - 0 - 124 - 111 - - - - DlgRef_3Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 16 - - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_4Sel1List_QTD.ui b/src/DlgRef/UIFiles/DlgRef_4Sel1List_QTD.ui deleted file mode 100644 index 831768d79..000000000 --- a/src/DlgRef/UIFiles/DlgRef_4Sel1List_QTD.ui +++ /dev/null @@ -1,260 +0,0 @@ - -DlgRef_4Sel1List_QTD - - - DlgRef_4Sel1List_QTD - - - - 0 - 0 - 129 - 175 - - - - DlgRef_4Sel1List_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - LineEdit2 - - - - - PushButton4 - - - - 0 - 0 - 0 - 0 - - - - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit4 - - - - - PushButton3 - - - - 0 - 0 - 0 - 0 - - - - - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 80 - - - - - - LineEdit1 - - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - LineEdit3 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - ComboBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_4Sel1Spin2Check_QTD.ui b/src/DlgRef/UIFiles/DlgRef_4Sel1Spin2Check_QTD.ui deleted file mode 100644 index 2d23f60c5..000000000 --- a/src/DlgRef/UIFiles/DlgRef_4Sel1Spin2Check_QTD.ui +++ /dev/null @@ -1,264 +0,0 @@ - -DlgRef_4Sel1Spin2Check_QTD - - - DlgRef_4Sel1Spin2Check_QTD - - - - 0 - 0 - 261 - 198 - - - - DlgRef_4Sel1Spin2Check_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 6 - - - - CheckButton2 - - - - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit5 - - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - LineEdit1 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - CheckButton1 - - - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - PushButton5 - - - - 0 - 0 - 0 - 0 - - - - - - - - - PushButton4 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit4 - - - - - LineEdit2 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - - - - - - PushButton1 - LineEdit1 - PushButton2 - LineEdit2 - SpinBox1 - CheckButton2 - - - diff --git a/src/DlgRef/UIFiles/DlgRef_6Sel_QTD.ui b/src/DlgRef/UIFiles/DlgRef_6Sel_QTD.ui deleted file mode 100644 index c5ff40649..000000000 --- a/src/DlgRef/UIFiles/DlgRef_6Sel_QTD.ui +++ /dev/null @@ -1,296 +0,0 @@ - -DlgRef_6Sel_QTD - - - DlgRef_6Sel_QTD - - - - 0 - 0 - 235 - 196 - - - - - 5 - 7 - 0 - 0 - - - - DlgRef_6Sel_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - TextLabel6 - - - - 0 - 0 - 0 - 0 - - - - TL6 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - - - - PushButton3 - - - - 0 - 0 - 0 - 0 - - - - - - - - - PushButton4 - - - - 0 - 0 - 0 - 0 - - - - - - - - - PushButton5 - - - - 0 - 0 - 0 - 0 - - - - - - - - - PushButton6 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit1 - - - - - LineEdit2 - - - - - LineEdit3 - - - - - LineEdit4 - - - - - LineEdit5 - - - - - LineEdit6 - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/DlgRef_Skeleton_QTD.ui b/src/DlgRef/UIFiles/DlgRef_Skeleton_QTD.ui deleted file mode 100644 index 8979116e8..000000000 --- a/src/DlgRef/UIFiles/DlgRef_Skeleton_QTD.ui +++ /dev/null @@ -1,234 +0,0 @@ - -DlgRef_Skeleton_QTD - - - DlgRef_Skeleton_QTD - - - - 0 - 0 - 307 - 378 - - - - - 5 - 7 - 0 - 0 - - - - true - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - GroupButtons - - - - 7 - 0 - 0 - 0 - - - - - unnamed - - - 11 - - - 6 - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - buttonOk - - - - - buttonApply - - - - - Spacer1 - - - Horizontal - - - Expanding - - - - 91 - 0 - - - - - - buttonCancel - - - - - buttonHelp - - - - - - - - - GroupConstructors - - - - 5 - 0 - 0 - 0 - - - - - unnamed - - - 11 - - - 6 - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - RadioButton1 - - - - - RadioButton2 - - - - - RadioButton3 - - - - - RadioButton4 - - - - - - - - - GroupBoxName - - - - unnamed - - - 11 - - - 6 - - - - Layout66 - - - - unnamed - - - 0 - - - 6 - - - - ResultName - - - - - NameLabel - - - - - - - - - - - - diff --git a/src/DlgRef/UIFiles/ui_to_cxx b/src/DlgRef/UIFiles/ui_to_cxx deleted file mode 100755 index 60e5b024d..000000000 --- a/src/DlgRef/UIFiles/ui_to_cxx +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -#// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -#!/bin/sh - -#uic -o DlgRef_Skeleton_QTD.h DlgRef_Skeleton_QTD.ui -#uic -o DlgRef_Skeleton_QTD.cxx -impl DlgRef_Skeleton_QTD.h DlgRef_Skeleton_QTD.ui - -#uic -o DlgRef_1Sel_QTD.h DlgRef_1Sel_QTD.ui -#uic -o DlgRef_1Sel_QTD.cxx -impl DlgRef_1Sel_QTD.h DlgRef_1Sel_QTD.ui - -#uic -o DlgRef_1Sel1Spin_QTD.h DlgRef_1Sel1Spin_QTD.ui -#uic -o DlgRef_1Sel1Spin_QTD.cxx -impl DlgRef_1Sel1Spin_QTD.h DlgRef_1Sel1Spin_QTD.ui - -#uic -o DlgRef_1Sel1Spin1Check_QTD.h DlgRef_1Sel1Spin1Check_QTD.ui -#uic -o DlgRef_1Sel1Spin1Check_QTD.cxx -impl DlgRef_1Sel1Spin1Check_QTD.h DlgRef_1Sel1Spin1Check_QTD.ui - -#uic -o DlgRef_1Sel2Spin_QTD.h DlgRef_1Sel2Spin_QTD.ui -#uic -o DlgRef_1Sel2Spin_QTD.cxx -impl DlgRef_1Sel2Spin_QTD.h DlgRef_1Sel2Spin_QTD.ui - -#uic -o DlgRef_1Sel3Spin_QTD.h DlgRef_1Sel3Spin_QTD.ui -#uic -o DlgRef_1Sel3Spin_QTD.cxx -impl DlgRef_1Sel3Spin_QTD.h DlgRef_1Sel3Spin_QTD.ui - -#uic -o DlgRef_1Sel4Spin_QTD.h DlgRef_1Sel4Spin_QTD.ui -#uic -o DlgRef_1Sel4Spin_QTD.cxx -impl DlgRef_1Sel4Spin_QTD.h DlgRef_1Sel4Spin_QTD.ui - -#uic -o DlgRef_1Sel5Spin_QTD.h DlgRef_1Sel5Spin_QTD.ui -#uic -o DlgRef_1Sel5Spin_QTD.cxx -impl DlgRef_1Sel5Spin_QTD.h DlgRef_1Sel5Spin_QTD.ui - -#uic -o DlgRef_1Sel5Spin1Check_QTD.h DlgRef_1Sel5Spin1Check_QTD.ui -#uic -o DlgRef_1Sel5Spin1Check_QTD.cxx -impl DlgRef_1Sel5Spin1Check_QTD.h DlgRef_1Sel5Spin1Check_QTD.ui - -#uic -o DlgRef_1Sel1Check_QTD.h DlgRef_1Sel1Check_QTD.ui -#uic -o DlgRef_1Sel1Check_QTD.cxx -impl DlgRef_1Sel1Check_QTD.h DlgRef_1Sel1Check_QTD.ui - -#uic -o DlgRef_1Sel3Check_QTD.h DlgRef_1Sel3Check_QTD.ui -#uic -o DlgRef_1Sel3Check_QTD.cxx -impl DlgRef_1Sel3Check_QTD.h DlgRef_1Sel3Check_QTD.ui - -#uic -o DlgRef_1Sel1Check1List_QTD.h DlgRef_1Sel1Check1List_QTD.ui -#uic -o DlgRef_1Sel1Check1List_QTD.cxx -impl DlgRef_1Sel1Check1List_QTD.h DlgRef_1Sel1Check1List_QTD.ui - -#uic -o DlgRef_2Sel_QTD.h DlgRef_2Sel_QTD.ui -#uic -o DlgRef_2Sel_QTD.cxx -impl DlgRef_2Sel_QTD.h DlgRef_2Sel_QTD.ui - -#uic -o DlgRef_2Sel1Spin_QTD.h DlgRef_2Sel1Spin_QTD.ui -#uic -o DlgRef_2Sel1Spin_QTD.cxx -impl DlgRef_2Sel1Spin_QTD.h DlgRef_2Sel1Spin_QTD.ui - -#uic -o DlgRef_2Sel1Spin2Check_QTD.h DlgRef_2Sel1Spin2Check_QTD.ui -#uic -o DlgRef_2Sel1Spin2Check_QTD.cxx -impl DlgRef_2Sel1Spin2Check_QTD.h DlgRef_2Sel1Spin2Check_QTD.ui - -#uic -o DlgRef_2Sel2Spin_QTD.h DlgRef_2Sel2Spin_QTD.ui -#uic -o DlgRef_2Sel2Spin_QTD.cxx -impl DlgRef_2Sel2Spin_QTD.h DlgRef_2Sel2Spin_QTD.ui - -#uic -o DlgRef_2Sel2Spin1Check_QTD.h DlgRef_2Sel2Spin1Check_QTD.ui -#uic -o DlgRef_2Sel2Spin1Check_QTD.cxx -impl DlgRef_2Sel2Spin1Check_QTD.h DlgRef_2Sel2Spin1Check_QTD.ui - -#uic -o DlgRef_2Sel3Spin_QTD.h DlgRef_2Sel3Spin_QTD.ui -#uic -o DlgRef_2Sel3Spin_QTD.cxx -impl DlgRef_2Sel3Spin_QTD.h DlgRef_2Sel3Spin_QTD.ui - -#uic -o DlgRef_2Sel4Spin1Check_QTD.h DlgRef_2Sel4Spin1Check_QTD.ui -#uic -o DlgRef_2Sel4Spin1Check_QTD.cxx -impl DlgRef_2Sel4Spin1Check_QTD.h DlgRef_2Sel4Spin1Check_QTD.ui - -#uic -o DlgRef_4Sel1List_QTD.h DlgRef_4Sel1List_QTD.ui -#uic -o DlgRef_4Sel1List_QTD.cxx -impl DlgRef_4Sel1List_QTD.h DlgRef_4Sel1List_QTD.ui - -#uic -o DlgRef_3Sel_QTD.h DlgRef_3Sel_QTD.ui -#uic -o DlgRef_3Sel_QTD.cxx -impl DlgRef_3Sel_QTD.h DlgRef_3Sel_QTD.ui - -#uic -o DlgRef_3Sel4Spin2Check_QTD.h DlgRef_3Sel4Spin2Check_QTD.ui -#uic -o DlgRef_3Sel4Spin2Check_QTD.cxx -impl DlgRef_3Sel4Spin2Check_QTD.h DlgRef_3Sel4Spin2Check_QTD.ui - -#uic -o DlgRef_1Spin_QTD.h DlgRef_1Spin_QTD.ui -#uic -o DlgRef_1Spin_QTD.cxx -impl DlgRef_1Spin_QTD.h DlgRef_1Spin_QTD.ui - -#uic -o DlgRef_2Spin_QTD.h DlgRef_2Spin_QTD.ui -#uic -o DlgRef_2Spin_QTD.cxx -impl DlgRef_2Spin_QTD.h DlgRef_2Spin_QTD.ui - -#uic -o DlgRef_3Spin_QTD.h DlgRef_3Spin_QTD.ui -#uic -o DlgRef_3Spin_QTD.cxx -impl DlgRef_3Spin_QTD.h DlgRef_3Spin_QTD.ui - -#uic -o DlgRef_3Spin1Check_QTD.h DlgRef_3Spin1Check_QTD.ui -#uic -o DlgRef_3Spin1Check_QTD.cxx -impl DlgRef_3Spin1Check_QTD.h DlgRef_3Spin1Check_QTD.ui - -#uic -o DlgRef_3Sel3Spin1Check_QTD.h DlgRef_3Sel3Spin1Check_QTD.ui -#uic -o DlgRef_3Sel3Spin1Check_QTD.cxx -impl DlgRef_3Sel3Spin1Check_QTD.h DlgRef_3Sel3Spin1Check_QTD.ui - -#uic -o DlgRef_6Sel_QTD.h DlgRef_6Sel_QTD.ui -#uic -o DlgRef_6Sel_QTD.cxx -impl DlgRef_6Sel_QTD.h DlgRef_6Sel_QTD.ui - -#uic -o DlgRef_3Check_QTD.h DlgRef_3Check_QTD.ui -#uic -o DlgRef_3Check_QTD.cxx -impl DlgRef_3Check_QTD.h DlgRef_3Check_QTD.ui - -#uic -o DlgRef_4Sel1Spin2Check_QTD.h DlgRef_4Sel1Spin2Check_QTD.ui -#uic -o DlgRef_4Sel1Spin2Check_QTD.cxx -impl DlgRef_4Sel1Spin2Check_QTD.h DlgRef_4Sel1Spin2Check_QTD.ui - -#uic -o DlgRef_4Sel1Spin2Check_QTD.h DlgRef_4Sel1Spin2Check_QTD.ui -#uic -o DlgRef_4Sel1Spin2Check_QTD.cxx -impl DlgRef_4Sel1Spin2Check_QTD.h DlgRef_4Sel1Spin2Check_QTD.ui - -#uic -o DlgRef_2Sel3Spin2Rb_QTD.h DlgRef_2Sel3Spin2Rb_QTD.ui -#uic -o DlgRef_2Sel3Spin2Rb_QTD.cxx -impl DlgRef_2Sel3Spin2Rb_QTD.h DlgRef_2Sel3Spin2Rb_QTD.ui - -uic -o DlgRef_3Sel1Check_QTD.h DlgRef_3Sel1Check_QTD.ui -uic -o DlgRef_3Sel1Check_QTD.cxx -impl DlgRef_3Sel1Check_QTD.h DlgRef_3Sel1Check_QTD.ui>>>>>>> 1.6.2.3 diff --git a/src/EntityGUI/EntityGUI.cxx b/src/EntityGUI/EntityGUI.cxx index 8bdee4ae6..25e0103f6 100644 --- a/src/EntityGUI/EntityGUI.cxx +++ b/src/EntityGUI/EntityGUI.cxx @@ -1,64 +1,53 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : EntityGUI.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : EntityGUI.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "EntityGUI.h" -#include "GeometryGUI.h" -#include "GEOM_AssemblyBuilder.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SUIT_ViewWindow.h" -#include "OCCViewer_ViewModel.h" -#include "OCCViewer_ViewManager.h" -#include "SalomeApp_Study.h" -#include "SalomeApp_Tools.h" -#include "SalomeApp_Application.h" +#include -#include -#include -#include +#include +#include +#include +#include +#include +#include + +#include #include "EntityGUI_SketcherDlg.h" // Sketcher +#include "EntityGUI_3DSketcherDlg.h" // Sketcher #include "EntityGUI_SubShapeDlg.h" // Method SUBSHAPE -#include "utilities.h" - -using namespace boost; -using namespace std; - //======================================================================= // function : EntityGUI() // purpose : Constructor //======================================================================= EntityGUI::EntityGUI( GeometryGUI* parent ) : GEOMGUI( parent ) { - mySimulationShape1 = new AIS_Shape(TopoDS_Shape()); - mySimulationShape2 = new AIS_Shape(TopoDS_Shape()); + mySimulationShape1 = new AIS_Shape( TopoDS_Shape() ); + mySimulationShape2 = new AIS_Shape( TopoDS_Shape() ); } //======================================================================= @@ -74,7 +63,7 @@ EntityGUI::~EntityGUI() // function : OnGUIEvent() // purpose : //======================================================================= -bool EntityGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) +bool EntityGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { SalomeApp_Application* app = getGeometryGUI()->getApp(); if ( !app ) return false; @@ -82,22 +71,24 @@ bool EntityGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) getGeometryGUI()->EmitSignalDeactivateDialog(); QDialog* aDlg = NULL; - switch (theCommandID) - { - case 404: // SKETCHER - getGeometryGUI()->ActiveWorkingPlane(); - aDlg = new EntityGUI_SketcherDlg(getGeometryGUI(), parent, ""); - break; - case 407: // EXPLODE : use ic - aDlg = new EntityGUI_SubShapeDlg(getGeometryGUI(), parent, ""); - break; - default: - app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); - break; + switch ( theCommandID ) { + case 404: // SKETCHER + getGeometryGUI()->ActiveWorkingPlane(); + aDlg = new EntityGUI_SketcherDlg( getGeometryGUI(), parent ); + break; + case 405: // 3D SKETCHER + aDlg = new EntityGUI_3DSketcherDlg( getGeometryGUI(), parent ); + break; + case 407: // EXPLODE : use ic + aDlg = new EntityGUI_SubShapeDlg( getGeometryGUI(), parent ); + break; + default: + app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); + break; } if ( aDlg ) aDlg->show(); - + return true; } @@ -106,49 +97,48 @@ bool EntityGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) // function : DisplaySimulationShape() // purpose : Displays 'this->mySimulationShape' a pure graphical shape from a TopoDS_Shape //===================================================================================== -void EntityGUI::DisplaySimulationShape(const TopoDS_Shape& S1, const TopoDS_Shape& S2) +void EntityGUI::DisplaySimulationShape( const TopoDS_Shape& S1, const TopoDS_Shape& S2 ) { SalomeApp_Application* app = getGeometryGUI()->getApp(); if ( !app ) return; SUIT_ViewManager* aVM = app->desktop()->activeWindow()->getViewManager(); - if (aVM->getType() != OCCViewer_Viewer::Type()) + if ( aVM->getType() != OCCViewer_Viewer::Type() ) return; - OCCViewer_Viewer* v3d = ((OCCViewer_ViewManager*)aVM)->getOCCViewer(); + OCCViewer_Viewer* v3d = ( (OCCViewer_ViewManager*)aVM )->getOCCViewer(); Handle(AIS_InteractiveContext) ic = v3d->getAISContext(); try { - if (!S1.IsNull()) { + if ( !S1.IsNull() ) { /* erase any previous */ - ic->Erase(mySimulationShape1, Standard_True, Standard_False); - ic->ClearPrs(mySimulationShape1); + ic->Erase( mySimulationShape1, Standard_True, Standard_False ); + ic->ClearPrs( mySimulationShape1 ); - mySimulationShape1 = new AIS_Shape(TopoDS_Shape()); - mySimulationShape1->Set(S1); - mySimulationShape1->SetColor(Quantity_NOC_RED); + mySimulationShape1 = new AIS_Shape( TopoDS_Shape() ); + mySimulationShape1->Set( S1 ); + mySimulationShape1->SetColor( Quantity_NOC_RED ); - ic->Deactivate(mySimulationShape1); - ic->Display(mySimulationShape1, Standard_False); + ic->Deactivate( mySimulationShape1 ); + ic->Display( mySimulationShape1, Standard_False ); mySimulationShape1->UnsetColor(); } - if (!S2.IsNull()) { - ic->Erase(mySimulationShape2, Standard_True, Standard_False); - ic->ClearPrs(mySimulationShape2); + if ( !S2.IsNull() ) { + ic->Erase( mySimulationShape2, Standard_True, Standard_False ); + ic->ClearPrs( mySimulationShape2 ); - mySimulationShape2 = new AIS_Shape(TopoDS_Shape()); - mySimulationShape2->Set(S2); - mySimulationShape2->SetColor(Quantity_NOC_VIOLET); + mySimulationShape2 = new AIS_Shape( TopoDS_Shape() ); + mySimulationShape2->Set( S2 ); + mySimulationShape2->SetColor( Quantity_NOC_VIOLET ); - ic->Deactivate(mySimulationShape2); - ic->Display(mySimulationShape2, Standard_False); + ic->Deactivate( mySimulationShape2 ); + ic->Display( mySimulationShape2, Standard_False ); mySimulationShape2->UnsetColor(); } ic->UpdateCurrentViewer(); } - catch(Standard_Failure) { - MESSAGE("Exception catched in EntityGUI::DisplaySimulationShape "); + catch( Standard_Failure ) { + MESSAGE( "Exception catched in EntityGUI::DisplaySimulationShape" ); } - return; } //================================================================================== @@ -161,22 +151,25 @@ void EntityGUI::EraseSimulationShape() if ( !app ) return; // get all view windows at the desktop - QPtrList aWndLst = app->desktop()->windows(); + QList aWndLst = app->desktop()->windows(); //get all view windows, which belong to the active study - QPtrList aWndLstAS; + QList aWndLstAS; SUIT_ViewWindow* vw; - for ( vw = aWndLst.first(); vw; vw = aWndLst.next() ) + + QListIterator itWL( aWndLst ); + while ( itWL.hasNext() && ( vw = itWL.next() ) ) if ( vw->getViewManager()->study() == app->activeStudy() ) aWndLstAS.append( vw ); - for ( vw = aWndLstAS.first(); vw; vw = aWndLstAS.next() ) { + QListIterator itWLAS( aWndLstAS ); + while ( itWLAS.hasNext() && ( vw = itWLAS.next() ) ) { if ( vw->getViewManager()->getType() == OCCViewer_Viewer::Type() ) { - OCCViewer_Viewer* v3d = ((OCCViewer_ViewManager*)(vw->getViewManager()))->getOCCViewer(); + OCCViewer_Viewer* v3d = ( (OCCViewer_ViewManager*)( vw->getViewManager() ) )->getOCCViewer(); Handle(AIS_InteractiveContext) ic = v3d->getAISContext(); - ic->Erase(mySimulationShape1, Standard_True, Standard_False); - ic->ClearPrs(mySimulationShape1); - ic->Erase(mySimulationShape2, Standard_True, Standard_False); - ic->ClearPrs(mySimulationShape2); + ic->Erase( mySimulationShape1, Standard_True, Standard_False ); + ic->ClearPrs( mySimulationShape1 ); + ic->Erase( mySimulationShape2, Standard_True, Standard_False ); + ic->ClearPrs( mySimulationShape2 ); ic->UpdateCurrentViewer(); } } @@ -186,7 +179,7 @@ void EntityGUI::EraseSimulationShape() // function : SObjectExist() // purpose : //===================================================================================== -bool EntityGUI::SObjectExist(const _PTR(SObject)& theFatherObject, const char* IOR) +bool EntityGUI::SObjectExist( const _PTR(SObject)& theFatherObject, const char* IOR ) { SalomeApp_Application* app = getGeometryGUI()->getApp(); if ( !app ) return false; @@ -194,20 +187,20 @@ bool EntityGUI::SObjectExist(const _PTR(SObject)& theFatherObject, const char* I if ( !appStudy ) return false; _PTR(Study) aStudy = appStudy->studyDS(); - _PTR(ChildIterator) it ( aStudy->NewChildIterator(theFatherObject) ); + _PTR(ChildIterator) it ( aStudy->NewChildIterator( theFatherObject ) ); _PTR(SObject) RefSO; _PTR(GenericAttribute) anAttr; - for(; it->More();it->Next()) { + for ( ; it->More();it->Next() ) { _PTR(SObject) SO ( it->Value() ); - if(SO->FindAttribute(anAttr, "AttributeIOR")) { + if ( SO->FindAttribute( anAttr, "AttributeIOR" ) ) { _PTR(AttributeIOR) anIOR ( anAttr ); - if(strcmp( anIOR->Value().c_str(), IOR ) == 0) + if ( strcmp( anIOR->Value().c_str(), IOR ) == 0 ) return true; } - if(SO->ReferencedObject(RefSO)) { - if(RefSO->FindAttribute(anAttr, "AttributeIOR")) { + if ( SO->ReferencedObject( RefSO ) ) { + if ( RefSO->FindAttribute( anAttr, "AttributeIOR" ) ) { _PTR(AttributeIOR) anIOR ( anAttr ); - if(strcmp(anIOR->Value().c_str(), IOR) == 0) + if ( strcmp( anIOR->Value().c_str(), IOR ) == 0 ) return true; } } @@ -221,7 +214,9 @@ bool EntityGUI::SObjectExist(const _PTR(SObject)& theFatherObject, const char* I //===================================================================================== extern "C" { -GEOM_ENTITYGUI_EXPORT +#ifdef WIN32 + __declspec( dllexport ) +#endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { return new EntityGUI( parent ); diff --git a/src/EntityGUI/EntityGUI.h b/src/EntityGUI/EntityGUI.h index a4fd8c001..bc401c68c 100644 --- a/src/EntityGUI/EntityGUI.h +++ b/src/EntityGUI/EntityGUI.h @@ -1,63 +1,61 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : EntityGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : EntityGUI.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef ENTITYGUI_H #define ENTITYGUI_H -#include "GEOM_EntityGUI.hxx" +#include -#include "GEOMGUI.h" +#include -#include "SALOMEDSClient.hxx" - -#include #include +class TopoDS_Shape; + //================================================================================= // class : EntityGUI // purpose : //================================================================================= -class GEOM_ENTITYGUI_EXPORT EntityGUI : public GEOMGUI +class EntityGUI : public GEOMGUI { public : - EntityGUI( GeometryGUI* parent ); // hide constructor to avoid direct creation + EntityGUI( GeometryGUI* ); ~EntityGUI(); - bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent); + bool OnGUIEvent( int, SUIT_Desktop* ); - void DisplaySimulationShape(const TopoDS_Shape& S1, const TopoDS_Shape& S2); - void EraseSimulationShape(); + void DisplaySimulationShape( const TopoDS_Shape&, const TopoDS_Shape& ); + void EraseSimulationShape(); // Methods for sub shapes explode - bool SObjectExist(const _PTR(SObject)& theFatherObject, const char* IOR); + bool SObjectExist( const _PTR(SObject)&, const char* ); +public: // AIS shape used only during topo/geom simulations Handle(AIS_Shape) mySimulationShape1; Handle(AIS_Shape) mySimulationShape2; }; -#endif +#endif // ENTITYGUI_H diff --git a/src/EntityGUI/EntityGUI.pro b/src/EntityGUI/EntityGUI.pro new file mode 100644 index 000000000..4c46d5946 --- /dev/null +++ b/src/EntityGUI/EntityGUI.pro @@ -0,0 +1,72 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = EntityGUI +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +QT_MT_LIBS = -L$$(QTDIR)/lib -lQtCore -lQtXml -lQtGui -lQtOpenGL + +CAS_TKTopAlgo = -L$${CASROOT}/Linux/lib -lTKG2d -lTKG3d -lTKGeomBase -lTKBRep -lTKGeomAlgo -lTKTopAlgo + +INCLUDEPATH += $${QT_INCLUDES} $${VTK_INCLUDES} $${CAS_CPPFLAGS} $${PYTHON_INCLUDES} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} $${CORBA_INCLUDES} ../GEOMGUI ../DlgRef ../GEOMBase ../OBJECT ../GEOMClient ../GEOMImpl ../GEOMFiltersSelection ../SKETCHER $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lGEOMFiltersSelection -lGEOMBase -lGEOMSketcher -lGEOM $${QT_MT_LIBS} $${CAS_TKTopAlgo} -lTKernel + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += ENTITYGUI_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +HEADERS = GEOM_EntityGUI.hxx + +SOURCES = EntityGUI.cxx +SOURCES += EntityGUI_1Spin.cxx +SOURCES += EntityGUI_2Spin.cxx +SOURCES += EntityGUI_3Spin.cxx +SOURCES += EntityGUI_4Spin.cxx +SOURCES += EntityGUI_SketcherDlg.cxx +SOURCES += EntityGUI_SubShapeDlg.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/EntityGUI/EntityGUI_1Sel_QTD.cxx b/src/EntityGUI/EntityGUI_1Sel_QTD.cxx deleted file mode 100644 index be05efcad..000000000 --- a/src/EntityGUI/EntityGUI_1Sel_QTD.cxx +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'EntityGUI_1Sel_QTD.ui' -** -** Created: Thu Aug 12 19:03:19 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "EntityGUI_1Sel_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a EntityGUI_1Sel_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -EntityGUI_1Sel_QTD::EntityGUI_1Sel_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "EntityGUI_1Sel_QTD" ); - resize( 329, 112 ); - setCaption( trUtf8( "EntityGUI_1Sel_QTD" ) ); - EntityGUI_1Sel_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "EntityGUI_1Sel_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "Values" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout4 = new QGridLayout( 0, 1, 1, 0, 6, "Layout4"); - - Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); - QSpacerItem* spacer = new QSpacerItem( 0, 163, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout3->addItem( spacer, 2, 0 ); - - buttonApply = new QPushButton( GroupBox1, "buttonApply" ); - buttonApply->setText( trUtf8( "Create" ) ); - - Layout3->addWidget( buttonApply, 0, 0 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - buttonRedo = new QPushButton( GroupBox1, "buttonRedo" ); - buttonRedo->setText( trUtf8( "Redo" ) ); - - Layout2->addWidget( buttonRedo, 0, 1 ); - - buttonUndo = new QPushButton( GroupBox1, "buttonUndo" ); - buttonUndo->setText( trUtf8( "Undo" ) ); - - Layout2->addWidget( buttonUndo, 0, 0 ); - - Layout3->addLayout( Layout2, 1, 0 ); - - Layout4->addLayout( Layout3, 0, 1 ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - QSpacerItem* spacer_2 = new QSpacerItem( 0, 180, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer_2, 1, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - LineEdit1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)0, 0, 0, LineEdit1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - Layout4->addLayout( Layout1, 0, 0 ); - - GroupBox1Layout->addLayout( Layout4, 0, 0 ); - - EntityGUI_1Sel_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_1Sel_QTD::~EntityGUI_1Sel_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/EntityGUI/EntityGUI_1Sel_QTD.h b/src/EntityGUI/EntityGUI_1Sel_QTD.h deleted file mode 100644 index 401ddddc7..000000000 --- a/src/EntityGUI/EntityGUI_1Sel_QTD.h +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'EntityGUI_1Sel_QTD.ui' -** -** Created: Fri Jul 30 16:06:00 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef ENTITYGUI_1SEL_QTD_H -#define ENTITYGUI_1SEL_QTD_H - -#include "GEOM_EntityGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_ENTITYGUI_EXPORT EntityGUI_1Sel_QTD : public QWidget -{ - Q_OBJECT - -public: - EntityGUI_1Sel_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~EntityGUI_1Sel_QTD(); - - QGroupBox* GroupBox1; - QPushButton* buttonApply; - QPushButton* buttonRedo; - QPushButton* buttonUndo; - QLabel* TextLabel1; - QPushButton* PushButton1; - QLineEdit* LineEdit1; - - -protected: - QGridLayout* EntityGUI_1Sel_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout4; - QGridLayout* Layout3; - QGridLayout* Layout2; - QGridLayout* Layout1; -}; - -#endif // ENTITYGUI_1SEL_QTD_H diff --git a/src/EntityGUI/EntityGUI_1Sel_QTD.ui b/src/EntityGUI/EntityGUI_1Sel_QTD.ui new file mode 100644 index 000000000..b5af6d132 --- /dev/null +++ b/src/EntityGUI/EntityGUI_1Sel_QTD.ui @@ -0,0 +1,126 @@ + + EntityGUI_1Sel_QTD + + + + 0 + 0 + 402 + 88 + + + + EntityGUI_1Sel_QTD + + + + 0 + + + 0 + + + + + Values + + + + 9 + + + 6 + + + + + 0 + + + 6 + + + + + Undo + + + + + + + Redo + + + + + + + + + + 3 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + + + + + + + + Create + + + + + + + + + + qPixmapFromMimeSource + + PushButton1 + LineEdit1 + buttonApply + buttonUndo + buttonRedo + + + + diff --git a/src/EntityGUI/EntityGUI_1Spin.cxx b/src/EntityGUI/EntityGUI_1Spin.cxx deleted file mode 100644 index c8a62963f..000000000 --- a/src/EntityGUI/EntityGUI_1Spin.cxx +++ /dev/null @@ -1,56 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : EntityGUI_1Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "EntityGUI_1Spin.h" - -#include -#include -#include - -/* - * Constructs a EntityGUI_1Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -EntityGUI_1Spin::EntityGUI_1Spin(QWidget* parent, const char* name, WFlags fl) - :EntityGUI_1Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout1->addWidget(SpinBox_DX, 0, 1); - -} - - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_1Spin::~EntityGUI_1Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/EntityGUI/EntityGUI_1Spin.h b/src/EntityGUI/EntityGUI_1Spin.h deleted file mode 100644 index 5631e0bac..000000000 --- a/src/EntityGUI/EntityGUI_1Spin.h +++ /dev/null @@ -1,49 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : EntityGUI_1Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef ENTITYGUI_1SPIN_H -#define ENTITYGUI_1SPIN_H - -#include "GEOM_EntityGUI.hxx" - -#include "EntityGUI_1Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_ENTITYGUI_EXPORT EntityGUI_1Spin : public EntityGUI_1Spin_QTD -{ - Q_OBJECT - -public: - EntityGUI_1Spin(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~EntityGUI_1Spin(); - - DlgRef_SpinBox* SpinBox_DX; - -}; - -#endif // ENTITYGUI_1SPIN_H diff --git a/src/EntityGUI/EntityGUI_1Spin_QTD.cxx b/src/EntityGUI/EntityGUI_1Spin_QTD.cxx deleted file mode 100644 index 98a476cef..000000000 --- a/src/EntityGUI/EntityGUI_1Spin_QTD.cxx +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'EntityGUI_1Spin_QTD.ui' -** -** Created: Fri Jul 30 16:05:59 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "EntityGUI_1Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a EntityGUI_1Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -EntityGUI_1Spin_QTD::EntityGUI_1Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "EntityGUI_1Spin_QTD" ); - resize( 255, 112 ); - setCaption( trUtf8( "EntityGUI_1Spin_QTD" ) ); - EntityGUI_1Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "EntityGUI_1Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "Values" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout4 = new QGridLayout( 0, 1, 1, 0, 6, "Layout4"); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox1, 0, 1 ); - QSpacerItem* spacer = new QSpacerItem( 0, 82, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 1 ); - - Layout4->addLayout( Layout1, 0, 0 ); - - Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - buttonRedo = new QPushButton( GroupBox1, "buttonRedo" ); - buttonRedo->setText( trUtf8( "Redo" ) ); - - Layout2->addWidget( buttonRedo, 0, 1 ); - - buttonUndo = new QPushButton( GroupBox1, "buttonUndo" ); - buttonUndo->setText( trUtf8( "Undo" ) ); - - Layout2->addWidget( buttonUndo, 0, 0 ); - - Layout3->addLayout( Layout2, 1, 0 ); - - buttonApply = new QPushButton( GroupBox1, "buttonApply" ); - buttonApply->setText( trUtf8( "Create" ) ); - - Layout3->addWidget( buttonApply, 0, 0 ); - QSpacerItem* spacer_2 = new QSpacerItem( 0, 40, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout3->addItem( spacer_2, 2, 0 ); - - Layout4->addLayout( Layout3, 0, 1 ); - - GroupBox1Layout->addLayout( Layout4, 0, 0 ); - - EntityGUI_1Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_1Spin_QTD::~EntityGUI_1Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/EntityGUI/EntityGUI_1Spin_QTD.h b/src/EntityGUI/EntityGUI_1Spin_QTD.h deleted file mode 100644 index e525552bb..000000000 --- a/src/EntityGUI/EntityGUI_1Spin_QTD.h +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'EntityGUI_1Spin_QTD.ui' -** -** Created: Fri Jul 30 16:05:59 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef ENTITYGUI_1SPIN_QTD_H -#define ENTITYGUI_1SPIN_QTD_H - -#include "GEOM_EntityGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QPushButton; -class QSpinBox; - -class GEOM_ENTITYGUI_EXPORT EntityGUI_1Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - EntityGUI_1Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~EntityGUI_1Spin_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel1; - QSpinBox* SpinBox1; - QPushButton* buttonRedo; - QPushButton* buttonUndo; - QPushButton* buttonApply; - - -protected: - QGridLayout* EntityGUI_1Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout4; - QGridLayout* Layout1; - QGridLayout* Layout3; - QGridLayout* Layout2; -}; - -#endif // ENTITYGUI_1SPIN_QTD_H diff --git a/src/EntityGUI/EntityGUI_1Spin_QTD.ui b/src/EntityGUI/EntityGUI_1Spin_QTD.ui new file mode 100644 index 000000000..687f962dc --- /dev/null +++ b/src/EntityGUI/EntityGUI_1Spin_QTD.ui @@ -0,0 +1,108 @@ + + EntityGUI_1Spin_QTD + + + + 0 + 0 + 268 + 88 + + + + EntityGUI_1Spin_QTD + + + + 0 + + + 0 + + + + + Values + + + + 9 + + + 6 + + + + + + + + 0 + + + 6 + + + + + Redo + + + + + + + Undo + + + + + + + + + Create + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + SpinBox_DX + buttonApply + buttonUndo + buttonRedo + + + +
      diff --git a/src/EntityGUI/EntityGUI_2Spin.cxx b/src/EntityGUI/EntityGUI_2Spin.cxx deleted file mode 100644 index 8ed08eccc..000000000 --- a/src/EntityGUI/EntityGUI_2Spin.cxx +++ /dev/null @@ -1,60 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : EntityGUI_2Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "EntityGUI_2Spin.h" - -#include -#include -#include - -/* - * Constructs a EntityGUI_2Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -EntityGUI_2Spin::EntityGUI_2Spin(QWidget* parent, const char* name, WFlags fl) - :EntityGUI_2Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout1->addWidget(SpinBox_DX, 0, 1); - - SpinBox_DY = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - Layout1->addWidget(SpinBox_DY, 1, 1); - -} - - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_2Spin::~EntityGUI_2Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/EntityGUI/EntityGUI_2Spin.h b/src/EntityGUI/EntityGUI_2Spin.h deleted file mode 100644 index 9d79e478a..000000000 --- a/src/EntityGUI/EntityGUI_2Spin.h +++ /dev/null @@ -1,50 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : EntityGUI_2Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef ENTITYGUI_2SPIN_H -#define ENTITYGUI_2SPIN_H - -#include "GEOM_EntityGUI.hxx" - -#include "EntityGUI_2Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_ENTITYGUI_EXPORT EntityGUI_2Spin : public EntityGUI_2Spin_QTD -{ - Q_OBJECT - -public: - EntityGUI_2Spin(QWidget* parent = 0, const char* name = 0, WFlags fl = 0); - ~EntityGUI_2Spin(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - -}; - -#endif // ENTITYGUI_2SPIN_H diff --git a/src/EntityGUI/EntityGUI_2Spin_QTD.cxx b/src/EntityGUI/EntityGUI_2Spin_QTD.cxx deleted file mode 100644 index b6f254d5a..000000000 --- a/src/EntityGUI/EntityGUI_2Spin_QTD.cxx +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'EntityGUI_2Spin_QTD.ui' -** -** Created: Fri Jul 30 16:06:00 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "EntityGUI_2Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a EntityGUI_2Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -EntityGUI_2Spin_QTD::EntityGUI_2Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "EntityGUI_2Spin_QTD" ); - resize( 255, 112 ); - setCaption( trUtf8( "EntityGUI_2Spin_QTD" ) ); - EntityGUI_2Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "EntityGUI_2Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "Values" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout4 = new QGridLayout( 0, 1, 1, 0, 6, "Layout4"); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox1, 0, 1 ); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox2, 1, 1 ); - QSpacerItem* spacer = new QSpacerItem( 0, 82, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 1 ); - - Layout4->addLayout( Layout1, 0, 0 ); - - Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); - QSpacerItem* spacer_2 = new QSpacerItem( 0, 51, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout3->addItem( spacer_2, 2, 0 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - buttonUndo = new QPushButton( GroupBox1, "buttonUndo" ); - buttonUndo->setText( trUtf8( "Undo" ) ); - - Layout2->addWidget( buttonUndo, 0, 0 ); - - buttonRedo = new QPushButton( GroupBox1, "buttonRedo" ); - buttonRedo->setText( trUtf8( "Redo" ) ); - - Layout2->addWidget( buttonRedo, 0, 1 ); - - Layout3->addLayout( Layout2, 1, 0 ); - - buttonApply = new QPushButton( GroupBox1, "buttonApply" ); - buttonApply->setText( trUtf8( "Create" ) ); - - Layout3->addWidget( buttonApply, 0, 0 ); - - Layout4->addLayout( Layout3, 0, 1 ); - - GroupBox1Layout->addLayout( Layout4, 0, 0 ); - - EntityGUI_2Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_2Spin_QTD::~EntityGUI_2Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/EntityGUI/EntityGUI_2Spin_QTD.h b/src/EntityGUI/EntityGUI_2Spin_QTD.h deleted file mode 100644 index 718f80e42..000000000 --- a/src/EntityGUI/EntityGUI_2Spin_QTD.h +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'EntityGUI_2Spin_QTD.ui' -** -** Created: Fri Jul 30 16:06:00 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef ENTITYGUI_2SPIN_QTD_H -#define ENTITYGUI_2SPIN_QTD_H - -#include "GEOM_EntityGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QPushButton; -class QSpinBox; - -class GEOM_ENTITYGUI_EXPORT EntityGUI_2Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - EntityGUI_2Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~EntityGUI_2Spin_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel2; - QLabel* TextLabel1; - QSpinBox* SpinBox1; - QSpinBox* SpinBox2; - QPushButton* buttonUndo; - QPushButton* buttonRedo; - QPushButton* buttonApply; - - -protected: - QGridLayout* EntityGUI_2Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout4; - QGridLayout* Layout1; - QGridLayout* Layout3; - QGridLayout* Layout2; -}; - -#endif // ENTITYGUI_2SPIN_QTD_H diff --git a/src/EntityGUI/EntityGUI_2Spin_QTD.ui b/src/EntityGUI/EntityGUI_2Spin_QTD.ui new file mode 100644 index 000000000..f28257dd4 --- /dev/null +++ b/src/EntityGUI/EntityGUI_2Spin_QTD.ui @@ -0,0 +1,130 @@ + + EntityGUI_2Spin_QTD + + + + 0 + 0 + 264 + 88 + + + + EntityGUI_2Spin_QTD + + + + 0 + + + 0 + + + + + Values + + + + 9 + + + 6 + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + 0 + + + 6 + + + + + Undo + + + + + + + Redo + + + + + + + + + Create + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + SpinBox_DX + SpinBox_DY + buttonApply + buttonUndo + buttonRedo + + + +
      diff --git a/src/EntityGUI/EntityGUI_3DSketcherDlg.cxx b/src/EntityGUI/EntityGUI_3DSketcherDlg.cxx new file mode 100755 index 000000000..134cbd3cf --- /dev/null +++ b/src/EntityGUI/EntityGUI_3DSketcherDlg.cxx @@ -0,0 +1,629 @@ +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : EntityGUI_3DSketcherDlg.cxx +// Author : DMV, OCN +// + +#include "EntityGUI_3DSketcherDlg.h" +#include "EntityGUI_Widgets.h" +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +class Locker +{ +public: + Locker( bool& l ) : myLock( l ) { myLock = true; } + ~Locker() { myLock = false; } +private: + bool& myLock; +}; + +//================================================================================= +// class : EntityGUI_3DSketcherDlg() +// purpose : Constructs a EntityGUI_3DSketcherDlg which is a child of 'parent', with the +// name 'name' and widget flags set to 'f'. +// The dialog will by default be modeless, unless you set 'modal' to +// TRUE to construct a modal dialog. +//================================================================================= +EntityGUI_3DSketcherDlg::EntityGUI_3DSketcherDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl, + const double lineWidth ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ), + myGeometryGUI( theGeometryGUI ), + myLineWidth( lineWidth ) +{ + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_UNDO" ) ) ); + QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_REDO" ) ) ); + QPixmap image3( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICO_3DSKETCH" ) ) ); + + setWindowTitle( tr( "GEOM_3DSKETCHER_TITLE" ) ); + + /***************************************************************/ + + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_3DSKETCHER" ) ); + mainFrame()->RadioButton1->setIcon( image3 );; + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->close(); + + GroupType = new DlgRef_3Radio(centralWidget()); + GroupType->GroupBox1->setTitle(tr("GEOM_COORDINATES_TYPE")); + GroupType->RadioButton1->setText(tr("GEOM_SKETCHER_ABS")); + GroupType->RadioButton2->setText(tr("GEOM_SKETCHER_REL")); + GroupType->RadioButton3->close(); + + Group3Spin = new EntityGUI_3Spin( centralWidget() ); + Group3Spin->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); + Group3Spin->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); + Group3Spin->buttonUndo->setIcon( image1 ); + Group3Spin->buttonRedo->setIcon( image2 ); + Group3Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_X2" ) ); + Group3Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_Y2" ) ); + Group3Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_Z2" ) ); + + buttonOk()->setText( tr( "GEOM_BUT_END_SKETCH" ) ); + buttonApply()->setText( tr( "GEOM_BUT_CLOSE_SKETCH" ) ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupType ); + layout->addWidget( Group3Spin ); + + setHelpFileName( "create_3dsketcher_page.html" ); + + resize(0,0); + Init(); +} + + + +//================================================================================= +// function : ~EntityGUI_3DSketcherDlg() +// purpose : Destroys the object and frees any allocated resources +//================================================================================= +EntityGUI_3DSketcherDlg::~EntityGUI_3DSketcherDlg() +{ + myGeomGUI->SetActiveDialogBox( 0 ); +} + +//================================================================================= +// function : Init() +// purpose : +//================================================================================= +void EntityGUI_3DSketcherDlg::Init() +{ + myOK = false; + + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + + /* Get setting of step value from file configuration */ + double step = SUIT_Session::session()->resourceMgr()->doubleValue( "Geometry", "SettingsGeomStep", 100.0 ); + + /* min, max, step and decimals for spin boxes */ + initSpinBox( Group3Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group3Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group3Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + + /* signals and slots connections */ + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( PointClicked( int ) ) ); + + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); + + connect( Group3Spin->buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnAddPoint() ) ); + connect( Group3Spin->buttonUndo, SIGNAL( clicked() ), this, SLOT( ClickOnUndo() ) ); + connect( Group3Spin->buttonRedo, SIGNAL( clicked() ), this, SLOT( ClickOnRedo() ) ) ; + + connect( GroupType->RadioButton1, SIGNAL( clicked() ), this, SLOT( TypeClicked() ) ); + connect( GroupType->RadioButton2, SIGNAL( clicked() ), this, SLOT( TypeClicked() ) ); + + connect( Group3Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group3Spin->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group3Spin->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + + connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); + + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); + + initName( tr( "GEOM_3DSKETCHER" ) ); + + UpdateButtonsState(); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); +} + +//================================================================================= +// function : TypeClicked() +// purpose : Radio button management +//================================================================================= +void EntityGUI_3DSketcherDlg::TypeClicked() +{ + bool blocked = Group3Spin->SpinBox_DX->signalsBlocked(); + Group3Spin->SpinBox_DX->blockSignals(true); + Group3Spin->SpinBox_DY->blockSignals(true); + Group3Spin->SpinBox_DZ->blockSignals(true); + // Get setting of step value from file configuration + double x, y, z; + GetLastPoints(x, y, z); + if ( GroupType->RadioButton1->isChecked() ) { // XY + Group3Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_X2" ) ); + Group3Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_Y2" ) ); + Group3Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_Z2" ) ); + Group3Spin->SpinBox_DX->setValue( x + Group3Spin->SpinBox_DX->value() ); + Group3Spin->SpinBox_DY->setValue( y + Group3Spin->SpinBox_DY->value() ); + Group3Spin->SpinBox_DZ->setValue( z + Group3Spin->SpinBox_DZ->value() ); + Group3Spin->buttonApply->setFocus(); + } else if ( GroupType->RadioButton2->isChecked() ) { // DXDY + Group3Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_DX2" ) ); + Group3Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_DY2" ) ); + Group3Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_DZ2" ) ); + Group3Spin->SpinBox_DX->setValue( Group3Spin->SpinBox_DX->value() - x ); + Group3Spin->SpinBox_DY->setValue( Group3Spin->SpinBox_DY->value() - y ); + Group3Spin->SpinBox_DZ->setValue( Group3Spin->SpinBox_DZ->value() - z ); + Group3Spin->buttonApply->setFocus(); + } + Group3Spin->SpinBox_DX->blockSignals(blocked); + Group3Spin->SpinBox_DY->blockSignals(blocked); + Group3Spin->SpinBox_DZ->blockSignals(blocked); +} + +//================================================================================= +// function : ClickOnAddPoint() +// purpose : called when the point coordinates is Applyed +//================================================================================= +void EntityGUI_3DSketcherDlg::ClickOnAddPoint() +{ + Locker lock( myOK ); + + double x, y, z; + GetCurrentPoints(x, y, z); + myPointsList.append(x); + myPointsList.append(y); + myPointsList.append(z); + + myRedoList.clear(); + + if ( GroupType->RadioButton2->isChecked() ) { + Group3Spin->SpinBox_DX->setValue( 0.0 ); + Group3Spin->SpinBox_DY->setValue( 0.0 ); + Group3Spin->SpinBox_DZ->setValue( 0.0 ); + } + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); + UpdateButtonsState(); +} + +//================================================================================= +// function : UpdateButtonsState() +// purpose : +//================================================================================= +void EntityGUI_3DSketcherDlg::UpdateButtonsState() +{ + if ( !myPointsList.count() ) + GroupType->RadioButton1->setChecked( true ); + GroupType->RadioButton2->setEnabled( myPointsList.count() > 2 ); + Group3Spin->buttonUndo->setEnabled( myPointsList.count() > 2 ); + Group3Spin->buttonRedo->setEnabled( myRedoList.count() > 2 ); +} + +//================================================================================= +// function : ClickOnUndo() +// purpose : +//================================================================================= +void EntityGUI_3DSketcherDlg::ClickOnUndo() +{ + if (myPointsList.count() > 2) { + double x, y, z; + GetLastPoints(x, y, z); + myRedoList.append(x); + myRedoList.append(y); + myRedoList.append(z); + myPointsList.removeLast(); + myPointsList.removeLast(); + myPointsList.removeLast(); + + UpdateButtonsState(); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); + } +} + +//================================================================================= +// function : ClickOnRedo() +// purpose : +//================================================================================= +void EntityGUI_3DSketcherDlg::ClickOnRedo() +{ + int count = myRedoList.count(); + if ( count > 2 ) { + myPointsList.append( myRedoList[count-3] ); + myPointsList.append( myRedoList[count-2] ); + myPointsList.append( myRedoList[count-1] ); + myRedoList.removeLast(); + myRedoList.removeLast(); + myRedoList.removeLast(); + + UpdateButtonsState(); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); + } +} + +//================================================================================= +// function : SelectionIntoArgument() +// purpose : Called when selection as changed +//================================================================================= +void EntityGUI_3DSketcherDlg::SelectionIntoArgument() +{ + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + int nbSel = aSelList.Extent(); + if ( nbSel == 1 ) { + Standard_Boolean aRes = Standard_False; + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); + if (!CORBA::is_nil(aSelectedObject) && aRes) { + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE)) { // Explore the shape if its a local selection + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) + { + int anIndex = aMap(1); + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + } + bool isOk = true; + if ( aShape.ShapeType() != TopAbs_VERTEX ) + isOk = GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_VERTEX); + if (isOk) { + gp_Pnt aPnt; + if ( GEOMBase::VertexToPoint( aShape, aPnt ) ) { + // set coordinates to the Spin Boxes + double aX, aY, aZ; + aX = aPnt.X(); + aY = aPnt.Y(); + aZ = aPnt.Z(); + bool blocked = Group3Spin->SpinBox_DX->signalsBlocked(); + Group3Spin->SpinBox_DX->blockSignals(true); + Group3Spin->SpinBox_DY->blockSignals(true); + Group3Spin->SpinBox_DZ->blockSignals(true); + if ( GroupType->RadioButton1->isChecked() ) { + Group3Spin->SpinBox_DX->setValue( aX ); + Group3Spin->SpinBox_DY->setValue( aY ); + Group3Spin->SpinBox_DZ->setValue( aZ ); + } else if ( GroupType->RadioButton2->isChecked() ) { + double x, y, z; + GetLastPoints(x, y, z); + Group3Spin->SpinBox_DX->setValue( aX - x ); + Group3Spin->SpinBox_DY->setValue( aY - y ); + Group3Spin->SpinBox_DZ->setValue( aZ - z ); + } + Group3Spin->SpinBox_DX->blockSignals(blocked); + Group3Spin->SpinBox_DY->blockSignals(blocked); + Group3Spin->SpinBox_DZ->blockSignals(blocked); + } + } + } + } + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); +} + +//================================================================================= +// function : DeactivateActiveDialog() +// purpose : +//================================================================================= +void EntityGUI_3DSketcherDlg::DeactivateActiveDialog() +{ + setEnabled( false ); + globalSelection(); + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); + myGeomGUI->SetActiveDialogBox( 0 ); +} + + +//================================================================================= +// function : ActivateThisDialog() +// purpose : +//================================================================================= +void EntityGUI_3DSketcherDlg::ActivateThisDialog() +{ + myGeomGUI->EmitSignalDeactivateDialog(); + setEnabled( true ); + myGeomGUI->SetActiveDialogBox( this ); + + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); + + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); +} + + +//================================================================================= +// function : ValueChangedInSpinBox() +// purpose : +//================================================================================= +void EntityGUI_3DSketcherDlg::ValueChangedInSpinBox( double newValue ) +{ + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); +} + +//================================================================================= +// function : enterEvent() +// purpose : +//================================================================================= +void EntityGUI_3DSketcherDlg::enterEvent( QEvent* ) +{ + if ( !mainFrame()->GroupConstructors->isEnabled() ) + ActivateThisDialog(); +} + +//================================================================================= +// function : createOperation +// purpose : +//================================================================================= +GEOM::GEOM_IOperations_ptr EntityGUI_3DSketcherDlg::createOperation() +{ + return getGeomEngine()->GetICurvesOperations( getStudyId() ); +} + +//================================================================================= +// function : isValid +// purpose : +//================================================================================= +bool EntityGUI_3DSketcherDlg::isValid( QString& msg ) +{ + return true; +} + +//================================================================================= +// function : execute +// purpose : +//================================================================================= +bool EntityGUI_3DSketcherDlg::execute( ObjectList& objects ) +{ + GEOM::ListOfDouble_var aCoordsArray = new GEOM::ListOfDouble; + if (!myOK || myPointsList.size() == 0) + aCoordsArray->length(myPointsList.size()+3); + else + aCoordsArray->length(myPointsList.size()); + + int i = 0; + QList::const_iterator it; + for(it = myPointsList.begin(); it != myPointsList.end(); ++it ) { + aCoordsArray[i] = *it; + i++; + } + + if (!myOK || myPointsList.size() == 0) { + double x, y, z; + GetCurrentPoints(x, y, z); + aCoordsArray[i] = x; + aCoordsArray[i+1] = y; + aCoordsArray[i+2] = z; + } + + GEOM::GEOM_Object_var anObj = GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->Make3DSketcher( aCoordsArray ); + + if ( !anObj->_is_nil() ) + objects.push_back( anObj._retn() ); + + return true; +} + +//================================================================================= +// function : initSpinBox() +// purpose : +//================================================================================= + +void EntityGUI_3DSketcherDlg::initSpinBox( QDoubleSpinBox* spinBox, + double min, double max, + double step, int decimals ) +{ + spinBox->setDecimals( decimals ); + spinBox->setRange( min, max ); + spinBox->setSingleStep( step ); +} + +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void EntityGUI_3DSketcherDlg::SetDoubleSpinBoxStep( double step ) +{ + Group3Spin->SpinBox_DX->setSingleStep(step); + Group3Spin->SpinBox_DY->setSingleStep(step); + Group3Spin->SpinBox_DZ->setSingleStep(step); +} + +//================================================================================= +// function : ClickOnOk() +// purpose : +//================================================================================= +void EntityGUI_3DSketcherDlg::ClickOnOk() +{ + Locker lock( myOK ); + + if ( !onAccept() ) + return; + + ClickOnCancel(); +} + +//================================================================================= +// function : ClickOnApply() +// purpose : +//================================================================================= +bool EntityGUI_3DSketcherDlg::ClickOnApply() +{ + if (myPointsList.count() > 3) { + myPointsList.append(myPointsList[0]); + myPointsList.append(myPointsList[1]); + myPointsList.append(myPointsList[2]); + } + + Locker lock( myOK ); + + if ( !onAccept() ) + return false; + + ClickOnCancel(); + return true; +} + +//================================================================================= +// function : GetLastPoints() +// purpose : return last points from list +//================================================================================= +void EntityGUI_3DSketcherDlg::GetLastPoints(double& x, double& y, double& z) +{ + int count = myPointsList.count(); + x = count > 2 ? myPointsList[count-3] : 0.0; + y = count > 2 ? myPointsList[count-2] : 0.0; + z = count > 2 ? myPointsList[count-1] : 0.0; +} + +//================================================================================= +// function : GetCurrentPoints() +// purpose : returns current points +//================================================================================= +void EntityGUI_3DSketcherDlg::GetCurrentPoints(double& x, double& y, double& z) +{ + if ( GroupType->RadioButton1->isChecked() ) { + x = Group3Spin->SpinBox_DX->value(); + y = Group3Spin->SpinBox_DY->value(); + z = Group3Spin->SpinBox_DZ->value(); + } else { // if (GroupType->RadioButton2->isChecked()) + GetLastPoints(x, y, z); + x += Group3Spin->SpinBox_DX->value(); + y += Group3Spin->SpinBox_DY->value(); + z += Group3Spin->SpinBox_DZ->value(); + } +} + +//================================================================ +// Function : displayPreview +// Purpose : Method for displaying preview of resulting shape +// Redefined from GEOMBase_Helper. +//================================================================ +void EntityGUI_3DSketcherDlg::displayPreview( GEOM::GEOM_Object_ptr object, + const bool append, + const bool activate, + const bool update, + const double lineWidth, + const int displayMode, + const int color ) +{ + // Set color for preview shape + getDisplayer()->SetColor( Quantity_NOC_RED ); + + // set width of displayed shape + getDisplayer()->SetWidth( (lineWidth == -1)?myLineWidth:lineWidth ); + + // Disable activation of selection + getDisplayer()->SetToActivate( activate ); + + // Make a reference to GEOM_Object + CORBA::String_var objStr = myGeometryGUI->getApp()->orb()->object_to_string( object ); + getDisplayer()->SetName( objStr.in() ); + + // Create wire from applayed object + TopoDS_Shape anApplyedWire, aLastSegment; + if ( !createShapes( object, anApplyedWire, aLastSegment ) ) + return; + + // Build prs + SALOME_Prs* aPrs = getDisplayer()->BuildPrs( anApplyedWire ); + if ( aPrs != 0 && !aPrs->IsNull() ) + GEOMBase_Helper::displayPreview( aPrs, append, update ); + + getDisplayer()->SetColor( Quantity_NOC_VIOLET ); + aPrs = getDisplayer()->BuildPrs( aLastSegment ); + if ( aPrs != 0 && !aPrs->IsNull() ) + GEOMBase_Helper::displayPreview( aPrs, append, update ); + + getDisplayer()->UnsetName(); + + // Enable activation of displayed objects + getDisplayer()->SetToActivate( true ); +} + +//================================================================ +// Function : createShapes +// Purpose : Create applyed wire, and last segment from entry object +//================================================================ +bool EntityGUI_3DSketcherDlg::createShapes( GEOM::GEOM_Object_ptr theObject, + TopoDS_Shape& theApplyedWire, + TopoDS_Shape& theLastSegment ) +{ + TopoDS_Shape aShape; + if ( !GEOMBase::GetShape( theObject, aShape ) || + aShape.ShapeType() != TopAbs_WIRE && aShape.ShapeType() != TopAbs_VERTEX ) + return false; + + if ( myOK ) { + theApplyedWire = aShape; + return true; + } + + BRepBuilderAPI_MakeWire aBuilder; + TopExp_Explorer anExp( aShape, TopAbs_EDGE ); + while ( 1 ) { + TopoDS_Shape anEdge = anExp.Current(); + anExp.Next(); + if ( anExp.More() ) // i.e. non-last edge + aBuilder.Add( TopoDS::Edge( anEdge ) ); + else { + theLastSegment = anEdge; + break; + } + } + + if ( aBuilder.IsDone() ) + theApplyedWire = aBuilder.Shape(); + + return true; +} diff --git a/src/EntityGUI/EntityGUI_3DSketcherDlg.h b/src/EntityGUI/EntityGUI_3DSketcherDlg.h new file mode 100755 index 000000000..19cdb327d --- /dev/null +++ b/src/EntityGUI/EntityGUI_3DSketcherDlg.h @@ -0,0 +1,111 @@ +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : EntityGUI_3DSketcherDlg.h +// Author : DMV, OCN +// + +#ifndef ENTITYGUI_3DSKETCHERDLG_H +#define ENTITYGUI_3DSKETCHERDLG_H + +#include + +class QDoubleSpinBox; +class EntityGUI_3Spin; +class DlgRef_3Radio; + +#ifndef COORD_MIN +# define COORD_MIN -1e+15 +# define COORD_MAX +1e+15 +# define MAX_NUMBER 100000 +# define DBL_DIGITS_DISPLAY 16 +#endif // COORD_MIN + +//================================================================================= +// class : EntityGUI_Dlg +// purpose : +//================================================================================= +class EntityGUI_3DSketcherDlg : public GEOMBase_Skeleton +{ + Q_OBJECT + +public: + EntityGUI_3DSketcherDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0, const double = 2. ); + ~EntityGUI_3DSketcherDlg(); + +protected: + void initSpinBox( QDoubleSpinBox*, + double, double, double = 0.1, + int = 3 ); + + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + +private: + void Init(); + void enterEvent( QEvent* ); + + virtual void displayPreview( GEOM::GEOM_Object_ptr, + const bool = false, + const bool = false, + const bool = true, + const double = -1, + const int = -1, + const int = -1); + + bool createShapes( GEOM::GEOM_Object_ptr, + TopoDS_Shape&, + TopoDS_Shape& ); + +private: + QList myPointsList; + QList myRedoList; + + EntityGUI_3Spin* Group3Spin; + DlgRef_3Radio* GroupType; + + bool myOK; + double myLineWidth; + GeometryGUI* myGeometryGUI; + +private slots: + void ClickOnOk(); + void ClickOnAddPoint(); + bool ClickOnApply(); + // bool isSameAsPrevious(); + void UpdateButtonsState(); + void GetLastPoints(double&, double&, double&); + void GetCurrentPoints(double&, double&, double&); + + void ClickOnUndo(); + void ClickOnRedo(); + + void SelectionIntoArgument(); + void DeactivateActiveDialog(); + void ActivateThisDialog(); + void TypeClicked(); + void ValueChangedInSpinBox( double ); + void SetDoubleSpinBoxStep( double ); +}; + +#endif // ENTITYGUI_SKETCHERDLG_H diff --git a/src/EntityGUI/EntityGUI_3Spin.cxx b/src/EntityGUI/EntityGUI_3Spin.cxx deleted file mode 100644 index 8a0fb7e53..000000000 --- a/src/EntityGUI/EntityGUI_3Spin.cxx +++ /dev/null @@ -1,63 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : EntityGUI_3Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "EntityGUI_3Spin.h" - -#include -#include -#include - -/* - * Constructs a EntityGUI_3Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -EntityGUI_3Spin::EntityGUI_3Spin(QWidget* parent, const char* name, WFlags fl) - :EntityGUI_3Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout1->addWidget(SpinBox_DX, 0, 1); - - SpinBox_DY = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - Layout1->addWidget(SpinBox_DY, 1, 1); - - SpinBox_DZ = new DlgRef_SpinBox(GroupBox1, "SpinBox_DZ"); - Layout1->addWidget(SpinBox_DZ, 2, 1); -} - - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_3Spin::~EntityGUI_3Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/EntityGUI/EntityGUI_3Spin.h b/src/EntityGUI/EntityGUI_3Spin.h deleted file mode 100644 index 4b612bdf1..000000000 --- a/src/EntityGUI/EntityGUI_3Spin.h +++ /dev/null @@ -1,51 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : EntityGUI_3Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef ENTITYGUI_3SPIN_H -#define ENTITYGUI_3SPIN_H - -#include "GEOM_EntityGUI.hxx" - -#include "EntityGUI_3Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_ENTITYGUI_EXPORT EntityGUI_3Spin : public EntityGUI_3Spin_QTD -{ - Q_OBJECT - -public: - EntityGUI_3Spin( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~EntityGUI_3Spin(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - DlgRef_SpinBox* SpinBox_DZ; - -}; - -#endif // ENTITYGUI_3SPIN_H diff --git a/src/EntityGUI/EntityGUI_3Spin_QTD.cxx b/src/EntityGUI/EntityGUI_3Spin_QTD.cxx deleted file mode 100644 index 98dbf69c5..000000000 --- a/src/EntityGUI/EntityGUI_3Spin_QTD.cxx +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'EntityGUI_3Spin_QTD.ui' -** -** Created: Fri Jul 30 16:06:00 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "EntityGUI_3Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a EntityGUI_3Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -EntityGUI_3Spin_QTD::EntityGUI_3Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "EntityGUI_3Spin_QTD" ); - resize( 255, 125 ); - setCaption( trUtf8( "EntityGUI_3Spin_QTD" ) ); - EntityGUI_3Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "EntityGUI_3Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "Values" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout4 = new QGridLayout( 0, 1, 1, 0, 6, "Layout4"); - - Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); - - buttonApply = new QPushButton( GroupBox1, "buttonApply" ); - buttonApply->setText( trUtf8( "Create" ) ); - - Layout3->addWidget( buttonApply, 0, 0 ); - QSpacerItem* spacer = new QSpacerItem( 0, 121, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout3->addItem( spacer, 2, 0 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - buttonUndo = new QPushButton( GroupBox1, "buttonUndo" ); - buttonUndo->setText( trUtf8( "Undo" ) ); - - Layout2->addWidget( buttonUndo, 0, 0 ); - - buttonRedo = new QPushButton( GroupBox1, "buttonRedo" ); - buttonRedo->setText( trUtf8( "Redo" ) ); - - Layout2->addWidget( buttonRedo, 0, 1 ); - - Layout3->addLayout( Layout2, 1, 0 ); - - Layout4->addLayout( Layout3, 0, 1 ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox1, 0, 1 ); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox2, 1, 1 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addWidget( TextLabel3, 2, 0 ); - QSpacerItem* spacer_2 = new QSpacerItem( 0, 82, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer_2, 3, 1 ); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox3, 2, 1 ); - - Layout4->addLayout( Layout1, 0, 0 ); - - GroupBox1Layout->addLayout( Layout4, 0, 0 ); - - EntityGUI_3Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_3Spin_QTD::~EntityGUI_3Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/EntityGUI/EntityGUI_3Spin_QTD.h b/src/EntityGUI/EntityGUI_3Spin_QTD.h deleted file mode 100644 index 1235b160b..000000000 --- a/src/EntityGUI/EntityGUI_3Spin_QTD.h +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'EntityGUI_3Spin_QTD.ui' -** -** Created: Fri Jul 30 16:06:00 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef ENTITYGUI_3SPIN_QTD_H -#define ENTITYGUI_3SPIN_QTD_H - -#include "GEOM_EntityGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QPushButton; -class QSpinBox; - -class GEOM_ENTITYGUI_EXPORT EntityGUI_3Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - EntityGUI_3Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~EntityGUI_3Spin_QTD(); - - QGroupBox* GroupBox1; - QPushButton* buttonApply; - QPushButton* buttonUndo; - QPushButton* buttonRedo; - QLabel* TextLabel2; - QLabel* TextLabel1; - QSpinBox* SpinBox1; - QSpinBox* SpinBox2; - QLabel* TextLabel3; - QSpinBox* SpinBox3; - - -protected: - QGridLayout* EntityGUI_3Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout4; - QGridLayout* Layout3; - QGridLayout* Layout2; - QGridLayout* Layout1; -}; - -#endif // ENTITYGUI_3SPIN_QTD_H diff --git a/src/EntityGUI/EntityGUI_3Spin_QTD.ui b/src/EntityGUI/EntityGUI_3Spin_QTD.ui new file mode 100644 index 000000000..51dd64cfd --- /dev/null +++ b/src/EntityGUI/EntityGUI_3Spin_QTD.ui @@ -0,0 +1,152 @@ + + EntityGUI_3Spin_QTD + + + + 0 + 0 + 264 + 114 + + + + EntityGUI_3Spin_QTD + + + + 0 + + + 0 + + + + + Values + + + + 9 + + + 6 + + + + + + + + 0 + + + 6 + + + + + Undo + + + + + + + Redo + + + + + + + + + Create + + + + + + + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + SpinBox_DX + SpinBox_DY + SpinBox_DZ + buttonApply + buttonUndo + buttonRedo + + + +
      diff --git a/src/EntityGUI/EntityGUI_4Spin.cxx b/src/EntityGUI/EntityGUI_4Spin.cxx deleted file mode 100644 index 76ea42b22..000000000 --- a/src/EntityGUI/EntityGUI_4Spin.cxx +++ /dev/null @@ -1,67 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : EntityGUI_4Spin.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#include "EntityGUI_4Spin.h" - -#include -#include -#include - -/* - * Constructs a EntityGUI_4Spin which is a child of 'parent', with the - * name 'name' and widget flags set to 'f' - */ -EntityGUI_4Spin::EntityGUI_4Spin(QWidget* parent, const char* name, WFlags fl) - :EntityGUI_4Spin_QTD(parent, name, fl) -{ - SpinBox1->close(TRUE); - SpinBox2->close(TRUE); - SpinBox3->close(TRUE); - SpinBox4->close(TRUE); - - SpinBox_DX = new DlgRef_SpinBox(GroupBox1, "SpinBox_DX"); - Layout1->addWidget(SpinBox_DX, 0, 1); - - SpinBox_DY = new DlgRef_SpinBox(GroupBox1, "SpinBox_DY"); - Layout1->addWidget(SpinBox_DY, 1, 1); - - SpinBox_DZ = new DlgRef_SpinBox(GroupBox1, "SpinBox_DZ"); - Layout1->addWidget(SpinBox_DZ, 2, 1); - - SpinBox_DS = new DlgRef_SpinBox(GroupBox1, "SpinBox_DS"); - Layout1->addWidget(SpinBox_DS, 3, 1); -} - - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_4Spin::~EntityGUI_4Spin() -{ - // no need to delete child widgets, Qt does it all for us -} diff --git a/src/EntityGUI/EntityGUI_4Spin.h b/src/EntityGUI/EntityGUI_4Spin.h deleted file mode 100644 index eeaf1965b..000000000 --- a/src/EntityGUI/EntityGUI_4Spin.h +++ /dev/null @@ -1,52 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : EntityGUI_4Spin.h -// Author : Damien COQUERET -// Module : GEOM -// $Header: - -#ifndef ENTITYGUI_4SPIN_H -#define ENTITYGUI_4SPIN_H - -#include "GEOM_EntityGUI.hxx" - -#include "EntityGUI_4Spin_QTD.h" -#include "DlgRef_SpinBox.h" - -class GEOM_ENTITYGUI_EXPORT EntityGUI_4Spin : public EntityGUI_4Spin_QTD -{ - Q_OBJECT - -public: - EntityGUI_4Spin( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~EntityGUI_4Spin(); - - DlgRef_SpinBox* SpinBox_DX; - DlgRef_SpinBox* SpinBox_DY; - DlgRef_SpinBox* SpinBox_DZ; - DlgRef_SpinBox* SpinBox_DS; - -}; - -#endif // ENTITYGUI_4SPIN_H diff --git a/src/EntityGUI/EntityGUI_4Spin_QTD.cxx b/src/EntityGUI/EntityGUI_4Spin_QTD.cxx deleted file mode 100644 index 8d8debd7e..000000000 --- a/src/EntityGUI/EntityGUI_4Spin_QTD.cxx +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'EntityGUI_4Spin_QTD.ui' -** -** Created: Fri Jul 30 16:06:00 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "EntityGUI_4Spin_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a EntityGUI_4Spin_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -EntityGUI_4Spin_QTD::EntityGUI_4Spin_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "EntityGUI_4Spin_QTD" ); - resize( 255, 154 ); - setCaption( trUtf8( "EntityGUI_4Spin_QTD" ) ); - EntityGUI_4Spin_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "EntityGUI_4Spin_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setTitle( trUtf8( "Values" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout4 = new QGridLayout( 0, 1, 1, 0, 6, "Layout4"); - - Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - buttonRedo = new QPushButton( GroupBox1, "buttonRedo" ); - buttonRedo->setText( trUtf8( "Redo" ) ); - - Layout2->addWidget( buttonRedo, 0, 1 ); - - buttonUndo = new QPushButton( GroupBox1, "buttonUndo" ); - buttonUndo->setText( trUtf8( "Undo" ) ); - - Layout2->addWidget( buttonUndo, 0, 0 ); - - Layout3->addLayout( Layout2, 1, 0 ); - QSpacerItem* spacer = new QSpacerItem( 0, 45, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout3->addItem( spacer, 2, 0 ); - - buttonApply = new QPushButton( GroupBox1, "buttonApply" ); - buttonApply->setText( trUtf8( "Create" ) ); - - Layout3->addWidget( buttonApply, 0, 0 ); - - Layout4->addLayout( Layout3, 0, 1 ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - SpinBox3 = new QSpinBox( GroupBox1, "SpinBox3" ); - SpinBox3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox3->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox3, 2, 1 ); - - SpinBox2 = new QSpinBox( GroupBox1, "SpinBox2" ); - SpinBox2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox2, 1, 1 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - QSpacerItem* spacer_2 = new QSpacerItem( 0, 70, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer_2, 4, 1 ); - - SpinBox4 = new QSpinBox( GroupBox1, "SpinBox4" ); - SpinBox4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox4->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox4, 3, 1 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout1->addWidget( TextLabel3, 2, 0 ); - - SpinBox1 = new QSpinBox( GroupBox1, "SpinBox1" ); - SpinBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, SpinBox1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( SpinBox1, 0, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout1->addWidget( TextLabel4, 3, 0 ); - - Layout4->addLayout( Layout1, 0, 0 ); - - GroupBox1Layout->addLayout( Layout4, 0, 0 ); - - EntityGUI_4Spin_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_4Spin_QTD::~EntityGUI_4Spin_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/EntityGUI/EntityGUI_4Spin_QTD.h b/src/EntityGUI/EntityGUI_4Spin_QTD.h deleted file mode 100644 index 6ec375d90..000000000 --- a/src/EntityGUI/EntityGUI_4Spin_QTD.h +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'EntityGUI_4Spin_QTD.ui' -** -** Created: Fri Jul 30 16:06:00 2004 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef ENTITYGUI_4SPIN_QTD_H -#define ENTITYGUI_4SPIN_QTD_H - -#include "GEOM_EntityGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QPushButton; -class QSpinBox; - -class GEOM_ENTITYGUI_EXPORT EntityGUI_4Spin_QTD : public QWidget -{ - Q_OBJECT - -public: - EntityGUI_4Spin_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~EntityGUI_4Spin_QTD(); - - QGroupBox* GroupBox1; - QPushButton* buttonRedo; - QPushButton* buttonUndo; - QPushButton* buttonApply; - QSpinBox* SpinBox3; - QSpinBox* SpinBox2; - QLabel* TextLabel2; - QSpinBox* SpinBox4; - QLabel* TextLabel3; - QSpinBox* SpinBox1; - QLabel* TextLabel1; - QLabel* TextLabel4; - - -protected: - QGridLayout* EntityGUI_4Spin_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout4; - QGridLayout* Layout3; - QGridLayout* Layout2; - QGridLayout* Layout1; -}; - -#endif // ENTITYGUI_4SPIN_QTD_H diff --git a/src/EntityGUI/EntityGUI_4Spin_QTD.ui b/src/EntityGUI/EntityGUI_4Spin_QTD.ui new file mode 100644 index 000000000..661beab41 --- /dev/null +++ b/src/EntityGUI/EntityGUI_4Spin_QTD.ui @@ -0,0 +1,174 @@ + + EntityGUI_4Spin_QTD + + + + 0 + 0 + 264 + 140 + + + + EntityGUI_4Spin_QTD + + + + 0 + + + 0 + + + + + Values + + + + 9 + + + 6 + + + + + + + + + + + + + + + + + 0 + + + 6 + + + + + Redo + + + + + + + Undo + + + + + + + + + Create + + + + + + + + 0 + 0 + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL4 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + qPixmapFromMimeSource + + + SalomeApp_DoubleSpinBox + QDoubleSpinBox +
      SalomeApp_DoubleSpinBox.h
      +
      +
      + + SpinBox_DX + SpinBox_DY + SpinBox_DZ + SpinBox_DS + buttonApply + buttonUndo + buttonRedo + + + +
      diff --git a/src/EntityGUI/EntityGUI_Dir1_QTD.cxx b/src/EntityGUI/EntityGUI_Dir1_QTD.cxx deleted file mode 100644 index 9f051b216..000000000 --- a/src/EntityGUI/EntityGUI_Dir1_QTD.cxx +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'EntityGUI_Dir1_QTD.ui' -** -** Created: ven déc 12 11:17:09 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "EntityGUI_Dir1_QTD.h" - -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a EntityGUI_Dir1_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -EntityGUI_Dir1_QTD::EntityGUI_Dir1_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "EntityGUI_Dir1_QTD" ); - resize( 131, 123 ); - setCaption( trUtf8( "EntityGUI_Dir1_QTD" ) ); - EntityGUI_Dir1_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "EntityGUI_Dir1_QTDLayout"); - - GroupDir1 = new QButtonGroup( this, "GroupDir1" ); - GroupDir1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupDir1->sizePolicy().hasHeightForWidth() ) ); - GroupDir1->setTitle( trUtf8( "Direction" ) ); - GroupDir1->setColumnLayout(0, Qt::Vertical ); - GroupDir1->layout()->setSpacing( 6 ); - GroupDir1->layout()->setMargin( 11 ); - GroupDir1Layout = new QGridLayout( GroupDir1->layout() ); - GroupDir1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - RB_Dir12 = new QRadioButton( GroupDir1, "RB_Dir12" ); - RB_Dir12->setText( trUtf8( "Perpendicular" ) ); - - Layout1->addWidget( RB_Dir12, 1, 0 ); - - RB_Dir13 = new QRadioButton( GroupDir1, "RB_Dir13" ); - RB_Dir13->setText( trUtf8( "Tangent" ) ); - - Layout1->addWidget( RB_Dir13, 2, 0 ); - - RB_Dir11 = new QRadioButton( GroupDir1, "RB_Dir11" ); - RB_Dir11->setText( trUtf8( "Angle" ) ); - - Layout1->addWidget( RB_Dir11, 0, 0 ); - - RB_Dir14 = new QRadioButton( GroupDir1, "RB_Dir14" ); - RB_Dir14->setText( trUtf8( "VX-VY" ) ); - - Layout1->addWidget( RB_Dir14, 3, 0 ); - - GroupDir1Layout->addLayout( Layout1, 0, 0 ); - - EntityGUI_Dir1_QTDLayout->addWidget( GroupDir1, 0, 0 ); - - // tab order - setTabOrder( RB_Dir11, RB_Dir12 ); - setTabOrder( RB_Dir12, RB_Dir13 ); - setTabOrder( RB_Dir13, RB_Dir14 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_Dir1_QTD::~EntityGUI_Dir1_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/EntityGUI/EntityGUI_Dir1_QTD.h b/src/EntityGUI/EntityGUI_Dir1_QTD.h deleted file mode 100644 index 6ca2a1137..000000000 --- a/src/EntityGUI/EntityGUI_Dir1_QTD.h +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'EntityGUI_Dir1_QTD.ui' -** -** Created: ven déc 12 11:17:09 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef ENTITYGUI_DIR1_QTD_H -#define ENTITYGUI_DIR1_QTD_H - -#include "GEOM_EntityGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QButtonGroup; -class QRadioButton; - -class GEOM_ENTITYGUI_EXPORT EntityGUI_Dir1_QTD : public QWidget -{ - Q_OBJECT - -public: - EntityGUI_Dir1_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~EntityGUI_Dir1_QTD(); - - QButtonGroup* GroupDir1; - QRadioButton* RB_Dir12; - QRadioButton* RB_Dir13; - QRadioButton* RB_Dir11; - QRadioButton* RB_Dir14; - - -protected: - QGridLayout* EntityGUI_Dir1_QTDLayout; - QGridLayout* GroupDir1Layout; - QGridLayout* Layout1; -}; - -#endif // ENTITYGUI_DIR1_QTD_H diff --git a/src/EntityGUI/EntityGUI_Dir1_QTD.ui b/src/EntityGUI/EntityGUI_Dir1_QTD.ui new file mode 100644 index 000000000..009fbaf1a --- /dev/null +++ b/src/EntityGUI/EntityGUI_Dir1_QTD.ui @@ -0,0 +1,85 @@ + + EntityGUI_Dir1_QTD + + + + 0 + 0 + 120 + 124 + + + + EntityGUI_Dir1_QTD + + + + 0 + + + 0 + + + + + + 7 + 0 + 0 + 0 + + + + Direction + + + + 9 + + + 6 + + + + + VX-VY + + + + + + + Tangent + + + + + + + Angle + + + + + + + Perpendicular + + + + + + + + + + qPixmapFromMimeSource + + RB_Dir11 + RB_Dir12 + RB_Dir13 + RB_Dir14 + + + + diff --git a/src/EntityGUI/EntityGUI_Dir2_QTD.cxx b/src/EntityGUI/EntityGUI_Dir2_QTD.cxx deleted file mode 100644 index bb509984b..000000000 --- a/src/EntityGUI/EntityGUI_Dir2_QTD.cxx +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'EntityGUI_Dir2_QTD.ui' -** -** Created: ven déc 12 11:17:10 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "EntityGUI_Dir2_QTD.h" - -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a EntityGUI_Dir2_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -EntityGUI_Dir2_QTD::EntityGUI_Dir2_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "EntityGUI_Dir2_QTD" ); - resize( 124, 106 ); - setCaption( trUtf8( "EntityGUI_Dir2_QTD" ) ); - EntityGUI_Dir2_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "EntityGUI_Dir2_QTDLayout"); - - GroupDir2 = new QButtonGroup( this, "GroupDir2" ); - GroupDir2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, GroupDir2->sizePolicy().hasHeightForWidth() ) ); - GroupDir2->setTitle( trUtf8( "Direction" ) ); - GroupDir2->setColumnLayout(0, Qt::Vertical ); - GroupDir2->layout()->setSpacing( 6 ); - GroupDir2->layout()->setMargin( 11 ); - GroupDir2Layout = new QGridLayout( GroupDir2->layout() ); - GroupDir2Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - RB_Dir22 = new QRadioButton( GroupDir2, "RB_Dir22" ); - RB_Dir22->setText( trUtf8( "X" ) ); - - Layout1->addWidget( RB_Dir22, 1, 0 ); - - RB_Dir23 = new QRadioButton( GroupDir2, "RB_Dir23" ); - RB_Dir23->setText( trUtf8( "Y" ) ); - - Layout1->addWidget( RB_Dir23, 2, 0 ); - QSpacerItem* spacer = new QSpacerItem( 0, 20, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 3, 0 ); - - RB_Dir21 = new QRadioButton( GroupDir2, "RB_Dir21" ); - RB_Dir21->setText( trUtf8( "Length" ) ); - - Layout1->addWidget( RB_Dir21, 0, 0 ); - - GroupDir2Layout->addLayout( Layout1, 0, 0 ); - - EntityGUI_Dir2_QTDLayout->addWidget( GroupDir2, 0, 0 ); - - // tab order - setTabOrder( RB_Dir21, RB_Dir22 ); - setTabOrder( RB_Dir22, RB_Dir23 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_Dir2_QTD::~EntityGUI_Dir2_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/EntityGUI/EntityGUI_Dir2_QTD.h b/src/EntityGUI/EntityGUI_Dir2_QTD.h deleted file mode 100644 index 17480e83f..000000000 --- a/src/EntityGUI/EntityGUI_Dir2_QTD.h +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'EntityGUI_Dir2_QTD.ui' -** -** Created: ven déc 12 11:17:09 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef ENTITYGUI_DIR2_QTD_H -#define ENTITYGUI_DIR2_QTD_H - -#include "GEOM_EntityGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QButtonGroup; -class QRadioButton; - -class GEOM_ENTITYGUI_EXPORT EntityGUI_Dir2_QTD : public QWidget -{ - Q_OBJECT - -public: - EntityGUI_Dir2_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~EntityGUI_Dir2_QTD(); - - QButtonGroup* GroupDir2; - QRadioButton* RB_Dir22; - QRadioButton* RB_Dir23; - QRadioButton* RB_Dir21; - - -protected: - QGridLayout* EntityGUI_Dir2_QTDLayout; - QGridLayout* GroupDir2Layout; - QGridLayout* Layout1; -}; - -#endif // ENTITYGUI_DIR2_QTD_H diff --git a/src/EntityGUI/EntityGUI_Dir2_QTD.ui b/src/EntityGUI/EntityGUI_Dir2_QTD.ui new file mode 100644 index 000000000..67d7398ee --- /dev/null +++ b/src/EntityGUI/EntityGUI_Dir2_QTD.ui @@ -0,0 +1,77 @@ + + EntityGUI_Dir2_QTD + + + + 0 + 0 + 91 + 100 + + + + EntityGUI_Dir2_QTD + + + + 0 + + + 6 + + + + + + 7 + 7 + 0 + 0 + + + + Direction + + + + 9 + + + 6 + + + + + Length + + + + + + + Y + + + + + + + X + + + + + + + + + + qPixmapFromMimeSource + + RB_Dir21 + RB_Dir22 + RB_Dir23 + + + + diff --git a/src/EntityGUI/EntityGUI_Point_QTD.cxx b/src/EntityGUI/EntityGUI_Point_QTD.cxx deleted file mode 100644 index bc2a482fd..000000000 --- a/src/EntityGUI/EntityGUI_Point_QTD.cxx +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'EntityGUI_Point_QTD.ui' -** -** Created: ven déc 12 11:17:08 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "EntityGUI_Point_QTD.h" - -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a EntityGUI_Point_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -EntityGUI_Point_QTD::EntityGUI_Point_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "EntityGUI_Point_QTD" ); - resize( 124, 106 ); - setCaption( trUtf8( "EntityGUI_Point_QTD" ) ); - EntityGUI_Point_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "EntityGUI_Point_QTDLayout"); - - GroupPoint = new QButtonGroup( this, "GroupPoint" ); - GroupPoint->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupPoint->sizePolicy().hasHeightForWidth() ) ); - GroupPoint->setTitle( trUtf8( "Point" ) ); - GroupPoint->setColumnLayout(0, Qt::Vertical ); - GroupPoint->layout()->setSpacing( 6 ); - GroupPoint->layout()->setMargin( 11 ); - GroupPointLayout = new QGridLayout( GroupPoint->layout() ); - GroupPointLayout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - RB_Point2 = new QRadioButton( GroupPoint, "RB_Point2" ); - RB_Point2->setText( trUtf8( "Relative" ) ); - - Layout1->addWidget( RB_Point2, 1, 0 ); - - RB_Point1 = new QRadioButton( GroupPoint, "RB_Point1" ); - RB_Point1->setText( trUtf8( "Absolute" ) ); - - Layout1->addWidget( RB_Point1, 0, 0 ); - - RB_Point3 = new QRadioButton( GroupPoint, "RB_Point3" ); - RB_Point3->setText( trUtf8( "Selection" ) ); - - Layout1->addWidget( RB_Point3, 2, 0 ); - - GroupPointLayout->addLayout( Layout1, 0, 0 ); - - EntityGUI_Point_QTDLayout->addWidget( GroupPoint, 0, 0 ); - - // tab order - setTabOrder( RB_Point1, RB_Point2 ); - setTabOrder( RB_Point2, RB_Point3 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_Point_QTD::~EntityGUI_Point_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/EntityGUI/EntityGUI_Point_QTD.h b/src/EntityGUI/EntityGUI_Point_QTD.h deleted file mode 100644 index 453b09807..000000000 --- a/src/EntityGUI/EntityGUI_Point_QTD.h +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'EntityGUI_Point_QTD.ui' -** -** Created: ven déc 12 11:17:08 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef ENTITYGUI_POINT_QTD_H -#define ENTITYGUI_POINT_QTD_H - -#include "GEOM_EntityGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QButtonGroup; -class QRadioButton; - -class GEOM_ENTITYGUI_EXPORT EntityGUI_Point_QTD : public QWidget -{ - Q_OBJECT - -public: - EntityGUI_Point_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~EntityGUI_Point_QTD(); - - QButtonGroup* GroupPoint; - QRadioButton* RB_Point2; - QRadioButton* RB_Point1; - QRadioButton* RB_Point3; - - -protected: - QGridLayout* EntityGUI_Point_QTDLayout; - QGridLayout* GroupPointLayout; - QGridLayout* Layout1; -}; - -#endif // ENTITYGUI_POINT_QTD_H diff --git a/src/EntityGUI/EntityGUI_Point_QTD.ui b/src/EntityGUI/EntityGUI_Point_QTD.ui new file mode 100644 index 000000000..a0bc2d6c9 --- /dev/null +++ b/src/EntityGUI/EntityGUI_Point_QTD.ui @@ -0,0 +1,77 @@ + + EntityGUI_Point_QTD + + + + 0 + 0 + 97 + 100 + + + + EntityGUI_Point_QTD + + + + 0 + + + 0 + + + + + + 7 + 0 + 0 + 0 + + + + Point + + + + 9 + + + 6 + + + + + Relative + + + + + + + Selection + + + + + + + Absolute + + + + + + + + + + qPixmapFromMimeSource + + RB_Point1 + RB_Point2 + RB_Point3 + + + + diff --git a/src/EntityGUI/EntityGUI_Skeleton_QTD.cxx b/src/EntityGUI/EntityGUI_Skeleton_QTD.cxx deleted file mode 100644 index 302635f39..000000000 --- a/src/EntityGUI/EntityGUI_Skeleton_QTD.cxx +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'EntityGUI_Skeleton_QTD.ui' -** -** Created: Tue Mar 13 14:04:48 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include "EntityGUI_Skeleton_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a EntityGUI_Skeleton_QTD as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - * - * The dialog will by default be modeless, unless you set 'modal' to - * TRUE to construct a modal dialog. - */ -EntityGUI_Skeleton_QTD::EntityGUI_Skeleton_QTD( QWidget* parent, const char* name, bool modal, WFlags fl ) - : QDialog( parent, name, modal, fl ) -{ - if ( !name ) - setName( "EntityGUI_Skeleton_QTD" ); - setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)7, 0, 0, sizePolicy().hasHeightForWidth() ) ); - EntityGUI_Skeleton_QTDLayout = new QGridLayout( this, 1, 1, 11, 6, "EntityGUI_Skeleton_QTDLayout"); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - GroupConstructors = new QButtonGroup( this, "GroupConstructors" ); - GroupConstructors->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0, 0, 0, GroupConstructors->sizePolicy().hasHeightForWidth() ) ); - GroupConstructors->setColumnLayout(0, Qt::Vertical ); - GroupConstructors->layout()->setSpacing( 6 ); - GroupConstructors->layout()->setMargin( 11 ); - GroupConstructorsLayout = new QGridLayout( GroupConstructors->layout() ); - GroupConstructorsLayout->setAlignment( Qt::AlignTop ); - - Layout2 = new QHBoxLayout( 0, 0, 6, "Layout2"); - - RadioButton1 = new QRadioButton( GroupConstructors, "RadioButton1" ); - Layout2->addWidget( RadioButton1 ); - - RadioButton2 = new QRadioButton( GroupConstructors, "RadioButton2" ); - Layout2->addWidget( RadioButton2 ); - - GroupConstructorsLayout->addLayout( Layout2, 0, 0 ); - - Layout1->addWidget( GroupConstructors, 0, 0 ); - - GroupDest = new QGroupBox( this, "GroupDest" ); - GroupDest->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupDest->sizePolicy().hasHeightForWidth() ) ); - GroupDest->setColumnLayout(0, Qt::Vertical ); - GroupDest->layout()->setSpacing( 6 ); - GroupDest->layout()->setMargin( 11 ); - GroupDestLayout = new QGridLayout( GroupDest->layout() ); - GroupDestLayout->setAlignment( Qt::AlignTop ); - - Layout5 = new QGridLayout( 0, 1, 1, 0, 6, "Layout5"); - - GroupDest1 = new QButtonGroup( GroupDest, "GroupDest1" ); - GroupDest1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupDest1->sizePolicy().hasHeightForWidth() ) ); - GroupDest1->setColumnLayout(0, Qt::Vertical ); - GroupDest1->layout()->setSpacing( 6 ); - GroupDest1->layout()->setMargin( 11 ); - GroupDest1Layout = new QGridLayout( GroupDest1->layout() ); - GroupDest1Layout->setAlignment( Qt::AlignTop ); - - Layout4 = new QGridLayout( 0, 1, 1, 0, 6, "Layout4"); - - RB_Dest2 = new QRadioButton( GroupDest1, "RB_Dest2" ); - - Layout4->addWidget( RB_Dest2, 0, 1 ); - - RB_Dest1 = new QRadioButton( GroupDest1, "RB_Dest1" ); - - Layout4->addWidget( RB_Dest1, 0, 0 ); - - GroupDest1Layout->addLayout( Layout4, 0, 0 ); - - Layout5->addMultiCellWidget( GroupDest1, 0, 0, 0, 1 ); - - GroupDestLayout->addLayout( Layout5, 0, 0 ); - - Layout1->addWidget( GroupDest, 1, 0 ); - - GroupButtons = new QGroupBox( this, "GroupButtons" ); - GroupButtons->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupButtons->sizePolicy().hasHeightForWidth() ) ); - GroupButtons->setColumnLayout(0, Qt::Vertical ); - GroupButtons->layout()->setSpacing( 6 ); - GroupButtons->layout()->setMargin( 11 ); - GroupButtonsLayout = new QHBoxLayout( GroupButtons->layout() ); - GroupButtonsLayout->setAlignment( Qt::AlignTop ); - - Layout3 = new QHBoxLayout( 0, 0, 6, "Layout3"); - - buttonEnd = new QPushButton( GroupButtons, "buttonEnd" ); - Layout3->addWidget( buttonEnd ); - - buttonClose = new QPushButton( GroupButtons, "buttonClose" ); - Layout3->addWidget( buttonClose ); - Spacer1 = new QSpacerItem( 91, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); - Layout3->addItem( Spacer1 ); - - buttonCancel = new QPushButton( GroupButtons, "buttonCancel" ); - Layout3->addWidget( buttonCancel ); - - buttonHelp = new QPushButton( GroupButtons, "buttonHelp" ); - Layout3->addWidget( buttonHelp ); - GroupButtonsLayout->addLayout( Layout3 ); - - Layout1->addWidget( GroupButtons, 3, 0 ); - - EntityGUI_Skeleton_QTDLayout->addLayout( Layout1, 0, 0 ); - languageChange(); - resize( QSize(317, 276).expandedTo(minimumSizeHint()) ); - clearWState( WState_Polished ); - - // tab order - setTabOrder( RadioButton1, RadioButton2 ); - setTabOrder( RadioButton2, RB_Dest1 ); - setTabOrder( RB_Dest1, RB_Dest2 ); - setTabOrder( RB_Dest2, buttonEnd ); - setTabOrder( buttonEnd, buttonClose ); - setTabOrder( buttonClose, buttonCancel ); -} - -/* - * Destroys the object and frees any allocated resources - */ -EntityGUI_Skeleton_QTD::~EntityGUI_Skeleton_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void EntityGUI_Skeleton_QTD::languageChange() -{ -} - diff --git a/src/EntityGUI/EntityGUI_Skeleton_QTD.h b/src/EntityGUI/EntityGUI_Skeleton_QTD.h deleted file mode 100644 index 11b95f502..000000000 --- a/src/EntityGUI/EntityGUI_Skeleton_QTD.h +++ /dev/null @@ -1,85 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'EntityGUI_Skeleton_QTD.ui' -** -** Created: Tue Mar 13 14:04:42 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#ifndef ENTITYGUI_SKELETON_QTD_H -#define ENTITYGUI_SKELETON_QTD_H - -#include "GEOM_EntityGUI.hxx" - -#include -#include - -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QSpacerItem; -class QButtonGroup; -class QRadioButton; -class QGroupBox; -class QPushButton; - -class GEOM_ENTITYGUI_EXPORT EntityGUI_Skeleton_QTD : public QDialog -{ - Q_OBJECT - -public: - EntityGUI_Skeleton_QTD( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); - ~EntityGUI_Skeleton_QTD(); - - QButtonGroup* GroupConstructors; - QRadioButton* RadioButton1; - QRadioButton* RadioButton2; - QGroupBox* GroupDest; - QButtonGroup* GroupDest1; - QRadioButton* RB_Dest2; - QRadioButton* RB_Dest1; - QGroupBox* GroupButtons; - QPushButton* buttonEnd; - QPushButton* buttonClose; - QPushButton* buttonCancel; - QPushButton* buttonHelp; - -protected: - QGridLayout* EntityGUI_Skeleton_QTDLayout; - QGridLayout* Layout1; - QGridLayout* GroupConstructorsLayout; - QHBoxLayout* Layout2; - QGridLayout* GroupDestLayout; - QGridLayout* Layout5; - QGridLayout* GroupDest1Layout; - QGridLayout* Layout4; - QHBoxLayout* GroupButtonsLayout; - QHBoxLayout* Layout3; - QSpacerItem* Spacer1; - -protected slots: - virtual void languageChange(); - -}; - -#endif // ENTITYGUI_SKELETON_QTD_H diff --git a/src/EntityGUI/EntityGUI_Skeleton_QTD.ui b/src/EntityGUI/EntityGUI_Skeleton_QTD.ui new file mode 100644 index 000000000..dd2529583 --- /dev/null +++ b/src/EntityGUI/EntityGUI_Skeleton_QTD.ui @@ -0,0 +1,249 @@ + + EntityGUI_Skeleton_QTD + + + + 0 + 0 + 363 + 234 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + End Sketch + + + + + + + Close Sketch + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 91 + 0 + + + + + + + + &Cancel + + + + + + + &Help + + + + + + + + + + + + + + 0 + 0 + + + + Destination + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + 0 + 0 + + + + Type + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + Point + + + + + + + Direction + + + + + + + + + + + + + + 0 + 0 + + + + Element Type + + + + 6 + + + 9 + + + 9 + + + 9 + + + 9 + + + + + Segment + + + + + + + Arc + + + + + + + + + + buttonEnd + buttonClose + buttonCancel + buttonHelp + RadioButton1 + RadioButton2 + RB_Dest1 + RB_Dest2 + + + + diff --git a/src/EntityGUI/EntityGUI_SketcherDlg.cxx b/src/EntityGUI/EntityGUI_SketcherDlg.cxx index 2e0446a18..7f07b966f 100644 --- a/src/EntityGUI/EntityGUI_SketcherDlg.cxx +++ b/src/EntityGUI/EntityGUI_SketcherDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,28 +19,27 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : EntityGUI_SketcherDlg.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : EntityGUI_SketcherDlg.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "EntityGUI_SketcherDlg.h" -#include "Sketcher_Profile.hxx" -#include "GEOM_Displayer.h" -#include "GEOMBase.h" +#include "EntityGUI_Widgets.h" +#include -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SUIT_MessageBox.h" -#include "SUIT_ResourceMgr.h" -#include "SalomeApp_Application.h" -#include "LightApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include -#include +#include +#include +#include +#include +#include +#include +#include + +#include #include #include @@ -49,12 +48,7 @@ #include #include #include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : EntityGUI_SketcherDlg() @@ -63,177 +57,168 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -EntityGUI_SketcherDlg::EntityGUI_SketcherDlg(GeometryGUI* GUI, QWidget* parent, - const char* name, bool modal, WFlags fl, - const double lineWidth) - :EntityGUI_Skeleton_QTD(parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose), - myIsAllAdded( false ), - GEOMBase_Helper( dynamic_cast( parent ) ), - myGeometryGUI( GUI ), - myLineWidth( lineWidth ) +EntityGUI_SketcherDlg::EntityGUI_SketcherDlg( GeometryGUI* GUI, QWidget* parent, + bool modal, Qt::WindowFlags fl, + const double lineWidth ) + : QDialog( parent, fl ), + myIsAllAdded( false ), + myIsApply( false ), + GEOMBase_Helper( dynamic_cast( parent ) ), + myGeometryGUI( GUI ), + myLineWidth( lineWidth ) { + setModal( modal ); + setAttribute( Qt::WA_DeleteOnClose ); + myGeometryGUI->SetActiveDialogBox(this); - if ( !name ) setName("EntityGUI_SketcherDlg"); + MainWidget = new EntityGUI_Skeleton( this ); + QVBoxLayout* topLayout = new QVBoxLayout( this ); + topLayout->setMargin( 9 ); topLayout->setSpacing( 6 ); + topLayout->addWidget( MainWidget ); - buttonCancel->setText(tr("GEOM_BUT_CANCEL")); - buttonEnd->setText(tr("GEOM_BUT_END_SKETCH")); - buttonClose->setText(tr("GEOM_BUT_CLOSE_SKETCH")); - buttonHelp->setText(tr("GEOM_BUT_HELP")); + MainWidget->buttonCancel->setText( tr( "GEOM_BUT_CANCEL" ) ); + MainWidget->buttonEnd->setText( tr( "GEOM_BUT_END_SKETCH" ) ); + MainWidget->buttonClose->setText( tr( "GEOM_BUT_CLOSE_SKETCH" ) ); + MainWidget->buttonHelp->setText( tr( "GEOM_BUT_HELP" ) ); - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_UNDO"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_REDO"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_UNDO" ) ) ); + QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_REDO" ) ) ); - setCaption(tr("GEOM_SKETCHER_TITLE")); + setWindowTitle( tr( "GEOM_SKETCHER_TITLE" ) ); - GroupConstructors->setTitle(tr("GEOM_SKETCHER_EL")); - RadioButton1->setText(tr("GEOM_SKETCHER_SEGMENT")); - RadioButton2->setText(tr("GEOM_SKETCHER_ARC")); - GroupDest->setTitle(tr("GEOM_SKETCHER_DEST")); - GroupDest1->setTitle(tr("GEOM_SKETCHER_TYPE")); - RB_Dest1->setText(tr("GEOM_SKETCHER_POINT")); - RB_Dest2->setText(tr("GEOM_SKETCHER_DIR")); + MainWidget->GroupConstructors->setTitle( tr( "GEOM_SKETCHER_EL" ) ); + MainWidget->RadioButton1->setText( tr( "GEOM_SKETCHER_SEGMENT" ) ); + MainWidget->RadioButton2->setText( tr( "GEOM_SKETCHER_ARC" ) ); + MainWidget->GroupDest->setTitle( tr( "GEOM_SKETCHER_DEST" ) ); + MainWidget->GroupDest1->setTitle( tr( "GEOM_SKETCHER_TYPE" ) ); + MainWidget->RB_Dest1->setText( tr( "GEOM_SKETCHER_POINT" ) ); + MainWidget->RB_Dest2->setText( tr( "GEOM_SKETCHER_DIR" ) ); /***************************************************************/ - GroupPt = new EntityGUI_Point_QTD(GroupDest, "GroupPt"); - GroupPt->GroupPoint->setTitle(tr("GEOM_SKETCHER_POINT")); - GroupPt->RB_Point1->setText(tr("GEOM_SKETCHER_ABS")); - GroupPt->RB_Point2->setText(tr("GEOM_SKETCHER_REL")); - GroupPt->RB_Point3->setText(tr("GEOM_SKETCHER_SEL")); + GroupPt = new EntityGUI_Point( MainWidget->DestCnt ); - GroupD1 = new EntityGUI_Dir1_QTD(GroupDest, "GroupD1"); - GroupD1->GroupDir1->setTitle(tr("GEOM_SKETCHER_DIR")); - GroupD1->RB_Dir11->setText(tr("GEOM_SKETCHER_ANGLE")); - GroupD1->RB_Dir12->setText(tr("GEOM_SKETCHER_PER")); - GroupD1->RB_Dir13->setText(tr("GEOM_SKETCHER_TAN")); - GroupD1->RB_Dir14->setText(tr("GEOM_SKETCHER_VXVY")); + GroupPt->GroupPoint->setTitle( tr( "GEOM_SKETCHER_POINT" ) ); + GroupPt->RB_Point1->setText( tr( "GEOM_SKETCHER_ABS" ) ); + GroupPt->RB_Point2->setText( tr( "GEOM_SKETCHER_REL" ) ); + GroupPt->RB_Point3->setText( tr( "GEOM_SKETCHER_SEL" ) ); - GroupD2 = new EntityGUI_Dir2_QTD(GroupDest, "GroupD2"); - GroupD2->GroupDir2->setTitle(tr("GEOM_SKETCHER_DIR")); - GroupD2->RB_Dir21->setText(tr("GEOM_SKETCHER_LENGTH")); - GroupD2->RB_Dir22->setText(tr("GEOM_SKETCHER_X")); - GroupD2->RB_Dir23->setText(tr("GEOM_SKETCHER_Y")); + GroupD1 = new EntityGUI_Dir1( MainWidget->DestCnt ); - Group1Sel = new EntityGUI_1Sel_QTD(this, "Group1Sel"); - Group1Sel->TextLabel1->setText(tr("GEOM_SKETCHER_POINT2")); - Group1Sel->GroupBox1->setTitle(tr("GEOM_SKETCHER_VALUES")); - Group1Sel->buttonApply->setText(tr("GEOM_SKETCHER_APPLY")); - Group1Sel->PushButton1->setPixmap(image0); - Group1Sel->buttonUndo->setPixmap(image1); - Group1Sel->buttonRedo->setPixmap(image2); + GroupD1->GroupDir1->setTitle( tr( "GEOM_SKETCHER_DIR" ) ); + GroupD1->RB_Dir11->setText( tr( "GEOM_SKETCHER_ANGLE" ) ); + GroupD1->RB_Dir12->setText( tr( "GEOM_SKETCHER_PER" ) ); + GroupD1->RB_Dir13->setText( tr( "GEOM_SKETCHER_TAN" ) ); + GroupD1->RB_Dir14->setText( tr( "GEOM_SKETCHER_VXVY" ) ); + + GroupD2 = new EntityGUI_Dir2( MainWidget->DestCnt ); + + GroupD2->GroupDir2->setTitle( tr( "GEOM_SKETCHER_DIR" ) ); + GroupD2->RB_Dir21->setText( tr( "GEOM_SKETCHER_LENGTH" ) ); + GroupD2->RB_Dir22->setText( tr( "GEOM_SKETCHER_X" ) ); + GroupD2->RB_Dir23->setText( tr( "GEOM_SKETCHER_Y" ) ); + + Group1Sel = new EntityGUI_1Sel( MainWidget->SkeletonCnt ); + + Group1Sel->TextLabel1->setText( tr( "GEOM_SKETCHER_POINT2" ) ); + Group1Sel->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); + Group1Sel->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); + Group1Sel->PushButton1->setIcon( image0 ); + Group1Sel->buttonUndo->setIcon( image1 ); + Group1Sel->buttonRedo->setIcon( image2 ); Group1Sel->LineEdit1->setReadOnly( true ); - Group1Spin = new EntityGUI_1Spin(this, "Group1Spin"); - Group1Spin->GroupBox1->setTitle(tr("GEOM_SKETCHER_VALUES")); - Group1Spin->buttonApply->setText(tr("GEOM_SKETCHER_APPLY")); - Group1Spin->buttonUndo->setPixmap(image1); - Group1Spin->buttonRedo->setPixmap(image2); - QWidget::setTabOrder(Group1Spin->SpinBox_DX , Group1Spin->buttonApply); - QWidget::setTabOrder(Group1Spin->buttonApply, Group1Spin->buttonUndo); - QWidget::setTabOrder(Group1Spin->buttonUndo , Group1Spin->buttonRedo); + Group1Spin = new EntityGUI_1Spin( MainWidget->SkeletonCnt ); + Group1Spin->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); + Group1Spin->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); + Group1Spin->buttonUndo->setIcon( image1 ); + Group1Spin->buttonRedo->setIcon( image2 ); - Group2Spin = new EntityGUI_2Spin(this, "Group2Spin"); - Group2Spin->GroupBox1->setTitle(tr("GEOM_SKETCHER_VALUES")); - Group2Spin->buttonApply->setText(tr("GEOM_SKETCHER_APPLY")); - Group2Spin->buttonUndo->setPixmap(image1); - Group2Spin->buttonRedo->setPixmap(image2); - QWidget::setTabOrder(Group2Spin->SpinBox_DX , Group2Spin->SpinBox_DY); - QWidget::setTabOrder(Group2Spin->SpinBox_DY , Group2Spin->buttonApply); - QWidget::setTabOrder(Group2Spin->buttonApply, Group2Spin->buttonUndo); - QWidget::setTabOrder(Group2Spin->buttonUndo , Group2Spin->buttonRedo); + Group2Spin = new EntityGUI_2Spin( MainWidget->SkeletonCnt ); + Group2Spin->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); + Group2Spin->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); + Group2Spin->buttonUndo->setIcon( image1 ); + Group2Spin->buttonRedo->setIcon( image2 ); - Group3Spin = new EntityGUI_3Spin(this, "Group3Spin"); - Group3Spin->GroupBox1->setTitle(tr("GEOM_SKETCHER_VALUES")); - Group3Spin->buttonApply->setText(tr("GEOM_SKETCHER_APPLY")); - Group3Spin->buttonUndo->setPixmap(image1); - Group3Spin->buttonRedo->setPixmap(image2); - QWidget::setTabOrder(Group3Spin->SpinBox_DX , Group3Spin->SpinBox_DY); - QWidget::setTabOrder(Group3Spin->SpinBox_DY , Group3Spin->SpinBox_DZ); - QWidget::setTabOrder(Group3Spin->SpinBox_DZ , Group3Spin->buttonApply); - QWidget::setTabOrder(Group3Spin->buttonApply, Group3Spin->buttonUndo); - QWidget::setTabOrder(Group3Spin->buttonUndo , Group3Spin->buttonRedo); + Group3Spin = new EntityGUI_3Spin( MainWidget->SkeletonCnt ); + Group3Spin->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); + Group3Spin->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); + Group3Spin->buttonUndo->setIcon( image1 ); + Group3Spin->buttonRedo->setIcon( image2 ); - Group4Spin = new EntityGUI_4Spin(this, "Group4Spin"); - Group4Spin->GroupBox1->setTitle(tr("GEOM_SKETCHER_VALUES")); - Group4Spin->buttonApply->setText(tr("GEOM_SKETCHER_APPLY")); - Group4Spin->buttonUndo->setPixmap(image1); - Group4Spin->buttonRedo->setPixmap(image2); - QWidget::setTabOrder(Group4Spin->SpinBox_DX , Group4Spin->SpinBox_DY); - QWidget::setTabOrder(Group4Spin->SpinBox_DY , Group4Spin->SpinBox_DZ); - QWidget::setTabOrder(Group4Spin->SpinBox_DZ , Group4Spin->SpinBox_DS); - QWidget::setTabOrder(Group4Spin->SpinBox_DS , Group4Spin->buttonApply); - QWidget::setTabOrder(Group4Spin->buttonApply, Group4Spin->buttonUndo); - QWidget::setTabOrder(Group4Spin->buttonUndo , Group4Spin->buttonRedo); + Group4Spin = new EntityGUI_4Spin( MainWidget->SkeletonCnt ); + Group4Spin->GroupBox1->setTitle( tr( "GEOM_SKETCHER_VALUES" ) ); + Group4Spin->buttonApply->setText( tr( "GEOM_SKETCHER_APPLY" ) ); + Group4Spin->buttonUndo->setIcon( image1 ); + Group4Spin->buttonRedo->setIcon( image2 ); - Layout5->addMultiCellWidget(GroupPt, 1, 1, 0, 1); - Layout5->addWidget(GroupD1, 1, 0); - Layout5->addWidget(GroupD2, 1, 1); + QGridLayout* DestCntLayout = new QGridLayout( MainWidget->DestCnt ); + DestCntLayout->setMargin( 0 ); DestCntLayout->setSpacing( 6 ); + DestCntLayout->addWidget( GroupPt, 0, 0, 1, 2 ); + DestCntLayout->addWidget( GroupD1, 1, 0 ); + DestCntLayout->addWidget( GroupD2, 1, 1 ); - Layout1->addWidget(Group1Sel, 2, 0); - Layout1->addWidget(Group1Spin, 2, 0); - Layout1->addWidget(Group2Spin, 2, 0); - Layout1->addWidget(Group3Spin, 2, 0); - Layout1->addWidget(Group4Spin, 2, 0); + QVBoxLayout* SkeletonCntlayout = new QVBoxLayout( MainWidget->SkeletonCnt ); + SkeletonCntlayout->setMargin( 0 ); SkeletonCntlayout->setSpacing( 6 ); + SkeletonCntlayout->addWidget( Group1Sel, 0, 0 ); + SkeletonCntlayout->addWidget( Group1Spin, 0, 0 ); + SkeletonCntlayout->addWidget( Group2Spin, 0, 0 ); + SkeletonCntlayout->addWidget( Group3Spin, 0, 0 ); + SkeletonCntlayout->addWidget( Group4Spin, 0, 0 ); /***************************************************************/ + QButtonGroup* ButtonGroup = new QButtonGroup( this ); + ButtonGroup->addButton( MainWidget->RB_Dest1, 1 ); + ButtonGroup->addButton( MainWidget->RB_Dest2, 0 ); + /* signals and slots connections */ - connect(buttonEnd, SIGNAL(clicked()), this, SLOT(ClickOnEnd())); - connect(buttonClose, SIGNAL(clicked()), this, SLOT(ClickOnEnd())); - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); - connect(buttonHelp, SIGNAL( clicked() ), this, SLOT( ClickOnHelp())); + connect( MainWidget->buttonEnd, SIGNAL( clicked() ), this, SLOT( ClickOnEnd() ) ); + connect( MainWidget->buttonClose, SIGNAL( clicked() ), this, SLOT( ClickOnEnd() ) ); + connect( MainWidget->buttonCancel, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) ); + connect( MainWidget->buttonHelp, SIGNAL( clicked() ), this, SLOT( ClickOnHelp() ) ); - connect(Group1Sel->buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(Group1Sel->buttonUndo, SIGNAL(clicked()), this, SLOT(ClickOnUndo())); - connect(Group1Sel->buttonRedo, SIGNAL(clicked()), this, SLOT(ClickOnRedo())); - connect(Group1Spin->buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(Group1Spin->buttonUndo, SIGNAL(clicked()), this, SLOT(ClickOnUndo())); - connect(Group1Spin->buttonRedo, SIGNAL(clicked()), this, SLOT(ClickOnRedo())); - connect(Group2Spin->buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(Group2Spin->buttonUndo, SIGNAL(clicked()), this, SLOT(ClickOnUndo())); - connect(Group2Spin->buttonRedo, SIGNAL(clicked()), this, SLOT(ClickOnRedo())); - connect(Group3Spin->buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(Group3Spin->buttonUndo, SIGNAL(clicked()), this, SLOT(ClickOnUndo())); - connect(Group3Spin->buttonRedo, SIGNAL(clicked()), this, SLOT(ClickOnRedo())); - connect(Group4Spin->buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(Group4Spin->buttonUndo, SIGNAL(clicked()), this, SLOT(ClickOnUndo())); - connect(Group4Spin->buttonRedo, SIGNAL(clicked()), this, SLOT(ClickOnRedo())); + connect( Group1Sel->buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( Group1Sel->buttonUndo, SIGNAL( clicked() ), this, SLOT( ClickOnUndo() ) ); + connect( Group1Sel->buttonRedo, SIGNAL( clicked() ), this, SLOT( ClickOnRedo() ) ); + connect( Group1Spin->buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( Group1Spin->buttonUndo, SIGNAL( clicked() ), this, SLOT( ClickOnUndo() ) ); + connect( Group1Spin->buttonRedo, SIGNAL( clicked() ), this, SLOT( ClickOnRedo() ) ); + connect( Group2Spin->buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( Group2Spin->buttonUndo, SIGNAL( clicked() ), this, SLOT( ClickOnUndo() ) ); + connect( Group2Spin->buttonRedo, SIGNAL( clicked() ), this, SLOT( ClickOnRedo() ) ); + connect( Group3Spin->buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( Group3Spin->buttonUndo, SIGNAL( clicked() ), this, SLOT( ClickOnUndo() ) ); + connect( Group3Spin->buttonRedo, SIGNAL( clicked() ), this, SLOT( ClickOnRedo() ) ) ; + connect( Group4Spin->buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( Group4Spin->buttonUndo, SIGNAL( clicked() ), this, SLOT( ClickOnUndo() ) ); + connect( Group4Spin->buttonRedo, SIGNAL( clicked() ), this, SLOT( ClickOnRedo() ) ); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(TypeClicked(int))); - connect(GroupDest1, SIGNAL(clicked(int)), this, SLOT(DestClicked(int))); - connect(GroupPt->GroupPoint, SIGNAL(clicked(int)), this, SLOT(PointClicked(int))); - connect(GroupD1->GroupDir1, SIGNAL(clicked(int)), this, SLOT(Dir1Clicked(int))); - connect(GroupD2->GroupDir2, SIGNAL(clicked(int)), this, SLOT(Dir2Clicked(int))); + connect( MainWidget->ButtonGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( TypeClicked( int ) ) ); + connect( ButtonGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( DestClicked( int ) ) ); + connect( GroupPt->ButtonGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( PointClicked( int ) ) ); + connect( GroupD1->ButtonGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( Dir1Clicked( int ) ) ); + connect( GroupD2->ButtonGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( Dir2Clicked( int ) )); - connect(Group1Sel->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group1Sel->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect( Group1Sel->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( Group1Sel->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(Group1Spin->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(Group2Spin->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(Group2Spin->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(Group3Spin->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(Group3Spin->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(Group3Spin->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(Group4Spin->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(Group4Spin->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(Group4Spin->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(Group4Spin->SpinBox_DS, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); + connect( Group1Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group2Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group2Spin->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group3Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group3Spin->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group3Spin->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group4Spin->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group4Spin->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group4Spin->SpinBox_DZ, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( Group4Spin->SpinBox_DS, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); - connect(myGeometryGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group1Spin->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeometryGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group2Spin->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeometryGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group2Spin->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeometryGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group3Spin->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeometryGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group3Spin->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeometryGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group3Spin->SpinBox_DZ, SLOT(SetStep(double))); - connect(myGeometryGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group4Spin->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeometryGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group4Spin->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeometryGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group4Spin->SpinBox_DZ, SLOT(SetStep(double))); - connect(myGeometryGUI, SIGNAL(SignalDefaultStepValueChanged(double)), Group4Spin->SpinBox_DS, SLOT(SetStep(double))); - - connect(myGeometryGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); - connect(myGeometryGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); + connect( myGeometryGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); + connect( myGeometryGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeometryGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); + // install event filter on spin-boxes to provide Apply action on Return pressed Group1Spin->SpinBox_DX->installEventFilter(this); Group2Spin->SpinBox_DX->installEventFilter(this); @@ -249,6 +234,7 @@ EntityGUI_SketcherDlg::EntityGUI_SketcherDlg(GeometryGUI* GUI, QWidget* parent, Init(); } + //================================================================================= // function : ~EntityGUI_SketcherDlg() // purpose : Destroys the object and frees any allocated resources @@ -258,6 +244,7 @@ EntityGUI_SketcherDlg::~EntityGUI_SketcherDlg() myGeometryGUI->SetActiveDialogBox( 0 ); } + //================================================================================= // function : eventFilter() // purpose : event filter for spin-boxes to provide Apply action on Return pressed @@ -266,7 +253,7 @@ bool EntityGUI_SketcherDlg::eventFilter (QObject* object, QEvent* event) { if (event->type() == QEvent::KeyPress) { QKeyEvent* ke = (QKeyEvent*)event; - if (ke->key() == Key_Return) { + if (ke->key() == Qt::Key_Return) { if (object == Group1Spin->SpinBox_DX) { Group1Spin->buttonApply->animateClick(); return true; @@ -289,17 +276,9 @@ bool EntityGUI_SketcherDlg::eventFilter (QObject* object, QEvent* event) } } - if (event->type() == QEvent::KeyRelease) { - // NPAL16010 (Sketcher Apply non available if only one line is modified) - // To have Apply active as soon as value text changed - QString s = ((QtxDblSpinBox*) object)->text(); - bool ok; - double newVal = s.toDouble( &ok ); - if ( ok ) - ValueChangedInSpinBox( newVal ); - } + // Fix of the NPAL16010 bug is removed, because it's not actual with the Qt-4.x - return EntityGUI_Skeleton_QTD::eventFilter(object, event); + return QDialog::eventFilter(object, event); } @@ -328,29 +307,29 @@ void EntityGUI_SketcherDlg::Init() double step = SUIT_Session::session()->resourceMgr()->doubleValue( "Geometry", "SettingsGeomStep", 100.0 ); /* min, max, step and decimals for spin boxes */ - Group1Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group2Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group3Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group3Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group3Spin->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group4Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 0.1, DBL_DIGITS_DISPLAY); - Group4Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 0.1, DBL_DIGITS_DISPLAY); - Group4Spin->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group4Spin->SpinBox_DS->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., DBL_DIGITS_DISPLAY); + initSpinBox( Group1Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group2Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group3Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group3Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group3Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group4Spin->SpinBox_DX, COORD_MIN, COORD_MAX, 0.1, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group4Spin->SpinBox_DY, COORD_MIN, COORD_MAX, 0.1, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group4Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group4Spin->SpinBox_DS, COORD_MIN, COORD_MAX, 5., 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY /* displays Dialog */ - GroupConstructors->setEnabled(false); - GroupDest1->setEnabled(false); - setEnabledUndo(false); - setEnabledRedo(false); + MainWidget->GroupConstructors->setEnabled( false ); + MainWidget->GroupDest1->setEnabled( false ); + setEnabledUndo( false ); + setEnabledRedo( false ); - RadioButton1->setChecked(true); + MainWidget->RadioButton1->setChecked( true ); resize( 0, 0 ); - TypeClicked(0); + TypeClicked( 0 ); - GEOMBase_Helper::displayPreview(false, true, true, myLineWidth); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } @@ -360,7 +339,7 @@ void EntityGUI_SketcherDlg::Init() //================================================================================= void EntityGUI_SketcherDlg::InitClick() { - disconnect(myGeometryGUI->getApp()->selectionMgr(), 0, this, 0); + disconnect( myGeometryGUI->getApp()->selectionMgr(), 0, this, 0 ); Group1Sel->hide(); Group1Spin->hide(); @@ -368,7 +347,7 @@ void EntityGUI_SketcherDlg::InitClick() Group3Spin->hide(); Group4Spin->hide(); - resize(0, 0); + resize( 0, 0 ); } @@ -376,22 +355,20 @@ void EntityGUI_SketcherDlg::InitClick() // function : TypeClicked() // purpose : Radio button management //================================================================================= -void EntityGUI_SketcherDlg::TypeClicked(int constructorId) +void EntityGUI_SketcherDlg::TypeClicked( int constructorId ) { myConstructorId = constructorId; - if ( myConstructorId == 0 ) // SEGMENT - { - GroupD2->setEnabled(true); - RB_Dest1->setEnabled(true); - RB_Dest1->setChecked(true); - DestClicked(1); + if ( myConstructorId == 0 ) { // SEGMENT + GroupD2->setEnabled( true ); + MainWidget->RB_Dest1->setEnabled( true ); + MainWidget->RB_Dest1->setChecked( true ); + DestClicked( 1 ); } - else if ( myConstructorId == 1 ) // ARC - { - GroupD2->setEnabled(false); - RB_Dest1->setEnabled(false); - RB_Dest2->setChecked(true); - DestClicked(0); + else if ( myConstructorId == 1 ) { // ARC + GroupD2->setEnabled( false ); + MainWidget->RB_Dest1->setEnabled( false ); + MainWidget->RB_Dest2->setChecked( true ); + DestClicked( 0 ); } } @@ -406,18 +383,18 @@ void EntityGUI_SketcherDlg::DestClicked( int constructorId ) GroupD1->hide(); GroupD2->hide(); - if ( constructorId == 1 ) - { // Point - GroupPt->RB_Point1->setChecked(true); + if ( constructorId == 1 ) { + // Point + GroupPt->RB_Point1->setChecked( true ); GroupPt->show(); - PointClicked(1); // XY + PointClicked( 1 ); // XY } - else if ( constructorId == 0 ) - { // Direction - GroupD1->RB_Dir11->setChecked(true); + else if ( constructorId == 0 ) { + // Direction + GroupD1->RB_Dir11->setChecked( true ); GroupD1->show(); GroupD2->show(); - Dir1Clicked(2); // Angle + Dir1Clicked( 2 ); // Angle } } @@ -426,53 +403,49 @@ void EntityGUI_SketcherDlg::DestClicked( int constructorId ) // function : PointClicked() // purpose : Radio button management //================================================================================= -void EntityGUI_SketcherDlg::PointClicked(int constructorId) +void EntityGUI_SketcherDlg::PointClicked( int constructorId ) { InitClick(); // Get setting of step value from file configuration - double step = SUIT_Session::session()->resourceMgr()->doubleValue("Geometry", "SettingsGeomStep", 100.0); + double step = SUIT_Session::session()->resourceMgr()->doubleValue( "Geometry", "SettingsGeomStep", 100.0 ); - if ( myConstructorId == 0 ) - { // SEGMENT - if ( constructorId == 1 ) - { // XY + if ( myConstructorId == 0 ) { // SEGMENT + if ( constructorId == 1 ) { // XY mySketchType = PT_ABS; - Group2Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group2Spin->TextLabel1->setText(tr("GEOM_SKETCHER_X2")); - Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_Y2")); + initSpinBox( Group2Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + Group2Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_X2" ) ); + Group2Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_Y2" ) ); myX = 0.0; - Group2Spin->SpinBox_DX->SetValue(myX); + Group2Spin->SpinBox_DX->setValue( myX ); myY = 0.0; - Group2Spin->SpinBox_DY->SetValue(myY); + Group2Spin->SpinBox_DY->setValue( myY ); Group2Spin->show(); Group2Spin->buttonApply->setFocus(); - GEOMBase_Helper::displayPreview(false, true, true, myLineWidth); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } - else if ( constructorId == 0 ) - { // DXDY + else if ( constructorId == 0 ) { // DXDY mySketchType = PT_RELATIVE; - Group2Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group2Spin->TextLabel1->setText(tr("GEOM_SKETCHER_DX2")); - Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_DY2")); + initSpinBox( Group2Spin->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + Group2Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_DX2" ) ); + Group2Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_DY2" ) ); myDX = 0.0; - Group2Spin->SpinBox_DX->SetValue(myDX); + Group2Spin->SpinBox_DX->setValue( myDX ); myDY = 0.0; - Group2Spin->SpinBox_DY->SetValue(myDY); + Group2Spin->SpinBox_DY->setValue( myDY ); Group2Spin->show(); Group2Spin->buttonApply->setFocus(); - GEOMBase_Helper::displayPreview(false, true, true, myLineWidth); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } - else if ( constructorId == 2 ) - { // Selection + else if ( constructorId == 2 ) { // Selection mySketchType = PT_SEL; myEditCurrentArgument = Group1Sel->LineEdit1; - connect(myGeometryGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeometryGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); Group1Sel->show(); Group1Sel->buttonApply->setFocus(); SelectionIntoArgument(); @@ -485,11 +458,11 @@ void EntityGUI_SketcherDlg::PointClicked(int constructorId) // function : Dir1Clicked() // purpose : Radio button management //================================================================================= -void EntityGUI_SketcherDlg::Dir1Clicked(int constructorId) +void EntityGUI_SketcherDlg::Dir1Clicked( int constructorId ) { myConstructorDirId = constructorId; - GroupD2->RB_Dir21->setChecked(true); - Dir2Clicked(2); + GroupD2->RB_Dir21->setChecked( true ); + Dir2Clicked( 2 ); } @@ -497,209 +470,183 @@ void EntityGUI_SketcherDlg::Dir1Clicked(int constructorId) // function : Dir2Clicked() // purpose : Radio button management //================================================================================= -void EntityGUI_SketcherDlg::Dir2Clicked(int constructorId) +void EntityGUI_SketcherDlg::Dir2Clicked( int constructorId ) { InitClick(); myAngle = 0.0; // Get setting of step value from file configuration - double step = SUIT_Session::session()->resourceMgr()->doubleValue("Geometry", "SettingsGeomStep", 100.0); + double step = SUIT_Session::session()->resourceMgr()->doubleValue( "Geometry", "SettingsGeomStep", 100.0 ); - if ( myConstructorId == 0 ) - { // SEGMENT + if ( myConstructorId == 0 ) { // SEGMENT myX = 0.0; myY = 0.0; myLength = 100.0; - if ( myConstructorDirId == 2 ) - { // Angle - Group2Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., DBL_DIGITS_DISPLAY); - Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group2Spin->TextLabel1->setText(tr("GEOM_SKETCHER_ANGLE2")); - Group2Spin->SpinBox_DX->SetValue(myAngle); + if ( myConstructorDirId == 2 ) { // Angle + initSpinBox( Group2Spin->SpinBox_DX, COORD_MIN, COORD_MAX, 5., 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + Group2Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_ANGLE2" ) ); + Group2Spin->SpinBox_DX->setValue( myAngle ); Group2Spin->buttonApply->setFocus(); Group2Spin->show(); - if ( constructorId == 2 ) - { // Length - mySketchType = DIR_ANGLE_LENGTH; - Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_LENGTH2")); - Group2Spin->SpinBox_DY->SetValue(myLength); + if ( constructorId == 2 ) { // Length + mySketchType = DIR_ANGLE_LENGTH; + Group2Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_LENGTH2" ) ); + Group2Spin->SpinBox_DY->setValue( myLength ); } - else if ( constructorId == 0 ) - { // X - mySketchType = DIR_ANGLE_X; - Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_X3")); - Group2Spin->SpinBox_DY->SetValue(myX); + else if ( constructorId == 0 ) { // X + mySketchType = DIR_ANGLE_X; + Group2Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_X3" ) ); + Group2Spin->SpinBox_DY->setValue( myX ); } - else if ( constructorId == 1 ) - { // Y - mySketchType = DIR_ANGLE_Y; - Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_Y3")); - Group2Spin->SpinBox_DY->SetValue(myY); + else if ( constructorId == 1 ) { // Y + mySketchType = DIR_ANGLE_Y; + Group2Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_Y3" ) ); + Group2Spin->SpinBox_DY->setValue( myY ); } } - else if ( myConstructorDirId == 0 ) - { // Perpendicular + else if ( myConstructorDirId == 0 ) { // Perpendicular Group1Spin->show(); Group1Spin->buttonApply->setFocus(); - if ( constructorId == 2 ) - { // Length - mySketchType = DIR_PER_LENGTH; - Group1Spin->TextLabel1->setText(tr("GEOM_SKETCHER_LENGTH2")); - Group1Spin->SpinBox_DX->SetValue(myLength); + if ( constructorId == 2 ) { // Length + mySketchType = DIR_PER_LENGTH; + Group1Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_LENGTH2" ) ); + Group1Spin->SpinBox_DX->setValue( myLength ); } - else if ( constructorId == 0 ) - { // X - mySketchType = DIR_PER_X; - Group1Spin->TextLabel1->setText(tr("GEOM_SKETCHER_X3")); - Group1Spin->SpinBox_DX->SetValue(myX); + else if ( constructorId == 0 ) { // X + mySketchType = DIR_PER_X; + Group1Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_X3" ) ); + Group1Spin->SpinBox_DX->setValue( myX ); } - else if ( constructorId == 1 ) - { // Y - mySketchType = DIR_PER_Y; - Group1Spin->TextLabel1->setText(tr("GEOM_SKETCHER_Y3")); - Group1Spin->SpinBox_DX->SetValue(myY); + else if ( constructorId == 1 ) { // Y + mySketchType = DIR_PER_Y; + Group1Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_Y3" ) ); + Group1Spin->SpinBox_DX->setValue( myY ); } } - else if ( myConstructorDirId == 1 ) - { // Tangent + else if ( myConstructorDirId == 1 ) { // Tangent Group1Spin->show(); Group1Spin->buttonApply->setFocus(); - if ( constructorId == 2 ) - { // Length - mySketchType = DIR_TAN_LENGTH; - Group1Spin->TextLabel1->setText(tr("GEOM_SKETCHER_LENGTH2")); - Group1Spin->SpinBox_DX->SetValue(myLength); + if ( constructorId == 2 ) { // Length + mySketchType = DIR_TAN_LENGTH; + Group1Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_LENGTH2" ) ); + Group1Spin->SpinBox_DX->setValue( myLength ); } - else if ( constructorId == 0 ) - { // X - mySketchType = DIR_TAN_X; - Group1Spin->TextLabel1->setText(tr("GEOM_SKETCHER_X3")); - Group1Spin->SpinBox_DX->SetValue(myX); + else if ( constructorId == 0 ) { // X + mySketchType = DIR_TAN_X; + Group1Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_X3" ) ); + Group1Spin->SpinBox_DX->setValue( myX ); } - else if ( constructorId == 1 ) - { // Y - mySketchType = DIR_TAN_Y; - Group1Spin->TextLabel1->setText(tr("GEOM_SKETCHER_Y3")); - Group1Spin->SpinBox_DX->SetValue(myY); + else if ( constructorId == 1 ) { // Y + mySketchType = DIR_TAN_Y; + Group1Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_Y3" ) ); + Group1Spin->SpinBox_DX->setValue( myY ); } } - else if ( myConstructorDirId == 3 ) - { // DXDY - Group3Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 0.1, DBL_DIGITS_DISPLAY); - Group3Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 0.1, DBL_DIGITS_DISPLAY); - Group3Spin->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group3Spin->TextLabel1->setText(tr("GEOM_SKETCHER_VX2")); - Group3Spin->TextLabel2->setText(tr("GEOM_SKETCHER_VY2")); + else if ( myConstructorDirId == 3 ) { // DXDY + initSpinBox( Group3Spin->SpinBox_DX, COORD_MIN, COORD_MAX, 0.1, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group3Spin->SpinBox_DY, COORD_MIN, COORD_MAX, 0.1, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group3Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + Group3Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_VX2" ) ); + Group3Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_VY2" ) ); myDX = 0.0; - Group3Spin->SpinBox_DX->SetValue(myDX); + Group3Spin->SpinBox_DX->setValue( myDX ); myDY = 0.0; - Group3Spin->SpinBox_DY->SetValue(myDY); + Group3Spin->SpinBox_DY->setValue( myDY ); Group3Spin->show(); Group3Spin->buttonApply->setFocus(); - if ( constructorId == 2 ) - { // Length - mySketchType = DIR_DXDY_LENGTH; - Group3Spin->TextLabel3->setText(tr("GEOM_SKETCHER_LENGTH2")); - Group3Spin->SpinBox_DZ->SetValue(myLength); + if ( constructorId == 2 ) { // Length + mySketchType = DIR_DXDY_LENGTH; + Group3Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_LENGTH2" ) ); + Group3Spin->SpinBox_DZ->setValue( myLength ); } - else if ( constructorId == 0 ) - { // X - mySketchType = DIR_DXDY_X; - Group3Spin->TextLabel3->setText(tr("GEOM_SKETCHER_X3")); - Group3Spin->SpinBox_DZ->SetValue(myX); + else if ( constructorId == 0 ) { // X + mySketchType = DIR_DXDY_X; + Group3Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_X3" ) ); + Group3Spin->SpinBox_DZ->setValue( myX ); } - else if ( constructorId == 1 ) - { // Y - mySketchType = DIR_DXDY_Y; - Group3Spin->TextLabel3->setText(tr("GEOM_SKETCHER_Y3")); - Group3Spin->SpinBox_DZ->SetValue(myY); + else if ( constructorId == 1 ) { // Y + mySketchType = DIR_DXDY_Y; + Group3Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_Y3" ) ); + Group3Spin->SpinBox_DZ->setValue( myY ); } } } - else if ( myConstructorId == 1 ) - { // ARC - if ( myConstructorDirId == 2 ) - { // Angle - if ( constructorId == 2 ) - { // Length - mySketchType = DIR_ANGLE_LENGTH; - Group3Spin->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., DBL_DIGITS_DISPLAY); - Group3Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group3Spin->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., DBL_DIGITS_DISPLAY); - Group3Spin->TextLabel1->setText(tr("GEOM_SKETCHER_ANGLE2")); - Group3Spin->TextLabel2->setText(tr("GEOM_SKETCHER_RADIUS2")); - Group3Spin->TextLabel3->setText(tr("GEOM_SKETCHER_ANGLE2")); - Group3Spin->SpinBox_DX->SetValue(myAngle); - myRadius = 100.0; - Group3Spin->SpinBox_DY->SetValue(myRadius); - myLength = 30.0; - Group3Spin->SpinBox_DZ->SetValue(myLength); - Group3Spin->show(); - Group3Spin->buttonApply->setFocus(); + else if ( myConstructorId == 1 ) { // ARC + if ( myConstructorDirId == 2 ) { // Angle + if ( constructorId == 2 ) { // Length + mySketchType = DIR_ANGLE_LENGTH; + initSpinBox( Group3Spin->SpinBox_DX, COORD_MIN, COORD_MAX, 5., 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group3Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group3Spin->SpinBox_DZ, COORD_MIN, COORD_MAX, 5., 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + Group3Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_ANGLE2" ) ); + Group3Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_RADIUS2" ) ); + Group3Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_ANGLE2" )); + Group3Spin->SpinBox_DX->setValue( myAngle ); + myRadius = 100.0; + Group3Spin->SpinBox_DY->setValue( myRadius ); + myLength = 30.0; + Group3Spin->SpinBox_DZ->setValue( myLength ); + Group3Spin->show(); + Group3Spin->buttonApply->setFocus(); } } - else if ( myConstructorDirId == 0 ) - { // Perpendicular - if ( constructorId == 2 ) - { // Length - mySketchType = DIR_PER_LENGTH; - Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., DBL_DIGITS_DISPLAY); - Group2Spin->TextLabel1->setText(tr("GEOM_SKETCHER_RADIUS2")); - Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_ANGLE2")); - myRadius = 100.0; - Group2Spin->SpinBox_DX->SetValue(myRadius); - myLength = 30.0; - Group2Spin->SpinBox_DY->SetValue(myLength); - Group2Spin->show(); - Group2Spin->buttonApply->setFocus(); + else if ( myConstructorDirId == 0 ) { // Perpendicular + if ( constructorId == 2 ) { // Length + mySketchType = DIR_PER_LENGTH; + initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, 5., 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + Group2Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_RADIUS2" ) ); + Group2Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_ANGLE2" ) ); + myRadius = 100.0; + Group2Spin->SpinBox_DX->setValue( myRadius ); + myLength = 30.0; + Group2Spin->SpinBox_DY->setValue( myLength ); + Group2Spin->show(); + Group2Spin->buttonApply->setFocus(); } } - else if ( myConstructorDirId == 1 ) - { // Tangent - if ( constructorId == 2 ) - { // Length - mySketchType = DIR_TAN_LENGTH; - Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - Group2Spin->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, 5., DBL_DIGITS_DISPLAY); - Group2Spin->TextLabel1->setText(tr("GEOM_SKETCHER_RADIUS2")); - Group2Spin->TextLabel2->setText(tr("GEOM_SKETCHER_ANGLE2")); - myRadius = 100.0; - Group2Spin->SpinBox_DX->SetValue(myRadius); - myLength = 30.0; - Group2Spin->SpinBox_DY->SetValue(myLength); - Group2Spin->show(); - Group2Spin->buttonApply->setFocus(); + else if ( myConstructorDirId == 1 ) { // Tangent + if ( constructorId == 2 ) { // Length + mySketchType = DIR_TAN_LENGTH; + initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( Group2Spin->SpinBox_DY, COORD_MIN, COORD_MAX, 5., 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + Group2Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_RADIUS2" ) ); + Group2Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_ANGLE2" ) ); + myRadius = 100.0; + Group2Spin->SpinBox_DX->setValue( myRadius ); + myLength = 30.0; + Group2Spin->SpinBox_DY->setValue( myLength ); + Group2Spin->show(); + Group2Spin->buttonApply->setFocus(); } } - else if ( myConstructorDirId == 3 ) - { // DXDY - if ( constructorId == 2 ) - { // Length - mySketchType = DIR_DXDY_LENGTH; - Group4Spin->TextLabel1->setText(tr("GEOM_SKETCHER_VX2")); - Group4Spin->TextLabel2->setText(tr("GEOM_SKETCHER_VY2")); - Group4Spin->TextLabel3->setText(tr("GEOM_SKETCHER_RADIUS2")); - Group4Spin->TextLabel4->setText(tr("GEOM_SKETCHER_ANGLE2")); - myDX = 0.0; - Group4Spin->SpinBox_DX->SetValue(myDX); - myDY = 0.0; - Group4Spin->SpinBox_DY->SetValue(myDY); - myRadius = 100.0; - Group4Spin->SpinBox_DZ->SetValue(myRadius); - myLength = 30.0; - Group4Spin->SpinBox_DS->SetValue(myLength); - Group4Spin->show(); - Group4Spin->buttonApply->setFocus(); + else if ( myConstructorDirId == 3 ) { // DXDY + if ( constructorId == 2 ) { // Length + mySketchType = DIR_DXDY_LENGTH; + Group4Spin->TextLabel1->setText( tr( "GEOM_SKETCHER_VX2" ) ); + Group4Spin->TextLabel2->setText( tr( "GEOM_SKETCHER_VY2" ) ); + Group4Spin->TextLabel3->setText( tr( "GEOM_SKETCHER_RADIUS2" ) ); + Group4Spin->TextLabel4->setText( tr( "GEOM_SKETCHER_ANGLE2" ) ); + myDX = 0.0; + Group4Spin->SpinBox_DX->setValue( myDX ); + myDY = 0.0; + Group4Spin->SpinBox_DY->setValue( myDY ); + myRadius = 100.0; + Group4Spin->SpinBox_DZ->setValue( myRadius ); + myLength = 30.0; + Group4Spin->SpinBox_DS->setValue( myLength ); + Group4Spin->show(); + Group4Spin->buttonApply->setFocus(); } } } - GEOMBase_Helper::displayPreview(false, true, true, myLineWidth); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } @@ -719,44 +666,41 @@ void EntityGUI_SketcherDlg::ClickOnCancel() //================================================================================= void EntityGUI_SketcherDlg::ClickOnEnd() { - if ( sender() == buttonClose ) - { + if ( sender() == MainWidget->buttonClose ) { // Verify validity of commands - if ( myCommand.count() <= 2 ) - { - SUIT_MessageBox::error1( SUIT_Session::session()->activeApplication()->desktop(), - tr( "GEOM_ERROR_STATUS" ), tr( "CANNOT_CLOSE" ), tr( "BUT_OK" ) ); + if ( myCommand.count() <= 2 ) { + SUIT_MessageBox::critical( SUIT_Session::session()->activeApplication()->desktop(), + tr( "GEOM_ERROR_STATUS" ), tr( "CANNOT_CLOSE" ), tr( "BUT_OK" ) ); return; } - QString Command = myCommand.join( "" ) + GetNewCommand(); - Sketcher_Profile aProfile (Command.ascii()); + QString Parameters; + QString Command = myCommand.join( "" ) + GetNewCommand( Parameters ); + Sketcher_Profile aProfile( Command.toAscii() ); Command = myCommand.join( "" ); - aProfile = Sketcher_Profile(Command.ascii()); + aProfile = Sketcher_Profile( Command.toAscii() ); TopoDS_Shape myShape; if ( aProfile.IsDone() ) myShape = aProfile.GetShape(); - if(myShape.ShapeType() != TopAbs_VERTEX) + if ( myShape.ShapeType() != TopAbs_VERTEX ) myCommand.append( ":WW" ); } - else - { + else { // PAL16008 (Sketcher Validation should be equal to Apply&Close) - if (Group1Spin->buttonApply->isEnabled() && Group1Spin->isVisible() || - Group2Spin->buttonApply->isEnabled() && Group2Spin->isVisible() || - Group3Spin->buttonApply->isEnabled() && Group3Spin->isVisible() || - Group4Spin->buttonApply->isEnabled() && Group4Spin->isVisible() || - Group1Sel ->buttonApply->isEnabled() && Group1Sel->isVisible() ) - { + if ( Group1Spin->buttonApply->isEnabled() && Group1Spin->isVisible() || + Group2Spin->buttonApply->isEnabled() && Group2Spin->isVisible() || + Group3Spin->buttonApply->isEnabled() && Group3Spin->isVisible() || + Group4Spin->buttonApply->isEnabled() && Group4Spin->isVisible() || + Group1Sel ->buttonApply->isEnabled() && Group1Sel->isVisible() ) { ClickOnApply(); } myIsAllAdded = true; } - if( myCommand.size() > 2 ) - if( !onAccept() ) + if ( myCommand.size() > 2 ) + if ( !onAccept() ) return; close(); @@ -768,36 +712,42 @@ void EntityGUI_SketcherDlg::ClickOnEnd() //================================================================================= bool EntityGUI_SketcherDlg::ClickOnApply() { - if (sender() && sender()->inherits("QPushButton")) - ((QPushButton*)sender())->setFocus(); // to update value of currently edited spin-box (PAL11948) + if ( sender() && sender()->inherits( "QPushButton" ) ) + ( (QPushButton*)sender() )->setFocus(); // to update value of currently edited spin-box (PAL11948) - myCommand.append( GetNewCommand() ); + QString aParameters; + myCommand.append( GetNewCommand( aParameters ) ); mySketchState = NEXT_POINT; myUndoCommand.clear(); myUndoCommand.append( "Sketcher" ); - GroupConstructors->setEnabled(true); - GroupDest1->setEnabled(true); - setEnabledUndo(true); - setEnabledRedo(false); + myParameters.append( aParameters ); + myUndoParameters.clear(); - GEOMBase_Helper::displayPreview(false, true, true, myLineWidth); + MainWidget->GroupConstructors->setEnabled( true ); + MainWidget->GroupDest1->setEnabled( true ); + setEnabledUndo( true ); + setEnabledRedo( false ); + + myIsApply = true; + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); + myIsApply = false; // Set focus to SpinBox_DX - if (sender() == Group1Spin->buttonApply) { + if ( sender() == Group1Spin->buttonApply ) { (Group1Spin->SpinBox_DX)->setFocus(); (Group1Spin->SpinBox_DX)->selectAll(); } - else if (sender() == Group2Spin->buttonApply) { + else if ( sender() == Group2Spin->buttonApply ) { (Group2Spin->SpinBox_DX)->setFocus(); (Group2Spin->SpinBox_DX)->selectAll(); } - else if (sender() == Group3Spin->buttonApply) { + else if ( sender() == Group3Spin->buttonApply ) { (Group3Spin->SpinBox_DX)->setFocus(); (Group3Spin->SpinBox_DX)->selectAll(); } - else if (sender() == Group4Spin->buttonApply) { + else if ( sender() == Group4Spin->buttonApply ) { (Group4Spin->SpinBox_DX)->setFocus(); (Group4Spin->SpinBox_DX)->selectAll(); } @@ -811,21 +761,21 @@ bool EntityGUI_SketcherDlg::ClickOnApply() //================================================================================= void EntityGUI_SketcherDlg::ClickOnHelp() { - LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication()); - if (app) - app->onHelpContextModule(myGeometryGUI ? app->moduleName(myGeometryGUI->moduleName()) : QString(""), myHelpFileName); + LightApp_Application* app = (LightApp_Application*)( SUIT_Session::session()->activeApplication() ); + if ( app ) + app->onHelpContextModule( myGeometryGUI ? app->moduleName( myGeometryGUI->moduleName() ) : QString( "" ), myHelpFileName ); else { - QString platform; + QString platform; #ifdef WIN32 - platform = "winapplication"; + platform = "winapplication"; #else - platform = "application"; + platform = "application"; #endif - SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"), - QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). - arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName), - QObject::tr("BUT_OK")); + SUIT_MessageBox::warning( 0, QObject::tr( "WRN_WARNING" ), + QObject::tr( "EXTERNAL_BROWSER_CANNOT_SHOW_PAGE" ). + arg( app->resourceMgr()->stringValue( "ExternalBrowser", platform ) ).arg( myHelpFileName ), + QObject::tr( "BUT_OK" ) ); } } @@ -838,20 +788,23 @@ void EntityGUI_SketcherDlg::ClickOnUndo() myUndoCommand.append( myCommand.last() ); myCommand.pop_back(); - if(myCommand.count() == 1) { + myUndoParameters.append( myParameters.last() ); + myParameters.pop_back(); + + if ( myCommand.count() == 1 ) { mySketchState = FIRST_POINT; - RadioButton1->setChecked(true); - TypeClicked(0); + MainWidget->RadioButton1->setChecked( true ); + TypeClicked( 0 ); - GroupConstructors->setEnabled(false); - GroupDest1->setEnabled(false); - setEnabledUndo(false); + MainWidget->GroupConstructors->setEnabled( false ); + MainWidget->GroupDest1->setEnabled( false ); + setEnabledUndo( false ); } - setEnabledRedo(true); + setEnabledRedo( true ); - GEOMBase_Helper::displayPreview(false, true, true, myLineWidth); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } //================================================================================= @@ -863,42 +816,45 @@ void EntityGUI_SketcherDlg::ClickOnRedo() myCommand.append( myUndoCommand.last() ); myUndoCommand.pop_back(); + myParameters.append( myUndoParameters.last() ); + myUndoParameters.pop_back(); + mySketchState = NEXT_POINT; - GroupConstructors->setEnabled(true); - GroupDest1->setEnabled(true); - setEnabledUndo(true); + MainWidget->GroupConstructors->setEnabled( true ); + MainWidget->GroupDest1->setEnabled( true ); + setEnabledUndo( true ); - if(myUndoCommand.count() == 1) - setEnabledRedo(false); + if ( myUndoCommand.count() == 1 ) + setEnabledRedo( false ); - GEOMBase_Helper::displayPreview(false, true, true, myLineWidth); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } //================================================================================= // function : setEnabledUndo() // purpose : //================================================================================= -void EntityGUI_SketcherDlg::setEnabledUndo(bool value) +void EntityGUI_SketcherDlg::setEnabledUndo( bool value ) { - Group1Sel->buttonUndo->setEnabled(value); - Group1Spin->buttonUndo->setEnabled(value); - Group2Spin->buttonUndo->setEnabled(value); - Group3Spin->buttonUndo->setEnabled(value); - Group4Spin->buttonUndo->setEnabled(value); + Group1Sel->buttonUndo->setEnabled( value ); + Group1Spin->buttonUndo->setEnabled( value ); + Group2Spin->buttonUndo->setEnabled( value ); + Group3Spin->buttonUndo->setEnabled( value ); + Group4Spin->buttonUndo->setEnabled( value ); } //================================================================================= // function : setEnabledRedo() // purpose : //================================================================================= -void EntityGUI_SketcherDlg::setEnabledRedo(bool value) +void EntityGUI_SketcherDlg::setEnabledRedo( bool value ) { - Group1Sel->buttonRedo->setEnabled(value); - Group1Spin->buttonRedo->setEnabled(value); - Group2Spin->buttonRedo->setEnabled(value); - Group3Spin->buttonRedo->setEnabled(value); - Group4Spin->buttonRedo->setEnabled(value); + Group1Sel->buttonRedo->setEnabled( value ); + Group1Spin->buttonRedo->setEnabled( value ); + Group2Spin->buttonRedo->setEnabled( value ); + Group3Spin->buttonRedo->setEnabled( value ); + Group4Spin->buttonRedo->setEnabled( value ); } //================================================================================= @@ -907,23 +863,26 @@ void EntityGUI_SketcherDlg::setEnabledRedo(bool value) //================================================================================= void EntityGUI_SketcherDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); myX = myLastX1; myY = myLastY1; - int nbSel = IObjectCount(); - if ( nbSel == 1 && myEditCurrentArgument == Group1Sel->LineEdit1 ) - { + LightApp_SelectionMgr* aSelMgr = myGeometryGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + int nbSel = aSelList.Extent(); + if (nbSel == 1 && myEditCurrentArgument == Group1Sel->LineEdit1) { Standard_Boolean aRes = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes ); - if ( !CORBA::is_nil( aSelectedObject ) && aRes ) { + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); + if (!CORBA::is_nil(aSelectedObject) && aRes) { TopoDS_Shape aShape; - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_VERTEX ) ) { + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_VERTEX)) { gp_Trsf aTrans; gp_Ax3 aWPlane = myGeometryGUI->GetWorkingPlane(); aTrans.SetTransformation(aWPlane); - BRepBuilderAPI_Transform aTransformation(aShape, aTrans, Standard_False); + BRepBuilderAPI_Transform aTransformation (aShape, aTrans, Standard_False); aShape = aTransformation.Shape(); gp_Pnt aPnt; @@ -936,7 +895,7 @@ void EntityGUI_SketcherDlg::SelectionIntoArgument() } } - GEOMBase_Helper::displayPreview(false, true, true, myLineWidth); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } @@ -946,8 +905,7 @@ void EntityGUI_SketcherDlg::SelectionIntoArgument() //================================================================================= void EntityGUI_SketcherDlg::SetEditCurrentArgument() { - if ( sender() == Group1Sel->PushButton1 ) - { + if ( sender() == Group1Sel->PushButton1 ) { myEditCurrentArgument = Group1Sel->LineEdit1; myEditCurrentArgument->setFocus(); } @@ -961,17 +919,21 @@ void EntityGUI_SketcherDlg::SetEditCurrentArgument() //================================================================================= void EntityGUI_SketcherDlg::LineEditReturnPressed() { - if ( sender() == Group1Sel->LineEdit1 ) - { + if ( sender() == Group1Sel->LineEdit1 ) { myEditCurrentArgument = Group1Sel->LineEdit1; - /* User name of object input management */ - /* If successfull the selection is changed and signal emitted... */ - /* so SelectionIntoArgument() is automatically called. */ - const QString objectUserName = myEditCurrentArgument->text(); - QWidget* thisWidget = (QWidget*)this; - if(GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, selectedIO())) - myEditCurrentArgument->setText(objectUserName); + /* User name of object input management */ + /* If successfull the selection is changed and signal emitted... */ + /* so SelectionIntoArgument() is automatically called. */ + const QString objectUserName = myEditCurrentArgument->text(); + QWidget* thisWidget = (QWidget*)this; + + LightApp_SelectionMgr* aSelMgr = myGeometryGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, aSelList)) + myEditCurrentArgument->setText( objectUserName ); } } @@ -986,8 +948,8 @@ void EntityGUI_SketcherDlg::DeactivateActiveDialog() setEnabled( false ); globalSelection(); - disconnect(myGeometryGUI->getApp()->selectionMgr(), 0, this, 0); - myGeometryGUI->SetActiveDialogBox(0); + disconnect( myGeometryGUI->getApp()->selectionMgr(), 0, this, 0 ); + myGeometryGUI->SetActiveDialogBox( 0 ); } @@ -998,11 +960,11 @@ void EntityGUI_SketcherDlg::DeactivateActiveDialog() void EntityGUI_SketcherDlg::ActivateThisDialog() { myGeometryGUI->EmitSignalDeactivateDialog(); - setEnabled(true); - myGeometryGUI->SetActiveDialogBox((QDialog*)this); + setEnabled( true ); + myGeometryGUI->SetActiveDialogBox( this ); - connect(myGeometryGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeometryGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); //myGeometryGUI->SetState( 0 ); globalSelection( GEOM_POINT ); @@ -1010,7 +972,7 @@ void EntityGUI_SketcherDlg::ActivateThisDialog() myEditCurrentArgument = Group1Sel->LineEdit1; myEditCurrentArgument->setFocus(); - GEOMBase_Helper::displayPreview(false, true, true, myLineWidth); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } @@ -1018,9 +980,9 @@ void EntityGUI_SketcherDlg::ActivateThisDialog() // function : enterEvent [REDEFINED] // purpose : //================================================================================= -void EntityGUI_SketcherDlg::enterEvent(QEvent* e) +void EntityGUI_SketcherDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled()) + if ( !MainWidget->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -1029,10 +991,11 @@ void EntityGUI_SketcherDlg::enterEvent(QEvent* e) // function : closeEvent() // purpose : //================================================================================= -void EntityGUI_SketcherDlg::closeEvent(QCloseEvent* e) +void EntityGUI_SketcherDlg::closeEvent( QCloseEvent* e ) { //myGeometryGUI->SetState( -1 ); - disconnect(myGeometryGUI->getApp()->selectionMgr(), 0, this, 0); + disconnect( myGeometryGUI->getApp()->selectionMgr(), 0, this, 0 ); + myGeometryGUI->getApp()->updateActions(); QDialog::closeEvent( e ); } @@ -1041,233 +1004,184 @@ void EntityGUI_SketcherDlg::closeEvent(QCloseEvent* e) // function : ValueChangedInSpinBox() // purpose : //================================================================================= -void EntityGUI_SketcherDlg::ValueChangedInSpinBox(double newValue) +void EntityGUI_SketcherDlg::ValueChangedInSpinBox( double newValue ) { QObject* send = (QObject*)sender(); Standard_Real vx, vy, vz, vs; vx = vy = vz = vs = 0.0; - if ( send == Group1Spin->SpinBox_DX) - { - vx = newValue; - } - else if ( send == Group2Spin->SpinBox_DX ) - { - vx = newValue; - vy = Group2Spin->SpinBox_DY->GetValue(); - } - else if ( send == Group2Spin->SpinBox_DY) - { - vx = Group2Spin->SpinBox_DX->GetValue(); - vy = newValue; - } - else if ( send == Group3Spin->SpinBox_DX) - { - vx = newValue; - vy = Group3Spin->SpinBox_DY->GetValue(); - vz = Group3Spin->SpinBox_DZ->GetValue(); - } - else if ( send == Group3Spin->SpinBox_DY) - { - vx = Group3Spin->SpinBox_DX->GetValue(); - vy = newValue; - vz = Group3Spin->SpinBox_DZ->GetValue(); - } - else if ( send == Group3Spin->SpinBox_DZ) - { - vx = Group3Spin->SpinBox_DX->GetValue(); - vy = Group3Spin->SpinBox_DY->GetValue(); - vz = newValue; - } - else if ( send == Group4Spin->SpinBox_DX) - { - vx = newValue; - vy = Group4Spin->SpinBox_DY->GetValue(); - vz = Group4Spin->SpinBox_DZ->GetValue(); - vs = Group4Spin->SpinBox_DS->GetValue(); - } - else if ( send == Group4Spin->SpinBox_DY) - { - vx = Group4Spin->SpinBox_DX->GetValue(); - vy = newValue; - vz = Group4Spin->SpinBox_DZ->GetValue(); - vs = Group4Spin->SpinBox_DS->GetValue(); - } - else if ( send == Group4Spin->SpinBox_DZ) - { - vx = Group4Spin->SpinBox_DX->GetValue(); - vy = Group4Spin->SpinBox_DY->GetValue(); - vz = newValue; - vs = Group4Spin->SpinBox_DS->GetValue(); - } - else if ( send == Group4Spin->SpinBox_DS) - { - vx = Group4Spin->SpinBox_DX->GetValue(); - vy = Group4Spin->SpinBox_DY->GetValue(); - vz = Group4Spin->SpinBox_DZ->GetValue(); - vs = newValue; - } - // NPAL16010 (Sketcher Apply non available if only one line is modified) - // if ValueChangedInSpinBox() called from eventFilter() - else if ( Group1Spin->SpinBox_DX->hasFocus() ) - { - vx = newValue; - } - else if ( Group2Spin->SpinBox_DX ->hasFocus() ) - { - vx = newValue; - vy = Group2Spin->SpinBox_DY->GetValue(); - } - else if ( Group2Spin->SpinBox_DY->hasFocus() ) - { - vx = Group2Spin->SpinBox_DX->GetValue(); - vy = newValue; - } - else if ( Group3Spin->SpinBox_DX->hasFocus() ) - { - vx = newValue; - vy = Group3Spin->SpinBox_DY->GetValue(); - vz = Group3Spin->SpinBox_DZ->GetValue(); - } - else if ( Group3Spin->SpinBox_DY->hasFocus() ) - { - vx = Group3Spin->SpinBox_DX->GetValue(); - vy = newValue; - vz = Group3Spin->SpinBox_DZ->GetValue(); - } - else if ( Group3Spin->SpinBox_DZ->hasFocus() ) - { - vx = Group3Spin->SpinBox_DX->GetValue(); - vy = Group3Spin->SpinBox_DY->GetValue(); - vz = newValue; - } - else if ( Group4Spin->SpinBox_DX->hasFocus() ) - { - vx = newValue; - vy = Group4Spin->SpinBox_DY->GetValue(); - vz = Group4Spin->SpinBox_DZ->GetValue(); - vs = Group4Spin->SpinBox_DS->GetValue(); - } - else if ( Group4Spin->SpinBox_DY->hasFocus() ) - { - vx = Group4Spin->SpinBox_DX->GetValue(); - vy = newValue; - vz = Group4Spin->SpinBox_DZ->GetValue(); - vs = Group4Spin->SpinBox_DS->GetValue(); - } - else if ( Group4Spin->SpinBox_DZ->hasFocus() ) - { - vx = Group4Spin->SpinBox_DX->GetValue(); - vy = Group4Spin->SpinBox_DY->GetValue(); - vz = newValue; - vs = Group4Spin->SpinBox_DS->GetValue(); - } - else if ( Group4Spin->SpinBox_DS->hasFocus() ) - { - vx = Group4Spin->SpinBox_DX->GetValue(); - vy = Group4Spin->SpinBox_DY->GetValue(); - vz = Group4Spin->SpinBox_DZ->GetValue(); - vs = newValue; - } + QString vxStr, vyStr, vzStr, vsStr; - if ( myConstructorId == 0 ) - { // SEGMENT - if ( mySketchType == PT_ABS) - { + QString newValueStr; + if( SalomeApp_DoubleSpinBox* aDoubleSpinBox = (SalomeApp_DoubleSpinBox*)send ) + newValueStr = aDoubleSpinBox->text(); + + if ( send == Group1Spin->SpinBox_DX ) { + vx = newValue; vxStr = newValueStr; + } + else if ( send == Group2Spin->SpinBox_DX ) { + vx = newValue; vxStr = newValueStr; + vy = Group2Spin->SpinBox_DY->value(); vyStr = Group2Spin->SpinBox_DY->text(); + } + else if ( send == Group2Spin->SpinBox_DY ) { + vx = Group2Spin->SpinBox_DX->value(); vxStr = Group2Spin->SpinBox_DX->text(); + vy = newValue; vyStr = newValueStr; + } + else if ( send == Group3Spin->SpinBox_DX ) { + vx = newValue; vxStr = newValueStr; + vy = Group3Spin->SpinBox_DY->value(); vyStr = Group3Spin->SpinBox_DY->text(); + vz = Group3Spin->SpinBox_DZ->value(); vzStr = Group3Spin->SpinBox_DZ->text(); + } + else if ( send == Group3Spin->SpinBox_DY ) { + vx = Group3Spin->SpinBox_DX->value(); vxStr = Group3Spin->SpinBox_DX->text(); + vy = newValue; vyStr = newValueStr; + vz = Group3Spin->SpinBox_DZ->value(); vzStr = Group3Spin->SpinBox_DZ->text(); + } + else if ( send == Group3Spin->SpinBox_DZ ) { + vx = Group3Spin->SpinBox_DX->value(); vxStr = Group3Spin->SpinBox_DX->text(); + vy = Group3Spin->SpinBox_DY->value(); vyStr = Group3Spin->SpinBox_DY->text(); + vz = newValue; vzStr = newValueStr; + } + else if ( send == Group4Spin->SpinBox_DX ) { + vx = newValue; vxStr = newValueStr; + vy = Group4Spin->SpinBox_DY->value(); vyStr = Group4Spin->SpinBox_DY->text(); + vz = Group4Spin->SpinBox_DZ->value(); vzStr = Group4Spin->SpinBox_DZ->text(); + vs = Group4Spin->SpinBox_DS->value(); vsStr = Group4Spin->SpinBox_DS->text(); + } + else if ( send == Group4Spin->SpinBox_DY ) { + vx = Group4Spin->SpinBox_DX->value(); vxStr = Group4Spin->SpinBox_DX->text(); + vy = newValue; vyStr = newValueStr; + vz = Group4Spin->SpinBox_DZ->value(); vzStr = Group4Spin->SpinBox_DZ->text(); + vs = Group4Spin->SpinBox_DS->value(); vsStr = Group4Spin->SpinBox_DS->text(); + } + else if ( send == Group4Spin->SpinBox_DZ ) { + vx = Group4Spin->SpinBox_DX->value(); vxStr = Group4Spin->SpinBox_DX->text(); + vy = Group4Spin->SpinBox_DY->value(); vyStr = Group4Spin->SpinBox_DY->text(); + vz = newValue; vzStr = newValueStr; + vs = Group4Spin->SpinBox_DS->value(); vsStr = Group4Spin->SpinBox_DS->text(); + } + else if ( send == Group4Spin->SpinBox_DS ) { + vx = Group4Spin->SpinBox_DX->value(); vxStr = Group4Spin->SpinBox_DX->text(); + vy = Group4Spin->SpinBox_DY->value(); vyStr = Group4Spin->SpinBox_DY->text(); + vz = Group4Spin->SpinBox_DZ->value(); vzStr = Group4Spin->SpinBox_DZ->text(); + vs = newValue; vsStr = newValueStr; + } + // Fix of the NPAL16010 bug is removed, because it's not actual with the Qt-4.x + + if ( myConstructorId == 0 ) { // SEGMENT + if ( mySketchType == PT_ABS ) { myX = vx; myY = vy; + myXStr = vxStr; + myYStr = vyStr; } - else if ( mySketchType == PT_RELATIVE) - { + else if ( mySketchType == PT_RELATIVE ) { myDX = vx; myDY = vy; + myDXStr = vxStr; + myDYStr = vyStr; } - else if ( mySketchType == DIR_ANGLE_LENGTH) - { + else if ( mySketchType == DIR_ANGLE_LENGTH ) { myAngle = vx; myLength = vy; + myAngleStr = vxStr; + myLengthStr = vyStr; } - else if ( mySketchType == DIR_ANGLE_X) - { + else if ( mySketchType == DIR_ANGLE_X ) { myAngle = vx; myX = vy; + myAngleStr = vxStr; + myXStr = vyStr; } - else if ( mySketchType == DIR_ANGLE_Y) - { + else if ( mySketchType == DIR_ANGLE_Y ) { myAngle = vx; myY = vy; + myAngleStr = vxStr; + myYStr = vyStr; } - else if ( mySketchType == DIR_PER_LENGTH) - { + else if ( mySketchType == DIR_PER_LENGTH ) { myLength = vx; + myLengthStr = vxStr; } - else if ( mySketchType == DIR_PER_X) - { + else if ( mySketchType == DIR_PER_X ) { myX = vx; + myXStr = vxStr; } - else if ( mySketchType == DIR_PER_Y) - { + else if ( mySketchType == DIR_PER_Y ) { myY = vx; + myYStr = vxStr; } - else if ( mySketchType == DIR_TAN_LENGTH) - { + else if ( mySketchType == DIR_TAN_LENGTH ) { myLength = vx; + myLengthStr = vxStr; } - else if ( mySketchType == DIR_TAN_X) - { + else if ( mySketchType == DIR_TAN_X ) { myX = vx; + myXStr = vxStr; } - else if ( mySketchType == DIR_TAN_Y) - { + else if ( mySketchType == DIR_TAN_Y ) { myY = vx; + myYStr = vxStr; } - else if ( mySketchType == DIR_DXDY_LENGTH) - { + else if ( mySketchType == DIR_DXDY_LENGTH ) { myDX = vx; myDY = vy; myLength = vz; + myDXStr = vxStr; + myDYStr = vyStr; + myLengthStr = vzStr; } - else if ( mySketchType == DIR_DXDY_X) - { + else if ( mySketchType == DIR_DXDY_X ) { myDX = vx; myDY = vy; myX = vz; + myDXStr = vxStr; + myDYStr = vyStr; + myXStr = vzStr; } - else if ( mySketchType == DIR_DXDY_Y) - { + else if ( mySketchType == DIR_DXDY_Y ) { myDX = vx; myDY = vy; myY = vz; + myDXStr = vxStr; + myDYStr = vyStr; + myYStr = vzStr; } } - else if ( myConstructorId == 1 ) - { // ARC - if ( mySketchType == DIR_ANGLE_LENGTH) - { + else if ( myConstructorId == 1 ) { // ARC + if ( mySketchType == DIR_ANGLE_LENGTH ) { myAngle = vx; myRadius = vy; myLength = vz; + myAngleStr = vxStr; + myRadiusStr = vyStr; + myLengthStr = vzStr; } - else if ( mySketchType == DIR_PER_LENGTH) - { + else if ( mySketchType == DIR_PER_LENGTH ) { myRadius = vx; myLength = vy; + myRadiusStr = vxStr; + myLengthStr = vyStr; } - else if ( mySketchType == DIR_TAN_LENGTH) - { + else if ( mySketchType == DIR_TAN_LENGTH ) { myRadius = vx; myLength = vy; + myRadiusStr = vxStr; + myLengthStr = vyStr; } - else if ( mySketchType == DIR_DXDY_LENGTH) - { + else if ( mySketchType == DIR_DXDY_LENGTH ) { myDX = vx; myDY = vy; myRadius = vz; myLength = vs; + myDXStr = vxStr; + myDYStr = vyStr; + myRadiusStr = vzStr; + myLengthStr = vsStr; } } - GEOMBase_Helper::displayPreview(false, true, true, myLineWidth); + GEOMBase_Helper::displayPreview( false, true, true, myLineWidth ); } @@ -1275,95 +1189,108 @@ void EntityGUI_SketcherDlg::ValueChangedInSpinBox(double newValue) // function : GetNewCommand() // purpose : Build the new command with context //================================================================================= -QString EntityGUI_SketcherDlg::GetNewCommand() +QString EntityGUI_SketcherDlg::GetNewCommand( QString& theParameters ) { + theParameters.clear(); QString myNewCommand = ":"; if ( mySketchState == FIRST_POINT ) { - if ( mySketchType == PT_ABS || mySketchType == PT_SEL) - myNewCommand = myNewCommand + "F " + QString::number(myX) + " " + QString::number(myY); - if ( mySketchType == PT_RELATIVE) - myNewCommand = myNewCommand + "F " + QString::number(myDX) + " " + QString::number(myDY); + if ( mySketchType == PT_ABS || mySketchType == PT_SEL ) { + myNewCommand = myNewCommand + "F " + QString::number( myX ) + " " + QString::number( myY ); + theParameters = myXStr + ":" + myYStr; + } + if ( mySketchType == PT_RELATIVE) { + myNewCommand = myNewCommand + "F " + QString::number( myDX ) + " " + QString::number( myDY ); + theParameters = myDXStr + ":" + myDYStr; + } return myNewCommand; } - if ( myConstructorId == 0 ) - { // SEGMENT - if ( mySketchType == PT_ABS || mySketchType == PT_SEL) - myNewCommand = myNewCommand + "TT " + QString::number(myX) + " " + QString::number(myY); - if ( mySketchType == PT_RELATIVE) - myNewCommand = myNewCommand + "T " + QString::number(myDX) + " " + QString::number(myDY); - if ( mySketchType == DIR_ANGLE_LENGTH) - { - myNewCommand = myNewCommand + "R " + QString::number(myAngle); - myNewCommand = myNewCommand + ":" + "L " + QString::number(myLength); + if ( myConstructorId == 0 ) { // SEGMENT + if ( mySketchType == PT_ABS || mySketchType == PT_SEL ) { + myNewCommand = myNewCommand + "TT " + QString::number( myX ) + " " + QString::number( myY ); + theParameters = myXStr + ":" + myYStr; } - if ( mySketchType == DIR_ANGLE_X) - { - myNewCommand = myNewCommand + "R " + QString::number(myAngle); - myNewCommand = myNewCommand + ":" + "IX " + QString::number(myX); + if ( mySketchType == PT_RELATIVE) { + myNewCommand = myNewCommand + "T " + QString::number( myDX ) + " " + QString::number( myDY ); + theParameters = myDXStr + ":" + myDYStr; } - if ( mySketchType == DIR_ANGLE_Y) - { - myNewCommand = myNewCommand + "R " + QString::number(myAngle); - myNewCommand = myNewCommand + ":" + "IY " + QString::number(myY); + if ( mySketchType == DIR_ANGLE_LENGTH ) { + myNewCommand = myNewCommand + "R " + QString::number( myAngle ); + myNewCommand = myNewCommand + ":" + "L " + QString::number( myLength ); + theParameters = myAngleStr + ":" + myLengthStr; } - if ( mySketchType == DIR_PER_LENGTH) - { - myNewCommand = myNewCommand + "R " + QString::number(90.0); - myNewCommand = myNewCommand + ":" + "L " + QString::number(myLength); + if ( mySketchType == DIR_ANGLE_X ) { + myNewCommand = myNewCommand + "R " + QString::number( myAngle ); + myNewCommand = myNewCommand + ":" + "IX " + QString::number( myX ); + theParameters = myAngleStr + ":" + myXStr; } - if ( mySketchType == DIR_PER_X) - { - myNewCommand = myNewCommand + "R " + QString::number(90.0); - myNewCommand = myNewCommand + ":" + "IX " + QString::number(myX); + if ( mySketchType == DIR_ANGLE_Y ) { + myNewCommand = myNewCommand + "R " + QString::number( myAngle ); + myNewCommand = myNewCommand + ":" + "IY " + QString::number( myY ); + theParameters = myAngleStr + ":" + myYStr; } - if ( mySketchType == DIR_PER_Y) - { - myNewCommand = myNewCommand + "R " + QString::number(90.0); - myNewCommand = myNewCommand + ":" + "IY " + QString::number(myY); + if ( mySketchType == DIR_PER_LENGTH ) { + myNewCommand = myNewCommand + "R " + QString::number( 90.0 ); + myNewCommand = myNewCommand + ":" + "L " + QString::number( myLength ); + theParameters = QString::number( 90.0 ) + ":" + myLengthStr; } - if ( mySketchType == DIR_TAN_LENGTH) - myNewCommand = myNewCommand + "L " + QString::number(myLength); - if ( mySketchType == DIR_TAN_X) - myNewCommand = myNewCommand + "IX " + QString::number(myX); - if ( mySketchType == DIR_TAN_Y) + if ( mySketchType == DIR_PER_X ) { + myNewCommand = myNewCommand + "R " + QString::number( 90.0 ); + myNewCommand = myNewCommand + ":" + "IX " + QString::number( myX ); + theParameters = QString::number( 90.0 ) + ":" + myXStr; + } + if ( mySketchType == DIR_PER_Y ) { + myNewCommand = myNewCommand + "R " + QString::number( 90.0 ); + myNewCommand = myNewCommand + ":" + "IY " + QString::number( myY ); + theParameters = QString::number( 90.0 ) + ":" + myYStr; + } + if ( mySketchType == DIR_TAN_LENGTH ) { + myNewCommand = myNewCommand + "L " + QString::number( myLength ); + theParameters = myLengthStr; + } + if ( mySketchType == DIR_TAN_X ) { + myNewCommand = myNewCommand + "IX " + QString::number( myX ); + theParameters = myXStr; + } + if ( mySketchType == DIR_TAN_Y) { myNewCommand = myNewCommand + "IY " + QString::number(myY); - if ( mySketchType == DIR_DXDY_LENGTH) - { - myNewCommand = myNewCommand + "D " + QString::number(myDX) + " " + QString::number(myDY); - myNewCommand = myNewCommand + ":" + "L " + QString::number(myLength); + theParameters = myYStr; } - if ( mySketchType == DIR_DXDY_X) - { - myNewCommand = myNewCommand + "D " + QString::number(myDX) + " " + QString::number(myDY); - myNewCommand = myNewCommand + ":" + "IX " + QString::number(myX); + if ( mySketchType == DIR_DXDY_LENGTH ) { + myNewCommand = myNewCommand + "D " + QString::number( myDX ) + " " + QString::number( myDY ); + myNewCommand = myNewCommand + ":" + "L " + QString::number( myLength ); + theParameters = myDXStr + ":" + myDYStr + ":" + myLengthStr; } - if ( mySketchType == DIR_DXDY_Y) - { - myNewCommand = myNewCommand + "D " + QString::number(myDX) + " " + QString::number(myDY); - myNewCommand = myNewCommand + ":" + "IY " + QString::number(myY); + if ( mySketchType == DIR_DXDY_X ) { + myNewCommand = myNewCommand + "D " + QString::number( myDX ) + " " + QString::number( myDY ); + myNewCommand = myNewCommand + ":" + "IX " + QString::number( myX ); + theParameters = myDXStr + ":" + myDYStr + ":" + myXStr; + } + if ( mySketchType == DIR_DXDY_Y ) { + myNewCommand = myNewCommand + "D " + QString::number( myDX ) + " " + QString::number( myDY ); + myNewCommand = myNewCommand + ":" + "IY " + QString::number( myY ); + theParameters = myDXStr + ":" + myDYStr + ":" + myYStr; } } - else if ( myConstructorId == 1 ) - { // ARC - if ( mySketchType == DIR_ANGLE_LENGTH) - { - myNewCommand = myNewCommand + "R " + QString::number(myAngle); - myNewCommand = myNewCommand + ":" + "C " + QString::number(myRadius) + " " + QString::number(myLength); + else if ( myConstructorId == 1 ) { // ARC + if ( mySketchType == DIR_ANGLE_LENGTH ) { + myNewCommand = myNewCommand + "R " + QString::number( myAngle ); + myNewCommand = myNewCommand + ":" + "C " + QString::number( myRadius ) + " " + QString::number( myLength ); + theParameters = myAngleStr + ":" + myRadiusStr + ":" + myLengthStr; } - if ( mySketchType == DIR_PER_LENGTH) - { - myNewCommand = myNewCommand + "R " + QString::number(90.0); - myNewCommand = myNewCommand + ":" + "C " + QString::number(myRadius) + " " + QString::number(myLength); + if ( mySketchType == DIR_PER_LENGTH ) { + myNewCommand = myNewCommand + "R " + QString::number( 90.0 ); + myNewCommand = myNewCommand + ":" + "C " + QString::number( myRadius ) + " " + QString::number( myLength ); + theParameters = QString::number( 90.0 ) + ":" + myRadiusStr + ":" + myLengthStr; } - if ( mySketchType == DIR_TAN_LENGTH) - { - myNewCommand = myNewCommand + "C " + QString::number(myRadius) + " " + QString::number(myLength); + if ( mySketchType == DIR_TAN_LENGTH ) { + myNewCommand = myNewCommand + "C " + QString::number( myRadius ) + " " + QString::number( myLength ); + theParameters = myRadiusStr + ":" + myLengthStr; } - if ( mySketchType == DIR_DXDY_LENGTH) - { - myNewCommand = myNewCommand + "D " + QString::number(myDX) + " " + QString::number(myDY); - myNewCommand = myNewCommand + ":" + "C " + QString::number(myRadius) + " " + QString::number(myLength); + if ( mySketchType == DIR_DXDY_LENGTH ) { + myNewCommand = myNewCommand + "D " + QString::number( myDX ) + " " + QString::number( myDY ); + myNewCommand = myNewCommand + ":" + "C " + QString::number( myRadius ) + " " + QString::number( myLength ); + theParameters = myDXStr + ":" + myDYStr + ":" + myRadiusStr + ":" + myLengthStr; } } return myNewCommand; @@ -1384,7 +1311,32 @@ GEOM::GEOM_IOperations_ptr EntityGUI_SketcherDlg::createOperation() //================================================================================= bool EntityGUI_SketcherDlg::isValid( QString& msg ) { - return true; + bool ok = true; + bool toCorrect = !IsPreview() || myIsApply; + + if( Group1Spin->isVisible() ) { + ok = Group1Spin->SpinBox_DX->isValid( msg, toCorrect ) && ok; + } + else if( Group2Spin->isVisible() ) { + ok = Group2Spin->SpinBox_DX->isValid( msg, toCorrect ) && ok; + ok = Group2Spin->SpinBox_DY->isValid( msg, toCorrect ) && ok; + } + else if( Group3Spin->isVisible() ) { + ok = Group3Spin->SpinBox_DX->isValid( msg, toCorrect ) && ok; + ok = Group3Spin->SpinBox_DY->isValid( msg, toCorrect ) && ok; + ok = Group3Spin->SpinBox_DZ->isValid( msg, toCorrect ) && ok; + } + else if( Group4Spin->isVisible() ) { + ok = Group4Spin->SpinBox_DX->isValid( msg, toCorrect ) && ok; + ok = Group4Spin->SpinBox_DY->isValid( msg, toCorrect ) && ok; + ok = Group4Spin->SpinBox_DZ->isValid( msg, toCorrect ) && ok; + ok = Group4Spin->SpinBox_DS->isValid( msg, toCorrect ) && ok; + } + + if( myIsApply && !ok ) + showError( msg ); + + return ok; } //================================================================================= @@ -1393,7 +1345,9 @@ bool EntityGUI_SketcherDlg::isValid( QString& msg ) //================================================================================= bool EntityGUI_SketcherDlg::execute( ObjectList& objects ) { - if(mySketchState == FIRST_POINT) { + QString aParameters; + + if ( mySketchState == FIRST_POINT ) { myLastX2 = myX; myLastY2 = myY; } @@ -1403,17 +1357,17 @@ bool EntityGUI_SketcherDlg::execute( ObjectList& objects ) //Last Shape QString Command1 = myCommand.join( "" ); - Sketcher_Profile aProfile1 (Command1.ascii()); - if(aProfile1.IsDone()) + Sketcher_Profile aProfile1( Command1.toAscii() ); + if ( aProfile1.IsDone() ) myShape1 = aProfile1.GetShape(); //Current Shape - QString Command2 = Command1 + GetNewCommand(); - Sketcher_Profile aProfile2 (Command2.ascii()); - if(aProfile2.IsDone()) + QString Command2 = Command1 + GetNewCommand( aParameters ); + Sketcher_Profile aProfile2( Command2.toAscii() ); + if ( aProfile2.IsDone() ) myShape2 = aProfile2.GetShape(); - if(myShape2.IsNull()) { + if ( myShape2.IsNull() ) { //the current point is the same as the last one myLastX2 = myLastX1; myLastY2 = myLastY1; @@ -1421,79 +1375,79 @@ bool EntityGUI_SketcherDlg::execute( ObjectList& objects ) else { TopoDS_Vertex V1, V2; gp_Pnt pt; - if(myShape1.ShapeType() == TopAbs_VERTEX) { + if ( myShape1.ShapeType() == TopAbs_VERTEX ) { //the last shape is the first point - pt = BRep_Tool::Pnt(TopoDS::Vertex(myShape1)); + pt = BRep_Tool::Pnt( TopoDS::Vertex( myShape1 ) ); myLastX1 = pt.X(); myLastY1 = pt.Y(); } else { - TopExp::Vertices(TopoDS::Wire(myShape1), V1, V2); - pt = BRep_Tool::Pnt(V2); + TopExp::Vertices( TopoDS::Wire( myShape1 ), V1, V2 ); + pt = BRep_Tool::Pnt( V2 ); myLastX1 = pt.X(); myLastY1 = pt.Y(); } - TopExp::Vertices(TopoDS::Wire(myShape2), V1, V2); - pt = BRep_Tool::Pnt(V2); + TopExp::Vertices( TopoDS::Wire( myShape2 ), V1, V2 ); + pt = BRep_Tool::Pnt( V2 ); myLastX2 = pt.X(); myLastY2 = pt.Y(); } } QString cmd; - if( ( mySketchState != FIRST_POINT && - myLastX1 == myLastX2 && myLastY1 == myLastY2 ) || myIsAllAdded ) { + if ( ( mySketchState != FIRST_POINT && + myLastX1 == myLastX2 && myLastY1 == myLastY2 ) || myIsAllAdded ) { cmd = myCommand.join( "" ); if ( Group1Sel->isVisible() ) { - Group1Sel->buttonApply->setEnabled(false); + Group1Sel->buttonApply->setEnabled( false ); //Group1Sel->buttonApply->setFocus(); } if ( Group1Spin->isVisible() ) { - Group1Spin->buttonApply->setEnabled(false); + Group1Spin->buttonApply->setEnabled( false ); //Group1Spin->buttonApply->setFocus(); } if ( Group2Spin->isVisible() ) { - Group2Spin->buttonApply->setEnabled(false); + Group2Spin->buttonApply->setEnabled( false ); //Group2Spin->buttonApply->setFocus(); } if ( Group3Spin->isVisible() ) { - Group3Spin->buttonApply->setEnabled(false); + Group3Spin->buttonApply->setEnabled( false ); //Group3Spin->buttonApply->setFocus(); } if ( Group4Spin->isVisible() ) { - Group4Spin->buttonApply->setEnabled(false); + Group4Spin->buttonApply->setEnabled( false ); //Group4Spin->buttonApply->setFocus(); } } else { - cmd = myCommand.join( "" ) + GetNewCommand(); + cmd = myCommand.join( "" ) + GetNewCommand( aParameters ); if ( Group1Sel->isVisible() ) { - Group1Sel->buttonApply->setEnabled(true); + Group1Sel->buttonApply->setEnabled( true ); //Group1Sel->buttonApply->setFocus(); } if ( Group1Spin->isVisible() ) { - Group1Spin->buttonApply->setEnabled(true); + Group1Spin->buttonApply->setEnabled( true ); //Group1Spin->buttonApply->setFocus(); } if ( Group2Spin->isVisible() ) { - Group2Spin->buttonApply->setEnabled(true); + Group2Spin->buttonApply->setEnabled( true ); //Group2Spin->buttonApply->setFocus(); } if ( Group3Spin->isVisible() ) { - Group3Spin->buttonApply->setEnabled(true); + Group3Spin->buttonApply->setEnabled( true ); //Group3Spin->buttonApply->setFocus(); } if ( Group4Spin->isVisible() ) { - Group4Spin->buttonApply->setEnabled(true); + Group4Spin->buttonApply->setEnabled( true ); //Group4Spin->buttonApply->setFocus(); } } gp_Ax3 myWPlane = myGeometryGUI->GetWorkingPlane(); GEOM::ListOfDouble_var WPlane = new GEOM::ListOfDouble; - WPlane->length(9); + WPlane->length( 9 ); WPlane[0] = myWPlane.Location().X(); WPlane[1] = myWPlane.Location().Y(); WPlane[2] = myWPlane.Location().Z(); @@ -1507,10 +1461,18 @@ bool EntityGUI_SketcherDlg::execute( ObjectList& objects ) WPlane[8] = myWPlane.XDirection().Z(); GEOM::GEOM_Object_var anObj = - GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeSketcher( cmd.latin1(), WPlane ); + GEOM::GEOM_ICurvesOperations::_narrow( getOperation() )->MakeSketcher( cmd.toLatin1(), WPlane ); if ( !anObj->_is_nil() ) + { + if( !IsPreview() ) { + QStringList aCurrentParameters = myParameters; + aCurrentParameters << aParameters; + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aCurrentParameters)); + } + objects.push_back( anObj._retn() ); + } return true; } @@ -1524,7 +1486,9 @@ void EntityGUI_SketcherDlg::displayPreview( GEOM::GEOM_Object_ptr object, const bool append, const bool activate, const bool update, - const double lineWidth ) + const double lineWidth, + const int displayMode, + const int color ) { // Set color for preview shape getDisplayer()->SetColor( Quantity_NOC_RED ); @@ -1577,22 +1541,19 @@ bool EntityGUI_SketcherDlg::createShapes( GEOM::GEOM_Object_ptr theObject, Group1Spin->isVisible() && !Group1Spin->buttonApply->isEnabled() || Group2Spin->isVisible() && !Group2Spin->buttonApply->isEnabled() || Group3Spin->isVisible() && !Group3Spin->buttonApply->isEnabled() || - Group4Spin->isVisible() && !Group4Spin->buttonApply->isEnabled() ) - { + Group4Spin->isVisible() && !Group4Spin->buttonApply->isEnabled() ) { theApplyedWire = aShape; return true; } BRepBuilderAPI_MakeWire aBuilder; TopExp_Explorer anExp( aShape, TopAbs_EDGE ); - while( 1 ) - { + while ( 1 ) { TopoDS_Shape anEdge = anExp.Current(); anExp.Next(); if ( anExp.More() ) // i.e. non-last edge aBuilder.Add( TopoDS::Edge( anEdge ) ); - else - { + else { theLastSegment = anEdge; break; } @@ -1614,9 +1575,35 @@ void EntityGUI_SketcherDlg::keyPressEvent( QKeyEvent* e ) if ( e->isAccepted() ) return; - if ( e->key() == Key_F1 ) - { - e->accept(); - ClickOnHelp(); - } + if ( e->key() == Qt::Key_F1 ) { + e->accept(); + ClickOnHelp(); + } +} + +void EntityGUI_SketcherDlg::initSpinBox( SalomeApp_DoubleSpinBox* spinBox, + double min, double max, + double step, int decimals ) +{ + spinBox->setDecimals( decimals ); + spinBox->setRange( min, max ); + spinBox->setSingleStep( step ); +} + +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void EntityGUI_SketcherDlg::SetDoubleSpinBoxStep( double step ) +{ + Group1Spin->SpinBox_DX->setSingleStep(step); + Group2Spin->SpinBox_DX->setSingleStep(step); + Group2Spin->SpinBox_DY->setSingleStep(step); + Group3Spin->SpinBox_DX->setSingleStep(step); + Group3Spin->SpinBox_DY->setSingleStep(step); + Group3Spin->SpinBox_DZ->setSingleStep(step); + Group4Spin->SpinBox_DX->setSingleStep(step); + Group4Spin->SpinBox_DY->setSingleStep(step); + Group4Spin->SpinBox_DZ->setSingleStep(step); + Group4Spin->SpinBox_DS->setSingleStep(step); } diff --git a/src/EntityGUI/EntityGUI_SketcherDlg.h b/src/EntityGUI/EntityGUI_SketcherDlg.h index 64260b2ae..3a304abf1 100644 --- a/src/EntityGUI/EntityGUI_SketcherDlg.h +++ b/src/EntityGUI/EntityGUI_SketcherDlg.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,144 +19,159 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : EntityGUI_SketcherDlg.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : EntityGUI_SketcherDlg.h -// Author : Damine COQUERET -// Module : GEOM - #ifndef ENTITYGUI_SKETCHERDLG_H #define ENTITYGUI_SKETCHERDLG_H -#include "GEOM_EntityGUI.hxx" +#include -#include "GEOMBase_Helper.h" +#include -#include "EntityGUI_Skeleton_QTD.h" -#include "EntityGUI_Point_QTD.h" -#include "EntityGUI_Dir1_QTD.h" -#include "EntityGUI_Dir2_QTD.h" +class QLineEdit; +class SalomeApp_DoubleSpinBox; +class EntityGUI_1Sel; +class EntityGUI_1Spin; +class EntityGUI_2Spin; +class EntityGUI_3Spin; +class EntityGUI_4Spin; +class EntityGUI_Point; +class EntityGUI_Dir1; +class EntityGUI_Dir2; +class EntityGUI_Skeleton; +class GeometryGUI; -#include "EntityGUI_1Sel_QTD.h" -#include "EntityGUI_1Spin.h" -#include "EntityGUI_2Spin.h" -#include "EntityGUI_3Spin.h" -#include "EntityGUI_4Spin.h" - -#include "EntityGUI.h" -#include "GeometryGUI.h" - -#include - -#include -#include -#include -#include -#include -#include +#ifndef COORD_MIN +# define COORD_MIN -1e+15 +# define COORD_MAX +1e+15 +# define MAX_NUMBER 100000 +# define DBL_DIGITS_DISPLAY 16 +#endif // COORD_MIN //================================================================================= // class : EntityGUI_Dlg // purpose : //================================================================================= -class GEOM_ENTITYGUI_EXPORT EntityGUI_SketcherDlg : public EntityGUI_Skeleton_QTD, public GEOMBase_Helper +class EntityGUI_SketcherDlg : public QDialog, GEOMBase_Helper { - Q_OBJECT + Q_OBJECT public: - EntityGUI_SketcherDlg(GeometryGUI* GUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0, - const double lineWidth = 2.); - ~EntityGUI_SketcherDlg(); + EntityGUI_SketcherDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0, + const double = 2. ); + ~EntityGUI_SketcherDlg(); - bool eventFilter (QObject* object, QEvent* event); + bool eventFilter (QObject* object, QEvent* event); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); + void initSpinBox( SalomeApp_DoubleSpinBox*, + double, double, double = 0.1, + int = 3 ); - void closeEvent( QCloseEvent* e ); - void keyPressEvent( QKeyEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); -private : - void Init(); - void enterEvent(QEvent* e); - void InitClick(); - void setEnabledUndo(bool value); - void setEnabledRedo(bool value); + void closeEvent( QCloseEvent* ); + void keyPressEvent( QKeyEvent* ); - QString GetNewCommand(); +private: + void Init(); + void enterEvent( QEvent* ); + void InitClick(); + void setEnabledUndo( bool ); + void setEnabledRedo( bool ); + + QString GetNewCommand( QString& ); - int myConstructorId; - int myConstructorDirId; - int mySketchType; - int mySketchState; + virtual void displayPreview( GEOM::GEOM_Object_ptr, + const bool = false, + const bool = false, + const bool = true, + const double = -1, + const int = -1, + const int = -1); - bool myIsAllAdded; + bool createShapes( GEOM::GEOM_Object_ptr, + TopoDS_Shape&, + TopoDS_Shape& ); - QLineEdit* myEditCurrentArgument; /* Current LineEdit */ +private: + int myConstructorId; + int myConstructorDirId; + int mySketchType; + int mySketchState; - QStringList myCommand; - QStringList myUndoCommand; + bool myIsAllAdded; + bool myIsApply; - Standard_Real myX, myY, myDX, myDY; - Standard_Real myLength, myAngle, myRadius; - Standard_Real myLastX1, myLastY1; - Standard_Real myLastX2, myLastY2; + QLineEdit* myEditCurrentArgument; /* Current LineEdit */ - EntityGUI_Point_QTD* GroupPt; - EntityGUI_Dir1_QTD* GroupD1; - EntityGUI_Dir2_QTD* GroupD2; + QStringList myCommand; + QStringList myUndoCommand; - EntityGUI_1Sel_QTD* Group1Sel; - EntityGUI_1Spin* Group1Spin; - EntityGUI_2Spin* Group2Spin; - EntityGUI_3Spin* Group3Spin; - EntityGUI_4Spin* Group4Spin; + QStringList myParameters; + QStringList myUndoParameters; - GeometryGUI* myGeometryGUI; + Standard_Real myX, myY, myDX, myDY; + Standard_Real myLength, myAngle, myRadius; + Standard_Real myLastX1, myLastY1; + Standard_Real myLastX2, myLastY2; - QString myHelpFileName; + QString myXStr, myYStr, myDXStr, myDYStr; + QString myLengthStr, myAngleStr, myRadiusStr; + QString myLastX1Str, myLastY1Str; + QString myLastX2Str, myLastY2Str; - enum SketchState {FIRST_POINT, NEXT_POINT}; + EntityGUI_Skeleton* MainWidget; - enum SketchType {PT_ABS, PT_RELATIVE, PT_SEL, - DIR_ANGLE_LENGTH, DIR_ANGLE_X, DIR_ANGLE_Y, - DIR_PER_LENGTH, DIR_PER_X, DIR_PER_Y, - DIR_TAN_LENGTH, DIR_TAN_X, DIR_TAN_Y, - DIR_DXDY_LENGTH, DIR_DXDY_X, DIR_DXDY_Y}; + EntityGUI_Point* GroupPt; + EntityGUI_Dir1* GroupD1; + EntityGUI_Dir2* GroupD2; - double myLineWidth; - virtual void displayPreview ( GEOM::GEOM_Object_ptr obj, - const bool append = false, - const bool activate = false, - const bool update = true, - const double lineWidth = -1 ); + EntityGUI_1Sel* Group1Sel; + EntityGUI_1Spin* Group1Spin; + EntityGUI_2Spin* Group2Spin; + EntityGUI_3Spin* Group3Spin; + EntityGUI_4Spin* Group4Spin; - bool createShapes( GEOM::GEOM_Object_ptr theObject, - TopoDS_Shape& theApplyedWire, - TopoDS_Shape& theLastSegment ); + GeometryGUI* myGeometryGUI; + QString myHelpFileName; + + double myLineWidth; + +private: + enum SketchState { FIRST_POINT, NEXT_POINT }; + + enum SketchType { PT_ABS, PT_RELATIVE, PT_SEL, + DIR_ANGLE_LENGTH, DIR_ANGLE_X, DIR_ANGLE_Y, + DIR_PER_LENGTH, DIR_PER_X, DIR_PER_Y, + DIR_TAN_LENGTH, DIR_TAN_X, DIR_TAN_Y, + DIR_DXDY_LENGTH, DIR_DXDY_X, DIR_DXDY_Y }; + private slots: - void ClickOnEnd(); - void ClickOnCancel(); - bool ClickOnApply(); - void ClickOnUndo(); - void ClickOnRedo(); - void ClickOnHelp(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void DeactivateActiveDialog(); - void ActivateThisDialog(); - void TypeClicked(int constructorId); - void DestClicked(int constructorId); - void PointClicked(int constructorId); - void Dir1Clicked(int constructorId); - void Dir2Clicked(int constructorId); - void ValueChangedInSpinBox(double newValue); + void ClickOnEnd(); + void ClickOnCancel(); + bool ClickOnApply(); + void ClickOnUndo(); + void ClickOnRedo(); + void ClickOnHelp(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void DeactivateActiveDialog(); + void ActivateThisDialog(); + void TypeClicked( int ); + void DestClicked( int ); + void PointClicked( int ); + void Dir1Clicked( int ); + void Dir2Clicked( int ); + void ValueChangedInSpinBox( double ); + void SetDoubleSpinBoxStep( double ); }; #endif // ENTITYGUI_SKETCHERDLG_H diff --git a/src/EntityGUI/EntityGUI_SubShapeDlg.cxx b/src/EntityGUI/EntityGUI_SubShapeDlg.cxx index ae82cc4c1..af81a31bb 100644 --- a/src/EntityGUI/EntityGUI_SubShapeDlg.cxx +++ b/src/EntityGUI/EntityGUI_SubShapeDlg.cxx @@ -1,49 +1,49 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : EntityGUI_SubShapeDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : EntityGUI_SubShapeDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "EntityGUI_SubShapeDlg.h" -#include "GEOM_Displayer.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "OCCViewer_ViewModel.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SALOME_ListIteratorOfListIO.hxx" +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include -#include -#include -#include +#include //================================================================================= // class : EntityGUI_SubShapeDlg @@ -52,33 +52,40 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -EntityGUI_SubShapeDlg::EntityGUI_SubShapeDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, fl) +EntityGUI_SubShapeDlg::EntityGUI_SubShapeDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SUBSHAPE"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_SUBSHAPE" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_SUBSHAPE_TITLE")); + setWindowTitle( tr( "GEOM_SUBSHAPE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_SUB_SHAPE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_SUB_SHAPE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel1Check1List_QTD(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - GroupPoints->TextLabel1->setText(tr("GEOM_MAIN_OBJECT")); - GroupPoints->TextLabel2->setText(tr("GEOM_SUBSHAPE_TYPE")); - GroupPoints->CheckButton1->setText(tr("GEOM_SUBSHAPE_SELECT")); - GroupPoints->PushButton1->setPixmap(image1); + GroupPoints = new DlgRef_1Sel1Check1List( centralWidget() ); + + GroupPoints->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_MAIN_OBJECT" ) ); + GroupPoints->TextLabel2->setText( tr( "GEOM_SUBSHAPE_TYPE" ) ); + GroupPoints->CheckButton1->setText( tr( "GEOM_SUBSHAPE_SELECT" ) ); + GroupPoints->PushButton1->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupPoints, 1, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); /***************************************************************/ - setHelpFileName("create_explode_page.html"); + setHelpFileName( "create_explode_page.html" ); + + mainFrame()->GroupBoxName->hide(); Init(); } @@ -106,34 +113,34 @@ void EntityGUI_SubShapeDlg::Init() myWithShape = true; /* type for sub shape selection */ - GroupPoints->ComboBox1->insertItem("Compound"); - GroupPoints->ComboBox1->insertItem("Compsolid"); - GroupPoints->ComboBox1->insertItem("Solid"); - GroupPoints->ComboBox1->insertItem("Shell"); - GroupPoints->ComboBox1->insertItem("Face"); - GroupPoints->ComboBox1->insertItem("Wire"); - GroupPoints->ComboBox1->insertItem("Edge"); - GroupPoints->ComboBox1->insertItem("Vertex"); - GroupPoints->ComboBox1->insertItem("Shape"); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Compound" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Compsolid" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Solid" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Shell" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Face" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Wire" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Edge" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Vertex" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Shape" ); - if (SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() - != OCCViewer_Viewer::Type()) - GroupPoints->CheckButton1->setEnabled(false); + if ( SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() + != OCCViewer_Viewer::Type() ) + GroupPoints->CheckButton1->setEnabled( false ); /* signals and slots connections */ - connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(GroupPoints->ComboBox1, SIGNAL(activated(int)), this, SLOT(ComboTextChanged())); - connect(GroupPoints->CheckButton1, SIGNAL(stateChanged(int)), this, SLOT(SubShapeToggled())); + connect( GroupPoints->ComboBox1, SIGNAL( activated( int ) ), this, SLOT( ComboTextChanged() ) ); + connect( GroupPoints->CheckButton1, SIGNAL( stateChanged( int ) ), this, SLOT( SubShapeToggled() ) ); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged( )), this, SLOT( SelectionIntoArgument() ) ); updateButtonState(); @@ -158,19 +165,19 @@ void EntityGUI_SubShapeDlg::ClickOnOk() //================================================================================= bool EntityGUI_SubShapeDlg::ClickOnApply() { - SUIT_Session::session()->activeApplication()->putInfo(tr("")); - + SUIT_Session::session()->activeApplication()->putInfo( "" ); + /* Explode all sub shapes */ - if( isAllSubShapes() ) { + if ( isAllSubShapes() ) { /* More than 30 subshapes : ask confirmation */ - unsigned int nb = NumberOfSubShapes(myShape, shapeType()); - if(nb > 30) { - const QString caption = tr("GEOM_CONFIRM"); - const QString text = tr("GEOM_CONFIRM_INFO").arg(nb); - const QString button0 = tr("GEOM_BUT_EXPLODE"); - const QString button1 = tr("GEOM_BUT_CANCEL"); + unsigned int nb = NumberOfSubShapes( myShape, shapeType() ); + if ( nb > 30 ) { + const QString caption = tr( "GEOM_CONFIRM" ); + const QString text = tr( "GEOM_CONFIRM_INFO" ).arg( nb ); + const QString button0 = tr( "GEOM_BUT_EXPLODE" ); + const QString button1 = tr( "GEOM_BUT_CANCEL" ); - if(QMessageBox::warning(this, caption, text, button0, button1) != 0) + if ( QMessageBox::warning( this, caption, text, button0, button1 ) != 0 ) return false; /* aborted */ } } @@ -191,78 +198,73 @@ bool EntityGUI_SubShapeDlg::ClickOnApply() //================================================================================= void EntityGUI_SubShapeDlg::SelectionIntoArgument() { - if ( !isAllSubShapes() ) + if (!isAllSubShapes()) return; ResetStateOfDialog(); QString aString = ""; /* name of selection */ - int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString, true ); - if( nbSel != 1 ) + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString, true); + if (nbSel != 1) return; TopoDS_Shape S; - Handle(SALOME_InteractiveObject) IO = firstIObject(); - if ( !IO->hasEntry() ) - { + Handle(SALOME_InteractiveObject) IO = aSelList.First(); + if ( !IO->hasEntry() ) { SUIT_Session::session()->activeApplication()->putInfo( tr( "GEOM_PRP_SHAPE_IN_STUDY" ) ); updateButtonState(); return; } - if ( !GEOMBase::GetTopoFromSelection( selectedIO(), S ) || - S.IsNull() || - S.ShapeType() == TopAbs_VERTEX ) - { + if (!GEOMBase::GetTopoFromSelection(aSelList, S) || + S.IsNull() || + S.ShapeType() == TopAbs_VERTEX) { + myObject = GEOM::GEOM_Object::_nil(); updateButtonState(); return; } - Standard_Boolean testResult; - myObject = GEOMBase::ConvertIOinGEOMObject( IO, testResult ); - if ( !testResult || myObject->_is_nil() ) - { + myObject = GEOMBase::ConvertIOinGEOMObject(IO, testResult); + if (!testResult || myObject->_is_nil()) { updateButtonState(); return; } myShape = S; - GroupPoints->LineEdit1->setText( aString ); + GroupPoints->LineEdit1->setText(aString); - - int SelectedShapeType = GroupPoints->ComboBox1->currentItem(); + int SelectedShapeType = GroupPoints->ComboBox1->currentIndex(); int count = GroupPoints->ComboBox1->count(); - if ( myWithShape ) + if (myWithShape) count = count - 1; int i = 0; // Solving PAL5590 - if ( myShape.ShapeType() == TopAbs_COMPOUND ) { + if (myShape.ShapeType() == TopAbs_COMPOUND) { unsigned int nb = NumberOfSubShapes(myShape, TopAbs_COMPOUND); - if (nb > 0) + if ( nb > 0 ) i++; } - while ( i <= myShape.ShapeType()) - { - GroupPoints->ComboBox1->removeItem( 0 ); + while (i <= myShape.ShapeType()) { + GroupPoints->ComboBox1->removeItem(0); i++; } - if ( myShape.ShapeType() == TopAbs_COMPOUND ) - { - if ( myWithShape == false ) - { - GroupPoints->ComboBox1->insertItem( "Shape" ); + if (myShape.ShapeType() == TopAbs_COMPOUND) { + if (myWithShape == false) { + GroupPoints->ComboBox1->insertItem(GroupPoints->ComboBox1->count(), "Shape"); myWithShape = true; } } - else - { - if ( myWithShape == true ) - { + else { + if ( myWithShape == true ) { GroupPoints->ComboBox1->removeItem( GroupPoints->ComboBox1->count() - 1 ); myWithShape = false; } @@ -272,22 +274,18 @@ void EntityGUI_SubShapeDlg::SelectionIntoArgument() if ( myWithShape ) count1 = count1 - 1; - if ( SelectedShapeType > myShape.ShapeType() ) - { - if ( SelectedShapeType == 8 ) - { - if ( myShape.ShapeType() != TopAbs_COMPOUND ) - { - GroupPoints->ComboBox1->setCurrentItem( 0 ); + if ( SelectedShapeType > myShape.ShapeType() ) { + if ( SelectedShapeType == 8 ) { + if ( myShape.ShapeType() != TopAbs_COMPOUND ) { + GroupPoints->ComboBox1->setCurrentIndex( 0 ); ComboTextChanged(); } } else - GroupPoints->ComboBox1->setCurrentItem(count1 - count + SelectedShapeType); + GroupPoints->ComboBox1->setCurrentIndex( count1 - count + SelectedShapeType ); } - else - { - GroupPoints->ComboBox1->setCurrentItem( 0 ); + else { + GroupPoints->ComboBox1->setCurrentIndex( 0 ); ComboTextChanged(); } @@ -303,8 +301,8 @@ void EntityGUI_SubShapeDlg::SetEditCurrentArgument() { GroupPoints->LineEdit1->setFocus(); myEditCurrentArgument = GroupPoints->LineEdit1; - - GroupPoints->CheckButton1->setChecked( FALSE ); + + GroupPoints->CheckButton1->setChecked( false ); SubShapeToggled(); SelectionIntoArgument(); } @@ -315,9 +313,9 @@ void EntityGUI_SubShapeDlg::SetEditCurrentArgument() // purpose : //================================================================================= void EntityGUI_SubShapeDlg::LineEditReturnPressed() -{ +{ QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1) + if ( send == GroupPoints->LineEdit1 ) SetEditCurrentArgument(); else return; @@ -332,7 +330,7 @@ void EntityGUI_SubShapeDlg::LineEditReturnPressed() //================================================================================= void EntityGUI_SubShapeDlg::DeactivateActiveDialog() { - if (GroupConstructors->isEnabled()) { + if ( mainFrame()->GroupConstructors->isEnabled() ) { GEOMBase_Skeleton::DeactivateActiveDialog(); } } @@ -345,8 +343,8 @@ void EntityGUI_SubShapeDlg::DeactivateActiveDialog() void EntityGUI_SubShapeDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); SubShapeToggled(); updateButtonState(); } @@ -356,9 +354,9 @@ void EntityGUI_SubShapeDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void EntityGUI_SubShapeDlg::enterEvent(QEvent* e) +void EntityGUI_SubShapeDlg::enterEvent( QEvent* ) { - if (!GroupConstructors->isEnabled()) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -370,28 +368,28 @@ void EntityGUI_SubShapeDlg::ResetStateOfDialog() { myObject = GEOM::GEOM_Object::_nil(); myShape.Nullify(); - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); - int SelectedShapeType = GroupPoints->ComboBox1->currentItem(); + int SelectedShapeType = GroupPoints->ComboBox1->currentIndex(); int count = GroupPoints->ComboBox1->count(); if ( myWithShape ) count = count - 1; /* type for sub shape selection */ GroupPoints->ComboBox1->clear(); - GroupPoints->ComboBox1->insertItem("Compound"); - GroupPoints->ComboBox1->insertItem("Compsolid"); - GroupPoints->ComboBox1->insertItem("Solid"); - GroupPoints->ComboBox1->insertItem("Shell"); - GroupPoints->ComboBox1->insertItem("Face"); - GroupPoints->ComboBox1->insertItem("Wire"); - GroupPoints->ComboBox1->insertItem("Edge"); - GroupPoints->ComboBox1->insertItem("Vertex"); - GroupPoints->ComboBox1->insertItem("Shape"); - + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Compound" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Compsolid" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Solid" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Shell" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Face" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Wire" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Edge" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Vertex" ); + GroupPoints->ComboBox1->insertItem( GroupPoints->ComboBox1->count(), "Shape" ); + myWithShape = true; - - GroupPoints->ComboBox1->setCurrentItem( 8 - count + SelectedShapeType ); + + GroupPoints->ComboBox1->setCurrentIndex( 8 - count + SelectedShapeType ); ComboTextChanged(); updateButtonState(); @@ -414,13 +412,13 @@ void EntityGUI_SubShapeDlg::SubShapeToggled() //================================================================================= // function : ComboTextChanged() -// purpose : +// purpose : //================================================================================= void EntityGUI_SubShapeDlg::ComboTextChanged() { /* Select sub shapes mode not checked */ updateButtonState(); - SubShapeToggled(); + SubShapeToggled(); } @@ -428,32 +426,33 @@ void EntityGUI_SubShapeDlg::ComboTextChanged() // function : NumberOfSubShapes() // purpose : //================================================================================= -unsigned int EntityGUI_SubShapeDlg::NumberOfSubShapes (const TopoDS_Shape& S, - const int shapeType) const +unsigned int EntityGUI_SubShapeDlg::NumberOfSubShapes( const TopoDS_Shape& S, + const int shapeType ) const { - if (S.IsNull()) + if ( S.IsNull() ) return 0; unsigned int index = 0; TopTools_MapOfShape M; - if (S.ShapeType() == TopAbs_COMPOUND && - (TopAbs_ShapeEnum(shapeType) == TopAbs_SHAPE || - TopAbs_ShapeEnum(shapeType) == TopAbs_COMPSOLID || - TopAbs_ShapeEnum(shapeType) == TopAbs_COMPOUND)) { - TopoDS_Iterator It (S, Standard_True, Standard_True); - for (; It.More(); It.Next()) { - if (M.Add(It.Value())) { - if (TopAbs_ShapeEnum(shapeType) == TopAbs_SHAPE || - TopAbs_ShapeEnum(shapeType) == It.Value().ShapeType()) { + if ( S.ShapeType() == TopAbs_COMPOUND && + ( TopAbs_ShapeEnum(shapeType) == TopAbs_SHAPE || + TopAbs_ShapeEnum(shapeType) == TopAbs_COMPSOLID || + TopAbs_ShapeEnum(shapeType) == TopAbs_COMPOUND ) ) { + TopoDS_Iterator It( S, Standard_True, Standard_True ); + for ( ; It.More(); It.Next() ) { + if ( M.Add( It.Value() ) ) { + if ( TopAbs_ShapeEnum( shapeType ) == TopAbs_SHAPE || + TopAbs_ShapeEnum( shapeType ) == It.Value().ShapeType() ) { index++; } } } - } else { - TopExp_Explorer Exp (S, TopAbs_ShapeEnum(shapeType)); - for (; Exp.More(); Exp.Next()) { - if (M.Add(Exp.Current())) { + } + else { + TopExp_Explorer Exp ( S, TopAbs_ShapeEnum( shapeType ) ); + for ( ; Exp.More(); Exp.Next() ) { + if ( M.Add( Exp.Current() ) ) { index++; } } @@ -471,11 +470,11 @@ void EntityGUI_SubShapeDlg::updateButtonState() { if ( SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() != OCCViewer_Viewer::Type() || myObject->_is_nil() || shapeType() == TopAbs_SHAPE || shapeType() == TopAbs_COMPOUND ) { - GroupPoints->CheckButton1->setChecked( FALSE ); - GroupPoints->CheckButton1->setEnabled( FALSE ); + GroupPoints->CheckButton1->setChecked( false ); + GroupPoints->CheckButton1->setEnabled( false ); } else - GroupPoints->CheckButton1->setEnabled( TRUE ); + GroupPoints->CheckButton1->setEnabled( true ); } //================================================================================= @@ -493,15 +492,15 @@ bool EntityGUI_SubShapeDlg::isAllSubShapes() const //================================================================================= int EntityGUI_SubShapeDlg::shapeType() const { - int type = GroupPoints->ComboBox1->currentItem(); + int type = GroupPoints->ComboBox1->currentIndex(); - if (myObject->_is_nil()) + if ( myObject->_is_nil() ) return type; // Solving PAL5590 type += myShape.ShapeType() + 1; - if (myShape.ShapeType() == TopAbs_COMPOUND && - NumberOfSubShapes(myShape, TopAbs_COMPOUND) > 0) { + if ( myShape.ShapeType() == TopAbs_COMPOUND && + NumberOfSubShapes( myShape, TopAbs_COMPOUND ) > 0 ) { type--; } @@ -521,33 +520,35 @@ GEOM::GEOM_IOperations_ptr EntityGUI_SubShapeDlg::createOperation() // function : isValid // purpose : //================================================================================= -bool EntityGUI_SubShapeDlg::isValid( QString& msg ) +bool EntityGUI_SubShapeDlg::isValid (QString& msg) { bool isOk = false; - Handle(SALOME_InteractiveObject) IO = firstIObject(); - Standard_Boolean testResult; - myObject = GEOMBase::ConvertIOinGEOMObject( IO, testResult ); - if ( !testResult || myObject->_is_nil() ) { + + if (myObject->_is_nil()) { updateButtonState(); return isOk; } - if ( !myObject->_is_nil() ) { - if ( isAllSubShapes() ) - isOk = true; - else if ( IObjectCount() == 1 ) { - Standard_Boolean aResult = Standard_False; - GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult ); - if ( aResult && !anObj->_is_nil() ) { - TColStd_IndexedMapOfInteger aMapIndex; - myGeomGUI->getApp()->selectionMgr()->GetIndexes( firstIObject(), aMapIndex ); - isOk = aMapIndex.Extent() > 0; - if ( !isOk ) - msg += tr( "NO_SUBSHAPES_SELECTED" ); + if (isAllSubShapes()) + isOk = true; + else { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() == 1) { + Standard_Boolean testResult; + GEOM::GEOM_Object_var anObj = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (testResult && !anObj->_is_nil()) { + TColStd_IndexedMapOfInteger aMapIndex; + aSelMgr->GetIndexes(aSelList.First(), aMapIndex); + isOk = aMapIndex.Extent() > 0; + if (!isOk) + msg += tr("NO_SUBSHAPES_SELECTED"); } } } + return isOk; } @@ -555,40 +556,43 @@ bool EntityGUI_SubShapeDlg::isValid( QString& msg ) // function : execute // purpose : //================================================================================= -bool EntityGUI_SubShapeDlg::execute( ObjectList& objects ) +bool EntityGUI_SubShapeDlg::execute (ObjectList& objects) { - GEOM::ListOfGO_var aList = GEOM::GEOM_IShapesOperations::_narrow( - getOperation() )->MakeExplode( myObject, shapeType(), true ); + GEOM::ListOfGO_var aList = GEOM::GEOM_IShapesOperations::_narrow(getOperation())-> + MakeExplode(myObject, shapeType(), true); - if ( !aList->length() ) + if (!aList->length()) return false; - // Throw away sub-shapes not selected by user if not in preview mode + // Throw away sub-shapes not selected by user if not in preview mode // and manual selection is active - if ( !isAllSubShapes() ) - { - if ( IObjectCount() == 1 ) { + if (!isAllSubShapes()) { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() == 1) { Standard_Boolean aResult = Standard_False; GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); - if ( aResult && !anObj->_is_nil() ) { + if (aResult && !anObj->_is_nil()) { TColStd_IndexedMapOfInteger aMapIndex; - myGeomGUI->getApp()->selectionMgr()->GetIndexes( firstIObject(), aMapIndex ); + aSelMgr->GetIndexes(aSelList.First(), aMapIndex); - GEOM::GEOM_ILocalOperations_var aLocOp = - getGeomEngine()->GetILocalOperations( getStudyId() ); + GEOM::GEOM_ILocalOperations_var aLocOp = + getGeomEngine()->GetILocalOperations(getStudyId()); - for ( int i = 0, n = aList->length(); i < n; i++ ) - if ( aMapIndex.Contains( aLocOp->GetSubShapeIndex( myObject, aList[i] ) ) ) - objects.push_back( GEOM::GEOM_Object::_duplicate( aList[i] ) ); + for (int i = 0, n = aList->length(); i < n; i++) + if (aMapIndex.Contains(aLocOp->GetSubShapeIndex(myObject, aList[i]))) + objects.push_back(GEOM::GEOM_Object::_duplicate(aList[i])); } } } else - for ( int i = 0, n = aList->length(); i < n; i++ ) - objects.push_back( GEOM::GEOM_Object::_duplicate( aList[i] ) ); - + for (int i = 0, n = aList->length(); i < n; i++) + objects.push_back(GEOM::GEOM_Object::_duplicate(aList[i])); + return objects.size(); } @@ -602,7 +606,7 @@ GEOM::GEOM_Object_ptr EntityGUI_SubShapeDlg::getFather( GEOM::GEOM_Object_ptr ) return myObject; } -const char* EntityGUI_SubShapeDlg::getNewObjectName() const +QString EntityGUI_SubShapeDlg::getNewObjectName() const { - return ""; + return QString::null; } diff --git a/src/EntityGUI/EntityGUI_SubShapeDlg.h b/src/EntityGUI/EntityGUI_SubShapeDlg.h index 5d70497e9..6dbd0cb8f 100644 --- a/src/EntityGUI/EntityGUI_SubShapeDlg.h +++ b/src/EntityGUI/EntityGUI_SubShapeDlg.h @@ -1,92 +1,86 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : EntityGUI_SubShapeDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : EntityGUI_SubShapeDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef ENTITYGUI_SUBSHAPEDLG_H +#define ENTITYGUI_SUBSHAPEDLG_H -#ifndef DIALOGBOX_SUBSHAPE_H -#define DIALOGBOX_SUBSHAPE_H - -#include "GEOM_EntityGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel1Check1List_QTD.h" +#include +class DlgRef_1Sel1Check1List; //================================================================================= // class : EntityGUI_SubShapeDlg // purpose : //================================================================================= -class GEOM_ENTITYGUI_EXPORT EntityGUI_SubShapeDlg : public GEOMBase_Skeleton +class EntityGUI_SubShapeDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - EntityGUI_SubShapeDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~EntityGUI_SubShapeDlg(); + EntityGUI_SubShapeDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~EntityGUI_SubShapeDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual GEOM::GEOM_Object_ptr getFather( GEOM::GEOM_Object_ptr theObj ); - virtual const char* getNewObjectName() const; + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual GEOM::GEOM_Object_ptr getFather( GEOM::GEOM_Object_ptr ); + virtual QString getNewObjectName() const; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void DeactivateActiveDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void SubShapeToggled(); - void ComboTextChanged(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void DeactivateActiveDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void SubShapeToggled(); + void ComboTextChanged(); -private : - void Init(); - void enterEvent( QEvent* e ); +private: + void Init(); + void enterEvent( QEvent* ); - void ResetStateOfDialog(); - unsigned int NumberOfSubShapes (const TopoDS_Shape& S, - const int shapeType) const; + void ResetStateOfDialog(); + unsigned int NumberOfSubShapes( const TopoDS_Shape&, + const int ) const; - void updateButtonState(); - bool isAllSubShapes() const; - int shapeType() const; + void updateButtonState(); + bool isAllSubShapes() const; + int shapeType() const; private: - - TopoDS_Shape myShape; - GEOM::GEOM_Object_var myObject; - - bool myWithShape; - - DlgRef_1Sel1Check1List_QTD* GroupPoints; - ObjectList myResult; + TopoDS_Shape myShape; + GEOM::GEOM_Object_var myObject; + + bool myWithShape; + + DlgRef_1Sel1Check1List* GroupPoints; + ObjectList myResult; }; -#endif // DIALOGBOX_SUBSHAPE_H +#endif // ENTITYGUI_SUBSHAPEDLG_H diff --git a/src/EntityGUI/EntityGUI_Widgets.cxx b/src/EntityGUI/EntityGUI_Widgets.cxx new file mode 100644 index 000000000..663d80d7e --- /dev/null +++ b/src/EntityGUI/EntityGUI_Widgets.cxx @@ -0,0 +1,173 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : EntityGUI_Widgets.cxx +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +// +#include "EntityGUI_Widgets.h" +#include + +////////////////////////////////////////// +// EntityGUI_1Sel +////////////////////////////////////////// + +EntityGUI_1Sel::EntityGUI_1Sel( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +EntityGUI_1Sel::~EntityGUI_1Sel() +{ +} + +////////////////////////////////////////// +// EntityGUI_1Spin +////////////////////////////////////////// + +EntityGUI_1Spin::EntityGUI_1Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +EntityGUI_1Spin::~EntityGUI_1Spin() +{ +} + +////////////////////////////////////////// +// EntityGUI_2Spin +////////////////////////////////////////// + +EntityGUI_2Spin::EntityGUI_2Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +EntityGUI_2Spin::~EntityGUI_2Spin() +{ +} + +////////////////////////////////////////// +// EntityGUI_3Spin +////////////////////////////////////////// + +EntityGUI_3Spin::EntityGUI_3Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +EntityGUI_3Spin::~EntityGUI_3Spin() +{ +} + +////////////////////////////////////////// +// EntityGUI_4Spin +////////////////////////////////////////// + +EntityGUI_4Spin::EntityGUI_4Spin( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +EntityGUI_4Spin::~EntityGUI_4Spin() +{ +} + +////////////////////////////////////////// +// EntityGUI_Dir1 +////////////////////////////////////////// + +EntityGUI_Dir1::EntityGUI_Dir1( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); + + ButtonGroup = new QButtonGroup( this ); + ButtonGroup->addButton( RB_Dir11, 2 ); + ButtonGroup->addButton( RB_Dir12, 0 ); + ButtonGroup->addButton( RB_Dir13, 1 ); + ButtonGroup->addButton( RB_Dir14, 3 ); +} + +EntityGUI_Dir1::~EntityGUI_Dir1() +{ +} + +////////////////////////////////////////// +// EntityGUI_Dir2 +////////////////////////////////////////// + +EntityGUI_Dir2::EntityGUI_Dir2( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); + + ButtonGroup = new QButtonGroup( this ); + ButtonGroup->addButton( RB_Dir21, 2 ); + ButtonGroup->addButton( RB_Dir22, 0 ); + ButtonGroup->addButton( RB_Dir23, 1 ); +} + +EntityGUI_Dir2::~EntityGUI_Dir2() +{ +} + +////////////////////////////////////////// +// EntityGUI_Point +////////////////////////////////////////// + +EntityGUI_Point::EntityGUI_Point( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); + + ButtonGroup = new QButtonGroup( this ); + ButtonGroup->addButton( RB_Point1, 1 ); + ButtonGroup->addButton( RB_Point2, 0 ); + ButtonGroup->addButton( RB_Point3, 2 ); +} + +EntityGUI_Point::~EntityGUI_Point() +{ +} + +////////////////////////////////////////// +// EntityGUI_Skeleton +////////////////////////////////////////// + +EntityGUI_Skeleton::EntityGUI_Skeleton( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); + + ButtonGroup = new QButtonGroup( this ); + ButtonGroup->addButton( RadioButton1, 0 ); + ButtonGroup->addButton( RadioButton2, 1 ); +} + +EntityGUI_Skeleton::~EntityGUI_Skeleton() +{ +} + diff --git a/src/EntityGUI/EntityGUI_Widgets.h b/src/EntityGUI/EntityGUI_Widgets.h new file mode 100644 index 000000000..40cc20ed7 --- /dev/null +++ b/src/EntityGUI/EntityGUI_Widgets.h @@ -0,0 +1,182 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : EntityGUI_Widgets.h +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +// +#ifndef ENTITYGUI_WIDGETS_H +#define ENTITYGUI_WIDGETS_H + +////////////////////////////////////////// +// EntityGUI_1Sel +////////////////////////////////////////// + +#include "ui_EntityGUI_1Sel_QTD.h" + +class EntityGUI_1Sel : public QWidget, + public Ui::EntityGUI_1Sel_QTD +{ + Q_OBJECT + +public: + EntityGUI_1Sel( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_1Sel(); +}; + +////////////////////////////////////////// +// EntityGUI_1Spin +////////////////////////////////////////// + +#include "ui_EntityGUI_1Spin_QTD.h" + +class EntityGUI_1Spin : public QWidget, + public Ui::EntityGUI_1Spin_QTD +{ + Q_OBJECT + +public: + EntityGUI_1Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_1Spin(); +}; + +////////////////////////////////////////// +// EntityGUI_2Spin +////////////////////////////////////////// + +#include "ui_EntityGUI_2Spin_QTD.h" + +class EntityGUI_2Spin : public QWidget, + public Ui::EntityGUI_2Spin_QTD +{ + Q_OBJECT + +public: + EntityGUI_2Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_2Spin(); +}; + +////////////////////////////////////////// +// EntityGUI_3Spin +////////////////////////////////////////// + +#include "ui_EntityGUI_3Spin_QTD.h" + +class EntityGUI_3Spin : public QWidget, + public Ui::EntityGUI_3Spin_QTD +{ + Q_OBJECT + +public: + EntityGUI_3Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_3Spin(); +}; + +////////////////////////////////////////// +// EntityGUI_4Spin +////////////////////////////////////////// + +#include "ui_EntityGUI_4Spin_QTD.h" + +class EntityGUI_4Spin : public QWidget, + public Ui::EntityGUI_4Spin_QTD +{ + Q_OBJECT + +public: + EntityGUI_4Spin( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_4Spin(); +}; + +////////////////////////////////////////// +// EntityGUI_Dir1 +////////////////////////////////////////// + +#include "ui_EntityGUI_Dir1_QTD.h" + +class EntityGUI_Dir1 : public QWidget, + public Ui::EntityGUI_Dir1_QTD +{ + Q_OBJECT + +public: + EntityGUI_Dir1( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_Dir1(); + + QButtonGroup* ButtonGroup; +}; + +////////////////////////////////////////// +// EntityGUI_Dir2 +////////////////////////////////////////// + +#include "ui_EntityGUI_Dir2_QTD.h" + +class EntityGUI_Dir2 : public QWidget, + public Ui::EntityGUI_Dir2_QTD +{ + Q_OBJECT + +public: + EntityGUI_Dir2( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_Dir2(); + + QButtonGroup* ButtonGroup; +}; + +////////////////////////////////////////// +// EntityGUI_Point +////////////////////////////////////////// + +#include "ui_EntityGUI_Point_QTD.h" + +class EntityGUI_Point : public QWidget, + public Ui::EntityGUI_Point_QTD +{ + Q_OBJECT + +public: + EntityGUI_Point( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_Point(); + + QButtonGroup* ButtonGroup; +}; + +////////////////////////////////////////// +// EntityGUI_Skeleton +////////////////////////////////////////// + +#include "ui_EntityGUI_Skeleton_QTD.h" + +class QButtonGroup; + +class EntityGUI_Skeleton : public QWidget, + public Ui::EntityGUI_Skeleton_QTD +{ + Q_OBJECT + +public: + EntityGUI_Skeleton( QWidget* = 0, Qt::WindowFlags = 0 ); + ~EntityGUI_Skeleton(); + + QButtonGroup* ButtonGroup; +}; + +#endif // ENTITYGUI_WIDGETS_H diff --git a/src/EntityGUI/GEOM_EntityGUI.hxx b/src/EntityGUI/GEOM_EntityGUI.hxx deleted file mode 100755 index 2a42f3423..000000000 --- a/src/EntityGUI/GEOM_EntityGUI.hxx +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : GEOM_EntityGUI.hxx -// Author : Alexander A. BORODIN -// Module : GEOM - -#ifndef _GEOM_EntityGUI_HXX_ -#define _GEOM_EntityGUI_HXX_ - -#ifdef WNT - #if defined ENTITYGUI_EXPORTS - #if defined WIN32 - #define GEOM_ENTITYGUI_EXPORT __declspec( dllexport ) - #else - #define GEOM_ENTITYGUI_EXPORT - #endif - #else - #if defined WIN32 - #define GEOM_ENTITYGUI_EXPORT __declspec( dllimport ) - #else - #define GEOM_ENTITYGUI_EXPORT - #endif - #endif -#else - #define GEOM_ENTITYGUI_EXPORT -#endif - -#endif diff --git a/src/EntityGUI/Makefile.am b/src/EntityGUI/Makefile.am index 2afe2a1a2..f54555614 100644 --- a/src/EntityGUI/Makefile.am +++ b/src/EntityGUI/Makefile.am @@ -1,110 +1,100 @@ -# GEOM ENTITYGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM ENTITYGUI : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : EntityGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libEntityGUI.la # header files -salomeinclude_HEADERS = \ - GEOM_EntityGUI.hxx +salomeinclude_HEADERS = \ + EntityGUI.h \ + EntityGUI_Widgets.h \ + EntityGUI_SketcherDlg.h \ + EntityGUI_3DSketcherDlg.h \ + EntityGUI_SubShapeDlg.h -dist_libEntityGUI_la_SOURCES = EntityGUI.cxx \ - EntityGUI_Skeleton_QTD.cxx \ - EntityGUI_Point_QTD.cxx \ - EntityGUI_Dir1_QTD.cxx \ - EntityGUI_Dir2_QTD.cxx \ - EntityGUI_1Sel_QTD.cxx \ - EntityGUI_1Spin_QTD.cxx \ - EntityGUI_2Spin_QTD.cxx \ - EntityGUI_3Spin_QTD.cxx \ - EntityGUI_4Spin_QTD.cxx \ - EntityGUI_1Spin.cxx \ - EntityGUI_2Spin.cxx \ - EntityGUI_3Spin.cxx \ - EntityGUI_4Spin.cxx \ - EntityGUI_SketcherDlg.cxx \ +dist_libEntityGUI_la_SOURCES = \ + EntityGUI.cxx \ + EntityGUI_Widgets.cxx \ + EntityGUI_SketcherDlg.cxx \ + EntityGUI_3DSketcherDlg.cxx \ EntityGUI_SubShapeDlg.cxx -MOC_FILES = \ - EntityGUI_Skeleton_QTD_moc.cxx \ - EntityGUI_Point_QTD_moc.cxx \ - EntityGUI_Dir1_QTD_moc.cxx \ - EntityGUI_Dir2_QTD_moc.cxx \ - EntityGUI_1Sel_QTD_moc.cxx \ - EntityGUI_1Spin_QTD_moc.cxx \ - EntityGUI_2Spin_QTD_moc.cxx \ - EntityGUI_3Spin_QTD_moc.cxx \ - EntityGUI_4Spin_QTD_moc.cxx \ - EntityGUI_1Spin_moc.cxx \ - EntityGUI_2Spin_moc.cxx \ - EntityGUI_3Spin_moc.cxx \ - EntityGUI_4Spin_moc.cxx \ - EntityGUI_SketcherDlg_moc.cxx \ +MOC_FILES = \ + EntityGUI_Widgets_moc.cxx \ + EntityGUI_SketcherDlg_moc.cxx \ + EntityGUI_3DSketcherDlg_moc.cxx \ EntityGUI_SubShapeDlg_moc.cxx -nodist_libEntityGUI_la_SOURCES= \ +nodist_libEntityGUI_la_SOURCES = \ $(MOC_FILES) -# LIB_CLIENT_IDL = SALOME_Exception.idl SALOME_GenericObj.idl SALOME_Component.idl +UIC_FILES = \ + ui_EntityGUI_1Sel_QTD.h \ + ui_EntityGUI_1Spin_QTD.h \ + ui_EntityGUI_2Spin_QTD.h \ + ui_EntityGUI_3Spin_QTD.h \ + ui_EntityGUI_4Spin_QTD.h \ + ui_EntityGUI_Dir1_QTD.h \ + ui_EntityGUI_Dir2_QTD.h \ + ui_EntityGUI_Point_QTD.h \ + ui_EntityGUI_Skeleton_QTD.h -# LIB_SERVER_IDL = +BUILT_SOURCES = $(UIC_FILES) -# additionnal information to compil and link file +# additional information to compile and link file -libEntityGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(VTK_INCLUDES) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMFiltersSelection \ - -I$(srcdir)/../SKETCHER \ - -I$(top_builddir)/idl \ +libEntityGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(VTK_INCLUDES) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMFiltersSelection \ + -I$(srcdir)/../SKETCHER \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libEntityGUI_la_LDFLAGS = \ - ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ - ../GEOMBase/libGEOMBase.la \ - ../SKETCHER/libGEOMSketcher.la \ - ../GEOMGUI/libGEOM.la \ - $(QT_MT_LIBS) \ +libEntityGUI_la_LDFLAGS = \ + ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ + ../GEOMBase/libGEOMBase.la \ + ../SKETCHER/libGEOMSketcher.la \ + ../GEOMGUI/libGEOM.la \ + $(QT_MT_LIBS) \ $(CAS_TKTopAlgo) -lTKernel diff --git a/src/EntityGUI/UIFiles/EntityGUI_1Sel_QTD.ui b/src/EntityGUI/UIFiles/EntityGUI_1Sel_QTD.ui deleted file mode 100644 index c88df1ae6..000000000 --- a/src/EntityGUI/UIFiles/EntityGUI_1Sel_QTD.ui +++ /dev/null @@ -1,218 +0,0 @@ - -EntityGUI_1Sel_QTD - - - EntityGUI_1Sel_QTD - - - - 0 - 0 - 329 - 112 - - - - EntityGUI_1Sel_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - Values - - - - unnamed - - - 11 - - - 6 - - - - Layout4 - - - - unnamed - - - 0 - - - 6 - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 163 - - - - - - buttonApply - - - Create - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - buttonRedo - - - Redo - - - - - buttonUndo - - - Undo - - - - - - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 180 - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit1 - - - - 3 - 0 - 0 - 0 - - - - - - - - - - - - - - diff --git a/src/EntityGUI/UIFiles/EntityGUI_1Spin_QTD.ui b/src/EntityGUI/UIFiles/EntityGUI_1Spin_QTD.ui deleted file mode 100644 index e1d0a7151..000000000 --- a/src/EntityGUI/UIFiles/EntityGUI_1Spin_QTD.ui +++ /dev/null @@ -1,201 +0,0 @@ - -EntityGUI_1Spin_QTD - - - EntityGUI_1Spin_QTD - - - - 0 - 0 - 255 - 112 - - - - EntityGUI_1Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - Values - - - - unnamed - - - 11 - - - 6 - - - - Layout4 - - - - unnamed - - - 0 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 82 - - - - - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - buttonRedo - - - Redo - - - - - buttonUndo - - - Undo - - - - - - - buttonApply - - - Create - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 40 - - - - - - - - - - - - - diff --git a/src/EntityGUI/UIFiles/EntityGUI_2Spin_QTD.ui b/src/EntityGUI/UIFiles/EntityGUI_2Spin_QTD.ui deleted file mode 100644 index 938383c07..000000000 --- a/src/EntityGUI/UIFiles/EntityGUI_2Spin_QTD.ui +++ /dev/null @@ -1,230 +0,0 @@ - -EntityGUI_2Spin_QTD - - - EntityGUI_2Spin_QTD - - - - 0 - 0 - 255 - 112 - - - - EntityGUI_2Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - Values - - - - unnamed - - - 11 - - - 6 - - - - Layout4 - - - - unnamed - - - 0 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 82 - - - - - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 51 - - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - buttonUndo - - - Undo - - - - - buttonRedo - - - Redo - - - - - - - buttonApply - - - Create - - - - - - - - - - - - diff --git a/src/EntityGUI/UIFiles/EntityGUI_3Spin_QTD.ui b/src/EntityGUI/UIFiles/EntityGUI_3Spin_QTD.ui deleted file mode 100644 index c094d5791..000000000 --- a/src/EntityGUI/UIFiles/EntityGUI_3Spin_QTD.ui +++ /dev/null @@ -1,259 +0,0 @@ - -EntityGUI_3Spin_QTD - - - EntityGUI_3Spin_QTD - - - - 0 - 0 - 255 - 125 - - - - EntityGUI_3Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - Values - - - - unnamed - - - 11 - - - 6 - - - - Layout4 - - - - unnamed - - - 0 - - - 6 - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - buttonApply - - - Create - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 121 - - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - buttonUndo - - - Undo - - - - - buttonRedo - - - Redo - - - - - - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 82 - - - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - - - - - - - - diff --git a/src/EntityGUI/UIFiles/EntityGUI_4Spin_QTD.ui b/src/EntityGUI/UIFiles/EntityGUI_4Spin_QTD.ui deleted file mode 100644 index 956ce0d1b..000000000 --- a/src/EntityGUI/UIFiles/EntityGUI_4Spin_QTD.ui +++ /dev/null @@ -1,288 +0,0 @@ - -EntityGUI_4Spin_QTD - - - EntityGUI_4Spin_QTD - - - - 0 - 0 - 255 - 154 - - - - EntityGUI_4Spin_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - Values - - - - unnamed - - - 11 - - - 6 - - - - Layout4 - - - - unnamed - - - 0 - - - 6 - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - buttonRedo - - - Redo - - - - - buttonUndo - - - Undo - - - - - - - Spacer5 - - - Vertical - - - Expanding - - - - 0 - 45 - - - - - - buttonApply - - - Create - - - - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - SpinBox3 - - - - 7 - 0 - 0 - 0 - - - - - - SpinBox2 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - Spacer1 - - - Vertical - - - Expanding - - - - 0 - 70 - - - - - - SpinBox4 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - SpinBox1 - - - - 7 - 0 - 0 - 0 - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - - - - - - - - diff --git a/src/EntityGUI/UIFiles/EntityGUI_Dir1_QTD.ui b/src/EntityGUI/UIFiles/EntityGUI_Dir1_QTD.ui deleted file mode 100644 index 59f644641..000000000 --- a/src/EntityGUI/UIFiles/EntityGUI_Dir1_QTD.ui +++ /dev/null @@ -1,112 +0,0 @@ - -EntityGUI_Dir1_QTD - - - EntityGUI_Dir1_QTD - - - - 0 - 0 - 131 - 123 - - - - EntityGUI_Dir1_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupDir1 - - - - 7 - 0 - 0 - 0 - - - - Direction - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - RB_Dir12 - - - Perpendicular - - - - - RB_Dir13 - - - Tangent - - - - - RB_Dir11 - - - Angle - - - - - RB_Dir14 - - - VX-VY - - - - - - - - - - RB_Dir11 - RB_Dir12 - RB_Dir13 - RB_Dir14 - - - diff --git a/src/EntityGUI/UIFiles/EntityGUI_Dir2_QTD.ui b/src/EntityGUI/UIFiles/EntityGUI_Dir2_QTD.ui deleted file mode 100644 index 617d3c3f6..000000000 --- a/src/EntityGUI/UIFiles/EntityGUI_Dir2_QTD.ui +++ /dev/null @@ -1,120 +0,0 @@ - -EntityGUI_Dir2_QTD - - - EntityGUI_Dir2_QTD - - - - 0 - 0 - 124 - 106 - - - - EntityGUI_Dir2_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupDir2 - - - - 7 - 7 - 0 - 0 - - - - Direction - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - RB_Dir22 - - - X - - - - - RB_Dir23 - - - Y - - - - - Spacer4 - - - Vertical - - - Expanding - - - - 0 - 20 - - - - - - RB_Dir21 - - - Length - - - - - - - - - - RB_Dir21 - RB_Dir22 - RB_Dir23 - - - diff --git a/src/EntityGUI/UIFiles/EntityGUI_Point_QTD.ui b/src/EntityGUI/UIFiles/EntityGUI_Point_QTD.ui deleted file mode 100644 index 8e0bd22ad..000000000 --- a/src/EntityGUI/UIFiles/EntityGUI_Point_QTD.ui +++ /dev/null @@ -1,103 +0,0 @@ - -EntityGUI_Point_QTD - - - EntityGUI_Point_QTD - - - - 0 - 0 - 124 - 106 - - - - EntityGUI_Point_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupPoint - - - - 7 - 0 - 0 - 0 - - - - Point - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - RB_Point2 - - - Relative - - - - - RB_Point1 - - - Absolute - - - - - RB_Point3 - - - Selection - - - - - - - - - - RB_Point1 - RB_Point2 - RB_Point3 - - - diff --git a/src/EntityGUI/UIFiles/EntityGUI_Skeleton_QTD.ui b/src/EntityGUI/UIFiles/EntityGUI_Skeleton_QTD.ui deleted file mode 100644 index cdcd86400..000000000 --- a/src/EntityGUI/UIFiles/EntityGUI_Skeleton_QTD.ui +++ /dev/null @@ -1,278 +0,0 @@ - -EntityGUI_Skeleton_QTD - - - EntityGUI_Skeleton_QTD - - - - 0 - 0 - 317 - 276 - - - - - 5 - 7 - 0 - 0 - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - GroupConstructors - - - - 5 - 0 - 0 - 0 - - - - - unnamed - - - 11 - - - 6 - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - RadioButton1 - - - - - RadioButton2 - - - - - - - - - GroupDest - - - - 7 - 0 - 0 - 0 - - - - - unnamed - - - 11 - - - 6 - - - - Layout5 - - - - unnamed - - - 0 - - - 6 - - - - GroupDest1 - - - - 7 - 0 - 0 - 0 - - - - - unnamed - - - 11 - - - 6 - - - - Layout4 - - - - unnamed - - - 0 - - - 6 - - - - RB_Dest2 - - - - - RB_Dest1 - - - - - - - - - - - - - GroupButtons - - - - 7 - 0 - 0 - 0 - - - - - unnamed - - - 11 - - - 6 - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - buttonEnd - - - - - buttonClose - - - - - Spacer1 - - - Horizontal - - - Expanding - - - - 91 - 0 - - - - - - buttonCancel - - - - - buttonHelp - - - - - - - - - - - - RadioButton1 - RadioButton2 - RB_Dest1 - RB_Dest2 - buttonEnd - buttonClose - buttonCancel - - - diff --git a/src/EntityGUI/UIFiles/ui_to_cxx b/src/EntityGUI/UIFiles/ui_to_cxx deleted file mode 100755 index 13bc0ac3d..000000000 --- a/src/EntityGUI/UIFiles/ui_to_cxx +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -#!/bin/sh - -uic -o EntityGUI_Skeleton_QTD.h EntityGUI_Skeleton_QTD.ui -uic -o EntityGUI_Skeleton_QTD.cxx -impl EntityGUI_Skeleton_QTD.h EntityGUI_Skeleton_QTD.ui - -uic -o EntityGUI_Point_QTD.h EntityGUI_Point_QTD.ui -uic -o EntityGUI_Point_QTD.cxx -impl EntityGUI_Point_QTD.h EntityGUI_Point_QTD.ui - -uic -o EntityGUI_Dir1_QTD.h EntityGUI_Dir1_QTD.ui -uic -o EntityGUI_Dir1_QTD.cxx -impl EntityGUI_Dir1_QTD.h EntityGUI_Dir1_QTD.ui - -uic -o EntityGUI_Dir2_QTD.h EntityGUI_Dir2_QTD.ui -uic -o EntityGUI_Dir2_QTD.cxx -impl EntityGUI_Dir2_QTD.h EntityGUI_Dir2_QTD.ui - -uic -o EntityGUI_1Spin_QTD.h EntityGUI_1Spin_QTD.ui -uic -o EntityGUI_1Spin_QTD.cxx -impl EntityGUI_1Spin_QTD.h EntityGUI_1Spin_QTD.ui - -uic -o EntityGUI_2Spin_QTD.h EntityGUI_2Spin_QTD.ui -uic -o EntityGUI_2Spin_QTD.cxx -impl EntityGUI_2Spin_QTD.h EntityGUI_2Spin_QTD.ui - -uic -o EntityGUI_3Spin_QTD.h EntityGUI_3Spin_QTD.ui -uic -o EntityGUI_3Spin_QTD.cxx -impl EntityGUI_3Spin_QTD.h EntityGUI_3Spin_QTD.ui - -uic -o EntityGUI_4Spin_QTD.h EntityGUI_4Spin_QTD.ui -uic -o EntityGUI_4Spin_QTD.cxx -impl EntityGUI_4Spin_QTD.h EntityGUI_4Spin_QTD.ui - -uic -o EntityGUI_1Sel_QTD.h EntityGUI_1Sel_QTD.ui -uic -o EntityGUI_1Sel_QTD.cxx -impl EntityGUI_1Sel_QTD.h EntityGUI_1Sel_QTD.ui diff --git a/src/GEOM/GEOM.pro b/src/GEOM/GEOM.pro new file mode 100644 index 000000000..5de328db0 --- /dev/null +++ b/src/GEOM/GEOM.pro @@ -0,0 +1,82 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GEOMbasic +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$${CASROOT}/Linux/lib + +CAS_OCAF = -L$${CASROOT}/Linux/lib -lPTKernel -lTKernel -lTKCDF -lTKLCAF -lTKPCAF -lTKStdSchema + +CAS_OCAFVIS = -L$${CASROOT}/Linux/lib -lTKCAF -lStdPlugin -lStdLPlugin -lTKPLCAF -lTKPShape -lTKStdLSchema -lTKShapeSchema + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} $${BOOST_CPPFLAGS} ../../salome_adm/unix + +LIBS += $${KERNEL_LDFLAGS} -lSALOMELocalTrace $${STDLIB} $${CAS_LDPATH} -lTKXSBase $${CAS_OCAF} $${CAS_OCAFVIS} + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +HEADERS = GEOM_Application.hxx +HEADERS += Handle_GEOM_Application.hxx +HEADERS += GEOM_Engine.hxx +HEADERS += GEOM_Function.hxx +HEADERS += GEOM_Object.hxx +HEADERS += GEOM_IOperations.hxx +HEADERS += GEOM_ISubShape.hxx +HEADERS += GEOM_Solver.hxx +HEADERS += GEOM_PythonDump.hxx +HEADERS += GEOM_DataMapOfAsciiStringTransient.hxx +HEADERS += Handle_GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx + +SOURCES = GEOM_Application.cxx +SOURCES += GEOM_Engine.cxx +SOURCES += GEOM_Function.cxx +SOURCES += GEOM_Object.cxx +SOURCES += GEOM_IOperations.cxx +SOURCES += GEOM_Solver.cxx +SOURCES += GEOM_SubShapeDriver.cxx +SOURCES += GEOM_PythonDump.cxx +SOURCES += GEOM_DataMapNodeOfDataMapOfAsciiStringTransient_0.cxx +SOURCES += GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient_0.cxx +SOURCES += GEOM_DataMapOfAsciiStringTransient_0.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/GEOM/GEOM_Application.cxx b/src/GEOM/GEOM_Application.cxx index 6ecba8d6b..4de898cb4 100644 --- a/src/GEOM/GEOM_Application.cxx +++ b/src/GEOM/GEOM_Application.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOM/GEOM_Application.hxx b/src/GEOM/GEOM_Application.hxx index b6aef4b28..119f84d95 100644 --- a/src/GEOM/GEOM_Application.hxx +++ b/src/GEOM/GEOM_Application.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOM_Application.hxx // Module : GEOM - +// #ifndef _GEOM_Application_HeaderFile #define _GEOM_Application_HeaderFile diff --git a/src/GEOM/GEOM_Application.ixx b/src/GEOM/GEOM_Application.ixx index 5f26e54c6..8a2c33ff7 100644 --- a/src/GEOM/GEOM_Application.ixx +++ b/src/GEOM/GEOM_Application.ixx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOM_Application.ixx // Module : GEOM - +// #include "GEOM_Application.jxx" #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOM/GEOM_Application.jxx b/src/GEOM/GEOM_Application.jxx index 9056b0445..87ed25a97 100644 --- a/src/GEOM/GEOM_Application.jxx +++ b/src/GEOM/GEOM_Application.jxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOM_Application.jxx // Module : GEOM - +// #ifndef _TColStd_SequenceOfExtendedString_HeaderFile #include #endif diff --git a/src/GEOM/GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient.hxx b/src/GEOM/GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient.hxx index 54b02b9fe..1d590cd26 100644 --- a/src/GEOM/GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient.hxx +++ b/src/GEOM/GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient_HeaderFile #define _GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient_HeaderFile diff --git a/src/GEOM/GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient_0.cxx b/src/GEOM/GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient_0.cxx index 18ec2e283..9bc173990 100644 --- a/src/GEOM/GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient_0.cxx +++ b/src/GEOM/GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient_0.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/GEOM/GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx b/src/GEOM/GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx index 3fd6bb480..f63d23b3b 100644 --- a/src/GEOM/GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx +++ b/src/GEOM/GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_DataMapNodeOfDataMapOfAsciiStringTransient_HeaderFile #define _GEOM_DataMapNodeOfDataMapOfAsciiStringTransient_HeaderFile diff --git a/src/GEOM/GEOM_DataMapNodeOfDataMapOfAsciiStringTransient_0.cxx b/src/GEOM/GEOM_DataMapNodeOfDataMapOfAsciiStringTransient_0.cxx index 18471f8b5..7dbb47f54 100644 --- a/src/GEOM/GEOM_DataMapNodeOfDataMapOfAsciiStringTransient_0.cxx +++ b/src/GEOM/GEOM_DataMapNodeOfDataMapOfAsciiStringTransient_0.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOM/GEOM_DataMapOfAsciiStringTransient.hxx b/src/GEOM/GEOM_DataMapOfAsciiStringTransient.hxx index 0abffeee0..1b4a70d4c 100644 --- a/src/GEOM/GEOM_DataMapOfAsciiStringTransient.hxx +++ b/src/GEOM/GEOM_DataMapOfAsciiStringTransient.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_DataMapOfAsciiStringTransient_HeaderFile #define _GEOM_DataMapOfAsciiStringTransient_HeaderFile diff --git a/src/GEOM/GEOM_DataMapOfAsciiStringTransient_0.cxx b/src/GEOM/GEOM_DataMapOfAsciiStringTransient_0.cxx index 11ecc03f5..4245895b5 100644 --- a/src/GEOM/GEOM_DataMapOfAsciiStringTransient_0.cxx +++ b/src/GEOM/GEOM_DataMapOfAsciiStringTransient_0.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOM/GEOM_Engine.cxx b/src/GEOM/GEOM_Engine.cxx index 335f53435..67658d480 100644 --- a/src/GEOM/GEOM_Engine.cxx +++ b/src/GEOM/GEOM_Engine.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifdef WNT #pragma warning( disable:4786 ) @@ -34,6 +36,7 @@ #include #include +#include #include #include #include @@ -52,14 +55,31 @@ #include #include +#include #include #include +#include #include #include // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC +#define COMMA ',' +#define O_BRACKET '(' +#define C_BRACKET ')' +#define O_SQR_BRACKET '[' +#define C_SQR_BRACKET ']' +#define PY_NULL "None" + +#ifdef _DEBUG_ +static int MYDEBUG = 0; +#else +static int MYDEBUG = 0; +#endif + static GEOM_Engine* TheEngine = NULL; +using namespace std; + static TCollection_AsciiString BuildIDFromObject(Handle(GEOM_Object)& theObject) { TCollection_AsciiString anID(theObject->GetDocID()), anEntry; @@ -82,12 +102,20 @@ static Standard_Integer ExtractDocID(TCollection_AsciiString& theID) return aDocID.IntegerValue(); } -void ProcessFunction(Handle(GEOM_Function)& theFunction, - TCollection_AsciiString& theScript, - TColStd_MapOfTransient& theProcessed); +void ProcessFunction(Handle(GEOM_Function)& theFunction, + TCollection_AsciiString& theScript, + const TVariablesList& theVariables, + TDF_LabelMap& theProcessed, + std::set& theDumpedObjs); + +void ReplaceVariables(TCollection_AsciiString& theCommand, + const TVariablesList& theVariables); + + Handle(TColStd_HSequenceOfInteger) FindEntries(TCollection_AsciiString& theString); + //============================================================================= /*! * GetEngine @@ -95,7 +123,6 @@ Handle(TColStd_HSequenceOfInteger) FindEntries(TCollection_AsciiString& theStrin //============================================================================= GEOM_Engine* GEOM_Engine::GetEngine() { return TheEngine; } - //============================================================================= /*! * SetEngine @@ -120,9 +147,9 @@ GEOM_Engine::GEOM_Engine() * Destructor */ GEOM_Engine::~GEOM_Engine() -{ +{ GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient It(_objects); - for(; It.More(); It.Next()) + for(; It.More(); It.Next()) { RemoveObject(Handle(GEOM_Object)::DownCast(It.Value())); } @@ -229,9 +256,9 @@ Handle(GEOM_Object) GEOM_Engine::AddObject(int theDocID, int theType) * AddSubShape */ //============================================================================= -Handle(GEOM_Object) GEOM_Engine::AddSubShape(Handle(GEOM_Object) theMainShape, - Handle(TColStd_HArray1OfInteger) theIndices, - bool isStandaloneOperation) +Handle(GEOM_Object) GEOM_Engine::AddSubShape(Handle(GEOM_Object) theMainShape, + Handle(TColStd_HArray1OfInteger) theIndices, + bool isStandaloneOperation) { if(theMainShape.IsNull() || theIndices.IsNull()) return NULL; @@ -284,7 +311,7 @@ Handle(GEOM_Object) GEOM_Engine::AddSubShape(Handle(GEOM_Object) theMainShape, _objects.Bind(anID, anObject); GEOM::TPythonDump pd (aFunction); - + if (isStandaloneOperation) { pd << anObject << " = geompy.GetSubShape(" << theMainShape << ", ["; Standard_Integer i = theIndices->Lower(), up = theIndices->Upper(); @@ -316,7 +343,7 @@ bool GEOM_Engine::RemoveObject(Handle(GEOM_Object) theObject) Handle(TDataStd_TreeNode) aNode; for (int i = 1; i<=nb; i++) { Handle(GEOM_Function) aFunction = theObject->GetFunction(i); - if (aFunction->GetEntry().FindAttribute(GEOM_Function::GetFunctionTreeID(), aNode)) + if (aFunction->GetEntry().FindAttribute(GEOM_Function::GetFunctionTreeID(), aNode)) aNode->Remove(); } @@ -419,38 +446,40 @@ void GEOM_Engine::Close(int theDocID) * DumpPython */ //============================================================================= -TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID, - Resource_DataMapOfAsciiStringAsciiString& theObjectNames, - bool isPublished, - bool& aValidScript) +TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID, + Resource_DataMapOfAsciiStringAsciiString& theObjectNames, + TVariablesList theVariables, + bool isPublished, + bool& aValidScript) { TCollection_AsciiString aScript; Handle(TDocStd_Document) aDoc = GetDocument(theDocID); - - if(aDoc.IsNull()) return TCollection_AsciiString("def RebuildData(theStudy): pass\n"); - - aScript = "import geompy\n"; + + if (aDoc.IsNull()) return TCollection_AsciiString("def RebuildData(theStudy): pass\n"); + + aScript = "import geompy\n"; aScript += "import math\n"; aScript += "import SALOMEDS\n\n"; aScript += "def RebuildData(theStudy):"; aScript += "\n\tgeompy.init_geom(theStudy)"; - - Standard_Integer posToInertGlobalVars = aScript.Length() + 1; + + Standard_Integer posToInsertGlobalVars = aScript.Length() + 1; Handle(TDataStd_TreeNode) aNode, aRoot; Handle(GEOM_Function) aFunction; - TColStd_MapOfTransient aMap; + TDF_LabelMap aCheckedFuncMap; + std::set anIgnoreObjMap; - if(aDoc->Main().FindAttribute(GEOM_Function::GetFunctionTreeID(), aRoot)) { + if (aDoc->Main().FindAttribute(GEOM_Function::GetFunctionTreeID(), aRoot)) { TDataStd_ChildNodeIterator Itr(aRoot); - for(; Itr.More(); Itr.Next()) { + for (; Itr.More(); Itr.Next()) { aNode = Itr.Value(); aFunction = GEOM_Function::GetFunction(aNode->Label()); - if(aFunction.IsNull()) { - cout << "Null function !!!!" << endl; - continue; + if (aFunction.IsNull()) { + MESSAGE ( "Null function !!!!" ); + continue; } - ProcessFunction(aFunction, aScript, aMap); + ProcessFunction(aFunction, aScript, theVariables, aCheckedFuncMap, anIgnoreObjMap); } } @@ -482,12 +511,12 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID, //Replace entries by the names TCollection_AsciiString anUpdatedScript, anEntry, aName, aBaseName("geomObj_"), allowedChars ("qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0987654321_"); - if(aLen == 0) anUpdatedScript = aScript; + if (aLen == 0) anUpdatedScript = aScript; - for(Standard_Integer i = 1; i <= aLen; i+=2) { + for (Standard_Integer i = 1; i <= aLen; i+=2) { anUpdatedScript += aScript.SubString(aStart, aSeq->Value(i)-1); anEntry = aScript.SubString(aSeq->Value(i), aSeq->Value(i+1)); - if(theObjectNames.IsBound(anEntry)) { + if (theObjectNames.IsBound(anEntry)) { aName = theObjectNames.Find(anEntry); // check validity of aName bool isValidName = true; @@ -530,8 +559,9 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID, } //Add final part of the script - if(aLen && aSeq->Value(aLen) < aScriptLength) anUpdatedScript += aScript.SubString(aSeq->Value(aLen)+1, aScriptLength); // mkr : IPAL11865 - + if (aLen && aSeq->Value(aLen) < aScriptLength) + anUpdatedScript += aScript.SubString(aSeq->Value(aLen)+1, aScriptLength); // mkr : IPAL11865 + // ouv : NPAL12872 for (anEntryToNameIt.Initialize( theObjectNames ); anEntryToNameIt.More(); @@ -576,6 +606,8 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID, { const TCollection_AsciiString& aEntry = anEntryToNameIt.Key(); const TCollection_AsciiString& aName = anEntryToNameIt.Value(); + if (anIgnoreObjMap.count(aEntry.ToCString())) + continue; // should not be dumped if ( !aEntry2StEntry.IsBound( aEntry )) continue; // was not published TCollection_AsciiString aCommand("\n\tgeompy."), aFatherEntry; @@ -596,7 +628,7 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID, aCommand += "addToStudy( "; if ( anEntryToBadName.IsBound( aEntry )) aCommand += aName + ", \"" + anEntryToBadName( aEntry ) + "\" )"; - else + else aCommand += aName + ", \"" + aName + "\" )"; // bind a command to the last digit of the entry @@ -612,7 +644,8 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID, } } - anUpdatedScript += "\n\tpass\n"; + //anUpdatedScript += "\n\tpass\n"; + anUpdatedScript += "\n"; aValidScript = true; // fill _studyEntry2NameMap and build globalVars @@ -631,15 +664,15 @@ TCollection_AsciiString GEOM_Engine::DumpPython(int theDocID, } if ( !globalVars.IsEmpty() ) { globalVars.Insert( 1, "\n\tglobal " ); - anUpdatedScript.Insert( posToInertGlobalVars, globalVars ); + anUpdatedScript.Insert( posToInsertGlobalVars, globalVars ); } - + return anUpdatedScript; } //======================================================================= //function : GetDumpName -//purpose : +//purpose : //======================================================================= const char* GEOM_Engine::GetDumpName (const char* theStudyEntry) const @@ -652,7 +685,7 @@ const char* GEOM_Engine::GetDumpName (const char* theStudyEntry) const //======================================================================= //function : GetAllDumpNames -//purpose : +//purpose : //======================================================================= Handle(TColStd_HSequenceOfAsciiString) GEOM_Engine::GetAllDumpNames() const @@ -671,36 +704,66 @@ Handle(TColStd_HSequenceOfAsciiString) GEOM_Engine::GetAllDumpNames() const //=========================================================================== // Internal functions //=========================================================================== -void ProcessFunction(Handle(GEOM_Function)& theFunction, - TCollection_AsciiString& theScript, - TColStd_MapOfTransient& theProcessed) +void ProcessFunction(Handle(GEOM_Function)& theFunction, + TCollection_AsciiString& theScript, + const TVariablesList& theVariables, + TDF_LabelMap& theProcessed, + std::set& theIgnoreObjs) { - if(theFunction.IsNull() || theProcessed.Contains(theFunction)) return; + if (theFunction.IsNull()) return; -/* + // not to process twice + if (theProcessed.Contains(theFunction->GetEntry())) return; + theProcessed.Add(theFunction->GetEntry()); + + // pass functions, that depends on nonexisting ones + bool doNotProcess = false; TDF_LabelSequence aSeq; theFunction->GetDependency(aSeq); Standard_Integer aLen = aSeq.Length(); - for(Standard_Integer i = 1; i<= aLen; i++) { - Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction(aSeq.Value(i)); - if(aFunction.IsNull()) continue; - ProcessFunction(aFunction, theScript, theProcessed); - } -*/ + for (Standard_Integer i = 1; i <= aLen && !doNotProcess; i++) { + TDF_Label aRefLabel = aSeq.Value(i); + Handle(TDF_Reference) aRef; + if (!aRefLabel.FindAttribute(TDF_Reference::GetID(), aRef)) { + doNotProcess = true; + } + else { + if (aRef.IsNull() || aRef->Get().IsNull()) { + doNotProcess = true; + } + else { + Handle(TDataStd_TreeNode) aT; + if (!TDataStd_TreeNode::Find(aRef->Get(), aT)) { + doNotProcess = true; + } + else { + TDF_Label aDepLabel = aT->Label(); + Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction(aDepLabel); - TCollection_AsciiString aDescr = theFunction->GetDescription(); - if(aDescr.Length() == 0) { - //cout << "Warning: the function has no description" << endl; + if (aFunction.IsNull()) doNotProcess = true; + else if (!theProcessed.Contains(aDepLabel)) doNotProcess = true; + } + } + } + } + + if (doNotProcess) { + TCollection_AsciiString anObjEntry; + TDF_Tool::Entry(theFunction->GetOwnerEntry(), anObjEntry); + theIgnoreObjs.insert(anObjEntry.ToCString()); return; } + + TCollection_AsciiString aDescr = theFunction->GetDescription(); + if(aDescr.Length() == 0) return; + //Check if its internal function which doesn't requires dumping if(aDescr == "None") return; + //Replace parameter by notebook variables + ReplaceVariables(aDescr,theVariables); theScript += "\n\t"; theScript += aDescr; - - theProcessed.Add(theFunction); - return; } //============================================================================= @@ -714,28 +777,330 @@ Handle(TColStd_HSequenceOfInteger) FindEntries(TCollection_AsciiString& theStrin Standard_Integer aLen = theString.Length(); Standard_Boolean isFound = Standard_False; - char* arr = theString.ToCString(); + const char* arr = theString.ToCString(); Standard_Integer i = 0, j; while(i < aLen) { int c = (int)arr[i]; j = i+1; if(c >= 48 && c <= 57) { //Is digit? - + isFound = Standard_False; while((j < aLen) && ((c >= 48 && c <= 57) || c == 58) ) { //Check if it is an entry - c = (int)arr[j++]; - if(c == 58) isFound = Standard_True; + c = (int)arr[j++]; + if(c == 58) isFound = Standard_True; } - + if(isFound && arr[j-2] != 58) { // last char should be a diggit - aSeq->Append(i+1); // +1 because AsciiString starts from 1 - aSeq->Append(j-1); + aSeq->Append(i+1); // +1 because AsciiString starts from 1 + aSeq->Append(j-1); } } - + i = j; } return aSeq; } + +//============================================================================= +/*! + * ReplaceVariables: Replace parameters of the function by variales from + * Notebook if need + */ +//============================================================================= +void ReplaceVariables(TCollection_AsciiString& theCommand, + const TVariablesList& theVariables) +{ + if (MYDEBUG) + cout<<"Command : "<GetCurrectState(); + + if(MYDEBUG) { + cout<<"Variables from SObject:"<= aVariables.size()) + continue; + + aReplacedParameter = aVariables[iVar].myVariable; + if(aReplacedParameter.IsEmpty()) { + iVar++; + continue; + } + + if(aVariables[iVar].isVariable) { + aReplacedParameter.InsertBefore(1,"'"); + aReplacedParameter.InsertAfter(aReplacedParameter.Length(),"'"); + } + + if(MYDEBUG) + cout<<"aSection before : "<= aVariables.size()) + continue; + + aReplacedVar = aVariables[iVar].myVariable; + if(aReplacedVar.IsEmpty()) { + iVar++; + continue; + } + + if(aVariables[iVar].isVariable) { + aReplacedVar.InsertBefore(1,"\""); + aReplacedVar.InsertAfter(aReplacedVar.Length(),"\""); + } + + aCommand.Remove(aStartPos, aEndPos - aStartPos); + aCommand.Insert(aStartPos, aReplacedVar); + iVar++; + } + + theCommand.Remove(aStartCommandPos, aEndCommandPos - aStartCommandPos); + theCommand.Insert(aStartCommandPos, aCommand); + + aCommandIndex++; + + aStates->IncrementState(); + } + + if (MYDEBUG) + cout<<"Command : "< _dumpstate) + return _states[_dumpstate]; + return TState(); +} + +//================================================================================ +/*! + * \brief Add new object state + * \param theState - Object state (vector of notebook variable) + */ +//================================================================================ +void ObjectStates::AddState(const TState &theState) +{ + _states.push_back(theState); +} + +//================================================================================ +/*! + * \brief Increment object state + */ +//================================================================================ +void ObjectStates::IncrementState() +{ + _dumpstate++; +} diff --git a/src/GEOM/GEOM_Engine.hxx b/src/GEOM/GEOM_Engine.hxx index ab6b82821..a9951b26c 100644 --- a/src/GEOM/GEOM_Engine.hxx +++ b/src/GEOM/GEOM_Engine.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_Engine_HXX_ #define _GEOM_Engine_HXX_ @@ -32,6 +33,40 @@ #include #include +#include +#include + +struct TVariable{ + TCollection_AsciiString myVariable; + bool isVariable; + + TVariable(const TCollection_AsciiString& theVariable, bool theFlag = true): + myVariable(theVariable), + isVariable(theFlag){} +}; + +typedef std::vector TState; +typedef std::vector TAllStates; + +class ObjectStates +{ +public: + ObjectStates(); + ~ObjectStates(); + + TAllStates GetAllStates() const { return _states; } + + TState GetCurrectState() const; + void AddState(const TState &theState); + void IncrementState(); + +private: + TAllStates _states; + int _dumpstate; +}; + +typedef std::map TVariablesList; + class GEOM_Engine { public: @@ -84,6 +119,7 @@ class GEOM_Engine Standard_EXPORT TCollection_AsciiString DumpPython(int theDocID, Resource_DataMapOfAsciiStringAsciiString& theObjectNames, + TVariablesList theVariables, bool isPublished, bool& aValidScript); @@ -93,7 +129,7 @@ class GEOM_Engine protected: Standard_EXPORT static void SetEngine(GEOM_Engine* theEngine); - + private: Handle(GEOM_Application) _OCAFApp; diff --git a/src/GEOM/GEOM_Function.cxx b/src/GEOM/GEOM_Function.cxx index b3166ad0b..d10bd9daf 100644 --- a/src/GEOM/GEOM_Function.cxx +++ b/src/GEOM/GEOM_Function.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOM/GEOM_Function.hxx b/src/GEOM/GEOM_Function.hxx index 734dd833d..3e1ea6970 100644 --- a/src/GEOM/GEOM_Function.hxx +++ b/src/GEOM/GEOM_Function.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_Function_HeaderFile #define _GEOM_Function_HeaderFile diff --git a/src/GEOM/GEOM_Gen_i.cc b/src/GEOM/GEOM_Gen_i.cc deleted file mode 100644 index f07429df9..000000000 --- a/src/GEOM/GEOM_Gen_i.cc +++ /dev/null @@ -1,5467 +0,0 @@ -// GEOM GEOM : implementaion of GEOM_Gen.idl and GEOM_Shape.idl -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_GEN_i.cc file -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - -using namespace std; -#include "GEOM_Gen_i.hh" - -#include "Partition_Spliter.hxx" -#include "Archimede_VolumeSection.hxx" -#include "Sketcher_Profile.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -#include - -// Cascade headers - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#if OCC_VERSION_MAJOR >= 5 -#include -#else -#include -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include - -//VRV: OCC 4.0 migration -#include -#include -//VRV: OCC 4.0 migration - -#include -#include - -//VRV: OCC 4.0 migration -#include -#include -#include -#include -//#include -//VRV: OCC 4.0 migration - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -// #include - -#include "SALOMEDS_Tool.hxx" -#include "GEOMDS_Commands.hxx" -#include "GEOMDS_Explorer.hxx" - -#include CORBA_SERVER_HEADER(SALOMEDS_Attributes) - -#include "Utils_ExceptHandlers.hxx" - -Standard_EXPORT static Standard_Boolean IsValid(const TopoDS_Shape& S) { -#if OCC_VERSION_MAJOR >= 5 - return BRepAlgo::IsValid(S); -#else - return BRepAlgoAPI::IsValid(S); -#endif -} - -//============================================================================ -// function : GEOM_Gen_i() -// purpose : constructor to be called for servant creation. -//============================================================================ -GEOM_Gen_i::GEOM_Gen_i(CORBA::ORB_ptr orb, - PortableServer::POA_ptr poa, - PortableServer::ObjectId * contId, - const char *instanceName, - const char *interfaceName) : - Engines_Component_i(orb, poa, contId, instanceName, interfaceName) -{ - _thisObj = this ; - _id = _poa->activate_object(_thisObj); - // SCRUTE(this) - name_service = new SALOME_NamingService(_orb); - myOCAFApp = new GEOMDS_Application(); - myStudyID = -1; - GetCurrentStudy(0);//for correct work of SuperVisor -} - - - -//============================================================================ -// function : ~GEOM_Gen_i() -// purpose : destructor -//============================================================================ -GEOM_Gen_i::~GEOM_Gen_i() { - delete name_service; -} - - -//============================================================================ -// function : IORToLocalPersistentID() -// purpose : -//============================================================================ -char* GEOM_Gen_i::IORToLocalPersistentID(SALOMEDS::SObject_ptr theSObject, - const char* IORString, - CORBA::Boolean isMultiFile, - CORBA::Boolean isASCII) -{ - GEOM::GEOM_Shape_var aShape = GEOM::GEOM_Shape::_narrow(_orb->string_to_object(IORString)); - if (!CORBA::is_nil(aShape)) { - return aShape->ShapeId(); - } - return 0; -} - - -//============================================================================ -// function : LocalPersistentIDToIOR() -// purpose : Create/Load CORBA object from a persistent ref (an entry) -// : Used when a study is loaded -// : The IOR (IORName) of object created is returned -//============================================================================ -char* GEOM_Gen_i::LocalPersistentIDToIOR(SALOMEDS::SObject_ptr theSObject, - const char* aLocalPersistentID, - CORBA::Boolean isMultiFile, - CORBA::Boolean isASCII) -{ - SALOMEDS::Study_var myStudy = theSObject->GetStudy(); - GetCurrentStudy(myStudy->StudyId()); - Handle(TDocStd_Document) aDoc = Handle(TDocStd_Document)::DownCast(myStudyIDToDoc(myStudy->StudyId())); - CORBA::String_var aPersRefString = aLocalPersistentID; - - /* For a GEOM::GEOM_Shape the pers_ref is the Entry in the OCAF document */ - TCollection_ExtendedString MainIOR; - TDF_Label Lab; - TDF_Tool::Label(aDoc->GetData(), aPersRefString, Lab ); - - if (Lab.IsNull()) { - MESSAGE("Can not find label "<StudyId()); - THROW_SALOME_CORBA_EXCEPTION("Incorrect GEOM data loaded",SALOME::BAD_PARAM); - //return ""; empty IORs raise new problem: "display" in popup crashes - } - - Handle(TNaming_NamedShape) NS; - Lab.FindAttribute( TNaming_NamedShape::GetID(), NS ); - TopoDS_Shape S = TNaming_Tool::GetShape(NS); - - /* shapetype, index=0, topo, orb, shapetype, ismain=true and name are setted and modified later ? */ - GEOM::GEOM_Shape_var result = CreateObject(S); - GEOMDS_Commands GC( aDoc->Main() ) ; - - if ( GC.HasIOR(Lab) ) { /* shape already created/loaded */ - return 0 ; - } - - /******************* Dependent object (not a main shape) *********************/ - if( GC.IsDependentShape(Lab) ) { - - TDF_Label mainLabel ; - Standard_Boolean mainShapeOk = GC.GetMainShapeLabel(Lab, mainLabel) ; - - /* Main object not yet loaded we load/create it */ - if( !GC.HasIOR(mainLabel) ) { - - TCollection_AsciiString entry; - TDF_Tool::Entry(mainLabel,entry); - CORBA::String_var ent = CORBA::string_dup(entry.ToCString()); - - /* Create the main object recursively */ - MainIOR = LocalPersistentIDToIOR(theSObject, ent, isMultiFile, isASCII) ; - } else { - GC.ReturnNameIOR( mainLabel, MainIOR ); - } - - result->MainName( TCollection_AsciiString(MainIOR).ToCString() ) ; - result->IsMainShape(false) ; - result->ShapeId(aPersRefString); - - Handle(TDF_Reference) aRef; - Lab.FindAttribute( TDF_Reference::GetID(), aRef ); - TDF_Label myL = aRef->Get() ; - Handle(TNaming_NamedShape) NN; - myL.FindAttribute( TNaming_NamedShape::GetID(), NN ); - TopoDS_Shape mainTopo = TNaming_Tool::GetShape(NN); - - GEOM::GEOM_Shape::ListOfSubShapeID_var ListOfID = new GEOM::GEOM_Shape::ListOfSubShapeID; - - if(S.ShapeType() != TopAbs_COMPOUND) { - /* to set the index of a unique sub shape (Explode All ONLY for the moment !) */ - ListOfID->length(1); - int index = 1; - TopTools_MapOfShape M; - TopExp_Explorer Exp ; - for( Exp.Init(mainTopo, TopAbs_ShapeEnum( result->ShapeType() )) ; Exp.More(); Exp.Next() ) { - if ( M.Add(Exp.Current()) ) { - if(Exp.Current().IsSame(S) ) { - ListOfID[0] = index; - break; - } - index++ ; - } - } - result->Index(ListOfID) ; - return result->Name(); - } - else { - /* Here is a TopAbs_COMPOUND : we set the list/index for a compound : containing two or more sub shapes */ - /* Warning : the Corba shape has a shapetype Compound : in GEOMDS_Client we have to retrieve the kind of */ - /* subshapes contained in this compound ! */ - TopTools_SequenceOfShape SS; - TopoDS_Iterator it ; - TopExp_Explorer exp ; - TopAbs_ShapeEnum subType ; - - /* Set all sub shapes in a sequence of shapes */ - for ( it.Initialize( S, true, true ) ; it.More(); it.Next() ) { - subType = it.Value().ShapeType() ; - SS.Append( it.Value() ) ; - } - - ListOfID->length( SS.Length() ) ; - int j, k ; /* in TopTools_SequenceOfShape index start at 1 */ - - for( k=1; k<=SS.Length(); k++ ) { - j = 1 ; - for( exp.Init( mainTopo, subType ); exp.More(); exp.Next() ) { - if( exp.Current().IsSame( SS.Value(k) ) ) { - ListOfID[k-1] = j ; - } - j++ ; - } - } - result->Index(ListOfID) ; - return result->Name(); - } - - } - /******************* Independent object (not a sub shape) *********************/ - else { - result->IsMainShape(true) ; - if( !GC.AddIORNameAttribute(Lab, result->Name() ) ) { - MESSAGE("in LocalPersistentIDToIOR, NAME/IOR attribute already exist." << endl ) ; - } - Handle(TNaming_NamedShape) NamedShape ; - bool notTested = Lab.FindAttribute(TNaming_NamedShape::GetID(), NamedShape) ; - result->ShapeId(aPersRefString); - return result->Name(); - } -} - -//============================================================================ -// function : CanPublishInStudy -// purpose : -//============================================================================ -bool GEOM_Gen_i::CanPublishInStudy(CORBA::Object_ptr theIOR) -{ - GEOM::GEOM_Shape_var aShape = GEOM::GEOM_Shape::_narrow(theIOR); - return !(aShape->_is_nil()); -} - - -//============================================================================ -// function : PublishInStudy -// purpose : -//============================================================================ -SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy, - SALOMEDS::SObject_ptr theSObject, - CORBA::Object_ptr theObject, - const char* theName) throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - SALOMEDS::SObject_var aResultSO; - if(CORBA::is_nil(theObject)) return aResultSO; - - GEOM::GEOM_Shape_var aShape = GEOM::GEOM_Shape::_narrow(theObject); - if(aShape->_is_nil()) return aResultSO; - - if(theStudy->_is_nil()) return aResultSO; - - SALOMEDS::GenericAttribute_var anAttr; - SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder(); - - SALOMEDS::SComponent_var aFather = theStudy->FindComponent("GEOM"); - if (aFather->_is_nil()) { - aFather = aStudyBuilder->NewComponent("GEOM"); - anAttr = aStudyBuilder->FindOrCreateAttribute(aFather, "AttributeName"); - SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr); - aName->SetValue("Geometry"); - anAttr = aStudyBuilder->FindOrCreateAttribute(aFather, "AttributePixMap"); - SALOMEDS::AttributePixMap::_narrow(anAttr)->SetPixMap("ICON_OBJBROWSER_Geometry"); - aStudyBuilder->DefineComponentInstance(aFather, GEOM_Gen::_this()); - } - if (aFather->_is_nil()) return aResultSO; - - if (CORBA::is_nil(theSObject)) { - aResultSO = aStudyBuilder->NewObject(aFather); - } else { - if (!theSObject->ReferencedObject(aResultSO)) - THROW_SALOME_CORBA_EXCEPTION("Publish in study supervision graph error",SALOME::BAD_PARAM); - } - anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeIOR"); - SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr); - anIOR->SetValue(aShape->Name()); - - anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributePixMap"); - SALOMEDS::AttributePixMap_var aPixmap = SALOMEDS::AttributePixMap::_narrow(anAttr); - TCollection_AsciiString aShapeName("Shape_"); - - if ( aShape->ShapeType() == GEOM::COMPOUND ) { - aPixmap->SetPixMap( "ICON_OBJBROWSER_COMPOUND" ); - aShapeName = "Compound_"; - } else if ( aShape->ShapeType() == GEOM::COMPSOLID ) { - aPixmap->SetPixMap( "ICON_OBJBROWSER_COMPSOLID" ); - aShapeName = "Compsolid_"; - } else if ( aShape->ShapeType() == GEOM::SOLID ) { - aPixmap->SetPixMap( "ICON_OBJBROWSER_SOLID" ); - aShapeName = "Solid_"; - } else if ( aShape->ShapeType() == GEOM::SHELL ) { - aPixmap->SetPixMap( "ICON_OBJBROWSER_SHELL" ); - aShapeName = "Shell_"; - } else if ( aShape->ShapeType() == GEOM::FACE ) { - aPixmap->SetPixMap( "ICON_OBJBROWSER_FACE" ); - aShapeName = "Face_"; - } else if ( aShape->ShapeType() == GEOM::WIRE ) { - aPixmap->SetPixMap( "ICON_OBJBROWSER_WIRE" ); - aShapeName = "Wire_"; - } else if ( aShape->ShapeType() == GEOM::EDGE ) { - aPixmap->SetPixMap( "ICON_OBJBROWSER_EDGE" ); - aShapeName = "Edge_"; - } else if ( aShape->ShapeType() == GEOM::VERTEX ) { - aPixmap->SetPixMap( "ICON_OBJBROWSER_VERTEX" ); - aShapeName = "Vertex_"; - } - if (strlen(theName) == 0) aShapeName += TCollection_AsciiString(aResultSO->Tag()); - else aShapeName = TCollection_AsciiString((char*)theName); - - //Set a name of the added shape - anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeName"); - SALOMEDS::AttributeName_var aNameAttrib = SALOMEDS::AttributeName::_narrow(anAttr); - aNameAttrib->SetValue(aShapeName.ToCString()); - - //Add a reference to published object -// aStudyBuilder->Addreference(theObject, aResultSO); - return aResultSO._retn(); -} - - -//============================================================================ -// function : Save() -// purpose : save OCAF/Geom document -//============================================================================ -SALOMEDS::TMPFile* GEOM_Gen_i::Save(SALOMEDS::SComponent_ptr theComponent, - const char* theURL, - bool isMultiFile) { - SALOMEDS::TMPFile_var aStreamFile; - // Get a temporary directory to store a file - TCollection_AsciiString aTmpDir = (isMultiFile)?TCollection_AsciiString((char*)theURL):(char*)SALOMEDS_Tool::GetTmpDir().c_str(); - // Create a list to store names of created files - SALOMEDS::ListOfFileNames_var aSeq = new SALOMEDS::ListOfFileNames; - aSeq->length(1); - // Prepare a file name to open - TCollection_AsciiString aNameWithExt(""); - if (isMultiFile) - aNameWithExt = TCollection_AsciiString((char*)SALOMEDS_Tool::GetNameFromPath(theComponent->GetStudy()->URL()).c_str()); - aNameWithExt += TCollection_AsciiString("_GEOM.sgd"); - aSeq[0] = aNameWithExt.ToCString(); - // Build a full file name of temporary file - TCollection_AsciiString aFullName = aTmpDir + aNameWithExt; - // Save GEOM component in this file - myOCAFApp->SaveAs(myCurrentOCAFDoc, aFullName); - // Conver a file to the byte stream - aStreamFile = SALOMEDS_Tool::PutFilesToStream(aTmpDir.ToCString(), aSeq.in(), isMultiFile); - // Remove the created file and tmp directory - if (!isMultiFile) SALOMEDS_Tool::RemoveTemporaryFiles(aTmpDir.ToCString(), aSeq.in(), true); - // Return the created byte stream - return aStreamFile._retn(); -} - -SALOMEDS::TMPFile* GEOM_Gen_i::SaveASCII(SALOMEDS::SComponent_ptr theComponent, - const char* theURL, - bool isMultiFile) { - SALOMEDS::TMPFile_var aStreamFile = Save(theComponent, theURL, isMultiFile); - return aStreamFile._retn(); -} - - -CORBA::Boolean GEOM_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent, - const SALOMEDS::TMPFile& theStream, - const char* theURL, - bool isMultiFile) { - - if (theStream.length() <= 9) { - MESSAGE("The TMPFile is too short : " << theStream.length() << " bytes "); - return false; - } - - // Get a temporary directory for a file - TCollection_AsciiString aTmpDir = isMultiFile?TCollection_AsciiString((char*)theURL):(char*)SALOMEDS_Tool::GetTmpDir().c_str(); - // Conver the byte stream theStream to a file and place it in tmp directory - SALOMEDS::ListOfFileNames_var aSeq = SALOMEDS_Tool::PutStreamToFiles(theStream, - aTmpDir.ToCString(), - isMultiFile); - - // Prepare a file name to open - TCollection_AsciiString aNameWithExt(""); - if (isMultiFile) - aNameWithExt = TCollection_AsciiString((char*)SALOMEDS_Tool::GetNameFromPath(theComponent->GetStudy()->URL()).c_str()); - aNameWithExt += TCollection_AsciiString("_GEOM.sgd"); - TCollection_AsciiString aFullName = aTmpDir + aNameWithExt; - - // Open document - if (myOCAFApp->Open(aFullName, myCurrentOCAFDoc) != CDF_RS_OK) return false; - - // Remove the created file and tmp directory - if (!isMultiFile) SALOMEDS_Tool::RemoveTemporaryFiles(aTmpDir.ToCString(), aSeq.in(), true); - - SALOMEDS::Study_var Study = theComponent->GetStudy(); - TCollection_AsciiString name( Study->Name() ); - - int StudyID = Study->StudyId(); - myStudyIDToDoc.Bind( StudyID, myCurrentOCAFDoc ); - myStudyID = StudyID; - - /* We clear all IOR (nameIOR) attributes of all objects before reconstruction */ - /* This information will be setted when each object is reconstructed */ - GEOMDS_Commands GC( myCurrentOCAFDoc->Main() ) ; - GC.ClearAllIOR(myCurrentOCAFDoc->Main()); - - return true; -} - -CORBA::Boolean GEOM_Gen_i::LoadASCII(SALOMEDS::SComponent_ptr theComponent, - const SALOMEDS::TMPFile& theStream, - const char* theURL, - bool isMultiFile) { - return Load(theComponent, theStream, theURL, isMultiFile); -} - -// //============================================================================ -// // function : Save() -// // purpose : save OCAF/Geom document -// //============================================================================ -// void GEOM_Gen_i::Save(const char *IORSComponent, const char *aUrlOfFile) -// { - -// TCollection_ExtendedString path((char*)aUrlOfFile); -// TCollection_ExtendedString pathWithExt = path + TCollection_ExtendedString(".sgd"); -// myOCAFApp->SaveAs(myCurrentOCAFDoc,pathWithExt); -// } - - -// //============================================================================ -// // function : Load() -// // purpose : Load OCAF/Geom document -// //============================================================================ -// void GEOM_Gen_i::Load(const char *IORSComponent, const char *aUrlOfFile) -// { - -// TCollection_ExtendedString path((char*)aUrlOfFile); -// TCollection_ExtendedString pathWithExt = path + TCollection_ExtendedString(".sgd"); - -// myOCAFApp->Open(pathWithExt,myCurrentOCAFDoc); - -// SALOMEDS::SComponent_var SC = SALOMEDS::SComponent::_narrow(_orb->string_to_object(IORSComponent)); -// SALOMEDS::Study_var Study = SC->GetStudy(); -// TCollection_AsciiString name( Study->Name() ); - -// int StudyID = Study->StudyId(); -// myStudyIDToDoc.Bind( StudyID, myCurrentOCAFDoc ); -// myStudyID = StudyID; - -// /* We clear all IOR (nameIOR) attributes of all objects before reconstruction */ -// /* This information will be setted when each object is reconstructed */ -// GEOMDS_Commands GC( myCurrentOCAFDoc->Main() ) ; -// GC.ClearAllIOR(myCurrentOCAFDoc->Main()); - -// return ; -// } - - -//============================================================================ -// function : Close() -// purpose : -//============================================================================ -void GEOM_Gen_i::Close(SALOMEDS::SComponent_ptr theComponent) -{ - int anID = theComponent->GetStudy()->StudyId(); - if (anID == myStudyID) GetCurrentStudy(0); // set default value of current study ID, if current is deleted - if (myStudyIDToDoc.IsBound(anID)) { - // close document in the application -// Handle(TDocStd_Owner) anOwner; - Handle(TDocStd_Document) aDoc = Handle(TDocStd_Document)::DownCast(myStudyIDToDoc.Find(anID)); -// Handle(TDocStd_Document) anEmptyDoc; -// if (aDoc->Main().Root().FindAttribute(TDocStd_Owner::GetID(), anOwner)) { -// anOwner->SetDocument(anEmptyDoc); -// MESSAGE("********** Nullify owner of document"); -// } - myOCAFApp->Close(aDoc); - myStudyIDToDoc.UnBind(anID); // remove document from GEOM documents data map - } -} - -//============================================================================ -// function : CanCopy() -// purpose : -//============================================================================ -CORBA::Boolean GEOM_Gen_i::CanCopy(SALOMEDS::SObject_ptr theObject) { - // Try to retrieve known by Geometry component GEOM_shape by given IOR - SALOMEDS::GenericAttribute_var anAttr; - if (!theObject->FindAttribute(anAttr, "AttributeIOR")) return false; - GEOM::GEOM_Shape_var aShape = GetIORFromString(SALOMEDS::AttributeIOR::_narrow(anAttr)->Value()); - // If the object is null one it can't be copied: return false - if (aShape->_is_nil()) return false; - return true; -} - -//============================================================================ -// function : CopyFrom() -// purpose : -//============================================================================ -SALOMEDS::TMPFile* GEOM_Gen_i::CopyFrom(SALOMEDS::SObject_ptr theObject, CORBA::Long& theObjectID) { - // Declare a sequence of the byte to store the copied object - SALOMEDS::TMPFile_var aStreamFile = new SALOMEDS::TMPFile; - - // Try to get GEOM_Shape object by given SObject - SALOMEDS::GenericAttribute_var anAttr; - if (!theObject->FindAttribute(anAttr, "AttributeIOR")) return false; - GEOM::GEOM_Shape_var aShape = GetIORFromString(SALOMEDS::AttributeIOR::_narrow(anAttr)->Value()); - // If the object is null one it can't be copied: return false - if (aShape->_is_nil()) return aStreamFile._retn(); - - GetCurrentStudy(theObject->GetStudy()->StudyId()); - - // Convert a TopoDS_Shape to a stream of bytes - TopoDS_Shape aTopology = GetTopoShape(aShape); - if (aTopology.IsNull()) return aStreamFile._retn(); - ostrstream aStreamedShape; - BRepTools::Write(aTopology, aStreamedShape); - int aSize = aStreamedShape.pcount(); - char* aBuffer = new char[aSize]; - memcpy(aBuffer, aStreamedShape.str(), aSize); - aStreamedShape.rdbuf()->freeze(0); - - aStreamFile = new SALOMEDS::TMPFile(aSize, aSize, (CORBA::Octet*)aBuffer, 1); - - // Assign an ID = 1 the the type GEOM_Shape - theObjectID = 1; - - // Return created TMPFile - return aStreamFile._retn(); -} - -//============================================================================ -// function : CanPaste() -// purpose : -//============================================================================ -CORBA::Boolean GEOM_Gen_i::CanPaste(const char* theComponentName, CORBA::Long theObjectID) { - // The Geometry component can paste only objects copied by Geometry component - // and with the object type = 1 -// MESSAGE("********** GEOM_Gen_i::CanPaste ("<GetStudy(); - SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder(); - - // Retrieve a TopoDS_Shape from byte stream - TopoDS_Shape aTopology; - istrstream aStreamedBrep((char*) &theStream[0], theStream.length()); - BRep_Builder aBuilder; - try { - BRepTools::Read(aTopology, aStreamedBrep, aBuilder); - } catch (Standard_Failure) { - MESSAGE("GEOM_Gen_i::PasteInto exception"); - return false; - } - - // Create new object in Geometry component using retrieved topology - GEOM::GEOM_Shape_var aShape = CreateObject(aTopology); - GetCurrentStudy(aStudy->StudyId()); - const char *anEntry = InsertInLabel(aTopology, aShape->Name(), myCurrentOCAFDoc) ; - aShape->ShapeId(anEntry) ; - - // SObject of the created shape is theObject or new Child of Component if theObject == geom component - SALOMEDS::SObject_var aNewSO; - if (strcmp(theObject->GetFatherComponent()->GetID(),theObject->GetID()) == 0) { - aNewSO = aStudyBuilder->NewObject(theObject); - } else aNewSO = SALOMEDS::SObject::_duplicate(theObject); - // Add IORAttribute to the Study and set IOR of the created GEOM_Shape to it - SALOMEDS::GenericAttribute_var anAttr = aStudyBuilder->FindOrCreateAttribute(aNewSO, "AttributeIOR"); - SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr); - anIOR->SetValue(aShape->Name()); - - // Return the created in the Study SObject - return aNewSO._retn(); -} - -//============================================================================ -// function : ComponentDataType() -// purpose : -//============================================================================ -char* GEOM_Gen_i::ComponentDataType() -{ - return CORBA::string_dup("GEOM"); -} - -//============================================================================ -// function : register() -// purpose : register 'name' in 'name_service' -//============================================================================ -void GEOM_Gen_i::register_name(char * name) -{ - GEOM::GEOM_Gen_ptr g = GEOM::GEOM_Gen::_narrow(POA_GEOM::GEOM_Gen::_this()); - name_service->Register(g, name); -} - - - -//================================================================================ -// function : SequenceOfShapeFromListOfGeomShape() -// purpose : Define a sequence of shapes from 'listShapes' and return its length. -// : No control is made on shapes ! -//================================================================================ -int GEOM_Gen_i::SequenceOfShapeFromListOfGeomShape( const GEOM::GEOM_Gen::ListOfGeomShapes& listShapes, - TopTools_SequenceOfShape& SS ) -{ - int nbShapes = listShapes.length() ; - if( nbShapes < 1) - return 0 ; - - for(int i=0; iGetData() ; - TDF_Tool::Label( D, shape_ptr->ShapeId(), lab, true ) ; - Handle(TNaming_NamedShape) NamedShape ; - bool res = lab.FindAttribute(TNaming_NamedShape::GetID(), NamedShape) ; - - if( !res ) { - return tds ; /* a null shape is returned */ - } - else { - return TNaming_Tool::GetShape(NamedShape) ; - } -} - - - -//================================================================================= -// function : GetStringFromIOR() -// purpose : returns a string that represents a 'GEOM::GEOM_Shape_var' -//================================================================================= -const char* GEOM_Gen_i::GetStringFromIOR(GEOM::GEOM_Shape_var shapeIOR) { - const char * ret = _orb->object_to_string(shapeIOR) ; - return ret ; -} - - - -//================================================================================= -// function : GetIORFromString() -// purpose : returns a 'GEOM::GEOM_Shape_var' from a string representing it -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::GetIORFromString(const char* stringIOR) { - GEOM::GEOM_Shape_var shapeIOR; - if(strcmp(stringIOR,"") != 0){ - CORBA::Object_var anObject = _orb->string_to_object(stringIOR); - if(!CORBA::is_nil(anObject)) - shapeIOR = GEOM::GEOM_Shape::_narrow(anObject.in()) ; - } - return shapeIOR._retn() ; -} - - - -//================================================================================== -// function : InsertInLabel() -// purpose : Insert S = Shape and mystr = name in a new Label of Geom/OCAF document -// : and returns the corresponding OCAF entry -//================================================================================== -const char * GEOM_Gen_i::InsertInLabel(TopoDS_Shape S, const char *mystr, Handle(TDocStd_Document) OCAFDoc) -{ - GEOMDS_Commands GC(OCAFDoc->Main()); - /* add attributs S and mystr in a new label */ - TDF_Label Lab = GC.AddShape (S, (char*)mystr); - - TCollection_AsciiString entry; - TDF_Tool::Entry(Lab,entry); - const char *ent = entry.ToCString() ; - return ent ; -} - - -//================================================================================== -// function : InsertInLabelDependentShape() -// purpose : Insert S = Shape and its nameIor in a new Label of Geom/OCAF document -// : insert also a reference attribute (a label) to the main shape 'mainshap_ptr'. -// : and returns the corresponding OCAF entry of the new label. -//================================================================================== -const char * GEOM_Gen_i::InsertInLabelDependentShape( TopoDS_Shape S, - const char *nameIor, - GEOM::GEOM_Shape_ptr mainshape_ptr, - Handle(TDocStd_Document) OCAFDoc ) -{ - GEOMDS_Commands GC(OCAFDoc->Main()); - /* add attributs S and nameIor in a new label */ - - /* retrieve the label of the main shape in the document */ - TDF_Label mainRefLab; - TDF_Tool::Label(OCAFDoc->GetData(), mainshape_ptr->ShapeId(), mainRefLab); - - /* add attributs : S, nameIor and ref to main */ - TDF_Label Lab = GC.AddDependentShape(S, (char*)nameIor, mainRefLab); - - TCollection_AsciiString entry; - TDF_Tool::Entry(Lab, entry); - const char *ent = entry.ToCString() ; - return ent ; -} - - -//================================================================================= -// function : InsertInLabelOneArgument() -// purpose : -//================================================================================= -void GEOM_Gen_i::InsertInLabelOneArgument(TopoDS_Shape main_topo, - GEOM::GEOM_Shape_ptr shape_ptr, - TopoDS_Shape result_topo, - GEOM::GEOM_Shape_ptr result, - Handle(TDocStd_Document) OCAFDoc) -{ - /* Put shape and name into geom/OCAF doc */ - GEOMDS_Commands GC(OCAFDoc->Main()); - /* Add attributs 'shape' and 'name_ior' in a new label */ - TDF_Label Lab = GC.Generated( main_topo, result_topo, result->Name() ); - TCollection_AsciiString entry; - TDF_Tool::Entry(Lab, entry); - result->ShapeId( entry.ToCString() ) ; - - /* Create a new label */ - TDF_Label NewLab = Lab.NewChild(); - TCollection_ExtendedString Value("Arguments"); - TDataStd_Name::Set(NewLab,Value); - - TDF_Label NewLab1 = NewLab.NewChild(); - TDF_Label RefLab; - TDF_Tool::Label(OCAFDoc->GetData(), shape_ptr->ShapeId(), RefLab); - TDF_Reference::Set(NewLab1, RefLab); -} - - -//================================================================================= -// function : InsertInLabelMoreArguments() -// purpose : -//================================================================================= -void GEOM_Gen_i::InsertInLabelMoreArguments(TopoDS_Shape main_topo, - GEOM::GEOM_Shape_ptr result, - const GEOM::GEOM_Gen::ListOfIOR& ListShapes, - Handle(TDocStd_Document) OCAFDoc) -{ - /* Put shape and name into geom/OCAF doc */ - GEOMDS_Commands GC(OCAFDoc->Main()); - /* Add attributs TopoDS and name_ior in a new label */ - TDF_Label Lab = GC.AddShape(main_topo, result->Name() ); - TCollection_AsciiString entry; - TDF_Tool::Entry(Lab, entry); - - /* Create a new label */ - TDF_Label NewLab = Lab.NewChild(); - TCollection_ExtendedString Value("Arguments"); - TDataStd_Name::Set(NewLab, Value); - - for (unsigned int ind = 0; ind < ListShapes.length(); ind++) { - - TDF_Label NewLab1 = NewLab.NewChild(); - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListShapes[ind] ); - - TDF_Label RefLab; - TDF_Tool::Label(OCAFDoc->GetData(), aShape->ShapeId(), RefLab); - TDF_Reference::Set(NewLab1, RefLab); - } - result->ShapeId(entry.ToCString()); -} - - - -//================================================================================= -// function: NbLabels() -// purpose : -//================================================================================= -CORBA::Short GEOM_Gen_i::NbLabels() -{ - TDF_ChildIterator ChildIterator(myCurrentOCAFDoc->Main()); - unsigned int i = 1; - - while (ChildIterator.More()) { - i++; - ChildIterator.Next(); - } - return i; - // return TDF_Tool::NbLabels( myCurrentOCAFDoc->Main() ); -} - - - -//================================================================================= -// function: GetCurrentStudy() -// purpose : Finds or creates the geom/OCAF document corresponding to the index -// 'StudyID' -//================================================================================= -void GEOM_Gen_i::GetCurrentStudy(CORBA::Long StudyID) -{ - /* If StudyID is known we link myCurrentOCAFDoc to it */ - if (myStudyIDToDoc.IsBound(StudyID)) { - myCurrentOCAFDoc = Handle(TDocStd_Document)::DownCast(myStudyIDToDoc(StudyID)); - } - /* Create a new OCAFDoc and link it to 'StudyID' argument */ - else { - myOCAFApp->NewDocument("SALOME_GEOM",myCurrentOCAFDoc); - myStudyIDToDoc.Bind(StudyID,myCurrentOCAFDoc); - } - myStudyID = StudyID; -} - - -//================================================================================ -// function : CreateObject() -// purpose : private function to create a complete CORBA object and return it -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::CreateObject(TopoDS_Shape& tds) -{ -// if ( tds.ShapeType() == TopAbs_COMPOUND ) { -// TopoDS_Iterator itr(tds); -// TopoDS_Shape res; -// int i = 0; -// while (itr.More()) { -// i++; -// res = itr.Value(); -// itr.Next(); -// } - -// if ( i == 1 ) -// tds = res; -// } - - GEOM::shape_type st = GEOM::shape_type(tds.ShapeType()) ; /* casting */ - - /* Create the CORBA servant holding the TopoDS_Shape */ - GEOM::GEOM_Gen_ptr engine = POA_GEOM::GEOM_Gen::_this(); - GEOM::GEOM_Shape::ListOfSubShapeID_var index = new GEOM::GEOM_Shape::ListOfSubShapeID; - index->length(0); - GEOM_Shape_i * shape_servant = new GEOM_Shape_i(tds, _orb, engine, index, st, true); - GEOM::GEOM_Shape_var shape = GEOM::GEOM_Shape::_narrow(shape_servant->_this()); - - /* Create and set the name (IOR of shape converted into a string) */ - string name_ior = _orb->object_to_string(shape) ; - shape->Name( name_ior.c_str() ); - shape->NameType( "" ); - return shape; -} - -//======================================================================= -//function : CreateSubObject -//purpose : -//======================================================================= - -GEOM::GEOM_Shape_ptr GEOM_Gen_i::CreateSubObject(const TopoDS_Shape& SubShape, - const GEOM::GEOM_Shape_ptr MainShape, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID) -{ - GEOM::shape_type st = GEOM::shape_type(SubShape.ShapeType()) ; /* casting */ - - /* Create the CORBA servant holding the TopoDS_Shape */ - GEOM::GEOM_Gen_ptr engine = POA_GEOM::GEOM_Gen::_this(); - GEOM_Shape_i * shape_servant = - new GEOM_Shape_i(SubShape, _orb, engine, ListOfID, st, false); - GEOM::GEOM_Shape_var shape = GEOM::GEOM_Shape::_narrow(shape_servant->_this()); - - /* Create and set the name (IOR of shape converted into a string) */ - string name_ior = _orb->object_to_string(shape) ; - shape->Name( name_ior.c_str() ); - /* create and set the mainname (IOR of shape converted into a string) */ - const char *mainname_ior = _orb->object_to_string(MainShape) ; - shape->MainName(mainname_ior); - /* precaution : NameType will be set precisely in GUI */ - shape->NameType( "" ); - /* add 'SubShape' its 'nameIOR' and a reference to the main shape thanks to method below */ - const char *entry = - InsertInLabelDependentShape(SubShape, shape->Name(), MainShape, myCurrentOCAFDoc) ; - shape->ShapeId( entry ) ; - - return shape; -} - -//======================================================================= -// function : SuppressFacesGlue() -// purpose : Define a compound of shells after suppress of mapFaces in the -// : shape S and return the number of shells of the compound. -//======================================================================= -int GEOM_Gen_i::SuppressFacesGlue( const TopoDS_Shape& S, - const TopTools_MapOfShape& mapFaces, - TopoDS_Shape& aCompoundOfShells ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - BRepTools_Quilt Glue; - aCompoundOfShells.Nullify() ; - - for ( TopExp_Explorer exp( S, TopAbs_FACE); exp.More(); exp.Next() ) { - const TopoDS_Face& F = TopoDS::Face(exp.Current()); - if ( !mapFaces.Contains(F) ) { - /* this face must not to be suppressed */ - Glue.Add(F); - } - } - - /* Use specif method to calculate the compound of shells */ - aCompoundOfShells = Glue.Shells(); - - if( aCompoundOfShells.ShapeType() != TopAbs_COMPOUND ) { - THROW_SALOME_CORBA_EXCEPTION("In GEOM_Gen_i::SuppressFacesGlue() : not a GEOM::COMPOUND", SALOME::BAD_PARAM); - } - - /* explore Compound for verification and return the number of shells */ - int numberOfShell = 0 ; - for ( TopExp_Explorer exp1( aCompoundOfShells, TopAbs_SHELL); exp1.More(); exp1.Next() ) - numberOfShell++ ; - - return numberOfShell ; -} - - -//===================================================================================== -// function : GetIndexTopology() -// purpose : return the index of a sub shape in a shape (index starts at 1) -// : Return -1 if not found -//===================================================================================== -int GEOM_Gen_i::GetIndexTopology(const TopoDS_Shape& subshape, const TopoDS_Shape& mainShape) -{ - if( mainShape.IsNull() || subshape.IsNull() ) - return -1 ; - - int index = 1; - if (subshape.ShapeType() == TopAbs_COMPOUND) - { - TopoDS_Iterator it; - TopTools_ListOfShape CL; - CL.Append( mainShape ); - TopTools_ListIteratorOfListOfShape itC; - for (itC.Initialize( CL ); itC.More(); itC.Next()) - { - for (it.Initialize( itC.Value() ); it.More(); it.Next()) - { - if ( it.Value().ShapeType() == TopAbs_COMPOUND) - { - if (it.Value().IsSame(subshape)) - return index; - else - index++; - CL.Append( it.Value() ); - } - } - } - } - else - { - TopExp_Explorer Exp ( mainShape, subshape.ShapeType() ); - TopTools_MapOfShape M; - while ( Exp.More() ) - { - if ( M.Add(Exp.Current()) ) - { - if ( Exp.Current().IsSame(subshape) ) - return index; - index++; - } - Exp.Next(); - } - } - return -1; -} - - -//================================================================================ -// function : IndexOfFacesOfSubShell() -// purpose : Return a list of indices corresponding to the faces of a 'subShell' -// : in the main shape 'S' -//================================================================================ -GEOM::GEOM_Shape::ListOfSubShapeID* GEOM_Gen_i::IndexOfFacesOfSubShell( const TopoDS_Shape& S, - const TopoDS_Shape subShell ) - throw (SALOME::SALOME_Exception) -{ - - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape::ListOfSubShapeID_var ListOfID = new GEOM::GEOM_Shape::ListOfSubShapeID; - ListOfID->length(0) ; - if( subShell.IsNull() || subShell.ShapeType() != TopAbs_SHELL ) { - THROW_SALOME_CORBA_EXCEPTION("In GEOM_Gen_i::IndexOfFacesOfSubShell() : null shape or not a GEOM::SHELL", SALOME::BAD_PARAM); - } - - /* put faces of subShell in a Map of faces */ - int j = 0 ; - TopTools_MapOfShape mapFaces ; - for( TopExp_Explorer Exp1( subShell, TopAbs_FACE ); Exp1.More(); Exp1.Next() ) { - mapFaces.Add(Exp1.Current() ) ; - j++ ; - } - - if( j<1 ) - THROW_SALOME_CORBA_EXCEPTION("In GEOM_Gen_i::IndexOfFacesOfSubShell() : no faces in sub shell", SALOME::BAD_PARAM); - - /* Find index of each face of subshell in the main topology and put its index in ListOfID */ - int size = 0 ; - for ( TopExp_Explorer Exp2(S, TopAbs_FACE); Exp2.More(); Exp2.Next() ) { - - const TopoDS_Face& F = TopoDS::Face( Exp2.Current() ) ; - - if( mapFaces.Contains(F) ) { - int n = GetIndexTopology( F, S ) ; - if( n<=0 ) { - THROW_SALOME_CORBA_EXCEPTION("In GEOM_Gen_i::IndexOfFacesOfSubShell() : no index found", SALOME::BAD_PARAM); - } - size++; - ListOfID->length(size) ; - ListOfID[size-1] = n ; - } - } - - return ListOfID._retn() ; -} - - - -//================================================================================ -// function : ListOfIDIntoMapOfShapes() -// purpose : Define a MapOfShapes from a main topology 'S' a 'subShapeType' -// : and a list of indices 'L'. -// : Return true if 'aMap' is not empty -//================================================================================ -bool GEOM_Gen_i::ListOfIDIntoMapOfShapes( const TopoDS_Shape& S, - const GEOM::GEOM_Shape::ListOfSubShapeID& L, - const int subShapeType, - TopTools_MapOfShape& aMap ) -{ - if( L.length() < 1 || S.IsNull() ) { - return false ; - } - - aMap.Clear() ; - for( int k=0; klength(0) ; - - TopoDS_Shape mainShape = GetTopoShape(shape); - if( mainShape.IsNull() ) - THROW_SALOME_CORBA_EXCEPTION("In GEOM_Gen_i::SuppressFaces() : null argument shape", SALOME::BAD_PARAM); - - if( ListOfID.length() < 1 ) - THROW_SALOME_CORBA_EXCEPTION("In GEOM_Gen_i::SuppressFaces() : empty ListOfID", SALOME::BAD_PARAM); - - /* Define 'mapFaces' a map of faces to be suppressed in mainShape */ - TopTools_MapOfShape mapFaces ; - if( !ListOfIDIntoMapOfShapes(mainShape, ListOfID, TopAbs_FACE, mapFaces ) ) { - return listOfGeomShapes._retn(); - } - - /* Call algorithm to calculate a compound of shells resulting of face suppression */ - int numberOfShells = 0 ; - TopoDS_Shape aCompoundOfShells ; - numberOfShells = SuppressFacesGlue(mainShape, mapFaces, aCompoundOfShells) ; - if(numberOfShells < 1) { - THROW_SALOME_CORBA_EXCEPTION("In GEOM_Gen_i::Suppressfaces() : no shells", SALOME::BAD_PARAM); - } - - /* Create a shell for each shell contained in 'aCompoundOfShells' and */ - /* put it in the list of GeomShapes to be returned. */ - /* But if the shell is composed of only a face we create a face and not a shell */ - int i = 0 ; - for( TopExp_Explorer exp(aCompoundOfShells, TopAbs_SHELL); exp.More(); exp.Next() ) { - - const TopoDS_Shell& aShell = TopoDS::Shell( exp.Current() ); - if( aShell.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("In GEOM_Gen_i::Suppressfaces() : null shell", SALOME::BAD_PARAM); - } - - GEOM::GEOM_Shape::ListOfSubShapeID_var aList = new GEOM::GEOM_Shape::ListOfSubShapeID; - aList = IndexOfFacesOfSubShell(mainShape, aShell) ; - - if( aList->length() < 1 ) { - THROW_SALOME_CORBA_EXCEPTION("In GEOM_Gen_i::SuppressFaces() : aList is empty", SALOME::BAD_PARAM); - } - - TopoDS_Shape aShellOrFace ; - /* Only a face into the shell : we create a single face instead of a shell : 'aList' is unchanged */ - if( aList->length() == 1 ) { - TopExp_Explorer exp ; - exp.Init( aShell, TopAbs_FACE ) ; - exp.More() ; - aShellOrFace = exp.Current() ; - } - else { - aShellOrFace = aShell ; - } - - /* Create CORBA object */ - GEOM::GEOM_Shape_var result = CreateObject(aShellOrFace) ; - if( CORBA::is_nil(result) ) { - THROW_SALOME_CORBA_EXCEPTION("Suppress Faces aborted : null result", SALOME::BAD_PARAM); - } - - InsertInLabelOneArgument(mainShape, shape, aShellOrFace, result, myCurrentOCAFDoc) ; - i++ ; - listOfGeomShapes->length(i) ; - listOfGeomShapes[i-1] = result ; - } - - return listOfGeomShapes._retn() ; -} - - - -//================================================================================ -// function : IsShapeInSequence() -// purpose : return true is aShape is in SS. The test method is 'IsSame()' -//================================================================================ -bool GEOM_Gen_i::IsShapeInSequence(const TopTools_SequenceOfShape& SS, const TopoDS_Shape& aShape) -{ - if( aShape.IsNull() || SS.IsEmpty() ) - return false ; - for( int i=1; i<=SS.Length(); i++) { - if( SS.Value(i).IsSame(aShape) ) - return true ; - } - return false ; -} - - -//================================================================================ -// function : FreeEdgesFromMapOfFace() -// purpose : Define MS a map of all edges of faces of 'MSfaces' -// : All multiple edges are removed ! -//================================================================================ -void GEOM_Gen_i::FreeEdgesFromMapOfFace( const TopTools_MapOfShape& MSfaces, - TopTools_MapOfShape& MS ) -{ - MS.Clear() ; - TopTools_MapOfShape Multiple ; - TopTools_MapIteratorOfMapOfShape it ; - for( it.Initialize(MSfaces); it.More(); it.Next() ) { - TopoDS_Shape aFace = it.Key() ; - TopExp_Explorer exp ; - for( exp.Init( aFace, TopAbs_EDGE); exp.More(); exp.Next() ) { - if( !Multiple.Contains( exp.Current() ) && !MS.Add( exp.Current() ) ) { - MS.Remove( exp.Current() ) ; - Multiple.Add( exp.Current() ) ; - } - } - } - return ; -} - - -//================================================================================ -// function : MapRemoveSequence() -// purpose : In term of shapes ST = MS - SSRemove -// : -//================================================================================ -void GEOM_Gen_i::MapRemoveSequence( const TopTools_MapOfShape& MS, - const TopTools_SequenceOfShape& SSRemove, - TopTools_SequenceOfShape& ST ) -{ - ST.Clear() ; - TopTools_MapIteratorOfMapOfShape it ; - for( it.Initialize(MS); it.More(); it.Next() ) { - TopoDS_Shape aShape = it.Key() ; - if( !IsShapeInSequence( SSRemove, aShape ) ) - ST.Append( aShape ) ; - } - return ; -} - - - -//================================================================================ -// function : SuppressHoleSubRoutine() -// purpose : Define recursively 'MSfacesSuppress' a list of faces to suppress in a hole -//================================================================================ -void GEOM_Gen_i::SuppressHoleSubRoutine( const TopoDS_Shape& mainShape, - const TopoDS_Face& aFace, - const TopTools_SequenceOfShape& SSedgesOfWire, - const TopTools_IndexedDataMapOfShapeListOfShape& aMapEdgesFaces, - const TopTools_MapOfShape& MSfaces, - TopTools_MapOfShape& MSfacesSuppress, - const Standard_Boolean withEndFace, - const TopoDS_Face& endFace, - TopTools_MapOfShape& MSwireEndEdges ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - TopTools_MapOfShape MS ; - TopTools_SequenceOfShape SU ; - FreeEdgesFromMapOfFace(MSfaces, MS) ; /* MS = free edges of MSfaces */ - MapRemoveSequence(MS, SSedgesOfWire, SU) ; /* SU = MS - SSedgesOfWire */ - - if( SU.IsEmpty() ) { - return ; - } - - /* Here SU contains new edges to find new faces to suppress */ - /* Define the list of faces of SU edges that aren't in faces of MSfacesSuppress in order to add into */ - /* For each edge we have a map of all its faces : it's in 'aMapEdgesFaces' */ - TopTools_MapOfShape MSfacesTmp ; - for( int v=1; v<=SU.Length(); v++ ) { - TopoDS_Shape E = SU.Value(v) ; - TopoDS_Shape F ; - TopTools_ListOfShape LF ; - int ind = aMapEdgesFaces.FindIndex(E) ; - - /* LF is the list of faces for an edge of SU : may be empty no matter */ - LF = aMapEdgesFaces.FindFromIndex(ind) ; - - TopTools_ListIteratorOfListOfShape it ; - for( it.Initialize(LF); it.More(); it.Next() ) { - F = it.Value() ; - if( withEndFace == false ) { - if( F.IsSame(aFace) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHoleSubRoutine() : hole traversing or ?", SALOME::BAD_PARAM); - if( !MSfacesSuppress.Contains(F) ) { - MSfacesSuppress.Add(F) ; - MSfacesTmp.Add(F) ; // Dont remove the 'if' ! - } - } - else { /* withEndFace == true */ - if( F.IsSame(aFace) && !F.IsSame(endFace) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHoleSubRoutine() : hole traversing incoherent ?", SALOME::BAD_PARAM); - - if( F.IsSame(endFace) ) { - /* We have reached endFace if selection was correct so we add */ - /* edge in a map to find later the corresponding endWire (hole */ - MSwireEndEdges.Add(E) ; - } - else { - if( !MSfacesSuppress.Contains(F) ) { - MSfacesSuppress.Add(F) ; - MSfacesTmp.Add(F) ; - } - } - } - } - } - /* Call recursively this routine */ - SuppressHoleSubRoutine( mainShape, aFace, SSedgesOfWire, aMapEdgesFaces, MSfacesTmp, MSfacesSuppress, withEndFace, endFace, MSwireEndEdges ) ; -} - - - -//================================================================================ -// function : GetShapeFromIndex() -// purpose : Find 'tds' a sub shape of 'aShape' according to 'aList' that contains -// : a unique index ! -// : Warning : index must be setted with the same exploration logic ! -// : So 'index' is calculated with no shape doublons ! -//================================================================================ -bool GEOM_Gen_i::GetShapeFromIndex( const TopoDS_Shape& aShape, - const TopAbs_ShapeEnum aType, - const int index, - TopoDS_Shape& tds ) - -{ - if (aShape.IsNull() || index < 1) - return false ; - /* Indices start at 1 */ - int j = 1 ; - bool found = false ; - TopExp_Explorer exp ; - TopTools_MapOfShape M; - for( exp.Init( aShape, aType ); exp.More(); exp.Next() ) { - if( M.Add(exp.Current()) ) { /* if not a doublon : we compare */ - if( index == j ) { - tds = exp.Current() ; - return true ; - } - j++ ; - } - } - return false ; -} - - - -//================================================================================ -// function : SuppressHolesInFaceOrShell() Main method. -// purpose : Suppress holes identified by wires in a single face or shell -// -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::SuppressHolesInFaceOrShell( GEOM::GEOM_Shape_ptr shapeFaceShell, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListIdWires ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - - if( ListIdWires.length() < 1 ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHolesInFace : no holes selected", SALOME::BAD_PARAM); - - const TopoDS_Shape tds = GetTopoShape(shapeFaceShell) ; - if( tds.IsNull() || !IsValid(tds) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHolesInFace() : non valid main argument", SALOME::BAD_PARAM); - - /* Create a map of wires/holes to suppress */ - TopTools_MapOfShape MapHoles ; - for ( int i = 0; i < ListIdWires.length(); i++ ) { - TopoDS_Shape W ; - if( !GetShapeFromIndex( tds, TopAbs_WIRE, ListIdWires[i], W ) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHolesInFace() : bad index ?", SALOME::BAD_PARAM); - MapHoles.Add( W ) ; - } - - /* Test if argument is a face or shell */ - bool isFace ; - if( tds.ShapeType() == TopAbs_FACE ) - isFace = true ; - else if ( tds.ShapeType() == TopAbs_SHELL ) - isFace = false ; - else - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHolesInFace() : not a face or a shell", SALOME::BAD_PARAM); - - /* Define two maps : all faces and faces to that will be modified */ - TopTools_MapOfShape MapFacesToModify ; - TopTools_MapOfShape MapFacesAll ; - TopExp_Explorer expF ; - for( expF.Init( tds, TopAbs_FACE); expF.More(); expF.Next() ) { - TopoDS_Face F = TopoDS::Face( expF.Current() ) ; - MapFacesAll.Add(F) ; - TopExp_Explorer expW ; - for( expW.Init( F, TopAbs_WIRE); expW.More(); expW.Next() ) { - TopoDS_Wire W = TopoDS::Wire( expW.Current() ) ; - if( MapHoles.Contains(W) ) { - MapFacesToModify.Add(F) ; - } - } - } - - /* Define faces not modified */ - TopTools_MapOfShape MapFacesNotModified ; - TopTools_MapIteratorOfMapOfShape it ; - for( it.Initialize(MapFacesAll); it.More(); it.Next() ) { - TopoDS_Face FF = TopoDS::Face( it.Key() ) ; - if( !MapFacesToModify.Contains(FF) ) - MapFacesNotModified.Add(FF) ; - } - - if( MapFacesToModify.IsEmpty() ) - THROW_SALOME_CORBA_EXCEPTION("Error : empty map of faces", SALOME::BAD_PARAM); - - if( isFace && MapFacesToModify.Extent() != 1 ) - THROW_SALOME_CORBA_EXCEPTION("Incoherent", SALOME::BAD_PARAM); - - /* Main argument is a face */ - if( isFace && MapFacesToModify.Extent() == 1 ) { - TopoDS_Face resultFace ; - if( !RebuildFaceRemovingHoles( TopoDS::Face(tds), MapHoles, resultFace ) ) - THROW_SALOME_CORBA_EXCEPTION(" Problem : !RebuildFaceRemovingHoles()", SALOME::BAD_PARAM); - /* Creation of CORBA object : face topology */ - result = CreateObject(resultFace); - InsertInLabelOneArgument(tds, shapeFaceShell, resultFace, result, myCurrentOCAFDoc) ; - return result ; - } - - /* Main argument is a shell : rebuild faces modified */ - TopTools_MapOfShape MapFacesModified ; - for( it.Initialize(MapFacesToModify); it.More(); it.Next() ) { - TopoDS_Face FF = TopoDS::Face( it.Key() ) ; - TopoDS_Face resF ; - if( !RebuildFaceRemovingHoles( FF, MapHoles, resF ) ) - THROW_SALOME_CORBA_EXCEPTION(" Problem shell : !RebuildFaceRemovingHoles()", SALOME::BAD_PARAM); - MapFacesModified.Add(resF) ; - } - - /* Rebuild the shell with faces modified and non modified */ - TopoDS_Shell resultShell ; - BRepPrim_Builder B; - B.MakeShell(resultShell) ; - TopTools_MapIteratorOfMapOfShape it1 ; - for( it1.Initialize(MapFacesModified); it1.More(); it1.Next() ) - B.AddShellFace( resultShell,TopoDS::Face( it1.Key() ) ) ; - for( it1.Initialize(MapFacesNotModified); it1.More(); it1.Next() ) - B.AddShellFace( resultShell,TopoDS::Face( it1.Key() ) ) ; - - B.CompleteShell(resultShell) ; - - if( resultShell.IsNull() ) - THROW_SALOME_CORBA_EXCEPTION("Null or not valid result Shell", SALOME::BAD_PARAM) ; - - /* Creation of CORBA object : shell topology */ - result = CreateObject(resultShell); - InsertInLabelOneArgument(tds, shapeFaceShell, resultShell, result, myCurrentOCAFDoc) ; - return result ; -} - - -//================================================================================ -// function : RebuildFaceRemovingHoles() -// purpose : Rebuild a face removing holes that are in 'mapHoles'. -// : NB : 'mapHoles' may content more holes than necessary -//================================================================================ -bool GEOM_Gen_i::RebuildFaceRemovingHoles( const TopoDS_Face& aFace, - const TopTools_MapOfShape& mapHoles, - TopoDS_Shape& resultFace ) -{ - /* Get the outer wire of the face 'aFace' */ - TopoDS_Wire outW = BRepTools::OuterWire( aFace ) ; - if( outW.IsNull() || !IsValid(outW) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHolesInFace : bad outer wire of 'aFace'", SALOME::BAD_PARAM); - - /* Rebuild a face avoiding holes in the map 'mapHoles' */ - Handle(Geom_Surface) Surface = BRep_Tool::Surface(aFace) ; - TopoDS_Face F2 = BRepBuilderAPI_MakeFace( Surface, outW, true ) ; - - if( F2.Orientation() != aFace.Orientation() ) - F2.Orientation( aFace.Orientation() ) ; - - BRepBuilderAPI_MakeFace aBuilder( F2 ) ; - bool foundAndKeepHoles = false ; - TopExp_Explorer exp ; - - for( exp.Init( aFace, TopAbs_WIRE); exp.More(); exp.Next() ) { - TopoDS_Wire hole = TopoDS::Wire( exp.Current() ) ; - if( !mapHoles.Contains(hole) && !exp.Current().IsEqual(outW) ) { - aBuilder.Add( hole) ; - if( !aBuilder.IsDone() ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHolesInFace : builder problem !", SALOME::BAD_PARAM); - - resultFace = TopoDS::Face(aBuilder) ; - foundAndKeepHoles = true ; - } - } - - if( !foundAndKeepHoles ) - resultFace = F2 ; - else - resultFace = TopoDS::Face(aBuilder) ; - - return true ; -} - - - - -//================================================================================ -// function : SuppressHole() Main method. -// purpose : Suppress an hole identified by a wire in a face of shape -// : ListIdFace contains a unique index of face in shape -// : ListIdWire contains a unique index of wire in face !!! -// : ListIdEndFace is used only when hole traverse. -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::SuppressHole( GEOM::GEOM_Shape_ptr shape, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListIdFace, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListIdWire, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListIdEndFace ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Face aFace ; - TopoDS_Wire aWire ; - TopoDS_Face endFace ; - bool withEndFace ; - TopoDS_Shape tmp ; - - /* Retrieve 'aShape' the initial main shape selection */ - const TopoDS_Shape aShape = GetTopoShape(shape); - - if( !IsValid(aShape) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHole() : non valid main shape", SALOME::BAD_PARAM); - - if( ListIdFace.length() != 1 || ListIdWire.length() != 1 ) - THROW_SALOME_CORBA_EXCEPTION("bad list", SALOME::BAD_PARAM); - - /* Retrieve 'aFace' selection */ - if( !GetShapeFromIndex( aShape, TopAbs_FACE, ListIdFace[0], tmp ) ) { - THROW_SALOME_CORBA_EXCEPTION("face not found", SALOME::BAD_PARAM); - } - else { - aFace = TopoDS::Face(tmp) ; - } - if( !IsValid(aFace) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHole() : face shape not valid", SALOME::BAD_PARAM); - - /* Retrieve 'aWire' selection : Warning : index of wire refers to the face ! */ - TopoDS_Shape aTmp ; - if( !GetShapeFromIndex( aFace, TopAbs_WIRE, ListIdWire[0], aTmp ) ) { - THROW_SALOME_CORBA_EXCEPTION("wire not found", SALOME::BAD_PARAM); - } - else { - aWire = TopoDS::Wire(aTmp) ; - } - if( !IsValid(aWire) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHole() : bad wire" , SALOME::BAD_PARAM); - - /* Get the outer wire of aFace */ - TopoDS_Wire outerW = BRepTools::OuterWire( aFace ) ; - if( outerW.IsNull() || !IsValid(outerW) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHole() : bad outer wire", SALOME::BAD_PARAM); - - /* Test bad user selection aWire */ - if( aWire.IsSame(outerW) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHole() : outerW = aWire", SALOME::BAD_PARAM); - - /* Test if 'endFace' is used as argument and seems to be a valid one */ - /* NB : 'endFace' is optional and used when hole to suppress traverse 'aShape' */ - if( ListIdEndFace.length() == 0 ) { - withEndFace = false ; - } - else { - TopoDS_Shape aTemp ; - if( !GetShapeFromIndex( aShape, TopAbs_FACE, ListIdEndFace[0], aTemp ) || tmp.IsNull() || !IsValid(aTemp) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHole() : non valid endFace", SALOME::BAD_PARAM); - - /* Test if 'endFace' as at least one hole */ - endFace = TopoDS::Face(aTemp) ; - - TopExp_Explorer fExp ; - int nbWires = 0 ; - for( fExp.Init(endFace, TopAbs_WIRE); fExp.More(); fExp.Next() ) { - TopoDS_Wire W = TopoDS::Wire( fExp.Current() ) ; - if( !W.IsNull() && IsValid(W) ) - nbWires++ ; - } - if(nbWires > 1) - withEndFace = true ; /* at least 2 wires : outer wire plus an hole or more */ - else - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SuppressHole() : end face selection ?", SALOME::BAD_PARAM); - } - - /* Find edges of aWire and test if degenerated */ - TopTools_SequenceOfShape SSedgesOfWire ; - TopExp_Explorer wireExp ; - for( wireExp.Init(aWire, TopAbs_EDGE); wireExp.More(); wireExp.Next() ) { - TopoDS_Edge E = TopoDS::Edge( wireExp.Current() ) ; - if( E.IsNull() || BRep_Tool::Degenerated(E) ) { - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SupressHole() : found bad edge", SALOME::BAD_PARAM); - } - else { - SSedgesOfWire.Append( wireExp.Current() ) ; - } - } - if( SSedgesOfWire.Length() < 1 ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SupressHole() : no edge(s) for aWire", SALOME::BAD_PARAM); - - /* Retrieve face ancestors of all edges of 'aWire' but avoiding 'aFace' */ - - TopTools_IndexedDataMapOfShapeListOfShape aMapEdgesFaces; - TopTools_MapIteratorOfMapOfShape anIt ; - TopTools_MapOfShape MFSuppress ; - TopTools_MapOfShape MFSuppressTmp ; - bool wireOnFace = false ; - - TopExp::MapShapesAndAncestors(aShape, TopAbs_EDGE, TopAbs_FACE, aMapEdgesFaces) ; - for( int h=1; h<=SSedgesOfWire.Length(); h++ ) { - - TopoDS_Shape anEdgeOfWire = SSedgesOfWire.Value(h) ; - int ind = aMapEdgesFaces.FindIndex(anEdgeOfWire) ; - if(ind < 1) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SupressHole() : index of edge", SALOME::BAD_PARAM); - - TopTools_ListOfShape LF; - LF = aMapEdgesFaces.FindFromIndex(ind) ; /* Contains all faces ancestors of an edge of wire */ - if( LF.IsEmpty() ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SupressHole() : no face for an edge", SALOME::BAD_PARAM); - - /* Filter faces avoiding 'aFace' */ - TopTools_ListIteratorOfListOfShape it ; - for( it.Initialize(LF); it.More(); it.Next() ) { - TopoDS_Face F = TopoDS::Face( it.Value() ) ; - if( !F.IsSame(aFace) ) { - MFSuppressTmp.Add(F) ; - MFSuppress.Add(F) ; - } - else { - wireOnFace = true ; - } - } - } - - if( !wireOnFace ) { - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SupressHole() : wire not on selected face", SALOME::BAD_PARAM); - } - - /* Call routine to define faces to suppress and and optional endWire on endFace */ - TopTools_MapOfShape MSwireEndEdges ; /* will contain edges of final wire (hole) */ - SuppressHoleSubRoutine( aShape, aFace, SSedgesOfWire, aMapEdgesFaces, MFSuppressTmp, MFSuppress, withEndFace, endFace, MSwireEndEdges ) ; - - TopoDS_Wire endWire ; - if( withEndFace ) { - - if( MSwireEndEdges.Extent() < 1 ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SupressHole() : MSwireEndEdges.Extent() < 1", SALOME::BAD_PARAM); - - if( !FindCompareWireHoleOnFace( endFace, MSwireEndEdges, endWire ) ) - THROW_SALOME_CORBA_EXCEPTION("in GEOM_Gen_i::SupressHole() : no endWire found", SALOME::BAD_PARAM); - } - - /* Build 'resTds' : a shape containing a compound of faces */ - TopoDS_Shape resTds; - if( !withEndFace && !BuildShapeHoleNotTraversing( aShape, aFace, aWire, MFSuppress, resTds ) ) - THROW_SALOME_CORBA_EXCEPTION("Rebuild result shape has aborted", SALOME::BAD_PARAM); - - if( withEndFace && !BuildShapeHoleTraversing( aShape, aFace, aWire, MFSuppress, endFace, endWire, resTds ) ) - THROW_SALOME_CORBA_EXCEPTION("Rebuild result shape has aborted (end hole)", SALOME::BAD_PARAM); - - /* Reconstruction of final shape with 'resTds' : a compound of faces after hole suppressing */ - /* Actual limitation is : 'aShape' must not contain more than a solid or a shell ! */ - TopoDS_Shape finalShape ; - - TopExp_Explorer exp ; - unsigned int nbSolid = 0 ; - TopoDS_Solid aSolid ; - for( exp.Init(aShape, TopAbs_SOLID); exp.More(); exp.Next() ) { - aSolid = TopoDS::Solid( exp.Current() ) ; - nbSolid++ ; - if( nbSolid > 1 ) - THROW_SALOME_CORBA_EXCEPTION("Limitation : main shape contents more than one solid", SALOME::BAD_PARAM); - } - - unsigned int nbShell = 0 ; - TopoDS_Shell aShell ; - for( exp.Init(aShape, TopAbs_SHELL); exp.More(); exp.Next() ) { - aShell = TopoDS::Shell( exp.Current() ) ; - nbShell++ ; - if( nbShell > 1 ) - THROW_SALOME_CORBA_EXCEPTION("Limitation : main shape contents more than one shell", SALOME::BAD_PARAM); - } - - /* No shells and no solids : can send a compound even for a single face, see GUI ! */ - if( nbShell == 0 ) { - finalShape = resTds ; - } - - /* a shell */ - TopoDS_Shell shellResult ; - if( nbShell == 1 ) { - if ( !BuildShellWithFaceCompound( TopoDS::Compound(resTds), shellResult ) ) - THROW_SALOME_CORBA_EXCEPTION("Error after BuildShellWithFaceCompound()", SALOME::BAD_PARAM); - finalShape = shellResult ; - } - - /* a solid with a shell */ - if( nbSolid == 1 && nbShell == 1) { - BRepBuilderAPI_MakeSolid B; - B.Add(shellResult) ; - if( !B.IsDone() ) - THROW_SALOME_CORBA_EXCEPTION("Error : !B.IsDone()", SALOME::BAD_PARAM); - finalShape = B.Solid() ; - } - - result = CreateObject(finalShape); - InsertInLabelOneArgument(aShape, shape, finalShape, result, myCurrentOCAFDoc) ; - return result ; -} - - - -//================================================================================ -// function : BuildShellWithFaceCompound() -// purpose : Build a shell with a compound of faces. -//================================================================================ -bool GEOM_Gen_i::BuildShellWithFaceCompound( const TopoDS_Compound Comp, - TopoDS_Shell& resultShell ) -{ - resultShell.Nullify() ; - BRepPrim_Builder B ; - B.MakeShell(resultShell) ; - TopExp_Explorer ex ; - int i = 0 ; - for( ex.Init( Comp, TopAbs_FACE); ex.More(); ex.Next() ) { - TopoDS_Face F = TopoDS::Face( ex.Current() ) ; - if( !IsValid(F) ) { - return false ; - } - B.AddShellFace( resultShell, F ) ; - } - B.CompleteShell(resultShell) ; - if( resultShell.IsNull() ) { - return false ; - } - return true ; -} - - -//================================================================================ -// function : FindCompareWireHoleOnFace() -// purpose : Try to find a wire on 'aFace' which edges are same than those -// : into 'MSwireEdges' map. 'aFoundWire' is defined and 'true' returned. -// : 'MSwireEdges' represents generally an hole an 'aFace'. -// : The outer wire of 'aFace' is avoided ! -//================================================================================ -bool GEOM_Gen_i::FindCompareWireHoleOnFace( const TopoDS_Face& F, - const TopTools_MapOfShape& MSwireEdges, - TopoDS_Wire& aFoundWire ) -{ - aFoundWire.Nullify() ; - - if( F.IsNull() ) - return false ; - - /* Get the outer wire of aFace */ - TopoDS_Wire outerW = BRepTools::OuterWire(F) ; - if( outerW.IsNull() || !IsValid(outerW) ) { - return false ; - } - - int nbEdges = MSwireEdges.Extent() ; - if( nbEdges < 1 ) { - return false ; - } - - TopExp_Explorer exp1 ; - TopExp_Explorer exp2 ; - for ( exp1.Init(F, TopAbs_WIRE) ; exp1.More(); exp1.Next() ) { - TopoDS_Wire W = TopoDS::Wire( exp1.Current() ) ; - int i = 0 ; - if( !W.IsSame(outerW) ) { - for ( exp2.Init( W, TopAbs_EDGE) ; exp2.More(); exp2.Next() ) { - TopoDS_Edge E = TopoDS::Edge( exp2.Current() ) ; - if( MSwireEdges.Contains(E) ) { - i++ ; - if( i == nbEdges ) { - aFoundWire = W ; - return true ; - } - } - } - } - } - return false ; -} - - -//================================================================================ -// function : BuildShapeHoleNotTraversing() -// purpose : Define 'resultTds' a reconstruction of 'aShape' after modification -// : on 'aFace' where 'aWire is removed' and suppression of faces 'MFSuppress' -// : ( Used as a sub routine of SuppressHole() ) -//================================================================================ -bool GEOM_Gen_i::BuildShapeHoleNotTraversing( const TopoDS_Shape& aShape, - const TopoDS_Face& aFace, - const TopoDS_Wire& aWire, - const TopTools_MapOfShape& MFSuppress, - TopoDS_Shape& resultTds ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - BRep_Builder B; - TopExp_Explorer exp ; - TopoDS_Face newFace ; - - resultTds.Nullify() ; - TopoDS_Compound Comp ; - B.MakeCompound (Comp); - - try { - - /* Explore all faces of 'aShape' to rebuild a compound */ - for ( exp.Init(aShape, TopAbs_FACE) ; exp.More(); exp.Next() ) { - - TopoDS_Face F1 = TopoDS::Face( exp.Current() ); - /* Rebuild face(s) not suppressed */ - if( !MFSuppress.Contains(F1) ) { - - if( F1.IsEqual( aFace ) ) { - TopTools_MapOfShape MSwire ; - MSwire.Add(aWire) ; - if( !RebuildFaceRemovingHoles(aFace, MSwire, newFace) ) { - return false ; - } - B.Add( Comp, newFace ) ; - } - else { - /* For any other face not suppressed */ - B.Add( Comp, F1 ) ; - } - } - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("in BuildShapeHoleNotTraversing() : Exception catched", SALOME::BAD_PARAM); - } - resultTds = Comp ; - return true ; -} - - - -//================================================================================ -// function : BuildShapeHoleTraversing() -// purpose : Define 'resultTds' a reconstruction of 'aShape' after modifications. -// : On 'aFace' 'aWire is removed' -// : On 'endFace' 'endWire' is removed. -// : Faces of 'MFSuppress' are removed. -// : ( Used as a sub routine of SuppressHole() ) -//================================================================================ -bool GEOM_Gen_i::BuildShapeHoleTraversing( const TopoDS_Shape& aShape, - const TopoDS_Face& aFace, - const TopoDS_Wire& aWire, - const TopTools_MapOfShape& MFSuppress, - const TopoDS_Face& endFace, - const TopoDS_Wire& endWire, - TopoDS_Shape& resultTds ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - BRep_Builder B; - TopExp_Explorer exp ; - TopoDS_Face newFace ; - - resultTds.Nullify() ; - TopoDS_Compound Comp ; - B.MakeCompound (Comp); - - /* Necessary to use general method */ - TopTools_MapOfShape MSwire1 ; - MSwire1.Add(aWire) ; - TopTools_MapOfShape MSwire2 ; - MSwire2.Add(endWire) ; - - try { - - /* Explore all faces of 'aShape' to rebuild a compound */ - for ( exp.Init(aShape, TopAbs_FACE) ; exp.More(); exp.Next() ) { - TopoDS_Face F1 = TopoDS::Face( exp.Current() ); - - /* Rebuild face(s) not suppressed */ - if( !MFSuppress.Contains(F1) ) { - - /* Rebuild 'aFace' */ - if( F1.IsEqual( aFace ) && !F1.IsEqual( endFace ) ) { - if( !RebuildFaceRemovingHoles(aFace, MSwire1, newFace) ) { - return false ; - } - B.Add(Comp, newFace) ; - } - - /* Rebuild 'endFace' */ - if( !F1.IsEqual( aFace ) && F1.IsEqual( endFace ) ) { - if( !RebuildFaceRemovingHoles(endFace, MSwire2, newFace) ) { - return false ; - } - B.Add(Comp, newFace) ; - } - - /* Hole in the same face : aFace = endFace */ - if( F1.IsEqual( aFace ) && F1.IsEqual( endFace ) ) { - TopoDS_Face FF ; - if( !RebuildFaceRemovingHoles(aFace, MSwire1, newFace) || !RebuildFaceRemovingHoles(newFace, MSwire2, FF) ) { - return false ; - } - B.Add( Comp, FF ) ; - } - - /* For any other face not suppressed */ - if( !F1.IsEqual(aFace) && !F1.IsEqual( endFace ) ) { - B.Add( Comp, F1 ) ; - } - - } - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("in BuildShapeHoleTraversing() : Exception catched", SALOME::BAD_PARAM); - } - resultTds = Comp ; - return true ; -} - -//======================================================================= -//function : SortShapes -//purpose : -//======================================================================= - -static void SortShapes(TopTools_ListOfShape& SL) -{ - Standard_Integer MaxShapes = SL.Extent(); - TopTools_Array1OfShape aShapes (1,MaxShapes); - TColStd_Array1OfInteger OrderInd(1,MaxShapes); - TColStd_Array1OfReal MidXYZ (1,MaxShapes); //X,Y,Z; - TColStd_Array1OfReal Length (1,MaxShapes); //X,Y,Z; - - // Computing of CentreOfMass - Standard_Integer Index; - GProp_GProps GPr; - gp_Pnt GPoint; - TopTools_ListIteratorOfListOfShape it(SL); - for (Index=1; it.More(); Index++) - { - TopoDS_Shape S = it.Value(); - SL.Remove( it ); // == it.Next() - aShapes(Index) = S; - OrderInd.SetValue (Index, Index); - if (S.ShapeType() == TopAbs_VERTEX) - { - GPoint = BRep_Tool::Pnt( TopoDS::Vertex( S )); - Length.SetValue( Index, (Standard_Real) S.Orientation()); - } - else - { - BRepGProp::LinearProperties (S, GPr); - GPoint = GPr.CentreOfMass(); - Length.SetValue( Index, GPr.Mass() ); - } - MidXYZ.SetValue(Index, - GPoint.X()*999 + GPoint.Y()*99 + GPoint.Z()*0.9); - } - // Sorting - Standard_Integer aTemp; - Standard_Boolean exchange, Sort = Standard_True; - while (Sort) - { - Sort = Standard_False; - for (Index=1; Index < MaxShapes; Index++) - { - if (MidXYZ(OrderInd(Index)) > MidXYZ(OrderInd(Index+1))) - exchange = Standard_True; - else if (MidXYZ(OrderInd(Index)) == MidXYZ(OrderInd(Index+1)) && - Length(OrderInd(Index)) > Length(OrderInd(Index+1)) ) - exchange = Standard_True; - else - exchange = Standard_False; - if (exchange) - { - aTemp = OrderInd(Index); - OrderInd(Index) = OrderInd(Index+1); - OrderInd(Index+1) = aTemp; - Sort = Standard_True; - } - } - } - for (Index=1; Index <= MaxShapes; Index++) - SL.Append( aShapes( OrderInd(Index) )); -} - -//================================================================================ -// function : SubShape() -// purpose : Method for GUI or TUI -//================================================================================ - -GEOM::GEOM_Shape_ptr GEOM_Gen_i::SubShape(GEOM::GEOM_Shape_ptr shape, - CORBA::Short ShapeType, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - return SubShapesOne(shape, (TopAbs_ShapeEnum) ShapeType, ListOfID); -} - -//================================================================================ -// function : SubShapeSorted() -// purpose : Method for GUI or TUI -//================================================================================ - -GEOM::GEOM_Shape_ptr GEOM_Gen_i::SubShapeSorted(GEOM::GEOM_Shape_ptr shape, - CORBA::Short ShapeType, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - return SubShapesOne(shape, (TopAbs_ShapeEnum) ShapeType, ListOfID, Standard_True); -} - -//================================================================================ -// function : SubShapesOne() -// purpose : -//================================================================================ - -GEOM::GEOM_Shape_ptr GEOM_Gen_i::SubShapesOne( GEOM::GEOM_Shape_ptr shape, - const TopAbs_ShapeEnum ShapeType, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID, - const Standard_Boolean Sort) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape mainShape; - TopoDS_Shape mainTopo = GetTopoShape(shape); - - bool main = false; - while ( !main ) { - if ( shape->IsMainShape() ) { - mainShape = GetTopoShape(shape); - main = true; - } else - shape = GetIORFromString( shape->MainName() ); - } - - if(ListOfID.length() < 1) { - THROW_SALOME_CORBA_EXCEPTION("In GEOM_Gen_i::SubShape() : bad list of shapes", - SALOME::BAD_PARAM); - } - - /* Create a sequence of all sub shapes */ - TopTools_ListOfShape listShape; - - TopTools_MapOfShape mapShape; - TopExp_Explorer exp ; - for ( exp.Init( mainShape, TopAbs_ShapeEnum(ShapeType)) ; exp.More(); exp.Next() ) { - if ( mapShape.Add( exp.Current() ) ) - listShape.Append ( exp.Current() ); - } - - if (listShape.IsEmpty()) return shape; - - if (Sort) - SortShapes(listShape); - - TopTools_SequenceOfShape SS; - TopTools_ListIteratorOfListOfShape it (listShape); - for (; it.More(); it.Next()) - SS.Append( it.Value() ); - - TopoDS_Shape SubShape; - if (ListOfID.length() == 1) - SubShape = SS.Value(ListOfID[0]); - else - { - BRep_Builder B; - TopoDS_Compound Comp; - B.MakeCompound (Comp); - unsigned int ind; - for ( ind = 0; ind < ListOfID.length(); ind++ ) - B.Add( Comp, SS.Value(ListOfID[ind]) ); - SubShape = Comp; - } - - if ( !TNaming_Tool::HasLabel( myCurrentOCAFDoc->Main(), SubShape ) ) - result = CreateSubObject( SubShape, shape, ListOfID); - else { - int TransDef; - TDF_Label Lab = TNaming_Tool::Label( myCurrentOCAFDoc->Main(), SubShape, TransDef ); - Handle(TDataStd_Name) Att; - if ( Lab.FindAttribute( TDataStd_Name::GetID(), Att ) ) { - TCollection_AsciiString nameIOR( Att->Get() ); - result = GEOM::GEOM_Shape::_narrow(_orb->string_to_object( nameIOR.ToCString() )); - if ( strcmp( result->MainName(), _orb->object_to_string(shape) ) != 0 ) { - result = CreateSubObject( SubShape, shape, ListOfID); - } - } - } - - return result; -} - - -//================================================================================ -// function : SubShapeAll() -// purpose : Explode a shape in all sub shapes with a type (Method for TUI or GUI) -//================================================================================ - -GEOM::GEOM_Gen::ListOfGeomShapes* GEOM_Gen_i::SubShapeAll(GEOM::GEOM_Shape_ptr shape, - CORBA::Short ShapeType) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - return SubShapesAll(shape, (TopAbs_ShapeEnum) ShapeType); -} - -//================================================================================ -// function : SubShapeAllSorted() -// purpose : Explode a shape in all sub shapes with a type (Method for TUI or GUI) -//================================================================================ - -GEOM::GEOM_Gen::ListOfGeomShapes* GEOM_Gen_i::SubShapeAllSorted(GEOM::GEOM_Shape_ptr shape, - CORBA::Short ShapeType) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - return SubShapesAll(shape, (TopAbs_ShapeEnum) ShapeType, Standard_True); -} - -//================================================================================ -// function : SubShapeAllSorted() -// purpose : -//================================================================================ - -GEOM::GEOM_Gen::ListOfGeomShapes* GEOM_Gen_i::SubShapesAll(GEOM::GEOM_Shape_ptr shape, - const TopAbs_ShapeEnum ShapeType, - const Standard_Boolean Sort) - throw (SALOME::SALOME_Exception) -{ - /* List of sub shapes returned */ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Gen::ListOfGeomShapes_var listOfGeomShapes = new GEOM::GEOM_Gen::ListOfGeomShapes; - listOfGeomShapes->length(0) ; - - TopoDS_Shape mainTopo = GetTopoShape(shape); - TopoDS_Shape mainShape; - bool main = false; - while ( !main ) { - if ( shape->IsMainShape() ) { - mainShape = GetTopoShape(shape); - main = true; - } else - shape = GetIORFromString( shape->MainName() ); - } - - if( mainTopo.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("In GEOM_Gen_i::SubShapeAll() : null main shape", - SALOME::BAD_PARAM); - } - - /* List/index : field set for any sub shape */ - GEOM::GEOM_Shape::ListOfSubShapeID_var ListOfID = new GEOM::GEOM_Shape::ListOfSubShapeID; - ListOfID->length(1) ; - - // retrieve all subshapes - TopTools_MapOfShape mapShape; - TopTools_ListOfShape listShape; - - if (mainTopo.ShapeType()==TopAbs_COMPOUND && ShapeType==TopAbs_SHAPE) - { - TopoDS_Iterator It(mainTopo,Standard_True,Standard_True ); - for ( ; It.More(); It.Next() ) - if (mapShape.Add( It.Value() )) - listShape.Append( It.Value() ); - } - else - { - TopExp_Explorer exp ( mainTopo, ShapeType); - for ( ; exp.More(); exp.Next() ) - if (mapShape.Add( exp.Current() )) - listShape.Append( exp.Current() ); - } - - if (Sort) - SortShapes(listShape); - - /* Create all sub shapes */ - int index; - GEOM::GEOM_Shape_var result; - - TopTools_ListIteratorOfListOfShape itSub (listShape); - for (index = 1; itSub.More(); itSub.Next(), ++index) - { - const TopoDS_Shape& SubShape = itSub.Value(); - // check if SubShape is already in OCAFDS and ... - if ( TNaming_Tool::HasLabel( myCurrentOCAFDoc->Main(), SubShape ) ) - { - int TransDef; - TDF_Label Lab = TNaming_Tool::Label( myCurrentOCAFDoc->Main(), SubShape, TransDef ); - Handle(TDataStd_Name) Att; - if ( Lab.FindAttribute( TDataStd_Name::GetID(), Att ) ) - { - TCollection_AsciiString nameIOR( Att->Get() ); - result = GEOM::GEOM_Shape::_narrow(_orb->string_to_object( nameIOR.ToCString() )); - // ... it is subshape of - if ( strcmp( result->MainName(), _orb->object_to_string(shape) ) == 0 ) - { - listOfGeomShapes->length(index) ; - listOfGeomShapes[index-1] = result ; - continue; - } - } - } - -// if (Sort) -// ListOfID[0] = index; -// else - ListOfID[0] = GetIndexTopology( SubShape, mainShape ) ; - result = CreateSubObject( SubShape, shape, ListOfID); - /* Add each sub shape in the list returned */ - listOfGeomShapes->length(index) ; - listOfGeomShapes[index-1] = result ; - } - - return listOfGeomShapes._retn() ; -} - -//================================================================================= -// function : MakeBoolean() -// purpose : Boolean operation according to the type 'operation' -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeBoolean(GEOM::GEOM_Shape_ptr shape1, - GEOM::GEOM_Shape_ptr shape2, - CORBA::Long operation) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape shape ; - TopoDS_Shape aShape1 ; - TopoDS_Shape aShape2 ; - - try { - aShape1 = GetTopoShape(shape1) ; - aShape2 = GetTopoShape(shape2) ; - - if( aShape1.IsNull() || aShape2.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Boolean aborted : argument shape is null", SALOME::BAD_PARAM); - } - - switch (operation) - { - case 1 : /* Common */ - shape = BRepAlgoAPI_Common(aShape1, aShape2).Shape(); - break ; - case 2 : /* Cut */ - shape = BRepAlgoAPI_Cut(aShape1, aShape2).Shape(); - break ; - case 3 : /* Fuse */ - shape = BRepAlgoAPI_Fuse(aShape1, aShape2).Shape(); - break ; - case 4 : /* Section */ - shape = BRepAlgoAPI_Section(aShape1, aShape2).Shape(); - break ; - default : - MESSAGE("Boolean operation not known : " << operation ) ; - return result ; - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in boolean operation", SALOME::BAD_PARAM); - } - - /* We test the validity of resulting shape */ - if( !IsValid(shape) ) { - THROW_SALOME_CORBA_EXCEPTION("Boolean aborted : non valid shape result", SALOME::BAD_PARAM); - } - - result = CreateObject(shape) ; - - /* put shape and name into geom/OCAF doc */ - GEOMDS_Commands GC(myCurrentOCAFDoc->Main()); - /* add attributs 'shape' and' name_io'r in a new label */ - TDF_Label Lab = GC.Generated(aShape1, shape, result->Name() ); - TCollection_AsciiString entry; - TDF_Tool::Entry(Lab, entry); - result->ShapeId( entry.ToCString() ) ; - - /* Create a new label */ - TDF_Label NewLab = Lab.NewChild(); - TCollection_ExtendedString Value("Arguments"); - TDataStd_Name::Set(NewLab,Value); - - TDF_Label NewLab1 = NewLab.NewChild(); - TDF_Label RefLab; - TDF_Tool::Label(myCurrentOCAFDoc->GetData(), shape1->ShapeId(), RefLab); - TDF_Reference::Set(NewLab1, RefLab); - - TDF_Label NewLab2 = NewLab.NewChild(); - TDF_Tool::Label(myCurrentOCAFDoc->GetData(), shape2->ShapeId(), RefLab); - TDF_Reference::Set(NewLab2, RefLab); - return result ; -} - - -//================================================================================= -// function : MakeFuse() -// purpose : Special purpose ! -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeFuse(GEOM::GEOM_Shape_ptr shape1, - GEOM::GEOM_Shape_ptr shape2) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape aShape1 = GetTopoShape(shape1) ; - TopoDS_Shape aShape2 = GetTopoShape(shape2) ; - if( aShape1.IsNull() || aShape2.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Fuse aborted : shape in argument is null", SALOME::BAD_PARAM); - } - TopoDS_Shape shape; - try { - shape = BRepAlgoAPI_Fuse(aShape1, aShape2).Shape(); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in Fuse operation", SALOME::BAD_PARAM); - } - - /* We test the validity of resulting shape */ - if( !IsValid(shape) ) { - THROW_SALOME_CORBA_EXCEPTION("Fuse aborted : non valid shape result", SALOME::BAD_PARAM); - } - - result = CreateObject(shape) ; - - /* put shape and name into geom/OCAF doc */ - GEOMDS_Commands GC(myCurrentOCAFDoc->Main()); - /* add attributs 'shape' and' name_io'r in a new label */ - TDF_Label Lab = GC.Generated(aShape1, shape, result->Name() ); - TCollection_AsciiString entry; - TDF_Tool::Entry(Lab, entry); - result->ShapeId( entry.ToCString() ) ; - - /* Create a new label */ - TDF_Label NewLab = Lab.NewChild(); - TCollection_ExtendedString Value("Arguments"); - TDataStd_Name::Set(NewLab,Value); - - TDF_Label NewLab1 = NewLab.NewChild(); - TDF_Label RefLab; - TDF_Tool::Label(myCurrentOCAFDoc->GetData(), shape1->ShapeId(), RefLab); - TDF_Reference::Set(NewLab1, RefLab); - - TDF_Label NewLab2 = NewLab.NewChild(); - TDF_Tool::Label(myCurrentOCAFDoc->GetData(), shape2->ShapeId(), RefLab); - TDF_Reference::Set(NewLab2, RefLab); - return result ; -} - - -//================================================================================ -// function : MakeAxisStruct() -// purpose : Create a structure GEOM::AxisStruct (see IDL file) -//================================================================================ -GEOM::AxisStruct GEOM_Gen_i::MakeAxisStruct(CORBA::Double x, - CORBA::Double y, - CORBA::Double z, - CORBA::Double vx, - CORBA::Double vy, - CORBA::Double vz) -{ - GEOM::AxisStruct A ; - A.x = x ; A.y = y ; A.z = z ; - A.vx = vx ; A.vy = vy ; A.vz = vz ; - return A ; -} - - -//================================================================================ -// function : MakePointStruct() -// purpose : Create a structure GEOM::PointStruct (see IDL file) -//================================================================================ -GEOM::PointStruct GEOM_Gen_i::MakePointStruct(CORBA::Double x, - CORBA::Double y, - CORBA::Double z) -{ - beginService( "GEOM_Gen_i::MakePointStruct" ); - GEOM::PointStruct p ; - p.x = x ; p.y = y ; p.z = z ; - endService( "GEOM_Gen_i::MakePointStruct" ); - return p ; -} - -//================================================================================ -// function : MakeDirection() -// purpose : Create a structure GEOM::DirStruct (see IDL file) -//================================================================================ -GEOM::DirStruct GEOM_Gen_i::MakeDirection(const GEOM::PointStruct& p) -{ - GEOM::DirStruct d ; - d.PS.x = p.x ; d.PS.y = p.y ; d.PS.z = p.z ; - return d ; -} - -//================================================================================= -// function : MakeBox() -// purpose : Create a box topology. -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeBox(CORBA::Double x1, - CORBA::Double y1, - CORBA::Double z1, - CORBA::Double x2, - CORBA::Double y2, - CORBA::Double z2) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - gp_Pnt P1(x1,y1,z1); - gp_Pnt P2(x2,y2,z2); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - try { - tds = BRepPrimAPI_MakeBox(P1,P2).Shape(); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeBox", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Box aborted : null shape", SALOME::BAD_PARAM); - } - - result = CreateObject(tds); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry) ; - return result; -} - - -//================================================================================ -// function : MakeCylinder -// purpose : Create a cylinder topology -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeCylinder(const GEOM::PointStruct& pstruct, - const GEOM::DirStruct& dstruct, - CORBA::Double radius, - CORBA::Double height) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape tds ; - gp_Pnt p(pstruct.x, pstruct.y, pstruct.z) ; - gp_Dir d(dstruct.PS.x, dstruct.PS.y, dstruct.PS.z) ; - gp_Ax2 axis(p, d) ; - - try { - tds = BRepPrimAPI_MakeCylinder(axis, radius, height).Shape(); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeCylinder", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Cylinder aborted", SALOME::BAD_PARAM); - } - result = CreateObject(tds); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result ; -} - -//================================================================================ -// function : MakeSphere() -// purpose : Make a sphere topology -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeSphere(CORBA::Double x1, - CORBA::Double y1, - CORBA::Double z1, - CORBA::Double radius) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - try { - tds = BRepPrimAPI_MakeSphere(gp_Pnt(x1,y1,z1), radius).Shape(); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeSphere", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Sphere aborted", SALOME::BAD_PARAM); - } - result = CreateObject(tds) ; - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result; -} - -//================================================================================ -// function : MakeTorus() -// purpose : Create a torus topology -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeTorus( const GEOM::PointStruct& pstruct, - const GEOM::DirStruct& dstruct, - CORBA::Double major_radius, - CORBA::Double minor_radius ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape tds ; - gp_Pnt p(pstruct.x, pstruct.y, pstruct.z) ; - gp_Dir d(dstruct.PS.x, dstruct.PS.y, dstruct.PS.z) ; - gp_Ax2 axis(p, d) ; - - try { - tds = BRepPrimAPI_MakeTorus(axis, major_radius, minor_radius).Shape(); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeTorus", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make torus aborted", SALOME::BAD_PARAM); - } - result = CreateObject(tds); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result ; -} - - -//================================================================================ -// function : MakeCone() -// purpose : Create a cone topology -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeCone(const GEOM::PointStruct& pstruct, - const GEOM::DirStruct& dstruct, - CORBA::Double radius1, - CORBA::Double radius2, - CORBA::Double height) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape tds ; - gp_Pnt p(pstruct.x, pstruct.y, pstruct.z) ; - gp_Dir d(dstruct.PS.x, dstruct.PS.y, dstruct.PS.z) ; - gp_Ax2 axis(p, d) ; - - try { - /* Cone doesn't work if same radius */ - if( fabs(radius1-radius2) <= Precision::Confusion() ) { - tds = BRepPrimAPI_MakeCylinder(axis, (radius1+radius2)/2.0, height).Shape(); - } - else { - tds = BRepPrimAPI_MakeCone(axis, radius1, radius2, height).Shape(); - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeCone", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Cone aborted", SALOME::BAD_PARAM); - } - result = CreateObject(tds); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result ; -} - - - -//================================================================================== -// function : ImportIGES() -// purpose : Import shape from an IGES (IGS) file -// : LPN modified 7 mai 2002 -//================================================================================== -GEOM::GEOM_Shape_ptr GEOM_Gen_i::ImportIGES(const char* filename) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - //VRV: OCC 4.0 migration - IGESControl_Reader aReader; - //VRV: OCC 4.0 migration - try { - IFSelect_ReturnStatus stat = aReader.ReadFile((char*)filename); - if ( stat != IFSelect_RetDone ) { - THROW_SALOME_CORBA_EXCEPTION("Error in reading import file", SALOME::BAD_PARAM); } - - MESSAGE("ImportIGES : all Geometry Transfer" << endl ) ; -#if OCC_VERSION_MAJOR >= 5 - aReader.ClearShapes(); - aReader.TransferRoots(); -#else - aReader.Clear(); - aReader.TransferRoots(false); -#endif - MESSAGE("ImportIGES : count of shapes produced = " << aReader.NbShapes() << endl ); - TopoDS_Shape shape = aReader.OneShape(); - - if ( !shape.IsNull() ) { - /* Final CORBA object creation */ - result = CreateObject(shape) ; - const char *entry = InsertInLabel( shape, result->Name(), myCurrentOCAFDoc ) ; - result->ShapeId(entry); - return result ; - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::ImportIGES()", SALOME::BAD_PARAM); - } - - THROW_SALOME_CORBA_EXCEPTION("Import IGES aborted : internal error", SALOME::BAD_PARAM); -} - - - -//================================================================================== -// function : ImportSTEP() -// purpose : Import shape from an STEP (stp) file -// : 'result' is a compound of shapes if file contains more entities. -//================================================================================== -GEOM::GEOM_Shape_ptr GEOM_Gen_i::ImportSTEP(const char* filename) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - //VRV: OCC 4.0 migration - STEPControl_Reader aReader; - //VRV: OCC 4.0 migration - - TopoDS_Compound compound; - BRep_Builder B; - B.MakeCompound( compound ); - - try { - IFSelect_ReturnStatus status = aReader.ReadFile((char*)filename); - - if (status == IFSelect_RetDone) { - Standard_Boolean failsonly = Standard_False ; - aReader.PrintCheckLoad (failsonly, IFSelect_ItemsByEntity); - /* Root transfers */ - Standard_Integer nbr = aReader.NbRootsForTransfer(); - aReader.PrintCheckTransfer (failsonly, IFSelect_ItemsByEntity); - - for ( Standard_Integer n=1; n <= nbr; n++) { - - Standard_Boolean ok = aReader.TransferRoot(n); - /* Collecting resulting entities */ - Standard_Integer nbs = aReader.NbShapes(); - if (nbs == 0) - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::ImportStep", SALOME::BAD_PARAM) ; - - for ( Standard_Integer i=1; i<=nbs; i++ ) { - TopoDS_Shape aShape = aReader.Shape(i); - if ( aShape.IsNull() ) - THROW_SALOME_CORBA_EXCEPTION("Null shape in GEOM_Gen_i::ImportStep", SALOME::BAD_PARAM) ; - - /* For a single entity */ - if(nbr == 1 && nbs == 1) { - result = CreateObject(aShape) ; - const char *entry = InsertInLabel(aShape, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result ; - } - else { - B.Add( compound, aShape ) ; - } - } - } - - TopoDS_Shape tds = compound ; - result = CreateObject(tds) ; - if( CORBA::is_nil(result) ) - THROW_SALOME_CORBA_EXCEPTION("Translation aborted : null result", SALOME::BAD_PARAM); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result ; - } - - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::ImportStep", SALOME::BAD_PARAM); - } - return result ; -} - - -//================================================================================== -// function : Partition() -// purpose : -//================================================================================== - -GEOM::GEOM_Shape_ptr - GEOM_Gen_i::Partition(const GEOM::GEOM_Gen::ListOfIOR& ListShapes, - const GEOM::GEOM_Gen::ListOfIOR& ListTools, - const GEOM::GEOM_Gen::ListOfIOR& ListKeepInside, - const GEOM::GEOM_Gen::ListOfIOR& ListRemoveInside, - const CORBA::Short Limit) -throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var aResult; - TopoDS_Shape tds ; - //MESSAGE ("In Partition"); - try { - - unsigned int ind, nbshapes = 0; - nbshapes += ListShapes.length() + ListTools.length(); - nbshapes += ListKeepInside.length() + ListRemoveInside.length(); - - Partition_Spliter PS; - TopTools_MapOfShape ShapesMap(nbshapes), ToolsMap(nbshapes); - - // add object shapes that are in ListShapes; - for ( ind = 0; ind < ListShapes.length(); ind++) { - - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListShapes[ind] ); - TopoDS_Shape Shape = GetTopoShape(aShape); - if(Shape.IsNull() ) { - //MESSAGE ( "In Partition a shape is null" ); - THROW_SALOME_CORBA_EXCEPTION("In Partition a shape is null", SALOME::BAD_PARAM); - } - if ( ShapesMap.Add( Shape )) - PS.AddShape(Shape); - } - - // add tool shapes that are in ListTools and not in ListShapes; - for (ind = 0; ind < ListTools.length(); ind++) { - - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListTools[ind] ); - TopoDS_Shape Shape = GetTopoShape(aShape); - if(Shape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("In Partition a shape is null", SALOME::BAD_PARAM); - } - if ( !ShapesMap.Contains( Shape ) && ToolsMap.Add( Shape )) - PS.AddTool(Shape); - } - - // add shapes that are in ListKeepInside, as object shapes; - for (ind = 0; ind < ListKeepInside.length(); ind++) { - - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListKeepInside[ind] ); - TopoDS_Shape Shape = GetTopoShape(aShape); - if(Shape.IsNull() ) { - //MESSAGE ( "In Partition a Keep Inside shape is null" ); - THROW_SALOME_CORBA_EXCEPTION("In Partition a shape is null", SALOME::BAD_PARAM); - } - if (!ToolsMap.Contains( Shape ) && - ShapesMap.Add( Shape )) - PS.AddShape(Shape); - } - - // add shapes that are in ListRemoveInside, as object shapes; - for (ind = 0; ind < ListRemoveInside.length(); ind++) { - - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListRemoveInside[ind] ); - TopoDS_Shape Shape = GetTopoShape(aShape); - if(Shape.IsNull() ) { - //MESSAGE ( "In Partition a Remove Inside shape is null" ); - THROW_SALOME_CORBA_EXCEPTION("In Partition a shape is null", SALOME::BAD_PARAM); - } - if (!ToolsMap.Contains( Shape ) && - ShapesMap.Add( Shape ) ) - PS.AddShape(Shape); - } - - //MESSAGE ( "Partition::Compute() " ); - PS.Compute ((TopAbs_ShapeEnum) Limit); - //MESSAGE ( "Partition::Compute() - END" ); - - // suppress result outside of shapes in KInsideMap - for (ind = 0; ind < ListKeepInside.length(); ind++) { - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListKeepInside[ind] ); - TopoDS_Shape Shape = GetTopoShape(aShape); - PS.KeepShapesInside( Shape ); - } - - // suppress result inside of shapes in RInsideMap - for (ind = 0; ind < ListRemoveInside.length(); ind++) { - - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListRemoveInside[ind] ); - TopoDS_Shape Shape = GetTopoShape(aShape); - PS.RemoveShapesInside( Shape ); - } - - tds = PS.Shape(); - - if( !IsValid(tds) ) { - //MESSAGE ( "In Partition: non valid shape result" ); - THROW_SALOME_CORBA_EXCEPTION("Partition aborted : non valid shape result", SALOME::BAD_PARAM); - } - } - catch (Standard_Failure) { - //MESSAGE ( "In Partition: Exception catched in GEOM_Gen_i::Partition()" ); - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::Partition", SALOME::BAD_PARAM); - } - - aResult = CreateObject(tds) ; - - /* add attributs S and mystr in a new label */ - GEOMDS_Commands GC(myCurrentOCAFDoc->Main()); - TDF_Label Lab = GC.AddShape(tds, aResult->Name() ); - TCollection_AsciiString entry; - TDF_Tool::Entry(Lab,entry); - aResult->ShapeId( entry.ToCString() ) ; - - // add arguments - - /* Create a new label */ - TDF_Label NewLab = Lab.NewChild(); - TCollection_ExtendedString Value("Arguments"); - TDataStd_Name::Set(NewLab,Value); - - // object shapes - for (unsigned int ind = 0; ind < ListShapes.length(); ind++) { - TDF_Label NewLab1 = NewLab.NewChild(); - - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListShapes[ind] ); - Standard_CString anEntry = aShape->ShapeId(); - TDF_Label RefLab; - TDF_Tool::Label(myCurrentOCAFDoc->GetData(), anEntry, RefLab); - TDF_Reference::Set(NewLab1,RefLab); - } - // tool shapes - for (unsigned int ind = 0; ind < ListTools.length(); ind++) { - TDF_Label NewLab1 = NewLab.NewChild(); - - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListTools[ind] ); - Standard_CString anEntry = aShape->ShapeId(); - TDF_Label RefLab; - TDF_Tool::Label(myCurrentOCAFDoc->GetData(), anEntry, RefLab); - TDF_Reference::Set(NewLab1,RefLab); - } - // limit shapes 1 - for (unsigned int ind = 0; ind < ListKeepInside.length(); ind++) { - TDF_Label NewLab1 = NewLab.NewChild(); - - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListKeepInside[ind] ); - Standard_CString anEntry = aShape->ShapeId(); - TDF_Label RefLab; - TDF_Tool::Label(myCurrentOCAFDoc->GetData(), anEntry, RefLab); - TDF_Reference::Set(NewLab1,RefLab); - } - // limit shapes 2 - for (unsigned int ind = 0; ind < ListRemoveInside.length(); ind++) { - TDF_Label NewLab1 = NewLab.NewChild(); - - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListRemoveInside[ind] ); - Standard_CString anEntry = aShape->ShapeId(); - TDF_Label RefLab; - TDF_Tool::Label(myCurrentOCAFDoc->GetData(), anEntry, RefLab); - TDF_Reference::Set(NewLab1,RefLab); - } - - return aResult; -} - - - -//================================================================================== -// function : MakeFilling() -// purpose : Create a surface from section curves filling -//================================================================================== -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeFilling(GEOM::GEOM_Shape_ptr myShape, - CORBA::Short mindeg, - CORBA::Short maxdeg, - CORBA::Double tol3d, - CORBA::Double tol2d, - CORBA::Short nbiter, - CORBA::Boolean theApprox) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Face tds ; - TopoDS_Shape aShape = GetTopoShape(myShape) ; - if( aShape.IsNull() || aShape.ShapeType() != TopAbs_COMPOUND ) { - THROW_SALOME_CORBA_EXCEPTION("MakeFilling aborted : null shape or not a compound", SALOME::BAD_PARAM); - } - - try { - /* we verify the contents of the shape */ - TopExp_Explorer Ex ; - TopoDS_Shape Scurrent ; - Standard_Real First, Last ; - Handle(Geom_Curve) C ; - GeomFill_SectionGenerator Section ; - - Standard_Integer i = 0 ; - for(Ex.Init(aShape, TopAbs_EDGE); Ex.More(); Ex.Next()) { - Scurrent = Ex.Current() ; - if( Scurrent.IsNull() || Scurrent.ShapeType() != TopAbs_EDGE) { - THROW_SALOME_CORBA_EXCEPTION("Initial shape doesn't contain only edges !", SALOME::BAD_PARAM); - } - C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last); - if (C.IsNull()) continue; - C = new Geom_TrimmedCurve(C, First, Last); - Section.AddCurve(C) ; - i++ ; - } - - /* a 'tolerance' is used to compare 2 knots : see GeomFill_Generator.cdl */ - /* We set 'tolerance' = tol3d */ - // Section.Perform( tol3d ) ; NRI */ - Section.Perform( Precision::Confusion() ) ; - Handle(GeomFill_Line) Line = new GeomFill_Line(i) ; - - GeomFill_AppSurf App(mindeg, maxdeg, tol3d, tol2d, nbiter) ; /* user parameters */ - App.Perform(Line, Section, theApprox) ; - - if (!App.IsDone()) { - THROW_SALOME_CORBA_EXCEPTION("Filling aborted : non valid shape result", SALOME::BAD_PARAM); - } - Standard_Integer UDegree, VDegree, NbUPoles, NbVPoles, NbUKnots, NbVKnots; - App.SurfShape(UDegree, VDegree, NbUPoles, NbVPoles, NbUKnots, NbVKnots); - Handle(Geom_BSplineSurface) GBS = new Geom_BSplineSurface(App.SurfPoles(), - App.SurfWeights(), - App.SurfUKnots(), - App.SurfVKnots(), - App.SurfUMults(), - App.SurfVMults(), - App.UDegree(), - App.VDegree()); - - if( GBS.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Make Filling aborted", SALOME::BAD_PARAM); - } - tds = BRepBuilderAPI_MakeFace(GBS) ; - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeFilling", SALOME::BAD_PARAM); - } - - /* We test the validity of resulting shape */ - if( !IsValid(tds) ) { - THROW_SALOME_CORBA_EXCEPTION("Filling aborted : non valid shape result", SALOME::BAD_PARAM); - } - else { - result = CreateObject(tds) ; - InsertInLabelOneArgument(aShape, myShape, tds, result, myCurrentOCAFDoc) ; - } - - return result ; -} - - -//================================================================================= -// function : MakeGlueFaces() -// purpose : -//================================================================================= - -TopoDS_Face GEOM_Gen_i::FindSameFace(const TopoDS_Shape& aShape, - const TopoDS_Face& F, - double tol3d) -{ - TopoDS_Face aFace; - bool isSame = false; - for (TopExp_Explorer exf(aShape,TopAbs_FACE); exf.More(); exf.Next()) - { - //MESSAGE("--- test a face"); - int nbFound = 0; - aFace = TopoDS::Face(exf.Current()); - TopTools_ListOfShape liste1; - TopTools_ListOfShape liste2; - for (TopExp_Explorer exp(aFace,TopAbs_VERTEX); exp.More(); exp.Next()) - { - const TopoDS_Vertex& V = TopoDS::Vertex(exp.Current()); - liste1.Append(V); - } - for (TopExp_Explorer exp(F,TopAbs_VERTEX); exp.More(); exp.Next()) - { - const TopoDS_Vertex& V = TopoDS::Vertex(exp.Current()); - liste2.Append(V); - } - isSame = false; - if (liste1.Extent() == liste2.Extent()) - { - TopTools_ListIteratorOfListOfShape it1(liste1); - isSame = true; - for (; it1.More(); it1.Next()) - { - bool foundSamePoint = false; - gp_Pnt P1 = BRep_Tool::Pnt(TopoDS::Vertex(it1.Value())); - TopTools_ListIteratorOfListOfShape it2(liste2); - for (it2; it2.More(); it2.Next()) - { - gp_Pnt P2 = BRep_Tool::Pnt(TopoDS::Vertex(it2.Value())); - double d = P1.Distance(P2); - if (d < tol3d) - { - nbFound++; - //MESSAGE(" found Same Point : "< 0) && shellAdded) - { - //MESSAGE("more shells : "<< shellList.Extent()); - shellAdded = false; - its.Initialize(shellList); - for(; its.More(); its.Next()) - { - //MESSAGE("one more shell to try"); - TopTools_ListOfShape newFaces; // common faces from new compound - TopTools_ListOfShape oldFaces; // common faces from shell to add - TopTools_ListOfShape addFaces; // not common faces from shell to add - TopTools_ListOfShape newEdges; // common edges from new compound - TopTools_ListOfShape oldEdges; // common edges from face to add - TopoDS_Compound CFN; - TopoDS_Compound CFO; - bu.MakeCompound(CFN); // empty compound for new faces - bu.MakeCompound(CFO); // empty compound for old faces - S = TopoDS::Shell(its.Value()); - for (TopExp_Explorer exp(S,TopAbs_FACE); exp.More(); exp.Next()) - { - //MESSAGE("--- try to find corresponding face in new compound"); - TopoDS_Face F = TopoDS::Face(exp.Current()); - TopoDS_Face newFace = FindSameFace(C,F,tol3d); - if (! newFace.IsNull()) - { - //MESSAGE("--- face found"); - newFaces.Append(newFace); - bu.Add(CFN, newFace); // common faces from new compound - oldFaces.Append(F); - for (TopExp_Explorer ee(F,TopAbs_EDGE);ee.More();ee.Next()) - { - //MESSAGE("--- find edge pair"); - TopoDS_Edge Eold = TopoDS::Edge(ee.Current()); - const TopoDS_Edge& Enew = FindSameEdge(newFace, Eold, tol3d); - oldEdges.Append(Eold); - newEdges.Append(Enew); - } - } - else - { - //MESSAGE("---"); - addFaces.Append(F); - bu.Add(CFO, F); // not common faces from shell to add - } - } - if ( !newFaces.IsEmpty()) - { - //MESSAGE("--- some faces found ---"); - shellAdded = true; - BRepTools_Quilt glue; - glue.Add(CFN); - TopTools_ListIteratorOfListOfShape ito(oldEdges); - TopTools_ListIteratorOfListOfShape itn(newEdges); - for (; ito.More(); ito.Next()) - { - //MESSAGE("--- bind"); - glue.Bind(TopoDS::Edge(ito.Value()), TopoDS::Edge(itn.Value())); - itn.Next(); - } - glue.Add(CFO); - TopoDS_Compound newc = TopoDS::Compound(glue.Shells()); - for (TopExp_Explorer exs(newc,TopAbs_SHELL); exs.More(); exs.Next()) - { - TopoDS_Shell NS = TopoDS::Shell(exs.Current()); - bu.Add(C, NS); - } - shellList.Remove(its); - //MESSAGE("--- remove shell from list"); - break; - } - } - } - //MESSAGE("---" << shellList.Extent() << " " << shellAdded); - - TopExp_Explorer exp(C,TopAbs_SHELL); - Standard_Integer ish=0; - TopoDS_Compound Res; - TopoDS_Solid Sol; - BRep_Builder B; - B.MakeCompound(Res); - TopoDS_Shape theShape; - - for (; exp.More(); exp.Next()) - { - TopoDS_Shape Sh = exp.Current(); - B.MakeSolid(Sol); - B.Add(Sol,Sh); - BRepClass3d_SolidClassifier SC(Sol); - SC.PerformInfinitePoint(1.E-6); // cf. BRepFill_Confusion() - BRepFill_Evolved.cxx - if (SC.State() == TopAbs_IN) - { - B.MakeSolid(Sol); - B.Add(Sol,Sh.Reversed()); - } - B.Add(Res,Sol); - ish++; - } - if (ish == 1) { theShape = Sol;} - else { theShape = Res;} - - BRepLib::SameParameter(theShape, 1.E-5, Standard_True); - tds = theShape; - result = CreateObject(tds); - InsertInLabelOneArgument(aShape, myShape, tds, result, myCurrentOCAFDoc) ; - //MESSAGE("---"); - return result; -} - -//================================================================================= -// function : MakeSewing() -// purpose : -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeSewing( const GEOM::GEOM_Gen::ListOfIOR& ListShapes, - CORBA::Double precision ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - BRepOffsetAPI_Sewing aMethod ; - - try { - /* default OCC is 1.0e-06 */ - aMethod.Init(precision, Standard_False); - for ( unsigned int i = 0; i < ListShapes.length(); i++) { - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListShapes[i] ); - TopoDS_Shape Shape = GetTopoShape(aShape) ; - if( Shape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("MakeSewing aborted : null shape during operation", SALOME::BAD_PARAM); - } - aMethod.Add(Shape) ; - } - - aMethod.Perform() ; - tds = aMethod.SewedShape() ; - if( !IsValid(tds) ) { - THROW_SALOME_CORBA_EXCEPTION("Make Sewing aborted : non valid shape", SALOME::BAD_PARAM); - } - if( tds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Make Sewing aborted : null shape", SALOME::BAD_PARAM); - } - } - catch (Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeSewing", SALOME::BAD_PARAM); - } - - result = CreateObject(tds); - InsertInLabelMoreArguments(tds, result, ListShapes, myCurrentOCAFDoc) ; - return result; -} - -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeSewingShape( GEOM::GEOM_Shape_ptr aShape, - CORBA::Double precision ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds, S ; - BRepOffsetAPI_Sewing aMethod ; - - try { - S = GetTopoShape(aShape) ; - if(S.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("In Sewing a Shape is null", SALOME::BAD_PARAM); - } - - /* default OCC is 1.0e-06 */ - aMethod.Init(precision, Standard_False); - for ( TopExp_Explorer exp( S, TopAbs_FACE); exp.More(); exp.Next() ) { - const TopoDS_Face& F = TopoDS::Face(exp.Current()); - aMethod.Add(F) ; - } - - aMethod.Perform() ; - tds = aMethod.SewedShape() ; - if( !IsValid(tds) ) { - THROW_SALOME_CORBA_EXCEPTION("Make Sewing aborted : non valid shape", SALOME::BAD_PARAM); - } - } - catch (Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeSewing", SALOME::BAD_PARAM); - } - - result = CreateObject(tds); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry) ; - return result; -} - -//================================================================================== -// function : OrientationChange() -// purpose : Change the orientation of a new shape -// : TopAbs_FORWARD < -- > TopAbs_REVERSED -// -// : WARNING : for the moment we make a new shape ! -//================================================================================== -GEOM::GEOM_Shape_ptr GEOM_Gen_i::OrientationChange(GEOM::GEOM_Shape_ptr aShape) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - BRep_Builder aBuilder; - - TopoDS_Shape shape = GetTopoShape(aShape) ; - if( shape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Shape is null", SALOME::BAD_PARAM); - } - - BRepBuilderAPI_Copy Copy(shape); - if( Copy.IsDone() ) { - TopoDS_Shape tds = Copy.Shape(); - if( tds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Orientation aborted : null shape", SALOME::BAD_PARAM); - } - - if( tds.Orientation() == TopAbs_FORWARD) - tds.Orientation(TopAbs_REVERSED) ; - else - tds.Orientation(TopAbs_FORWARD) ; - - result = CreateObject(tds); - InsertInLabelOneArgument(shape, aShape, tds, result, myCurrentOCAFDoc) ; - } - return result ; -} - - -//================================================================================== -// function : GetReferencedObjects() -// purpose : -//================================================================================== -GEOM::GEOM_Gen::ListOfIOR* GEOM_Gen_i::GetReferencedObjects(GEOM::GEOM_Shape_ptr shape) -{ - GEOM::GEOM_Gen::ListOfIOR_var aList = new GEOM::GEOM_Gen::ListOfIOR; - aList->length(0); - - if (shape->_is_nil()) return aList._retn(); - - Standard_CString entry = shape->ShapeId(); - TDF_Label Lab; - TDF_Tool::Label(myCurrentOCAFDoc->GetData(), entry, Lab); - - Handle(TDataStd_Name) Att; - Lab.FindAttribute(TDataStd_Name::GetID(),Att); - - TDF_ChildIterator ChildIterator(Lab); - if (ChildIterator.More()) { - TDF_Label L = ChildIterator.Value(); - Handle(TDataStd_Name) Att; - L.FindAttribute(TDataStd_Name::GetID(),Att); - if (Att->Get().IsEqual(TCollection_ExtendedString("Arguments")) ) { - - TDF_ChildIterator ChildIterator1(L); - unsigned int i = 0; - - while (ChildIterator1.More()) { - TDF_Label L = ChildIterator1.Value(); - - Handle(TDF_Reference) Ref; - if (L.FindAttribute(TDF_Reference::GetID(),Ref)) { - i++; - } - ChildIterator1.Next(); - } - aList->length(i); - i = 0; - TDF_ChildIterator ChildIterator2(L); - while (ChildIterator2.More()) { - TDF_Label L = ChildIterator2.Value(); - Handle(TDF_Reference) Ref; - if (L.FindAttribute(TDF_Reference::GetID(),Ref)) { - TDF_Label L = Ref->Get(); - - Handle(TDataStd_Name) Att; - L.FindAttribute(TDataStd_Name::GetID(),Att); - TCollection_AsciiString nameIOR (Att->Get()) ; - aList[i] = CORBA::string_dup( nameIOR.ToCString() ); - i++; - } - - ChildIterator2.Next(); - } - } - } - return aList._retn(); -} - -//================================================================================== -// function : GetObjects() -// purpose : -//================================================================================== -GEOM::GEOM_Gen::ListOfIOR* GEOM_Gen_i::GetObjects(GEOM::GEOM_Shape_ptr shape) -{ - GEOM::GEOM_Gen::ListOfIOR_var aList = new GEOM::GEOM_Gen::ListOfIOR; - aList->length(0); - - Standard_CString entry = shape->ShapeId(); - TDF_Label Lab; - TDF_Tool::Label(myCurrentOCAFDoc->GetData(), entry, Lab); - - Handle(TDataStd_Name) Att; - Lab.FindAttribute(TDataStd_Name::GetID(),Att); - - TDF_ChildIterator ChildIterator(Lab); - unsigned int i = 0; - while (ChildIterator.More()) { - TDF_Label L = ChildIterator.Value(); - Handle(TDataStd_Name) Att; - L.FindAttribute(TDataStd_Name::GetID(),Att); - - if (!Att->Get().IsEqual(TCollection_ExtendedString("Arguments")) ) { - i++; - } - ChildIterator.Next(); - } - - aList->length(i); - i = 0; - TDF_ChildIterator ChildIterator1(Lab); - while (ChildIterator1.More()) { - TDF_Label L = ChildIterator1.Value(); - Handle(TDataStd_Name) Att; - L.FindAttribute(TDataStd_Name::GetID(),Att); - - if (!Att->Get().IsEqual(TCollection_ExtendedString("Arguments")) ) { - TCollection_AsciiString nameIOR (Att->Get()); - aList[i] = CORBA::string_dup( nameIOR.ToCString() ); - i++; - } - ChildIterator1.Next(); - } - return aList._retn(); -} - - -//================================================================================== -// function : Import -// purpose : Import shape from a BREP file -//================================================================================== -GEOM::GEOM_Shape_ptr GEOM_Gen_i::ImportBREP(const char* filename) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - TopoDS_Shape tds ; - GEOM::GEOM_Shape_var result ; - - try { - BRep_Builder aBuilder; - char* aCopyfilename = strdup(filename); - BRepTools::Read(tds, aCopyfilename, aBuilder) ; - free(aCopyfilename); - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Import BRep aborted", SALOME::BAD_PARAM); - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::ImportBREP", SALOME::BAD_PARAM); - } - - result = CreateObject(tds) ; - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result; -} - - -//================================================================================ -// function : MakePlane() -// purpose : Make a plane topology (non infinite) -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakePlane(const GEOM::PointStruct& pstruct, - const GEOM::DirStruct& dstruct, - CORBA::Double trimsize) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - - try { - gp_Pnt aPoint(pstruct.x, pstruct.y, pstruct.z) ; - gp_Dir aDirection(dstruct.PS.x, dstruct.PS.y, dstruct.PS.z) ; - /* we make a trimmed plane */ - gp_Pln gplane(aPoint, aDirection) ; - tds = BRepBuilderAPI_MakeFace(gplane, -trimsize, +trimsize, -trimsize, +trimsize) ; - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakePlane", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Plane aborted : null shape", SALOME::BAD_PARAM); - } - - result = CreateObject(tds) ; - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result ; -} - -//================================================================================= -// function : MakeVertex() -// purpose : Create a Vertex topology. -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeVertex(CORBA::Double x, - CORBA::Double y, - CORBA::Double z) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - gp_Pnt P(x,y,z); - TopoDS_Shape tds = BRepBuilderAPI_MakeVertex(P).Shape(); - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Vertex/Point aborted", SALOME::BAD_PARAM); - } - tds.Infinite(true); - result = CreateObject(tds) ; - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result ; -} - - -//================================================================================= -// function : MakeFace() -// purpose : -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeFace( GEOM::GEOM_Shape_ptr wire, - CORBA::Boolean wantplanarface ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape aShape; - TopoDS_Shape tds; - - try { - aShape = GetTopoShape(wire) ; - if( aShape.IsNull() || aShape.ShapeType() != TopAbs_WIRE ) { - THROW_SALOME_CORBA_EXCEPTION("MakeFace aborted : null or inappropriate shape", SALOME::BAD_PARAM); - } - TopoDS_Wire W = TopoDS::Wire(aShape) ; - tds = BRepBuilderAPI_MakeFace(W, wantplanarface).Shape() ; - if( !tds.IsNull() ) { - result = CreateObject(tds) ; - InsertInLabelOneArgument(aShape, wire, tds, result, myCurrentOCAFDoc) ; - } - else { - THROW_SALOME_CORBA_EXCEPTION("Null result in GEOM_Gen_i::MakeFace", SALOME::BAD_PARAM); - } - } - catch (Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeFace", SALOME::BAD_PARAM); - } - return result ; -} - - -//================================================================================= -// function : MakeFaces() -// purpose : -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeFaces(const GEOM::GEOM_Gen::ListOfIOR& ListShapes, - CORBA::Boolean wantplanarface) - throw (SALOME::SALOME_Exception) -{ - GEOM::GEOM_Shape_var result; - - try { - GEOM::GEOM_Shape_var aShape = GetIORFromString(ListShapes[0]); - TopoDS_Shape Shape = GetTopoShape(aShape); - if(Shape.IsNull() || Shape.ShapeType() != TopAbs_WIRE) { - THROW_SALOME_CORBA_EXCEPTION("Shell aborted : null shape during operation", SALOME::BAD_PARAM); - } - TopoDS_Wire W = TopoDS::Wire(Shape); - TopoDS_Shape FFace = BRepBuilderAPI_MakeFace(W, wantplanarface).Shape(); - if(!FFace.IsNull()) { - if(ListShapes.length() == 1) { - result = CreateObject(FFace); - InsertInLabelMoreArguments(FFace, result, ListShapes, myCurrentOCAFDoc); - } - else if(ListShapes.length() >= 2) { - TopoDS_Compound C; - BRep_Builder aBuilder; - aBuilder.MakeCompound(C); - BRepAlgo_FaceRestrictor FR; - - TopAbs_Orientation OriF = FFace.Orientation(); - TopoDS_Shape aLocalS = FFace.Oriented(TopAbs_FORWARD); - FR.Init(TopoDS::Face(aLocalS), Standard_False, Standard_True); - - for(unsigned int i = 0; i < ListShapes.length(); i++) { - GEOM::GEOM_Shape_var aShape = GetIORFromString(ListShapes[i]); - TopoDS_Shape Shape = GetTopoShape(aShape); - if(Shape.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Shell aborted : null shape during operation", SALOME::BAD_PARAM); - } - FR.Add(TopoDS::Wire(Shape)); - } - - FR.Perform(); - - if(FR.IsDone()) { - int k = 0; - TopoDS_Shape aFace; - for(; FR.More(); FR.Next()) { - aFace = FR.Current().Oriented(OriF); - aBuilder.Add(C, aFace); - k++; - } - if(k == 1) { - result = CreateObject(aFace); - InsertInLabelMoreArguments(aFace, result, ListShapes, myCurrentOCAFDoc); - } - else { - result = CreateObject(C); - InsertInLabelMoreArguments(C, result, ListShapes, myCurrentOCAFDoc); - } - } - } - } - else { - THROW_SALOME_CORBA_EXCEPTION("Null result in GEOM_Gen_i::MakeFace", SALOME::BAD_PARAM); - } - } - catch (Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeFace", SALOME::BAD_PARAM); - } - return result; -} - - -//================================================================================= -// function : MakeShell() -// purpose : Make a compound from a list containing one or more shapes -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeShell( const GEOM::GEOM_Gen::ListOfIOR& ListShapes ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - BRepTools_Quilt Glue; - TopoDS_Shape C; - - for ( unsigned int i = 0; i < ListShapes.length(); i++) { - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListShapes[i] ); - TopoDS_Shape Shape = GetTopoShape(aShape) ; - if( Shape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Shell aborted : null shape during operation", SALOME::BAD_PARAM); - } - Glue.Add(Shape) ; - } - - TopExp_Explorer exp(Glue.Shells(), TopAbs_SHELL); - Standard_Integer ish = 0; - for (; exp.More(); exp.Next()) { - C = exp.Current(); - ish++; - } - - if (ish != 1) - C = Glue.Shells(); - - if ( C.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Null result : Shell operation aborted", SALOME::BAD_PARAM); - } - else { - result = CreateObject(C) ; - InsertInLabelMoreArguments(C, result, ListShapes, myCurrentOCAFDoc) ; - } - return result; -} - - -//================================================================================= -// function : MakeSolid() -// purpose : Make a compound from a list containing one or more shapes -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeSolid( const GEOM::GEOM_Gen::ListOfIOR& ListShapes ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - Standard_Integer ish = 0; - TopoDS_Compound Res; - TopoDS_Solid Sol; - BRep_Builder B; - TopoDS_Shape Shape; - - B.MakeCompound(Res); - - for ( unsigned int i = 0; i < ListShapes.length(); i++) { - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListShapes[i] ); - TopoDS_Shape Sh = GetTopoShape(aShape) ; - if( Sh.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Solid aborted : null shape during operation", SALOME::BAD_PARAM); - } - B.MakeSolid(Sol); - B.Add(Sol,Sh); - BRepClass3d_SolidClassifier SC(Sol); - SC.PerformInfinitePoint(Precision::Confusion()); - if (SC.State() == TopAbs_IN) { - B.MakeSolid(Sol); - B.Add(Sol,Sh.Reversed()); - } - B.Add(Res,Sol); - ish++; - } - if (ish == 1) { Shape = Sol;} - else { Shape = Res;} - - if ( Shape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Null result : Solid operation aborted", SALOME::BAD_PARAM); - } - else { - result = CreateObject(Shape) ; - InsertInLabelMoreArguments(Shape, result, ListShapes, myCurrentOCAFDoc) ; - } - return result; -} - - -//================================================================================ -// function : MakeLine -// purpose : Make a Line topology -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeLine(const GEOM::PointStruct& pstruct, - const GEOM::DirStruct& dstruct) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - gp_Pnt P1(pstruct.x, pstruct.y, pstruct.z); - gp_Pnt P2(dstruct.PS.x, dstruct.PS.y, dstruct.PS.z) ; - TopoDS_Shape tds ; - - try { - tds = BRepBuilderAPI_MakeEdge(P1, P2).Shape(); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeLine", SALOME::BAD_PARAM); - } - - if ( tds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Make Line aborted : null shape", SALOME::BAD_PARAM); - } - else { - tds.Infinite(true); - result = CreateObject(tds) ; - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - } - return result ; -} - - -//================================================================================ -// function : MakeVector() -// purpose : Make a vector -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeVector(const GEOM::PointStruct& pstruct1, - const GEOM::PointStruct& pstruct2) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - - try { - gp_Pnt P1(pstruct1.x, pstruct1.y, pstruct1.z); - gp_Pnt P2(pstruct2.x, pstruct2.y, pstruct2.z) ; - tds = BRepBuilderAPI_MakeEdge(P1, P2).Shape(); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeVector", SALOME::BAD_PARAM); - } - - if ( tds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Make Vector aborted : null shape", SALOME::BAD_PARAM); - } - else { - result = CreateObject(tds) ; - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - } - return result ; -} - - -//================================================================================ -// function : MakeCircle() -// purpose : -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeCircle(const GEOM::PointStruct& pstruct, - const GEOM::DirStruct& dstruct, - CORBA::Double radius) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape tds ; - - try { - gp_Pnt p(pstruct.x, pstruct.y, pstruct.z) ; - gp_Dir d(dstruct.PS.x, dstruct.PS.y, dstruct.PS.z) ; - gp_Ax2 axis(p, d) ; - gp_Circ circ( axis, radius); - BRepBuilderAPI_MakeEdge MakeEdge( circ ); - tds = MakeEdge.Edge(); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeCircle", SALOME::BAD_PARAM); - } - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Circle aborted", SALOME::BAD_PARAM); - } - result = CreateObject(tds); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result ; -} - -//================================================================================ -// function : MakeEllipse() -// purpose : -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeEllipse( const GEOM::PointStruct& pstruct, - const GEOM::DirStruct& dstruct, - CORBA::Double radius_major, - CORBA::Double radius_minor ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape tds ; - - try { - gp_Pnt p(pstruct.x, pstruct.y, pstruct.z) ; - gp_Dir d(dstruct.PS.x, dstruct.PS.y, dstruct.PS.z) ; - - const gp_Ax2 axis(p, d) ; - gp_Elips anEllipse( axis, radius_major, radius_minor ) ; - BRepBuilderAPI_MakeEdge MakeEdge( anEllipse ); - tds = MakeEdge.Edge(); - - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeEllipse", SALOME::BAD_PARAM); - } - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Ellipse aborted", SALOME::BAD_PARAM); - } - result = CreateObject(tds); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result ; -} - -//================================================================================ -// function : MakeArc() -// purpose : make an arc of circle from pInit to pEnd and passing on pCircle -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeArc(const GEOM::PointStruct& pInit, - const GEOM::PointStruct& pCircle, - const GEOM::PointStruct& pEnd) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - try { - gp_Pnt pI(pInit.x, pInit.y, pInit.z) ; - gp_Pnt pC(pCircle.x, pCircle.y, pCircle.z) ; - gp_Pnt pE(pEnd.x, pEnd.y, pEnd.z) ; - - GC_MakeArcOfCircle arc( pI, pC, pE ) ; - if( !arc.IsDone() ) { - THROW_SALOME_CORBA_EXCEPTION("Arc not done", SALOME::BAD_PARAM); - } - BRepBuilderAPI_MakeEdge MakeEdge( arc ); - TopoDS_Shape tds = MakeEdge.Edge(); - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Null result : arc not done", SALOME::BAD_PARAM); - } - else { - result = CreateObject(tds); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeArc", SALOME::BAD_PARAM); - } - return result ; -} - -//================================================================================= -// function : MakeSketcher() -// purpose : Make a wire from a list containing many points -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeSketcher( const char *Cmd ) - throw (SALOME::SALOME_Exception) -{ - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - try { - Sketcher_Profile aProfile (Cmd); - if(aProfile.IsDone()) - tds = aProfile.GetShape(); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeSketcher", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("MakeSketcher aborted : null shape", SALOME::BAD_PARAM); - } - else { - result = CreateObject(tds); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry) ; - } - return result; -} - - - -//================================================================================= -// function : MakeBezier() -// purpose : Make a wire from a list containing many points -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeBezier( const GEOM::GEOM_Gen::ListOfIOR& ListShapes ) - throw (SALOME::SALOME_Exception) -{ - GEOM::GEOM_Shape_var result; - TopoDS_Shape tds, Shape; - TColgp_Array1OfPnt CurvePoints(1, ListShapes.length()); - - try { - for(unsigned int i = 0; i < ListShapes.length(); i++) { - GEOM::GEOM_Shape_var aShape = GetIORFromString(ListShapes[i]); - Shape = GetTopoShape(aShape); - if(Shape.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("MakeBezier aborted : null shape during operation", SALOME::BAD_PARAM); - } - if(Shape.ShapeType() == TopAbs_VERTEX) { - const gp_Pnt& P = BRep_Tool::Pnt(TopoDS::Vertex(Shape)); - CurvePoints.SetValue(i + 1, P); - } - } - Handle(Geom_BezierCurve) GBC = new Geom_BezierCurve(CurvePoints); - tds = BRepBuilderAPI_MakeEdge(GBC); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeBezier", SALOME::BAD_PARAM); - } - - if( tds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Make Bezier operation aborted : null result", SALOME::BAD_PARAM); - } - else { - result = CreateObject(tds); - InsertInLabelMoreArguments(tds, result, ListShapes, myCurrentOCAFDoc); - } - return result; -} - - -//================================================================================= -// function : MakeInterpol() -// purpose : Make a wire from a list containing many points -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeInterpol( const GEOM::GEOM_Gen::ListOfIOR& ListShapes ) - throw (SALOME::SALOME_Exception) -{ - GEOM::GEOM_Shape_var result; - TopoDS_Shape tds, Shape; - TColgp_Array1OfPnt CurvePoints(1, ListShapes.length()); - - try { - for(unsigned int i = 0; i < ListShapes.length(); i++) { - GEOM::GEOM_Shape_var aShape = GetIORFromString(ListShapes[i]); - Shape = GetTopoShape(aShape); - if(Shape.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("MakeBSpline aborted : null shape during operation", SALOME::BAD_PARAM); - } - if(Shape.ShapeType() == TopAbs_VERTEX) { - const gp_Pnt& P = BRep_Tool::Pnt(TopoDS::Vertex(Shape)); - CurvePoints.SetValue(i + 1, P); - } - } - GeomAPI_PointsToBSpline GBC(CurvePoints); - tds = BRepBuilderAPI_MakeEdge(GBC); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeBSpline", SALOME::BAD_PARAM); - } - - if( tds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Make BSpline operation aborted : null result", SALOME::BAD_PARAM); - } - else { - result = CreateObject(tds) ; - InsertInLabelMoreArguments(tds, result, ListShapes, myCurrentOCAFDoc) ; - } - return result; -} - -//================================================================================= -// function : MakeTranslation() -// purpose : Translate a 3D shape -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeTranslation( GEOM::GEOM_Shape_ptr myShape, - CORBA::Double x, - CORBA::Double y, - CORBA::Double z) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape aShape = GetTopoShape(myShape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Translation aborted : null shape", SALOME::BAD_PARAM); - } - gp_Vec theVector(x,y,z) ; - gp_Trsf theTransformation ; - theTransformation.SetTranslation(theVector) ; - BRepBuilderAPI_Transform myBRepTransformation(aShape, theTransformation, Standard_False) ; - TopoDS_Shape tds = myBRepTransformation.Shape() ; - - result = CreateObject(tds) ; - if( CORBA::is_nil(result) ) { - THROW_SALOME_CORBA_EXCEPTION("Translation aborted : null result", SALOME::BAD_PARAM); - } - InsertInLabelOneArgument(aShape, myShape, tds, result, myCurrentOCAFDoc) ; - return result; -} - - -//================================================================================= -// function : MakeMultiTranslation1D() -// purpose : Multi-Translate a 3D shape -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeMultiTranslation1D( GEOM::GEOM_Shape_ptr myShape, - const GEOM::DirStruct& dir, - CORBA::Double step, - CORBA::Short nbtimes ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - - TopoDS_Shape aShape = GetTopoShape(myShape) ; - if( aShape.IsNull() ) - THROW_SALOME_CORBA_EXCEPTION("MakeMultiTranslation1D aborted : null shape", SALOME::BAD_PARAM); - - try { - int i ; - double DX, DY, DZ ; - gp_Trsf theTransformation ; - gp_Vec myVec ; - gp_Vec Vec( dir.PS.x, dir.PS.y, dir.PS.z ) ; - Vec.Normalize(); - TopoDS_Compound compound; - BRep_Builder B; - B.MakeCompound( compound ); - - for ( i = 0; i < nbtimes; i++ ) { - DX = i * step * Vec.X() ; - DY = i * step * Vec.Y() ; - DZ = i * step * Vec.Z() ; - myVec.SetCoord( DX, DY, DZ ) ; - theTransformation.SetTranslation(myVec) ; - BRepBuilderAPI_Transform myBRepTransformation(aShape, theTransformation, Standard_False) ; - B.Add( compound, myBRepTransformation.Shape() ); - } - tds = compound ; - result = CreateObject(tds) ; - } - catch (Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeMultiTranslation1D", SALOME::BAD_PARAM); - } - - if( CORBA::is_nil(result) ) { - THROW_SALOME_CORBA_EXCEPTION("MakeMultiTranslation1D aborted : null result", SALOME::BAD_PARAM); - } - InsertInLabelOneArgument(aShape, myShape, tds, result, myCurrentOCAFDoc) ; - return result; -} - - -//================================================================================= -// function : MakeMultiTranslation2D() -// purpose : Multi-Translate a 3D shape -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeMultiTranslation2D( GEOM::GEOM_Shape_ptr myShape, - const GEOM::DirStruct& dir1, - CORBA::Double step1, - CORBA::Short nbtimes1, - const GEOM::DirStruct& dir2, - CORBA::Double step2, - CORBA::Short nbtimes2 ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - - TopoDS_Shape aShape = GetTopoShape(myShape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("MakeMultiTranslation2D aborted : null shape", SALOME::BAD_PARAM); - } - - try { - int i, j ; - double DX, DY, DZ ; - gp_Trsf theTransformation ; - gp_Vec myVec ; - gp_Vec Vec1( dir1.PS.x, dir1.PS.y, dir1.PS.z ) ; - Vec1.Normalize(); - gp_Vec Vec2( dir2.PS.x, dir2.PS.y, dir2.PS.z ) ; - Vec2.Normalize(); - TopoDS_Compound compound; - BRep_Builder B; - B.MakeCompound( compound ); - - for ( i = 0; i < nbtimes1; i++ ) { - for ( j = 0; j < nbtimes2; j++ ) { - DX = i * step1 * Vec1.X() + j * step2 * Vec2.X() ; - DY = i * step1 * Vec1.Y() + j * step2 * Vec2.Y() ; - DZ = i * step1 * Vec1.Z() + j * step2 * Vec2.Z() ; - myVec.SetCoord( DX, DY, DZ ) ; - theTransformation.SetTranslation(myVec) ; - BRepBuilderAPI_Transform myBRepTransformation(aShape, theTransformation, Standard_False) ; - B.Add( compound, myBRepTransformation.Shape() ); - } - } - tds = compound ; - result = CreateObject(tds) ; - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeMultiTranslation2D", SALOME::BAD_PARAM); - } - - if( CORBA::is_nil(result) ) { - THROW_SALOME_CORBA_EXCEPTION("MakeMultiTranslation2D aborted : null result", SALOME::BAD_PARAM); - } - InsertInLabelOneArgument(aShape, myShape, tds, result, myCurrentOCAFDoc) ; - return result; -} - - -//================================================================================= -// function : MakeMultiRotation1D() -// purpose : Multi-Rotate a 3D shape -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeMultiRotation1D( GEOM::GEOM_Shape_ptr myShape, - const GEOM::DirStruct& dir, - const GEOM::PointStruct& loc, - CORBA::Short nbtimes) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - TopoDS_Shape aShape = GetTopoShape(myShape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("MakeMultiRotation1D aborted : null shape", SALOME::BAD_PARAM); - } - - try { - - int i ; - gp_Pnt P(loc.x, loc.y, loc.z) ; - gp_Dir D(dir.PS.x, dir.PS.y, dir.PS.z) ; - gp_Ax1 AX1(P, D) ; - - double angle = 360.0/nbtimes ; - gp_Trsf theTransformation ; - TopoDS_Compound compound; - BRep_Builder B; - B.MakeCompound( compound ); - - for ( i = 0; i < nbtimes; i++ ) { - theTransformation.SetRotation(AX1, i*angle*PI180) ; - BRepBuilderAPI_Transform myBRepTransformation(aShape, theTransformation, Standard_False) ; - B.Add( compound, myBRepTransformation.Shape() ); - } - tds = compound ; - result = CreateObject(tds) ; - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeMultiRotation1D", SALOME::BAD_PARAM); - } - - if( CORBA::is_nil(result) ) { - THROW_SALOME_CORBA_EXCEPTION("MakeMultiRotation1D aborted : null result", SALOME::BAD_PARAM); - } - InsertInLabelOneArgument(aShape, myShape, tds, result, myCurrentOCAFDoc) ; - return result; -} - - -//================================================================================= -// function : MakeMultiRotation2D() -// purpose : Multi-Rotate a 3D shape -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeMultiRotation2D( GEOM::GEOM_Shape_ptr myShape, - const GEOM::DirStruct& dir, - const GEOM::PointStruct& loc, - CORBA::Double ang, - CORBA::Short nbtimes1, - CORBA::Double step, - CORBA::Short nbtimes2 ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - TopoDS_Shape aShape = GetTopoShape(myShape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("MakeMultiRotation2D aborted : null shape", SALOME::BAD_PARAM); - } - - try { - - int i, j ; - double DX, DY, DZ ; - gp_Pnt P(loc.x, loc.y, loc.z) ; - gp_Dir D(dir.PS.x, dir.PS.y, dir.PS.z) ; - gp_Ax1 AX1(P, D) ; - gp_Trsf theTransformation1 ; - gp_Trsf theTransformation2 ; - gp_Pnt P1 ; - GProp_GProps System ; - - if ( aShape.ShapeType() == TopAbs_VERTEX) { - P1 = BRep_Tool::Pnt(TopoDS::Vertex( aShape )); - } - else if ( aShape.ShapeType() == TopAbs_EDGE || aShape.ShapeType() == TopAbs_WIRE ) { - BRepGProp::LinearProperties(aShape, System); - P1 = System.CentreOfMass() ; - } - else if ( aShape.ShapeType() == TopAbs_FACE || aShape.ShapeType() == TopAbs_SHELL ) { - BRepGProp::SurfaceProperties(aShape, System); - P1 = System.CentreOfMass() ; - } - else { - BRepGProp::VolumeProperties(aShape, System); - P1 = System.CentreOfMass() ; - } - - Handle(Geom_Line) Line = new Geom_Line(AX1); - gp_Pnt P2 = GeomAPI_ProjectPointOnCurve( P1, Line ) ; - - if ( P1.IsEqual(P2, Precision::Confusion() ) ) - THROW_SALOME_CORBA_EXCEPTION("Points are confused", SALOME::BAD_PARAM); - - gp_Vec Vec(P1.X()-P2.X(), P1.Y()-P2.Y(), P1.Z()-P2.Z()) ; - Vec.Normalize(); - - gp_Vec myVec ; - TopoDS_Compound compound; - BRep_Builder B; - B.MakeCompound( compound ); - - for ( i = 0; i < nbtimes2; i++ ) { - for ( j = 0; j < nbtimes1; j++ ) { - DX = i * step * Vec.X() ; - DY = i * step * Vec.Y() ; - DZ = i * step * Vec.Z() ; - myVec.SetCoord( DX, DY, DZ ) ; - theTransformation1.SetTranslation(myVec) ; - theTransformation2.SetRotation(AX1, j*ang*PI180) ; - BRepBuilderAPI_Transform myBRepTransformation1(aShape, theTransformation1, Standard_False) ; - BRepBuilderAPI_Transform myBRepTransformation2(myBRepTransformation1.Shape(), theTransformation2, Standard_False) ; - B.Add( compound, myBRepTransformation2.Shape() ); - } - } - tds = compound ; - result = CreateObject(tds) ; - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeMultiRotation2D", SALOME::BAD_PARAM); - } - - if( CORBA::is_nil(result) ) { - THROW_SALOME_CORBA_EXCEPTION("MakeMultiRotation2D aborted : null result", SALOME::BAD_PARAM); - } - InsertInLabelOneArgument(aShape, myShape, tds, result, myCurrentOCAFDoc) ; - return result; -} - - -//================================================================================= -// function : MakeCopy() -// purpose : Copy a 3D shape -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeCopy( GEOM::GEOM_Shape_ptr Shape) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - TopoDS_Shape aShape = GetTopoShape(Shape) ; - if(aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Copy aborted : null shape during operation", SALOME::BAD_PARAM); - } - BRepBuilderAPI_Copy Copy(aShape); - if( Copy.IsDone() ) { - tds = Copy.Shape(); - result = CreateObject(tds); - InsertInLabelOneArgument(aShape, Shape, tds, result, myCurrentOCAFDoc) ; - } - - return result; -} - - -//================================================================================= -// function : MakeMirrorByPlane() -// purpose : build a shape by symmetry of 'myShape' with 'shapePlane' in argument -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeMirrorByPlane(GEOM::GEOM_Shape_ptr myShape, - GEOM::GEOM_Shape_ptr shapePlane) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - TopoDS_Shape aShape = GetTopoShape(myShape) ; - TopoDS_Shape aShapePlane = GetTopoShape(shapePlane) ; - if( aShape.IsNull() || aShapePlane.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Mirror aborted : null shape argument", SALOME::BAD_PARAM); - } - - try { - Handle(Geom_Surface) surf = BRep_Tool::Surface(TopoDS::Face(aShapePlane)) ; - Handle(Geom_Plane) myPlane = Handle(Geom_Plane)::DownCast(surf) ; - const gp_Ax3 pos = myPlane->Position() ; - const gp_Pnt loc = pos.Location() ; /* location of the plane */ - const gp_Dir dir = pos.Direction() ; /* Main direction of the plane (Z axis) */ - - /* plane used for mirroring */ - gp_Ax2 pln(loc, dir) ; - gp_Trsf theTransformation ; - theTransformation.SetMirror(pln) ; - BRepBuilderAPI_Transform myBRepTransformation(aShape, theTransformation, Standard_False) ; - - tds = myBRepTransformation.Shape() ; - if(tds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Mirror aborted", SALOME::BAD_PARAM); - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeMirrorByPlane", SALOME::BAD_PARAM); - } - - result = CreateObject(tds) ; - - /* Insert arguments in ocaf */ - GEOM::GEOM_Gen::ListOfIOR_var ListShapes = new GEOM::GEOM_Gen::ListOfIOR; - ListShapes->length(2); - ListShapes[0] = GetStringFromIOR(GEOM::GEOM_Shape::_duplicate(myShape)) ; - ListShapes[1] = GetStringFromIOR(GEOM::GEOM_Shape::_duplicate(shapePlane)) ; - InsertInLabelMoreArguments(tds, result, ListShapes, myCurrentOCAFDoc) ; - return result ; -} - - - -//================================================================================= -// function : MakeRotation() -// purpose : Rotation of a 3D shape around an axis -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeRotation( GEOM::GEOM_Shape_ptr myShape, - const GEOM::AxisStruct& axis, - CORBA::Double angle) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - TopoDS_Shape aShape = GetTopoShape(myShape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Rotation aborted : null shape during operation", SALOME::BAD_PARAM); - } - - try { - gp_Pnt P(axis.x, axis.y, axis.z) ; - gp_Dir D(axis.vx, axis.vy, axis.vz) ; - gp_Ax1 AX(P, D) ; - - gp_Trsf theTransformation ; - theTransformation.SetRotation(AX, angle) ; - BRepBuilderAPI_Transform myBRepTransformation(aShape, theTransformation, Standard_False) ; - tds = myBRepTransformation.Shape() ; - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeRotation", SALOME::BAD_PARAM); - } - - if ( !tds.IsNull() ) { - result = CreateObject(tds) ; - InsertInLabelOneArgument(aShape, myShape, tds, result, myCurrentOCAFDoc) ; - } - return result ; -} - - -//================================================================================= -// function : MakeScaleTransform() -// purpose : Make a shape multipling another by a scale factor -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeScaleTransform(GEOM::GEOM_Shape_ptr myShape, - const GEOM::PointStruct& theCenterOfScale, - CORBA::Double factor) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - TopoDS_Shape aShape = GetTopoShape(myShape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Scale aborted : null shape during operation", SALOME::BAD_PARAM); - } - - try { - gp_Pnt Pcenter(theCenterOfScale.x, theCenterOfScale.y, theCenterOfScale.z) ; - gp_Trsf theTransformation ; - theTransformation.SetScale(Pcenter, factor) ; - BRepBuilderAPI_Transform myBRepTransformation(aShape, theTransformation, Standard_False) ; - tds = myBRepTransformation.Shape() ; - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeScaleTransform", SALOME::BAD_PARAM); - } - - if ( !tds.IsNull() ) { - result = CreateObject(tds) ; - InsertInLabelOneArgument(aShape, myShape, tds, result, myCurrentOCAFDoc) ; - } - return result ; -} - - -//================================================================================= -// function : MakeCompound() -// purpose : Make a compound from a list containing one or more shapes -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeCompound( const GEOM::GEOM_Gen::ListOfIOR& ListShapes ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Compound C; - BRep_Builder aBuilder; - aBuilder.MakeCompound(C) ; - - for ( unsigned int i = 0; i < ListShapes.length(); i++) { - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListShapes[i] ); - TopoDS_Shape Shape = GetTopoShape(aShape) ; - if( Shape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Compound aborted : null shape during operation", SALOME::BAD_PARAM); - } - aBuilder.Add(C, Shape) ; - } - - if ( C.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Null result : Compound operation aborted", SALOME::BAD_PARAM); - } - else { - result = CreateObject(C) ; - InsertInLabelMoreArguments(C, result, ListShapes, myCurrentOCAFDoc) ; - } - return result; -} - - -//================================================================================ -// function : MakeEdge() -// purpose : Make a linear edge with 2 points -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeEdge(const GEOM::PointStruct& pstruct1, - const GEOM::PointStruct& pstruct2) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - - try { - gp_Pnt P1(pstruct1.x, pstruct1.y, pstruct1.z); - gp_Pnt P2(pstruct2.x, pstruct2.y, pstruct2.z) ; - tds = BRepBuilderAPI_MakeEdge(P1, P2).Shape(); - if ( tds.IsNull() ) - THROW_SALOME_CORBA_EXCEPTION("MakeEdge aborted : null result", SALOME::BAD_PARAM); - } - catch (Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in MakeEdge", SALOME::BAD_PARAM); - } - - result = CreateObject(tds) ; - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry); - return result ; -} - - - -//================================================================================= -// function : MakeWire() -// purpose : Make a wire from a list containing one or more edges or wires that can -// be connected -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeWire( const GEOM::GEOM_Gen::ListOfIOR& ListShapes ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - BRepBuilderAPI_MakeWire MW ; - TopoDS_Shape tds, Shape ; - - try { - for ( unsigned int i = 0; i < ListShapes.length(); i++) { - GEOM::GEOM_Shape_var aShape = GetIORFromString( ListShapes[i] ); - Shape = GetTopoShape(aShape) ; - if( Shape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("MakeWire aborted : null shape during operation", SALOME::BAD_PARAM); - } - if( Shape.ShapeType() == TopAbs_EDGE ) - MW.Add( TopoDS::Edge(Shape) ) ; - if (Shape.ShapeType() == TopAbs_WIRE ) - MW.Add( TopoDS::Wire(Shape) ) ; - } - tds = MW ; - - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeWire", SALOME::BAD_PARAM); - } - - if( tds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Make Wire operation aborted : null result", SALOME::BAD_PARAM); - } - else { - result = CreateObject(tds) ; - InsertInLabelMoreArguments(tds, result, ListShapes, myCurrentOCAFDoc) ; - } - return result; -} - - -//================================================================================= -// function : MakeRevolution() -// purpose : -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeRevolution(GEOM::GEOM_Shape_ptr myShape, - const GEOM::AxisStruct& axis, - double angle) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - TopoDS_Shape aShape = GetTopoShape(myShape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Revolution aborted : null shape", SALOME::BAD_PARAM); - } - try { - gp_Pnt P(axis.x, axis.y, axis.z) ; - gp_Dir D(axis.vx, axis.vy, axis.vz); - gp_Ax1 AX(P,D); - tds = BRepPrimAPI_MakeRevol(aShape, AX, angle); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeRevolution", SALOME::BAD_PARAM); - } - - if( tds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Revolution aborted", SALOME::BAD_PARAM); - } - result = CreateObject(tds) ; - InsertInLabelOneArgument(aShape, myShape, tds, result, myCurrentOCAFDoc) ; - return result ; -} - - -//================================================================================= -// function : MakePipe() -// purpose : Create a shape by sweeping a baseShape along a pathShape -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakePipe( GEOM::GEOM_Shape_ptr pathShape, - GEOM::GEOM_Shape_ptr baseShape ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - TopoDS_Wire aWire ; - TopoDS_Shape pathTds = GetTopoShape(pathShape) ; - TopoDS_Shape baseTds = GetTopoShape(baseShape) ; - - if( baseTds.IsNull() || pathTds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("MakePipe aborted : null shape argument", SALOME::BAD_PARAM); - } - - if( pathTds.ShapeType() == TopAbs_WIRE ) { - aWire = TopoDS::Wire(pathTds) ; - } - else { - if ( pathTds.ShapeType() == TopAbs_EDGE ) { - TopoDS_Edge aEdge = TopoDS::Edge(pathTds) ; - aWire = BRepBuilderAPI_MakeWire(aEdge); - } - else { - THROW_SALOME_CORBA_EXCEPTION("MakePipe aborted : bad shape type", SALOME::BAD_PARAM); - } - } - - try { - tds = BRepOffsetAPI_MakePipe(aWire, baseTds) ; - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakePipe", SALOME::BAD_PARAM); - } - - if ( !IsValid(tds) ) { - THROW_SALOME_CORBA_EXCEPTION("MakePipe aborted : non valid shape result", SALOME::BAD_PARAM); - } - else { - result = CreateObject(tds) ; - - /* Insert arguments in ocaf */ - GEOM::GEOM_Gen::ListOfIOR_var ListShapes = new GEOM::GEOM_Gen::ListOfIOR; - ListShapes->length(2); - ListShapes[0] = GetStringFromIOR(GEOM::GEOM_Shape::_duplicate(pathShape)) ; - ListShapes[1] = GetStringFromIOR(GEOM::GEOM_Shape::_duplicate(baseShape)) ; - InsertInLabelMoreArguments(tds, result, ListShapes, myCurrentOCAFDoc) ; - } - return result ; -} - - -//================================================================================= -// function : MakePrism() -// purpose : uses myShape as base and the vector P1 to P2 -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakePrism( GEOM::GEOM_Shape_ptr myShape, - const GEOM::PointStruct& P1, - const GEOM::PointStruct& P2 ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - TopoDS_Shape aShape = GetTopoShape(myShape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Prism aborted : null shape operation", SALOME::BAD_PARAM); - } - - try { - gp_Vec Vector (P2.x - P1.x, P2.y - P1.y, P2.z - P1.z) ; - tds = BRepPrimAPI_MakePrism(aShape, Vector, Standard_False).Shape() ; - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakePipe", SALOME::BAD_PARAM); - } - - if ( tds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Prism aborted", SALOME::BAD_PARAM); - } - else { - result = CreateObject(tds) ; - InsertInLabelOneArgument(aShape, myShape, tds, result, myCurrentOCAFDoc) ; - } - return result ; -} - - -//================================================================================= -// function : MakeCDG() -// purpose : Create a CDG topology. -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeCDG(GEOM::GEOM_Shape_ptr aShape) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - TopoDS_Shape shape = GetTopoShape(aShape) ; - GProp_GProps System; - gp_Pnt myCenterMass ; - - if( shape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("MakeCDG aborted : null shape argument", SALOME::BAD_PARAM); - } - - try { - if ( shape.ShapeType() == TopAbs_VERTEX) { - myCenterMass = BRep_Tool::Pnt(TopoDS::Vertex( shape )); - } - else if ( shape.ShapeType() == TopAbs_EDGE || shape.ShapeType() == TopAbs_WIRE ) { - BRepGProp::LinearProperties(shape, System); - myCenterMass = System.CentreOfMass() ; - } - else if ( shape.ShapeType() == TopAbs_FACE || shape.ShapeType() == TopAbs_SHELL ) { - BRepGProp::SurfaceProperties(shape, System); - myCenterMass = System.CentreOfMass() ; - } - else { - BRepGProp::VolumeProperties(shape, System); - myCenterMass = System.CentreOfMass() ; - } - - tds = BRepBuilderAPI_MakeVertex(myCenterMass).Shape() ; - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeCDG", SALOME::BAD_PARAM); - } - - if ( tds.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Make CDG aborted : null shape result", SALOME::BAD_PARAM); - } - else { - result = CreateObject(tds) ; - InsertInLabelOneArgument(shape, aShape, tds, result, myCurrentOCAFDoc) ; - } - return result ; -} - - -//================================================================================= -// function : Archimede() -// purpose : -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::Archimede(GEOM::GEOM_Shape_ptr aShape, - CORBA::Double aWeight, - CORBA::Double aWaterDensity, - CORBA::Double aMeshingDeflection) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - - double cste = -1; - if (aWaterDensity != 0.) - cste = aWeight/aWaterDensity; - else - THROW_SALOME_CORBA_EXCEPTION("Water density is null", SALOME::BAD_PARAM); - - TopoDS_Shape shape = GetTopoShape(aShape) ; - if( shape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Shape is null", SALOME::BAD_PARAM); - } - - gp_Dir direct(0.0,0.0,1.0); - gp_Pnt PosPlan(0.0,0.0,0.0); - Geom_Plane PP (PosPlan,direct); - Handle(Geom_Geometry) G = PP.Copy(); - Handle(Geom_Plane) P = Handle(Geom_Plane)::DownCast(G); - - gp_Dir Zdirection(0.0,0.0,1.0); - VolumeSection VOL( shape, aMeshingDeflection); - VOL.SetPlane(P); - Handle (Geom_RectangularTrimmedSurface) SurfaceTrimmee; - - if(Zdirection.IsEqual(direct,Precision::Angular()) == Standard_False) { - VOL.MakeRotation(direct); - } - - VOL.CenterOfGravity(); - SurfaceTrimmee = VOL.TrimSurf(); - Standard_Real Cote = VOL.Archimede( cste, aMeshingDeflection ); - - if ( Cote == -1 ) { - double Zmin,Zmax; - VOL.getZ(Zmin,Zmax); - double volume = VOL.CalculateVolume( Zmax ) * aWaterDensity; - - char msg[100]=""; - sprintf(msg, "shape sinks to the bottom : Weigth max = %.1f", volume); - - THROW_SALOME_CORBA_EXCEPTION(msg, SALOME::BAD_PARAM); - } - - SurfaceTrimmee=VOL.AjustePlan(SurfaceTrimmee,Cote,PosPlan); - if(Zdirection.IsEqual(direct,Precision::Angular()) == Standard_False) { - SurfaceTrimmee=VOL.InvMakeRotation(direct,SurfaceTrimmee); - } - - Standard_Real u1,u2,v1,v2; - SurfaceTrimmee->Bounds(u1,u2,v1,v2); - TopoDS_Face tirant = BRepBuilderAPI_MakeFace(SurfaceTrimmee, u1, u2, v1, v2); - - if (tirant.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Result is null", SALOME::BAD_PARAM); - } - - result = CreateObject(tirant); - InsertInLabelOneArgument(shape, aShape, tirant, result, myCurrentOCAFDoc) ; - - return result; -} - - -//================================================================================ -// function : MakeFillet() -// purpose : Create a cylinder topology -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeFillet( GEOM::GEOM_Shape_ptr shape, - CORBA::Double radius, - CORBA::Short ShapeType, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape tds ; - - const TopoDS_Shape aShape = GetTopoShape(shape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Shape is null", SALOME::BAD_PARAM); - } - - BRepFilletAPI_MakeFillet fill(aShape); - - try { - /* case all */ - if(ListOfID.length() == 0) { - TopExp_Explorer Exp ( aShape, TopAbs_EDGE ); - for (Exp; Exp.More(); Exp.Next()) { - TopoDS_Edge E =TopoDS::Edge(Exp.Current()); - fill.Add(E); - } - for (int i = 1;i<=fill.NbContours();i++) { -#if OCC_VERSION_MAJOR >= 5 - fill.SetRadius(radius,i,i); -#else - fill.SetRadius(radius,i); -#endif - } - tds = fill.Shape(); - - } else { - - /* case selection */ - for ( unsigned int ind = 0; ind < ListOfID.length(); ind++ ) { - TopoDS_Shape ss ; - if( GetShapeFromIndex( aShape, (TopAbs_ShapeEnum)ShapeType, ListOfID[ind], ss ) ) { - TopoDS_Edge E = TopoDS::Edge(ss) ; - fill.Add( E ); - } - } - for (int i = 1;i<=fill.NbContours();i++) { -#if OCC_VERSION_MAJOR >= 5 - fill.SetRadius(radius,i,i); -#else - fill.SetRadius(radius,i); -#endif - } - tds = fill.Shape(); - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeFillet", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Fillet aborted", SALOME::BAD_PARAM); - } - result = CreateObject(tds); - InsertInLabelOneArgument(aShape, shape, tds, result, myCurrentOCAFDoc) ; - - return result ; -} - -//================================================================================ -// function : MakeFilletR1R2() -// purpose : Create a cylinder topology -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeFilletR1R2( GEOM::GEOM_Shape_ptr shape, - CORBA::Double radius1, - CORBA::Double radius2, - CORBA::Short ShapeType, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape tds ; - - const TopoDS_Shape aShape = GetTopoShape(shape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Shape is null", SALOME::BAD_PARAM); - } - - BRepFilletAPI_MakeFillet fill(aShape); - - try { - /* case all */ - if(ListOfID.length() == 0) { - TopExp_Explorer Exp ( aShape, TopAbs_EDGE ); - for (Exp; Exp.More(); Exp.Next()) { - TopoDS_Edge E =TopoDS::Edge(Exp.Current()); - fill.Add(E); - } - for (int i = 1;i<=fill.NbContours();i++) { -#if OCC_VERSION_MAJOR >= 5 - fill.SetRadius(radius1,radius2,i,i); -#else - fill.SetRadius(radius1,radius2,i); -#endif - } - tds = fill.Shape(); - - } else { - - /* case selection */ - for ( unsigned int ind = 0; ind < ListOfID.length(); ind++ ) { - TopoDS_Shape ss ; - if( GetShapeFromIndex( aShape, (TopAbs_ShapeEnum)ShapeType, ListOfID[ind], ss ) ) { - TopoDS_Edge E = TopoDS::Edge(ss) ; - fill.Add( E ); - } - } - for (int i = 1;i<=fill.NbContours();i++) { -#if OCC_VERSION_MAJOR >= 5 - fill.SetRadius(radius1,radius2,i,i); -#else - fill.SetRadius(radius1,radius2,i); -#endif - } - tds = fill.Shape(); - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeFilletR1R2", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Fillet aborted", SALOME::BAD_PARAM); - } - result = CreateObject(tds); - InsertInLabelOneArgument(aShape, shape, tds, result, myCurrentOCAFDoc) ; - - return result ; -} - -//================================================================================ -// function : MakeChamfer -// purpose : Create a Chamfer topology -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeChamfer( GEOM::GEOM_Shape_ptr shape, - CORBA::Double d1, - CORBA::Double d2, - CORBA::Short ShapeType, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape tds ; - - const TopoDS_Shape aShape = GetTopoShape(shape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Shape is null", SALOME::BAD_PARAM); - } - - BRepFilletAPI_MakeChamfer MC(aShape); - - try { - /* case all */ - TopTools_IndexedDataMapOfShapeListOfShape M; - TopExp::MapShapesAndAncestors(aShape,TopAbs_EDGE,TopAbs_FACE,M); - if(ListOfID.length() == 0) { - for (int i = 1;i<=M.Extent();i++) { - TopoDS_Edge E = TopoDS::Edge(M.FindKey(i)); - TopoDS_Face F = TopoDS::Face(M.FindFromIndex(i).First()); - if (!BRepTools::IsReallyClosed(E, F) && !BRep_Tool::Degenerated(E)) - MC.Add(d1,d2,E,F); - } - tds = MC.Shape(); - - } else { - - /* case selection */ - for ( unsigned int ind = 0; ind < ListOfID.length(); ind++ ) { - TopoDS_Shape ss ; - if( GetShapeFromIndex( aShape, (TopAbs_ShapeEnum)ShapeType, ListOfID[ind], ss ) ) { - TopoDS_Edge E = TopoDS::Edge( ss ) ; - TopoDS_Face F = TopoDS::Face(M.FindFromKey(E).First()); - if (!BRepTools::IsReallyClosed(E, F) && !BRep_Tool::Degenerated(E)) - MC.Add(d1,d2,E,F); - } - } - tds = MC.Shape(); - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeChamfer", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Chamfer aborted", SALOME::BAD_PARAM); - } - result = CreateObject(tds); - InsertInLabelOneArgument(aShape, shape, tds, result, myCurrentOCAFDoc) ; - - return result ; -} - -//================================================================================ -// function : MakeChamferAD -// purpose : Create a Chamfer topology by Lenght & Angle -//================================================================================ -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakeChamferAD( GEOM::GEOM_Shape_ptr shape, - CORBA::Double d, - CORBA::Double angle, - CORBA::Short ShapeType, - const GEOM::GEOM_Shape::ListOfSubShapeID& ListOfID ) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result; - TopoDS_Shape tds ; - - const TopoDS_Shape aShape = GetTopoShape(shape) ; - if( aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Shape is null", SALOME::BAD_PARAM); - } - - BRepFilletAPI_MakeChamfer MC(aShape); - - try { - /* case all */ - TopTools_IndexedDataMapOfShapeListOfShape M; - TopExp::MapShapesAndAncestors(aShape,TopAbs_EDGE,TopAbs_FACE,M); - if(ListOfID.length() == 0) { - for (int i = 1;i<=M.Extent();i++) { - TopoDS_Edge E = TopoDS::Edge(M.FindKey(i)); - TopoDS_Face F = TopoDS::Face(M.FindFromIndex(i).First()); - if (!BRepTools::IsReallyClosed(E, F) && !BRep_Tool::Degenerated(E)) - MC.AddDA(d,angle,E,F); - } - tds = MC.Shape(); - - } else { - - /* case selection */ - for ( unsigned int ind = 0; ind < ListOfID.length(); ind++ ) { - TopoDS_Shape ss ; - if( GetShapeFromIndex( aShape, (TopAbs_ShapeEnum)ShapeType, ListOfID[ind], ss ) ) { - TopoDS_Edge E = TopoDS::Edge( ss ) ; - TopoDS_Face F = TopoDS::Face(M.FindFromKey(E).First()); - if (!BRepTools::IsReallyClosed(E, F) && !BRep_Tool::Degenerated(E)) - MC.AddDA(d,angle,E,F); - } - } - tds = MC.Shape(); - } - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeChamferAD", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make ChamferAD aborted", SALOME::BAD_PARAM); - } - result = CreateObject(tds); - InsertInLabelOneArgument(aShape, shape, tds, result, myCurrentOCAFDoc) ; - return result ; -} - -//================================================================================= -// function : CheckShape() -// purpose : -//================================================================================= -CORBA::Boolean GEOM_Gen_i::CheckShape(GEOM::GEOM_Shape_ptr shape) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - TopoDS_Shape S = GetTopoShape(shape) ; - if( S.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("Shape is null", SALOME::BAD_PARAM); - } - - BRepCheck_Analyzer ana(S,false); - if (ana.IsValid()) - return 1; - - return 0; -} - -//================================================================================= -// function : MakePlacedBox() -// purpose : -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakePlacedBox(CORBA::Double x1, CORBA::Double y1, CORBA::Double z1, - CORBA::Double delta1, CORBA::Double delta2, CORBA::Double delta3) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - - CORBA::Double x2, y2, z2 ; - - try { - x2 = x1 + delta1 ; - y2 = y1 + delta2 ; - z2 = z1 + delta3 ; - - gp_Pnt P1(x1,y1,z1); - gp_Pnt P2(x2,y2,z2); - - tds = BRepPrimAPI_MakeBox(P1,P2).Shape(); - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakeBox", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make Box aborted : null shape", SALOME::BAD_PARAM); - } - - result = CreateObject(tds); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry) ; - - return result; -} - -//================================================================================= -// function : MakePanel() -// purpose : -//================================================================================= -GEOM::GEOM_Shape_ptr GEOM_Gen_i::MakePanel(GEOM::GEOM_Shape_ptr shape, - CORBA::Short directiontype, - CORBA::Double delta) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - GEOM::GEOM_Shape_var result ; - TopoDS_Shape tds ; - TopoDS_Shape aShape = GetTopoShape(shape) ; - Bnd_Box B ; - Standard_Real axmin,aymin,azmin,axmax,aymax,azmax ; - GEOM::PointStruct pstruct1, pstruct2, pstruct3, pstruct4 ; - - if(aShape.IsNull() ) { - THROW_SALOME_CORBA_EXCEPTION("MakePanel aborted : null shape during operation", SALOME::BAD_PARAM); - } - - try { - BRepBndLib::Add(aShape,B); - B.Enlarge(10.); - B.Get(axmin,aymin,azmin,axmax,aymax,azmax); - - switch (directiontype) - { - case 1 : /* X */ - pstruct1 = MakePointStruct( delta, aymin, azmin ) ; - pstruct2 = MakePointStruct( delta, aymin, azmax ) ; - pstruct3 = MakePointStruct( delta, aymax, azmax ) ; - pstruct4 = MakePointStruct( delta, aymax, azmin ) ; - break ; - case 2 : /* Y */ - pstruct1 = MakePointStruct( axmin, delta, azmin ) ; - pstruct2 = MakePointStruct( axmin, delta, azmax ) ; - pstruct3 = MakePointStruct( axmax, delta, azmax ) ; - pstruct4 = MakePointStruct( axmax, delta, azmin ) ; - break ; - case 3 : /* Z */ - pstruct1 = MakePointStruct( axmin, aymin, delta ) ; - pstruct2 = MakePointStruct( axmin, aymax, delta ) ; - pstruct3 = MakePointStruct( axmax, aymax, delta ) ; - pstruct4 = MakePointStruct( axmax, aymin, delta ) ; - break ; - default : - return result ; - } - - GEOM::GEOM_Shape_ptr Edge1 = MakeEdge(pstruct1, pstruct2); - GEOM::GEOM_Shape_ptr Edge2 = MakeEdge(pstruct2, pstruct3); - GEOM::GEOM_Shape_ptr Edge3 = MakeEdge(pstruct3, pstruct4); - GEOM::GEOM_Shape_ptr Edge4 = MakeEdge(pstruct4, pstruct1); - - GEOM::GEOM_Gen::ListOfIOR_var aList = new GEOM::GEOM_Gen::ListOfIOR; - aList->length(4); - aList[0]=CORBA::string_dup(Edge1->Name()); - aList[1]=CORBA::string_dup(Edge2->Name()); - aList[2]=CORBA::string_dup(Edge3->Name()); - aList[3]=CORBA::string_dup(Edge4->Name()); - - GEOM::GEOM_Shape_ptr aWire = MakeWire( aList ); - GEOM::GEOM_Shape_ptr aFace = MakeFace( aWire, true ) ; - tds = GetTopoShape(aFace); - - } - catch(Standard_Failure) { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::MakePanel", SALOME::BAD_PARAM); - } - - if (tds.IsNull()) { - THROW_SALOME_CORBA_EXCEPTION("Make PanelsPartition aborted : null shape", SALOME::BAD_PARAM); - } - - result = CreateObject(tds); - const char *entry = InsertInLabel(tds, result->Name(), myCurrentOCAFDoc) ; - result->ShapeId(entry) ; - - return result; -} - - -void GEOM_Gen_i::ExportIGES(const char* filename,GEOM::GEOM_Shape_ptr theShape) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - if (theShape->_is_nil()) - { - THROW_SALOME_CORBA_EXCEPTION("Export IGES aborted", SALOME::BAD_PARAM); - } - TopoDS_Shape tds = GetTopoShape(theShape); - if (tds.IsNull()) - { - THROW_SALOME_CORBA_EXCEPTION("Export IGES aborted", SALOME::BAD_PARAM); - } - try - { - //VRV: OCC 4.0 migration - IGESControl_Controller::Init(); - IGESControl_Writer ICW (Interface_Static::CVal("XSTEP.iges.unit"), - Interface_Static::IVal("XSTEP.iges.writebrep.mode")); - //VRV: OCC 4.0 migration - - ICW.AddShape (tds); - ICW.ComputeModel(); - char * aname = strdup(filename); - Standard_Boolean result = ICW.Write( aname ); - free(aname); - } - catch(Standard_Failure) - { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::ExportIGES", SALOME::BAD_PARAM); - } -} - -void GEOM_Gen_i::ExportBREP(const char* filename,GEOM::GEOM_Shape_ptr theShape) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - if (theShape->_is_nil()) - { - THROW_SALOME_CORBA_EXCEPTION("Export BRep aborted", SALOME::BAD_PARAM); - } - TopoDS_Shape tds = GetTopoShape(theShape); - if (tds.IsNull()) - { - THROW_SALOME_CORBA_EXCEPTION("Export BRep aborted", SALOME::BAD_PARAM); - } - try - { - char * aname = strdup(filename); - Standard_Boolean result = BRepTools::Write(tds,aname); - free(aname); - } - catch(Standard_Failure) - { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::ExportBREP", SALOME::BAD_PARAM); - } -} - -void GEOM_Gen_i::ExportSTEP(const char* filename,GEOM::GEOM_Shape_ptr theShape) - throw (SALOME::SALOME_Exception) -{ - Unexpect aCatch(SALOME_SalomeException); - if (theShape->_is_nil()) - { - THROW_SALOME_CORBA_EXCEPTION("Export STEP aborted", SALOME::BAD_PARAM); - } - TopoDS_Shape tds = GetTopoShape(theShape); - if (tds.IsNull()) - { - THROW_SALOME_CORBA_EXCEPTION("Export STEP aborted", SALOME::BAD_PARAM); - } - try - { - IFSelect_ReturnStatus status ; - //VRV: OCC 4.0 migration - STEPControl_Writer aWriter; - status = aWriter.Transfer( tds, STEPControl_ManifoldSolidBrep ) ; - //VRV: OCC 4.0 migration - if ( status == IFSelect_RetDone ) - { - char * aname = strdup(filename); - status = aWriter.Write( aname ) ; - free(aname); - } - } - catch(Standard_Failure) - { - THROW_SALOME_CORBA_EXCEPTION("Exception catched in GEOM_Gen_i::ExportBREP", SALOME::BAD_PARAM); - } -} - - -//===================================================================================== -// EXPORTED METHODS -//===================================================================================== -extern "C" -{ - PortableServer::ObjectId * GEOMEngine_factory(CORBA::ORB_ptr orb, - PortableServer::POA_ptr poa, - PortableServer::ObjectId * contId, - const char *instanceName, - const char * interfaceName) - { - GEOM_Gen_i * myGEOM_Gen_i = new GEOM_Gen_i(orb, poa, contId, instanceName, interfaceName); - myGEOM_Gen_i->register_name("/myGEOM_Gen"); // NRI : 11/07/2002 : Add for Supervision example - return myGEOM_Gen_i->getId() ; - } -} - diff --git a/src/GEOM/GEOM_IOperations.cxx b/src/GEOM/GEOM_IOperations.cxx index 0e4a71296..699a7b8f3 100644 --- a/src/GEOM/GEOM_IOperations.cxx +++ b/src/GEOM/GEOM_IOperations.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include diff --git a/src/GEOM/GEOM_IOperations.hxx b/src/GEOM/GEOM_IOperations.hxx index 67781992d..824cb60ed 100644 --- a/src/GEOM/GEOM_IOperations.hxx +++ b/src/GEOM/GEOM_IOperations.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_IOperations_HXX_ #define _GEOM_IOperations_HXX_ @@ -62,7 +63,7 @@ class GEOM_IOperations //Returns an error code of the last operatioin Standard_EXPORT char* GetErrorCode() { - return _errorCode.ToCString(); + return (char*) _errorCode.ToCString(); } //Returns a pointer to GEOM_Engine which this operation interface is associated diff --git a/src/GEOM/GEOM_ISubShape.hxx b/src/GEOM/GEOM_ISubShape.hxx index 8b3f1430b..492b96f56 100644 --- a/src/GEOM/GEOM_ISubShape.hxx +++ b/src/GEOM/GEOM_ISubShape.hxx @@ -1,26 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // NOTE: This is an intreface to a function for the Shapes // (Wire, Face, Shell, Solid and Compound) creation. - - +// #include "GEOM_Function.hxx" #include "TColStd_HSequenceOfTransient.hxx" diff --git a/src/GEOM/GEOM_Object.cxx b/src/GEOM/GEOM_Object.cxx index 6d5174d4d..672ce7835 100644 --- a/src/GEOM/GEOM_Object.cxx +++ b/src/GEOM/GEOM_Object.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -88,7 +90,9 @@ Handle(GEOM_Object) GEOM_Object::GetObject(TDF_Label& theLabel) GEOM_Engine* anEngine= GEOM_Engine::GetEngine(); if(anEngine == NULL) return NULL; - return anEngine->GetObject(anID->Get(), anEntry.ToCString()); + return anEngine->GetObject(anID->Get(), (char*) anEntry.ToCString()); + + } //============================================================================= @@ -378,6 +382,31 @@ TCollection_AsciiString GEOM_Object::GetAuxData() return aData; } +//============================================================================= +/*! + * SetParameters + */ +//============================================================================= +void GEOM_Object::SetParameters(const TCollection_AsciiString& theParameters) +{ + if( _parameters.IsEmpty() ) + _parameters = theParameters; + else { + _parameters += "|"; + _parameters += theParameters; + } +} + +//============================================================================= +/*! + * GetParameters + */ +//============================================================================= +TCollection_AsciiString GEOM_Object::GetParameters() const +{ + return _parameters; +} + //============================================================================= /*! diff --git a/src/GEOM/GEOM_Object.hxx b/src/GEOM/GEOM_Object.hxx index 7d8eda71b..67f309bb0 100644 --- a/src/GEOM/GEOM_Object.hxx +++ b/src/GEOM/GEOM_Object.hxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _GEOM_Object_HeaderFile #define _GEOM_Object_HeaderFile @@ -219,6 +221,12 @@ class GEOM_Object : public MMgt_TShared //Returns an auxiliary data Standard_EXPORT TCollection_AsciiString GetAuxData(); + //Set a notebook variables used for object creation + Standard_EXPORT void SetParameters(const TCollection_AsciiString& theParameters); + + //Get a notebook variables used for object creation + Standard_EXPORT TCollection_AsciiString GetParameters() const; + //########################################################### // Sub shape methods //########################################################### @@ -270,6 +278,7 @@ class GEOM_Object : public MMgt_TShared Handle(TDataStd_TreeNode) _root; TDF_Label _label; TCollection_AsciiString _ior; + TCollection_AsciiString _parameters; }; #endif diff --git a/src/GEOM/GEOM_PythonDump.cxx b/src/GEOM/GEOM_PythonDump.cxx index 41b9c184f..8f4143404 100644 --- a/src/GEOM/GEOM_PythonDump.cxx +++ b/src/GEOM/GEOM_PythonDump.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "GEOM_PythonDump.hxx" #include @@ -117,7 +119,7 @@ namespace GEOM TDF_Tool::TagList(theObj1->GetEntry(), aTags1); TDF_Tool::TagList(theObj2->GetEntry(), aTags2); TColStd_ListIteratorOfListOfInteger aListIter1(aTags1), aListIter2(aTags2); - for (; aListIter1.More(); aListIter1.Next()) { + for (; aListIter1.More(); aListIter1.Next(), aListIter2.Next()) { if (!aListIter2.More()) return theObj1; // anObj1 is stored under anObj2 diff --git a/src/GEOM/GEOM_PythonDump.hxx b/src/GEOM/GEOM_PythonDump.hxx index 4e87df150..43c63133e 100644 --- a/src/GEOM/GEOM_PythonDump.hxx +++ b/src/GEOM/GEOM_PythonDump.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef _GEOM_PYTHONDUMP_HXX_ #define _GEOM_PYTHONDUMP_HXX_ diff --git a/src/GEOM/GEOM_Solver.cxx b/src/GEOM/GEOM_Solver.cxx index 0414a123b..4967c088b 100644 --- a/src/GEOM/GEOM_Solver.cxx +++ b/src/GEOM/GEOM_Solver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include "GEOM_Solver.hxx" #include #include diff --git a/src/GEOM/GEOM_Solver.hxx b/src/GEOM/GEOM_Solver.hxx index 03dc0c5d2..acc4e1194 100644 --- a/src/GEOM/GEOM_Solver.hxx +++ b/src/GEOM/GEOM_Solver.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_Solver_HXX_ #define _GEOM_Solver_HXX_ diff --git a/src/GEOM/GEOM_SubShapeDriver.cxx b/src/GEOM/GEOM_SubShapeDriver.cxx index b756d570e..12d62e5a1 100644 --- a/src/GEOM/GEOM_SubShapeDriver.cxx +++ b/src/GEOM/GEOM_SubShapeDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOM/GEOM_SubShapeDriver.hxx b/src/GEOM/GEOM_SubShapeDriver.hxx index bfe80e847..fde1c6b16 100644 --- a/src/GEOM/GEOM_SubShapeDriver.hxx +++ b/src/GEOM/GEOM_SubShapeDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_ShapeDriver.ixx // Module : GEOM - +// #ifndef _GEOM_SubShapeDriver_HeaderFile #define _GEOM_SubShapeDriver_HeaderFile diff --git a/src/GEOM/Handle_GEOM_Application.hxx b/src/GEOM/Handle_GEOM_Application.hxx index f8e3b285d..f7f21d156 100644 --- a/src/GEOM/Handle_GEOM_Application.hxx +++ b/src/GEOM/Handle_GEOM_Application.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Handle_GEOM_Application.hxx // Module : GEOM - +// #ifndef _Handle_GEOM_Application_HeaderFile #define _Handle_GEOM_Application_HeaderFile diff --git a/src/GEOM/Handle_GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx b/src/GEOM/Handle_GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx index f0800cdff..9458f5db4 100644 --- a/src/GEOM/Handle_GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx +++ b/src/GEOM/Handle_GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : Handle_GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx // Module : GEOM - +// #ifndef _Handle_GEOM_DataMapNodeOfDataMapOfAsciiStringTransient_HeaderFile #define _Handle_GEOM_DataMapNodeOfDataMapOfAsciiStringTransient_HeaderFile diff --git a/src/GEOM/Makefile.am b/src/GEOM/Makefile.am index 9eea77f17..4ab7a8b7c 100644 --- a/src/GEOM/Makefile.am +++ b/src/GEOM/Makefile.am @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,70 +17,66 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # - # File : Makefile.in # Author : Damien COQUERET (OCC) # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header: - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libGEOMbasic.la -dist_libGEOMbasic_la_SOURCES = \ - GEOM_Application.cxx \ - GEOM_Engine.cxx \ - GEOM_Function.cxx \ - GEOM_Object.cxx \ - GEOM_IOperations.cxx \ - GEOM_Solver.cxx \ - GEOM_SubShapeDriver.cxx \ - GEOM_PythonDump.cxx \ - GEOM_DataMapNodeOfDataMapOfAsciiStringTransient_0.cxx \ - GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient_0.cxx \ +dist_libGEOMbasic_la_SOURCES = \ + GEOM_Application.cxx \ + GEOM_Engine.cxx \ + GEOM_Function.cxx \ + GEOM_Object.cxx \ + GEOM_IOperations.cxx \ + GEOM_Solver.cxx \ + GEOM_SubShapeDriver.cxx \ + GEOM_PythonDump.cxx \ + GEOM_DataMapNodeOfDataMapOfAsciiStringTransient_0.cxx \ + GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient_0.cxx \ GEOM_DataMapOfAsciiStringTransient_0.cxx -#LIB_CLIENT_IDL = -#LIB_SERVER_IDL = - -# Executables targets -#BIN = -#BIN_SRC = -#BIN_CLIENT_IDL = -#BIN_SERVER_IDL = - # header files -salomeinclude_HEADERS = \ - GEOM_Application.hxx \ - Handle_GEOM_Application.hxx \ - GEOM_Engine.hxx \ - GEOM_Function.hxx \ - GEOM_Object.hxx \ - GEOM_IOperations.hxx \ - GEOM_ISubShape.hxx \ - GEOM_Solver.hxx \ - GEOM_PythonDump.hxx \ - GEOM_DataMapOfAsciiStringTransient.hxx \ +salomeinclude_HEADERS = \ + GEOM_Application.hxx \ + GEOM_Application.ixx \ + GEOM_Application.jxx \ + Handle_GEOM_Application.hxx \ + GEOM_Engine.hxx \ + GEOM_Function.hxx \ + GEOM_Object.hxx \ + GEOM_SubShapeDriver.hxx \ + GEOM_IOperations.hxx \ + GEOM_ISubShape.hxx \ + GEOM_Solver.hxx \ + GEOM_PythonDump.hxx \ + GEOM_DataMapIteratorOfDataMapOfAsciiStringTransient.hxx \ + GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx \ + GEOM_DataMapOfAsciiStringTransient.hxx \ Handle_GEOM_DataMapNodeOfDataMapOfAsciiStringTransient.hxx -# additionnal information to compil and link file -libGEOMbasic_la_CPPFLAGS = \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(BOOST_CPPFLAGS) \ - -I$(top_builddir)/idl \ +# additional information to compile and link file + +libGEOMbasic_la_CPPFLAGS = \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(BOOST_CPPFLAGS) \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libGEOMbasic_la_LDFLAGS = \ - $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ - $(STDLIB) \ - $(CAS_LDPATH) -lTKXSBase \ - $(CAS_OCAF) \ +libGEOMbasic_la_LDFLAGS = \ + $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ + $(STDLIB) \ + $(CAS_LDPATH) -lTKXSBase \ + $(CAS_OCAF) \ $(CAS_OCAFVIS) diff --git a/src/GEOM/geom.cxx b/src/GEOM/geom.cxx deleted file mode 100644 index 8ac0deb96..000000000 --- a/src/GEOM/geom.cxx +++ /dev/null @@ -1,88 +0,0 @@ -// GEOM GEOM : implementaion of GEOM_Gen.idl -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : geom.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - -#include - -#include -#include -#include - -//================================================================================== -// function : main() MAIN -// purpose : -//================================================================================== -int main(int argc, char** argv) -{ - try { - // Create and initialise the ORB. - // CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "omniORB4"); - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "omniORB3"); - - // Obtain a reference to the root POA. - CORBA::Object_var obj = orb->resolve_initial_references("RootPOA"); - PortableServer::POA_var poa = PortableServer::POA::_narrow(obj); - - // We allocate the objects on the heap. Since these are reference - // counted objects, they will be deleted by the POA when they are no - // longer needed. -#ifdef WNT - GEOM_Gen_i * myGEOM_Gen_i = new GEOM_Gen_i((CORBA::ORB_ptr)orb, poa, 0, 0, 0 ); -#else - GEOM_Gen_i * myGEOM_Gen_i = new GEOM_Gen_i(orb); -#endif - - // Activate the objects. This tells the POA that the objects are - // ready to accept requests. - PortableServer::ObjectId_var myGEOM_Gen_iid = poa->activate_object(myGEOM_Gen_i); - myGEOM_Gen_i->register_name("/myGEOM_Gen"); - - // Obtain a POAManager, and tell the POA to start accepting - // requests on its objects. - PortableServer::POAManager_var pman = poa->the_POAManager(); - pman->activate(); - - orb->run(); - orb->destroy(); - } - catch(CORBA::SystemException&) { - cerr << "Caught CORBA::SystemException." << endl; - } - catch(CORBA::Exception&) { - cerr << "Caught CORBA::Exception." << endl; - } - catch(omniORB::fatalException& fe) { - cerr << "Caught omniORB::fatalException:" << endl; - cerr << " file: " << fe.file() << endl; - cerr << " line: " << fe.line() << endl; - cerr << " msg: " << fe.errmsg() << endl; - } - catch(...) { - cerr << "Caught unknown exception." << endl; - } - return 0; -} diff --git a/src/GEOMAlgo/BlockFix.cdl b/src/GEOMAlgo/BlockFix.cdl index 7825011c6..3edbd6ad5 100644 --- a/src/GEOMAlgo/BlockFix.cdl +++ b/src/GEOMAlgo/BlockFix.cdl @@ -1,27 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: BlockFix.cdl --- Created: Tue Dec 7 11:59:05 2004 --- Author: Pavel Durandin --- ----Copyright: Open CASCADE SA 2004 +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: BlockFix.cdl +-- Created: Tue Dec 7 11:59:05 2004 +-- Author: Pavel Durandin diff --git a/src/GEOMAlgo/BlockFix.cxx b/src/GEOMAlgo/BlockFix.cxx index eacbd4027..a8c47b09d 100644 --- a/src/GEOMAlgo/BlockFix.cxx +++ b/src/GEOMAlgo/BlockFix.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: BlockFix.cxx // Created: Tue Dec 7 11:59:05 2004 // Author: Pavel DURANDIN - - +// #include #include #include diff --git a/src/GEOMAlgo/BlockFix.hxx b/src/GEOMAlgo/BlockFix.hxx index a6007a7dd..80b041429 100644 --- a/src/GEOMAlgo/BlockFix.hxx +++ b/src/GEOMAlgo/BlockFix.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _BlockFix_HeaderFile #define _BlockFix_HeaderFile diff --git a/src/GEOMAlgo/BlockFix.ixx b/src/GEOMAlgo/BlockFix.ixx index 9912dd405..700a7f37a 100644 --- a/src/GEOMAlgo/BlockFix.ixx +++ b/src/GEOMAlgo/BlockFix.ixx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include diff --git a/src/GEOMAlgo/BlockFix.jxx b/src/GEOMAlgo/BlockFix.jxx index 552f48067..3c9000120 100644 --- a/src/GEOMAlgo/BlockFix.jxx +++ b/src/GEOMAlgo/BlockFix.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _TopoDS_Shape_HeaderFile #include diff --git a/src/GEOMAlgo/BlockFix_BlockFixAPI.cdl b/src/GEOMAlgo/BlockFix_BlockFixAPI.cdl index 7b415e7cb..6682c1881 100644 --- a/src/GEOMAlgo/BlockFix_BlockFixAPI.cdl +++ b/src/GEOMAlgo/BlockFix_BlockFixAPI.cdl @@ -1,27 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: BlockFix_BlockFixAPI.cdl --- Created: Tue Dec 7 17:56:09 2004 --- Author: Pavel Durandin --- ----Copyright: Open CASCADE SA 2004 +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: BlockFix_BlockFixAPI.cdl +-- Created: Tue Dec 7 17:56:09 2004 +-- Author: Pavel Durandin class BlockFixAPI from BlockFix inherits TShared from MMgt diff --git a/src/GEOMAlgo/BlockFix_BlockFixAPI.cxx b/src/GEOMAlgo/BlockFix_BlockFixAPI.cxx index c87b2e60d..62e33fd4e 100644 --- a/src/GEOMAlgo/BlockFix_BlockFixAPI.cxx +++ b/src/GEOMAlgo/BlockFix_BlockFixAPI.cxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: BlockFix_BlockFixAPI.cxx // Created: Tue Dec 7 11:59:05 2004 // Author: Pavel DURANDIN -// Copyright: Open CASCADE SA 2004 - - +// #include #include #include diff --git a/src/GEOMAlgo/BlockFix_BlockFixAPI.hxx b/src/GEOMAlgo/BlockFix_BlockFixAPI.hxx index fd699a0de..9bece72c4 100644 --- a/src/GEOMAlgo/BlockFix_BlockFixAPI.hxx +++ b/src/GEOMAlgo/BlockFix_BlockFixAPI.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _BlockFix_BlockFixAPI_HeaderFile #define _BlockFix_BlockFixAPI_HeaderFile diff --git a/src/GEOMAlgo/BlockFix_BlockFixAPI.ixx b/src/GEOMAlgo/BlockFix_BlockFixAPI.ixx index d70496dc0..1b68aba32 100644 --- a/src/GEOMAlgo/BlockFix_BlockFixAPI.ixx +++ b/src/GEOMAlgo/BlockFix_BlockFixAPI.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/BlockFix_BlockFixAPI.jxx b/src/GEOMAlgo/BlockFix_BlockFixAPI.jxx index 7e28c943d..6dee401ac 100644 --- a/src/GEOMAlgo/BlockFix_BlockFixAPI.jxx +++ b/src/GEOMAlgo/BlockFix_BlockFixAPI.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _ShapeBuild_ReShape_HeaderFile #include diff --git a/src/GEOMAlgo/BlockFix_BlockFixAPI.lxx b/src/GEOMAlgo/BlockFix_BlockFixAPI.lxx index 7926785d8..883e4fec6 100644 --- a/src/GEOMAlgo/BlockFix_BlockFixAPI.lxx +++ b/src/GEOMAlgo/BlockFix_BlockFixAPI.lxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include diff --git a/src/GEOMAlgo/BlockFix_CheckTool.cdl b/src/GEOMAlgo/BlockFix_CheckTool.cdl index aa85c32e8..3af730581 100644 --- a/src/GEOMAlgo/BlockFix_CheckTool.cdl +++ b/src/GEOMAlgo/BlockFix_CheckTool.cdl @@ -1,27 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: BlockFix_CheckTool.cdl --- Created: Fri Dec 17 10:36:58 2004 --- Author: Sergey KUUL --- ----Copyright: Open CASCADE SA 2004 +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: BlockFix_CheckTool.cdl +-- Created: Fri Dec 17 10:36:58 2004 +-- Author: Sergey KUUL class CheckTool from BlockFix diff --git a/src/GEOMAlgo/BlockFix_CheckTool.cxx b/src/GEOMAlgo/BlockFix_CheckTool.cxx index 94269ef75..a5d825255 100644 --- a/src/GEOMAlgo/BlockFix_CheckTool.cxx +++ b/src/GEOMAlgo/BlockFix_CheckTool.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: BlockFix_CheckTool.cxx // Created: 17.12.04 11:15:25 // Author: Sergey KUUL -// Copyright: Open CASCADE SA 2004 - +// #include #include diff --git a/src/GEOMAlgo/BlockFix_CheckTool.hxx b/src/GEOMAlgo/BlockFix_CheckTool.hxx index 605174576..89c32a9fc 100644 --- a/src/GEOMAlgo/BlockFix_CheckTool.hxx +++ b/src/GEOMAlgo/BlockFix_CheckTool.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _BlockFix_CheckTool_HeaderFile #define _BlockFix_CheckTool_HeaderFile diff --git a/src/GEOMAlgo/BlockFix_CheckTool.ixx b/src/GEOMAlgo/BlockFix_CheckTool.ixx index c7e4949ab..a0af6be71 100644 --- a/src/GEOMAlgo/BlockFix_CheckTool.ixx +++ b/src/GEOMAlgo/BlockFix_CheckTool.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/BlockFix_CheckTool.jxx b/src/GEOMAlgo/BlockFix_CheckTool.jxx index b9ba94f32..017d344ba 100644 --- a/src/GEOMAlgo/BlockFix_CheckTool.jxx +++ b/src/GEOMAlgo/BlockFix_CheckTool.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _TopoDS_Shape_HeaderFile #include diff --git a/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.cdl b/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.cdl index 23551c0cb..06eedfc9f 100644 --- a/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.cdl +++ b/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.cdl @@ -1,27 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: BlockFix_PeriodicSurfaceModifier.cdl --- Created: Wed Dec 15 10:03:50 2004 --- Author: Sergey KUUL --- ----Copyright: Open CASCADE SA 2004 +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- File: BlockFix_PeriodicSurfaceModifier.cdl +-- Created: Wed Dec 15 10:03:50 2004 +-- Author: Sergey KUUL class PeriodicSurfaceModifier from BlockFix inherits Modification from BRepTools diff --git a/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.cxx b/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.cxx index 97590046a..5e523b68a 100644 --- a/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.cxx +++ b/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: BlockFix_PeriodicSurfaceModifier.cxx // Created: 15.12.04 10:08:50 // Author: Sergey KUUL -// Copyright: Open CASCADE SA 2004 - +// #include #include diff --git a/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.hxx b/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.hxx index 1230e3e6f..248723046 100644 --- a/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.hxx +++ b/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _BlockFix_PeriodicSurfaceModifier_HeaderFile #define _BlockFix_PeriodicSurfaceModifier_HeaderFile diff --git a/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.ixx b/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.ixx index 49daa3c1f..5ab8be7b8 100644 --- a/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.ixx +++ b/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.jxx b/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.jxx index b30f00602..72b3e9684 100644 --- a/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.jxx +++ b/src/GEOMAlgo/BlockFix_PeriodicSurfaceModifier.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _TopoDS_Face_HeaderFile #include diff --git a/src/GEOMAlgo/BlockFix_SphereSpaceModifier.cdl b/src/GEOMAlgo/BlockFix_SphereSpaceModifier.cdl index b67d9d569..157ee2e1e 100644 --- a/src/GEOMAlgo/BlockFix_SphereSpaceModifier.cdl +++ b/src/GEOMAlgo/BlockFix_SphereSpaceModifier.cdl @@ -1,27 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: BlockFix_SphereSpaceModifier.cdl --- Created: Tue Dec 7 12:01:49 2004 --- Author: Pavel Durandin --- ----Copyright: Open CASCADE SA 2004 +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: BlockFix_SphereSpaceModifier.cdl +-- Created: Tue Dec 7 12:01:49 2004 +-- Author: Pavel Durandin class SphereSpaceModifier from BlockFix inherits Modification from BRepTools diff --git a/src/GEOMAlgo/BlockFix_SphereSpaceModifier.cxx b/src/GEOMAlgo/BlockFix_SphereSpaceModifier.cxx index e61b4a53b..a66e7b242 100644 --- a/src/GEOMAlgo/BlockFix_SphereSpaceModifier.cxx +++ b/src/GEOMAlgo/BlockFix_SphereSpaceModifier.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: BlockFix.cxx // Created: Tue Dec 7 11:59:05 2004 // Author: Pavel DURANDIN -// Copyright: Open CASCADE SA 2004 - +// #include #include diff --git a/src/GEOMAlgo/BlockFix_SphereSpaceModifier.hxx b/src/GEOMAlgo/BlockFix_SphereSpaceModifier.hxx index 80a600920..acdb3bda8 100644 --- a/src/GEOMAlgo/BlockFix_SphereSpaceModifier.hxx +++ b/src/GEOMAlgo/BlockFix_SphereSpaceModifier.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _BlockFix_SphereSpaceModifier_HeaderFile #define _BlockFix_SphereSpaceModifier_HeaderFile diff --git a/src/GEOMAlgo/BlockFix_SphereSpaceModifier.ixx b/src/GEOMAlgo/BlockFix_SphereSpaceModifier.ixx index 651423466..31ea8a258 100644 --- a/src/GEOMAlgo/BlockFix_SphereSpaceModifier.ixx +++ b/src/GEOMAlgo/BlockFix_SphereSpaceModifier.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/BlockFix_SphereSpaceModifier.jxx b/src/GEOMAlgo/BlockFix_SphereSpaceModifier.jxx index 61deba225..1b3792c56 100644 --- a/src/GEOMAlgo/BlockFix_SphereSpaceModifier.jxx +++ b/src/GEOMAlgo/BlockFix_SphereSpaceModifier.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _TopoDS_Face_HeaderFile #include diff --git a/src/GEOMAlgo/BlockFix_UnionEdges.cdl b/src/GEOMAlgo/BlockFix_UnionEdges.cdl index ff806baf6..c943a6cfc 100644 --- a/src/GEOMAlgo/BlockFix_UnionEdges.cdl +++ b/src/GEOMAlgo/BlockFix_UnionEdges.cdl @@ -1,26 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: BlockFix_UnionEdges.cdl --- Created: Tue Dec 7 15:24:51 2004 --- Author: Sergey KUUL --- +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: BlockFix_UnionEdges.cdl +-- Created: Tue Dec 7 15:24:51 2004 +-- Author: Sergey KUUL class UnionEdges from BlockFix diff --git a/src/GEOMAlgo/BlockFix_UnionEdges.cxx b/src/GEOMAlgo/BlockFix_UnionEdges.cxx index 667375123..4ac917101 100644 --- a/src/GEOMAlgo/BlockFix_UnionEdges.cxx +++ b/src/GEOMAlgo/BlockFix_UnionEdges.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: BlockFix_UnionEdges.cxx // Created: 07.12.04 15:27:30 // Author: Sergey KUUL - - +// #include #include @@ -56,6 +57,7 @@ #include #include +#include "utilities.h" //======================================================================= //function : BlockFix_UnionEdges() @@ -109,7 +111,7 @@ static Standard_Boolean MergeEdges(const TopTools_SequenceOfShape& SeqEdges, } } if(aChain.Length()1) { // second step: union edges with various curves - cout<<"can not make analitical union => make approximation"<IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) { + Handle(Geom_TrimmedCurve) tc = + Handle(Geom_TrimmedCurve)::DownCast(c3d); + c3d = tc->BasisCurve(); + } + if( ( c3d->IsKind(STANDARD_TYPE(Geom_BSplineCurve)) || + c3d->IsKind(STANDARD_TYPE(Geom_BezierCurve)) ) ) continue; + NeedUnion = false; + break; + } + if(NeedUnion) { + MESSAGE ("can not make analitical union => make approximation"); + TopoDS_Wire W; + B.MakeWire(W); + for(j=1; j<=aChain.Length(); j++) { + TopoDS_Edge edge = TopoDS::Edge(aChain.Value(j)); + B.Add(W,edge); + } + Handle(BRepAdaptor_HCompCurve) Adapt = new BRepAdaptor_HCompCurve(W); + Approx_Curve3d Conv(Adapt,Tol,GeomAbs_C1,9,1000); + Handle(Geom_BSplineCurve) bc = Conv.Curve(); + TopoDS_Edge E; + B.MakeEdge (E,bc,Precision::Confusion()); + B.Add (E,VF); + B.Add (E,VL); + aChain.SetValue(1,E); + } + else { + MESSAGE ("can not make approximation for such types of curves"); + return Standard_False; } - Handle(BRepAdaptor_HCompCurve) Adapt = new BRepAdaptor_HCompCurve(W); - Approx_Curve3d Conv(Adapt,Tol,GeomAbs_C1,9,1000); - Handle(Geom_BSplineCurve) bc = Conv.Curve(); - TopoDS_Edge E; - B.MakeEdge (E,bc,Precision::Confusion()); - B.Add (E,VF); - B.Add (E,VL); - aChain.SetValue(1,E); } anEdge = TopoDS::Edge(aChain.Value(1)); diff --git a/src/GEOMAlgo/BlockFix_UnionEdges.hxx b/src/GEOMAlgo/BlockFix_UnionEdges.hxx index 0f5baf48e..0c0bb19dd 100644 --- a/src/GEOMAlgo/BlockFix_UnionEdges.hxx +++ b/src/GEOMAlgo/BlockFix_UnionEdges.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _BlockFix_UnionEdges_HeaderFile #define _BlockFix_UnionEdges_HeaderFile diff --git a/src/GEOMAlgo/BlockFix_UnionEdges.ixx b/src/GEOMAlgo/BlockFix_UnionEdges.ixx index ffbdfbc39..03646c839 100644 --- a/src/GEOMAlgo/BlockFix_UnionEdges.ixx +++ b/src/GEOMAlgo/BlockFix_UnionEdges.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/BlockFix_UnionEdges.jxx b/src/GEOMAlgo/BlockFix_UnionEdges.jxx index bb3b12f68..4b4c3b635 100644 --- a/src/GEOMAlgo/BlockFix_UnionEdges.jxx +++ b/src/GEOMAlgo/BlockFix_UnionEdges.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _ShapeBuild_ReShape_HeaderFile #include diff --git a/src/GEOMAlgo/BlockFix_UnionFaces.cdl b/src/GEOMAlgo/BlockFix_UnionFaces.cdl index 2251c6b45..14b0b02ae 100644 --- a/src/GEOMAlgo/BlockFix_UnionFaces.cdl +++ b/src/GEOMAlgo/BlockFix_UnionFaces.cdl @@ -1,27 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: BlockFix_UnionFaces.cdl --- Created: Tue Dec 7 17:15:42 2004 --- Author: Pavel Durandin --- ----Copyright: Open CASCADE SA 2004 +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: BlockFix_UnionFaces.cdl +-- Created: Tue Dec 7 17:15:42 2004 +-- Author: Pavel Durandin class UnionFaces from BlockFix diff --git a/src/GEOMAlgo/BlockFix_UnionFaces.cxx b/src/GEOMAlgo/BlockFix_UnionFaces.cxx index ee4398aeb..e513cbe59 100644 --- a/src/GEOMAlgo/BlockFix_UnionFaces.cxx +++ b/src/GEOMAlgo/BlockFix_UnionFaces.cxx @@ -1,76 +1,84 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: BlockFix_UnionFaces.cxx // Created: Tue Dec 7 17:15:42 2004 // Author: Pavel DURANDIN -// Open CASCADE SA 2004 +// #include -#include -#include -#include + +#include +#include + +#include #include + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + #include #include #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include #include #include +#include + +#include +#include #include #include +#include +#include +#include +#include + +#include +#include //======================================================================= //function : BlockFix_UnionFaces @@ -291,7 +299,7 @@ TopoDS_Shape BlockFix_UnionFaces::Perform(const TopoDS_Shape& Shape) } } while (isNewFound); - // sorting eny type of edges + // sorting any type of edges aWire = TopoDS::Wire(aContext->Apply(aWire)); TopoDS_Face tmpF = TopoDS::Face(aContext->Apply(faces(1).Oriented(TopAbs_FORWARD))); @@ -488,7 +496,91 @@ Standard_Boolean BlockFix_UnionFaces::IsSameDomain(const TopoDS_Face& aFace, S1 = BRep_Tool::Surface(aFace,L1); S2 = BRep_Tool::Surface(aCheckedFace,L2); - return (S1 == S2 && L1 == L2); + if (S1 == S2 && L1 == L2) + return true; + + // begin: planar case (improvement 20052) + S1 = BRep_Tool::Surface(aFace); + S2 = BRep_Tool::Surface(aCheckedFace); + + Handle(Geom_Plane) aGP1, aGP2; + Handle(Geom_RectangularTrimmedSurface) aGRTS1, aGRTS2; + Handle(Geom_OffsetSurface) aGOFS1, aGOFS2; + + aGRTS1 = Handle(Geom_RectangularTrimmedSurface)::DownCast(S1); + aGRTS2 = Handle(Geom_RectangularTrimmedSurface)::DownCast(S2); + + aGOFS1 = Handle(Geom_OffsetSurface)::DownCast(S1); + aGOFS2 = Handle(Geom_OffsetSurface)::DownCast(S2); + + if (!aGOFS1.IsNull()) { + aGP1 = Handle(Geom_Plane)::DownCast(aGOFS1->BasisSurface()); + } + else if (!aGRTS1.IsNull()) { + aGP1 = Handle(Geom_Plane)::DownCast(aGRTS1->BasisSurface()); + } + else { + aGP1 = Handle(Geom_Plane)::DownCast(S1); + } + + if (!aGOFS2.IsNull()) { + aGP2 = Handle(Geom_Plane)::DownCast(aGOFS2->BasisSurface()); + } + else if (!aGRTS2.IsNull()) { + aGP2 = Handle(Geom_Plane)::DownCast(aGRTS2->BasisSurface()); + } + else { + aGP2 = Handle(Geom_Plane)::DownCast(S2); + } + + if (!aGP1.IsNull() && !aGP2.IsNull()) { + // both surfaces are planar, check equality + Standard_Real A1, B1, C1, D1; + Standard_Real A2, B2, C2, D2; + aGP1->Coefficients(A1, B1, C1, D1); + aGP2->Coefficients(A2, B2, C2, D2); + + if (fabs(A1) > Precision::Confusion()) { + A1 = 1.0; + B1 /= A1; + C1 /= A1; + D1 /= A1; + } + else if (fabs(B1) > Precision::Confusion()) { + B1 = 1.0; + C1 /= B1; + D1 /= B1; + } + else { + C1 = 1.0; + D1 /= C1; + } + + if (fabs(A2) > Precision::Confusion()) { + A2 = 1.0; + B2 /= A2; + C2 /= A2; + D2 /= A2; + } + else if (fabs(B2) > Precision::Confusion()) { + B2 = 1.0; + C2 /= B2; + D2 /= B2; + } + else { + C2 = 1.0; + D2 /= C2; + } + + if (fabs(A1 - A2) < Precision::Confusion() && + fabs(B1 - B2) < Precision::Confusion() && + fabs(C1 - C2) < Precision::Confusion() && + fabs(D1 - D2) < Precision::Confusion()) + return true; + } + // end: planar case (improvement 20052) + + return false; } @@ -528,4 +620,3 @@ void BlockFix_UnionFaces::MovePCurves(TopoDS_Face& aTarget, B.Add(aTarget,ResWire); } } - diff --git a/src/GEOMAlgo/BlockFix_UnionFaces.hxx b/src/GEOMAlgo/BlockFix_UnionFaces.hxx index 2618008b0..9cf0578d8 100644 --- a/src/GEOMAlgo/BlockFix_UnionFaces.hxx +++ b/src/GEOMAlgo/BlockFix_UnionFaces.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _BlockFix_UnionFaces_HeaderFile #define _BlockFix_UnionFaces_HeaderFile diff --git a/src/GEOMAlgo/BlockFix_UnionFaces.ixx b/src/GEOMAlgo/BlockFix_UnionFaces.ixx index eda22330b..155eca0f5 100644 --- a/src/GEOMAlgo/BlockFix_UnionFaces.ixx +++ b/src/GEOMAlgo/BlockFix_UnionFaces.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/BlockFix_UnionFaces.jxx b/src/GEOMAlgo/BlockFix_UnionFaces.jxx index 1a919c24a..7a735aac6 100644 --- a/src/GEOMAlgo/BlockFix_UnionFaces.jxx +++ b/src/GEOMAlgo/BlockFix_UnionFaces.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _TopoDS_Shape_HeaderFile #include diff --git a/src/GEOMAlgo/GEOMAlgo.cdl b/src/GEOMAlgo/GEOMAlgo.cdl index 1e1e88f79..aa7e93982 100755 --- a/src/GEOMAlgo/GEOMAlgo.cdl +++ b/src/GEOMAlgo/GEOMAlgo.cdl @@ -1,27 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: GEOMAlgo.cdl -- Created: Sat Dec 04 12:36:22 2004 -- Author: Peter KURNEV -- - +-- package GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo.pro b/src/GEOMAlgo/GEOMAlgo.pro new file mode 100644 index 000000000..8d8f69616 --- /dev/null +++ b/src/GEOMAlgo/GEOMAlgo.pro @@ -0,0 +1,249 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GEOMAlgo +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} ../NMTDS ../NMTTools + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lNMTTools $${STDLIB} $${CAS_LDPATH} -lTKBO -lTKShHealing -lTKBool -lTKMesh + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +HEADERS = BlockFix_BlockFixAPI.hxx +HEADERS += BlockFix_BlockFixAPI.lxx +HEADERS += BlockFix_CheckTool.hxx +HEADERS += Handle_BlockFix_BlockFixAPI.hxx +HEADERS += GEOMAlgo_Algo.hxx +HEADERS += GEOMAlgo_BuilderArea.hxx +HEADERS += GEOMAlgo_BuilderFace.hxx +HEADERS += GEOMAlgo_Builder.hxx +HEADERS += GEOMAlgo_BuilderShape.hxx +HEADERS += GEOMAlgo_BuilderSolid.hxx +HEADERS += GEOMAlgo_BuilderTools.hxx +HEADERS += GEOMAlgo_ClsfBox.hxx +HEADERS += GEOMAlgo_Clsf.hxx +HEADERS += GEOMAlgo_ClsfSurf.hxx +HEADERS += GEOMAlgo_CoupleOfShapes.hxx +HEADERS += GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger.hxx +HEADERS += GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape.hxx +HEADERS += GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal.hxx +HEADERS += GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet.hxx +HEADERS += GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx +HEADERS += GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx +HEADERS += GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx +HEADERS += GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx +HEADERS += GEOMAlgo_DataMapOfPassKeyInteger.hxx +HEADERS += GEOMAlgo_DataMapOfRealListOfShape.hxx +HEADERS += GEOMAlgo_DataMapOfShapeReal.hxx +HEADERS += GEOMAlgo_DataMapOfShapeShapeSet.hxx +HEADERS += GEOMAlgo_FinderShapeOn1.hxx +HEADERS += GEOMAlgo_FinderShapeOn2.hxx +HEADERS += GEOMAlgo_FinderShapeOn.hxx +HEADERS += GEOMAlgo_FinderShapeOnQuad.hxx +HEADERS += GEOMAlgo_GlueAnalyser.hxx +HEADERS += GEOMAlgo_Gluer.hxx +HEADERS += GEOMAlgo_HAlgo.hxx +HEADERS += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx +HEADERS += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx +HEADERS += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx +HEADERS += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx +HEADERS += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx +HEADERS += GEOMAlgo_IndexedDataMapOfIntegerShape.hxx +HEADERS += GEOMAlgo_IndexedDataMapOfPassKeyListOfShape.hxx +HEADERS += GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx +HEADERS += GEOMAlgo_IndexedDataMapOfShapeBox.hxx +HEADERS += GEOMAlgo_IndexedDataMapOfShapeState.hxx +HEADERS += GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx +HEADERS += GEOMAlgo_ListIteratorOfListOfPnt.hxx +HEADERS += GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx +HEADERS += GEOMAlgo_ListNodeOfListOfPnt.hxx +HEADERS += GEOMAlgo_ListOfCoupleOfShapes.hxx +HEADERS += GEOMAlgo_ListOfPnt.hxx +HEADERS += GEOMAlgo_PassKey.hxx +HEADERS += GEOMAlgo_PassKeyMapHasher.hxx +HEADERS += GEOMAlgo_PassKeyShape.hxx +HEADERS += GEOMAlgo_PassKeyShapeMapHasher.hxx +HEADERS += GEOMAlgo_PWireEdgeSet.hxx +HEADERS += GEOMAlgo_ShapeAlgo.hxx +HEADERS += GEOMAlgo_ShapeSet.hxx +HEADERS += GEOMAlgo_ShapeSolid.hxx +HEADERS += GEOMAlgo_ShellSolid.hxx +HEADERS += GEOMAlgo_SolidSolid.hxx +HEADERS += GEOMAlgo_Splitter.hxx +HEADERS += GEOMAlgo_StateCollector.hxx +HEADERS += GEOMAlgo_State.hxx +HEADERS += GEOMAlgo_SurfaceTools.hxx +HEADERS += GEOMAlgo_Tools3D.hxx +HEADERS += GEOMAlgo_Tools.hxx +HEADERS += GEOMAlgo_VertexSolid.hxx +HEADERS += GEOMAlgo_WESCorrector.hxx +HEADERS += GEOMAlgo_WireEdgeSet.hxx +HEADERS += GEOMAlgo_WireSolid.hxx +HEADERS += GEOMAlgo_WireSplitter.hxx +HEADERS += Handle_GEOMAlgo_ClsfBox.hxx +HEADERS += Handle_GEOMAlgo_Clsf.hxx +HEADERS += Handle_GEOMAlgo_ClsfSurf.hxx +HEADERS += Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx +HEADERS += Handle_GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx +HEADERS += Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx +HEADERS += Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx +HEADERS += Handle_GEOMAlgo_HAlgo.hxx +HEADERS += Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx +HEADERS += Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx +HEADERS += Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx +HEADERS += Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx +HEADERS += Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx +HEADERS += Handle_GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx +HEADERS += Handle_GEOMAlgo_ListNodeOfListOfPnt.hxx +HEADERS += GEOMAlgo_ClsfSolid.hxx +HEADERS += GEOMAlgo_ClsfSolid.ixx +HEADERS += GEOMAlgo_ClsfSolid.jxx +HEADERS += GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx +HEADERS += GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx +HEADERS += GEOMAlgo_DataMapOfPassKeyShapeShape.hxx +HEADERS += GEOMAlgo_Gluer1.cxx +HEADERS += GEOMAlgo_Gluer1.hxx +HEADERS += GEOMAlgo_Gluer1.ixx +HEADERS += GEOMAlgo_Gluer1.jxx +HEADERS += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx +HEADERS += GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx +HEADERS += GEOMAlgo_KindOfBounds.hxx +HEADERS += GEOMAlgo_KindOfClosed.hxx +HEADERS += GEOMAlgo_KindOfName.hxx +HEADERS += GEOMAlgo_KindOfShape.hxx +HEADERS += GEOMAlgo_ShapeInfo.hxx +HEADERS += GEOMAlgo_ShapeInfo.ixx +HEADERS += GEOMAlgo_ShapeInfo.jxx +HEADERS += GEOMAlgo_ShapeInfoFiller.hxx +HEADERS += GEOMAlgo_ShapeInfoFiller.ixx +HEADERS += GEOMAlgo_ShapeInfoFiller.jxx +HEADERS += Handle_GEOMAlgo_ClsfSolid.hxx +HEADERS += Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx +HEADERS += Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx + +SOURCES = BlockFix.cxx +SOURCES += BlockFix_BlockFixAPI.cxx +SOURCES += BlockFix_CheckTool.cxx +SOURCES += BlockFix_PeriodicSurfaceModifier.cxx +SOURCES += BlockFix_SphereSpaceModifier.cxx +SOURCES += BlockFix_UnionEdges.cxx +SOURCES += BlockFix_UnionFaces.cxx +SOURCES += GEOMAlgo_Algo.cxx +SOURCES += GEOMAlgo_Builder_0.cxx +SOURCES += GEOMAlgo_Builder_1.cxx +SOURCES += GEOMAlgo_Builder_2.cxx +SOURCES += GEOMAlgo_Builder_3.cxx +SOURCES += GEOMAlgo_Builder_4.cxx +SOURCES += GEOMAlgo_BuilderArea.cxx +SOURCES += GEOMAlgo_Builder.cxx +SOURCES += GEOMAlgo_BuilderFace.cxx +SOURCES += GEOMAlgo_BuilderShape.cxx +SOURCES += GEOMAlgo_BuilderSolid.cxx +SOURCES += GEOMAlgo_BuilderTools.cxx +SOURCES += GEOMAlgo_ClsfBox.cxx +SOURCES += GEOMAlgo_Clsf.cxx +SOURCES += GEOMAlgo_ClsfSurf.cxx +SOURCES += GEOMAlgo_CoupleOfShapes.cxx +SOURCES += GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger_0.cxx +SOURCES += GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape_0.cxx +SOURCES += GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal_0.cxx +SOURCES += GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet_0.cxx +SOURCES += GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_0.cxx +SOURCES += GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_0.cxx +SOURCES += GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_0.cxx +SOURCES += GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_0.cxx +SOURCES += GEOMAlgo_DataMapOfPassKeyInteger_0.cxx +SOURCES += GEOMAlgo_DataMapOfRealListOfShape_0.cxx +SOURCES += GEOMAlgo_DataMapOfShapeReal_0.cxx +SOURCES += GEOMAlgo_DataMapOfShapeShapeSet_0.cxx +SOURCES += GEOMAlgo_FinderShapeOn1.cxx +SOURCES += GEOMAlgo_FinderShapeOn2.cxx +SOURCES += GEOMAlgo_FinderShapeOn.cxx +SOURCES += GEOMAlgo_FinderShapeOnQuad.cxx +SOURCES += GEOMAlgo_GlueAnalyser.cxx +SOURCES += GEOMAlgo_Gluer.cxx +SOURCES += GEOMAlgo_HAlgo.cxx +SOURCES += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx +SOURCES += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_0.cxx +SOURCES += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_0.cxx +SOURCES += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx +SOURCES += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_0.cxx +SOURCES += GEOMAlgo_IndexedDataMapOfIntegerShape_0.cxx +SOURCES += GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_0.cxx +SOURCES += GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_0.cxx +SOURCES += GEOMAlgo_IndexedDataMapOfShapeBox_0.cxx +SOURCES += GEOMAlgo_IndexedDataMapOfShapeState_0.cxx +SOURCES += GEOMAlgo_ListIteratorOfListOfCoupleOfShapes_0.cxx +SOURCES += GEOMAlgo_ListIteratorOfListOfPnt_0.cxx +SOURCES += GEOMAlgo_ListNodeOfListOfCoupleOfShapes_0.cxx +SOURCES += GEOMAlgo_ListNodeOfListOfPnt_0.cxx +SOURCES += GEOMAlgo_ListOfCoupleOfShapes_0.cxx +SOURCES += GEOMAlgo_ListOfPnt_0.cxx +SOURCES += GEOMAlgo_PassKey.cxx +SOURCES += GEOMAlgo_PassKeyMapHasher.cxx +SOURCES += GEOMAlgo_PassKeyShape.cxx +SOURCES += GEOMAlgo_PassKeyShapeMapHasher.cxx +SOURCES += GEOMAlgo_ShapeAlgo.cxx +SOURCES += GEOMAlgo_ShapeSet.cxx +SOURCES += GEOMAlgo_ShapeSolid.cxx +SOURCES += GEOMAlgo_ShellSolid.cxx +SOURCES += GEOMAlgo_SolidSolid.cxx +SOURCES += GEOMAlgo_Splitter.cxx +SOURCES += GEOMAlgo_StateCollector.cxx +SOURCES += GEOMAlgo_SurfaceTools.cxx +SOURCES += GEOMAlgo_Tools3D.cxx +SOURCES += GEOMAlgo_Tools.cxx +SOURCES += GEOMAlgo_VertexSolid.cxx +SOURCES += GEOMAlgo_WESCorrector.cxx +SOURCES += GEOMAlgo_WireEdgeSet.cxx +SOURCES += GEOMAlgo_WireSolid.cxx +SOURCES += GEOMAlgo_WireSplitter.cxx +SOURCES += GEOMAlgo_ClsfSolid.cxx +SOURCES += GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_0.cxx +SOURCES += GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_0.cxx +SOURCES += GEOMAlgo_DataMapOfPassKeyShapeShape_0.cxx +SOURCES += GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_0.cxx +SOURCES += GEOMAlgo_ShapeInfoFiller_1.cxx +SOURCES += GEOMAlgo_IndexedDataMapOfShapeShapeInfo_0.cxx +SOURCES += GEOMAlgo_ShapeInfo.cxx +SOURCES += GEOMAlgo_ShapeInfoFiller.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/GEOMAlgo/GEOMAlgo_Algo.cdl b/src/GEOMAlgo/GEOMAlgo_Algo.cdl index 1b56ef469..32f3a1b33 100755 --- a/src/GEOMAlgo/GEOMAlgo_Algo.cdl +++ b/src/GEOMAlgo/GEOMAlgo_Algo.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: GEOMAlgo_Algo.cdl -- Created: Sat Dec 04 12:37:56 2004 -- Author: Peter KURNEV -- - - +-- deferred class Algo from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_Algo.cxx b/src/GEOMAlgo/GEOMAlgo_Algo.cxx index 221cf1de7..a3426fffe 100755 --- a/src/GEOMAlgo/GEOMAlgo_Algo.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Algo.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Algo.cxx // Created: Sat Dec 04 12:39:47 2004 // Author: Peter KURNEV // - - +// #include //======================================================================= diff --git a/src/GEOMAlgo/GEOMAlgo_Algo.hxx b/src/GEOMAlgo/GEOMAlgo_Algo.hxx index 028e7fbce..a0df056ba 100644 --- a/src/GEOMAlgo/GEOMAlgo_Algo.hxx +++ b/src/GEOMAlgo/GEOMAlgo_Algo.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_Algo_HeaderFile #define _GEOMAlgo_Algo_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_Algo.ixx b/src/GEOMAlgo/GEOMAlgo_Algo.ixx index 5b8348358..c45fc54ca 100644 --- a/src/GEOMAlgo/GEOMAlgo_Algo.ixx +++ b/src/GEOMAlgo/GEOMAlgo_Algo.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_Algo.jxx b/src/GEOMAlgo/GEOMAlgo_Algo.jxx index 65f9ef05a..5dcdb780c 100644 --- a/src/GEOMAlgo/GEOMAlgo_Algo.jxx +++ b/src/GEOMAlgo/GEOMAlgo_Algo.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_Algo_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_Builder.cdl b/src/GEOMAlgo/GEOMAlgo_Builder.cdl index a6f4ca406..8bdcd4935 100755 --- a/src/GEOMAlgo/GEOMAlgo_Builder.cdl +++ b/src/GEOMAlgo/GEOMAlgo_Builder.cdl @@ -1,27 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_Builder.cdl -- Created: -- Author: Peter KURNEV - - +-- class Builder from GEOMAlgo inherits BuilderShape from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_Builder.cxx b/src/GEOMAlgo/GEOMAlgo_Builder.cxx index ebb875893..8631ecd42 100755 --- a/src/GEOMAlgo/GEOMAlgo_Builder.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Builder.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Builder.cxx // Created: // Author: Peter KURNEV - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_Builder.hxx b/src/GEOMAlgo/GEOMAlgo_Builder.hxx index 930b3edf0..c5aa8f23d 100644 --- a/src/GEOMAlgo/GEOMAlgo_Builder.hxx +++ b/src/GEOMAlgo/GEOMAlgo_Builder.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_Builder_HeaderFile #define _GEOMAlgo_Builder_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_Builder.ixx b/src/GEOMAlgo/GEOMAlgo_Builder.ixx index 510e49dd6..7926e82e8 100644 --- a/src/GEOMAlgo/GEOMAlgo_Builder.ixx +++ b/src/GEOMAlgo/GEOMAlgo_Builder.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_Builder.jxx b/src/GEOMAlgo/GEOMAlgo_Builder.jxx index 4cc8d4a52..2b50611b6 100644 --- a/src/GEOMAlgo/GEOMAlgo_Builder.jxx +++ b/src/GEOMAlgo/GEOMAlgo_Builder.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_PaveFiller_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderArea.cdl b/src/GEOMAlgo/GEOMAlgo_BuilderArea.cdl index 48ef49f20..beed084dd 100755 --- a/src/GEOMAlgo/GEOMAlgo_BuilderArea.cdl +++ b/src/GEOMAlgo/GEOMAlgo_BuilderArea.cdl @@ -1,26 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: ModGlue_BuilderArea.cdl -- Created: -- Author: Peter KURNEV - +-- deferred class BuilderArea from GEOMAlgo inherits Algo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderArea.cxx b/src/GEOMAlgo/GEOMAlgo_BuilderArea.cxx index 98a63c169..dbc4f51fb 100755 --- a/src/GEOMAlgo/GEOMAlgo_BuilderArea.cxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderArea.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_BuilderArea.cxx // Created: // Author: Peter KURNEV - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderArea.hxx b/src/GEOMAlgo/GEOMAlgo_BuilderArea.hxx index 0a3af4928..91df68865 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderArea.hxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderArea.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_BuilderArea_HeaderFile #define _GEOMAlgo_BuilderArea_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderArea.ixx b/src/GEOMAlgo/GEOMAlgo_BuilderArea.ixx index 0ec206278..3b0db2c03 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderArea.ixx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderArea.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderArea.jxx b/src/GEOMAlgo/GEOMAlgo_BuilderArea.jxx index df13a88bf..a33ada31e 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderArea.jxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderArea.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _IntTools_Context_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderFace.cdl b/src/GEOMAlgo/GEOMAlgo_BuilderFace.cdl index 542a828f3..3c994ff20 100755 --- a/src/GEOMAlgo/GEOMAlgo_BuilderFace.cdl +++ b/src/GEOMAlgo/GEOMAlgo_BuilderFace.cdl @@ -1,28 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_BuilderFace.cdl -- Created: -- Author: Peter KURNEV - - - +-- class BuilderFace from GEOMAlgo inherits BuilderArea from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderFace.cxx b/src/GEOMAlgo/GEOMAlgo_BuilderFace.cxx index 724e9c77f..c6b7d4bf5 100755 --- a/src/GEOMAlgo/GEOMAlgo_BuilderFace.cxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderFace.cxx @@ -1,26 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_BuilderFace.cxx // Created: // Author: Peter KURNEV - +// #include #include @@ -251,6 +253,7 @@ static TopTools_MapIteratorOfMapOfOrientedShape aItM; TopTools_IndexedDataMapOfShapeListOfShape aVEMap; TopTools_MapOfOrientedShape aMAdded; + TopoDS_Iterator aItW; BRep_Builder aBB; GEOMAlgo_WireEdgeSet aWES; GEOMAlgo_WESCorrector aWESCor; @@ -278,6 +281,37 @@ static const TopoDS_Shape& aW=aIt.Value(); myLoops.Append(aW); } + //modified by NIZNHY-PKV Tue Aug 5 15:09:29 2008f + // Post Treatment + TopTools_MapOfOrientedShape aMEP; + // + // a. collect all edges that are in loops + aIt.Initialize (myLoops); + for (; aIt.More(); aIt.Next()) { + const TopoDS_Shape& aW=aIt.Value(); + aItW.Initialize(aW); + for (; aItW.More(); aItW.Next()) { + const TopoDS_Shape& aE=aItW.Value(); + aMEP.Add(aE); + } + } + // + // b. collect all edges that are to avoid + aItM.Initialize(myShapesToAvoid); + for (; aItM.More(); aItM.Next()) { + const TopoDS_Shape& aE=aItM.Key(); + aMEP.Add(aE); + } + // + // c. add all edges that are not processed to myShapesToAvoid + aIt.Initialize (myShapes); + for (; aIt.More(); aIt.Next()) { + const TopoDS_Shape& aE=aIt.Value(); + if (!aMEP.Contains(aE)) { + myShapesToAvoid.Add(aE); + } + } + //modified by NIZNHY-PKV Tue Aug 5 15:09:35 2008t // // 2. Internal Wires myLoopsInternal.Clear(); @@ -302,7 +336,7 @@ static aBB.MakeWire(aW); aBB.Add(aW, aEE); // - TopoDS_Iterator aItW (aW); + aItW.Initialize(aW); for (; aItW.More()&&bFlag; aItW.Next()) { const TopoDS_Edge& aE=TopoDS::Edge(aItW.Value()); // diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderFace.hxx b/src/GEOMAlgo/GEOMAlgo_BuilderFace.hxx index 758cc7072..08cefeb9d 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderFace.hxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderFace.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_BuilderFace_HeaderFile #define _GEOMAlgo_BuilderFace_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderFace.ixx b/src/GEOMAlgo/GEOMAlgo_BuilderFace.ixx index 66adde68b..c3630db7b 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderFace.ixx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderFace.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderFace.jxx b/src/GEOMAlgo/GEOMAlgo_BuilderFace.jxx index 8e533eed8..97dee3032 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderFace.jxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderFace.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Face_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderShape.cdl b/src/GEOMAlgo/GEOMAlgo_BuilderShape.cdl index b699831c7..f1c1c22f1 100755 --- a/src/GEOMAlgo/GEOMAlgo_BuilderShape.cdl +++ b/src/GEOMAlgo/GEOMAlgo_BuilderShape.cdl @@ -1,28 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_BuilderShape.cdl -- Created: -- Author: Peter KURNEV - - - +-- deferred class BuilderShape from GEOMAlgo inherits Algo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderShape.cxx b/src/GEOMAlgo/GEOMAlgo_BuilderShape.cxx index 9f7cdd501..5d09fde72 100755 --- a/src/GEOMAlgo/GEOMAlgo_BuilderShape.cxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderShape.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_BuilderShape.cxx // Created: // Author: Peter KURNEV - - +// #include //======================================================================= //function : diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderShape.hxx b/src/GEOMAlgo/GEOMAlgo_BuilderShape.hxx index 8639f22a8..bf760dd97 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderShape.hxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Value) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #ifndef _GEOMAlgo_BuilderShape_HeaderFile #define _GEOMAlgo_BuilderShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderShape.ixx b/src/GEOMAlgo/GEOMAlgo_BuilderShape.ixx index b8d037aa1..754725182 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderShape.ixx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderShape.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderShape.jxx b/src/GEOMAlgo/GEOMAlgo_BuilderShape.jxx index 516c355b2..4470c4034 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderShape.jxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderShape.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderSolid.cdl b/src/GEOMAlgo/GEOMAlgo_BuilderSolid.cdl index 7cbebaf80..8773aee80 100755 --- a/src/GEOMAlgo/GEOMAlgo_BuilderSolid.cdl +++ b/src/GEOMAlgo/GEOMAlgo_BuilderSolid.cdl @@ -1,26 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_BuilderSolid.cdl -- Created: -- Author: Peter KURNEV - +-- class BuilderSolid from GEOMAlgo inherits BuilderArea from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderSolid.cxx b/src/GEOMAlgo/GEOMAlgo_BuilderSolid.cxx index 1701f3e38..6ea231c3e 100755 --- a/src/GEOMAlgo/GEOMAlgo_BuilderSolid.cxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderSolid.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_BuilderSolid.cxx // Created: // Author: Peter KURNEV - - +// #include #include @@ -93,7 +94,10 @@ static void MakeInternalShells(const TopTools_MapOfShape& , TopTools_ListOfShape& ); - +//modified by NIZNHY-PKV Tue Aug 5 15:06:50 2008f +static + Standard_Boolean IsClosedShell(const TopoDS_Shell& theShell); +//modified by NIZNHY-PKV Tue Aug 5 15:06:57 2008t //======================================================================= //function : @@ -228,6 +232,17 @@ static myShapesToAvoid.Add(aF2); } } + //DEB + else { + TopTools_ListIteratorOfListOfShape aItLF; + // + aItLF.Initialize (aLF); + for (; aItLF.More(); aItLF.Next()) { + const TopoDS_Shape& aFx=aItLF.Value(); + int a=0; + } + } + //DEB }// for (i=1; i<=aNbE; ++i) { // if (!bFound) { @@ -246,14 +261,16 @@ static // myLoops.Clear(); // - Standard_Integer aNbLF, aNbOff, aNbFP; + Standard_Integer aNbLF, aNbOff, aNbFP, aNbFA; TopAbs_Orientation anOr; TopoDS_Edge aEL; BRep_Builder aBB; NMTTools_CoupleOfShape aCSOff; - TopTools_MapOfOrientedShape AddedFacesMap; + TopTools_MapOfOrientedShape AddedFacesMap;//, aMFP; TopTools_IndexedDataMapOfShapeListOfShape aEFMap, aMEFP; - TopTools_ListIteratorOfListOfShape aItF; + TopTools_ListIteratorOfListOfShape aItF, aIt; + TopTools_MapIteratorOfMapOfOrientedShape aItM; + TopoDS_Iterator aItS; // //================================================= // @@ -366,17 +383,61 @@ static } } // for (; aEdgeExp.More(); aEdgeExp.Next()) { } //for (; aItAddedF.More(); aItAddedF.Next()) { - myLoops.Append(aShell); + //modified by NIZNHY-PKV Tue Aug 5 15:07:08 2008f + //myLoops.Append(aShell); + if (IsClosedShell(aShell)) { + myLoops.Append(aShell); + } + /* + else { + TopoDS_Iterator aItS; + aItS.Initialize(aShell); + for (; aItS.More(); aItS.Next()) { + const TopoDS_Shape& aFs=aItS.Value(); + aMFP.Add(aFs); + } + } + */ + //modified by NIZNHY-PKV Tue Aug 5 15:07:30 2008t } // for (; aItF.More(); aItF.Next()) { + //modified by NIZNHY-PKV Tue Aug 5 15:07:35 2008f + // + // Post Treatment + TopTools_MapOfOrientedShape aMP; + // + // a. collect all edges that are in loops + aIt.Initialize (myLoops); + for (; aIt.More(); aIt.Next()) { + const TopoDS_Shape& aS=aIt.Value(); + aItS.Initialize(aS); + for (; aItS.More(); aItS.Next()) { + const TopoDS_Shape& aF=aItS.Value(); + aMP.Add(aF); + } + } + // + // b. collect all edges that are to avoid + aItM.Initialize(myShapesToAvoid); + for (; aItM.More(); aItM.Next()) { + const TopoDS_Shape& aF=aItM.Key(); + aMP.Add(aF); + } + // + // c. add all edges that are not processed to myShapesToAvoid + aIt.Initialize (myShapes); + for (; aIt.More(); aIt.Next()) { + const TopoDS_Shape& aF=aIt.Value(); + if (!aMP.Contains(aF)) { + myShapesToAvoid.Add(aF); + } + } + //modified by NIZNHY-PKV Tue Aug 5 15:07:44 2008t //================================================= // // 2.Internal Shells // myLoopsInternal.Clear(); // - Standard_Integer aNbFA; - TopTools_MapIteratorOfMapOfOrientedShape aItM; - // aEFMap.Clear(); AddedFacesMap.Clear(); // @@ -730,7 +791,50 @@ Standard_Boolean IsGrowthShell(const TopoDS_Shape& theShell, } return bRet; } - +//modified by NIZNHY-PKV Tue Aug 5 15:07:50 2008f +//======================================================================= +//function : IsClosedShell +//purpose : +//======================================================================= +Standard_Boolean IsClosedShell(const TopoDS_Shell& theShell) +{ + Standard_Integer aNbE; + Standard_Boolean bRet; + TopoDS_Iterator aIt; + TopExp_Explorer aExp; + TopTools_MapOfShape aM; + // + bRet=Standard_False; + aIt.Initialize(theShell); + for(; aIt.More(); aIt.Next()) { + const TopoDS_Face& aF=TopoDS::Face(aIt.Value()); + aExp.Init(aF, TopAbs_EDGE); + for (; aExp.More(); aExp.Next()) { + const TopoDS_Edge& aE=TopoDS::Edge(aExp.Current()); + if (BRep_Tool::Degenerated(aE)) { + continue; + } + /* + if (BRep_Tool::IsClosed(aE, aF)) { + continue; + } + */ + if (aE.Orientation()==TopAbs_INTERNAL) { + continue; + } + if (!aM.Add(aE)) { + aM.Remove(aE); + } + } + } + // + aNbE=aM.Extent(); + if (!aNbE) { + bRet=!bRet; + } + return bRet; +} +//modified by NIZNHY-PKV Tue Aug 5 15:08:07 2008t //BRepTools::Write(aFF, "ff"); // // ErrorStatus : diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderSolid.hxx b/src/GEOMAlgo/GEOMAlgo_BuilderSolid.hxx index d317a5cdc..be21d28b2 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderSolid.hxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderSolid.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_BuilderSolid_HeaderFile #define _GEOMAlgo_BuilderSolid_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderSolid.ixx b/src/GEOMAlgo/GEOMAlgo_BuilderSolid.ixx index 1d54ca3ce..c4209997c 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderSolid.ixx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderSolid.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderSolid.jxx b/src/GEOMAlgo/GEOMAlgo_BuilderSolid.jxx index db2175f6c..7660e31d6 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderSolid.jxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderSolid.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_BuilderSolid_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderTools.cdl b/src/GEOMAlgo/GEOMAlgo_BuilderTools.cdl index 949e81d5a..5a3c3e162 100755 --- a/src/GEOMAlgo/GEOMAlgo_BuilderTools.cdl +++ b/src/GEOMAlgo/GEOMAlgo_BuilderTools.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_BuilderTools.cdl -- Created: -- Author: Peter KURNEV -- - - +-- class BuilderTools from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderTools.cxx b/src/GEOMAlgo/GEOMAlgo_BuilderTools.cxx index 0d537dff2..1ecab1312 100755 --- a/src/GEOMAlgo/GEOMAlgo_BuilderTools.cxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderTools.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_BuilderTools.cxx // Created: // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderTools.hxx b/src/GEOMAlgo/GEOMAlgo_BuilderTools.hxx index 43bd9486f..fcadbf4a8 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderTools.hxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderTools.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_BuilderTools_HeaderFile #define _GEOMAlgo_BuilderTools_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderTools.ixx b/src/GEOMAlgo/GEOMAlgo_BuilderTools.ixx index 352fdb068..daa0bae98 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderTools.ixx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderTools.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_BuilderTools.jxx b/src/GEOMAlgo/GEOMAlgo_BuilderTools.jxx index fc2050189..5b843c4a3 100644 --- a/src/GEOMAlgo/GEOMAlgo_BuilderTools.jxx +++ b/src/GEOMAlgo/GEOMAlgo_BuilderTools.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_Builder_0.cxx b/src/GEOMAlgo/GEOMAlgo_Builder_0.cxx index 728c8404d..57fb373fd 100644 --- a/src/GEOMAlgo/GEOMAlgo_Builder_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Builder_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_Builder_1.cxx b/src/GEOMAlgo/GEOMAlgo_Builder_1.cxx index 5ee7ddaf4..b84058616 100755 --- a/src/GEOMAlgo/GEOMAlgo_Builder_1.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Builder_1.cxx @@ -1,26 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Builder_1.cxx // Created: // Author: Peter KURNEV - +// #include // #include diff --git a/src/GEOMAlgo/GEOMAlgo_Builder_2.cxx b/src/GEOMAlgo/GEOMAlgo_Builder_2.cxx index 92e9e2cc8..45e7543b4 100755 --- a/src/GEOMAlgo/GEOMAlgo_Builder_2.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Builder_2.cxx @@ -1,26 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Builder_2.cxx // Created: // Author: Peter KURNEV - +// #include #include @@ -360,6 +362,26 @@ static aBF.SetFace(aFF); aBF.SetContext(aCtx); const TopTools_ListOfShape& aSE=aWES.StartElements(); + // + //DEB f + /* + { + TopoDS_Compound aCx; + BRep_Builder aBBx; + TopTools_ListIteratorOfListOfShape aItx; + // + aBBx.MakeCompound(aCx); + aBBx.Add(aCx, aFF); + aItx.Initialize(aSE); + for (; aItx.More(); aItx.Next()) { + TopoDS_Shape& aEx=aItx.Value(); + aBBx.Add(aCx, aEx); + } + int a=0; + } + */ + //DEB t + // aBF.SetShapes(aSE); // aBF.Perform(); diff --git a/src/GEOMAlgo/GEOMAlgo_Builder_3.cxx b/src/GEOMAlgo/GEOMAlgo_Builder_3.cxx index 649c60370..1a3b5b566 100755 --- a/src/GEOMAlgo/GEOMAlgo_Builder_3.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Builder_3.cxx @@ -1,26 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Builder_3.cxx // Created: // Author: Peter KURNEV - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_Builder_4.cxx b/src/GEOMAlgo/GEOMAlgo_Builder_4.cxx index 8465cebba..bc755e492 100755 --- a/src/GEOMAlgo/GEOMAlgo_Builder_4.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Builder_4.cxx @@ -1,26 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Builder_4.cxx // Created: // Author: Peter KURNEV - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_Clsf.cdl b/src/GEOMAlgo/GEOMAlgo_Clsf.cdl index d32329d18..75149cf28 100644 --- a/src/GEOMAlgo/GEOMAlgo_Clsf.cdl +++ b/src/GEOMAlgo/GEOMAlgo_Clsf.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: GEOMAlgo_Clsf.cdl -- Created: Wed Nov 22 10:19:29 2006 -- Author: Peter KURNEV -- - - +-- deferred class Clsf from GEOMAlgo inherits HAlgo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_Clsf.cxx b/src/GEOMAlgo/GEOMAlgo_Clsf.cxx index 91b1b2a07..01d273327 100644 --- a/src/GEOMAlgo/GEOMAlgo_Clsf.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Clsf.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Classifier.cxx // Created: Wed Nov 22 10:23:04 2006 // Author: Peter KURNEV // - - +// #include //======================================================================= diff --git a/src/GEOMAlgo/GEOMAlgo_Clsf.hxx b/src/GEOMAlgo/GEOMAlgo_Clsf.hxx index 3b2c43abb..70fbc60c9 100644 --- a/src/GEOMAlgo/GEOMAlgo_Clsf.hxx +++ b/src/GEOMAlgo/GEOMAlgo_Clsf.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_Clsf_HeaderFile #define _GEOMAlgo_Clsf_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_Clsf.ixx b/src/GEOMAlgo/GEOMAlgo_Clsf.ixx index bb7371ff2..ed35cae59 100644 --- a/src/GEOMAlgo/GEOMAlgo_Clsf.ixx +++ b/src/GEOMAlgo/GEOMAlgo_Clsf.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_Clsf.jxx b/src/GEOMAlgo/GEOMAlgo_Clsf.jxx index 775a63809..df2281b67 100644 --- a/src/GEOMAlgo/GEOMAlgo_Clsf.jxx +++ b/src/GEOMAlgo/GEOMAlgo_Clsf.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _gp_Pnt_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfBox.cdl b/src/GEOMAlgo/GEOMAlgo_ClsfBox.cdl index 21c385de7..deb9a6c86 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfBox.cdl +++ b/src/GEOMAlgo/GEOMAlgo_ClsfBox.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_ClsfBox.cdl -- Created: Wed Nov 22 10:19:29 2006 -- Author: Peter KURNEV -- - - +-- class ClsfBox from GEOMAlgo inherits Clsf from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfBox.cxx b/src/GEOMAlgo/GEOMAlgo_ClsfBox.cxx index 1abad5406..b74c54e3e 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfBox.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfBox.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_ClsfSurf.cxx // Created: Wed Nov 22 10:41:47 2006 // Author: Peter KURNEV // - - +// #include #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfBox.hxx b/src/GEOMAlgo/GEOMAlgo_ClsfBox.hxx index 2a0dc75d4..03fd2b123 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfBox.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfBox.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ClsfBox_HeaderFile #define _GEOMAlgo_ClsfBox_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfBox.ixx b/src/GEOMAlgo/GEOMAlgo_ClsfBox.ixx index 8406273be..5cc2da30c 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfBox.ixx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfBox.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfBox.jxx b/src/GEOMAlgo/GEOMAlgo_ClsfBox.jxx index dfcc22957..90fc5e97a 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfBox.jxx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfBox.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfSolid.cdl b/src/GEOMAlgo/GEOMAlgo_ClsfSolid.cdl index ed6093c58..0f4df1564 100755 --- a/src/GEOMAlgo/GEOMAlgo_ClsfSolid.cdl +++ b/src/GEOMAlgo/GEOMAlgo_ClsfSolid.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_ClsfSolid.cdl -- Created: Mon Jan 29 10:28:07 2007 -- Author: Peter KURNEV -- - - +-- class ClsfSolid from GEOMAlgo inherits Clsf from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfSolid.cxx b/src/GEOMAlgo/GEOMAlgo_ClsfSolid.cxx index 0e779c996..f05fbaf92 100755 --- a/src/GEOMAlgo/GEOMAlgo_ClsfSolid.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfSolid.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_ClsfSolid.cxx // Created: Mon Jan 29 10:35:46 2007 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfSolid.hxx b/src/GEOMAlgo/GEOMAlgo_ClsfSolid.hxx index 8feb5337e..5012fed2f 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfSolid.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfSolid.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ClsfSolid_HeaderFile #define _GEOMAlgo_ClsfSolid_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfSolid.ixx b/src/GEOMAlgo/GEOMAlgo_ClsfSolid.ixx index c3a9f9b2d..b777f32a4 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfSolid.ixx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfSolid.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfSolid.jxx b/src/GEOMAlgo/GEOMAlgo_ClsfSolid.jxx index 3d84d0210..0c1f5add0 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfSolid.jxx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfSolid.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfSurf.cdl b/src/GEOMAlgo/GEOMAlgo_ClsfSurf.cdl index 15c0b69d4..d2b191cd3 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfSurf.cdl +++ b/src/GEOMAlgo/GEOMAlgo_ClsfSurf.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_ClsfSurf.cdl -- Created: Wed Nov 22 10:19:29 2006 -- Author: Peter KURNEV -- - - +-- class ClsfSurf from GEOMAlgo inherits Clsf from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfSurf.cxx b/src/GEOMAlgo/GEOMAlgo_ClsfSurf.cxx index a7b05096f..2d32d4448 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfSurf.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfSurf.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_ClsfSurf.cxx // Created: Wed Nov 22 10:41:47 2006 // Author: Peter KURNEV // - - +// #include #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfSurf.hxx b/src/GEOMAlgo/GEOMAlgo_ClsfSurf.hxx index f35629562..54925be60 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfSurf.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfSurf.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ClsfSurf_HeaderFile #define _GEOMAlgo_ClsfSurf_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfSurf.ixx b/src/GEOMAlgo/GEOMAlgo_ClsfSurf.ixx index dadf131a0..2ffee719f 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfSurf.ixx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfSurf.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ClsfSurf.jxx b/src/GEOMAlgo/GEOMAlgo_ClsfSurf.jxx index 6d8048bd8..c0a70f3dc 100644 --- a/src/GEOMAlgo/GEOMAlgo_ClsfSurf.jxx +++ b/src/GEOMAlgo/GEOMAlgo_ClsfSurf.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Geom_Surface_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.cdl b/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.cdl index 9314a0888..54ff2d959 100644 --- a/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.cdl +++ b/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_CoupleOfShapes.cdl +-- Created: Wed Dec 15 13:00:10 2004 +-- Author: Peter KURNEV -- --- File: GEOMAlgo_CoupleOfShapes.cdl --- Created: Wed Dec 15 13:00:10 2004 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2004 - - class CoupleOfShapes from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.cxx b/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.cxx index cdc6bbbd7..1047c2ba5 100644 --- a/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.cxx +++ b/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_CoupleOfShapes.cxx // Created: Wed Dec 15 13:03:52 2004 // Author: Peter KURNEV // - - +// #include //======================================================================= //function : GEOMAlgo_CoupleOfShapes diff --git a/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.hxx b/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.hxx index 2505f8049..46a62f754 100644 --- a/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.hxx +++ b/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_CoupleOfShapes_HeaderFile #define _GEOMAlgo_CoupleOfShapes_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.ixx b/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.ixx index 7d793c838..4567f905f 100644 --- a/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.ixx +++ b/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.jxx b/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.jxx index 9caff71ab..cd50cfedb 100644 --- a/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.jxx +++ b/src/GEOMAlgo/GEOMAlgo_CoupleOfShapes.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger.hxx index cd9006ab1..854f60c7e 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger_HeaderFile #define _GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger_0.cxx index fea43de70..9cbe4e5a0 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx index 8c046bf60..19064241d 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_HeaderFile #define _GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_0.cxx index 36e1955f0..587e9edaa 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape.hxx index 0864e681c..d2aaa68a5 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape_HeaderFile #define _GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape_0.cxx index 6ad2f1860..eae315c2c 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal.hxx index bea5ce80f..15bb79e4d 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal_HeaderFile #define _GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal_0.cxx index 0e1748b67..60b2fd9d2 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet.hxx index 67260a8a1..77720cdb5 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet_HeaderFile #define _GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet_0.cxx index 56f780149..cdd9b3ebc 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx index eda806e2b..a16e26ba8 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_HeaderFile #define _GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_0.cxx index 6dd49b86c..c1457e733 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx index 856164622..e88ed19e0 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_HeaderFile #define _GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_0.cxx index 424e74701..f4e15a426 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx index 3d61106de..1ba3c8bc2 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_HeaderFile #define _GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_0.cxx index 39f3ac1dd..9bcbe1201 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx index d2ac36be9..5b418a034 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_HeaderFile #define _GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_0.cxx index f44a0c520..729f0996b 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx index fdcdfb4bc..b354f9719 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_HeaderFile #define _GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_0.cxx index 6d4e37236..b0e5fee23 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyInteger.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyInteger.hxx index b847a7345..4a48fe108 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyInteger.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapOfPassKeyInteger_HeaderFile #define _GEOMAlgo_DataMapOfPassKeyInteger_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyInteger_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyInteger_0.cxx index 0a831e442..2b3a535cd 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyInteger_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyInteger_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyShapeShape.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyShapeShape.hxx index 4e209557f..28693baea 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyShapeShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyShapeShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapOfPassKeyShapeShape_HeaderFile #define _GEOMAlgo_DataMapOfPassKeyShapeShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyShapeShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyShapeShape_0.cxx index 777551745..3ffd39769 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyShapeShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyShapeShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfRealListOfShape.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfRealListOfShape.hxx index 601edc17c..108370ac1 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapOfRealListOfShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapOfRealListOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapOfRealListOfShape_HeaderFile #define _GEOMAlgo_DataMapOfRealListOfShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfRealListOfShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfRealListOfShape_0.cxx index e1d5ca6e8..7edbd031f 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapOfRealListOfShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapOfRealListOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeReal.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeReal.hxx index 94be38772..7e121ac24 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeReal.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeReal.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapOfShapeReal_HeaderFile #define _GEOMAlgo_DataMapOfShapeReal_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeReal_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeReal_0.cxx index 06abae332..66ae1a35d 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeReal_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeReal_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeShapeSet.hxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeShapeSet.hxx index f7947802b..8c372df0a 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeShapeSet.hxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeShapeSet.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_DataMapOfShapeShapeSet_HeaderFile #define _GEOMAlgo_DataMapOfShapeShapeSet_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeShapeSet_0.cxx b/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeShapeSet_0.cxx index 96d931bf2..c583d68a4 100644 --- a/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeShapeSet_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_DataMapOfShapeShapeSet_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cdl b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cdl index 9f30dab59..44be83e18 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cdl +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_FinderShapeOn.cdl +-- Created: Tue Jan 11 14:35:52 2005 +-- Author: Peter KURNEV -- --- File: GEOMAlgo_FinderShapeOn.cdl --- Created: Tue Jan 11 14:35:52 2005 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2005 - - class FinderShapeOn from GEOMAlgo inherits ShapeAlgo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cxx index 237e81ef4..372edf653 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_FinderShapeOn.cxx // Created: Tue Jan 11 14:44:31 2005 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.hxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.hxx index 6053ad654..632ad722f 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.hxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_FinderShapeOn_HeaderFile #define _GEOMAlgo_FinderShapeOn_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.ixx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.ixx index 514a8fe3b..2dfc0be17 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.ixx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.jxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.jxx index 6b45d4c1f..f7161c607 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.jxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Geom_Surface_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cdl b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cdl index 6a0b72e5b..cb9be924f 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cdl +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_FinderShapeOn1.cdl +-- Created: Fri Mar 4 10:26:54 2005 +-- Author: Peter KURNEV -- --- File: GEOMAlgo_FinderShapeOn1.cdl --- Created: Fri Mar 4 10:26:54 2005 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2005 - - class FinderShapeOn1 from GEOMAlgo inherits ShapeAlgo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cxx index 6f9f6a0b4..24f5ed55e 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_FinderShapeOn1.cxx // Created: Fri Mar 4 10:31:06 2005 // Author: Peter KURNEV // - - +// #include #include @@ -545,7 +546,7 @@ void GEOMAlgo_FinderShapeOn1::InnerPoints(const TopoDS_Face& aF, aTRF=BRep_Tool::Triangulation(aF, aLoc); if (aTRF.IsNull()) { if (!GEOMAlgo_FinderShapeOn::BuildTriangulation(aF)) { - myErrorStatus=20; // no triangulation found + myWarningStatus=20; // no triangulation found return; } aTRF=BRep_Tool::Triangulation(aF, aLoc); diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.hxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.hxx index d07cda45c..f3860edb0 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.hxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_FinderShapeOn1_HeaderFile #define _GEOMAlgo_FinderShapeOn1_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.ixx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.ixx index da80e4d18..9b9caa61c 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.ixx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.jxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.jxx index db9c4b7f7..196f0e706 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.jxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn1.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Geom_Surface_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cdl b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cdl index c0a1b9253..72d79265d 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cdl +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: GEOMAlgo_FinderShapeOn1.cdl -- Created: Fri Mar 4 10:26:54 2005 -- Author: Peter KURNEV -- - - +-- class FinderShapeOn2 from GEOMAlgo inherits ShapeAlgo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cxx index ebc34e718..b7f70f544 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_FinderShapeOn1.cxx // Created: Fri Mar 4 10:31:06 2005 // Author: Peter KURNEV // - - +// #include #include @@ -605,7 +606,7 @@ aTRF=BRep_Tool::Triangulation(aF, aLoc); if (aTRF.IsNull()) { if (!GEOMAlgo_FinderShapeOn::BuildTriangulation(aF)) { - myErrorStatus=20; // no triangulation found + myWarningStatus=20; // no triangulation found return; } aTRF=BRep_Tool::Triangulation(aF, aLoc); diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.hxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.hxx index 1d467a51e..7eaa024a8 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.hxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_FinderShapeOn2_HeaderFile #define _GEOMAlgo_FinderShapeOn2_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.ixx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.ixx index 9e17577cf..d9cef81ac 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.ixx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.jxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.jxx index 62172c460..448209129 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.jxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOn2.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_Clsf_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOnQuad.cxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOnQuad.cxx index c6d98798b..3d32d628b 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOnQuad.cxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOnQuad.cxx @@ -1,4 +1,6 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -15,14 +17,12 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMAlgo_FinderShapeOnQuad.cxx // Created : Mon Oct 17 17:31:45 2005 // Author : Edward AGAPOV (eap) - +// #include "GEOMAlgo_FinderShapeOnQuad.hxx" #include "GEOMAlgo_SurfaceTools.hxx" diff --git a/src/GEOMAlgo/GEOMAlgo_FinderShapeOnQuad.hxx b/src/GEOMAlgo/GEOMAlgo_FinderShapeOnQuad.hxx index 6b15851b1..18fca9a53 100644 --- a/src/GEOMAlgo/GEOMAlgo_FinderShapeOnQuad.hxx +++ b/src/GEOMAlgo/GEOMAlgo_FinderShapeOnQuad.hxx @@ -1,4 +1,6 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -15,14 +17,12 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMAlgo_FinderShapeOnQuad.hxx // Created : Mon Oct 17 17:15:59 2005 // Author : Edward AGAPOV (eap) - +// #ifndef GEOMAlgo_FinderShapeOnQuad_HeaderFile #define GEOMAlgo_FinderShapeOnQuad_HeaderFile @@ -51,10 +51,10 @@ protected: private: - bool myConcaveQuad; + bool myConcaveQuad; std::vector myConcaveSide; std::vector myPoints; std::vector myPlanes; - gp_Vec myQuadNormal; + gp_Vec myQuadNormal; }; #endif diff --git a/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.cdl b/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.cdl index 97dd6f476..925d094c5 100644 --- a/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.cdl +++ b/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: GEOMAlgo_GlueAnalyser.cdl -- Created: Wed Dec 15 11:03:03 2004 -- Author: Peter KURNEV -- - - +-- class GlueAnalyser from GEOMAlgo inherits Gluer from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.cxx b/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.cxx index e38911f5b..8a7124c31 100644 --- a/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.cxx +++ b/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_GlueDetector.cxx // Created: Wed Dec 15 11:08:09 2004 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.hxx b/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.hxx index 8b815072f..45d174918 100644 --- a/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.hxx +++ b/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_GlueAnalyser_HeaderFile #define _GEOMAlgo_GlueAnalyser_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.ixx b/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.ixx index d7456f060..6a279b7ef 100644 --- a/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.ixx +++ b/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.jxx b/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.jxx index f89777323..bc6388ba6 100644 --- a/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.jxx +++ b/src/GEOMAlgo/GEOMAlgo_GlueAnalyser.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ListOfCoupleOfShapes_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer.cdl b/src/GEOMAlgo/GEOMAlgo_Gluer.cdl index fe629e68b..76631ff57 100755 --- a/src/GEOMAlgo/GEOMAlgo_Gluer.cdl +++ b/src/GEOMAlgo/GEOMAlgo_Gluer.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: GEOMAlgo_Gluer.cdl -- Created: Sat Dec 04 12:41:32 2004 -- Author: Peter KURNEV -- - - +-- class Gluer from GEOMAlgo inherits ShapeAlgo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer.cxx b/src/GEOMAlgo/GEOMAlgo_Gluer.cxx index e2f2c9a69..a147c90b0 100755 --- a/src/GEOMAlgo/GEOMAlgo_Gluer.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Gluer.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Gluer.cxx // Created: Sat Dec 04 12:45:53 2004 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer.hxx b/src/GEOMAlgo/GEOMAlgo_Gluer.hxx index 5ca326149..980424de0 100644 --- a/src/GEOMAlgo/GEOMAlgo_Gluer.hxx +++ b/src/GEOMAlgo/GEOMAlgo_Gluer.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_Gluer_HeaderFile #define _GEOMAlgo_Gluer_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer.ixx b/src/GEOMAlgo/GEOMAlgo_Gluer.ixx index 8fe0fabdf..574d72d81 100644 --- a/src/GEOMAlgo/GEOMAlgo_Gluer.ixx +++ b/src/GEOMAlgo/GEOMAlgo_Gluer.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer.jxx b/src/GEOMAlgo/GEOMAlgo_Gluer.jxx index 254e050e8..86f3f36ab 100644 --- a/src/GEOMAlgo/GEOMAlgo_Gluer.jxx +++ b/src/GEOMAlgo/GEOMAlgo_Gluer.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopTools_ListOfShape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer1.cdl b/src/GEOMAlgo/GEOMAlgo_Gluer1.cdl index d226781a7..de00fbc0b 100755 --- a/src/GEOMAlgo/GEOMAlgo_Gluer1.cdl +++ b/src/GEOMAlgo/GEOMAlgo_Gluer1.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_Gluer1.cdl -- Created: Wed Jan 24 11:37:31 2007 -- Author: Peter KURNEV -- - - +-- class Gluer1 from GEOMAlgo inherits Gluer from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer1.cxx b/src/GEOMAlgo/GEOMAlgo_Gluer1.cxx index d1636fea5..fbcec0512 100755 --- a/src/GEOMAlgo/GEOMAlgo_Gluer1.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Gluer1.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Gluer1.cxx // Created: Wed Jan 24 11:52:27 2007 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer1.hxx b/src/GEOMAlgo/GEOMAlgo_Gluer1.hxx index 0939c3ef4..ed68594be 100644 --- a/src/GEOMAlgo/GEOMAlgo_Gluer1.hxx +++ b/src/GEOMAlgo/GEOMAlgo_Gluer1.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_Gluer1_HeaderFile #define _GEOMAlgo_Gluer1_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer1.ixx b/src/GEOMAlgo/GEOMAlgo_Gluer1.ixx index 9198a8dbb..8081a3d03 100644 --- a/src/GEOMAlgo/GEOMAlgo_Gluer1.ixx +++ b/src/GEOMAlgo/GEOMAlgo_Gluer1.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_Gluer1.jxx b/src/GEOMAlgo/GEOMAlgo_Gluer1.jxx index bb63320eb..307f27e7f 100644 --- a/src/GEOMAlgo/GEOMAlgo_Gluer1.jxx +++ b/src/GEOMAlgo/GEOMAlgo_Gluer1.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ListOfCoupleOfShapes_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_HAlgo.cdl b/src/GEOMAlgo/GEOMAlgo_HAlgo.cdl index 0da634889..b9e77ab42 100644 --- a/src/GEOMAlgo/GEOMAlgo_HAlgo.cdl +++ b/src/GEOMAlgo/GEOMAlgo_HAlgo.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: GEOMAlgo_Algo.cdl -- Created: Sat Dec 04 12:37:56 2004 -- Author: Peter KURNEV -- - - +-- deferred class HAlgo from GEOMAlgo inherits TShared from MMgt ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_HAlgo.cxx b/src/GEOMAlgo/GEOMAlgo_HAlgo.cxx index 807929c73..69dfa4ac6 100644 --- a/src/GEOMAlgo/GEOMAlgo_HAlgo.cxx +++ b/src/GEOMAlgo/GEOMAlgo_HAlgo.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Algo.cxx // Created: Sat Dec 04 12:39:47 2004 // Author: Peter KURNEV // - - +// #include //======================================================================= diff --git a/src/GEOMAlgo/GEOMAlgo_HAlgo.hxx b/src/GEOMAlgo/GEOMAlgo_HAlgo.hxx index 0f25b53de..c7002b5da 100644 --- a/src/GEOMAlgo/GEOMAlgo_HAlgo.hxx +++ b/src/GEOMAlgo/GEOMAlgo_HAlgo.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_HAlgo_HeaderFile #define _GEOMAlgo_HAlgo_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_HAlgo.ixx b/src/GEOMAlgo/GEOMAlgo_HAlgo.ixx index 96a32edb8..810ccc9e2 100644 --- a/src/GEOMAlgo/GEOMAlgo_HAlgo.ixx +++ b/src/GEOMAlgo/GEOMAlgo_HAlgo.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_HAlgo.jxx b/src/GEOMAlgo/GEOMAlgo_HAlgo.jxx index e6d20409d..6be6b1b67 100644 --- a/src/GEOMAlgo/GEOMAlgo_HAlgo.jxx +++ b/src/GEOMAlgo/GEOMAlgo_HAlgo.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_HAlgo_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx index bb87ad0a1..965ff0a27 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_HeaderFile #define _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx index 42561ece4..300973d78 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx index cd79d0b02..c4f5752fc 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_HeaderFile #define _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_0.cxx index d29cf0f21..3703fb54a 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx index ce1a5003a..71466b812 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_HeaderFile #define _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_0.cxx index ddacd8762..fa5437fc8 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx index b88bbcd3d..d01bc565d 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_HeaderFile #define _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx index e2efeae43..06f91398d 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx index 2c37056e2..e974bb3c6 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx @@ -1,25 +1,24 @@ -// File generated by CPPExt (Transient) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #ifndef _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_HeaderFile #define _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_0.cxx index 6afae1194..799e63395 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_0.cxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Transient) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx index b7f8701e1..ab44e2fe2 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_HeaderFile #define _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_0.cxx index fec6e37ca..eb0fcc7db 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfIntegerShape.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfIntegerShape.hxx index 513ac78bf..a89e0146a 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfIntegerShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfIntegerShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_IndexedDataMapOfIntegerShape_HeaderFile #define _GEOMAlgo_IndexedDataMapOfIntegerShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfIntegerShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfIntegerShape_0.cxx index 8ec0d0daa..232a19d13 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfIntegerShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfIntegerShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyListOfShape.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyListOfShape.hxx index 59bd0bab5..de91f020f 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyListOfShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyListOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_HeaderFile #define _GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_0.cxx index a493ac29c..ff1528304 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx index b27ee9a81..7bf5b4b4e 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_HeaderFile #define _GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_0.cxx index ccd40ac28..89b23d6a1 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeBox.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeBox.hxx index 9b05242de..8660ceb8f 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeBox.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeBox.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_IndexedDataMapOfShapeBox_HeaderFile #define _GEOMAlgo_IndexedDataMapOfShapeBox_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeBox_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeBox_0.cxx index c4add9933..d8b986624 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeBox_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeBox_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx index ef912354e..3051acc43 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Value) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #ifndef _GEOMAlgo_IndexedDataMapOfShapeShapeInfo_HeaderFile #define _GEOMAlgo_IndexedDataMapOfShapeShapeInfo_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeShapeInfo_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeShapeInfo_0.cxx index 96604846e..61e566417 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeShapeInfo_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeShapeInfo_0.cxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Value) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeState.hxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeState.hxx index d7f988310..59fa7a7cb 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeState.hxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeState.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_IndexedDataMapOfShapeState_HeaderFile #define _GEOMAlgo_IndexedDataMapOfShapeState_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeState_0.cxx b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeState_0.cxx index 92ab03801..26f31af15 100644 --- a/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeState_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeState_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_KindOfBounds.hxx b/src/GEOMAlgo/GEOMAlgo_KindOfBounds.hxx index ba0043ebb..6ae789d88 100644 --- a/src/GEOMAlgo/GEOMAlgo_KindOfBounds.hxx +++ b/src/GEOMAlgo/GEOMAlgo_KindOfBounds.hxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Enum) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #ifndef _GEOMAlgo_KindOfBounds_HeaderFile #define _GEOMAlgo_KindOfBounds_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_KindOfClosed.hxx b/src/GEOMAlgo/GEOMAlgo_KindOfClosed.hxx index 9854aed36..d3ac58477 100644 --- a/src/GEOMAlgo/GEOMAlgo_KindOfClosed.hxx +++ b/src/GEOMAlgo/GEOMAlgo_KindOfClosed.hxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Enum) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #ifndef _GEOMAlgo_KindOfClosed_HeaderFile #define _GEOMAlgo_KindOfClosed_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_KindOfName.hxx b/src/GEOMAlgo/GEOMAlgo_KindOfName.hxx index 74c83eb78..e4a8316bc 100644 --- a/src/GEOMAlgo/GEOMAlgo_KindOfName.hxx +++ b/src/GEOMAlgo/GEOMAlgo_KindOfName.hxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Enum) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #ifndef _GEOMAlgo_KindOfName_HeaderFile #define _GEOMAlgo_KindOfName_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_KindOfShape.hxx b/src/GEOMAlgo/GEOMAlgo_KindOfShape.hxx index 1b5ead9f9..cf40274d4 100644 --- a/src/GEOMAlgo/GEOMAlgo_KindOfShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_KindOfShape.hxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Enum) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #ifndef _GEOMAlgo_KindOfShape_HeaderFile #define _GEOMAlgo_KindOfShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx b/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx index 738875828..9464a35f3 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ListIteratorOfListOfCoupleOfShapes_HeaderFile #define _GEOMAlgo_ListIteratorOfListOfCoupleOfShapes_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfCoupleOfShapes_0.cxx b/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfCoupleOfShapes_0.cxx index ab548e32e..3ded9dfbb 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfCoupleOfShapes_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfCoupleOfShapes_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoMoreObject_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfPnt.hxx b/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfPnt.hxx index 43bd2f9d0..1c1b7ca2c 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfPnt.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfPnt.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ListIteratorOfListOfPnt_HeaderFile #define _GEOMAlgo_ListIteratorOfListOfPnt_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfPnt_0.cxx b/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfPnt_0.cxx index 179cdce45..69d459655 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfPnt_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ListIteratorOfListOfPnt_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoMoreObject_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx b/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx index 8f8dd4b42..04439ff5e 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ListNodeOfListOfCoupleOfShapes_HeaderFile #define _GEOMAlgo_ListNodeOfListOfCoupleOfShapes_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfCoupleOfShapes_0.cxx b/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfCoupleOfShapes_0.cxx index 2ce4cb14b..d8786cc70 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfCoupleOfShapes_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfCoupleOfShapes_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfPnt.hxx b/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfPnt.hxx index 5fb729abd..908c29be4 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfPnt.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfPnt.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ListNodeOfListOfPnt_HeaderFile #define _GEOMAlgo_ListNodeOfListOfPnt_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfPnt_0.cxx b/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfPnt_0.cxx index 4514c4898..3587b7daa 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfPnt_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ListNodeOfListOfPnt_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListOfCoupleOfShapes.hxx b/src/GEOMAlgo/GEOMAlgo_ListOfCoupleOfShapes.hxx index a535c2261..0a4be4cc8 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListOfCoupleOfShapes.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ListOfCoupleOfShapes.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ListOfCoupleOfShapes_HeaderFile #define _GEOMAlgo_ListOfCoupleOfShapes_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListOfCoupleOfShapes_0.cxx b/src/GEOMAlgo/GEOMAlgo_ListOfCoupleOfShapes_0.cxx index 838464db1..82d3fc5e7 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListOfCoupleOfShapes_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ListOfCoupleOfShapes_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListOfPnt.hxx b/src/GEOMAlgo/GEOMAlgo_ListOfPnt.hxx index 94a8be445..5e425bce3 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListOfPnt.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ListOfPnt.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ListOfPnt_HeaderFile #define _GEOMAlgo_ListOfPnt_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ListOfPnt_0.cxx b/src/GEOMAlgo/GEOMAlgo_ListOfPnt_0.cxx index 295d9ef59..3f3344f5e 100644 --- a/src/GEOMAlgo/GEOMAlgo_ListOfPnt_0.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ListOfPnt_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_PWireEdgeSet.hxx b/src/GEOMAlgo/GEOMAlgo_PWireEdgeSet.hxx index 1340244b4..058553ba1 100644 --- a/src/GEOMAlgo/GEOMAlgo_PWireEdgeSet.hxx +++ b/src/GEOMAlgo/GEOMAlgo_PWireEdgeSet.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_PWireEdgeSet_HeaderFile #define _GEOMAlgo_PWireEdgeSet_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_PassKey.cdl b/src/GEOMAlgo/GEOMAlgo_PassKey.cdl index 8b84345a4..a4b217a34 100755 --- a/src/GEOMAlgo/GEOMAlgo_PassKey.cdl +++ b/src/GEOMAlgo/GEOMAlgo_PassKey.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_PassKey.cdl -- Created: Mon Nov 20 12:16:13 2006 -- Author: Peter KURNEV -- - - +-- class PassKey from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_PassKey.cxx b/src/GEOMAlgo/GEOMAlgo_PassKey.cxx index 342a116f2..254ca6e59 100755 --- a/src/GEOMAlgo/GEOMAlgo_PassKey.cxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKey.cxx @@ -1,29 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Algo.cxx // Created: Sat Dec 04 12:39:47 2004 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_PassKey.hxx b/src/GEOMAlgo/GEOMAlgo_PassKey.hxx index 930eb1b08..ce79e29d3 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKey.hxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKey.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_PassKey_HeaderFile #define _GEOMAlgo_PassKey_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_PassKey.ixx b/src/GEOMAlgo/GEOMAlgo_PassKey.ixx index d935f86ec..4b098cfda 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKey.ixx +++ b/src/GEOMAlgo/GEOMAlgo_PassKey.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_PassKey.jxx b/src/GEOMAlgo/GEOMAlgo_PassKey.jxx index 6363a879e..4a975175e 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKey.jxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKey.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TColStd_ListOfInteger_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.cdl b/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.cdl index a0ba022fc..3bcef2436 100755 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.cdl +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: GEOMAlgo_PassKeyMapHasher.cdl -- Created: -- Author: Peter KURNEV -- - - +-- class PassKeyMapHasher from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.cxx b/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.cxx index 654278f7e..8db75c81c 100755 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.cxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_PassKeyMapHasher.cxx // Created: // Author: Peter KURNEV // - - +// #include //======================================================================= diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.hxx b/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.hxx index 2e0287ee6..82cf8ff39 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.hxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_PassKeyMapHasher_HeaderFile #define _GEOMAlgo_PassKeyMapHasher_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.ixx b/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.ixx index 331c4d8e9..c21de3f68 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.ixx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.jxx b/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.jxx index f1bedbdd8..7b8138bd1 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.jxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyMapHasher.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_PassKey_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyShape.cdl b/src/GEOMAlgo/GEOMAlgo_PassKeyShape.cdl index 5215a4de4..b7a60b138 100755 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyShape.cdl +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyShape.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: GEOMAlgo_PassKeyShape.cdl -- Created: -- Author: Peter KURNEV -- - - +-- class PassKeyShape from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyShape.cxx b/src/GEOMAlgo/GEOMAlgo_PassKeyShape.cxx index df01791ad..41debf27e 100755 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyShape.cxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyShape.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_PassKeyShape.cxx // Created: // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyShape.hxx b/src/GEOMAlgo/GEOMAlgo_PassKeyShape.hxx index d54dd3c0b..529fa3ae1 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyShape.hxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_PassKeyShape_HeaderFile #define _GEOMAlgo_PassKeyShape_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyShape.ixx b/src/GEOMAlgo/GEOMAlgo_PassKeyShape.ixx index 9934607fc..94c1a74fa 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyShape.ixx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyShape.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyShape.jxx b/src/GEOMAlgo/GEOMAlgo_PassKeyShape.jxx index 06b1a9edb..37f591564 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyShape.jxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyShape.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.cdl b/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.cdl index 393b7e78f..becd85f7b 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.cdl +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: GEOMAlgo_PassKeyMapHasher.cdl -- Created: -- Author: Peter KURNEV -- - - +-- class PassKeyShapeMapHasher from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.cxx b/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.cxx index 70478af43..036cddde9 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.cxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_PassKeyMapHasher.cxx // Created: // Author: Peter KURNEV // - - +// #include //======================================================================= diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.hxx b/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.hxx index 53caf6a70..7dcdd4670 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.hxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_PassKeyShapeMapHasher_HeaderFile #define _GEOMAlgo_PassKeyShapeMapHasher_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.ixx b/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.ixx index ae17ce089..3115037ae 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.ixx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.jxx b/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.jxx index 99130d0ba..df8089e56 100644 --- a/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.jxx +++ b/src/GEOMAlgo/GEOMAlgo_PassKeyShapeMapHasher.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_PassKeyShape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.cdl b/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.cdl index 26b5c27a9..36ede4369 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.cdl +++ b/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_ShapeAlgo.cdl +-- Created: Tue Dec 7 12:05:19 2004 +-- Author: Peter KURNEV -- --- File: GEOMAlgo_ShapeAlgo.cdl --- Created: Tue Dec 7 12:05:19 2004 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2004 - - deferred class ShapeAlgo from GEOMAlgo inherits Algo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.cxx b/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.cxx index 1c25bb27f..9e93ba6ca 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_ShapeAlgo.cxx // Created: Tue Dec 7 12:06:54 2004 // Author: Peter KURNEV // - - +// #include //======================================================================= diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.hxx b/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.hxx index 7647c9bf2..f8a385f34 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ShapeAlgo_HeaderFile #define _GEOMAlgo_ShapeAlgo_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.ixx b/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.ixx index f1a56c8ff..58a281fef 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.ixx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.jxx b/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.jxx index 94b9d0c30..b5fda6902 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.jxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeAlgo.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeInfo.cdl b/src/GEOMAlgo/GEOMAlgo_ShapeInfo.cdl index 625638b67..9115582b4 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeInfo.cdl +++ b/src/GEOMAlgo/GEOMAlgo_ShapeInfo.cdl @@ -1,10 +1,28 @@ --- File: GEOMAlgo_ShapeInfo.cdl --- Created: Mon Apr 2 14:04:24 2007 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2007 - - +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_ShapeInfo.cdl +-- Created: Mon Apr 2 14:04:24 2007 +-- Author: Peter KURNEV +-- class ShapeInfo from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeInfo.cxx b/src/GEOMAlgo/GEOMAlgo_ShapeInfo.cxx index c12606236..e34a909fd 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeInfo.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeInfo.cxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeInfo.hxx b/src/GEOMAlgo/GEOMAlgo_ShapeInfo.hxx index 3cbe05b5a..20dded14d 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeInfo.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeInfo.hxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Value) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #ifndef _GEOMAlgo_ShapeInfo_HeaderFile #define _GEOMAlgo_ShapeInfo_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeInfo.ixx b/src/GEOMAlgo/GEOMAlgo_ShapeInfo.ixx index 4d87536e8..e7ae2d9ae 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeInfo.ixx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeInfo.ixx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Value) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeInfo.jxx b/src/GEOMAlgo/GEOMAlgo_ShapeInfo.jxx index 493c1c8a7..2ad3d50e7 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeInfo.jxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeInfo.jxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef _gp_Pnt_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cdl b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cdl index 599a77d85..df956fd5d 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cdl +++ b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cdl @@ -1,10 +1,28 @@ --- File: GEOMAlgo_ShapeInfoFiller.cdl --- Created: Mon Apr 2 15:05:34 2007 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2007 - - +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_ShapeInfoFiller.cdl +-- Created: Mon Apr 2 15:05:34 2007 +-- Author: Peter KURNEV +-- class ShapeInfoFiller from GEOMAlgo inherits Algo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cxx b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cxx index 299fb5b1a..4c5690521 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.hxx b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.hxx index 5a52f94df..a25c2e0a4 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.hxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Value) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #ifndef _GEOMAlgo_ShapeInfoFiller_HeaderFile #define _GEOMAlgo_ShapeInfoFiller_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.ixx b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.ixx index a56973ba8..99038a856 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.ixx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.ixx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Value) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.jxx b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.jxx index f3d77a35b..e7edb1ea6 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.jxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.jxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller_1.cxx b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller_1.cxx index 891b9c772..152a4f3ad 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller_1.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller_1.cxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeSet.cdl b/src/GEOMAlgo/GEOMAlgo_ShapeSet.cdl index 49ee9295c..7695a4a0c 100755 --- a/src/GEOMAlgo/GEOMAlgo_ShapeSet.cdl +++ b/src/GEOMAlgo/GEOMAlgo_ShapeSet.cdl @@ -1,26 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_ShapeSet.cdl -- Created: -- Author: Peter KURNEV - +-- class ShapeSet from GEOMAlgo ---Purpose: Implementation some formal diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeSet.cxx b/src/GEOMAlgo/GEOMAlgo_ShapeSet.cxx index 800e3eb3e..e48672d62 100755 --- a/src/GEOMAlgo/GEOMAlgo_ShapeSet.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeSet.cxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_ShapeSet.cxx // Created: // Author: Peter KURNEV - - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeSet.hxx b/src/GEOMAlgo/GEOMAlgo_ShapeSet.hxx index 98fb46415..72d00d5b1 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeSet.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeSet.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ShapeSet_HeaderFile #define _GEOMAlgo_ShapeSet_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeSet.ixx b/src/GEOMAlgo/GEOMAlgo_ShapeSet.ixx index 445af6936..984facf18 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeSet.ixx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeSet.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeSet.jxx b/src/GEOMAlgo/GEOMAlgo_ShapeSet.jxx index b76eeb906..927257846 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeSet.jxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeSet.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopTools_ListOfShape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeSolid.cdl b/src/GEOMAlgo/GEOMAlgo_ShapeSolid.cdl index b26e74093..84fb33d37 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeSolid.cdl +++ b/src/GEOMAlgo/GEOMAlgo_ShapeSolid.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_ShapeSolid.cdl +-- Created: Thu Jan 13 12:44:07 2005 +-- Author: Peter KURNEV -- --- File: GEOMAlgo_ShapeSolid.cdl --- Created: Thu Jan 13 12:44:07 2005 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2005 - - deferred class ShapeSolid from GEOMAlgo inherits Algo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeSolid.cxx b/src/GEOMAlgo/GEOMAlgo_ShapeSolid.cxx index e22ed2e08..1883de4a0 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeSolid.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeSolid.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_ShapeSolid.cxx // Created: Thu Jan 13 12:54:48 2005 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeSolid.hxx b/src/GEOMAlgo/GEOMAlgo_ShapeSolid.hxx index fa7d823b7..a913d917c 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeSolid.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeSolid.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ShapeSolid_HeaderFile #define _GEOMAlgo_ShapeSolid_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeSolid.ixx b/src/GEOMAlgo/GEOMAlgo_ShapeSolid.ixx index 2ef2ca6ef..22f64b475 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeSolid.ixx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeSolid.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShapeSolid.jxx b/src/GEOMAlgo/GEOMAlgo_ShapeSolid.jxx index 665e84a1a..e21210348 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShapeSolid.jxx +++ b/src/GEOMAlgo/GEOMAlgo_ShapeSolid.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _BOPTools_DSFiller_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_ShellSolid.cdl b/src/GEOMAlgo/GEOMAlgo_ShellSolid.cdl index 15d47e504..43aac10ac 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShellSolid.cdl +++ b/src/GEOMAlgo/GEOMAlgo_ShellSolid.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_ShellSolid.cdl +-- Created: Wed Jan 12 12:45:20 2005 +-- Author: Peter KURNEV -- --- File: GEOMAlgo_ShellSolid.cdl --- Created: Wed Jan 12 12:45:20 2005 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2005 - - class ShellSolid from GEOMAlgo inherits ShapeSolid from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_ShellSolid.cxx b/src/GEOMAlgo/GEOMAlgo_ShellSolid.cxx index f502a8fc2..c4dca68d0 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShellSolid.cxx +++ b/src/GEOMAlgo/GEOMAlgo_ShellSolid.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_ShellSolid.cxx // Created: Wed Jan 12 12:49:45 2005 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShellSolid.hxx b/src/GEOMAlgo/GEOMAlgo_ShellSolid.hxx index a074965c8..b00ac92c7 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShellSolid.hxx +++ b/src/GEOMAlgo/GEOMAlgo_ShellSolid.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ShellSolid_HeaderFile #define _GEOMAlgo_ShellSolid_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_ShellSolid.ixx b/src/GEOMAlgo/GEOMAlgo_ShellSolid.ixx index 2be64c012..d34ab8352 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShellSolid.ixx +++ b/src/GEOMAlgo/GEOMAlgo_ShellSolid.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_ShellSolid.jxx b/src/GEOMAlgo/GEOMAlgo_ShellSolid.jxx index c2e95da40..587bf30e3 100644 --- a/src/GEOMAlgo/GEOMAlgo_ShellSolid.jxx +++ b/src/GEOMAlgo/GEOMAlgo_ShellSolid.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_ShellSolid_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_SolidSolid.cdl b/src/GEOMAlgo/GEOMAlgo_SolidSolid.cdl index aef1c1ae6..2722c9a73 100644 --- a/src/GEOMAlgo/GEOMAlgo_SolidSolid.cdl +++ b/src/GEOMAlgo/GEOMAlgo_SolidSolid.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_SolidSolid.cdl +-- Created: Wed Jan 26 12:05:14 2005 +-- Author: Peter KURNEV -- --- File: GEOMAlgo_SolidSolid.cdl --- Created: Wed Jan 26 12:05:14 2005 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2005 - - class SolidSolid from GEOMAlgo inherits ShellSolid from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_SolidSolid.cxx b/src/GEOMAlgo/GEOMAlgo_SolidSolid.cxx index 132f7825e..b64df9d55 100644 --- a/src/GEOMAlgo/GEOMAlgo_SolidSolid.cxx +++ b/src/GEOMAlgo/GEOMAlgo_SolidSolid.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_SolidSolid.cxx // Created: Wed Jan 26 12:06:26 2005 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_SolidSolid.hxx b/src/GEOMAlgo/GEOMAlgo_SolidSolid.hxx index 7dcef534f..8fafb7b71 100644 --- a/src/GEOMAlgo/GEOMAlgo_SolidSolid.hxx +++ b/src/GEOMAlgo/GEOMAlgo_SolidSolid.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_SolidSolid_HeaderFile #define _GEOMAlgo_SolidSolid_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_SolidSolid.ixx b/src/GEOMAlgo/GEOMAlgo_SolidSolid.ixx index fae2b9509..a17ae72e2 100644 --- a/src/GEOMAlgo/GEOMAlgo_SolidSolid.ixx +++ b/src/GEOMAlgo/GEOMAlgo_SolidSolid.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_SolidSolid.jxx b/src/GEOMAlgo/GEOMAlgo_SolidSolid.jxx index 1fa87e792..41feab2d2 100644 --- a/src/GEOMAlgo/GEOMAlgo_SolidSolid.jxx +++ b/src/GEOMAlgo/GEOMAlgo_SolidSolid.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_Splitter.cdl b/src/GEOMAlgo/GEOMAlgo_Splitter.cdl index 19991027d..449ab9ace 100755 --- a/src/GEOMAlgo/GEOMAlgo_Splitter.cdl +++ b/src/GEOMAlgo/GEOMAlgo_Splitter.cdl @@ -1,28 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_Splitter.cdl +-- Created: +-- Author: Peter KURNEV -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- --- File: GEOMAlgo_Splitter.cdl --- Created: --- Author: Peter KURNEV --- --- Copyright: - class Splitter from GEOMAlgo inherits Builder from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_Splitter.cxx b/src/GEOMAlgo/GEOMAlgo_Splitter.cxx index 431719ab1..34b284b55 100755 --- a/src/GEOMAlgo/GEOMAlgo_Splitter.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Splitter.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Splitter.cxx // Created: // Author: Peter KURNEV // - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_Splitter.hxx b/src/GEOMAlgo/GEOMAlgo_Splitter.hxx index 7f3b69fb7..d5ceaaf8b 100644 --- a/src/GEOMAlgo/GEOMAlgo_Splitter.hxx +++ b/src/GEOMAlgo/GEOMAlgo_Splitter.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_Splitter_HeaderFile #define _GEOMAlgo_Splitter_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_Splitter.ixx b/src/GEOMAlgo/GEOMAlgo_Splitter.ixx index ed917a680..9837af7dc 100644 --- a/src/GEOMAlgo/GEOMAlgo_Splitter.ixx +++ b/src/GEOMAlgo/GEOMAlgo_Splitter.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_Splitter.jxx b/src/GEOMAlgo/GEOMAlgo_Splitter.jxx index a15ed2864..d12cbbdd8 100644 --- a/src/GEOMAlgo/GEOMAlgo_Splitter.jxx +++ b/src/GEOMAlgo/GEOMAlgo_Splitter.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_State.hxx b/src/GEOMAlgo/GEOMAlgo_State.hxx index 1824b18bb..05359bd44 100644 --- a/src/GEOMAlgo/GEOMAlgo_State.hxx +++ b/src/GEOMAlgo/GEOMAlgo_State.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_State_HeaderFile #define _GEOMAlgo_State_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_StateCollector.cdl b/src/GEOMAlgo/GEOMAlgo_StateCollector.cdl index 15e89c8d1..ae01b2c5f 100644 --- a/src/GEOMAlgo/GEOMAlgo_StateCollector.cdl +++ b/src/GEOMAlgo/GEOMAlgo_StateCollector.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_StateCollector.cdl +-- Created: Thu Mar 10 09:39:25 2005 +-- Author: Peter KURNEV -- --- File: GEOMAlgo_StateCollector.cdl --- Created: Thu Mar 10 09:39:25 2005 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2005 - - class StateCollector from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_StateCollector.cxx b/src/GEOMAlgo/GEOMAlgo_StateCollector.cxx index 90da89ff5..5f43ce8d3 100644 --- a/src/GEOMAlgo/GEOMAlgo_StateCollector.cxx +++ b/src/GEOMAlgo/GEOMAlgo_StateCollector.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_StateCollector.cxx // Created: Thu Mar 10 09:42:11 2005 // Author: Peter KURNEV // - - +// #include //======================================================================= diff --git a/src/GEOMAlgo/GEOMAlgo_StateCollector.hxx b/src/GEOMAlgo/GEOMAlgo_StateCollector.hxx index 0bd3e756f..51e6ac87f 100644 --- a/src/GEOMAlgo/GEOMAlgo_StateCollector.hxx +++ b/src/GEOMAlgo/GEOMAlgo_StateCollector.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_StateCollector_HeaderFile #define _GEOMAlgo_StateCollector_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_StateCollector.ixx b/src/GEOMAlgo/GEOMAlgo_StateCollector.ixx index 542bc6eb1..f777e3344 100644 --- a/src/GEOMAlgo/GEOMAlgo_StateCollector.ixx +++ b/src/GEOMAlgo/GEOMAlgo_StateCollector.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_StateCollector.jxx b/src/GEOMAlgo/GEOMAlgo_StateCollector.jxx index 1a00e015a..3bdd7984c 100644 --- a/src/GEOMAlgo/GEOMAlgo_StateCollector.jxx +++ b/src/GEOMAlgo/GEOMAlgo_StateCollector.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_StateCollector_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_SurfaceTools.cdl b/src/GEOMAlgo/GEOMAlgo_SurfaceTools.cdl index d0fa19382..9478097b4 100644 --- a/src/GEOMAlgo/GEOMAlgo_SurfaceTools.cdl +++ b/src/GEOMAlgo/GEOMAlgo_SurfaceTools.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_SurfaceTools.cdl +-- Created: Thu Jan 27 11:03:49 2005 +-- Author: Peter KURNEV -- --- File: GEOMAlgo_SurfaceTools.cdl --- Created: Thu Jan 27 11:03:49 2005 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2005 - - class SurfaceTools from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_SurfaceTools.cxx b/src/GEOMAlgo/GEOMAlgo_SurfaceTools.cxx index fd2171e63..9039a1f18 100644 --- a/src/GEOMAlgo/GEOMAlgo_SurfaceTools.cxx +++ b/src/GEOMAlgo/GEOMAlgo_SurfaceTools.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_SurfaceTools.cxx // Created: Thu Jan 27 11:05:16 2005 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_SurfaceTools.hxx b/src/GEOMAlgo/GEOMAlgo_SurfaceTools.hxx index 5703def26..fbcd3ebbe 100644 --- a/src/GEOMAlgo/GEOMAlgo_SurfaceTools.hxx +++ b/src/GEOMAlgo/GEOMAlgo_SurfaceTools.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_SurfaceTools_HeaderFile #define _GEOMAlgo_SurfaceTools_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_SurfaceTools.ixx b/src/GEOMAlgo/GEOMAlgo_SurfaceTools.ixx index 520fe97a3..53cb8c9ad 100644 --- a/src/GEOMAlgo/GEOMAlgo_SurfaceTools.ixx +++ b/src/GEOMAlgo/GEOMAlgo_SurfaceTools.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_SurfaceTools.jxx b/src/GEOMAlgo/GEOMAlgo_SurfaceTools.jxx index 2837fd50f..716140b2d 100644 --- a/src/GEOMAlgo/GEOMAlgo_SurfaceTools.jxx +++ b/src/GEOMAlgo/GEOMAlgo_SurfaceTools.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Geom_Surface_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_Tools.cdl b/src/GEOMAlgo/GEOMAlgo_Tools.cdl index ece735396..6624245a4 100644 --- a/src/GEOMAlgo/GEOMAlgo_Tools.cdl +++ b/src/GEOMAlgo/GEOMAlgo_Tools.cdl @@ -1,28 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: GEOMAlgo_Tools.cdl -- Created: Mon Dec 6 11:26:02 2004 -- Author: Peter KURNEV --- - - +-- class Tools from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_Tools.cxx b/src/GEOMAlgo/GEOMAlgo_Tools.cxx index 65250c364..bad8a3c15 100644 --- a/src/GEOMAlgo/GEOMAlgo_Tools.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Tools.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Tools.cxx // Created: Mon Dec 6 11:35:29 2004 // Author: Peter KURNEV // - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_Tools.hxx b/src/GEOMAlgo/GEOMAlgo_Tools.hxx index 5ca79dd40..700972411 100644 --- a/src/GEOMAlgo/GEOMAlgo_Tools.hxx +++ b/src/GEOMAlgo/GEOMAlgo_Tools.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_Tools_HeaderFile #define _GEOMAlgo_Tools_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_Tools.ixx b/src/GEOMAlgo/GEOMAlgo_Tools.ixx index 1a731d46c..6e05fe29e 100644 --- a/src/GEOMAlgo/GEOMAlgo_Tools.ixx +++ b/src/GEOMAlgo/GEOMAlgo_Tools.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_Tools.jxx b/src/GEOMAlgo/GEOMAlgo_Tools.jxx index 0fa411d8a..5ff48c3d3 100644 --- a/src/GEOMAlgo/GEOMAlgo_Tools.jxx +++ b/src/GEOMAlgo/GEOMAlgo_Tools.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _TopoDS_Shape_HeaderFile #include diff --git a/src/GEOMAlgo/GEOMAlgo_Tools3D.cdl b/src/GEOMAlgo/GEOMAlgo_Tools3D.cdl index e781a9439..0bbc2fc20 100755 --- a/src/GEOMAlgo/GEOMAlgo_Tools3D.cdl +++ b/src/GEOMAlgo/GEOMAlgo_Tools3D.cdl @@ -1,26 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_Tools3D.cdl -- Created: -- Author: Peter KURNEV - +-- class Tools3D from GEOMAlgo ---Purpose: Auxiliary tools for Algorithms diff --git a/src/GEOMAlgo/GEOMAlgo_Tools3D.cxx b/src/GEOMAlgo/GEOMAlgo_Tools3D.cxx index 6d97c6f61..f990d80f6 100755 --- a/src/GEOMAlgo/GEOMAlgo_Tools3D.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Tools3D.cxx @@ -1,26 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_Tools3D.cxx // Created: // Author: Peter KURNEV - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_Tools3D.hxx b/src/GEOMAlgo/GEOMAlgo_Tools3D.hxx index 934cfa4fa..42cd68861 100644 --- a/src/GEOMAlgo/GEOMAlgo_Tools3D.hxx +++ b/src/GEOMAlgo/GEOMAlgo_Tools3D.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_Tools3D_HeaderFile #define _GEOMAlgo_Tools3D_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_Tools3D.ixx b/src/GEOMAlgo/GEOMAlgo_Tools3D.ixx index 52bb882c4..76dbf81ed 100644 --- a/src/GEOMAlgo/GEOMAlgo_Tools3D.ixx +++ b/src/GEOMAlgo/GEOMAlgo_Tools3D.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_Tools3D.jxx b/src/GEOMAlgo/GEOMAlgo_Tools3D.jxx index 22ac3268f..328d5bb72 100644 --- a/src/GEOMAlgo/GEOMAlgo_Tools3D.jxx +++ b/src/GEOMAlgo/GEOMAlgo_Tools3D.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_VertexSolid.cdl b/src/GEOMAlgo/GEOMAlgo_VertexSolid.cdl index 9e83db59a..7c2cecf17 100644 --- a/src/GEOMAlgo/GEOMAlgo_VertexSolid.cdl +++ b/src/GEOMAlgo/GEOMAlgo_VertexSolid.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_VertexSolid.cdl +-- Created: Wed Jan 12 16:34:53 2005 +-- Author: Peter KURNEV -- --- File: GEOMAlgo_VertexSolid.cdl --- Created: Wed Jan 12 16:34:53 2005 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2005 - - class VertexSolid from GEOMAlgo inherits ShapeSolid from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_VertexSolid.cxx b/src/GEOMAlgo/GEOMAlgo_VertexSolid.cxx index 716bf0390..bff0fb1e2 100644 --- a/src/GEOMAlgo/GEOMAlgo_VertexSolid.cxx +++ b/src/GEOMAlgo/GEOMAlgo_VertexSolid.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_VertexSolid.cxx // Created: Wed Jan 12 16:36:40 2005 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_VertexSolid.hxx b/src/GEOMAlgo/GEOMAlgo_VertexSolid.hxx index 7c77c2fa9..9514f5239 100644 --- a/src/GEOMAlgo/GEOMAlgo_VertexSolid.hxx +++ b/src/GEOMAlgo/GEOMAlgo_VertexSolid.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_VertexSolid_HeaderFile #define _GEOMAlgo_VertexSolid_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_VertexSolid.ixx b/src/GEOMAlgo/GEOMAlgo_VertexSolid.ixx index 32c7746f2..0ce665520 100644 --- a/src/GEOMAlgo/GEOMAlgo_VertexSolid.ixx +++ b/src/GEOMAlgo/GEOMAlgo_VertexSolid.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_VertexSolid.jxx b/src/GEOMAlgo/GEOMAlgo_VertexSolid.jxx index 8925ddd34..9a546c6e5 100644 --- a/src/GEOMAlgo/GEOMAlgo_VertexSolid.jxx +++ b/src/GEOMAlgo/GEOMAlgo_VertexSolid.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_VertexSolid_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_WESCorrector.cdl b/src/GEOMAlgo/GEOMAlgo_WESCorrector.cdl index d9f19b9d7..7b433dd10 100755 --- a/src/GEOMAlgo/GEOMAlgo_WESCorrector.cdl +++ b/src/GEOMAlgo/GEOMAlgo_WESCorrector.cdl @@ -1,27 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_WESCorrector.cdl -- Created: -- Author: Peter KURNEV - - +-- class WESCorrector from GEOMAlgo inherits Algo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_WESCorrector.cxx b/src/GEOMAlgo/GEOMAlgo_WESCorrector.cxx index 1b5a04035..b56d73ced 100755 --- a/src/GEOMAlgo/GEOMAlgo_WESCorrector.cxx +++ b/src/GEOMAlgo/GEOMAlgo_WESCorrector.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTAlgo_WESCorrector.cxx // Created: // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_WESCorrector.hxx b/src/GEOMAlgo/GEOMAlgo_WESCorrector.hxx index 42e53af59..4fef49e1a 100644 --- a/src/GEOMAlgo/GEOMAlgo_WESCorrector.hxx +++ b/src/GEOMAlgo/GEOMAlgo_WESCorrector.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_WESCorrector_HeaderFile #define _GEOMAlgo_WESCorrector_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_WESCorrector.ixx b/src/GEOMAlgo/GEOMAlgo_WESCorrector.ixx index a2b071b1f..3e166ac8b 100644 --- a/src/GEOMAlgo/GEOMAlgo_WESCorrector.ixx +++ b/src/GEOMAlgo/GEOMAlgo_WESCorrector.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_WESCorrector.jxx b/src/GEOMAlgo/GEOMAlgo_WESCorrector.jxx index 236296f94..0b46e1d00 100644 --- a/src/GEOMAlgo/GEOMAlgo_WESCorrector.jxx +++ b/src/GEOMAlgo/GEOMAlgo_WESCorrector.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_WireEdgeSet_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.cdl b/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.cdl index 1fe60ad75..89153b277 100755 --- a/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.cdl +++ b/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_WireEdgeSet.cdl -- Created: -- Author: Peter KURNEV -- - - +-- class WireEdgeSet from GEOMAlgo ---Purpose: diff --git a/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.cxx b/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.cxx index bcae26b8f..8e5936281 100755 --- a/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.cxx +++ b/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_WireEdgeSet.cxx // Created: // Author: Peter KURNEV // - +// #include //======================================================================= diff --git a/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.hxx b/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.hxx index 0a0416438..3025b44f5 100644 --- a/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.hxx +++ b/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_WireEdgeSet_HeaderFile #define _GEOMAlgo_WireEdgeSet_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.ixx b/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.ixx index 70dbac598..68e641785 100644 --- a/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.ixx +++ b/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.jxx b/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.jxx index 68885c47e..1c8f96a17 100644 --- a/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.jxx +++ b/src/GEOMAlgo/GEOMAlgo_WireEdgeSet.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Face_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_WireSolid.cdl b/src/GEOMAlgo/GEOMAlgo_WireSolid.cdl index 1fa98cd39..3079bb44a 100644 --- a/src/GEOMAlgo/GEOMAlgo_WireSolid.cdl +++ b/src/GEOMAlgo/GEOMAlgo_WireSolid.cdl @@ -1,28 +1,27 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. -- --- File: GEOMAlgo_WireSolid.cdl --- Created: Wed Jan 12 10:17:00 2005 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2005 - +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: GEOMAlgo_WireSolid.cdl +-- Created: Wed Jan 12 10:17:00 2005 +-- Author: Peter KURNEV class WireSolid from GEOMAlgo inherits ShapeSolid from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_WireSolid.cxx b/src/GEOMAlgo/GEOMAlgo_WireSolid.cxx index 90b7985c2..62c3f4e20 100644 --- a/src/GEOMAlgo/GEOMAlgo_WireSolid.cxx +++ b/src/GEOMAlgo/GEOMAlgo_WireSolid.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_WireSolid.cxx // Created: Wed Jan 12 10:19:31 2005 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/GEOMAlgo/GEOMAlgo_WireSolid.hxx b/src/GEOMAlgo/GEOMAlgo_WireSolid.hxx index 867cc561e..58af52ede 100644 --- a/src/GEOMAlgo/GEOMAlgo_WireSolid.hxx +++ b/src/GEOMAlgo/GEOMAlgo_WireSolid.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_WireSolid_HeaderFile #define _GEOMAlgo_WireSolid_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_WireSolid.ixx b/src/GEOMAlgo/GEOMAlgo_WireSolid.ixx index d4943559c..32aa1fbfd 100644 --- a/src/GEOMAlgo/GEOMAlgo_WireSolid.ixx +++ b/src/GEOMAlgo/GEOMAlgo_WireSolid.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_WireSolid.jxx b/src/GEOMAlgo/GEOMAlgo_WireSolid.jxx index 4409553d2..cba4ece22 100644 --- a/src/GEOMAlgo/GEOMAlgo_WireSolid.jxx +++ b/src/GEOMAlgo/GEOMAlgo_WireSolid.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_WireSolid_HeaderFile #include #endif diff --git a/src/GEOMAlgo/GEOMAlgo_WireSplitter.cdl b/src/GEOMAlgo/GEOMAlgo_WireSplitter.cdl index ed3669b25..a5da76898 100755 --- a/src/GEOMAlgo/GEOMAlgo_WireSplitter.cdl +++ b/src/GEOMAlgo/GEOMAlgo_WireSplitter.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: GEOMAlgo_WireSplitter.cdl -- Created: -- Author: Peter KURNEV -- - - +-- class WireSplitter from GEOMAlgo inherits Algo from GEOMAlgo diff --git a/src/GEOMAlgo/GEOMAlgo_WireSplitter.cxx b/src/GEOMAlgo/GEOMAlgo_WireSplitter.cxx index e4671d3a2..ddfe74f80 100755 --- a/src/GEOMAlgo/GEOMAlgo_WireSplitter.cxx +++ b/src/GEOMAlgo/GEOMAlgo_WireSplitter.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: GEOMAlgo_WireSplitter.cxx // Created: // Author: Peter KURNEV // - - +// #include #include @@ -484,10 +485,10 @@ static gp_Pnt2d aPb=Coord2d(aVb, aEOuta, myFace); - const BOP_ListOfEdgeInfo& aLEInfoVb=mySmartMap.FindFromKey(aVb); + //const BOP_ListOfEdgeInfo& aLEInfoVb=mySmartMap.FindFromKey(aVb); // aTol=2.*Tolerance2D(aVb, aGAS); - aTol2=aTol*aTol; + aTol2=10.*aTol*aTol; // aNb=aLS.Length(); if (aNb>0) { @@ -549,7 +550,7 @@ static } // aTol2D=2.*Tolerance2D(aVb, aGAS); - aTol2D2=aTol2D*aTol2D; + aTol2D2=100.*aTol2D*aTol2D; // // anAngleIn in Vb from edge aEOuta const BOP_ListOfEdgeInfo& aLEInfo=mySmartMap.FindFromKey(aVb); @@ -664,9 +665,7 @@ static // if (aType==GeomAbs_BSplineSurface|| aType==GeomAbs_Sphere|| - //modified by NIZNHY-PKV Wed Nov 29 10:18:50 2006f GeomAbs_SurfaceOfRevolution) { - //modified by NIZNHY-PKV Wed Nov 29 10:18:55 2006t if (aTol2D < aTolV3D) { aTol2D=aTolV3D; } @@ -790,24 +789,29 @@ static const GeomAdaptor_Surface& aGAS, const Standard_Boolean aFlag) { - Standard_Real aFirst, aLast, aToler, dt, aTV, aTV1, anAngle; - + Standard_Real aFirst, aLast, aToler, dt, aTV, aTV1, anAngle, aTX; + gp_Pnt2d aPV, aPV1; + gp_Vec2d aV2D; Handle(Geom2d_Curve) aC2D; - + // + aTV=BRep_Tool::Parameter (aV, anEdge, myFace); + if (Precision::IsInfinite(aTV)) { + return 0.; + } + // BOPTools_Tools2D::CurveOnSurface (anEdge, myFace, aC2D, aFirst, aLast, aToler, Standard_True); - - aTV=BRep_Tool::Parameter (aV, anEdge, myFace); - if (Precision::IsInfinite(aTV)) - return 0.; - //dt=1.e-7; - dt=Tolerance2D(aV, aGAS); - - if(dt > (aLast - aFirst) * 0.25) { + //modified by NIZNHY-PKV Wed Sep 10 14:06:04 2008f + //dt=Tolerance2D(aV, aGAS); + dt=2.*Tolerance2D(aV, aGAS); + //modified by NIZNHY-PKV Wed Sep 10 14:06:07 2008t + // + aTX=0.25*(aLast - aFirst); + if(dt > aTX) { // to save direction of the curve as much as it possible // in the case of big tolerances - dt = (aLast - aFirst) * 0.25; + dt = aTX; } // if (fabs (aTV-aFirst) < fabs(aTV - aLast)) { @@ -816,27 +820,22 @@ static else { aTV1=aTV - dt; } - - gp_Pnt2d aPV, aPV1; + // aC2D->D0 (aTV, aPV); aC2D->D0 (aTV1, aPV1); - - gp_Vec2d aV2D; // if (aFlag) {//IN gp_Vec2d aV2DIn(aPV1, aPV); - // aV2D=aV2DIn; } - else { gp_Vec2d aV2DOut(aPV, aPV1); aV2D=aV2DOut; } - + // gp_Dir2d aDir2D(aV2D); anAngle=Angle(aDir2D); - + // return anAngle; } //======================================================================= diff --git a/src/GEOMAlgo/GEOMAlgo_WireSplitter.hxx b/src/GEOMAlgo/GEOMAlgo_WireSplitter.hxx index f2bb54361..24c2da7bc 100644 --- a/src/GEOMAlgo/GEOMAlgo_WireSplitter.hxx +++ b/src/GEOMAlgo/GEOMAlgo_WireSplitter.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _GEOMAlgo_WireSplitter_HeaderFile #define _GEOMAlgo_WireSplitter_HeaderFile diff --git a/src/GEOMAlgo/GEOMAlgo_WireSplitter.ixx b/src/GEOMAlgo/GEOMAlgo_WireSplitter.ixx index fa8f559f8..668dcb466 100644 --- a/src/GEOMAlgo/GEOMAlgo_WireSplitter.ixx +++ b/src/GEOMAlgo/GEOMAlgo_WireSplitter.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/GEOMAlgo/GEOMAlgo_WireSplitter.jxx b/src/GEOMAlgo/GEOMAlgo_WireSplitter.jxx index 235db1835..415548656 100644 --- a/src/GEOMAlgo/GEOMAlgo_WireSplitter.jxx +++ b/src/GEOMAlgo/GEOMAlgo_WireSplitter.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Face_HeaderFile #include #endif diff --git a/src/GEOMAlgo/Handle_BlockFix_BlockFixAPI.hxx b/src/GEOMAlgo/Handle_BlockFix_BlockFixAPI.hxx index 12d404dce..9a67a925a 100644 --- a/src/GEOMAlgo/Handle_BlockFix_BlockFixAPI.hxx +++ b/src/GEOMAlgo/Handle_BlockFix_BlockFixAPI.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_BlockFix_BlockFixAPI_HeaderFile #define _Handle_BlockFix_BlockFixAPI_HeaderFile diff --git a/src/GEOMAlgo/Handle_BlockFix_PeriodicSurfaceModifier.hxx b/src/GEOMAlgo/Handle_BlockFix_PeriodicSurfaceModifier.hxx index f0fc8be95..2b0556bab 100644 --- a/src/GEOMAlgo/Handle_BlockFix_PeriodicSurfaceModifier.hxx +++ b/src/GEOMAlgo/Handle_BlockFix_PeriodicSurfaceModifier.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_BlockFix_PeriodicSurfaceModifier_HeaderFile #define _Handle_BlockFix_PeriodicSurfaceModifier_HeaderFile diff --git a/src/GEOMAlgo/Handle_BlockFix_SphereSpaceModifier.hxx b/src/GEOMAlgo/Handle_BlockFix_SphereSpaceModifier.hxx index 8a84637b7..784bc139f 100644 --- a/src/GEOMAlgo/Handle_BlockFix_SphereSpaceModifier.hxx +++ b/src/GEOMAlgo/Handle_BlockFix_SphereSpaceModifier.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_BlockFix_SphereSpaceModifier_HeaderFile #define _Handle_BlockFix_SphereSpaceModifier_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_Clsf.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_Clsf.hxx index 8b9bf2d35..7db50df1d 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_Clsf.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_Clsf.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_Clsf_HeaderFile #define _Handle_GEOMAlgo_Clsf_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_ClsfBox.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_ClsfBox.hxx index b397bddb8..82c8df8b5 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_ClsfBox.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_ClsfBox.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_ClsfBox_HeaderFile #define _Handle_GEOMAlgo_ClsfBox_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_ClsfSolid.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_ClsfSolid.hxx index 8098ce527..ae126bd84 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_ClsfSolid.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_ClsfSolid.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_ClsfSolid_HeaderFile #define _Handle_GEOMAlgo_ClsfSolid_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_ClsfSurf.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_ClsfSurf.hxx index ca42ed917..0dc562e39 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_ClsfSurf.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_ClsfSurf.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_ClsfSurf_HeaderFile #define _Handle_GEOMAlgo_ClsfSurf_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx index 738d8abac..802db426b 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_HeaderFile #define _Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx index 8360ec290..5bce8fb7b 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_HeaderFile #define _Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx index b8439ed91..7d6201498 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_HeaderFile #define _Handle_GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx index f6956a7c1..3d04a64dd 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_HeaderFile #define _Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx index 3a26aeace..4d8ebab5d 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_HeaderFile #define _Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_HAlgo.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_HAlgo.hxx index 861c3e3ea..b267e794e 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_HAlgo.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_HAlgo.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_HAlgo_HeaderFile #define _Handle_GEOMAlgo_HAlgo_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx index d1003aab3..90167a8ef 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_HeaderFile #define _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx index 6a5b8a74c..02eff4be3 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_HeaderFile #define _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx index 019555891..e23bce049 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_HeaderFile #define _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx index 1c53e213a..9576d62eb 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_HeaderFile #define _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx index ef425b4c2..f60329b5d 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Transient) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #ifndef _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_HeaderFile #define _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx index f218abeae..fb305154f 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_HeaderFile #define _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx index 6be59702f..974b6fe64 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_ListNodeOfListOfCoupleOfShapes_HeaderFile #define _Handle_GEOMAlgo_ListNodeOfListOfCoupleOfShapes_HeaderFile diff --git a/src/GEOMAlgo/Handle_GEOMAlgo_ListNodeOfListOfPnt.hxx b/src/GEOMAlgo/Handle_GEOMAlgo_ListNodeOfListOfPnt.hxx index de9397fc9..fc587d37b 100644 --- a/src/GEOMAlgo/Handle_GEOMAlgo_ListNodeOfListOfPnt.hxx +++ b/src/GEOMAlgo/Handle_GEOMAlgo_ListNodeOfListOfPnt.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_GEOMAlgo_ListNodeOfListOfPnt_HeaderFile #define _Handle_GEOMAlgo_ListNodeOfListOfPnt_HeaderFile diff --git a/src/GEOMAlgo/Makefile.am b/src/GEOMAlgo/Makefile.am index b1a0f9609..4f0ddc371 100644 --- a/src/GEOMAlgo/Makefile.am +++ b/src/GEOMAlgo/Makefile.am @@ -1,248 +1,391 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM GEOMAlgo : tools for Glue Faces algorithm -# -# Copyright (C) 2004 CEA -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.in # Author : Julia DOROVSKIKH # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets -lib_LTLIBRARIES = libGEOMAlgo.la +lib_LTLIBRARIES = libGEOMAlgo.la -dist_libGEOMAlgo_la_SOURCES = \ - BlockFix.cxx \ - BlockFix_BlockFixAPI.cxx \ - BlockFix_CheckTool.cxx \ - BlockFix_PeriodicSurfaceModifier.cxx \ - BlockFix_SphereSpaceModifier.cxx \ - BlockFix_UnionEdges.cxx \ - BlockFix_UnionFaces.cxx \ - GEOMAlgo_Algo.cxx \ - GEOMAlgo_Builder_0.cxx \ - GEOMAlgo_Builder_1.cxx \ - GEOMAlgo_Builder_2.cxx \ - GEOMAlgo_Builder_3.cxx \ - GEOMAlgo_Builder_4.cxx \ - GEOMAlgo_BuilderArea.cxx \ - GEOMAlgo_Builder.cxx \ - GEOMAlgo_BuilderFace.cxx \ - GEOMAlgo_BuilderShape.cxx \ - GEOMAlgo_BuilderSolid.cxx \ - GEOMAlgo_BuilderTools.cxx \ - GEOMAlgo_ClsfBox.cxx \ - GEOMAlgo_Clsf.cxx \ - GEOMAlgo_ClsfSurf.cxx \ - GEOMAlgo_CoupleOfShapes.cxx \ - GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger_0.cxx \ - GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape_0.cxx \ - GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal_0.cxx \ - GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet_0.cxx \ - GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_0.cxx \ - GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_0.cxx \ - GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_0.cxx \ - GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_0.cxx \ - GEOMAlgo_DataMapOfPassKeyInteger_0.cxx \ - GEOMAlgo_DataMapOfRealListOfShape_0.cxx \ - GEOMAlgo_DataMapOfShapeReal_0.cxx \ - GEOMAlgo_DataMapOfShapeShapeSet_0.cxx \ - GEOMAlgo_FinderShapeOn1.cxx \ - GEOMAlgo_FinderShapeOn2.cxx \ - GEOMAlgo_FinderShapeOn.cxx \ - GEOMAlgo_FinderShapeOnQuad.cxx \ - GEOMAlgo_GlueAnalyser.cxx \ - GEOMAlgo_Gluer.cxx \ - GEOMAlgo_Gluer1.cxx \ - GEOMAlgo_HAlgo.cxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_0.cxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_0.cxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_0.cxx \ - GEOMAlgo_IndexedDataMapOfIntegerShape_0.cxx \ - GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_0.cxx \ - GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_0.cxx \ - GEOMAlgo_IndexedDataMapOfShapeBox_0.cxx \ - GEOMAlgo_IndexedDataMapOfShapeState_0.cxx \ - GEOMAlgo_ListIteratorOfListOfCoupleOfShapes_0.cxx \ - GEOMAlgo_ListIteratorOfListOfPnt_0.cxx \ - GEOMAlgo_ListNodeOfListOfCoupleOfShapes_0.cxx \ - GEOMAlgo_ListNodeOfListOfPnt_0.cxx \ - GEOMAlgo_ListOfCoupleOfShapes_0.cxx \ - GEOMAlgo_ListOfPnt_0.cxx \ - GEOMAlgo_PassKey.cxx \ - GEOMAlgo_PassKeyMapHasher.cxx \ - GEOMAlgo_PassKeyShape.cxx \ - GEOMAlgo_PassKeyShapeMapHasher.cxx \ - GEOMAlgo_ShapeAlgo.cxx \ - GEOMAlgo_ShapeSet.cxx \ - GEOMAlgo_ShapeSolid.cxx \ - GEOMAlgo_ShellSolid.cxx \ - GEOMAlgo_SolidSolid.cxx \ - GEOMAlgo_Splitter.cxx \ - GEOMAlgo_StateCollector.cxx \ - GEOMAlgo_SurfaceTools.cxx \ - GEOMAlgo_Tools3D.cxx \ - GEOMAlgo_Tools.cxx \ - GEOMAlgo_VertexSolid.cxx \ - GEOMAlgo_WESCorrector.cxx \ - GEOMAlgo_WireEdgeSet.cxx \ - GEOMAlgo_WireSolid.cxx \ - GEOMAlgo_WireSplitter.cxx \ - GEOMAlgo_ClsfSolid.cxx \ - GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_0.cxx \ - GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_0.cxx \ - GEOMAlgo_DataMapOfPassKeyShapeShape_0.cxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_0.cxx \ - GEOMAlgo_ShapeInfoFiller_1.cxx \ - GEOMAlgo_IndexedDataMapOfShapeShapeInfo_0.cxx \ - GEOMAlgo_ShapeInfo.cxx \ +dist_libGEOMAlgo_la_SOURCES = \ + BlockFix.cxx \ + BlockFix_BlockFixAPI.cxx \ + BlockFix_CheckTool.cxx \ + BlockFix_PeriodicSurfaceModifier.cxx \ + BlockFix_SphereSpaceModifier.cxx \ + BlockFix_UnionEdges.cxx \ + BlockFix_UnionFaces.cxx \ + GEOMAlgo_Algo.cxx \ + GEOMAlgo_Builder_0.cxx \ + GEOMAlgo_Builder_1.cxx \ + GEOMAlgo_Builder_2.cxx \ + GEOMAlgo_Builder_3.cxx \ + GEOMAlgo_Builder_4.cxx \ + GEOMAlgo_BuilderArea.cxx \ + GEOMAlgo_Builder.cxx \ + GEOMAlgo_BuilderFace.cxx \ + GEOMAlgo_BuilderShape.cxx \ + GEOMAlgo_BuilderSolid.cxx \ + GEOMAlgo_BuilderTools.cxx \ + GEOMAlgo_ClsfBox.cxx \ + GEOMAlgo_Clsf.cxx \ + GEOMAlgo_ClsfSurf.cxx \ + GEOMAlgo_CoupleOfShapes.cxx \ + GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger_0.cxx \ + GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape_0.cxx \ + GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal_0.cxx \ + GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet_0.cxx \ + GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger_0.cxx \ + GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape_0.cxx \ + GEOMAlgo_DataMapNodeOfDataMapOfShapeReal_0.cxx \ + GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet_0.cxx \ + GEOMAlgo_DataMapOfPassKeyInteger_0.cxx \ + GEOMAlgo_DataMapOfRealListOfShape_0.cxx \ + GEOMAlgo_DataMapOfShapeReal_0.cxx \ + GEOMAlgo_DataMapOfShapeShapeSet_0.cxx \ + GEOMAlgo_FinderShapeOn1.cxx \ + GEOMAlgo_FinderShapeOn2.cxx \ + GEOMAlgo_FinderShapeOn.cxx \ + GEOMAlgo_FinderShapeOnQuad.cxx \ + GEOMAlgo_GlueAnalyser.cxx \ + GEOMAlgo_Gluer.cxx \ + GEOMAlgo_Gluer1.cxx \ + GEOMAlgo_HAlgo.cxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape_0.cxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape_0.cxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState_0.cxx \ + GEOMAlgo_IndexedDataMapOfIntegerShape_0.cxx \ + GEOMAlgo_IndexedDataMapOfPassKeyListOfShape_0.cxx \ + GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape_0.cxx \ + GEOMAlgo_IndexedDataMapOfShapeBox_0.cxx \ + GEOMAlgo_IndexedDataMapOfShapeState_0.cxx \ + GEOMAlgo_ListIteratorOfListOfCoupleOfShapes_0.cxx \ + GEOMAlgo_ListIteratorOfListOfPnt_0.cxx \ + GEOMAlgo_ListNodeOfListOfCoupleOfShapes_0.cxx \ + GEOMAlgo_ListNodeOfListOfPnt_0.cxx \ + GEOMAlgo_ListOfCoupleOfShapes_0.cxx \ + GEOMAlgo_ListOfPnt_0.cxx \ + GEOMAlgo_PassKey.cxx \ + GEOMAlgo_PassKeyMapHasher.cxx \ + GEOMAlgo_PassKeyShape.cxx \ + GEOMAlgo_PassKeyShapeMapHasher.cxx \ + GEOMAlgo_ShapeAlgo.cxx \ + GEOMAlgo_ShapeSet.cxx \ + GEOMAlgo_ShapeSolid.cxx \ + GEOMAlgo_ShellSolid.cxx \ + GEOMAlgo_SolidSolid.cxx \ + GEOMAlgo_Splitter.cxx \ + GEOMAlgo_StateCollector.cxx \ + GEOMAlgo_SurfaceTools.cxx \ + GEOMAlgo_Tools3D.cxx \ + GEOMAlgo_Tools.cxx \ + GEOMAlgo_VertexSolid.cxx \ + GEOMAlgo_WESCorrector.cxx \ + GEOMAlgo_WireEdgeSet.cxx \ + GEOMAlgo_WireSolid.cxx \ + GEOMAlgo_WireSplitter.cxx \ + GEOMAlgo_ClsfSolid.cxx \ + GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_0.cxx \ + GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_0.cxx \ + GEOMAlgo_DataMapOfPassKeyShapeShape_0.cxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_0.cxx \ + GEOMAlgo_ShapeInfoFiller_1.cxx \ + GEOMAlgo_IndexedDataMapOfShapeShapeInfo_0.cxx \ + GEOMAlgo_ShapeInfo.cxx \ GEOMAlgo_ShapeInfoFiller.cxx # header files -salomeinclude_HEADERS = \ - BlockFix_BlockFixAPI.hxx \ - BlockFix_BlockFixAPI.lxx \ - BlockFix_CheckTool.hxx \ - Handle_BlockFix_BlockFixAPI.hxx \ - GEOMAlgo_Algo.hxx \ - GEOMAlgo_BuilderArea.hxx \ - GEOMAlgo_BuilderFace.hxx \ - GEOMAlgo_Builder.hxx \ - GEOMAlgo_BuilderShape.hxx \ - GEOMAlgo_BuilderSolid.hxx \ - GEOMAlgo_BuilderTools.hxx \ - GEOMAlgo_ClsfBox.hxx \ - GEOMAlgo_Clsf.hxx \ - GEOMAlgo_ClsfSurf.hxx \ - GEOMAlgo_CoupleOfShapes.hxx \ - GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger.hxx \ - GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape.hxx \ - GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal.hxx \ - GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet.hxx \ - GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx \ - GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx \ - GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx \ - GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx \ - GEOMAlgo_DataMapOfPassKeyInteger.hxx \ - GEOMAlgo_DataMapOfRealListOfShape.hxx \ - GEOMAlgo_DataMapOfShapeReal.hxx \ - GEOMAlgo_DataMapOfShapeShapeSet.hxx \ - GEOMAlgo_FinderShapeOn1.hxx \ - GEOMAlgo_FinderShapeOn2.hxx \ - GEOMAlgo_FinderShapeOn.hxx \ - GEOMAlgo_FinderShapeOnQuad.hxx \ - GEOMAlgo_GlueAnalyser.hxx \ - GEOMAlgo_Gluer.hxx \ - GEOMAlgo_Gluer.ixx \ - GEOMAlgo_Gluer.jxx \ - GEOMAlgo_Gluer1.hxx \ - GEOMAlgo_Gluer1.ixx \ - GEOMAlgo_Gluer1.jxx \ - GEOMAlgo_HAlgo.hxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx \ - GEOMAlgo_IndexedDataMapOfIntegerShape.hxx \ - GEOMAlgo_IndexedDataMapOfPassKeyListOfShape.hxx \ - GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx \ - GEOMAlgo_IndexedDataMapOfShapeBox.hxx \ - GEOMAlgo_IndexedDataMapOfShapeState.hxx \ - GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx \ - GEOMAlgo_ListIteratorOfListOfPnt.hxx \ - GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx \ - GEOMAlgo_ListNodeOfListOfPnt.hxx \ - GEOMAlgo_ListOfCoupleOfShapes.hxx \ - GEOMAlgo_ListOfPnt.hxx \ - GEOMAlgo_PassKey.hxx \ - GEOMAlgo_PassKeyMapHasher.hxx \ - GEOMAlgo_PassKeyShape.hxx \ - GEOMAlgo_PassKeyShapeMapHasher.hxx \ - GEOMAlgo_PWireEdgeSet.hxx \ - GEOMAlgo_ShapeAlgo.hxx \ - GEOMAlgo_ShapeSet.hxx \ - GEOMAlgo_ShapeSolid.hxx \ - GEOMAlgo_ShellSolid.hxx \ - GEOMAlgo_SolidSolid.hxx \ - GEOMAlgo_Splitter.hxx \ - GEOMAlgo_StateCollector.hxx \ - GEOMAlgo_State.hxx \ - GEOMAlgo_SurfaceTools.hxx \ - GEOMAlgo_Tools3D.hxx \ - GEOMAlgo_Tools.hxx \ - GEOMAlgo_VertexSolid.hxx \ - GEOMAlgo_WESCorrector.hxx \ - GEOMAlgo_WireEdgeSet.hxx \ - GEOMAlgo_WireSolid.hxx \ - GEOMAlgo_WireSplitter.hxx \ - Handle_GEOMAlgo_ClsfBox.hxx \ - Handle_GEOMAlgo_Clsf.hxx \ - Handle_GEOMAlgo_ClsfSurf.hxx \ - Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx \ - Handle_GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx \ - Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx \ - Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx \ - Handle_GEOMAlgo_HAlgo.hxx \ - Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx \ - Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx \ - Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx \ - Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx \ - Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx \ - Handle_GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx \ - Handle_GEOMAlgo_ListNodeOfListOfPnt.hxx - GEOMAlgo_ClsfSolid.hxx \ - GEOMAlgo_ClsfSolid.ixx \ - GEOMAlgo_ClsfSolid.jxx \ - GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx \ - GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx \ - GEOMAlgo_DataMapOfPassKeyShapeShape.hxx \ - GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx \ - GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx \ - GEOMAlgo_KindOfBounds.hxx \ - GEOMAlgo_KindOfClosed.hxx \ - GEOMAlgo_KindOfName.hxx \ - GEOMAlgo_KindOfShape.hxx \ - GEOMAlgo_ShapeInfo.hxx \ - GEOMAlgo_ShapeInfo.ixx \ - GEOMAlgo_ShapeInfo.jxx \ - GEOMAlgo_ShapeInfoFiller.hxx \ - GEOMAlgo_ShapeInfoFiller.ixx \ - GEOMAlgo_ShapeInfoFiller.jxx \ - Handle_GEOMAlgo_ClsfSolid.hxx \ - Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx \ +salomeinclude_HEADERS = \ + BlockFix.hxx \ + BlockFix.ixx \ + BlockFix.jxx \ + BlockFix_BlockFixAPI.hxx \ + BlockFix_BlockFixAPI.ixx \ + BlockFix_BlockFixAPI.jxx \ + BlockFix_BlockFixAPI.lxx \ + BlockFix_CheckTool.hxx \ + BlockFix_CheckTool.ixx \ + BlockFix_CheckTool.jxx \ + BlockFix_PeriodicSurfaceModifier.hxx \ + BlockFix_PeriodicSurfaceModifier.ixx \ + BlockFix_PeriodicSurfaceModifier.jxx \ + BlockFix_SphereSpaceModifier.hxx \ + BlockFix_SphereSpaceModifier.ixx \ + BlockFix_SphereSpaceModifier.jxx \ + BlockFix_UnionEdges.hxx \ + BlockFix_UnionEdges.ixx \ + BlockFix_UnionEdges.jxx \ + BlockFix_UnionFaces.hxx \ + BlockFix_UnionFaces.ixx \ + BlockFix_UnionFaces.jxx \ + Handle_BlockFix_BlockFixAPI.hxx \ + Handle_BlockFix_SphereSpaceModifier.hxx \ + Handle_BlockFix_PeriodicSurfaceModifier.hxx \ + GEOMAlgo_Algo.hxx \ + GEOMAlgo_Algo.ixx \ + GEOMAlgo_Algo.jxx \ + GEOMAlgo_BuilderArea.hxx \ + GEOMAlgo_BuilderArea.ixx \ + GEOMAlgo_BuilderArea.jxx \ + GEOMAlgo_BuilderFace.hxx \ + GEOMAlgo_BuilderFace.ixx \ + GEOMAlgo_BuilderFace.jxx \ + GEOMAlgo_Builder.hxx \ + GEOMAlgo_Builder.ixx \ + GEOMAlgo_Builder.jxx \ + GEOMAlgo_BuilderShape.hxx \ + GEOMAlgo_BuilderShape.ixx \ + GEOMAlgo_BuilderShape.jxx \ + GEOMAlgo_BuilderSolid.hxx \ + GEOMAlgo_BuilderSolid.ixx \ + GEOMAlgo_BuilderSolid.jxx \ + GEOMAlgo_BuilderTools.hxx \ + GEOMAlgo_BuilderTools.ixx \ + GEOMAlgo_BuilderTools.jxx \ + GEOMAlgo_ClsfBox.hxx \ + GEOMAlgo_ClsfBox.ixx \ + GEOMAlgo_ClsfBox.jxx \ + GEOMAlgo_Clsf.hxx \ + GEOMAlgo_Clsf.ixx \ + GEOMAlgo_Clsf.jxx \ + GEOMAlgo_ClsfSurf.hxx \ + GEOMAlgo_ClsfSurf.ixx \ + GEOMAlgo_ClsfSurf.jxx \ + GEOMAlgo_CoupleOfShapes.hxx \ + GEOMAlgo_CoupleOfShapes.ixx \ + GEOMAlgo_CoupleOfShapes.jxx \ + GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyInteger.hxx \ + GEOMAlgo_DataMapIteratorOfDataMapOfRealListOfShape.hxx \ + GEOMAlgo_DataMapIteratorOfDataMapOfShapeReal.hxx \ + GEOMAlgo_DataMapIteratorOfDataMapOfShapeShapeSet.hxx \ + GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx \ + GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx \ + GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx \ + GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx \ + GEOMAlgo_DataMapOfPassKeyInteger.hxx \ + GEOMAlgo_DataMapOfRealListOfShape.hxx \ + GEOMAlgo_DataMapOfShapeReal.hxx \ + GEOMAlgo_DataMapOfShapeShapeSet.hxx \ + GEOMAlgo_FinderShapeOn1.ixx \ + GEOMAlgo_FinderShapeOn1.hxx \ + GEOMAlgo_FinderShapeOn1.jxx \ + GEOMAlgo_FinderShapeOn2.hxx \ + GEOMAlgo_FinderShapeOn2.ixx \ + GEOMAlgo_FinderShapeOn2.jxx \ + GEOMAlgo_FinderShapeOn.hxx \ + GEOMAlgo_FinderShapeOn.ixx \ + GEOMAlgo_FinderShapeOn.jxx \ + GEOMAlgo_FinderShapeOnQuad.hxx \ + GEOMAlgo_GlueAnalyser.hxx \ + GEOMAlgo_GlueAnalyser.ixx \ + GEOMAlgo_GlueAnalyser.jxx \ + GEOMAlgo_Gluer.hxx \ + GEOMAlgo_Gluer.ixx \ + GEOMAlgo_Gluer.jxx \ + GEOMAlgo_Gluer1.hxx \ + GEOMAlgo_Gluer1.ixx \ + GEOMAlgo_Gluer1.jxx \ + GEOMAlgo_HAlgo.hxx \ + GEOMAlgo_HAlgo.ixx \ + GEOMAlgo_HAlgo.jxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx \ + GEOMAlgo_IndexedDataMapOfIntegerShape.hxx \ + GEOMAlgo_IndexedDataMapOfPassKeyListOfShape.hxx \ + GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx \ + GEOMAlgo_IndexedDataMapOfShapeBox.hxx \ + GEOMAlgo_IndexedDataMapOfShapeState.hxx \ + GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx \ + GEOMAlgo_ListIteratorOfListOfPnt.hxx \ + GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx \ + GEOMAlgo_ListNodeOfListOfPnt.hxx \ + GEOMAlgo_ListOfCoupleOfShapes.hxx \ + GEOMAlgo_ListOfPnt.hxx \ + GEOMAlgo_PassKey.hxx \ + GEOMAlgo_PassKey.ixx \ + GEOMAlgo_PassKey.jxx \ + GEOMAlgo_PassKeyMapHasher.hxx \ + GEOMAlgo_PassKeyMapHasher.ixx \ + GEOMAlgo_PassKeyMapHasher.jxx \ + GEOMAlgo_PassKeyShape.hxx \ + GEOMAlgo_PassKeyShape.ixx \ + GEOMAlgo_PassKeyShape.jxx \ + GEOMAlgo_PassKeyShapeMapHasher.hxx \ + GEOMAlgo_PassKeyShapeMapHasher.ixx \ + GEOMAlgo_PassKeyShapeMapHasher.jxx \ + GEOMAlgo_PWireEdgeSet.hxx \ + GEOMAlgo_ShapeAlgo.hxx \ + GEOMAlgo_ShapeAlgo.ixx \ + GEOMAlgo_ShapeAlgo.jxx \ + GEOMAlgo_ShapeSet.hxx \ + GEOMAlgo_ShapeSet.ixx \ + GEOMAlgo_ShapeSet.jxx \ + GEOMAlgo_ShapeSolid.hxx \ + GEOMAlgo_ShapeSolid.ixx \ + GEOMAlgo_ShapeSolid.jxx \ + GEOMAlgo_ShellSolid.hxx \ + GEOMAlgo_ShellSolid.ixx \ + GEOMAlgo_ShellSolid.jxx \ + GEOMAlgo_SolidSolid.hxx \ + GEOMAlgo_SolidSolid.ixx \ + GEOMAlgo_SolidSolid.jxx \ + GEOMAlgo_Splitter.hxx \ + GEOMAlgo_Splitter.ixx \ + GEOMAlgo_Splitter.jxx \ + GEOMAlgo_StateCollector.hxx \ + GEOMAlgo_StateCollector.ixx \ + GEOMAlgo_StateCollector.jxx \ + GEOMAlgo_State.hxx \ + GEOMAlgo_SurfaceTools.hxx \ + GEOMAlgo_SurfaceTools.ixx \ + GEOMAlgo_SurfaceTools.jxx \ + GEOMAlgo_Tools3D.hxx \ + GEOMAlgo_Tools3D.ixx \ + GEOMAlgo_Tools3D.jxx \ + GEOMAlgo_Tools.hxx \ + GEOMAlgo_Tools.ixx \ + GEOMAlgo_Tools.jxx \ + GEOMAlgo_VertexSolid.hxx \ + GEOMAlgo_VertexSolid.ixx \ + GEOMAlgo_VertexSolid.jxx \ + GEOMAlgo_WESCorrector.hxx \ + GEOMAlgo_WESCorrector.ixx \ + GEOMAlgo_WESCorrector.jxx \ + GEOMAlgo_WireEdgeSet.hxx \ + GEOMAlgo_WireEdgeSet.ixx \ + GEOMAlgo_WireEdgeSet.jxx \ + GEOMAlgo_WireSolid.hxx \ + GEOMAlgo_WireSolid.ixx \ + GEOMAlgo_WireSolid.jxx \ + GEOMAlgo_WireSplitter.hxx \ + GEOMAlgo_WireSplitter.ixx \ + GEOMAlgo_WireSplitter.jxx \ + Handle_GEOMAlgo_ClsfBox.hxx \ + Handle_GEOMAlgo_Clsf.hxx \ + Handle_GEOMAlgo_ClsfSurf.hxx \ + Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyInteger.hxx \ + Handle_GEOMAlgo_DataMapNodeOfDataMapOfRealListOfShape.hxx \ + Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeReal.hxx \ + Handle_GEOMAlgo_DataMapNodeOfDataMapOfShapeShapeSet.hxx \ + Handle_GEOMAlgo_HAlgo.hxx \ + Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx \ + Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyListOfShape.hxx \ + Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfPassKeyShapeListOfShape.hxx \ + Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx \ + Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeState.hxx \ + Handle_GEOMAlgo_ListNodeOfListOfCoupleOfShapes.hxx \ + Handle_GEOMAlgo_ListNodeOfListOfPnt.hxx \ + GEOMAlgo_ClsfSolid.hxx \ + GEOMAlgo_ClsfSolid.ixx \ + GEOMAlgo_ClsfSolid.jxx \ + GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx \ + GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx \ + GEOMAlgo_DataMapOfPassKeyShapeShape.hxx \ + GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx \ + GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx \ + GEOMAlgo_KindOfBounds.hxx \ + GEOMAlgo_KindOfClosed.hxx \ + GEOMAlgo_KindOfName.hxx \ + GEOMAlgo_KindOfShape.hxx \ + GEOMAlgo_ShapeInfo.hxx \ + GEOMAlgo_ShapeInfo.ixx \ + GEOMAlgo_ShapeInfo.jxx \ + GEOMAlgo_ShapeInfoFiller.hxx \ + GEOMAlgo_ShapeInfoFiller.ixx \ + GEOMAlgo_ShapeInfoFiller.jxx \ + Handle_GEOMAlgo_ClsfSolid.hxx \ + Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx \ Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx -libGEOMAlgo_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - -I$(srcdir)/../NMTDS \ +libGEOMAlgo_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + -I$(srcdir)/../NMTDS \ -I$(srcdir)/../NMTTools -libGEOMAlgo_la_LDFLAGS = \ - ../NMTTools/libNMTTools.la \ - $(STDLIB) \ +libGEOMAlgo_la_LDFLAGS = \ + ../NMTTools/libNMTTools.la \ + $(STDLIB) \ $(CAS_LDPATH) -lTKBO -lTKShHealing -lTKBool -lTKMesh + +# extra distributed files +CDL_FILES = \ + BlockFix.cdl \ + BlockFix_BlockFixAPI.cdl \ + BlockFix_CheckTool.cdl \ + BlockFix_PeriodicSurfaceModifier.cdl \ + BlockFix_SphereSpaceModifier.cdl \ + BlockFix_UnionEdges.cdl \ + BlockFix_UnionFaces.cdl \ + GEOMAlgo.cdl \ + GEOMAlgo_Algo.cdl \ + GEOMAlgo_Builder.cdl \ + GEOMAlgo_BuilderArea.cdl \ + GEOMAlgo_BuilderFace.cdl \ + GEOMAlgo_BuilderShape.cdl \ + GEOMAlgo_BuilderSolid.cdl \ + GEOMAlgo_BuilderTools.cdl \ + GEOMAlgo_Clsf.cdl \ + GEOMAlgo_ClsfBox.cdl \ + GEOMAlgo_ClsfSolid.cdl \ + GEOMAlgo_ClsfSurf.cdl \ + GEOMAlgo_CoupleOfShapes.cdl \ + GEOMAlgo_FinderShapeOn.cdl \ + GEOMAlgo_FinderShapeOn1.cdl \ + GEOMAlgo_FinderShapeOn2.cdl \ + GEOMAlgo_GlueAnalyser.cdl \ + GEOMAlgo_Gluer.cdl \ + GEOMAlgo_Gluer1.cdl \ + GEOMAlgo_HAlgo.cdl \ + GEOMAlgo_PassKey.cdl \ + GEOMAlgo_PassKeyMapHasher.cdl \ + GEOMAlgo_PassKeyShape.cdl \ + GEOMAlgo_PassKeyShapeMapHasher.cdl \ + GEOMAlgo_ShapeAlgo.cdl \ + GEOMAlgo_ShapeInfo.cdl \ + GEOMAlgo_ShapeInfoFiller.cdl \ + GEOMAlgo_ShapeSet.cdl \ + GEOMAlgo_ShapeSolid.cdl \ + GEOMAlgo_ShellSolid.cdl \ + GEOMAlgo_SolidSolid.cdl \ + GEOMAlgo_Splitter.cdl \ + GEOMAlgo_StateCollector.cdl \ + GEOMAlgo_SurfaceTools.cdl \ + GEOMAlgo_Tools.cdl \ + GEOMAlgo_Tools3D.cdl \ + GEOMAlgo_VertexSolid.cdl \ + GEOMAlgo_WESCorrector.cdl \ + GEOMAlgo_WireEdgeSet.cdl \ + GEOMAlgo_WireSolid.cdl \ + GEOMAlgo_WireSplitter.cdl + +EXTRA_DIST += $(CDL_FILES) diff --git a/src/GEOMBase/GEOMBase.cxx b/src/GEOMBase/GEOMBase.cxx index 230515df9..e34e4587f 100644 --- a/src/GEOMBase/GEOMBase.cxx +++ b/src/GEOMBase/GEOMBase.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,45 +17,35 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMBase.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : GEOMBase.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "GEOMBase.h" -#include "GeometryGUI.h" -#include "GEOMBase_aParameterDlg.h" -#include "GEOM_Client.hxx" +#include +#include //// SALOME Includes -#include "Utils_ORB_INIT.hxx" -#include "Utils_SINGLETON.hxx" +#include +#include +#include +#include +#include +#include -#include "SALOME_LifeCycleCORBA.hxx" +#include +#include -#include "GEOM_AssemblyBuilder.h" -#include "GEOM_Actor.h" -#include "SVTK_RenderWindowInteractor.h" -#include "SVTK_ViewModel.h" -#include "SVTK_ViewWindow.h" -#include "OCCViewer_ViewPort3d.h" -#include "OCCViewer_ViewModel.h" -#include "OCCViewer_ViewWindow.h" - -#include "SALOME_ListIO.hxx" -#include "SALOME_ListIteratorOfListIO.hxx" -#include "GEOM_AISTrihedron.hxx" - -#include "SUIT_Session.h" -#include "SUIT_ViewWindow.h" -#include "SUIT_MessageBox.h" -#include "SalomeApp_Application.h" -#include "SalomeApp_Study.h" +#include +#include +#include +#include +#include +#include +#include // // Open CASCADE Includes #include @@ -63,34 +53,20 @@ #include #include -#include #include #include #include #include -#include -#include -#include -#include -#include #include +#include #include #include -#include -#include #include -#include "GEOMImpl_Types.hxx" - -using namespace std; - -#include "SALOMEDSClient.hxx" - - //===================================================================================== // function : GetShapeFromIOR() // purpose : exist also as static method ! @@ -98,10 +74,10 @@ using namespace std; TopoDS_Shape GEOMBase::GetShapeFromIOR(QString IOR) { TopoDS_Shape result; - if(IOR.stripWhiteSpace().isEmpty()) + if(IOR.trimmed().isEmpty()) return result; - CORBA::Object_var obj = SalomeApp_Application::orb()->string_to_object((char*)(IOR.latin1())); + CORBA::Object_var obj = SalomeApp_Application::orb()->string_to_object(IOR.toLatin1().data()); if(CORBA::is_nil(obj)) return result; GEOM::GEOM_Object_var GeomObject = GEOM::GEOM_Object::_narrow( obj ); @@ -227,55 +203,55 @@ bool GEOMBase::GetShapeTypeString(const TopoDS_Shape& aShape, Standard_CString& { case TopAbs_COMPOUND: { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_COMPOUND")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_COMPOUND").toLatin1().constData()); return true; } case TopAbs_COMPSOLID: { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_COMPOUNDSOLID")) ; + aTypeString = CORBA::string_dup(QObject::tr("GEOM_COMPOUNDSOLID").toLatin1().constData()) ; return true ; } case TopAbs_SOLID: { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_SOLID")) ; + aTypeString = CORBA::string_dup(QObject::tr("GEOM_SOLID").toLatin1().constData()) ; return true ; } case TopAbs_SHELL: { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_SHELL")) ; + aTypeString = CORBA::string_dup(QObject::tr("GEOM_SHELL").toLatin1().constData()) ; return true ; } case TopAbs_FACE: { BRepAdaptor_Surface surf(TopoDS::Face(aShape)); if(surf.GetType() == GeomAbs_Plane) { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_PLANE")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_PLANE").toLatin1().constData()); return true; } else if(surf.GetType() == GeomAbs_Cylinder) { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_SURFCYLINDER")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_SURFCYLINDER").toLatin1().constData()); return true; } else if(surf.GetType() == GeomAbs_Sphere) { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_SURFSPHERE")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_SURFSPHERE").toLatin1().constData()); return true ; } else if(surf.GetType() == GeomAbs_Torus) { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_SURFTORUS")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_SURFTORUS").toLatin1().constData()); return true ; } else if(surf.GetType() == GeomAbs_Cone) { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_SURFCONE")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_SURFCONE").toLatin1().constData()); return true ; } else { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_FACE")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_FACE").toLatin1().constData()); return true; } } case TopAbs_WIRE: { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_WIRE")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_WIRE").toLatin1().constData()); return true; } case TopAbs_EDGE: @@ -283,31 +259,31 @@ bool GEOMBase::GetShapeTypeString(const TopoDS_Shape& aShape, Standard_CString& BRepAdaptor_Curve curv(TopoDS::Edge(aShape)); if(curv.GetType() == GeomAbs_Line) { if((Abs(curv.FirstParameter()) >= 1E6) || (Abs(curv.LastParameter()) >= 1E6)) - aTypeString = CORBA::string_dup(QObject::tr("GEOM_LINE")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_LINE").toLatin1().constData()); else - aTypeString = CORBA::string_dup(QObject::tr("GEOM_EDGE")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_EDGE").toLatin1().constData()); return true; } else if(curv.GetType() == GeomAbs_Circle) { if(curv.IsClosed()) - aTypeString = CORBA::string_dup(QObject::tr("GEOM_CIRCLE")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_CIRCLE").toLatin1().constData()); else - aTypeString = CORBA::string_dup(QObject::tr("GEOM_ARC")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_ARC").toLatin1().constData()); return true; } else { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_EDGE")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_EDGE").toLatin1().constData()); return true; } } case TopAbs_VERTEX: { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_VERTEX")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_VERTEX").toLatin1().constData()); return true; } case TopAbs_SHAPE: { - aTypeString = CORBA::string_dup(QObject::tr("GEOM_SHAPE")); + aTypeString = CORBA::string_dup(QObject::tr("GEOM_SHAPE").toLatin1().constData()); return true; } } @@ -332,11 +308,13 @@ Handle(GEOM_AISShape) GEOMBase::ConvertIORinGEOMAISShape(const char * IOR, Stand if ( !anObj ) return resultShape; - QPtrList aViewWindowsList = SUIT_Session::session()->activeApplication()->desktop()->windows(); + QList aViewWindowsList = SUIT_Session::session()->activeApplication()->desktop()->windows(); - for ( QPtrListIterator it( aViewWindowsList ); it.current(); ++it ) { - if (it.current()->getViewManager()->getType() == OCCViewer_Viewer::Type()) { - Handle (AIS_InteractiveContext) ic = ((OCCViewer_Viewer*)it.current()->getViewManager()->getViewModel())->getAISContext(); + QListIterator it( aViewWindowsList ); + while ( it.hasNext() ) { + SUIT_ViewWindow* aVW = it.next(); + if (aVW && aVW->getViewManager()->getType() == OCCViewer_Viewer::Type()) { + Handle (AIS_InteractiveContext) ic = ((OCCViewer_Viewer*)aVW->getViewManager()->getViewModel())->getAISContext(); AIS_ListOfInteractive List; ic->DisplayedObjects(List); @@ -352,7 +330,7 @@ Handle(GEOM_AISShape) GEOMBase::ConvertIORinGEOMAISShape(const char * IOR, Stand Handle(SALOME_InteractiveObject) GIO = Handle(SALOME_InteractiveObject)::DownCast(aSh->getIO()); if(GIO->hasEntry() && strcmp(GIO->getEntry(), anObj->GetID().c_str()) == 0) { if(!onlyInActiveView || - it.current() == SUIT_Session::session()->activeApplication()->desktop()->activeWindow()) { + aVW == SUIT_Session::session()->activeApplication()->desktop()->activeWindow()) { testResult = true; resultShape = aSh; return resultShape; @@ -384,11 +362,13 @@ GEOM_Actor* GEOMBase::ConvertIORinGEOMActor(const char* IOR, Standard_Boolean& t if ( !anObj ) return GEOM_Actor::New(); - QPtrList aViewWindowsList = SUIT_Session::session()->activeApplication()->desktop()->windows(); + QList aViewWindowsList = SUIT_Session::session()->activeApplication()->desktop()->windows(); - for ( QPtrListIterator it( aViewWindowsList ); it.current(); ++it ) { - if (it.current()->getViewManager()->getType() == SVTK_Viewer::Type()) { - SVTK_ViewWindow* aVTKViewWindow = dynamic_cast( it.current() ); + QListIterator it( aViewWindowsList ); + while ( it.hasNext() ) { + SUIT_ViewWindow* aVW = it.next(); + if (aVW && aVW->getViewManager()->getType() == SVTK_Viewer::Type()) { + SVTK_ViewWindow* aVTKViewWindow = dynamic_cast( aVW ); if( !aVTKViewWindow ) continue; vtkRenderer* Renderer = aVTKViewWindow->getRenderer(); @@ -402,7 +382,7 @@ GEOM_Actor* GEOMBase::ConvertIORinGEOMActor(const char* IOR, Standard_Boolean& t Handle(SALOME_InteractiveObject) GIO = Handle(SALOME_InteractiveObject)::DownCast(anActor->getIO()); if(GIO->hasEntry() && strcmp(GIO->getEntry(), anObj->GetID().c_str()) == 0) { if(!onlyInActiveView || - it.current() == SUIT_Session::session()->activeApplication()->desktop()->activeWindow()) { + aVW == SUIT_Session::session()->activeApplication()->desktop()->activeWindow()) { testResult = true; return anActor; } @@ -427,12 +407,14 @@ Handle(AIS_InteractiveObject) GEOMBase::GetAIS( const Handle(SALOME_InteractiveO if ( theIO.IsNull() || !theIO->hasEntry() ) return Handle(AIS_InteractiveObject)(); - QPtrList aViewWindowsList = SUIT_Session::session()->activeApplication()->desktop()->windows(); + QList aViewWindowsList = SUIT_Session::session()->activeApplication()->desktop()->windows(); - for ( QPtrListIterator it( aViewWindowsList ); it.current(); ++it ) { - if (it.current()->getViewManager()->getType() != OCCViewer_Viewer::Type()) + QListIterator it( aViewWindowsList ); + while ( it.hasNext() ) { + SUIT_ViewWindow* aVW = it.next(); + if (!aVW || aVW->getViewManager()->getType() != OCCViewer_Viewer::Type()) continue; - Handle (AIS_InteractiveContext) anIC = ((OCCViewer_Viewer*)it.current()->getViewManager()->getViewModel())->getAISContext(); + Handle (AIS_InteractiveContext) anIC = ((OCCViewer_Viewer*)aVW->getViewManager()->getViewModel())->getAISContext(); AIS_ListOfInteractive aList; anIC->DisplayedObjects( aList ); @@ -448,7 +430,7 @@ Handle(AIS_InteractiveObject) GEOMBase::GetAIS( const Handle(SALOME_InteractiveO { if( isOnlyInActiveView ) { - if ( it.current() == SUIT_Session::session()->activeApplication()->desktop()->activeWindow() ) + if ( aVW == SUIT_Session::session()->activeApplication()->desktop()->activeWindow() ) return anIter.Value(); } else @@ -475,11 +457,13 @@ Handle(GEOM_AISShape) GEOMBase::ConvertIOinGEOMAISShape(const Handle(SALOME_Inte return res; } - QPtrList aViewWindowsList = SUIT_Session::session()->activeApplication()->desktop()->windows(); + QList aViewWindowsList = SUIT_Session::session()->activeApplication()->desktop()->windows(); - for ( QPtrListIterator it( aViewWindowsList ); it.current(); ++it ) { - if (it.current()->getViewManager()->getType() == OCCViewer_Viewer::Type()) { - Handle (AIS_InteractiveContext) ic = ((OCCViewer_Viewer*)it.current()->getViewManager()->getViewModel())->getAISContext(); + QListIterator it( aViewWindowsList ); + while ( it.hasNext() ) { + SUIT_ViewWindow* aVW = it.next(); + if (aVW && aVW->getViewManager()->getType() == OCCViewer_Viewer::Type()) { + Handle (AIS_InteractiveContext) ic = ((OCCViewer_Viewer*)aVW->getViewManager()->getViewModel())->getAISContext(); AIS_ListOfInteractive List; ic->DisplayedObjects(List); @@ -499,7 +483,7 @@ Handle(GEOM_AISShape) GEOMBase::ConvertIOinGEOMAISShape(const Handle(SALOME_Inte { if(onlyInActiveView) { - if(it.current() == SUIT_Session::session()->activeApplication()->desktop()->activeWindow()) + if(aVW == SUIT_Session::session()->activeApplication()->desktop()->activeWindow()) { testResult = true; return aSh; @@ -753,34 +737,6 @@ bool GEOMBase::LinearEdgeExtremities(const TopoDS_Shape& S, gp_Pnt& P1, gp_Pnt& } -//======================================================================= -// function : Parameter() -// purpose : return a parameter (float) from a dialog box -// -// avalue1 : is a float or integer used as a default value displayed -// aTitle1 : is the title for aValue1 -// aTitle : is the main title -// bottom : maximum value to be entered -// top : minimum value to be entered -// decimals : number of decimals -//======================================================================= -double GEOMBase::Parameter(Standard_Boolean& res, const char* aValue1, const char* aTitle1, const char* aTitle, const double bottom, const double top, const int decimals) -{ - GEOMBase_aParameterDlg * Dialog = new GEOMBase_aParameterDlg(aValue1, aTitle1, SUIT_Session::session()->activeApplication()->desktop(), - aTitle, TRUE, 0, bottom, top, decimals); - int r = Dialog->exec(); - float X = 0.0; - if(r == QDialog::Accepted) { - res = Standard_True; - X = Dialog->getValue(); - } - else - res = Standard_False; - delete Dialog; - return X; -} - - //======================================================================= // function : SelectionByNameInDialogs() // purpose : Called when user has entered a name of object in a LineEdit. @@ -795,13 +751,13 @@ bool GEOMBase::SelectionByNameInDialogs(QWidget* aWidget, const QString& objectU _PTR(Study) ST = appStudy->studyDS(); std::vector<_PTR(SObject)> listSO; - listSO = ST->FindObjectByName(objectUserName.latin1(), "GEOM"); + listSO = ST->FindObjectByName(objectUserName.toStdString(), "GEOM"); if(listSO.size() < 1) { const QString caption = QObject::tr("GEOM_WRN_WARNING"); const QString text = QObject::tr("GEOM_NAME_INCORRECT"); const QString button0 = QObject::tr("GEOM_BUT_OK"); - SUIT_MessageBox::error1(aWidget, caption, text, button0); + SUIT_MessageBox::critical(aWidget, caption, text, button0); return false; } /* More than one object with same name */ @@ -809,14 +765,14 @@ bool GEOMBase::SelectionByNameInDialogs(QWidget* aWidget, const QString& objectU const QString caption = QObject::tr("GEOM_WRN_WARNING"); const QString text = QObject::tr("GEOM_IDENTICAL_NAMES_SELECT_BY_MOUSE"); const QString button0 = QObject::tr("GEOM_BUT_OK") ; - SUIT_MessageBox::error1(aWidget, caption, text, button0) ; + SUIT_MessageBox::critical(aWidget, caption, text, button0) ; listSO.clear(); return false; } _PTR(SObject) theObj ( listSO[0] ); /* Create a SALOME_InteractiveObject with a SALOME::SObject */ - char* aCopyobjectUserName = CORBA::string_dup(objectUserName); + char* aCopyobjectUserName = CORBA::string_dup(objectUserName.toLatin1().constData()); Handle(SALOME_InteractiveObject) SI = new SALOME_InteractiveObject(theObj->GetID().c_str(), "GEOM", aCopyobjectUserName); delete(aCopyobjectUserName); @@ -873,7 +829,7 @@ QString GEOMBase::GetDefaultName(const QString& theOperation) bool isUnique = false; while (!isUnique) { aName = theOperation + "_" + QString::number(++aNumber); - isUnique = (aSet.count(aName.latin1()) == 0); + isUnique = (aSet.count(aName.toStdString()) == 0); } return aName; @@ -891,12 +847,12 @@ void GEOMBase::ShowErrorMessage(const char* theErrorCode, const char* theComment QString aText = ""; if (!anErrorCode.isEmpty()) - aText.append("\n" + QObject::tr(anErrorCode)); + aText.append("\n" + QObject::tr(anErrorCode.toLatin1().constData())); if (!aComment.isEmpty()) aText.append("\n" + QString(theComment)); - SUIT_MessageBox::error1( SUIT_Session::session()->activeApplication()->desktop(), QObject::tr( "GEOM_ERROR" ), - QObject::tr("GEOM_PRP_ABORT") + aText, "OK" ); + SUIT_MessageBox::critical( SUIT_Session::session()->activeApplication()->desktop(), QObject::tr( "GEOM_ERROR" ), + QObject::tr("GEOM_PRP_ABORT") + aText, "OK" ); } @@ -957,7 +913,7 @@ QString GEOMBase::GetName( GEOM::GEOM_Object_ptr theObj ) CORBA::String_var anIOR = SalomeApp_Application::orb()->object_to_string( theObj ); if ( strcmp(anIOR.in(), "") != 0 ) { - _PTR(SObject) aSObj ( appStudy->studyDS()->FindObjectIOR( string( anIOR ) ) ); + _PTR(SObject) aSObj ( appStudy->studyDS()->FindObjectIOR( std::string( anIOR ) ) ); _PTR(GenericAttribute) anAttr; diff --git a/src/GEOMBase/GEOMBase.h b/src/GEOMBase/GEOMBase.h index ff3feecbb..360fd1318 100644 --- a/src/GEOMBase/GEOMBase.h +++ b/src/GEOMBase/GEOMBase.h @@ -1,37 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMBase.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// File : GEOMBase.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef GEOMBASE_H #define GEOMBASE_H #include "GEOM_GEOMBase.hxx" // SALOME Includes -#include "GEOM_AISShape.hxx" +#include // IDL Headers #include @@ -40,11 +38,10 @@ #include CORBA_SERVER_HEADER(GEOM_Gen) // QT Includes -#include +#include class GEOM_Actor; class SALOME_ListIO; -class TColStd_MapOfInteger; class QWidget; @@ -101,12 +98,6 @@ public : static bool LinearEdgeExtremities(const TopoDS_Shape& S, gp_Pnt& P1, gp_Pnt& P2); static void GetBipointDxDyDz(gp_Pnt P1, gp_Pnt P2, double& dx, double& dy, double& dz); - /* User dialog 1 parameter returned */ - static double Parameter(Standard_Boolean& res, - const char* aValue1 = 0, const char* aTitle1 = 0, - const char* aTitle = 0, const double bottom = -1E6, - const double top = +1E6, const int decimals = 6); - /* Simulation management */ static bool CreateArrowForLinearEdge(const TopoDS_Shape& tds, TopoDS_Shape& ArrowCone); @@ -127,4 +118,4 @@ public : static bool IsShape(GEOM::GEOM_Object_ptr theObj); }; -#endif +#endif // GEOMBASE_H diff --git a/src/GEOMBase/GEOMBase.pro b/src/GEOMBase/GEOMBase.pro new file mode 100644 index 000000000..bd3592ae0 --- /dev/null +++ b/src/GEOMBase/GEOMBase.pro @@ -0,0 +1,76 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GEOMBase +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +GUI_LDFLAGS = -L$$(GUI_ROOT_DIR)/lib/salome + +CAS_LDPATH = -L$${CASROOT}/Linux/lib + +INCLUDEPATH += $${QT_INCLUDES} $${VTK_INCLUDES} $${CAS_CPPFLAGS} $${PYTHON_INCLUDES} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} $${CORBA_INCLUDES} ../OBJECT ../GEOMClient ../GEOMImpl ../GEOMGUI ../DlgRef $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/idl -lSalomeIDLGEOM -L$$(GEOM_ROOT_DIR)/lib -lGEOM -lDlgRef $${KERNEL_LDFLAGS} -lOpUtil $${GUI_LDFLAGS} -lsuit -lOCCViewer -lVTKViewer -lSVTK -lSalomePrs -lSalomeApp -lCAM $${CAS_LDPATH} -lTKPrim + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += GEOMBASE_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +HEADERS = GEOMBase.h +HEADERS += GEOMBase_Skeleton.h +HEADERS += GEOMBase_Helper.h +HEADERS += GEOM_Operation.h +HEADERS += GEOM_GEOMBase.hxx + +SOURCES = GEOMBase.cxx +SOURCES += GEOMBase_Skeleton.cxx +SOURCES += GEOMBase_aParameterDlg.cxx +SOURCES += GEOMBase_Helper.cxx +SOURCES += GEOM_Operation.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/GEOMBase/GEOMBase_Helper.cxx b/src/GEOMBase/GEOMBase_Helper.cxx index d62fc63cd..326998aed 100755 --- a/src/GEOMBase/GEOMBase_Helper.cxx +++ b/src/GEOMBase/GEOMBase_Helper.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,26 +17,23 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMBase_Helper.cxx +// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com) // -// -// File : GEOMBase_Helper.cxx -// Author : Sergey ANIKIN -// Module : GEOM -// $Header$ - -#include - #include "GEOMBase_Helper.h" #include "GEOMBase.h" #include "GEOM_Operation.h" -#include "GeometryGUI.h" -#include "GEOM_Displayer.h" -#include "GEOMImpl_Types.hxx" +#include + +#include #include +#include #include +#include #include #include @@ -46,21 +43,15 @@ #include #include #include -#include + +#include #include #include -#include - #include #include -using namespace std; - -#include - - //================================================================ // Function : getActiveView // Purpose : Get active view window, returns 0 if no open study frame @@ -171,9 +162,9 @@ void GEOMBase_Helper::erase( const ObjectList& objList, const bool updateView ) void GEOMBase_Helper::erase( GEOM::GEOM_Object_ptr object, const bool updateView ) { if ( !object->_is_nil() ) { - string entry = getEntry( object ); + std::string entry = getEntry( object ); getDisplayer()->Erase( new SALOME_InteractiveObject( - entry.c_str(), "GEOM", strdup( GEOMBase::GetName( object ) ) ), true, updateView ); + entry.c_str(), "GEOM", strdup( GEOMBase::GetName( object ).toLatin1().constData() ) ), true, updateView ); } } @@ -210,9 +201,9 @@ void GEOMBase_Helper::redisplay( GEOM::GEOM_Object_ptr object, // Enable activisation of selection getDisplayer()->SetToActivate( true ); - string entry = getEntry( object ); + std::string entry = getEntry( object ); getDisplayer()->Redisplay(new SALOME_InteractiveObject - (entry.c_str(), "GEOM", strdup(GEOMBase::GetName(object))), false); + (entry.c_str(), "GEOM", strdup(GEOMBase::GetName(object).toLatin1().constData())), false); } if ( withChildren ) { @@ -220,7 +211,7 @@ void GEOMBase_Helper::redisplay( GEOM::GEOM_Object_ptr object, if ( aDoc && aDoc->studyDS() ) { _PTR(Study) aStudy = aDoc->studyDS(); CORBA::String_var objStr = SalomeApp_Application::orb()->object_to_string(object); - _PTR(SObject) aSObj (aStudy->FindObjectIOR(string(objStr.in()))); + _PTR(SObject) aSObj (aStudy->FindObjectIOR(std::string(objStr.in()))); if ( aSObj ) { _PTR(ChildIterator) anIt ( aStudy->NewChildIterator( aSObj ) ); for ( anIt->InitEx( true ); anIt->More(); anIt->Next() ) { @@ -228,9 +219,9 @@ void GEOMBase_Helper::redisplay( GEOM::GEOM_Object_ptr object, (GeometryGUI::ClientSObjectToObject(anIt->Value())); if ( !CORBA::is_nil( aChild ) ) { if ( !aChild->_is_nil() ) { - string entry = getEntry( aChild ); + std::string entry = getEntry( aChild ); getDisplayer()->Redisplay( new SALOME_InteractiveObject( - entry.c_str(), "GEOM", strdup( GEOMBase::GetName( aChild ) ) ), false ); + entry.c_str(), "GEOM", strdup( GEOMBase::GetName( aChild ).toLatin1().constData() ) ), false ); } } } @@ -449,10 +440,10 @@ void GEOMBase_Helper::localSelection( const ObjectList& theObjs, const int theMo GEOM::GEOM_Object_ptr anObj = *anIter; if ( anObj->_is_nil() ) continue; - string aEntry = getEntry( anObj ); + std::string aEntry = getEntry( anObj ); if ( aEntry != "" ) aListOfIO.Append( new SALOME_InteractiveObject( - aEntry.c_str(), "GEOM", strdup( GEOMBase::GetName( anObj ) ) ) ); + aEntry.c_str(), "GEOM", strdup( GEOMBase::GetName( anObj ).toLatin1().constData() ) ) ); } getDisplayer()->LocalSelection( aListOfIO, theMode ); @@ -498,6 +489,18 @@ void GEOMBase_Helper::globalSelection( const TColStd_MapOfInteger& theModes, getDisplayer()->GlobalSelection( theModes, update ); } +//================================================================ +// Function : globalSelection +// Purpose : Activate selection of subshapes. Set selection filters +// in accordance with mode. theMode is from GEOMImpl_Types +//================================================================ +void GEOMBase_Helper::globalSelection( const TColStd_MapOfInteger& theModes, + const QList& subShapes, + const bool update ) +{ + getDisplayer()->GlobalSelection( theModes, update, &subShapes ); +} + //================================================================ // Function : addInStudy // Purpose : Add object in study @@ -511,10 +514,33 @@ void GEOMBase_Helper::addInStudy( GEOM::GEOM_Object_ptr theObj, const char* theN if ( !aStudy || theObj->_is_nil() ) return; + SALOMEDS::Study_var aStudyDS = GeometryGUI::ClientStudyToStudy(aStudy); + GEOM::GEOM_Object_ptr aFatherObj = getFather( theObj ); - getGeomEngine()->AddInStudy(GeometryGUI::ClientStudyToStudy(aStudy), - theObj, theName, aFatherObj); + SALOMEDS::SObject_var aSO = + getGeomEngine()->AddInStudy(aStudyDS, theObj, theName, aFatherObj); + + // Each dialog is responsible for this method implementation, + // default implementation does nothing + restoreSubShapes(aStudyDS, aSO); +} + +//================================================================ +// Function : restoreSubShapes +// Purpose : restore tree of argument's sub-shapes under the resulting shape +//================================================================ +void GEOMBase_Helper::restoreSubShapes (SALOMEDS::Study_ptr /*theStudy*/, + SALOMEDS::SObject_ptr /*theSObject*/) +{ + // do nothing by default + + // example of implementation in particular dialog: + // GEOM::ListOfGO anArgs; + // anArgs.length(0); // empty list means that all arguments should be restored + // getGeomEngine()->RestoreSubShapesSO(theStudy, theSObject, anArgs, + // /*theFindMethod=*/GEOM::FSM_GetInPlace, + // /*theInheritFirstArg=*/false); } //================================================================ @@ -565,13 +591,14 @@ SalomeApp_Study* GEOMBase_Helper::getStudy() const if (!aDesktop) return 0; - QPtrList anAppList = SUIT_Session::session()->applications(); + QList anAppList = SUIT_Session::session()->applications(); SUIT_Application* anApp = 0; - for ( QPtrListIterator it( anAppList ); it.current() ; ++it ) + QListIterator it( anAppList ); + while ( it.hasNext() ) { - anApp = it.current(); - if ( anApp->desktop() == aDesktop ) + anApp = it.next(); + if ( anApp && anApp->desktop() == aDesktop ) break; } @@ -587,12 +614,12 @@ char* GEOMBase_Helper::getEntry( GEOM::GEOM_Object_ptr object ) const SalomeApp_Study* study = getStudy(); if ( study ) { char * objIOR = GEOMBase::GetIORFromObject( object ); - string IOR( objIOR ); + std::string IOR( objIOR ); free( objIOR ); if ( IOR != "" ) { _PTR(SObject) SO ( study->studyDS()->FindObjectIOR( IOR ) ); if ( SO ) { - return TCollection_AsciiString((char*)SO->GetID().c_str()).ToCString(); + return (char*) TCollection_AsciiString((char*)SO->GetID().c_str()).ToCString(); } } } @@ -627,7 +654,7 @@ void GEOMBase_Helper::clearShapeBuffer( GEOM::GEOM_Object_ptr theObj ) return; _PTR(Study) aStudy = getStudy()->studyDS(); - _PTR(SObject) aSObj ( aStudy->FindObjectIOR( string( IOR ) ) ); + _PTR(SObject) aSObj ( aStudy->FindObjectIOR( std::string( IOR ) ) ); if ( !aSObj ) return; @@ -722,10 +749,11 @@ GEOM::GEOM_IOperations_ptr GEOMBase_Helper::getOperation() bool GEOMBase_Helper::checkViewWindow() { if ( myViewWindow ){ - QPtrList aViewWindowsList = SUIT_Session::session()->activeApplication()->desktop()->windows(); - for ( QPtrListIterator it( aViewWindowsList ); it.current(); ++it ) + QList aViewWindowsList = SUIT_Session::session()->activeApplication()->desktop()->windows(); + QListIterator it( aViewWindowsList ); + while ( it.hasNext() ) { - if ( myViewWindow == it.current() ) + if ( myViewWindow == it.next() ) return true; } } @@ -748,10 +776,10 @@ bool GEOMBase_Helper::onAccept( const bool publish, const bool useTransaction ) bool aLocked = (_PTR(AttributeStudyProperties) (aStudy->GetProperties()))->IsLocked(); if ( aLocked ) { MESSAGE("GEOMBase_Helper::onAccept - ActiveStudy is locked"); - SUIT_MessageBox::warn1 ( (QWidget*)SUIT_Session::session()->activeApplication()->desktop(), - QObject::tr("WRN_WARNING"), - QObject::tr("WRN_STUDY_LOCKED"), - QObject::tr("BUT_OK") ); + SUIT_MessageBox::warning ( (QWidget*)SUIT_Session::session()->activeApplication()->desktop(), + QObject::tr("WRN_WARNING"), + QObject::tr("WRN_STUDY_LOCKED"), + QObject::tr("BUT_OK") ); return false; } @@ -795,7 +823,7 @@ bool GEOMBase_Helper::onAccept( const bool publish, const bool useTransaction ) if ( aName.isEmpty() ) aName = GEOMBase::GetDefaultName( getPrefix( *it ) ); } - addInStudy( *it, aName.latin1() ); + addInStudy( *it, aName.toLatin1().constData() ); // updateView=false display( *it, false ); } @@ -842,10 +870,10 @@ void GEOMBase_Helper::showError() if ( msg.isEmpty() ) msg = QObject::tr( "GEOM_PRP_ABORT" ); - SUIT_MessageBox::error1( SUIT_Session::session()->activeApplication()->desktop(), - QObject::tr( "GEOM_ERROR_STATUS" ), - msg, - QObject::tr( "BUT_OK" ) ); + SUIT_MessageBox::critical( SUIT_Session::session()->activeApplication()->desktop(), + QObject::tr( "GEOM_ERROR_STATUS" ), + msg, + QObject::tr( "BUT_OK" ) ); } //================================================================ @@ -857,7 +885,7 @@ void GEOMBase_Helper::showError( const QString& msg ) QString str( QObject::tr( "GEOM_INCORRECT_INPUT" ) ); if ( !msg.isEmpty() ) str += "\n" + msg; - SUIT_MessageBox::error1(SUIT_Session::session()->activeApplication()->desktop(), QObject::tr( "GEOM_ERROR" ), str, QObject::tr( "BUT_OK" ) ); + SUIT_MessageBox::critical(SUIT_Session::session()->activeApplication()->desktop(), QObject::tr( "GEOM_ERROR" ), str, QObject::tr( "BUT_OK" ) ); } ////////////////////////////////////////////////////////////////// @@ -909,9 +937,9 @@ GEOM::GEOM_Object_ptr GEOMBase_Helper::getFather( GEOM::GEOM_Object_ptr theObj ) // Function : getNewObjectName // Purpose : Redefine this method to return proper name for a new object //================================================================ -const char* GEOMBase_Helper::getNewObjectName() const +QString GEOMBase_Helper::getNewObjectName() const { - return ""; + return QString::null; } //================================================================ @@ -944,56 +972,10 @@ QString GEOMBase_Helper::getPrefix( GEOM::GEOM_Object_ptr theObj ) const } } -//================================================================ -// Function : selectedIO -// Purpose : Return the list of selected SALOME_InteractiveObject's -//================================================================ -const SALOME_ListIO& GEOMBase_Helper::selectedIO() -{ - mySelected.Clear(); - - SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); - if ( app ) { - LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); - if ( aSelMgr ) - aSelMgr->selectedObjects( mySelected ); - } - - return mySelected; -} - -//================================================================ -// Function : IObjectCount -// Purpose : Return the number of selected objects -//================================================================ -int GEOMBase_Helper::IObjectCount() -{ - return selectedIO().Extent(); -} - -//================================================================ -// Function : firstIObject -// Purpose : Return the first selected object in the selected object list -//================================================================ -Handle(SALOME_InteractiveObject) GEOMBase_Helper::firstIObject() -{ - const SALOME_ListIO& aList = selectedIO(); - return aList.Extent() > 0 ? aList.First() : Handle(SALOME_InteractiveObject)(); -} - -//================================================================ -// Function : lastIObject -// Purpose : Return the last selected object in the selected object list -//================================================================ -Handle(SALOME_InteractiveObject) GEOMBase_Helper::lastIObject() -{ - const SALOME_ListIO& aList = selectedIO(); - return aList.Extent() > 0 ? aList.Last() : Handle(SALOME_InteractiveObject)(); -} - //================================================================ // Function : getDesktop -// Purpose : Returns myDesktop field. Initialized in constructor, usually as dynamic_cast(parentWidget()) +// Purpose : Returns myDesktop field. Initialized in constructor, +// usually as dynamic_cast(parentWidget()) //================================================================ SUIT_Desktop* GEOMBase_Helper::getDesktop() const { @@ -1010,7 +992,7 @@ bool GEOMBase_Helper::selectObjects( ObjectList& objects ) ObjectList::iterator anIter; for ( anIter = objects.begin(); anIter != objects.end(); ++anIter ) { - string entry = getEntry( *anIter ); + std::string entry = getEntry( *anIter ); QString aEntry( entry.c_str() ); LightApp_DataOwner* anOwher = new LightApp_DataOwner( aEntry ); aList.append( anOwher ); @@ -1035,20 +1017,21 @@ bool GEOMBase_Helper::selectObjects( ObjectList& objects ) // Purpose : It should return an object if its founded in study or // return Null object if the object is not founded //================================================================ -GEOM::GEOM_Object_ptr GEOMBase_Helper::findObjectInFather( GEOM::GEOM_Object_ptr theFather, const char* theName) +GEOM::GEOM_Object_ptr GEOMBase_Helper::findObjectInFather (GEOM::GEOM_Object_ptr theFather, + const QString& theName) { SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); SalomeApp_Study* appStudy = dynamic_cast( app->activeStudy() ); _PTR(Study) aDStudy = appStudy->studyDS(); - string IOR = GEOMBase::GetIORFromObject( theFather ); + std::string IOR = GEOMBase::GetIORFromObject( theFather ); _PTR(SObject) SObj ( aDStudy->FindObjectIOR( IOR ) ); bool inStudy = false; GEOM::GEOM_Object_var aReturnObject; for (_PTR(ChildIterator) iit (aDStudy->NewChildIterator( SObj )); iit->More() && !inStudy; iit->Next()) { _PTR(SObject) child (iit->Value()); - QString aChildName = child->GetName(); + QString aChildName = child->GetName().c_str(); if (aChildName == theName) { inStudy = true; CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject(iit->Value()); @@ -1087,14 +1070,14 @@ void GEOMBase_Helper::addSubshapesToFather( QMap for( QMap::Iterator it = theMap.begin(); it != theMap.end(); it++ ) { if ( !anOp->_is_nil() ) { - GEOM::GEOM_Object_var aFatherObj = anOp->GetMainShape( it.data() ); + GEOM::GEOM_Object_var aFatherObj = anOp->GetMainShape( it.value() ); if ( !aFatherObj->_is_nil() ) { - GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aFatherObj, it.key() ); + GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aFatherObj, it.key().toLatin1().data() ); //Add Object to study if its not exist if ( aFindedObject == GEOM::GEOM_Object::_nil() ) GeometryGUI::GetGeomGen()->AddInStudy(GeometryGUI::ClientStudyToStudy(aDStudy), - it.data(), it.key(), aFatherObj ); + it.value(), it.key().toLatin1().data(), aFatherObj ); } } else { diff --git a/src/GEOMBase/GEOMBase_Helper.h b/src/GEOMBase/GEOMBase_Helper.h index 911d6e443..d8bc391d4 100755 --- a/src/GEOMBase/GEOMBase_Helper.h +++ b/src/GEOMBase/GEOMBase_Helper.h @@ -1,44 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMBase_Helper.h +// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com) // -// File : GEOMBase_Helper.h -// Author : Sergey ANIKIN -// Module : GEOM -// $Header$ - #ifndef GEOMBASE_HELPER_H #define GEOMBASE_HELPER_H #include "GEOM_GEOMBase.hxx" -#include "GEOM_Displayer.h" -#include "SALOME_Prs.h" -#include "SALOME_ListIO.hxx" +#include +#include #include #include CORBA_CLIENT_HEADER(GEOM_Gen) -#include -#include +#include +#include #include @@ -47,8 +43,8 @@ typedef std::list ObjectList; class SalomeApp_Study; class SUIT_Desktop; class SUIT_ViewWindow; +class SALOME_Prs; class GEOM_Operation; -class TopoDS_Shape; class TColStd_MapOfInteger; //================================================================ @@ -100,6 +96,7 @@ protected: void activate( const int ); void globalSelection( const int = GEOM_ALLOBJECTS, const bool = false ); void globalSelection( const TColStd_MapOfInteger&, const bool = false ); + void globalSelection( const TColStd_MapOfInteger&, const QList& ,const bool = false ); void updateViewer (); void prepareSelection( const ObjectList&, const int ); @@ -134,21 +131,6 @@ protected: inline void setPrefix( const QString& prefix ) { myPrefix = prefix; } QString getPrefix( GEOM::GEOM_Object_ptr = GEOM::GEOM_Object::_nil() ) const; - - const SALOME_ListIO& selectedIO(); - // Function returns a list of SALOME_InteractiveObject's from - // selection manager in GUI - - int IObjectCount() ; - // Function returns the number of selected objects - - Handle(SALOME_InteractiveObject) firstIObject() ; - // Function returns the first selected object in the list - // of selected objects - - Handle(SALOME_InteractiveObject) lastIObject() ; - // Function returns the last selected object in the list - // of selected objects bool selectObjects( ObjectList& objects ); // Selects list of objects @@ -170,15 +152,18 @@ protected: // It should perform the required operation and put all new or modified objects into // argument.Should return if some error occurs during its execution. + virtual void restoreSubShapes( SALOMEDS::Study_ptr theStudy, SALOMEDS::SObject_ptr theSObject ); + // This method is called by addInStudy(). + virtual GEOM::GEOM_Object_ptr getFather( GEOM::GEOM_Object_ptr theObj ); // This method is called by addInStudy(). It should return a father object // for or a nil reference if should be published // as a top-level object. - virtual const char* getNewObjectName() const; + virtual QString getNewObjectName() const; virtual void addSubshapesToStudy(); - GEOM::GEOM_Object_ptr findObjectInFather( GEOM::GEOM_Object_ptr theFather, const char* theName ); + GEOM::GEOM_Object_ptr findObjectInFather( GEOM::GEOM_Object_ptr theFather, const QString& theName ); //This Metod to find SubObject in theFather Object by Name (theName) void addSubshapesToFather( QMap& theMap ); @@ -208,4 +193,4 @@ private: }; -#endif +#endif // GEOMBASE_HELPER_H diff --git a/src/GEOMBase/GEOMBase_Skeleton.cxx b/src/GEOMBase/GEOMBase_Skeleton.cxx index c4e65d0bc..ad5d365d0 100644 --- a/src/GEOMBase/GEOMBase_Skeleton.cxx +++ b/src/GEOMBase/GEOMBase_Skeleton.cxx @@ -1,119 +1,189 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMBase_Skeleton.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// File : GEOMBase_Skeleton.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "GEOMBase_Skeleton.h" +#include "GEOMBase.h" -#include "GeometryGUI.h" +#include +#include -#include "SalomeApp_Application.h" -#include "LightApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SUIT_Session.h" -#include "SUIT_MessageBox.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include -#include -#include - -using namespace std; +#include +#include +#include //================================================================================= // class : GEOMBase_Skeleton() // purpose : Constructs a GEOMBase_Skeleton which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. +// true to construct a modal dialog. //================================================================================= -GEOMBase_Skeleton::GEOMBase_Skeleton(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - : DlgRef_Skeleton_QTD( parent, name, modal, WStyle_Customize | WStyle_NormalBorder - | WStyle_Title | WStyle_SysMenu | WDestructiveClose ), - GEOMBase_Helper( dynamic_cast( parent ) ), - myGeomGUI( theGeometryGUI ) +GEOMBase_Skeleton::GEOMBase_Skeleton( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : QDialog( parent, fl ), + GEOMBase_Helper( dynamic_cast( parent ) ), + myGeomGUI( theGeometryGUI ), + myRBGroup( 0 ) { - if (!name) - setName("GEOMBase_Skeleton"); + setAttribute( Qt::WA_DeleteOnClose ); - GroupBoxName->setTitle(tr("GEOM_RESULT_NAME_GRP")); - NameLabel->setText(tr("GEOM_RESULT_NAME_LBL")); + setModal( modal ); - buttonCancel->setText(tr("GEOM_BUT_CLOSE")); - buttonOk->setText(tr("GEOM_BUT_OK")); - buttonApply->setText(tr("GEOM_BUT_APPLY")); - buttonHelp->setText(tr("GEOM_BUT_HELP")); + myMainFrame = new DlgRef_Skeleton( this ); + QVBoxLayout* topLayout = new QVBoxLayout( this ); + topLayout->setMargin( 0 ); topLayout->setSpacing( 0 ); + topLayout->addWidget( myMainFrame ); - resize(0, 0); + myMainFrame->GroupBoxName->setTitle( tr( "GEOM_RESULT_NAME_GRP" ) ); + myMainFrame->NameLabel->setText( tr( "GEOM_RESULT_NAME_LBL" ) ); + + myMainFrame->GroupBoxPublish->setTitle( tr( "GEOM_PUBLISH_RESULT_GRP" ) ); + myMainFrame->CheckBoxRestoreSS->setText( tr( "GEOM_RESTORE_SUB_SHAPES" ) ); + + buttonCancel()->setText( tr( "GEOM_BUT_CLOSE" ) ); + buttonOk()->setText( tr( "GEOM_BUT_APPLY_AND_CLOSE" ) ); + buttonApply()->setText( tr( "GEOM_BUT_APPLY" ) ); + buttonHelp()->setText( tr( "GEOM_BUT_HELP" ) ); + + myRBGroup = new QButtonGroup( this ); + myRBGroup->addButton( myMainFrame->RadioButton1, 0 ); + myRBGroup->addButton( myMainFrame->RadioButton2, 1 ); + myRBGroup->addButton( myMainFrame->RadioButton3, 2 ); + myRBGroup->addButton( myMainFrame->RadioButton4, 3 ); + myRBGroup->addButton( myMainFrame->RadioButton5, 4 ); + + connect( myRBGroup, SIGNAL( buttonClicked( int ) ), this, SIGNAL( constructorsClicked( int ) ) ); Init(); } - //================================================================================= // function : ~GEOMBase_Skeleton() // purpose : Destroys the object and frees any allocated resources //================================================================================= GEOMBase_Skeleton::~GEOMBase_Skeleton() { - if (myGeomGUI) + if ( myGeomGUI ) myGeomGUI->SetActiveDialogBox( 0 ); } - //================================================================================= // function : Init() // purpose : //================================================================================= void GEOMBase_Skeleton::Init() { - SalomeApp_Application* app = (SalomeApp_Application*)(SUIT_Session::session()->activeApplication()); - if (!myGeomGUI && app) + SalomeApp_Application* app = (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ); + if ( !myGeomGUI && app ) myGeomGUI = dynamic_cast( app->module( "Geometry" ) ); /* init variables */ - myGeomGUI->SetActiveDialogBox(this); + if ( myGeomGUI ) + myGeomGUI->SetActiveDialogBox( this ); /* signals and slots connections */ - connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); - if (myGeomGUI) - { - connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); - connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); + connect( buttonCancel(), SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) ); + if ( myGeomGUI ) { + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); } // connect help button on a private slot that displays help information - connect( buttonHelp, SIGNAL( clicked() ), this, SLOT( ClickOnHelp() ) ); + connect( buttonHelp(), SIGNAL( clicked() ), this, SLOT( ClickOnHelp() ) ); /* displays Dialog */ - RadioButton1->setChecked(TRUE); - RadioButton4->hide(); + myMainFrame->RadioButton1->setChecked( true ); + myMainFrame->RadioButton4->hide(); + myMainFrame->RadioButton5->hide(); - return; + myMainFrame->CheckBoxRestoreSS->setChecked( false ); + myMainFrame->GroupBoxPublish->hide(); } +//================================================================================= +// function : initSpinBox() +// purpose : +//================================================================================= +void GEOMBase_Skeleton::initSpinBox( QSpinBox* spinBox, + int min, int max, int step ) +{ + spinBox->setRange( min, max ); + spinBox->setSingleStep( step ); +} + +//================================================================================= +// function : initSpinBox() +// purpose : +//================================================================================= +void GEOMBase_Skeleton::initSpinBox( SalomeApp_DoubleSpinBox* spinBox, + double min, double max, + double step, int decimals ) +{ + spinBox->setPrecision( decimals ); + spinBox->setDecimals( decimals ); // it's necessary to set decimals before the range setting, + // by default Qt rounds boundaries to 2 decimals at setRange + spinBox->setRange( min, max ); + spinBox->setSingleStep( step ); +} + +//================================================================================= +// function : updateAttributes() +// purpose : Workaround for Translation and Rotation operations with unchecked option "Create a copy". +// In this case PublishInStudy isn't called, so we need to update object's attributes manually +//================================================================================= +void GEOMBase_Skeleton::updateAttributes( GEOM::GEOM_Object_ptr theObj, + const QStringList& theParameters) +{ + SALOMEDS::Study_var aStudy = GeometryGUI::ClientStudyToStudy(getStudy()->studyDS()); + SALOMEDS::StudyBuilder_var aStudyBuilder = aStudy->NewBuilder(); + SALOMEDS::SObject_var aSObject = aStudy->FindObjectID(theObj->GetStudyEntry()); + SALOMEDS::GenericAttribute_var anAttr = aStudyBuilder->FindOrCreateAttribute(aSObject, "AttributeString"); + SALOMEDS::AttributeString_var aStringAttrib = SALOMEDS::AttributeString::_narrow(anAttr); + + std::string aValue = aStringAttrib->Value(); + if( aValue != "" ) + aValue += "|"; + for( int i = 0, n = theParameters.count(); i < n; i++ ) { + std::string aParameter = theParameters[i].toStdString(); + if(aStudy->IsVariable(aParameter.c_str())) + aValue += aParameter; + if(i != n-1) + aValue += ":"; + } + aStringAttrib->SetValue(aValue.c_str()); +} //================================================================================= // function : ClickOnCancel() @@ -124,14 +194,13 @@ void GEOMBase_Skeleton::ClickOnCancel() close(); } - //================================================================================= // function : LineEditReturnPressed() // purpose : //================================================================================= void GEOMBase_Skeleton::LineEditReturnPressed() { - if ( !myEditCurrentArgument ) + if (!myEditCurrentArgument) return; /* User name of object input management */ @@ -139,29 +208,30 @@ void GEOMBase_Skeleton::LineEditReturnPressed() /* so SelectionIntoArgument() is automatically called. */ const QString objectUserName = myEditCurrentArgument->text(); QWidget* thisWidget = (QWidget*)this; - - if(GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, selectedIO())) - myEditCurrentArgument->setText(objectUserName); - return; + SALOME_ListIO aList; + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + if (aSelMgr) + aSelMgr->selectedObjects(aList); + if (GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, aList)) + myEditCurrentArgument->setText(objectUserName); } - //================================================================================= // function : DeactivateActiveDialog() // purpose : //================================================================================= void GEOMBase_Skeleton::DeactivateActiveDialog() { - this->setEnabled(false); + this->setEnabled( false ); globalSelection(); - disconnect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0); - if (myGeomGUI) myGeomGUI->SetActiveDialogBox(0); - - return; + if ( myGeomGUI ) { + myGeomGUI->SetActiveDialogBox( 0 ); + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); + } + erasePreview(); } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -169,23 +239,21 @@ void GEOMBase_Skeleton::DeactivateActiveDialog() void GEOMBase_Skeleton::ActivateThisDialog() { /* Emit a signal to deactivate the active dialog */ - if (myGeomGUI) myGeomGUI->EmitSignalDeactivateDialog(); - this->setEnabled(true); - if (myGeomGUI) myGeomGUI->SetActiveDialogBox((QDialog*)this); + if ( myGeomGUI ) myGeomGUI->EmitSignalDeactivateDialog(); + this->setEnabled( true ); + if ( myGeomGUI ) myGeomGUI->SetActiveDialogBox( (QDialog*)this ); return; } - //================================================================================= // function : closeEvent() // purpose : same than click on cancel button //================================================================================= -void GEOMBase_Skeleton::closeEvent(QCloseEvent* e) +void GEOMBase_Skeleton::closeEvent( QCloseEvent* e ) { - SalomeApp_Application* app = (SalomeApp_Application*)(SUIT_Session::session()->activeApplication()); - if(app) { - disconnect( app->selectionMgr(), 0, this, 0); - app->updateActions(); + if ( myGeomGUI ) { + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); + myGeomGUI->getApp()->updateActions(); } QDialog::closeEvent( e ); } @@ -194,20 +262,20 @@ void GEOMBase_Skeleton::closeEvent(QCloseEvent* e) // function : initName() // purpose : initialize the Name field with a string "thePrefix_X" (Vertex_3) //================================================================================= -void GEOMBase_Skeleton::initName( const char* thePrefix ) +void GEOMBase_Skeleton::initName( const QString& thePrefix ) { - if ( thePrefix ) + if ( !thePrefix.isNull() ) setPrefix( thePrefix ); - ResultName->setText( GEOMBase::GetDefaultName( getPrefix() ) ); + myMainFrame->ResultName->setText( GEOMBase::GetDefaultName( getPrefix() ) ); } //================================================================================= // function : getNewObjectName() // purpose : returns contents of Name field //================================================================================= -const char* GEOMBase_Skeleton::getNewObjectName() const +QString GEOMBase_Skeleton::getNewObjectName() const { - return ResultName->text(); + return myMainFrame->ResultName->text(); } //================================================================================= @@ -216,41 +284,77 @@ const char* GEOMBase_Skeleton::getNewObjectName() const //================================================================================= int GEOMBase_Skeleton::getConstructorId() const { - if ( GroupConstructors != NULL && GroupConstructors->selected() != NULL ) - return GroupConstructors->id( GroupConstructors->selected() ); + if ( myRBGroup ) + return myRBGroup->checkedId(); return -1; } +void GEOMBase_Skeleton::setConstructorId( const int id ) +{ + if ( myRBGroup && myRBGroup->button( id ) ) + myRBGroup->button( id )->setChecked( true ); +} + //================================================================================= // function : ClickOnHelp() // purpose : //================================================================================= void GEOMBase_Skeleton::ClickOnHelp() { - LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication()); - if (app) - app->onHelpContextModule(myGeomGUI ? app->moduleName(myGeomGUI->moduleName()) : QString(""), myHelpFileName); + LightApp_Application* app = (LightApp_Application*)( SUIT_Session::session()->activeApplication() ); + if ( app ) + app->onHelpContextModule( myGeomGUI ? app->moduleName( myGeomGUI->moduleName() ) : QString(""), myHelpFileName ); else { - QString platform; + QString platform; #ifdef WIN32 - platform = "winapplication"; + platform = "winapplication"; #else - platform = "application"; + platform = "application"; #endif - SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"), - QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). - arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName), - QObject::tr("BUT_OK")); + SUIT_MessageBox::warning( 0, QObject::tr( "WRN_WARNING" ), + QObject::tr( "EXTERNAL_BROWSER_CANNOT_SHOW_PAGE" ). + arg( app->resourceMgr()->stringValue( "ExternalBrowser", platform ) ).arg( myHelpFileName ), + QObject::tr( "BUT_OK" ) ); } } + //================================================================================= // function : setHelpFileName() // purpose : set name for help file html //================================================================================= - -void GEOMBase_Skeleton::setHelpFileName(const QString& theName) +void GEOMBase_Skeleton::setHelpFileName( const QString& theName ) { - myHelpFileName = theName; + myHelpFileName = theName; +} + +DlgRef_Skeleton* GEOMBase_Skeleton::mainFrame() +{ + return myMainFrame; +} + +QWidget* GEOMBase_Skeleton::centralWidget() +{ + return myMainFrame->GroupMedium; +} + +QPushButton* GEOMBase_Skeleton::buttonCancel() const +{ + return myMainFrame->buttonCancel; +} + +QPushButton* GEOMBase_Skeleton::buttonOk() const +{ + return myMainFrame->buttonOk; +} + +QPushButton* GEOMBase_Skeleton::buttonApply() const +{ + return myMainFrame->buttonApply; +} + +QPushButton* GEOMBase_Skeleton::buttonHelp() const +{ + return myMainFrame->buttonHelp; } //================================================================================= @@ -263,9 +367,8 @@ void GEOMBase_Skeleton::keyPressEvent( QKeyEvent* e ) if ( e->isAccepted() ) return; - if ( e->key() == Key_F1 ) - { - e->accept(); - ClickOnHelp(); - } + if ( e->key() == Qt::Key_F1 ) { + e->accept(); + ClickOnHelp(); + } } diff --git a/src/GEOMBase/GEOMBase_Skeleton.h b/src/GEOMBase/GEOMBase_Skeleton.h index fdd00155b..a9f2c5aa2 100644 --- a/src/GEOMBase/GEOMBase_Skeleton.h +++ b/src/GEOMBase/GEOMBase_Skeleton.h @@ -1,89 +1,113 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMBase_Skeleton.h +// Author : Damine COQUERET, Open CASCADE S.A.S. // -// File : GEOMBase_Skeleton.h -// Author : Damine COQUERET -// Module : GEOM - #ifndef GEOMBASE_SKELETON_H #define GEOMBASE_SKELETON_H #include "GEOM_GEOMBase.hxx" - -#include "DlgRef_Skeleton_QTD.h" - -#include "GEOMBase.h" #include "GEOMBase_Helper.h" -#include "GeometryGUI.h" -#include -#include -#include -#include -#include -#include -#include +#include -class GEOMBASE_EXPORT GEOMBase_Skeleton : public DlgRef_Skeleton_QTD, public GEOMBase_Helper +class SalomeApp_DoubleSpinBox; +class GeometryGUI; +class DlgRef_Skeleton; +class QSpinBox; +class QDoubleSpinBox; +class QLineEdit; +class QButtonGroup; +class QPushButton; + +#ifndef COORD_MIN +# define COORD_MIN -1e+15 +# define COORD_MAX +1e+15 +# define MAX_NUMBER 100000 +# define DBL_DIGITS_DISPLAY 16 +#endif // COORD_MIN + +class GEOMBASE_EXPORT GEOMBase_Skeleton : public QDialog, public GEOMBase_Helper { - Q_OBJECT + Q_OBJECT public: - GEOMBase_Skeleton(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); + GEOMBase_Skeleton( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); ~GEOMBase_Skeleton(); private: void Init(); protected: - void closeEvent(QCloseEvent* e); - void keyPressEvent(QKeyEvent* e); + void initSpinBox( QSpinBox*, int, int, int = 1 ); + void initSpinBox( SalomeApp_DoubleSpinBox*, double, double, double = 0.1, int = 3 ); + + void updateAttributes( GEOM::GEOM_Object_ptr, const QStringList& ); + + void closeEvent( QCloseEvent* ); + void keyPressEvent( QKeyEvent* ); /*! initialize "Name" field with a string "thePrefix_X" (Vertex_3) */ - void initName( const char* thePrefix = 0 ); + void initName( const QString& = QString() ); /*! returns contents of "Name" field */ - virtual const char* getNewObjectName() const; + virtual QString getNewObjectName() const; /*! returns id of a selected "constructor" radio button or '-1' in case of error */ - int getConstructorId() const; + int getConstructorId() const; + /*! set selected "constructor" radio button id + */ + void setConstructorId( const int ); - void setHelpFileName( const QString& ); + void setHelpFileName( const QString& ); - QLineEdit* myEditCurrentArgument; //!< Current LineEdit - GeometryGUI* myGeomGUI; //!< reference GEOM GUI - QString myHelpFileName; + DlgRef_Skeleton* mainFrame(); + QWidget* centralWidget(); + QPushButton* buttonCancel() const; + QPushButton* buttonOk() const; + QPushButton* buttonApply() const; + QPushButton* buttonHelp() const; + +protected: + QLineEdit* myEditCurrentArgument; //!< Current LineEdit + GeometryGUI* myGeomGUI; //!< reference GEOM GUI + QString myHelpFileName; //!< Associated HTML help file name + + QButtonGroup* myRBGroup; //!< radio button group + DlgRef_Skeleton* myMainFrame; //!< dialog box's mainframe widgetx protected slots: - virtual void ClickOnCancel(); - void LineEditReturnPressed(); - void DeactivateActiveDialog(); - void ActivateThisDialog(); - void ClickOnHelp(); + virtual void ClickOnCancel(); + void LineEditReturnPressed(); + void DeactivateActiveDialog(); + void ActivateThisDialog(); + void ClickOnHelp(); + +signals: + void constructorsClicked( int ); }; #endif // GEOMBASE_SKELETON_H diff --git a/src/GEOMBase/GEOMBase_aParameterDlg.cxx b/src/GEOMBase/GEOMBase_aParameterDlg.cxx deleted file mode 100644 index ef6097e18..000000000 --- a/src/GEOMBase/GEOMBase_aParameterDlg.cxx +++ /dev/null @@ -1,159 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOMBase_aParameterDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - -#include "GEOMBase_aParameterDlg.h" -#include "QtxDblSpinBox.h" - -#include - -#include -#include -#include -#include -#include -#include - -#ifndef WNT -using namespace std; -#endif - - -//====================================================================================== -// function : GEOMBase_aParameterDlg() -// purpose : Constructs a GEOMBase_aParametertDlg which is a child of 'parent', with the -// name 'name' and widget flags set to 'f' -// -// avalue1 : is a float or integer used as default value in edit line -// aTitle1 : is the prompt for aValue1 -// aTitle : is the title for the user in dialog box -// -// bottom : the minimal value to be entered -// top : the maximum value to be entered -// decimals : number of decimals to be entered -// -// The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. -// -//====================================================================================== -GEOMBase_aParameterDlg::GEOMBase_aParameterDlg(const char *aValue1, const char *aTitle1, QWidget* parent, const char* name, bool modal, WFlags fl, const double bottom, const double top, const int decimals) - :QDialog( parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) -{ - if(!name) - setName( "MyParameterDialog" ); - resize(288, 81); - setCaption(name); /* appears on the title bar */ - setSizeGripEnabled(TRUE); - - QGridLayout* topLayout = new QGridLayout(this); - topLayout->setSpacing(6); - topLayout->setMargin(11); - - QGroupBox* mainGrp = new QGroupBox(this, "mainGrp"); - mainGrp->setColumnLayout(0, Qt::Vertical); - mainGrp->layout()->setSpacing(0); - mainGrp->layout()->setMargin(0); - QGridLayout* mainGrpLayout = new QGridLayout(mainGrp->layout()); - mainGrpLayout->setAlignment(Qt::AlignTop); - mainGrpLayout ->setSpacing(6); - mainGrpLayout->setMargin(11); - topLayout->addWidget(mainGrp, 0, 0); - - /* aTitle1 : text prompt on left of edit line */ - QLabel* TextLabel1 = new QLabel(mainGrp, "TextLabel1"); - TextLabel1->setText(tr(aTitle1)); - mainGrpLayout->addWidget(TextLabel1, 0, 0); - - mySpinBox = new QtxDblSpinBox(mainGrp, "mySpinBox"); - mySpinBox->setPrecision(12); - mySpinBox->setRange(bottom, top); - ((QDoubleValidator*)(mySpinBox->validator()))->setRange(bottom, top, decimals); - mySpinBox->setValue(QString(aValue1).toDouble()); - mainGrpLayout->addWidget(mySpinBox, 0, 1); - - QGroupBox* btnGrp = new QGroupBox(this, "btnGrp"); - btnGrp->setColumnLayout(0, Qt::Vertical); - btnGrp->layout()->setSpacing(0); - btnGrp->layout()->setMargin(0); - QGridLayout* btnGrpLayout = new QGridLayout(btnGrp->layout()); - btnGrpLayout->setAlignment(Qt::AlignTop); - btnGrpLayout->setSpacing(6); - btnGrpLayout->setMargin(11); - topLayout->addWidget(btnGrp, 1, 0); - - /* Ok button */ - myButtonOk = new QPushButton(btnGrp, "buttonOk"); - myButtonOk->setText(tr("GEOM_BUT_OK")); - myButtonOk->setAutoDefault(TRUE); - myButtonOk->setDefault(TRUE); - btnGrpLayout->addWidget(myButtonOk, 0, 0); - - btnGrpLayout->addItem(new QSpacerItem(5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 1); - - /* Cancel button */ - myButtonCancel = new QPushButton(btnGrp, "buttonCancel"); - myButtonCancel->setText(tr("GEOM_BUT_CANCEL")); - myButtonCancel->setAutoDefault(TRUE); - btnGrpLayout->addWidget(myButtonCancel, 0, 2); - - /* signals and slots connections */ - connect(myButtonOk, SIGNAL(clicked()), this, SLOT(accept())); - connect(myButtonCancel, SIGNAL(clicked()), this, SLOT(reject())); - - /* Move widget on the botton right corner of main widget */ - //mzn: QAD_Tools::centerWidget(this, parent); -} - - -//====================================================================================== -// function : ~GEOMBase_aParameterDlg() destructor -// purpose : Destroys the object and frees any allocated resources -//====================================================================================== -GEOMBase_aParameterDlg::~GEOMBase_aParameterDlg() -{ - // no need to delete child widgets, Qt does it all for us -} - - -//====================================================================================== -// function : GEOMBase_aParameterDlg::setValue -// purpose : sets value -//====================================================================================== -void GEOMBase_aParameterDlg::setValue(double val) -{ - mySpinBox->setValue(val); -} - - -//====================================================================================== -// function : GEOMBase_aParameterDlg::getValue -// purpose : gets value -//====================================================================================== -double GEOMBase_aParameterDlg::getValue() -{ - return mySpinBox->value(); -} diff --git a/src/GEOMBase/GEOMBase_aParameterDlg.h b/src/GEOMBase/GEOMBase_aParameterDlg.h deleted file mode 100644 index 8dc1773f7..000000000 --- a/src/GEOMBase/GEOMBase_aParameterDlg.h +++ /dev/null @@ -1,61 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOMBase_aParameterDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - -#ifndef GEOMBase_aParameterDLG_H -#define GEOMBase_aParameterDLG_H - -#include "GEOM_GEOMBase.hxx" - -#include - -class QPushButton; -class QtxDblSpinBox; - -//================================================================================= -// class : GEOMBase_aParameterDlg -// purpose : -//================================================================================= -class GEOMBASE_EXPORT GEOMBase_aParameterDlg : public QDialog -{ - Q_OBJECT - -public: - GEOMBase_aParameterDlg(const char* aValue1 = "25", const char* aTitle1 = "Value :", QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0, const double bottom = -1E6, const double top = +1E6, const int decimals = 6); - ~GEOMBase_aParameterDlg(); - - void setValue(double val); - double getValue(); - -private: - QPushButton* myButtonOk; - QPushButton* myButtonCancel; - QtxDblSpinBox* mySpinBox; - -}; - -#endif // GEOMBase_aParameterDlg.h diff --git a/src/GEOMBase/GEOMBase_aWarningDlg.cxx b/src/GEOMBase/GEOMBase_aWarningDlg.cxx deleted file mode 100644 index 52a453035..000000000 --- a/src/GEOMBase/GEOMBase_aWarningDlg.cxx +++ /dev/null @@ -1,126 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOMBase_aWarningDlg.cxx -// Author : Dmitry Matveitchev -// Module : GEOM -// $Header: /home/server/cvs/GEOM/GEOM_SRC/src/GEOMBase/GEOMBase_aWarningDlg.cxx - -#include "GEOMBase_aWarningDlg.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef WNT -using namespace std; -#endif - -GEOMBase_aWarningDlg::GEOMBase_aWarningDlg( QWidget* parent, const char* name, const QString theText, int theNum ) - :QDialog( parent, name ) -{ - if(!name) - setName( "Warning" ); - if ( theNum < 15 ) - resize(296, (120 + (14*theNum)) ); - else - resize(296, 300); - setCaption(name); /* appears on the title bar */ - setSizeGripEnabled(TRUE); - - QGridLayout* topLayout = new QGridLayout(this); - topLayout->setSpacing(6); - topLayout->setMargin(11); - - QGroupBox* mainGrp = new QGroupBox(this, "mainGrp"); - mainGrp->setColumnLayout(0, Qt::Vertical); - mainGrp->layout()->setSpacing(0); - mainGrp->layout()->setMargin(0); - - QGridLayout* mainGrpLayout = new QGridLayout(mainGrp->layout()); - mainGrpLayout->setAlignment(Qt::AlignTop); - mainGrpLayout ->setSpacing(6); - mainGrpLayout->setMargin(11); - topLayout->addWidget(mainGrp, 0, 0); - - QLabel* TextLabel = new QLabel(mainGrp, "TextLabel"); - TextLabel->setText( QObject::tr( "GEOM_REALLY_DELETE" ).arg( theNum ) ); - mainGrpLayout->addWidget(TextLabel, 0, 0); - - QScrollView* viewer = new QScrollView (mainGrp, "viewer"); - viewer->setResizePolicy( QScrollView::AutoOneFit ); - QLabel* TextLabel1 = new QLabel(viewer, "TextLabel1"); - TextLabel1->setText( theText ); - TextLabel1->setAlignment(Qt::AlignTop); - viewer->addChild(TextLabel1); - mainGrpLayout->addWidget(viewer, 1, 0); - - //Create Buttons - - QGroupBox* btnGrp = new QGroupBox(this, "btnGrp"); - btnGrp->setColumnLayout(0, Qt::Vertical); - btnGrp->layout()->setSpacing(0); - btnGrp->layout()->setMargin(0); - QGridLayout* btnGrpLayout = new QGridLayout(btnGrp->layout()); - btnGrpLayout->setAlignment(Qt::AlignTop); - btnGrpLayout->setSpacing(6); - btnGrpLayout->setMargin(11); - topLayout->addWidget(btnGrp, 1, 0); - - /* No button */ - myButtonOk = new QPushButton(btnGrp, "buttonOk"); - myButtonOk->setText(tr("GEOM_BUT_YES")); - myButtonOk->setAutoDefault(TRUE); - btnGrpLayout->addWidget(myButtonOk, 0, 0); - - btnGrpLayout->addItem(new QSpacerItem(5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 1); - - /* Yes button */ - myButtonCancel = new QPushButton(btnGrp, "buttonCancel"); - myButtonCancel->setText(tr("GEOM_BUT_NO")); - myButtonCancel->setAutoDefault(TRUE); - myButtonCancel->setDefault(TRUE); - btnGrpLayout->addWidget(myButtonCancel, 0, 2); - - /* signals and slots connections */ - connect(myButtonOk, SIGNAL(clicked()), this, SLOT(accept())); - connect(myButtonCancel, SIGNAL(clicked()), this, SLOT(reject())); -} - - -//====================================================================================== -// function : ~GEOMBase_aWarningDlg() destructor -// purpose : Destroys the object and frees any allocated resources -//====================================================================================== -GEOMBase_aWarningDlg::~GEOMBase_aWarningDlg() -{ - // no need to delete child widgets, Qt does it all for us -} - - - diff --git a/src/GEOMBase/GEOMBase_aWarningDlg.h b/src/GEOMBase/GEOMBase_aWarningDlg.h deleted file mode 100644 index 6601062bb..000000000 --- a/src/GEOMBase/GEOMBase_aWarningDlg.h +++ /dev/null @@ -1,56 +0,0 @@ -// GEOM GEOMGUI : GUI for Geometry component -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOMBase_aWarningDlg.h -// Author : Dmitry Matveitchev -// Module : GEOM -// $Header: /home/server/cvs/GEOM/GEOM_SRC/src/GEOMBase/GEOMBase_aWarningDlg.h - -#ifndef GEOMBase_aWarningDLG_H -#define GEOMBase_aWarningDLG_H - -#include -#include - -class QString; -class QPushButton; - -//================================================================================= -// class : GEOMBase_aWarningDlg -// purpose : -//================================================================================= -class GEOMBase_aWarningDlg : public QDialog -{ - Q_OBJECT - -public: - GEOMBase_aWarningDlg( QWidget* parent, const char* name, QString theText, int nb ); - ~GEOMBase_aWarningDlg(); - -private: - QPushButton* myButtonOk; - QPushButton* myButtonCancel; - -}; - -#endif diff --git a/src/GEOMBase/GEOM_GEOMBase.hxx b/src/GEOMBase/GEOM_GEOMBase.hxx index 99b371671..8f19982a4 100755 --- a/src/GEOMBase/GEOM_GEOMBase.hxx +++ b/src/GEOMBase/GEOM_GEOMBase.hxx @@ -1,47 +1,38 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// File : GEOM_GEOMBase.hxx -// Author : Alexander A. BORODIN -// Module : GEOM +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : GEOM_GEOMBase.hxx +// Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +// +#ifndef GEOM_GEOMBASE_HXX +#define GEOM_GEOMBASE_HXX -#ifndef _GEOM_GEOMBase_HXX_ -#define _GEOM_GEOMBase_HXX_ - -#ifdef WNT - #if defined GEOMBASE_EXPORTS - #if defined WIN32 - #define GEOMBASE_EXPORT __declspec( dllexport ) - #else - #define GEOMBASE_EXPORT - #endif - #else - #if defined WIN32 - #define GEOMBASE_EXPORT __declspec( dllimport ) - #else - #define GEOMBASE_EXPORT - #endif - #endif +#if defined WIN32 +# if defined GEOMBASE_EXPORTS +# define GEOMBASE_EXPORT __declspec( dllexport ) +# else +# define GEOMBASE_EXPORT __declspec( dllimport ) +# endif #else - #define GEOMBASE_EXPORT +# define GEOMBASE_EXPORT #endif -#endif +#endif // GEOM_GEOMBASE_HXX diff --git a/src/GEOMBase/GEOM_Operation.cxx b/src/GEOMBase/GEOM_Operation.cxx index 1e6d475c5..060f4e26d 100644 --- a/src/GEOMBase/GEOM_Operation.cxx +++ b/src/GEOMBase/GEOM_Operation.cxx @@ -1,35 +1,32 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOM_Operation.cxx +// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com) // -// File : GEOM_Operation.cxx -// Author : Sergey ANIKIN -// Module : GEOM -// $Header$ - #include "GEOM_Operation.h" -#include "SUIT_Application.h" -#include "SalomeApp_Tools.h" +#include +#include //================================================================ @@ -62,7 +59,7 @@ void GEOM_Operation::startOperation() try { myIOperation->StartOperation(); } - catch( const SALOME::SALOME_Exception& e ) { + catch ( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools:: QtCatchCorbaException( e ); } } @@ -80,7 +77,7 @@ void GEOM_Operation::commitOperation() try { myIOperation->FinishOperation(); } - catch( const SALOME::SALOME_Exception& e ) { + catch ( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools:: QtCatchCorbaException( e ); } } @@ -116,7 +113,7 @@ void GEOM_Operation::abortOperation() try { myIOperation->AbortOperation(); } - catch( const SALOME::SALOME_Exception& e ) { + catch ( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); } } diff --git a/src/GEOMBase/GEOM_Operation.h b/src/GEOMBase/GEOM_Operation.h index c6654a9ea..39e9fd682 100644 --- a/src/GEOMBase/GEOM_Operation.h +++ b/src/GEOMBase/GEOM_Operation.h @@ -1,41 +1,37 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOM_Operation.h +// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com) // -// File : GEOM_Operation.h -// Author : Sergey ANIKIN -// Module : GEOM -// $Header$ - #ifndef GEOM_OPERATION_H #define GEOM_OPERATION_H #include "GEOM_GEOMBase.hxx" -#include "SUIT_Operation.h" +#include #include #include CORBA_CLIENT_HEADER(GEOM_Gen) - class GEOMBASE_EXPORT GEOM_Operation : public SUIT_Operation { public: @@ -44,14 +40,14 @@ public: protected: // Reimplemented from SUIT_Operation - virtual void startOperation(); - virtual void commitOperation(); - virtual void suspendOperation(); - virtual void resumeOperation(); - virtual void abortOperation(); + virtual void startOperation(); + virtual void commitOperation(); + virtual void suspendOperation(); + virtual void resumeOperation(); + virtual void abortOperation(); private: GEOM::GEOM_IOperations_var myIOperation; }; -#endif +#endif // GEOM_OPERATION_H diff --git a/src/GEOMBase/Makefile.am b/src/GEOMBase/Makefile.am index 078b1c4a2..5c7b9bdb9 100644 --- a/src/GEOMBase/Makefile.am +++ b/src/GEOMBase/Makefile.am @@ -1,95 +1,79 @@ -# GEOM GEOMBASE : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM GEOMBASE : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : GEOMBase # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libGEOMBase.la # header files -salomeinclude_HEADERS = \ - GEOMBase.h \ - GEOMBase_Skeleton.h \ - GEOMBase_Helper.h \ - GEOM_Operation.h \ - GEOMBase_aWarningDlg.h \ +salomeinclude_HEADERS = \ + GEOMBase.h \ + GEOMBase_Skeleton.h \ + GEOMBase_Helper.h \ + GEOM_Operation.h \ GEOM_GEOMBase.hxx -dist_libGEOMBase_la_SOURCES = \ - GEOMBase.cxx \ - GEOMBase_Skeleton.cxx \ - GEOMBase_aParameterDlg.cxx \ - GEOMBase_Helper.cxx \ - GEOMBase_aWarningDlg.cxx \ +dist_libGEOMBase_la_SOURCES = \ + GEOMBase.cxx \ + GEOMBase_Skeleton.cxx \ + GEOMBase_Helper.cxx \ GEOM_Operation.cxx -MOC_FILES = \ - GEOMBase_Skeleton_moc.cxx \ - GEOMBase_aWarningDlg_moc.cxx \ - GEOMBase_aParameterDlg_moc.cxx +MOC_FILES = \ + GEOMBase_Skeleton_moc.cxx -nodist_libGEOMBase_la_SOURCES= \ - $(MOC_FILES) +nodist_libGEOMBase_la_SOURCES = \ + $(MOC_FILES) -#LIB_CLIENT_IDL = SALOME_Exception.idl \ -# SALOMEDS.idl \ -# SALOMEDS_Attributes.idl \ -# SALOME_GenericObj.idl \ -# SALOME_Component.idl \ -# GEOM_Gen.idl +# additional information to compile and link file -#LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libGEOMBase_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(top_builddir)/idl \ +libGEOMBase_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libGEOMBase_la_LDFLAGS = \ - ../../idl/libSalomeIDLGEOM.la \ - ../GEOMGUI/libGEOM.la \ - ../DlgRef/libDlgRef.la \ - $(KERNEL_LDFLAGS) -lOpUtil \ +libGEOMBase_la_LDFLAGS = \ + ../../idl/libSalomeIDLGEOM.la \ + ../GEOMGUI/libGEOM.la \ + ../DlgRef/libDlgRef.la \ + $(KERNEL_LDFLAGS) -lOpUtil \ $(GUI_LDFLAGS) -lsuit -lOCCViewer -lVTKViewer -lSVTK -lSalomePrs -lSalomeApp -lCAM \ $(CAS_LDPATH) -lTKPrim diff --git a/src/GEOMClient/GEOMClient.pro b/src/GEOMClient/GEOMClient.pro new file mode 100644 index 000000000..db1ca7959 --- /dev/null +++ b/src/GEOMClient/GEOMClient.pro @@ -0,0 +1,60 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GEOMClient +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +CAS_TKTopAlgo = -L$${CASROOT}/Linux/lib -lTKG2d -lTKG3d -lTKGeomBase -lTKBRep -lTKGeomAlgo -lTKTopAlgo + +CORBA_LIBS = -L$$(OMNIORBDIR)/lib -lomniORB4 -lomniDynamic4 -lCOS4 -lCOSDynamic4 -lomnithread + +STDLIB = -lstdc++ + +INCLUDEPATH += $${CORBA_INCLUDES} $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} $$(GEOM_ROOT_DIR)/idl ../../salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/idl -lSalomeIDLGEOM -L$$(GEOM_ROOT_DIR)/lib -lGEOMbasic $${KERNEL_LDFLAGS} -lSalomeIDLKernel -lOpUtil $${CAS_TKTopAlgo} $${CORBA_LIBS} $${STDLIB} + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += GEOMCLIENT_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +HEADERS = GEOM_Client.hxx + +SOURCES = GEOM_Client.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/GEOMClient/GEOM_Client.cxx b/src/GEOMClient/GEOM_Client.cxx index 5f89234b9..88bd374a3 100644 --- a/src/GEOMClient/GEOM_Client.cxx +++ b/src/GEOMClient/GEOM_Client.cxx @@ -1,33 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM GEOMClient : tool to transfer BREP files from GEOM server to GEOM client -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_Client.cxx // Author : Yves FRICAUD/Lucien PIGNOLONI // Module : GEOM // $Header$ - -using namespace std; - +// #include #include @@ -36,7 +33,7 @@ using namespace std; #include "GEOM_Client.hxx" #include -#include "OpUtil.hxx" +#include "Basics_Utils.hxx" #include "utilities.h" #include @@ -68,7 +65,7 @@ using namespace std; //======================================================================= TopoDS_Shape GEOM_Client::Load( GEOM::GEOM_Gen_ptr geom, GEOM::GEOM_Object_ptr aShape ) { - string hst_client = GetHostname(); + std::string hst_client = Kernel_Utils::GetHostname(); Engines::Container_var ctn_server = geom->GetContainerRef(); long pid_server = ctn_server->getPID(); @@ -83,7 +80,7 @@ TopoDS_Shape GEOM_Client::Load( GEOM::GEOM_Gen_ptr geom, GEOM::GEOM_Object_ptr a int sizebuf = SeqFile->length(); char* buf; buf = (char*) &SeqFile[0]; - istrstream streamBrep(buf,sizebuf); + std::istrstream streamBrep(buf,sizebuf); BRep_Builder aBuilder; BRepTools::Read(S, streamBrep, aBuilder); return(S); diff --git a/src/GEOMClient/GEOM_Client.hxx b/src/GEOMClient/GEOM_Client.hxx index 161fcc105..ba7a9ef6d 100644 --- a/src/GEOMClient/GEOM_Client.hxx +++ b/src/GEOMClient/GEOM_Client.hxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM GEOMClient : tool to transfer BREP files from GEOM server to GEOM client -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_Client.hxx // Author : Yves FRICAUD // Module : GEOM // $Header$ - +// #ifndef _GEOM_Client_HeaderFile #define _GEOM_Client_HeaderFile diff --git a/src/GEOMClient/Makefile.am b/src/GEOMClient/Makefile.am index 9b1cc44c9..6db3208fe 100644 --- a/src/GEOMClient/Makefile.am +++ b/src/GEOMClient/Makefile.am @@ -1,60 +1,61 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM GEOMClient : tool to transfer BREP files from GEOM server to GEOM client -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.in # Author : Patrick GOLDBRONN (CEA) # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = \ - GEOM_Client.hxx - +salomeinclude_HEADERS = \ + GEOM_Client.hxx # Libraries targets lib_LTLIBRARIES = libGEOMClient.la # Sources files -dist_libGEOMClient_la_SOURCES = \ +dist_libGEOMClient_la_SOURCES = \ GEOM_Client.cxx -# additionnal information to compil and link file -libGEOMClient_la_CPPFLAGS = \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - -I$(top_builddir)/idl \ +# additional information to compile and link file + +libGEOMClient_la_CPPFLAGS = \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libGEOMClient_la_LDFLAGS = \ - ../../idl/libSalomeIDLGEOM.la \ - ../GEOM/libGEOMbasic.la \ - $(KERNEL_LDFLAGS) -lSalomeIDLKernel -lOpUtil \ - $(CAS_TKTopAlgo) \ - $(CORBA_LIBS) \ - $(STDLIB) +libGEOMClient_la_LDFLAGS = \ + ../../idl/libSalomeIDLGEOM.la \ + ../GEOM/libGEOMbasic.la \ + $(KERNEL_LDFLAGS) -lSalomeIDLKernel -lOpUtil \ + $(CAS_TKTopAlgo) + +# \ +# $(CORBA_LIBS) \ +# #$(STDLIB) diff --git a/src/GEOMDS/GEOMDS_Commands.cxx b/src/GEOMDS/GEOMDS_Commands.cxx index 54facab66..315aa6ca5 100644 --- a/src/GEOMDS/GEOMDS_Commands.cxx +++ b/src/GEOMDS/GEOMDS_Commands.cxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM GEOMDS : implementation of Geometry component data structure and Geometry documents management -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GeomDS_Commands.cxx // Author : Yves FRICAUD/Lucien PIGNOLONI // Module : GEOM // $Header$ - +// using namespace std; #include "utilities.h" #include "GEOMDS_Commands.ixx" diff --git a/src/GEOMDS/GEOMDS_Commands.jxx b/src/GEOMDS/GEOMDS_Commands.jxx index 879a3ac7b..662528e63 100644 --- a/src/GEOMDS/GEOMDS_Commands.jxx +++ b/src/GEOMDS/GEOMDS_Commands.jxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM GEOMDS : implementation of Geometry component data structure and Geometry documents management -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOMDS_Commands.jxx // Module : GEOM - +// #ifndef _TDF_Label_HeaderFile #include #endif diff --git a/src/GEOMFiltersSelection/GEOMFiltersSelection.pro b/src/GEOMFiltersSelection/GEOMFiltersSelection.pro new file mode 100644 index 000000000..7654802e5 --- /dev/null +++ b/src/GEOMFiltersSelection/GEOMFiltersSelection.pro @@ -0,0 +1,74 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GEOMFiltersSelection +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +GUI_LDFLAGS = -L$$(GUI_ROOT_DIR)/lib/salome + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +INCLUDEPATH += $${QT_INCLUDES} $${CAS_CPPFLAGS} $${BOOST_CPPFLAGS} $${GUI_CXXFLAGS} $${KERNEL_CXXFLAGS} $${CORBA_CXXFLAGS} $${CORBA_INCLUDES} ../GEOMClient $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/idl -lSalomeIDLGEOM -L$$(GEOM_ROOT_DIR)/lib -lGEOMClient $${GUI_LDFLAGS} -lsuit -lSalomeApp -lSalomeSession $${KERNEL_LDFLAGS} -lSalomeLifeCycleCORBA -lSalomeContainer -lTOOLSDS + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +HEADERS = GEOM_SelectionFilter.h +HEADERS += GEOM_EdgeFilter.h +HEADERS += GEOM_FaceFilter.h +HEADERS += GEOM_TypeFilter.h +HEADERS += GEOM_PreviewFilter.h +HEADERS += GEOM_LogicalFilter.h +HEADERS += GEOM_OCCFilter.h + +SOURCES = GEOM_SelectionFilter.cxx +SOURCES += GEOM_EdgeFilter.cxx +SOURCES += GEOM_FaceFilter.cxx +SOURCES += GEOM_TypeFilter.cxx +SOURCES += GEOM_PreviewFilter.cxx +SOURCES += GEOM_LogicalFilter.cxx +SOURCES += GEOM_OCCFilter.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/GEOMFiltersSelection/GEOM_CompoundFilter.cxx b/src/GEOMFiltersSelection/GEOM_CompoundFilter.cxx new file mode 100644 index 000000000..7f598cc6c --- /dev/null +++ b/src/GEOMFiltersSelection/GEOM_CompoundFilter.cxx @@ -0,0 +1,135 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOM_CompoundFilter : filter selector for the viewer +// File : GEOM_CompoundFilter.cxx +// Author : Roman NIKOLAEV +// Module : GEOM +// +#include "GEOM_CompoundFilter.h" + +// OCCT Includes +#include +#include +#include +#include + + + +//======================================================================= +// function : GEOM_CompoundFilter +// purpose : +//======================================================================= +GEOM_CompoundFilter::GEOM_CompoundFilter(SalomeApp_Study* study) +: GEOM_SelectionFilter( study ) +{ + add( TopAbs_COMPOUND ); +} + +//======================================================================= +// function : ~GEOM_CompoundFilter +// purpose : +//======================================================================= +GEOM_CompoundFilter::~GEOM_CompoundFilter() +{ +} + +//======================================================================= +// function : isOk +// purpose : +//======================================================================= +bool GEOM_CompoundFilter::isOk( const SUIT_DataOwner* sOwner) const +{ + if(GEOM_SelectionFilter::isOk(sOwner)){ + + GEOM::GEOM_Object_var obj = getObject( sOwner ); + TopoDS_Shape shape; + if ( getShape( obj, shape )){ + bool subTypes[TopAbs_SHAPE]; + getInfo(shape,subTypes); + QList::const_iterator it; + bool result = false; + for ( it = myKinds.constBegin(); it != myKinds.constEnd(); ++it ) + result = result || subTypes[(*it)]; + + return result; + } + } + return false; +} + + +//======================================================================= +// function : addSubType +// purpose : +//======================================================================= +void GEOM_CompoundFilter::addSubType( const int type) +{ + if(!myKinds.contains(type)) + myKinds.append(type); +} + +//======================================================================= +// function : addSubTypes +// purpose : +//======================================================================= +void GEOM_CompoundFilter::addSubTypes(const QList& kinds) +{ + myKinds = kinds; +} + +//======================================================================= +// function : getInfo() +// purpose : +//======================================================================= +void GEOM_CompoundFilter::getInfo(const TopoDS_Shape& aShape, bool subTypes[]) const +{ + int iType, nbTypes[TopAbs_SHAPE]; + for (iType = 0; iType < TopAbs_SHAPE; ++iType){ + nbTypes[iType] = 0; + subTypes[iType] = false; + } + + nbTypes[aShape.ShapeType()]++; + TopTools_MapOfShape aMapOfShape; + aMapOfShape.Add(aShape); + TopTools_ListOfShape aListOfShape; + aListOfShape.Append(aShape); + + TopTools_ListIteratorOfListOfShape itL (aListOfShape); + for (; itL.More(); itL.Next()) { + TopoDS_Iterator it (itL.Value()); + for (; it.More(); it.Next()) { + TopoDS_Shape s = it.Value(); + if (aMapOfShape.Add(s)) { + aListOfShape.Append(s); + nbTypes[s.ShapeType()]++; + } + } + } + + for(iType = TopAbs_COMPSOLID; iType < TopAbs_SHAPE; ++iType) { + if(nbTypes[iType] > 0) { + subTypes[iType] = true; + break; + } + } +} diff --git a/src/GEOMFiltersSelection/GEOM_CompoundFilter.h b/src/GEOMFiltersSelection/GEOM_CompoundFilter.h new file mode 100644 index 000000000..ea174a813 --- /dev/null +++ b/src/GEOMFiltersSelection/GEOM_CompoundFilter.h @@ -0,0 +1,48 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +#ifndef GEOM_COMPOUNDFILTER_H +#define GEOM_COMPOUNDFILTER_H +#include "GEOM_SelectionFilter.h" + +#include + +class Standard_EXPORT GEOM_CompoundFilter : public GEOM_SelectionFilter +{ + public: + GEOM_CompoundFilter( SalomeApp_Study* study ); + ~GEOM_CompoundFilter(); + + virtual bool isOk( const SUIT_DataOwner* ) const; + void addSubType(const int ); + void addSubTypes(const QList& ); + + private: + void getInfo(const TopoDS_Shape&, bool subTypes []) const; + + + private: + QList myKinds; +}; + + +#endif + diff --git a/src/GEOMFiltersSelection/GEOM_EdgeFilter.cxx b/src/GEOMFiltersSelection/GEOM_EdgeFilter.cxx index a73bb3eb2..c47f8b793 100644 --- a/src/GEOMFiltersSelection/GEOM_EdgeFilter.cxx +++ b/src/GEOMFiltersSelection/GEOM_EdgeFilter.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "GEOM_EdgeFilter.h" diff --git a/src/GEOMFiltersSelection/GEOM_EdgeFilter.h b/src/GEOMFiltersSelection/GEOM_EdgeFilter.h index 3cc49eecf..9977bdf65 100644 --- a/src/GEOMFiltersSelection/GEOM_EdgeFilter.h +++ b/src/GEOMFiltersSelection/GEOM_EdgeFilter.h @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef GEOM_EDGEFILTER_H #define GEOM_EDGEFILTER_H diff --git a/src/GEOMFiltersSelection/GEOM_EdgeFilter.hxx b/src/GEOMFiltersSelection/GEOM_EdgeFilter.hxx deleted file mode 100644 index 54a19c1de..000000000 --- a/src/GEOMFiltersSelection/GEOM_EdgeFilter.hxx +++ /dev/null @@ -1,108 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_EdgeFilter.hxx -// Module : GEOM - -#ifndef _GEOM_EdgeFilter_HeaderFile -#define _GEOM_EdgeFilter_HeaderFile - -#ifndef _Handle_GEOM_EdgeFilter_HeaderFile -#include "Handle_GEOM_EdgeFilter.hxx" -#endif - -#include "SALOME_InteractiveObject.hxx" -#include "GEOM_ShapeTypeFilter.hxx" - -// IDL Headers -#include -#include CORBA_SERVER_HEADER(GEOM_Gen) -#include CORBA_SERVER_HEADER(SALOMEDS_Attributes) - -// Open CASCADE Includes -#include -#include - -class GEOM_EdgeFilter : public GEOM_ShapeTypeFilter { - -public: - - inline void* operator new(size_t,void* anAddress) - { - return anAddress; - } - inline void* operator new(size_t size) - { - return Standard::Allocate(size); - } - inline void operator delete(void *anAddress) - { - if (anAddress) Standard::Free((Standard_Address&)anAddress); - } -// inline void operator delete(void *anAddress, size_t size) -// { -// if (anAddress) Standard::Free((Standard_Address&)anAddress,size); -// } - // Methods PUBLIC - // -Standard_EXPORT GEOM_EdgeFilter( const StdSelect_TypeOfEdge Edge ); -Standard_EXPORT ~GEOM_EdgeFilter(); - - - // Type management - // - Standard_EXPORT friend Handle_Standard_Type& GEOM_EdgeFilter_Type_(); - Standard_EXPORT const Handle(Standard_Type)& DynamicType() const; - Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const; - -protected: - - // Methods PROTECTED - // - Standard_EXPORT virtual Standard_Boolean IsShapeOk(const TopoDS_Shape& theShape ) const; - - // Fields PROTECTED - // -StdSelect_TypeOfEdge myKind; - -private: - - // Methods PRIVATE - // - - - // Fields PRIVATE - // - - -}; - - - - - -// other inline functions and methods (like "C++: function call" methods) -// - - -#endif diff --git a/src/GEOMFiltersSelection/GEOM_EdgeFilter.ixx b/src/GEOMFiltersSelection/GEOM_EdgeFilter.ixx deleted file mode 100644 index 1b3af3248..000000000 --- a/src/GEOMFiltersSelection/GEOM_EdgeFilter.ixx +++ /dev/null @@ -1,83 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_EdgeFilter.ixx -// Module : GEOM - -#include "GEOM_EdgeFilter.jxx" - -#ifndef _Standard_TypeMismatch_HeaderFile -#include -#endif - -GEOM_EdgeFilter::~GEOM_EdgeFilter() {} - - - -Standard_EXPORT Handle_Standard_Type& GEOM_EdgeFilter_Type_() -{ - - static Handle_Standard_Type aType1 = STANDARD_TYPE(GEOM_ShapeTypeFilter); - if ( aType1.IsNull()) aType1 = STANDARD_TYPE(GEOM_ShapeTypeFilter); - static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared); - if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared); - static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient); - if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient); - - - static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL}; - static Handle_Standard_Type _aType = new Standard_Type("GEOM_EdgeFilter", - sizeof(GEOM_EdgeFilter), - 1, - (Standard_Address)_Ancestors, - (Standard_Address)NULL); - - return _aType; -} - - -// DownCast method -// allow safe downcasting -// -const Handle(GEOM_EdgeFilter) Handle(GEOM_EdgeFilter)::DownCast(const Handle(Standard_Transient)& AnObject) -{ - Handle(GEOM_EdgeFilter) _anOtherObject; - - if (!AnObject.IsNull()) { - if (AnObject->IsKind(STANDARD_TYPE(GEOM_EdgeFilter))) { - _anOtherObject = Handle(GEOM_EdgeFilter)((Handle(GEOM_EdgeFilter)&)AnObject); - } - } - - return _anOtherObject ; -} -const Handle(Standard_Type)& GEOM_EdgeFilter::DynamicType() const -{ - return STANDARD_TYPE(GEOM_EdgeFilter) ; -} -Standard_Boolean GEOM_EdgeFilter::IsKind(const Handle(Standard_Type)& AType) const -{ - return (STANDARD_TYPE(GEOM_EdgeFilter) == AType || GEOM_ShapeTypeFilter::IsKind(AType)); -} -Handle_GEOM_EdgeFilter::~Handle_GEOM_EdgeFilter() {} - diff --git a/src/GEOMFiltersSelection/GEOM_EdgeFilter.jxx b/src/GEOMFiltersSelection/GEOM_EdgeFilter.jxx deleted file mode 100644 index 791245987..000000000 --- a/src/GEOMFiltersSelection/GEOM_EdgeFilter.jxx +++ /dev/null @@ -1,29 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_EdgeFilter.jxx -// Module : GEOM - -#ifndef _GEOM_EdgeFilter_HeaderFile -#include "GEOM_EdgeFilter.hxx" -#endif diff --git a/src/GEOMFiltersSelection/GEOM_FaceFilter.cxx b/src/GEOMFiltersSelection/GEOM_FaceFilter.cxx index 732165db7..9b126852c 100644 --- a/src/GEOMFiltersSelection/GEOM_FaceFilter.cxx +++ b/src/GEOMFiltersSelection/GEOM_FaceFilter.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "GEOM_FaceFilter.h" diff --git a/src/GEOMFiltersSelection/GEOM_FaceFilter.h b/src/GEOMFiltersSelection/GEOM_FaceFilter.h index 03a154218..9f68f01a8 100644 --- a/src/GEOMFiltersSelection/GEOM_FaceFilter.h +++ b/src/GEOMFiltersSelection/GEOM_FaceFilter.h @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef GEOM_FACEFILTER_H #define GEOM_FACEFILTER_H diff --git a/src/GEOMFiltersSelection/GEOM_FaceFilter.hxx b/src/GEOMFiltersSelection/GEOM_FaceFilter.hxx deleted file mode 100644 index 7184542d4..000000000 --- a/src/GEOMFiltersSelection/GEOM_FaceFilter.hxx +++ /dev/null @@ -1,110 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_FaceFilter.hxx -// Module : GEOM - -#ifndef _GEOM_FaceFilter_HeaderFile -#define _GEOM_FaceFilter_HeaderFile - -#ifndef _Handle_GEOM_FaceFilter_HeaderFile -#include "Handle_GEOM_FaceFilter.hxx" -#endif - -#include "GEOM_ShapeTypeFilter.hxx" - -// IDL Headers -#include -#include CORBA_SERVER_HEADER(GEOM_Gen) -#include CORBA_SERVER_HEADER(SALOMEDS_Attributes) - -// Open CASCADE Includes -#include -#include - -class GEOM_FaceFilter : public GEOM_ShapeTypeFilter { - -public: - - inline void* operator new(size_t,void* anAddress) - { - return anAddress; - } - inline void* operator new(size_t size) - { - return Standard::Allocate(size); - } - inline void operator delete(void *anAddress) - { - if (anAddress) Standard::Free((Standard_Address&)anAddress); - } -// inline void operator delete(void *anAddress, size_t size) -// { -// if (anAddress) Standard::Free((Standard_Address&)anAddress,size); -// } - // Methods PUBLIC - // -Standard_EXPORT GEOM_FaceFilter( const StdSelect_TypeOfFace Face ); -Standard_EXPORT ~GEOM_FaceFilter(); - - - - - // Type management - // - Standard_EXPORT friend Handle_Standard_Type& GEOM_FaceFilter_Type_(); - Standard_EXPORT const Handle(Standard_Type)& DynamicType() const; - Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const; - -protected: - - // Methods PROTECTED - // - Standard_EXPORT virtual Standard_Boolean IsShapeOk(const TopoDS_Shape& theShape ) const; - - - // Fields PROTECTED - // -StdSelect_TypeOfFace myKind; - -private: - - // Methods PRIVATE - // - - - // Fields PRIVATE - // - - -}; - - - - - -// other inline functions and methods (like "C++: function call" methods) -// - - -#endif diff --git a/src/GEOMFiltersSelection/GEOM_FaceFilter.ixx b/src/GEOMFiltersSelection/GEOM_FaceFilter.ixx deleted file mode 100644 index 92b872d7b..000000000 --- a/src/GEOMFiltersSelection/GEOM_FaceFilter.ixx +++ /dev/null @@ -1,83 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_FaceFilter.ixx -// Module : GEOM - -#include "GEOM_FaceFilter.jxx" - -#ifndef _Standard_TypeMismatch_HeaderFile -#include -#endif - -GEOM_FaceFilter::~GEOM_FaceFilter() {} - - - -Standard_EXPORT Handle_Standard_Type& GEOM_FaceFilter_Type_() -{ - - static Handle_Standard_Type aType1 = STANDARD_TYPE(GEOM_ShapeTypeFilter); - if ( aType1.IsNull()) aType1 = STANDARD_TYPE(GEOM_ShapeTypeFilter); - static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared); - if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared); - static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient); - if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient); - - - static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL}; - static Handle_Standard_Type _aType = new Standard_Type("GEOM_FaceFilter", - sizeof(GEOM_FaceFilter), - 1, - (Standard_Address)_Ancestors, - (Standard_Address)NULL); - - return _aType; -} - - -// DownCast method -// allow safe downcasting -// -const Handle(GEOM_FaceFilter) Handle(GEOM_FaceFilter)::DownCast(const Handle(Standard_Transient)& AnObject) -{ - Handle(GEOM_FaceFilter) _anOtherObject; - - if (!AnObject.IsNull()) { - if (AnObject->IsKind(STANDARD_TYPE(GEOM_FaceFilter))) { - _anOtherObject = Handle(GEOM_FaceFilter)((Handle(GEOM_FaceFilter)&)AnObject); - } - } - - return _anOtherObject ; -} -const Handle(Standard_Type)& GEOM_FaceFilter::DynamicType() const -{ - return STANDARD_TYPE(GEOM_FaceFilter) ; -} -Standard_Boolean GEOM_FaceFilter::IsKind(const Handle(Standard_Type)& AType) const -{ - return (STANDARD_TYPE(GEOM_FaceFilter) == AType || GEOM_ShapeTypeFilter::IsKind(AType)); -} -Handle_GEOM_FaceFilter::~Handle_GEOM_FaceFilter() {} - diff --git a/src/GEOMFiltersSelection/GEOM_FaceFilter.jxx b/src/GEOMFiltersSelection/GEOM_FaceFilter.jxx deleted file mode 100644 index 43abd891a..000000000 --- a/src/GEOMFiltersSelection/GEOM_FaceFilter.jxx +++ /dev/null @@ -1,29 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_FaceFilter.jxx -// Module : GEOM - -#ifndef _GEOM_FaceFilter_HeaderFile -#include "GEOM_FaceFilter.hxx" -#endif diff --git a/src/GEOMFiltersSelection/GEOM_LogicalFilter.cxx b/src/GEOMFiltersSelection/GEOM_LogicalFilter.cxx index a67a99219..1f54c3854 100644 --- a/src/GEOMFiltersSelection/GEOM_LogicalFilter.cxx +++ b/src/GEOMFiltersSelection/GEOM_LogicalFilter.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "GEOM_LogicalFilter.h" @@ -23,7 +25,7 @@ // function : GEOM_LogicalFilter // purpose : //======================================================================= -GEOM_LogicalFilter::GEOM_LogicalFilter( const QPtrList& lst, const int op ) +GEOM_LogicalFilter::GEOM_LogicalFilter( const QList& lst, const int op ) : SUIT_SelectionFilter() { setFilters( lst ); @@ -45,8 +47,12 @@ GEOM_LogicalFilter::~GEOM_LogicalFilter() bool GEOM_LogicalFilter::isOk( const SUIT_DataOwner* owner ) const { GEOM_LogicalFilter* non_const_this = (GEOM_LogicalFilter*)this; - for ( SUIT_SelectionFilter* filter = non_const_this->myFilters.first(); filter; filter = non_const_this->myFilters.next() ) + QListIterator it( non_const_this->myFilters ); + while ( it.hasNext() ) { + SUIT_SelectionFilter* filter = it.next(); + if ( !filter ) continue; + if ( myOperation == LO_OR && filter->isOk( owner ) ) return true; if ( myOperation == LO_AND && !filter->isOk( owner ) ) @@ -62,7 +68,7 @@ bool GEOM_LogicalFilter::isOk( const SUIT_DataOwner* owner ) const // function : setFilters // purpose : //======================================================================= -void GEOM_LogicalFilter::setFilters( const QPtrList& lst ) +void GEOM_LogicalFilter::setFilters( const QList& lst ) { myFilters = lst; } @@ -80,7 +86,7 @@ void GEOM_LogicalFilter::setOperation( const int op ) // function : getFilters // purpose : //======================================================================= -QPtrList GEOM_LogicalFilter::getFilters() const +QList GEOM_LogicalFilter::getFilters() const { return myFilters; } diff --git a/src/GEOMFiltersSelection/GEOM_LogicalFilter.h b/src/GEOMFiltersSelection/GEOM_LogicalFilter.h index dbb590c49..d0ba7c683 100644 --- a/src/GEOMFiltersSelection/GEOM_LogicalFilter.h +++ b/src/GEOMFiltersSelection/GEOM_LogicalFilter.h @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef GEOM_LOGICALFILTER_H #define GEOM_LOGICALFILTER_H @@ -23,7 +25,7 @@ #include #include -#include +#include class Standard_EXPORT GEOM_LogicalFilter : public SUIT_SelectionFilter { @@ -31,19 +33,19 @@ public: enum { LO_OR, LO_AND, LO_NOT, LO_UNDEFINED }; public: - GEOM_LogicalFilter( const QPtrList& lst, const int op ); + GEOM_LogicalFilter( const QList& lst, const int op ); ~GEOM_LogicalFilter(); virtual bool isOk( const SUIT_DataOwner* ) const; - void setFilters( const QPtrList& lst ); + void setFilters( const QList& lst ); void setOperation( const int ); - QPtrList getFilters() const; + QList getFilters() const; int getOperation() const; private: - QPtrList myFilters; - int myOperation; + QList myFilters; + int myOperation; }; diff --git a/src/GEOMFiltersSelection/GEOM_LogicalFilter.hxx b/src/GEOMFiltersSelection/GEOM_LogicalFilter.hxx deleted file mode 100644 index eeb6e61d3..000000000 --- a/src/GEOMFiltersSelection/GEOM_LogicalFilter.hxx +++ /dev/null @@ -1,103 +0,0 @@ -// SALOME SALOMEGUI : implementation of desktop and GUI kernel -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_LogicalFilter.hxx -// Author : Sergey LITONIN -// Module : GEOM - -#ifndef _GEOM_LogicalFilter_HeaderFile -#define _GEOM_LogicalFilter_HeaderFile - -#include "SALOME_Filter.hxx" - -#include -#include -#include - -DEFINE_STANDARD_HANDLE( GEOM_LogicalFilter, SALOME_Filter ) - -DEFINE_BASECOLLECTION( GEOM_FilterColl, Handle(SALOME_Filter) ) -DEFINE_LIST( GEOM_ListOfFilter, GEOM_FilterColl, Handle(SALOME_Filter) ) - - -/* - Class : GEOM_LogicalFilter - Description : Filter for combaining several filters with logical operation (OR or AND) -*/ - -class GEOM_LogicalFilter : public SALOME_Filter -{ -public: - - enum { LO_OR, LO_AND, LO_NOT, LO_UNDEFINED }; - -public: - - GEOM_LogicalFilter( const GEOM_ListOfFilter&, const int ); - GEOM_LogicalFilter( const Handle(SALOME_Filter)&, const int ); - - - virtual ~GEOM_LogicalFilter(); - virtual Standard_Boolean IsOk( const Handle(SALOME_InteractiveObject)& ) const; - - void SetFilters( const GEOM_ListOfFilter& ); - void SetLogOp( const int ); - const GEOM_ListOfFilter& GetFilters() const; - int GetLogOp() const; - -private: - - GEOM_ListOfFilter myFilters; - int myLogOp; - -public: - DEFINE_STANDARD_RTTI( GEOM_LogicalFilter ) -}; - -#endif - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/GEOMFiltersSelection/GEOM_OCCFilter.cxx b/src/GEOMFiltersSelection/GEOM_OCCFilter.cxx index e62acd406..75027c74c 100644 --- a/src/GEOMFiltersSelection/GEOM_OCCFilter.cxx +++ b/src/GEOMFiltersSelection/GEOM_OCCFilter.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "GEOM_OCCFilter.h" diff --git a/src/GEOMFiltersSelection/GEOM_OCCFilter.h b/src/GEOMFiltersSelection/GEOM_OCCFilter.h index eccfc5f6a..c21fd356b 100644 --- a/src/GEOMFiltersSelection/GEOM_OCCFilter.h +++ b/src/GEOMFiltersSelection/GEOM_OCCFilter.h @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef GEOM_OCCFILTER_H #define GEOM_OCCFILTER_H diff --git a/src/GEOMFiltersSelection/GEOM_PreviewFilter.cxx b/src/GEOMFiltersSelection/GEOM_PreviewFilter.cxx index 1be775274..40ce102be 100644 --- a/src/GEOMFiltersSelection/GEOM_PreviewFilter.cxx +++ b/src/GEOMFiltersSelection/GEOM_PreviewFilter.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "GEOM_PreviewFilter.h" @@ -45,6 +47,6 @@ GEOM_PreviewFilter::~GEOM_PreviewFilter() bool GEOM_PreviewFilter::isOk( const SUIT_DataOwner* sOwner ) const { const LightApp_DataOwner* owner = dynamic_cast ( sOwner ); - return ( owner && strstr( owner->entry(), "TEMP" ) ); + return ( owner && strstr( owner->entry().toLatin1().constData(), "TEMP" ) ); } diff --git a/src/GEOMFiltersSelection/GEOM_PreviewFilter.h b/src/GEOMFiltersSelection/GEOM_PreviewFilter.h index e9c57f656..68b7f4644 100644 --- a/src/GEOMFiltersSelection/GEOM_PreviewFilter.h +++ b/src/GEOMFiltersSelection/GEOM_PreviewFilter.h @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef GEOM_PREVIEW_FILTER_H #define GEOM_PREVIEW_FILTER_H diff --git a/src/GEOMFiltersSelection/GEOM_PreviewFilter.hxx b/src/GEOMFiltersSelection/GEOM_PreviewFilter.hxx deleted file mode 100644 index 14117451e..000000000 --- a/src/GEOMFiltersSelection/GEOM_PreviewFilter.hxx +++ /dev/null @@ -1,102 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_PreviewFilter.hxx -// Module : GEOM - -#ifndef _GEOM_PreviewFilter_HeaderFile -#define _GEOM_PreviewFilter_HeaderFile - -#ifndef _Handle_GEOM_PreviewFilter_HeaderFile -#include "Handle_GEOM_PreviewFilter.hxx" -#endif - -#include "SALOME_InteractiveObject.hxx" -#include "SALOME_Filter.hxx" - -// IDL Headers - - -// Open CASCADE Includes -#include - -class GEOM_PreviewFilter : public SALOME_Filter { - -public: - - inline void* operator new(size_t,void* anAddress) - { - return anAddress; - } - inline void* operator new(size_t size) - { - return Standard::Allocate(size); - } - inline void operator delete(void *anAddress) - { - if (anAddress) Standard::Free((Standard_Address&)anAddress); - } - // Methods PUBLIC - // -Standard_EXPORT GEOM_PreviewFilter(); -Standard_EXPORT ~GEOM_PreviewFilter(); - -Standard_EXPORT virtual Standard_Boolean IsOk(const Handle(SALOME_InteractiveObject)& anobj) const; - - - // Type management - // - Standard_EXPORT friend Handle_Standard_Type& GEOM_PreviewFilter_Type_(); - Standard_EXPORT const Handle(Standard_Type)& DynamicType() const; - Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const; - -protected: - - // Methods PROTECTED - // - - - // Fields PROTECTED - // - -private: - - // Methods PRIVATE - // - - - // Fields PRIVATE - // - - -}; - - - - - -// other inline functions and methods (like "C++: function call" methods) -// - - -#endif diff --git a/src/GEOMFiltersSelection/GEOM_PreviewFilter.ixx b/src/GEOMFiltersSelection/GEOM_PreviewFilter.ixx deleted file mode 100644 index 2222f5188..000000000 --- a/src/GEOMFiltersSelection/GEOM_PreviewFilter.ixx +++ /dev/null @@ -1,83 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_PreviewFilter.ixx -// Module : GEOM - -#include "GEOM_PreviewFilter.jxx" - -#ifndef _Standard_TypeMismatch_HeaderFile -#include -#endif - -GEOM_PreviewFilter::~GEOM_PreviewFilter() {} - - - -Standard_EXPORT Handle_Standard_Type& GEOM_PreviewFilter_Type_() -{ - - static Handle_Standard_Type aType1 = STANDARD_TYPE(SALOME_Filter); - if ( aType1.IsNull()) aType1 = STANDARD_TYPE(SALOME_Filter); - static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared); - if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared); - static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient); - if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient); - - - static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL}; - static Handle_Standard_Type _aType = new Standard_Type("GEOM_PreviewFilter", - sizeof(GEOM_PreviewFilter), - 1, - (Standard_Address)_Ancestors, - (Standard_Address)NULL); - - return _aType; -} - - -// DownCast method -// allow safe downcasting -// -const Handle(GEOM_PreviewFilter) Handle(GEOM_PreviewFilter)::DownCast(const Handle(Standard_Transient)& AnObject) -{ - Handle(GEOM_PreviewFilter) _anOtherObject; - - if (!AnObject.IsNull()) { - if (AnObject->IsKind(STANDARD_TYPE(GEOM_PreviewFilter))) { - _anOtherObject = Handle(GEOM_PreviewFilter)((Handle(GEOM_PreviewFilter)&)AnObject); - } - } - - return _anOtherObject ; -} -const Handle(Standard_Type)& GEOM_PreviewFilter::DynamicType() const -{ - return STANDARD_TYPE(GEOM_PreviewFilter) ; -} -Standard_Boolean GEOM_PreviewFilter::IsKind(const Handle(Standard_Type)& AType) const -{ - return (STANDARD_TYPE(GEOM_PreviewFilter) == AType || SALOME_Filter::IsKind(AType)); -} -Handle_GEOM_PreviewFilter::~Handle_GEOM_PreviewFilter() {} - diff --git a/src/GEOMFiltersSelection/GEOM_PreviewFilter.jxx b/src/GEOMFiltersSelection/GEOM_PreviewFilter.jxx deleted file mode 100644 index 4342c9cdb..000000000 --- a/src/GEOMFiltersSelection/GEOM_PreviewFilter.jxx +++ /dev/null @@ -1,29 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_PreviewFilter.jxx -// Module : GEOM - -#ifndef _GEOM_PreviewFilter_HeaderFile -#include "GEOM_PreviewFilter.hxx" -#endif diff --git a/src/GEOMFiltersSelection/GEOM_SelectionFilter.cxx b/src/GEOMFiltersSelection/GEOM_SelectionFilter.cxx index 6d20b194c..a8360dc51 100644 --- a/src/GEOMFiltersSelection/GEOM_SelectionFilter.cxx +++ b/src/GEOMFiltersSelection/GEOM_SelectionFilter.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "GEOM_SelectionFilter.h" @@ -29,9 +31,6 @@ #include -#include - - //======================================================================= // function : GEOM_SelectionFilter // purpose : @@ -84,7 +83,7 @@ GEOM::GEOM_Object_ptr GEOM_SelectionFilter::getObject( const SUIT_DataOwner* sOw _PTR(Study) study = appStudy->studyDS(); QString entry = owner->entry(); - _PTR(SObject) aSO (study->FindObjectID(entry.latin1())), aRefSO; + _PTR(SObject) aSO (study->FindObjectID(entry.toStdString())), aRefSO; if( extractReference && aSO && aSO->ReferencedObject( aRefSO ) ) aSO = aRefSO; @@ -164,7 +163,7 @@ void GEOM_SelectionFilter::add( const int type ) void GEOM_SelectionFilter::remove( const int type ) { if ( contains( type ) ) - myTypes.remove( type ); + myTypes.removeAll( type ); } //======================================================================= diff --git a/src/GEOMFiltersSelection/GEOM_SelectionFilter.h b/src/GEOMFiltersSelection/GEOM_SelectionFilter.h index 45b0fd969..aca520747 100644 --- a/src/GEOMFiltersSelection/GEOM_SelectionFilter.h +++ b/src/GEOMFiltersSelection/GEOM_SelectionFilter.h @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef GEOM_SELECTIONFILTER_H #define GEOM_SELECTIONFILTER_H @@ -24,7 +26,7 @@ #include -#include +#include // IDL Headers #include @@ -52,7 +54,7 @@ protected: bool isShapeOk( const TopoDS_Shape& ) const; private: - QValueList myTypes; + QList myTypes; bool myAll; }; diff --git a/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.cxx b/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.cxx deleted file mode 100644 index 1de7bd2e0..000000000 --- a/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.cxx +++ /dev/null @@ -1,168 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_ShapeTypeFilter.cxx -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - -#include - -#include "GEOM_ShapeTypeFilter.ixx" -#include "SALOME_InteractiveObject.hxx" -#include "GEOM_Client.hxx" -#include "QAD_Application.h" -#include "QAD_Desktop.h" -#include "utilities.h" - -#include - -//======================================================================= -// function : getShape() -// purpose : returns a TopoDS_Shape stored in GEOM_Object -//======================================================================= -static bool getShape( const GEOM::GEOM_Object_ptr& theObject, TopoDS_Shape& theShape ) -{ - if ( !CORBA::is_nil( theObject ) ) - { - static GEOM::GEOM_Gen_var myGeom; - if(CORBA::is_nil(myGeom) { - Engines::Component_var comp = QAD_Application::getDesktop()->getEngine( "FactoryServer", "GEOM" ); - myGeom = GEOM::GEOM_Gen::_narrow( comp ); - } - TopoDS_Shape aTopoDSShape = GEOM_Client().GetShape( myGeom, theObject ); - - if ( !aTopoDSShape.IsNull() ) - { - theShape = aTopoDSShape; - return true; - } - } - return false; -} - -//======================================================================= -// function : ConvertIOinGEOMObject() -// purpose : -//======================================================================= -static GEOM::GEOM_Object_ptr convertIOinGEOMObject( - const Handle(SALOME_InteractiveObject)& theIO, Standard_Boolean& theResult ) -{ - theResult = Standard_False; - GEOM::GEOM_Object_var aReturnObject; - if ( !theIO.IsNull() ) - { - const char* anEntry = theIO->getEntry(); - SALOMEDS::SObject_var aSObj = - QAD_Application::getDesktop()->getActiveStudy()->getStudyDocument()->FindObjectID( anEntry ); - if ( !CORBA::is_nil( aSObj ) ) - { - aReturnObject = GEOM::GEOM_Object::_narrow( aSObj->GetObject() ); - theResult = !CORBA::is_nil( aReturnObject ); - } - } - return aReturnObject._retn(); -} - -//======================================================================= -// function : ShapeTypeFilter -// purpose : -//======================================================================= -GEOM_ShapeTypeFilter::GEOM_ShapeTypeFilter( const TopAbs_ShapeEnum theShapeType, - const bool theIsAll ) -{ - myIsAll = theIsAll; - myShapeTypes.Add( theShapeType ); - myTypeFilter = new SALOME_TypeFilter( "GEOM" ); -} - -//======================================================================= -// function : ShapeTypeFilter -// purpose : -//======================================================================= -GEOM_ShapeTypeFilter::GEOM_ShapeTypeFilter( const TColStd_MapOfInteger& theShapeTypes, - const bool theIsAll ) -{ - myIsAll = theIsAll; - myShapeTypes = theShapeTypes; - myTypeFilter = new SALOME_TypeFilter( "GEOM" ); -} - -//======================================================================= -// function : IsOk -// purpose : -//======================================================================= -Standard_Boolean GEOM_ShapeTypeFilter::IsOk( - const Handle(SALOME_InteractiveObject)& anObj ) const -{ - if ( !myTypeFilter->IsOk(anObj) ) - return Standard_False; - - Standard_Boolean aResult = Standard_False; - GEOM::GEOM_Object_ptr aGeomObj = convertIOinGEOMObject( anObj, aResult ); - if ( !CORBA::is_nil( aGeomObj ) && aResult && aGeomObj->IsShape() ) - { - if ( myIsAll ) - return true; - TopoDS_Shape aShape; - if ( getShape( aGeomObj, aShape ) ) - { - if ( myShapeTypes.Contains( aShape.ShapeType() ) ) - return IsShapeOk( aShape ); - } - } - return Standard_False; -} - -//======================================================================= -// function : IsShapeOk -// purpose : -//======================================================================= -Standard_Boolean GEOM_ShapeTypeFilter::IsShapeOk( const TopoDS_Shape& ) const -{ - return Standard_True; -} - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.hxx b/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.hxx deleted file mode 100644 index 5af6de182..000000000 --- a/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.hxx +++ /dev/null @@ -1,110 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_ShapeTypeFilter.hxx -// Module : GEOM - -#ifndef _GEOM_ShapeTypeFilter_HeaderFile -#define _GEOM_ShapeTypeFilter_HeaderFile - -#ifndef _Handle_GEOM_ShapeTypeFilter_HeaderFile -#include "Handle_GEOM_ShapeTypeFilter.hxx" -#endif - -#include "SALOME_InteractiveObject.hxx" -#include "SALOME_Filter.hxx" -#include "SALOME_TypeFilter.hxx" - -// IDL Headers -#include -#include CORBA_SERVER_HEADER(GEOM_Gen) -#include CORBA_SERVER_HEADER(SALOMEDS_Attributes) - -// Open CASCADE Includes -#include -#include -#include -#include - -class GEOM_ShapeTypeFilter : public SALOME_Filter -{ - -public: - - inline void* operator new(size_t,void* anAddress) - { - return anAddress; - } - inline void* operator new(size_t size) - { - return Standard::Allocate(size); - } - inline void operator delete(void *anAddress) - { - if (anAddress) Standard::Free((Standard_Address&)anAddress); - } - // Methods PUBLIC - // -Standard_EXPORT GEOM_ShapeTypeFilter( const TopAbs_ShapeEnum theShapeType, - const bool theIsAll = false ); -Standard_EXPORT GEOM_ShapeTypeFilter( const TColStd_MapOfInteger& theShapeTypes, - const bool theIsAll = false ); -Standard_EXPORT ~GEOM_ShapeTypeFilter(); - -Standard_EXPORT virtual Standard_Boolean IsOk(const Handle(SALOME_InteractiveObject)& anobj) const; - - - // Type management - // - Standard_EXPORT friend Handle_Standard_Type& GEOM_ShapeTypeFilter_Type_(); - Standard_EXPORT const Handle(Standard_Type)& DynamicType() const; - Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const; - -protected: - - // Methods PROTECTED - // - Standard_EXPORT virtual Standard_Boolean IsShapeOk(const TopoDS_Shape& theShape ) const; - - - // Fields PROTECTED - // -TColStd_MapOfInteger myShapeTypes; -Handle(SALOME_TypeFilter) myTypeFilter; - -private: - - bool myIsAll; - - -}; - - - - - -// other inline functions and methods (like "C++: function call" methods) -// - - -#endif diff --git a/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.ixx b/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.ixx deleted file mode 100644 index 86ca838f4..000000000 --- a/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.ixx +++ /dev/null @@ -1,83 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_ShapeTypeFilter.ixx -// Module : GEOM - -#include "GEOM_ShapeTypeFilter.jxx" - -#ifndef _Standard_TypeMismatch_HeaderFile -#include -#endif - -GEOM_ShapeTypeFilter::~GEOM_ShapeTypeFilter() {} - - - -Standard_EXPORT Handle_Standard_Type& GEOM_ShapeTypeFilter_Type_() -{ - - static Handle_Standard_Type aType1 = STANDARD_TYPE(SALOME_Filter); - if ( aType1.IsNull()) aType1 = STANDARD_TYPE(SALOME_Filter); - static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared); - if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared); - static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient); - if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient); - - - static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL}; - static Handle_Standard_Type _aType = new Standard_Type("GEOM_ShapeTypeFilter", - sizeof(GEOM_ShapeTypeFilter), - 1, - (Standard_Address)_Ancestors, - (Standard_Address)NULL); - - return _aType; -} - - -// DownCast method -// allow safe downcasting -// -const Handle(GEOM_ShapeTypeFilter) Handle(GEOM_ShapeTypeFilter)::DownCast(const Handle(Standard_Transient)& AnObject) -{ - Handle(GEOM_ShapeTypeFilter) _anOtherObject; - - if (!AnObject.IsNull()) { - if (AnObject->IsKind(STANDARD_TYPE(GEOM_ShapeTypeFilter))) { - _anOtherObject = Handle(GEOM_ShapeTypeFilter)((Handle(GEOM_ShapeTypeFilter)&)AnObject); - } - } - - return _anOtherObject ; -} -const Handle(Standard_Type)& GEOM_ShapeTypeFilter::DynamicType() const -{ - return STANDARD_TYPE(GEOM_ShapeTypeFilter) ; -} -Standard_Boolean GEOM_ShapeTypeFilter::IsKind(const Handle(Standard_Type)& AType) const -{ - return (STANDARD_TYPE(GEOM_ShapeTypeFilter) == AType || SALOME_Filter::IsKind(AType)); -} -Handle_GEOM_ShapeTypeFilter::~Handle_GEOM_ShapeTypeFilter() {} - diff --git a/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.jxx b/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.jxx deleted file mode 100644 index 0ddda3484..000000000 --- a/src/GEOMFiltersSelection/GEOM_ShapeTypeFilter.jxx +++ /dev/null @@ -1,29 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_ShapeTypeFilter.jxx -// Module : GEOM - -#ifndef _GEOM_ShapeTypeFilter_HeaderFile -#include "GEOM_ShapeTypeFilter.hxx" -#endif diff --git a/src/GEOMFiltersSelection/GEOM_TypeFilter.cxx b/src/GEOMFiltersSelection/GEOM_TypeFilter.cxx index daa00f0f1..a9bbde738 100644 --- a/src/GEOMFiltersSelection/GEOM_TypeFilter.cxx +++ b/src/GEOMFiltersSelection/GEOM_TypeFilter.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "GEOM_TypeFilter.h" diff --git a/src/GEOMFiltersSelection/GEOM_TypeFilter.h b/src/GEOMFiltersSelection/GEOM_TypeFilter.h index ec2235ee7..d1e57fb9a 100644 --- a/src/GEOMFiltersSelection/GEOM_TypeFilter.h +++ b/src/GEOMFiltersSelection/GEOM_TypeFilter.h @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef GEOM_TYPEFILTER_H #define GEOM_TYPEFILTER_H diff --git a/src/GEOMFiltersSelection/GEOM_TypeFilter.hxx b/src/GEOMFiltersSelection/GEOM_TypeFilter.hxx deleted file mode 100644 index 8be86f636..000000000 --- a/src/GEOMFiltersSelection/GEOM_TypeFilter.hxx +++ /dev/null @@ -1,90 +0,0 @@ -// GEOM GEOMGUI : Implementation of selection filters for GEOM module -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : GEOM_TypeFilter.hxx -// Author : Sergey LITONIN -// Module : GEOM - -#ifndef _GEOM_TypeFilter_HeaderFile -#define _GEOM_TypeFilter_HeaderFile - -#include "SALOME_TypeFilter.hxx" - -#include - -DEFINE_STANDARD_HANDLE( GEOM_TypeFilter, SALOME_TypeFilter ) - -/* - Class : GEOM_TypeFilter - Description : Filter for verifyimg type of geom object ( GEOM_POINT, GEOM_MARKER and so on ) -*/ - -class GEOM_TypeFilter : public SALOME_TypeFilter -{ - -public: - - GEOM_TypeFilter( const int ); - - - virtual ~GEOM_TypeFilter(); - virtual Standard_Boolean IsOk( const Handle(SALOME_InteractiveObject)& ) const; - - void SetType( const int ); - int GetType() const; - -private: - - int myType; - -public: - DEFINE_STANDARD_RTTI( GEOM_TypeFilter ) -}; - -#endif - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/GEOMFiltersSelection/Handle_GEOM_EdgeFilter.hxx b/src/GEOMFiltersSelection/Handle_GEOM_EdgeFilter.hxx deleted file mode 100644 index 37fb4c6da..000000000 --- a/src/GEOMFiltersSelection/Handle_GEOM_EdgeFilter.hxx +++ /dev/null @@ -1,100 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : Handle_GEOM_EdgeFilter.hxx -// Module : GEOM - -#ifndef _Handle_GEOM_EdgeFilter_HeaderFile -#define _Handle_GEOM_EdgeFilter_HeaderFile - -#ifndef _Standard_Macro_HeaderFile -#include -#endif -#ifndef _Standard_HeaderFile -#include -#endif - -#ifndef _Handle_GEOM_ShapeTypeFilter_HeaderFile -#include "Handle_GEOM_ShapeTypeFilter.hxx" -#endif - -class Standard_Transient; -class Handle_Standard_Type; -class Handle(GEOM_ShapeTypeFilter); -class GEOM_EdgeFilter; -Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOM_EdgeFilter); - -class Handle(GEOM_EdgeFilter) : public Handle(GEOM_ShapeTypeFilter) { - public: - inline void* operator new(size_t,void* anAddress) - { - return anAddress; - } - inline void* operator new(size_t size) - { - return Standard::Allocate(size); - } - inline void operator delete(void *anAddress) - { - if (anAddress) Standard::Free((Standard_Address&)anAddress); - } -// inline void operator delete(void *anAddress, size_t size) -// { -// if (anAddress) Standard::Free((Standard_Address&)anAddress,size); -// } - Handle(GEOM_EdgeFilter)():Handle(GEOM_ShapeTypeFilter)() {} - Handle(GEOM_EdgeFilter)(const Handle(GEOM_EdgeFilter)& aHandle) : Handle(GEOM_ShapeTypeFilter)(aHandle) - { - } - - Handle(GEOM_EdgeFilter)(const GEOM_EdgeFilter* anItem) : Handle(GEOM_ShapeTypeFilter)((GEOM_ShapeTypeFilter *)anItem) - { - } - - Handle(GEOM_EdgeFilter)& operator=(const Handle(GEOM_EdgeFilter)& aHandle) - { - Assign(aHandle.Access()); - return *this; - } - - Handle(GEOM_EdgeFilter)& operator=(const GEOM_EdgeFilter* anItem) - { - Assign((Standard_Transient *)anItem); - return *this; - } - - GEOM_EdgeFilter* operator->() - { - return (GEOM_EdgeFilter *)ControlAccess(); - } - - GEOM_EdgeFilter* operator->() const - { - return (GEOM_EdgeFilter *)ControlAccess(); - } - - Standard_EXPORT ~Handle(GEOM_EdgeFilter)(); - - Standard_EXPORT static const Handle(GEOM_EdgeFilter) DownCast(const Handle(Standard_Transient)& AnObject); -}; -#endif diff --git a/src/GEOMFiltersSelection/Handle_GEOM_FaceFilter.hxx b/src/GEOMFiltersSelection/Handle_GEOM_FaceFilter.hxx deleted file mode 100644 index e1b669f5c..000000000 --- a/src/GEOMFiltersSelection/Handle_GEOM_FaceFilter.hxx +++ /dev/null @@ -1,100 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : Handle_GEOM_FaceFilter.hxx -// Module : GEOM - -#ifndef _Handle_GEOM_FaceFilter_HeaderFile -#define _Handle_GEOM_FaceFilter_HeaderFile - -#ifndef _Standard_Macro_HeaderFile -#include -#endif -#ifndef _Standard_HeaderFile -#include -#endif - -#ifndef _Handle_GEOM_ShapeTypeFilter_HeaderFile -#include "Handle_GEOM_ShapeTypeFilter.hxx" -#endif - -class Standard_Transient; -class Handle_Standard_Type; -class Handle(GEOM_ShapeTypeFilter); -class GEOM_FaceFilter; -Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOM_FaceFilter); - -class Handle(GEOM_FaceFilter) : public Handle(GEOM_ShapeTypeFilter) { - public: - inline void* operator new(size_t,void* anAddress) - { - return anAddress; - } - inline void* operator new(size_t size) - { - return Standard::Allocate(size); - } - inline void operator delete(void *anAddress) - { - if (anAddress) Standard::Free((Standard_Address&)anAddress); - } -// inline void operator delete(void *anAddress, size_t size) -// { -// if (anAddress) Standard::Free((Standard_Address&)anAddress,size); -// } - Handle(GEOM_FaceFilter)():Handle(GEOM_ShapeTypeFilter)() {} - Handle(GEOM_FaceFilter)(const Handle(GEOM_FaceFilter)& aHandle) : Handle(GEOM_ShapeTypeFilter)(aHandle) - { - } - - Handle(GEOM_FaceFilter)(const GEOM_FaceFilter* anItem) : Handle(GEOM_ShapeTypeFilter)((GEOM_ShapeTypeFilter *)anItem) - { - } - - Handle(GEOM_FaceFilter)& operator=(const Handle(GEOM_FaceFilter)& aHandle) - { - Assign(aHandle.Access()); - return *this; - } - - Handle(GEOM_FaceFilter)& operator=(const GEOM_FaceFilter* anItem) - { - Assign((Standard_Transient *)anItem); - return *this; - } - - GEOM_FaceFilter* operator->() - { - return (GEOM_FaceFilter *)ControlAccess(); - } - - GEOM_FaceFilter* operator->() const - { - return (GEOM_FaceFilter *)ControlAccess(); - } - - Standard_EXPORT ~Handle(GEOM_FaceFilter)(); - - Standard_EXPORT static const Handle(GEOM_FaceFilter) DownCast(const Handle(Standard_Transient)& AnObject); -}; -#endif diff --git a/src/GEOMFiltersSelection/Handle_GEOM_PreviewFilter.hxx b/src/GEOMFiltersSelection/Handle_GEOM_PreviewFilter.hxx deleted file mode 100644 index a5d7c5312..000000000 --- a/src/GEOMFiltersSelection/Handle_GEOM_PreviewFilter.hxx +++ /dev/null @@ -1,100 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : Handle_GEOM_PreviewFilter -// Module : GEOM - -#ifndef _Handle_GEOM_PreviewFilter_HeaderFile -#define _Handle_GEOM_PreviewFilter_HeaderFile - -#ifndef _Standard_Macro_HeaderFile -#include -#endif -#ifndef _Standard_HeaderFile -#include -#endif - -#ifndef _Handle_SALOME_Filter_HeaderFile -#include "Handle_SALOME_Filter.hxx" -#endif - -class Standard_Transient; -class Handle_Standard_Type; -class Handle(SALOME_Filter); -class GEOM_PreviewFilter; -Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOM_PreviewFilter); - -class Handle(GEOM_PreviewFilter) : public Handle(SALOME_Filter) { - public: - inline void* operator new(size_t,void* anAddress) - { - return anAddress; - } - inline void* operator new(size_t size) - { - return Standard::Allocate(size); - } - inline void operator delete(void *anAddress) - { - if (anAddress) Standard::Free((Standard_Address&)anAddress); - } -// inline void operator delete(void *anAddress, size_t size) -// { -// if (anAddress) Standard::Free((Standard_Address&)anAddress,size); -// } - Handle(GEOM_PreviewFilter)():Handle(SALOME_Filter)() {} - Handle(GEOM_PreviewFilter)(const Handle(GEOM_PreviewFilter)& aHandle) : Handle(SALOME_Filter)(aHandle) - { - } - - Handle(GEOM_PreviewFilter)(const GEOM_PreviewFilter* anItem) : Handle(SALOME_Filter)((SALOME_Filter *)anItem) - { - } - - Handle(GEOM_PreviewFilter)& operator=(const Handle(GEOM_PreviewFilter)& aHandle) - { - Assign(aHandle.Access()); - return *this; - } - - Handle(GEOM_PreviewFilter)& operator=(const GEOM_PreviewFilter* anItem) - { - Assign((Standard_Transient *)anItem); - return *this; - } - - GEOM_PreviewFilter* operator->() - { - return (GEOM_PreviewFilter *)ControlAccess(); - } - - GEOM_PreviewFilter* operator->() const - { - return (GEOM_PreviewFilter *)ControlAccess(); - } - - Standard_EXPORT ~Handle(GEOM_PreviewFilter)(); - - Standard_EXPORT static const Handle(GEOM_PreviewFilter) DownCast(const Handle(Standard_Transient)& AnObject); -}; -#endif diff --git a/src/GEOMFiltersSelection/Handle_GEOM_ShapeTypeFilter.hxx b/src/GEOMFiltersSelection/Handle_GEOM_ShapeTypeFilter.hxx deleted file mode 100644 index c9de83ce3..000000000 --- a/src/GEOMFiltersSelection/Handle_GEOM_ShapeTypeFilter.hxx +++ /dev/null @@ -1,100 +0,0 @@ -// GEOM GEOMFiltersSelection : filter selector for the viewer -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// -// File : Handle_GEOM_ShapeTypeFilter.hxx -// Module : GEOM - -#ifndef _Handle_GEOM_ShapeTypeFilter_HeaderFile -#define _Handle_GEOM_ShapeTypeFilter_HeaderFile - -#ifndef _Standard_Macro_HeaderFile -#include -#endif -#ifndef _Standard_HeaderFile -#include -#endif - -#ifndef _Handle_SALOME_Filter_HeaderFile -#include "Handle_SALOME_Filter.hxx" -#endif - -class Standard_Transient; -class Handle_Standard_Type; -class Handle(SALOME_Filter); -class GEOM_ShapeTypeFilter; -Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOM_ShapeTypeFilter); - -class Handle(GEOM_ShapeTypeFilter) : public Handle(SALOME_Filter) { - public: - inline void* operator new(size_t,void* anAddress) - { - return anAddress; - } - inline void* operator new(size_t size) - { - return Standard::Allocate(size); - } - inline void operator delete(void *anAddress) - { - if (anAddress) Standard::Free((Standard_Address&)anAddress); - } -// inline void operator delete(void *anAddress, size_t size) -// { -// if (anAddress) Standard::Free((Standard_Address&)anAddress,size); -// } - Handle(GEOM_ShapeTypeFilter)():Handle(SALOME_Filter)() {} - Handle(GEOM_ShapeTypeFilter)(const Handle(GEOM_ShapeTypeFilter)& aHandle) : Handle(SALOME_Filter)(aHandle) - { - } - - Handle(GEOM_ShapeTypeFilter)(const GEOM_ShapeTypeFilter* anItem) : Handle(SALOME_Filter)((SALOME_Filter *)anItem) - { - } - - Handle(GEOM_ShapeTypeFilter)& operator=(const Handle(GEOM_ShapeTypeFilter)& aHandle) - { - Assign(aHandle.Access()); - return *this; - } - - Handle(GEOM_ShapeTypeFilter)& operator=(const GEOM_ShapeTypeFilter* anItem) - { - Assign((Standard_Transient *)anItem); - return *this; - } - - GEOM_ShapeTypeFilter* operator->() - { - return (GEOM_ShapeTypeFilter *)ControlAccess(); - } - - GEOM_ShapeTypeFilter* operator->() const - { - return (GEOM_ShapeTypeFilter *)ControlAccess(); - } - - Standard_EXPORT ~Handle(GEOM_ShapeTypeFilter)(); - - Standard_EXPORT static const Handle(GEOM_ShapeTypeFilter) DownCast(const Handle(Standard_Transient)& AnObject); -}; -#endif diff --git a/src/GEOMFiltersSelection/Makefile.am b/src/GEOMFiltersSelection/Makefile.am index 43f5b0d17..d84453a4e 100644 --- a/src/GEOMFiltersSelection/Makefile.am +++ b/src/GEOMFiltersSelection/Makefile.am @@ -1,75 +1,72 @@ -# GEOM GEOMFiltersSelection : filter selector for the viewer +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM GEOMFiltersSelection : filter selector for the viewer +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : GEOMFiltersSelection # -# File : Makefile.in -# Author : Patrick GOLDBRONN (CEA) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header$ - include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libGEOMFiltersSelection.la # header files -salomeinclude_HEADERS = \ - GEOM_SelectionFilter.h \ - GEOM_EdgeFilter.h \ - GEOM_FaceFilter.h \ - GEOM_TypeFilter.h \ - GEOM_PreviewFilter.h \ - GEOM_LogicalFilter.h \ - GEOM_OCCFilter.h +salomeinclude_HEADERS = \ + GEOM_SelectionFilter.h \ + GEOM_EdgeFilter.h \ + GEOM_FaceFilter.h \ + GEOM_TypeFilter.h \ + GEOM_PreviewFilter.h \ + GEOM_LogicalFilter.h \ + GEOM_OCCFilter.h \ + GEOM_CompoundFilter.h # Sources dist_libGEOMFiltersSelection_la_SOURCES = \ - GEOM_SelectionFilter.cxx \ - GEOM_EdgeFilter.cxx \ - GEOM_FaceFilter.cxx \ - GEOM_TypeFilter.cxx \ - GEOM_PreviewFilter.cxx \ - GEOM_LogicalFilter.cxx \ - GEOM_OCCFilter.cxx + GEOM_SelectionFilter.cxx \ + GEOM_EdgeFilter.cxx \ + GEOM_FaceFilter.cxx \ + GEOM_TypeFilter.cxx \ + GEOM_PreviewFilter.cxx \ + GEOM_LogicalFilter.cxx \ + GEOM_OCCFilter.cxx \ + GEOM_CompoundFilter.cxx -# LIB_CLIENT_IDL= GEOM_Gen.idl SALOMEDS.idl SALOME_Exception.idl SALOME_GenericObj.idl SALOME_Component.idl +# additional information to compile and link file - -# additionnal information to compil and link file -libGEOMFiltersSelection_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(BOOST_CPPFLAGS) \ - $(GUI_CXXFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMClient \ - -I$(top_builddir)/idl \ +libGEOMFiltersSelection_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(BOOST_CPPFLAGS) \ + $(GUI_CXXFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMClient \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix libGEOMFiltersSelection_la_LDFLAGS = \ - ../../idl/libSalomeIDLGEOM.la \ - ../GEOMClient/libGEOMClient.la \ - $(GUI_LDFLAGS) -lsuit -lSalomeApp -lSalomeSession \ + ../../idl/libSalomeIDLGEOM.la \ + ../GEOMClient/libGEOMClient.la \ + $(GUI_LDFLAGS) -lsuit -lSalomeApp -lSalomeSession \ $(KERNEL_LDFLAGS) -lSalomeLifeCycleCORBA -lSalomeContainer -lTOOLSDS diff --git a/src/GEOMGUI/GEOMGUI.cxx b/src/GEOMGUI/GEOMGUI.cxx index aa6f6eae1..c6797a789 100644 --- a/src/GEOMGUI/GEOMGUI.cxx +++ b/src/GEOMGUI/GEOMGUI.cxx @@ -1,39 +1,33 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMGUI.cxx +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) // -// File : GEOMGUI.cxx -// Author : Vadim SANDLER -// Module : GEOM -// $Header$ - #include "GEOMGUI.h" - -#include "SUIT_Desktop.h" -#include "SUIT_ViewWindow.h" - #include "GeometryGUI.h" -#include +#include +#include //================================================================================= // class : GEOMGUI::GEOMGUI diff --git a/src/GEOMGUI/GEOMGUI.h b/src/GEOMGUI/GEOMGUI.h index 8874590bb..afb014ab2 100644 --- a/src/GEOMGUI/GEOMGUI.h +++ b/src/GEOMGUI/GEOMGUI.h @@ -1,37 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : GEOMGUI.h -// Author : Vadim SANDLER -// Module : GEOM -// $Header$ - -#if !defined( __GEOMGUI_H ) -#define __GEOMGUI_H +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMGUI.h +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +// +#ifndef GEOMGUI_H +#define GEOMGUI_H #include "GEOM_GEOMGUI.hxx" -#include +#include class SUIT_Desktop; class SUIT_ViewWindow; @@ -67,5 +64,5 @@ private: GeometryGUI* myGeometryGUI; }; -#endif // __GEOMGUI_H +#endif // GEOMGUI_H diff --git a/src/GEOMGUI/GEOMGUI.pro b/src/GEOMGUI/GEOMGUI.pro new file mode 100644 index 000000000..9e95a0a26 --- /dev/null +++ b/src/GEOMGUI/GEOMGUI.pro @@ -0,0 +1,85 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GEOM +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +GUI_LDFLAGS = -L$$(GUI_ROOT_DIR)/lib/salome + +INCLUDEPATH += $${QT_INCLUDES} $${VTK_INCLUDES} $${CAS_CPPFLAGS} $${PYTHON_INCLUDES} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} $${CORBA_INCLUDES} ../OBJECT ../GEOMFiltersSelection ../GEOMClient ../GEOMImpl $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lGEOMFiltersSelection -lGEOMClient -lGEOMObject $${KERNEL_LDFLAGS} -lSalomeLifeCycleCORBA $${GUI_LDFLAGS} -lOCCViewer -lVTKViewer -lCAM -lSOCC -lSVTK -lEvent + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += GEOMGUI_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +HEADERS = GeometryGUI.h +HEADERS += GEOMGUI.h +HEADERS += GEOM_Displayer.h +HEADERS += GEOMGUI_OCCSelector.h +HEADERS += GEOMGUI_Selection.h +HEADERS += GeometryGUI_Swig.hxx +HEADERS += GeometryGUI_Swig.i +HEADERS += GEOM_GEOMGUI.hxx + +SOURCES = GeometryGUI.cxx +SOURCES += GEOMGUI.cxx +SOURCES += GEOM_Displayer.cxx +SOURCES += GEOMGUI_OCCSelector.cxx +SOURCES += GEOMGUI_Selection.cxx +SOURCES += GeometryGUI_Swig.cxx + +TRANSLATIONS = GEOM_images.ts \ + GEOM_msg_en.ts \ + GEOM_msg_fr.ts + +includes.files = $$HEADERS +includes.path = ../../include + +resources.files = *.qm +resources.path = ../../resources + +INSTALLS += includes resources diff --git a/src/GEOMGUI/GEOMGUI_OCCSelector.cxx b/src/GEOMGUI/GEOMGUI_OCCSelector.cxx index 0cd04c86f..6fed25fa8 100644 --- a/src/GEOMGUI/GEOMGUI_OCCSelector.cxx +++ b/src/GEOMGUI/GEOMGUI_OCCSelector.cxx @@ -1,23 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : GEOMGUI_OCCSelector.cxx +// Author : Alexander SOLOVYOV, Open CASCADE S.A.S. (alexander.solovyov@opencascade.com) // - #include "GEOMGUI_OCCSelector.h" #include @@ -100,6 +104,7 @@ void GEOMGUI_OCCSelector::getSelection( SUIT_DataOwnerPtrList& aList ) const if (!bigShape.IsEqual(curBigShape)) { curBigShape = bigShape; + subShapes.Clear(); TopExp::MapShapes(bigShape, subShapes); } index = subShapes.FindIndex(subShape); @@ -211,12 +216,12 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList ) { QString entry = subOwner->entry(); #ifndef WNT - if ( indexesMap.IsBound( TCollection_AsciiString((char*)entry.latin1()))) + if ( indexesMap.IsBound( TCollection_AsciiString(entry.toLatin1().data()))) #else - if ( indexesMap.IsBound( (char*)entry.latin1())) + if ( indexesMap.IsBound( entry.toLatin1().data() ) ) #endif { - TColStd_IndexedMapOfInteger& subIndexes = indexesMap.ChangeFind((char*)entry.latin1()); + TColStd_IndexedMapOfInteger& subIndexes = indexesMap.ChangeFind(entry.toLatin1().data()); subIndexes.Add( subOwner->index() ); //indexesMap.replace( entry, subIndexes ); } @@ -224,7 +229,7 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList ) { TColStd_IndexedMapOfInteger subIndexes; subIndexes.Add( subOwner->index() ); - indexesMap.Bind((char*)entry.latin1(), subIndexes); + indexesMap.Bind(entry.toLatin1().data(), subIndexes); } } else // the owner is NOT a sub owner, maybe it is a DataOwner == GLOBAL selection @@ -268,10 +273,11 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList ) { // has a local selection Handle(AIS_Shape) aisShape = Handle(AIS_Shape)::DownCast( io ); - if (!aisShape.IsNull() && indexesMap.IsBound((char*)entryStr.latin1())) + if (!aisShape.IsNull() && indexesMap.IsBound(entryStr.toLatin1().data())) { isLocal = true; TopoDS_Shape shape = aisShape->Shape(); + aMapOfShapes.Clear(); TopExp::MapShapes(shape, aMapOfShapes); } } @@ -298,7 +304,7 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList ) if (isLocal) { const TColStd_IndexedMapOfInteger& subIndexes = - indexesMap.ChangeFind((char*)entryStr.latin1()); + indexesMap.ChangeFind(entryStr.toLatin1().data()); const TopoDS_Shape& aSubShape = anOwner->Shape(); int aSubShapeId = aMapOfShapes.FindIndex( aSubShape ); diff --git a/src/GEOMGUI/GEOMGUI_OCCSelector.h b/src/GEOMGUI/GEOMGUI_OCCSelector.h index 81be7bc3b..ff16ecf25 100644 --- a/src/GEOMGUI/GEOMGUI_OCCSelector.h +++ b/src/GEOMGUI/GEOMGUI_OCCSelector.h @@ -1,21 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMGUI_OCCSelector.h +// Author : Alexander SOLOVYOV, Open CASCADE S.A.S. (alexander.solovyov@opencascade.com) // #ifndef GEOMGUI_OCCSELECTOR_H #define GEOMGUI_OCCSELECTOR_H @@ -36,4 +42,4 @@ protected: }; -#endif +#endif // GEOMGUI_OCCSELECTOR_H diff --git a/src/GEOMGUI/GEOMGUI_Selection.cxx b/src/GEOMGUI/GEOMGUI_Selection.cxx index 70cb563b5..d89088f61 100644 --- a/src/GEOMGUI/GEOMGUI_Selection.cxx +++ b/src/GEOMGUI/GEOMGUI_Selection.cxx @@ -1,40 +1,39 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : GEOMGUI_Selection.cxx +// Author : Alexander SOLOVYOV, Open CASCADE S.A.S. (alexander.solovyov@opencascade.com) // #include "GEOMGUI_Selection.h" #include "GeometryGUI.h" #include "GEOM_Displayer.h" -#include #include #include -#include - +#include #include #include #include -#include - -#include -#include #include #include @@ -46,7 +45,7 @@ #include #include -#include "GEOMImpl_Types.hxx" +#include // OCCT Includes #include @@ -57,6 +56,7 @@ #include GEOMGUI_Selection::GEOMGUI_Selection() +: LightApp_Selection() { } @@ -64,28 +64,28 @@ GEOMGUI_Selection::~GEOMGUI_Selection() { } -QtxValue GEOMGUI_Selection::globalParam( const QString& p ) const +QVariant GEOMGUI_Selection::parameter( const QString& p ) const { - if ( p == "isOCC" ) return QtxValue( activeViewType() == OCCViewer_Viewer::Type() ); + if ( p == "isOCC" ) return QVariant( activeViewType() == OCCViewer_Viewer::Type() ); if ( p == "selectionmode" ){ - return QtxValue(selectionMode()); + return QVariant(selectionMode()); } - return LightApp_Selection::globalParam( p ); + return LightApp_Selection::parameter( p ); } -QtxValue GEOMGUI_Selection::param( const int ind, const QString& p ) const +QVariant GEOMGUI_Selection::parameter( const int ind, const QString& p ) const { -// if ( p == "isVisible" ) return QtxValue( isVisible( ind ) ); +// if ( p == "isVisible" ) return QVariant( isVisible( ind ) ); // parameter isVisible is calculated in base SalomeApp_Selection // else if( p == "type" ) - return QtxValue( typeName( ind ) ); + return QVariant( typeName( ind ) ); else if ( p == "displaymode" ) - return QtxValue( displayMode( ind ) ); + return QVariant( displayMode( ind ) ); else if ( p == "isAutoColor" ) - return QtxValue( isAutoColor( ind ) ); + return QVariant( isAutoColor( ind ) ); else - return LightApp_Selection::param( ind, p ); + return LightApp_Selection::parameter( ind, p ); } QString GEOMGUI_Selection::typeName( const int index ) const @@ -108,7 +108,7 @@ bool GEOMGUI_Selection::isVisible( const int index ) const GEOM::GEOM_Object_var obj = getObject( index ); SALOME_View* view = GEOM_Displayer::GetActiveView(); if ( !CORBA::is_nil( obj ) && view ) { - Handle(SALOME_InteractiveObject) io = new SALOME_InteractiveObject( entry( index ).latin1(), "GEOM", "TEMP_IO" ); + Handle(SALOME_InteractiveObject) io = new SALOME_InteractiveObject( entry( index ).toLatin1().constData(), "GEOM", "TEMP_IO" ); return view->isVisible( io ); } return false; @@ -127,7 +127,7 @@ QString GEOMGUI_Selection::displayMode( const int index ) const SALOME_View* view = GEOM_Displayer::GetActiveView(); QString viewType = activeViewType(); if ( view /*fix for 9320==>*/&& ( viewType == OCCViewer_Viewer::Type() || viewType == SVTK_Viewer::Type() ) ) { - SALOME_Prs* prs = view->CreatePrs( entry( index ) ); + SALOME_Prs* prs = view->CreatePrs( entry( index ).toLatin1().constData() ); if ( prs ) { if ( viewType == OCCViewer_Viewer::Type() ) { // assuming OCC SOCC_Prs* occPrs = (SOCC_Prs*) prs; @@ -187,7 +187,7 @@ bool GEOMGUI_Selection::isComponent( const int index ) const QString anEntry = entry( index ); if ( study && !anEntry.isNull() ) { - _PTR(SObject) aSO( study->FindObjectID( anEntry.latin1() ) ); + _PTR(SObject) aSO( study->FindObjectID( anEntry.toStdString() ) ); if ( aSO && aSO->GetFatherComponent() ) return aSO->GetFatherComponent()->GetIOR() == aSO->GetIOR(); } @@ -205,7 +205,7 @@ GEOM::GEOM_Object_ptr GEOMGUI_Selection::getObject( const int index ) const QString anEntry = entry(index); if (study && !anEntry.isNull()) { - _PTR(SObject) aSO (study->FindObjectID(anEntry.latin1())); + _PTR(SObject) aSO (study->FindObjectID(anEntry.toStdString())); if (aSO) { CORBA::Object_var anObj = GeometryGUI::ClientSObjectToObject(aSO); return GEOM::GEOM_Object::_narrow(anObj); diff --git a/src/GEOMGUI/GEOMGUI_Selection.h b/src/GEOMGUI/GEOMGUI_Selection.h index 5690229b4..35b90f225 100644 --- a/src/GEOMGUI/GEOMGUI_Selection.h +++ b/src/GEOMGUI/GEOMGUI_Selection.h @@ -1,6 +1,6 @@ -// GEOMGUI_Selection +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,17 +17,13 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// File : GEOMGUI_Selection.h +// Author : Alexander SOLOVYOV, Open CASCADE S.A.S. (alexander.solovyov@opencascade.com) // -// -// File : GEOMGUI_Selection.h -// Author : Alexander SOLOVYOV -// Module : GUI -// $Header$ - -#ifndef GEOMGUI_SELECTION_HeaderFile -#define GEOMGUI_SELECTION_HeaderFile +#ifndef GEOMGUI_SELECTION_H +#define GEOMGUI_SELECTION_H #include "GEOM_GEOMGUI.hxx" @@ -36,14 +32,16 @@ #include #include CORBA_SERVER_HEADER(GEOM_Gen) +class LightApp_SelectionMgr; + class GEOMGUI_EXPORT GEOMGUI_Selection : public LightApp_Selection { public: GEOMGUI_Selection(); virtual ~GEOMGUI_Selection(); - virtual QtxValue param( const int, const QString& ) const; - virtual QtxValue globalParam( const QString& ) const; + virtual QVariant parameter( const int, const QString& ) const; + virtual QVariant parameter( const QString& ) const; private: bool isVisible( const int ) const; @@ -56,4 +54,4 @@ private: GEOM::GEOM_Object_ptr getObject( const int ) const; }; -#endif +#endif // GEOMGUI_SELECTION_H diff --git a/src/GEOMGUI/GEOM_Displayer.cxx b/src/GEOMGUI/GEOM_Displayer.cxx index fdceadb4d..b183b3f53 100644 --- a/src/GEOMGUI/GEOM_Displayer.cxx +++ b/src/GEOMGUI/GEOM_Displayer.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,38 +17,36 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOM_Displayer.cxx +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) // -// -// File : GEOM_Displayer.cxx -// Author : Vadim SANDLER -// Module : GEOM -// $Header$ - #include "GEOM_Displayer.h" #include "GeometryGUI.h" -#include "GEOM_TypeFilter.h" -#include "GEOM_EdgeFilter.h" -#include "GEOM_FaceFilter.h" -#include "GEOM_PreviewFilter.h" -#include "GEOM_LogicalFilter.h" -#include "GEOM_OCCFilter.h" +#include +#include +#include +#include +#include +#include +#include -#include "GEOM_Actor.h" -#include "GEOM_AssemblyBuilder.h" -#include "GEOM_AISShape.hxx" -#include "GEOM_AISVector.hxx" -#include "GEOM_AISTrihedron.hxx" -#include "GEOM_VTKTrihedron.hxx" +#include +#include +#include +#include +#include +#include #include #include #include -#include #include +#include #include #include @@ -57,6 +55,8 @@ #include #include +#include +#include #include #include @@ -64,15 +64,11 @@ #include #include -#include -#include - // OCCT Includes #include #include #include #include -#include #include #include #include @@ -88,13 +84,10 @@ #include #include -// STL Includes -#include - // CORBA Headers #include CORBA_CLIENT_HEADER(SALOMEDS_Attributes) -#include "GEOMImpl_Types.hxx" +#include using namespace std; @@ -167,6 +160,30 @@ SUIT_SelectionFilter* GEOM_Displayer::getFilter( const int theMode ) return aFilter; } +//================================================================ +// Function : getComplexFilter +// Purpose : Get compound filter corresponding to the type of +// object from GEOMImpl_Types.h +//================================================================ +SUIT_SelectionFilter* GEOM_Displayer::getComplexFilter( const QList* aSubShapes) +{ + GEOM_CompoundFilter* aFilter; + + if(aSubShapes != NULL ) { + aFilter = new GEOM_CompoundFilter(getStudy()); + QList aTopAbsTypes; + QList::const_iterator it; + for(it = aSubShapes->constBegin(); it != aSubShapes->constEnd(); ++it ) { + int topAbsMode = getTopAbsMode(*it); + if(topAbsMode != -1 ) + aTopAbsTypes.append(topAbsMode); + } + aFilter->addSubTypes(aTopAbsTypes); + } + + return aFilter; +} + //================================================================ // Function : getEntry // Purpose : @@ -379,9 +396,10 @@ void GEOM_Displayer::Redisplay( const Handle(SALOME_InteractiveObject)& theIO, if ( app ) { SUIT_Desktop* desk = app->desktop(); - QPtrList wnds = desk->windows(); + QList wnds = desk->windows(); SUIT_ViewWindow* wnd; - for ( wnd = wnds.first(); wnd; wnd = wnds.next() ) + QListIterator it( wnds ); + while ( it.hasNext() && (wnd = it.next()) ) { SUIT_ViewManager* vman = wnd->getViewManager(); if ( vman ) @@ -612,6 +630,10 @@ void GEOM_Displayer::Update( SALOME_OCCPrs* prs ) anAspect = AISShape->Attributes()->WireAspect(); anAspect->SetColor( aColor ); AISShape->Attributes()->SetWireAspect( anAspect ); + + // bug [SALOME platform 0019868] + // Set deviation angle. Default one is 12 degrees (Prs3d_Drawer.cxx:18) + AISShape->SetOwnDeviationAngle( 10*PI/180 ); } } @@ -666,7 +688,7 @@ void GEOM_Displayer::Update( SALOME_OCCPrs* prs ) GEOM::GEOM_Object_var aMainObject = anOperations->GetMainShape( aGeomObject ); if ( !aMainObject->_is_nil() && aMainObject->GetAutoColor() ) { - QValueList aReservedColors; + QList aReservedColors; SalomeApp_Application* app = dynamic_cast( app ); CORBA::String_var IOR = app->orb()->object_to_string( aMainObject ); @@ -929,7 +951,7 @@ SALOME_Prs* GEOM_Displayer::buildPresentation( const QString& entry, if ( prs ) { Handle( SALOME_InteractiveObject ) theIO = new SALOME_InteractiveObject(); - theIO->setEntry( entry.latin1() ); + theIO->setEntry( entry.toLatin1().constData() ); if ( !theIO.IsNull() ) { // set interactive object @@ -1032,7 +1054,7 @@ void GEOM_Displayer::GlobalSelection( const int theMode, const bool update ) */ //================================================================= void GEOM_Displayer::GlobalSelection( const TColStd_MapOfInteger& theModes, - const bool update ) + const bool update, const QList* theSubShapes ) { SUIT_Session* session = SUIT_Session::session(); SalomeApp_Application* app = dynamic_cast( session->activeApplication() ); @@ -1076,16 +1098,26 @@ void GEOM_Displayer::GlobalSelection( const TColStd_MapOfInteger& theModes, if ( theModes.Extent() == 1 ) { int aMode = TColStd_MapIteratorOfMapOfInteger( theModes ).Key(); - aFilter = getFilter( aMode ); + + if ( aMode == GEOM_COMPOUNDFILTER ) + aFilter = getComplexFilter( theSubShapes ); + else + aFilter = getFilter( aMode ); } else if ( theModes.Extent() > 1 ) { TColStd_MapOfInteger aTopAbsModes; TColStd_MapIteratorOfMapOfInteger anIter( theModes ); - QPtrList aListOfFilters; + QList aListOfFilters; for ( ; anIter.More(); anIter.Next() ) { - SUIT_SelectionFilter* aFilter = getFilter( anIter.Key() ); + SUIT_SelectionFilter* aFilter; + int aMode = anIter.Key(); + if ( aMode == GEOM_COMPOUNDFILTER ) + aFilter = getComplexFilter( theSubShapes ); + else + aFilter = getFilter( aMode ); + if ( aFilter ) aListOfFilters.append( aFilter ); } @@ -1300,7 +1332,7 @@ int GEOM_Displayer::UnsetDisplayMode() return aPrevMode; } -SALOMEDS::Color GEOM_Displayer::getUniqueColor( const QValueList& theReservedColors ) +SALOMEDS::Color GEOM_Displayer::getUniqueColor( const QList& theReservedColors ) { int aHue = -1; int aTolerance = 64; @@ -1323,8 +1355,8 @@ SALOMEDS::Color GEOM_Displayer::getUniqueColor( const QValueList::const_iterator it = theReservedColors.constBegin(); - QValueList::const_iterator itEnd = theReservedColors.constEnd(); + QList::const_iterator it = theReservedColors.constBegin(); + QList::const_iterator itEnd = theReservedColors.constEnd(); for( ; it != itEnd; ++it ) { SALOMEDS::Color anAutoColor = *it; diff --git a/src/GEOMGUI/GEOM_Displayer.h b/src/GEOMGUI/GEOM_Displayer.h index 8c877c94f..90b551fc3 100644 --- a/src/GEOMGUI/GEOM_Displayer.h +++ b/src/GEOMGUI/GEOM_Displayer.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,31 +17,32 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOM_Displayer.h +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) // -// -// File : GEOM_Displayer.h -// Author : Vadim SANDLER -// Module : GEOM -// $Header$ - -#if !defined (__GEOM_DISPLAYER_H) -#define __GEOM_DISPLAYER_H - -using namespace std; +#ifndef GEOM_DISPLAYER_H +#define GEOM_DISPLAYER_H #include "GEOM_GEOMGUI.hxx" -#include "SALOME_Prs.h" -#include "SALOME_InteractiveObject.hxx" -#include "SALOME_ListIO.hxx" +#include + +class SALOME_ListIO; +class SALOME_View; +class SALOME_Prs; +class SALOME_OCCPrs; +class SALOME_VTKPrs; +class SALOME_OCCViewType; + #include #include #include #include -#include +#include #include @@ -148,11 +149,11 @@ public: void LocalSelection( const Handle(SALOME_InteractiveObject)&, const int ); void LocalSelection( const SALOME_ListIO& theIOList, const int ); void GlobalSelection( const int = GEOM_ALLOBJECTS, const bool = false ); - void GlobalSelection( const TColStd_MapOfInteger&, const bool = false ); + void GlobalSelection( const TColStd_MapOfInteger&, const bool = false, const QList* = 0 ); SalomeApp_Study* getStudy() const; - static SALOMEDS::Color getUniqueColor( const QValueList& ); + static SALOMEDS::Color getUniqueColor( const QList& ); protected: /* internal methods */ @@ -171,11 +172,12 @@ protected: void clearTemporary( LightApp_SelectionMgr* theSelMgr ); SUIT_SelectionFilter* getFilter( const int theMode ); + SUIT_SelectionFilter* getComplexFilter( const QList* ); protected: Handle(SALOME_InteractiveObject) myIO; TopoDS_Shape myShape; - string myName; + std::string myName; int myType; SALOME_View* myViewFrame; @@ -192,5 +194,5 @@ private: SalomeApp_Application* myApp; }; -#endif // __GEOM_DISPLAYER_H +#endif // GEOM_DISPLAYER_H diff --git a/src/GEOMGUI/GEOM_GEOMGUI.hxx b/src/GEOMGUI/GEOM_GEOMGUI.hxx index 9508b0d19..525dde08d 100755 --- a/src/GEOMGUI/GEOM_GEOMGUI.hxx +++ b/src/GEOMGUI/GEOM_GEOMGUI.hxx @@ -1,47 +1,38 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// File : GEOM_GEOMGUI.hxx -// Author : Alexander A. BORODIN -// Module : GEOM +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : GEOM_GEOMGUI.hxx +// Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +// +#ifndef GEOM_GEOMGUI_HXX +#define GEOM_GEOMGUI_HXX -#ifndef _GEOM_GEOMGUI_HXX_ -#define _GEOM_GEOMGUI_HXX_ - -#ifdef WNT - #if defined GEOMGUI_EXPORTS - #if defined WIN32 - #define GEOMGUI_EXPORT __declspec( dllexport ) - #else - #define GEOMGUI_EXPORT - #endif - #else - #if defined WIN32 - #define GEOMGUI_EXPORT __declspec( dllimport ) - #else - #define GEOMGUI_EXPORT - #endif - #endif +#if defined WIN32 +# if defined GEOMGUI_EXPORTS +# define GEOMGUI_EXPORT __declspec( dllexport ) +# else +# define GEOMGUI_EXPORT __declspec( dllimport ) +# endif #else - #define GEOMGUI_EXPORT +# define GEOMGUI_EXPORT #endif -#endif +#endif // GEOM_GEOMGUI_HXX diff --git a/src/GEOMGUI/GEOM_images.po b/src/GEOMGUI/GEOM_images.po index 01755c674..275247377 100644 --- a/src/GEOMGUI/GEOM_images.po +++ b/src/GEOMGUI/GEOM_images.po @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,12 +17,13 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # This is a Qt message file in .po format. Each msgid starts with # a scope. This scope should *NOT* be translated - eg. translating # from French to English, "Foo::Bar" would be translated to "Pub", # not "Foo::Pub". +# msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" diff --git a/src/GEOMGUI/GEOM_images.ts b/src/GEOMGUI/GEOM_images.ts new file mode 100644 index 000000000..a4c96d025 --- /dev/null +++ b/src/GEOMGUI/GEOM_images.ts @@ -0,0 +1,1009 @@ + + + + + @default + + ICON_DLG_ADD_POINT_ON_EDGE + pointonedge.png + + + ICON_DLG_ARC + arc.png + + + ICON_DLG_ARCHIMEDE + archimede.png + + + ICON_DLG_ARC_CENTER + arccenter.png + + + ICON_DLG_ARC_OF_ELLIPSE + arcofellipse.png + + + ICON_DLG_BASICPROPERTIES + basicproperties.png + + + ICON_DLG_BEZIER + bezier.png + + + ICON_DLG_BLOCK_2F + block_2f.png + + + ICON_DLG_BLOCK_6F + block_6f.png + + + ICON_DLG_BLOCK_EXPLODE + subblock.png + + + ICON_DLG_BLOCK_MULTITRSF_DOUBLE + block_multitrsf_double.png + + + ICON_DLG_BLOCK_MULTITRSF_SIMPLE + block_multitrsf_simple.png + + + ICON_DLG_BOUNDING_BOX + bounding.png + + + ICON_DLG_BOX_2P + box2points.png + + + ICON_DLG_BOX_DXYZ + boxdxyz.png + + + ICON_DLG_BUILD_COMPOUND + build_compound.png + + + ICON_DLG_DISK + disk.png + + + ICON_DLG_DISK_PNT_VEC_R + disk_pntvecr.png + + + ICON_DLG_DISK_THREE_POINTS + disk3points.png + + + ICON_DLG_DISK_R + disk_r.png + + + ICON_DLG_BUILD_EDGE + build_edge.png + + + ICON_DLG_BUILD_FACE + build_face.png + + + ICON_DLG_FACE_HW + face_hw.png + + + ICON_DLG_FACE_OBJ_HW + face_vechw.png + + + ICON_DLG_BUILD_SHELL + build_shell.png + + + ICON_DLG_BUILD_SOLID + build_solid.png + + + ICON_DLG_BUILD_WIRE + build_wire.png + + + ICON_DLG_CENTERMASS + centergravity.png + + + ICON_DLG_CHAMFER + chamfer.png + + + ICON_DLG_CHAMFER_ALL + chamferall.png + + + ICON_DLG_CHAMFER_EDGE + chamferedge.png + + + ICON_DLG_CHAMFER_EDGE_FROM_FACE + chamferedgefromface.png + + + ICON_DLG_CHAMFER_FACE + chamferface.png + + + ICON_DLG_CHANGE_ORIENTATION + change_orientation.png + + + ICON_DLG_REMOVE_EXTRA_EDGES + remove_extra_edges.png + + + ICON_DLG_CHECKSHAPE + check.png + + + ICON_DLG_CHECK_COMPOUND_OF_BLOCKS + check_blocks_compound.png + + + ICON_DLG_CIRCLE_PNTS + circle3points.png + + + ICON_DLG_CIRCLE_PV + circlepointvector.png + + + ICON_DLG_CIRCLE_C2P + circlecenter2pnts.png + + + ICON_DLG_CLOSECONTOUR + closecontour.png + + + ICON_DLG_COMMON + common.png + + + ICON_DLG_CONE_DXYZ + conedxyz.png + + + ICON_DLG_CONE_PV + conepointvector.png + + + ICON_DLG_CUT + cut.png + + + ICON_DLG_CYLINDER_DXYZ + cylinderdxyz.png + + + ICON_DLG_CYLINDER_PV + cylinderpointvector.png + + + ICON_DLG_DIVIDE_EDGE + pointonedge.png + + + ICON_DLG_ELLIPSE_PV + ellipsepointvector.png + + + ICON_DLG_FILLET + fillet.png + + + ICON_DLG_FILLET_2D + fillet2d.png + + + ICON_DLG_FILLET_ALL + filletall.png + + + ICON_DLG_FILLET_EDGE + filletedge.png + + + ICON_DLG_FILLET_FACE + filletface.png + + + ICON_DLG_FILLING + filling.png + + + ICON_DLG_FREE_FACES + free_faces.png + + + ICON_DLG_FUSE + fuse.png + + + ICON_DLG_GLUE_FACES + glue.png + + + ICON_DLG_GLUE_FACES2 + glue2.png + + + ICON_DLG_INERTIA + axisinertia.png + + + ICON_DLG_INTERPOL + interpol.png + + + ICON_DLG_LINE_2P + line2points.png + + + ICON_DLG_LINE_2F + line2faces.png + + + ICON_DLG_MINDIST + mindist.png + + + ICON_DLG_MIRROR_AXE + mirrorAxe.png + + + ICON_DLG_MIRROR_PLANE + mirrorPlane.png + + + ICON_DLG_MIRROR_POINT + mirrorPoint.png + + + ICON_DLG_MULTIROTATION + multirotation.png + + + ICON_DLG_MULTIROTATION_DOUBLE + multirotationdouble.png + + + ICON_DLG_MULTIROTATION_SIMPLE + multirotationsimple.png + + + ICON_DLG_MULTITRANSLATION + multitranslation.png + + + ICON_DLG_MULTITRANSLATION_DOUBLE + multitranslationdouble.png + + + ICON_DLG_MULTITRANSLATION_SIMPLE + multitranslationsimple.png + + + ICON_DLG_OFFSET + offset.png + + + ICON_DLG_PARTITION + partition.png + + + ICON_DLG_PARTITION_KEEP_FACES + partitionkeep.png + + + ICON_DLG_PARTITION_PLANE + partitionplane.png + + + ICON_DLG_PIPE + pipe.png + + + ICON_DLG_PIPE_BINORMAL + pipebinormal.png + + + ICON_DLG_PLANE_3PNTS + plane3points.png + + + ICON_DLG_PLANE_FACE + planeface.png + + + ICON_DLG_PLANE_PV + planepointvector.png + + + ICON_DLG_POINT + point2.png + + + ICON_DLG_POINT_EDGE + pointonedge.png + + + ICON_DLG_POINT_REF + point3.png + + + ICON_DLG_POINT_LINES + point_line_intersection.png + + + ICON_DLG_POLYLINE + polyline.png + + + ICON_DLG_POSITION + position.png + + + ICON_DLG_NORMALE + normale.png + + + ICON_DLG_ANGLE + angle.png + + + ICON_DLG_POSITION2 + position2.png + + + ICON_DLG_POSITION3 + position3.png + + + ICON_DLG_PRISM + prism.png + + + ICON_DLG_PRISM_2P + prism2.png + + + ICON_DLG_PRISM_DXDYDZ + prism3.png + + + ICON_DLG_PROPAGATE + propagate.png + + + ICON_DLG_QUAD_FACE_2_EDGE + block_face_2e.png + + + ICON_DLG_QUAD_FACE_4_EDGE + block_face_4e.png + + + ICON_DLG_QUAD_FACE_4_VERT + block_face_4v.png + + + ICON_DLG_REDO + redo.png + + + ICON_DLG_REVOL + revol.png + + + ICON_DLG_ROTATION + rotate.png + + + ICON_DLG_ROTATION_THREE_POINTS + rotatepnt.png + + + ICON_DLG_SCALE + scale.png + + + ICON_DLG_SECTION + section.png + + + ICON_DLG_SEWING + sewing.png + + + ICON_DLG_SHAPEPROCESS + shapeprocess.png + + + ICON_DLG_SPHERE_DXYZ + spheredxyz.png + + + ICON_DLG_SPHERE_P + spherepoint.png + + + ICON_DLG_SPLINE + spline.png + + + ICON_DLG_SUBSHAPE + subshape.png + + + ICON_DLG_SUPPRESS_HOLES + supressHolesOnFaceShell.png + + + ICON_DLG_SUPPRESS_INT_WIRES + suppressintwires.png + + + ICON_DLG_SUPRESS_FACE + supressface.png + + + ICON_DLG_SUPRESS_HOLE + supresshole.png + + + ICON_DLG_SUPRESS_HOLE_FACE_SHELL + supressHolesOnFaceShell.png + + + ICON_DLG_TOLERANCE + tolerance.png + + + ICON_DLG_TORUS_DXYZ + torusdxyz.png + + + ICON_DLG_TORUS_PV + toruspointvector.png + + + ICON_DLG_TRANSLATION_DXYZ + translationDxyz.png + + + ICON_DLG_TRANSLATION_POINTS + translationPoints.png + + + ICON_DLG_TRANSLATION_VECTOR + translationVector.png + + + ICON_DLG_UNDO + undo.png + + + ICON_DLG_VECTOR_2P + vector2points.png + + + ICON_DLG_VECTOR_DXYZ + vectordxyz.png + + + ICON_DLG_WHATIS + whatis.png + + + ICON_DLG_WPLANE_FACE + planeworkingface.png + + + ICON_DLG_WPLANE_ORIGIN + planeworkingorigin.png + + + ICON_DLG_WPLANE_VECTOR + planeworkingvector.png + + + ICON_MARKER + marker.png + + + ICON_MARKER2 + marker2.png + + + ICON_MARKER3 + marker3.png + + + ICON_OBJBROWSER_BLOCK + tree_block.png + + + ICON_OBJBROWSER_COMPOUND + tree_compound.png + + + ICON_OBJBROWSER_COMPSOLID + tree_compsolid.png + + + ICON_OBJBROWSER_EDGE + tree_edge.png + + + ICON_OBJBROWSER_FACE + tree_face.png + + + ICON_OBJBROWSER_GROUP_EDGE + tree_group_edge.png + + + ICON_OBJBROWSER_GROUP_FACE + tree_group_face.png + + + ICON_OBJBROWSER_GROUP_PNT + tree_group_vertex.png + + + ICON_OBJBROWSER_GROUP_SOLID + tree_group_solid.png + + + ICON_OBJBROWSER_Geometry + geometry.png + + + ICON_OBJBROWSER_LCS + tree_lcs.png + + + ICON_OBJBROWSER_SHAPE + tree_shape.png + + + ICON_OBJBROWSER_SHELL + tree_shell.png + + + ICON_OBJBROWSER_SOLID + tree_solid.png + + + ICON_OBJBROWSER_VERTEX + tree_vertex.png + + + ICON_OBJBROWSER_WIRE + tree_wire.png + + + ICON_SELECT + select1.png + + + ICO_ARC + arc.png + + + ICO_ARCHIMEDE + archimede.png + + + ICO_BASIC_PROPS + basicproperties.png + + + ICO_BND_BOX + bounding.png + + + ICO_BOX + box.png + + + ICO_CHAMFER + chamfer.png + + + ICO_CHANGE_ORIENTATION + change_orientation.png + + + ICO_CHECK + check.png + + + ICO_CHECK_COMPOUND + check_blocks_compound.png + + + ICO_CHECK_FREE_BNDS + free_bound.png + + + ICO_CHECK_FREE_FACES + free_faces.png + + + ICO_CIRCLE + circle.png + + + ICO_CLOSE_CONTOUR + closecontour.png + + + ICO_COMMON + common.png + + + ICO_COMPOUND + build_compound.png + + + ICO_COMPOUND_SEL_ONLY + build_compound.png + + + ICO_CONE + cone.png + + + ICO_CURVE + spline.png + + + ICO_CUT + cut.png + + + ICO_CYLINDER + cylinder.png + + + ICO_DELETE + delete.png + + + ICO_DISK + disk.png + + + ICO_DISPLAY + display.png + + + ICO_DISPLAY_ALL + displayall.png + + + ICO_DISPLAY_ONLY + displayonly.png + + + ICO_EDGE + build_edge.png + + + ICO_EDGE_SEL_ONLY + build_edge.png + + + ICO_ELLIPSE + ellipse.png + + + ICO_ERASE + erase.png + + + ICO_ERASE_ALL + eraseall.png + + + ICO_EXPLODE + subshape.png + + + ICO_EXPLODE_BLOCKS + subshape.png + + + ICO_EXTRUSION + prism.png + + + ICO_FACE + build_face.png + + + ICO_FACE_SEL_ONLY + build_face.png + + + ICO_FILLET + fillet.png + + + ICO_FILLET_2D + fillet2d.png + + + ICO_FILLING + filling.png + + + ICO_FUSE + fuse.png + + + ICO_GLUE_FACES + glue.png + + + ICO_GROUP_CREATE + group_new.png + + + ICO_GROUP_EDIT + group_edit.png + + + ICO_HEX_SOLID + box.png + + + ICO_INERTIA + axisinertia.png + + + ICO_LINE + line.png + + + ICO_LOCAL_CS + marker.png + + + ICO_MASS_CENTER + centergravity.png + + + ICO_MIN_DIST + mindist.png + + + ICO_MIRROR + mirrorPlane.png + + + ICO_MODIFY_LOCATION + position2.png + + + ICO_MUL_ROTATION + multirotation.png + + + ICO_MUL_TRANSFORM + multirotation.png + + + ICO_MUL_TRANSLATION + multitranslation.png + + + ICO_OFFSET + offset.png + + + ICO_PARTITION + partition.png + + + ICO_PIPE + pipe.png + + + ICO_PLANE + plane.png + + + ICO_REMOVE_EXTRA_EDGES + remove_extra_edges.png + + + ICO_NORMALE + normale.png + + + ICO_MEASURE_ANGLE + angle.png + + + ICO_POINT + point2.png + + + ICO_POINT_COORDS + point_coord.png + + + ICO_POINT_ON_EDGE + pointonedge.png + + + ICO_POP_CREATE_GROUP + group_new.png + + + ICO_PROPAGATE + propagate.png + + + ICO_Q_FACE + build_face.png + + + ICO_REVOLUTION + revol.png + + + ICO_ROTATION + rotate.png + + + ICO_SCALE + scale.png + + + ICO_SECTION + section.png + + + ICO_SEWING + sewing.png + + + ICO_SHADING + shading.png + + + ICO_SHAPE_PROCESS + shapeprocess.png + + + ICO_SHELL + build_shell.png + + + ICO_SHELL_SEL_ONLY + build_shell.png + + + ICO_SKETCH + sketch.png + + + ICO_3DSKETCH + 3dsketch.png + + + ICO_SOLID + build_solid.png + + + ICO_SOLID_SEL_ONLY + build_solid.png + + + ICO_SPHERE + sphere.png + + + ICO_SUPPERSS_HOLES + supresshole.png + + + ICO_SUPPRESS_FACES + supressface.png + + + ICO_SUPPRESS_INT_WIRES + suppressintwires.png + + + ICO_TOLERANCE + tolerance.png + + + ICO_TORUS + torus.png + + + ICO_TRANSLATION + translationVector.png + + + ICO_VECTOR + vector.png + + + ICO_VERTEX_SEL_ONLY + point2.png + + + ICO_WHAT_IS + whatis.png + + + ICO_WIRE + build_wire.png + + + ICO_WIRE_SEL_ONLY + build_wire.png + + + ICO_WORK_PLANE + planeWorking.png + + + ICO_GET_SHAPES_ON_SHAPES + shapesonshape.png + + + ICON_DLG_POINT_FACE + pointonface.png + + + ICON_DLG_SHAPES_ON_SHAPE + shapesonshape.png + + + ICON_DLG_SCALE_ALONG_AXES + scale_along_axes.png + + + diff --git a/src/GEOMGUI/GEOM_msg_en.po b/src/GEOMGUI/GEOM_msg_en.po index 11e004ab0..74caf6b0e 100644 --- a/src/GEOMGUI/GEOM_msg_en.po +++ b/src/GEOMGUI/GEOM_msg_en.po @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,17 +17,18 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # This is a Qt message file in .po format. Each msgid starts with # a scope. This scope should *NOT* be translated - eg. translating # from French to English, "Foo::Bar" would be translated to "Pub", # not "Foo::Pub". +# msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "POT-Creation-Date: 2002-03-19 09:35:48 AM CET\n" -"PO-Revision-Date: 2003-10-27 17:32+0100\n" +"PO-Revision-Date: 2008-03-12 12:26+0300\n" "Last-Translator: FULLNAME \n" "Content-Type: text/plain; charset=iso-8859-1\n" @@ -183,11 +186,11 @@ msgstr "%1 Objects" #: GeometryGUI.cxx:4414 msgid "GEOM_MEN_SKETCHER_X" -msgstr "Enter a length to set X" +msgstr "Enter a Length to Set X" #: GeometryGUI.cxx:4438 msgid "GEOM_MEN_SKETCHER_Y" -msgstr "Enter a length to set Y" +msgstr "Enter a Length to Set Y" #: GeometryGUI.cxx:2898 msgid "GEOM_MEN_TRANSPARENCY" @@ -203,11 +206,11 @@ msgstr "Y :" #: GeometryGUI_NbIsosDlg.cxx:36 msgid "GEOM_MEN_ISOU" -msgstr "Isos u :" +msgstr "Isos U :" #: GeometryGUI_NbIsosDlg.cxx:53 msgid "GEOM_MEN_ISOV" -msgstr "Isos v :" +msgstr "Isos V :" #: GeometryGUI_TransparencyDlg.cxx:31 msgid "GEOM_MEN_TRANSPARENCY_LABEL" @@ -241,6 +244,9 @@ msgstr "Warning" msgid "GEOM_REALLY_DELETE" msgstr "Do you really want to delete this %1 object(s):" +msgid "GEOM_DELETE_OBJECTS" +msgstr "Delete objects" + # #============================================================================== # @@ -678,6 +684,10 @@ msgstr "Edge" msgid "GEOM_FACE" msgstr "Face" +#Face +msgid "GEOM_PLANAR_FACE" +msgstr "Planar Face" + #Faces msgid "GEOM_FACES" msgstr "Faces" @@ -1012,10 +1022,6 @@ msgstr "Tol. 3D :" msgid "GEOM_FILLING_NB_ITER" msgstr "Nb. Iter :" -#: GeometryGUI_FillingDlg.cxx:84 -msgid "GEOM_FILLING_APPROX" -msgstr "Approximation" - #: GeometryGUI_FuseDlg.cxx:48 msgid "GEOM_FUSE_TITLE" msgstr "BOOLEAN : Fuse Two Objects" @@ -1385,7 +1391,7 @@ msgstr "Wireframe" #: GeometryGUI.cxx:4613 msgid "GEOM_MEN_SHADING" -msgstr "\nShading" +msgstr "Shading" msgid "GEOM_RECONSTRUCTION_LIMIT" msgstr "Reconstruction Limit" @@ -2235,7 +2241,7 @@ msgid "TOP_WORK_PLANE" msgstr "Create a working plane" msgid "MEN_WORK_PLANE" -msgstr "Working plane" +msgstr "Working Plane" msgid "STB_WORK_PLANE" msgstr "Create a working plane" @@ -2244,7 +2250,7 @@ msgid "TOP_LOCAL_CS" msgstr "Create a local coordinate system" msgid "MEN_LOCAL_CS" -msgstr "Local coordinate system" +msgstr "Local Coordinate System" msgid "STB_LOCAL_CS" msgstr "Create a local coordinate system" @@ -2331,7 +2337,7 @@ msgid "TOP_PIPE" msgstr "Extrusion along a path" msgid "MEN_PIPE" -msgstr "Extrusion along a path" +msgstr "Extrusion Along a Path" msgid "STB_PIPE" msgstr "Create a shape by Extrusion along a path" @@ -2529,7 +2535,7 @@ msgid "TOP_MIRROR" msgstr "Mirror image" msgid "MEN_MIRROR" -msgstr "Mirror image" +msgstr "Mirror Image" msgid "STB_MIRROR" msgstr "Mirror image" @@ -2538,7 +2544,7 @@ msgid "TOP_SCALE" msgstr "Scale transform" msgid "MEN_SCALE" -msgstr "Scale transform" +msgstr "Scale Transform" msgid "STB_SCALE" msgstr "Scale transform" @@ -2547,7 +2553,7 @@ msgid "TOP_OFFSET" msgstr "Offset surface" msgid "MEN_OFFSET" -msgstr "Offset surface" +msgstr "Offset Surface" msgid "STB_OFFSET" msgstr "Offset surface" @@ -2610,7 +2616,7 @@ msgid "TOP_CLIPPING" msgstr "Clipping range" msgid "MEN_CLIPPING" -msgstr "Clipping range" +msgstr "Clipping Range" msgid "STB_CLIPPING" msgstr "Clipping range" @@ -2619,7 +2625,7 @@ msgid "TOP_MUL_TRANSFORM" msgstr "Multi-transformation" msgid "MEN_MUL_TRANSFORM" -msgstr "Multi-transformation" +msgstr "Multi-Transformation" msgid "STB_MUL_TRANSFORM" msgstr "Multi-transformation" @@ -2649,7 +2655,7 @@ msgid "TOP_SHAPE_PROCESS" msgstr "Perform shape processing" msgid "MEN_SHAPE_PROCESS" -msgstr "Shape processing" +msgstr "Shape Processing" msgid "STB_SHAPE_PROCESS" msgstr "Perform shape processing " @@ -2658,7 +2664,7 @@ msgid "TOP_SUPPRESS_FACES" msgstr "Perform suppress faces" msgid "MEN_SUPPRESS_FACES" -msgstr "Suppress faces" +msgstr "Suppress Faces" msgid "STB_SUPPRESS_FACES" msgstr "Perform suppress faces" @@ -2667,7 +2673,7 @@ msgid "TOP_CLOSE_CONTOUR" msgstr "Perform close contour" msgid "MEN_CLOSE_CONTOUR" -msgstr "Close contour" +msgstr "Close Contour" msgid "STB_CLOSE_CONTOUR" msgstr "Perform close contour" @@ -2676,7 +2682,7 @@ msgid "TOP_SUPPRESS_INT_WIRES" msgstr "Perform suppress internal wires" msgid "MEN_SUPPRESS_INT_WIRES" -msgstr "Suppress internal wires" +msgstr "Suppress Internal Wires" msgid "STB_SUPPRESS_INT_WIRES" msgstr "Perform suppress internal wires" @@ -2685,7 +2691,7 @@ msgid "TOP_SUPPERSS_HOLES" msgstr "Perform suppress holes" msgid "MEN_SUPPERSS_HOLES" -msgstr "Suppress holes" +msgstr "Suppress Holes" msgid "STB_SUPPERSS_HOLES" msgstr "Perform suppress holes" @@ -2703,7 +2709,7 @@ msgid "TOP_GLUE_FACES" msgstr "Perform glue faces" msgid "MEN_GLUE_FACES" -msgstr "Glue faces" +msgstr "Glue Faces" msgid "STB_GLUE_FACES" msgstr "Perform glue faces" @@ -2712,7 +2718,7 @@ msgid "TOP_POINT_ON_EDGE" msgstr "Add point on edge" msgid "MEN_POINT_ON_EDGE" -msgstr "Add point on edge" +msgstr "Add Point on Edge" msgid "STB_POINT_ON_EDGE" msgstr "Add point on edge" @@ -2721,7 +2727,7 @@ msgid "TOP_CHECK_FREE_BNDS" msgstr "Check free boundaries" msgid "MEN_CHECK_FREE_BNDS" -msgstr "Check free boundaries" +msgstr "Check Free Boundaries" msgid "STB_CHECK_FREE_BNDS" msgstr "Check free boundaries" @@ -2730,7 +2736,7 @@ msgid "TOP_CHECK_FREE_FACES" msgstr "Check free faces" msgid "MEN_CHECK_FREE_FACES" -msgstr "Check free faces" +msgstr "Check Free Faces" msgid "STB_CHECK_FREE_FACES" msgstr "Check free faces" @@ -2739,7 +2745,7 @@ msgid "TOP_CHANGE_ORIENTATION" msgstr "Change orientation" msgid "MEN_CHANGE_ORIENTATION" -msgstr "Change orientation" +msgstr "Change Orientation" msgid "STB_CHANGE_ORIENTATION" msgstr "Change orientation" @@ -2748,7 +2754,7 @@ msgid "TOP_REMOVE_EXTRA_EDGES" msgstr "Remove extra edges" msgid "MEN_REMOVE_EXTRA_EDGES" -msgstr "Remove extra edges" +msgstr "Remove Extra Edges" msgid "STB_REMOVE_EXTRA_EDGES" msgstr "Remove extra edges" @@ -2760,7 +2766,7 @@ msgid "TOP_POINT_COORDS" msgstr "Point coordinates" msgid "MEN_POINT_COORDS" -msgstr "Point coordinates" +msgstr "Point Coordinates" msgid "STB_POINT_COORDS" msgstr "Point coordinates" @@ -2769,7 +2775,7 @@ msgid "TOP_BASIC_PROPS" msgstr "Basic properties" msgid "MEN_BASIC_PROPS" -msgstr "Basic properties" +msgstr "Basic Properties" msgid "STB_BASIC_PROPS" msgstr "Basic properties" @@ -2778,7 +2784,7 @@ msgid "TOP_MASS_CENTER" msgstr "Compute center of mass" msgid "MEN_MASS_CENTER" -msgstr "Center of mass" +msgstr "Center of Mass" msgid "STB_MASS_CENTER" msgstr "Compute center of mass" @@ -2787,7 +2793,7 @@ msgid "TOP_NORMALE" msgstr "Compute normal to a face" msgid "MEN_NORMALE" -msgstr "Normal to a face" +msgstr "Normal to a Face" msgid "STB_NORMALE" msgstr "Compute normal to a face in a point (optional)" @@ -2808,7 +2814,7 @@ msgid "TOP_BND_BOX" msgstr "Compute bounding box" msgid "MEN_BND_BOX" -msgstr "Bounding box" +msgstr "Bounding Box" msgid "STB_BND_BOX" msgstr "Compute bounding box" @@ -2817,7 +2823,7 @@ msgid "TOP_MIN_DIST" msgstr "Compute minimum distance" msgid "MEN_MIN_DIST" -msgstr "Min distance" +msgstr "Min Distance" msgid "STB_MIN_DIST" msgstr "Compute minimum distance" @@ -2835,7 +2841,7 @@ msgid "TOP_TOLERANCE" msgstr "Compute tolerance" msgid "MEN_TOLERANCE" -msgstr "Compute tolerance" +msgstr "Compute Tolerance" msgid "STB_TOLERANCE" msgstr "Compute tolerance" @@ -2862,7 +2868,7 @@ msgid "TOP_CHECK_COMPOUND" msgstr "Check compound of blocks" msgid "MEN_CHECK_COMPOUND" -msgstr "Check compound of blocks" +msgstr "Check Compound of Blocks" msgid "STB_CHECK_COMPOUND" msgstr "Check compound of blocks" @@ -2889,7 +2895,7 @@ msgid "TOP_SHADING_COLOR" msgstr "Set shading color" msgid "MEN_SHADING_COLOR" -msgstr "Shading color" +msgstr "Shading Color" msgid "STB_SHADING_COLOR" msgstr "Set shading color" @@ -2907,7 +2913,7 @@ msgid "TOP_STEP_VALUE" msgstr "Set step value" msgid "MEN_STEP_VALUE" -msgstr "Step value" +msgstr "Step Value" msgid "STB_STEP_VALUE" msgstr "Set step value" @@ -2916,7 +2922,7 @@ msgid "MEN_VIEW" msgstr "View" msgid "MEN_DISPLAY_MODE" -msgstr "Display mode" +msgstr "Display Mode" msgid "TOP_SHADING" msgstr "Shading" @@ -2934,7 +2940,7 @@ msgid "TOP_DISPLAY_ALL" msgstr "Show all" msgid "MEN_DISPLAY_ALL" -msgstr "Show all" +msgstr "Show All" msgid "STB_DISPLAY_ALL" msgstr "Show all" @@ -2943,7 +2949,7 @@ msgid "TOP_ERASE_ALL" msgstr "Hide all" msgid "MEN_ERASE_ALL" -msgstr "Hide all" +msgstr "Hide All" msgid "STB_ERASE_ALL" msgstr "Hide all" @@ -2961,7 +2967,7 @@ msgid "TOP_DISPLAY_ONLY" msgstr "Show only" msgid "MEN_DISPLAY_ONLY" -msgstr "Show only" +msgstr "Show Only" msgid "STB_DISPLAY_ONLY" msgstr "Show only" @@ -3006,7 +3012,7 @@ msgid "TOP_POP_AUTO_COLOR" msgstr "Auto color" msgid "MEN_POP_AUTO_COLOR" -msgstr "Auto color" +msgstr "Auto Color" msgid "STB_POP_AUTO_COLOR" msgstr "Auto color" @@ -3015,7 +3021,7 @@ msgid "TOP_POP_DISABLE_AUTO_COLOR" msgstr "Disable auto color" msgid "MEN_POP_DISABLE_AUTO_COLOR" -msgstr "Disable auto color" +msgstr "Disable Auto Color" msgid "STB_POP_DISABLE_AUTO_COLOR" msgstr "Disable auto color" @@ -3063,7 +3069,7 @@ msgid "TOOL_PRIMITIVES" msgstr "Primitives" msgid "TOOL_BOOLEAN" -msgstr "Boolean operations" +msgstr "Boolean Operations" msgid "TOOL_GENERATION" msgstr "Generation" diff --git a/src/GEOMGUI/GEOM_msg_en.ts b/src/GEOMGUI/GEOM_msg_en.ts new file mode 100644 index 000000000..15ac7e838 --- /dev/null +++ b/src/GEOMGUI/GEOM_msg_en.ts @@ -0,0 +1,4141 @@ + + + + + @default + + CHANGE_ORIENTATION_NEW_OBJ_NAME + Invert + + + CLOSE_CONTOUR_NEW_OBJ_NAME + CloseContour + + + DEP_OBJECT + Selected object has been used to create another one. +It can't be deleted + + + DEVIDE_EDGE_NEW_OBJECT_NAME + NewObject + + + ERROR_SHAPE_TYPE + Object of incorrect type selected! +Please, select face, shell or solid and try again + + + iErr : 10 + the Classifier is NULL + + + iErr : 11 + the Shape is NULL + + + iErr : 12 + Unallowed Type of Subshape + + + iErr : 13 + Unallowed State + + + iErr : 15 + Unallowed Surface Type + + + iErr : 20 + Triangulation is not Found + + + iErr : 30 + Can not Obtain the Line From the Link + + + iErr : 40 + A Point Can Not Be Classified + + + iErr : 41 + Invalid Data for Classifier + + + GEOM_2D_CONTINUTY + 2D continuity + + + GEOM_2D_CURVE_MODE + 2D curve mode + + + GEOM_2D_TOLERANCE + 2D tolerance + + + GEOM_3D_CONTINUTY + 3D continuity + + + GEOM_3D_CURVE_MODE + 3D curve mode + + + GEOM_3D_TOLERANCE + 3D tolerance + + + GEOM_3_POINTS + 3 points + + + GEOM_ADD_POINT + Add point + + + GEOM_ANGLE + Angle : + + + GEOM_ANGLE_1 + Angle + + + GEOM_ARC + Arc + + + GEOM_ARCHIMEDE + Archimede + + + GEOM_ARCHIMEDE_TITLE + Archimede Construction + + + GEOM_ARC_TITLE + Arc Construction + + + GEOM_ARGUMENTS + Arguments + + + GEOM_AXE_MIRROR + Axe Mirror + + + GEOM_AXIS + Axis + + + GEOM_BASE + Base + + + GEOM_BASE_OBJECT + Base Object + + + GEOM_BASE_POINT + Base Point + + + GEOM_BEZIER + Bezier + + + GEOM_BINORMAL + BiNormal + + + GEOM_BLOCK + Hexahedral Solid + + + GEOM_BLOCKS_COMPOUND + BlocksCompound + + + GEOM_BLOCK_EXPLODE + Sub Blocks + + + GEOM_BLOCK_EXPLODE_TITLE + Sub Blocks Selection + + + GEOM_BLOCK_MULTITRSF + Block Multi-Transformation + + + GEOM_BLOCK_MULTITRSF_DOUBLE + Multi-Transformation Double + + + GEOM_BLOCK_MULTITRSF_SIMPLE + Multi-Transformation Simple + + + GEOM_BLOCK_MULTITRSF_TITLE + Block Multi-Transformation + + + GEOM_BLOCK_TITLE + Hexahedral Solid Construction + + + GEOM_BNDBOX + Bounding Box + + + GEOM_BNDBOX_OBJDIM + Object And Its Dimensions + + + GEOM_BNDBOX_TITLE + Bounding Box Informations + + + GEOM_BOX + Box + + + GEOM_BOX_OBJ + Dimensions At Origin + + + GEOM_BOX_TITLE + Box Construction + + + GEOM_BSplineRestriction + BSplineRestriction + + + GEOM_BUT_APPLY + &Apply + + + GEOM_BUT_CANCEL + &Cancel + + + GEOM_BUT_CLOSE + &Close + + + GEOM_BUT_CLOSE_SKETCH + Sketch Closure + + + GEOM_BUT_END_SKETCH + Sketch Validation + + + GEOM_BUT_EXPLODE + &Explode + + + GEOM_BUT_HELP + &Help + + + GEOM_BUT_NO + &No + + + GEOM_BUT_OK + O&k + + + GEOM_BUT_APPLY_AND_CLOSE + A&pply and Close + + + GEOM_BUT_YES + &Yes + + + GEOM_BY_LENGTH + By length + + + GEOM_BY_PARAMETER + By parameter + + + GEOM_CENTER + Center + + + GEOM_CENTER_POINT + Center Point + + + GEOM_CENTRAL_POINT + Central Point + + + GEOM_CHAMFER + Chamfer + + + GEOM_CHAMFER_ABORT + Chamfer can't be computed with %1 and %2 + + + GEOM_CHAMFER_ALL + Chamfer On Whole Shape + + + GEOM_CHAMFER_EDGES + Chamfer On Edges From Shape + + + GEOM_CHAMFER_FACES + Chamfer On Faces From Shape + + + GEOM_CHAMFER_TITLE + Chamfer Construction + + + GEOM_CHANGE_ORIENTATION + Objects to change orientation + + + GEOM_CHANGE_ORIENTATION_TITLE + Change orientation + + + GEOM_CHECK_BLOCKS_COMPOUND + Check and Improve Blocks Compound + + + GEOM_CHECK_BLOCKS_COMPOUND_ERRORS + Errors + + + GEOM_CHECK_BLOCKS_COMPOUND_HAS_ERRORS + The Compound of Blocks has errors + + + GEOM_CHECK_BLOCKS_COMPOUND_HAS_NO_ERRORS + The Compound of Blocks has no errors + + + GEOM_CHECK_BLOCKS_COMPOUND_SUBSHAPES + Incriminated Sub-Shapes + + + GEOM_CHECK_INFOS + Object And Its Topological Information + + + GEOM_CHECK_SHAPE + Check Shape + + + GEOM_CHECK_TITLE + Check Shape Information + + + GEOM_CIRCLE + Circle + + + GEOM_CIRCLE_TITLE + Circle Construction + + + GEOM_CLOSECONTOUR_TITLE + Close contour + + + GEOM_CMASS + Center Of Mass + + + GEOM_CMASS_TITLE + Center Of Mass Construction + + + GEOM_COMMON + Common + + + GEOM_COMMON_TITLE + Common Of Two Objects + + + GEOM_COMPOUND + Compound + + + GEOM_COMPOUNDSOLID + CompSolid + + + GEOM_COMPOUND_TITLE + Create A Compound + + + GEOM_CONE + Cone + + + GEOM_CONE_TITLE + Cone Construction + + + GEOM_CONFIRM + Confirm operation + + + GEOM_CONFIRM_INFO + Shape contains %1 sub shapes ! + + + GEOM_COOR + Coord. : + + + GEOM_COORDINATES + Coordinates + + + GEOM_CREATE_COPY + Create a copy + + + GEOM_CREATE_SINGLE_SOLID + Create a single solid + + + GEOM_CURVE + Curve + + + GEOM_CURVE_CONTINUTY + Curve continuity + + + GEOM_CURVE_TITLE + Curve Construction + + + GEOM_CUT + Cut + + + GEOM_CUT_TITLE + Cut Of Two Objects + + + GEOM_CYLINDER + Cylinder + + + GEOM_CYLINDER_TITLE + Cylinder Construction + + + GEOM_D1 + D1 : + + + GEOM_D2 + D2 : + + + GEOM_DETECT + Detect + + + GEOM_DIAGONAL_POINTS + Diagonal Points + + + GEOM_DISK + Disk + + + GEOM_DISK_TITLE + Create A Disk + + + GEOM_DIMENSIONS + Dimensions + + + GEOM_DISTANCE + Distance + + + GEOM_DIVIDE_EDGE_TITLE + Addition of point + + + GEOM_DX + Dx : + + + GEOM_DY + Dy : + + + GEOM_DZ + Dz : + + + GEOM_DropSmallEdges + DropSmallEdges + + + GEOM_EDGE + Edge + + + GEOM_EDGE_TITLE + Create An Edge + + + GEOM_ELLIPSE + Ellipse + + + GEOM_ELLIPSE_ERROR_1 + Error creating ellipse. Reason: minor radius is greater than major radius. + + + GEOM_ELLIPSE_TITLE + Ellipse Construction + + + GEOM_END_LCS + End LCS + + + GEOM_ERROR + Error + + + GEOM_ERROR_STATUS + Operation status + + + GEOM_ERR_GET_ENGINE + Failed to obtain GEOM Engine component. Reload Geometry module and try again. + + + GEOM_ERR_LIB_NOT_FOUND + GUI library corresponding to the user action can not be found or loaded + + + GEOM_EXTRUSION + Extrusion + + + GEOM_EXTRUSION_BSV + Base Shape + Vector + + + GEOM_EXTRUSION_BSV_2P + Base Shape + 2 Points + + + GEOM_EXTRUSION_DXDYDZ + Base Shape + DX DY DZ Vector + + + GEOM_EXTRUSION_TITLE + Construction by Extrusion + + + GEOM_FACE + Face + + + GEOM_LCS + Local coordinate system + + + GEOM_FACES + Faces + + + GEOM_FACE_FFW + Face creation from wires and/or edges + + + GEOM_FACE_OPT + Try to create a planar face + + + GEOM_FACE_OR_LCS + Face or LCS + + + GEOM_FACE_SELECTION + Face Selection + + + GEOM_FACE_TITLE + Create A Face + + + GEOM_FILLET + Fillet + + + GEOM_FILLET_2D + Fillet 2D + + + GEOM_FILLET_ABORT + Fillet can't be computed with radius %1 + + + GEOM_FILLET_ALL + Fillet On Whole Shape + + + GEOM_FILLET_EDGES + Fillet On Edges From Shape + + + GEOM_FILLET_FACES + Fillet On Faces From Shape + + + GEOM_FILLET_VERTEXES + Fillet On Vertexes From Face + + + GEOM_FILLET_TITLE + Fillet Construction + + + GEOM_FILLET_2D_TITLE + 2D Fillet Construction + + + GEOM_FILLING + Filling + + + GEOM_FILLING_ARG + Arguments And Parameters + + + GEOM_FILLING_COMPOUND + Edges compound + + + GEOM_FILLING_MAX_DEG + Max deg + + + GEOM_FILLING_MIN_DEG + Min deg + + + GEOM_FILLING_NB_ITER + Nb. Iter : + + + GEOM_FILLING_TITLE + Filling Surface With Edges + + + GEOM_FILLING_TOL_2D + Tol. 2D : + + + GEOM_FILLING_TOL_3D + Tol. 3D : + + + GEOM_FREE_BOUNDARIES + Free boundaries + + + GEOM_FREE_BOUNDS_ERROR + Object is not selected + + + GEOM_FREE_BOUNDS_MSG + Number of free boundaries detected: %1 (%2 closed, %3 open) + + + GEOM_FREE_BOUNDS_TLT + Free boundary detection + + + GEOM_FREE_FACES + Free faces + + + GEOM_FREE_FACES_TITLE + Free faces + + + GEOM_FUSE + Fuse + + + GEOM_FUSE_TITLE + Fuse Two Objects + + + GEOM_FixFaceSize + FixFaceSize + + + GEOM_FixShape + FixShape + + + GEOM_GLUE + Glue + + + GEOM_GLUE_TITLE + Glue faces + + + GEOM_HEIGHT + Height : + + + GEOM_HOLES + Holes + + + GEOM_IDENTICAL_NAMES_SELECT_BY_MOUSE + Identical names : select by mouse ! + + + GEOM_IMPORT + Imported_Shape + + + GEOM_INCORRECT_INPUT + Some parameters are missing + + + GEOM_INERTIA_CONSTR + Matrix And Moments Of Inertia + + + GEOM_INERTIA_I + %1:1 : + + + GEOM_INERTIA_IXYZ + IX & IY & IZ : + + + GEOM_INERTIA_TITLE + Calculs Of Inertia + + + GEOM_INF_LOADED + File %1 loaded. + + + GEOM_INTERNAL_WIRES + Internal wires + + + GEOM_INTERPOL + Interpolation + + + GEOM_KEEP_OBJECT + Keep Object + + + GEOM_LENGTH + Length : + + + GEOM_LINE + Line + + + GEOM_LINE_TITLE + Line Construction + + + GEOM_MAIN_OBJECT + Main Object + + + GEOM_MARKER + Marker + + + GEOM_MARKER_TITLE + Create marker + + + GEOM_MATERIAL_ID + Material ID: + + + GEOM_MATERIAL_MATERIAL + Material + + + GEOM_MATERIAL_SET + << Set + + + GEOM_MATERIAL_SHAPE + Shapes + + + GEOM_MATERIAL_TITLE + Define materials for Dominant Fuse + + + GEOM_MATRIX + Matrix : + + + GEOM_MAX + Max : + + + GEOM_MAX_3D_TOLERANCE + Max 3D tolerance + + + GEOM_MAX_TOLERANCE + Max tolerance + + + GEOM_MEN_ALL_FILES + All Files ( * ) + + + GEOM_MEN_ANGLE + Angle : + + + GEOM_MEN_COMPONENT + Geometry + + + GEOM_MEN_ENTER_ANGLE + Enter An Angle In Degrees + + + GEOM_MEN_EXPORT + Export + + + GEOM_MEN_IMPORT + Import + + + GEOM_MEN_ISOS + Select Number Of Isos + + + GEOM_MEN_ISOU + Isos U : + + + GEOM_MEN_ISOV + Isos V : + + + GEOM_MEN_POPUP_NAME + %1 Objects + + + GEOM_MEN_SHADING + Shading + + + GEOM_MEN_SKETCHER_X + Enter a Length to Set X + + + GEOM_MEN_SKETCHER_Y + Enter a Length to Set Y + + + GEOM_MEN_STEP_LABEL + Step : + + + GEOM_MEN_TRANSPARENCY + Transparency + + + GEOM_MEN_TRANSPARENCY_LABEL + Transparency : + + + GEOM_MEN_WIREFRAME + Wireframe + + + GEOM_MEN_X + X : + + + GEOM_MEN_Y + Y : + + + GEOM_MESHING_DEFLECTION + Meshing Deflect. : + + + GEOM_MIN + Min : + + + GEOM_MINDIST_OBJ + Objects And Results + + + GEOM_MINDIST_TITLE + Minimun Distance Between Two Objects + + + GEOM_MIRROR + Mirror + + + GEOM_MIRROR_TITLE + Mirror An Object + + + GEOM_MULTIROTATION + Multi-Rotation + + + GEOM_MULTIROTATION_DOUBLE + Multi Rotation Double + + + GEOM_MULTIROTATION_SIMPLE + Multi Rotation Simple + + + GEOM_MULTIROTATION_TITLE + Multi-Rotation + + + GEOM_MULTITRANSLATION + Multi-Translation + + + GEOM_MULTITRANSLATION_DOUBLE + Multi Translation Double + + + GEOM_MULTITRANSLATION_SIMPLE + Multi Translation Simple + + + GEOM_MULTITRANSLATION_TITLE + Multi-Translation + + + GEOM_NAME_INCORRECT + Object name not found + + + GEOM_NB_BLOCKS_NO_OTHERS + There are %1 specified blocks and NO other solids + + + GEOM_NB_BLOCKS_SOME_OTHERS + There are %1 specified blocks and some other solids + + + GEOM_NB_TIMES + Nb. Times : + + + GEOM_NB_TIMES_U + Nb. Times U : + + + GEOM_NB_TIMES_V + Nb. Times V : + + + GEOM_NODES + Nodes + + + GEOM_NUM_SPLIT_POINTS + Number of splitting points + + + GEOM_OBJECT + Object + + + GEOM_OBJECT_TYPE + Object Type + + + GEOM_OBJECTS + Objects + + + GEOM_OBJECT_I + Object %1 + + + GEOM_OBJECT_RESULT + Object And Result + + + GEOM_OFFSET + Offset + + + GEOM_OFFSET_TITLE + Offset Surface + + + GEOM_OPERATIONS + Operations + + + GEOM_ORIENTATION + Orientation + + + GEOM_ORIENTATION_OPT + Reverse orientation with normal vectors simulation + + + GEOM_ORIENTATION_TITLE + Change Orientation + + + GEOM_PARAMETER + Parameter : + + + GEOM_PARAMETERS + Parameters + + + GEOM_PARAM_POINT + Parametric point + + + GEOM_PARTITION + Partition + + + GEOM_PARTITION_HALFSPACE + Half-space partition + + + GEOM_PARTITION_ORIENTATION + Change Orientation + + + GEOM_PARTITION_TITLE + Partition Of Object With Tool + + + GEOM_PATH_OBJECT + Path Object + + + GEOM_PIPE + Pipe + + + GEOM_PIPE_TITLE + Pipe Construction + + + GEOM_SELECT_UNPUBLISHED_EDGES + Select unpublished edges + + + GEOM_PLANE + Plane + + + GEOM_PLANE_MIRROR + Plane Mirror + + + GEOM_PLANE_PV + Point + Vector + + + GEOM_PLANE_PVC + Point + Coordinate Vector + + + GEOM_PLANE_SIZE + Size of plane : + + + GEOM_PLANE_TITLE + Plane Construction + + + GEOM_POINT + Point + + + GEOM_POINT1 + Point 1 + + + GEOM_POINT2 + Point 2 + + + GEOM_POINT3 + Point 3 + + + GEOM_POINTS + Points + + + GEOM_POINT_I + Point %1 + + + GEOM_POINT_MIRROR + Point Mirror + + + GEOM_POINT_TITLE + Point Construction + + + GEOM_POLYLINE + Polyline + + + GEOM_POSITION + Location + + + GEOM_POSITION_TITLE + Modify the Location of an Object + + + GEOM_PRECISION + Precision : + + + GEOM_PROPAGATE + Propagate + + + GEOM_PROPAGATE_TITLE + Propagate + + + GEOM_PROPERTIES + Basic Properties + + + GEOM_PROPERTIES_CONSTR + Object And Its Properties + + + GEOM_PROPERTIES_SURFACE + Surface is : + + + GEOM_PROPERTIES_TITLE + Basic Properties Informations + + + GEOM_PROPERTIES_VOLUME + Volume is : + + + GEOM_PRP_ABORT + Operation aborted + + + GEOM_PRP_COMMAND + No command associated with this id = %1. + + + GEOM_PRP_DONE + Operation done + + + GEOM_PRP_EXPORT + Exporting geometry to %1 ... + + + GEOM_PRP_LOADING + Loading %1 ... + + + GEOM_PRP_MIN_DIST + Min Distance not computed + + + GEOM_PRP_NOT_FOR_VTK_VIEWER + Not allowed in VTK viewer + + + GEOM_PRP_NULLSHAPE + Error, null or inappropriate shape ! + + + GEOM_PRP_READY + Ready + + + GEOM_PRP_SELECT_EDGE + Select edges and click on Apply + + + GEOM_PRP_SELECT_FACE + Select faces to suppress and click on Ok/Apply + + + GEOM_PRP_SELECT_FIRST + Select main shape first + + + GEOM_PRP_SELECT_SUBSHAPES + Select Sub Shapes + + + GEOM_PRP_SHAPE_IN_STUDY + Main shape must be in the study before + + + GEOM_QUAD_FACE + Quadrangle Face + + + GEOM_QUAD_FACE_TITLE + Quadrangle Face Construction + + + GEOM_RADIUS + Radius : + + + GEOM_RADIUS_I + Radius %1 : + + + GEOM_RADIUS_MAJOR + Major radius : + + + GEOM_RADIUS_MINOR + Minor radius : + + + GEOM_RECONSTRUCTION_LIMIT + Resulting Type + + + GEOM_RECONSTRUCTION_LIMIT_EDGE + Edge + + + GEOM_RECONSTRUCTION_LIMIT_FACE + Face + + + GEOM_RECONSTRUCTION_LIMIT_SHAPE + Shape + + + GEOM_RECONSTRUCTION_LIMIT_SHELL + Shell + + + GEOM_RECONSTRUCTION_LIMIT_SOLID + Solid + + + GEOM_RECONSTRUCTION_LIMIT_VERTEX + Vertex + + + GEOM_RECONSTRUCTION_LIMIT_WIRE + Wire + + + GEOM_REF_POINT + Point with reference + + + GEOM_REMOVE_ALL_HOLES + Remove all holes + + + GEOM_REMOVE_ALL_INT_WIRES + Remove all internal wires + + + GEOM_REMOVE_HOLES_TITLE + Suppress holes + + + GEOM_REMOVE_INTERNAL_WIRES_TITLE + Suppress internal wires + + + GEOM_REMOVE_WEBS + Remove webs + + + GEOM_REQUIRED_DEGREE + Required degree + + + GEOM_REQUIRED_NUM_SEGMENTS + Required number of segments + + + GEOM_REVERSE + Reverse + + + GEOM_REVERSE_DIRECTION + Reverse Direction + + + GEOM_REVERSE_PLANE + Reverse the plane normal + + + GEOM_REVERSE_U + Reverse U + + + GEOM_REVERSE_V + Reverse V + + + GEOM_REVERSE_VECTOR + Reverse Vector + + + GEOM_REVOLUTION + Revolution + + + GEOM_REVOLUTION_TITLE + Construction By Revolution + + + GEOM_ROTATION + Rotation + + + GEOM_ROTATION_TITLE + Rotation Of An Object + + + GEOM_SCALE + Scale + + + GEOM_SCALE_FACTOR + Scale Factor : + + + GEOM_SCALE_TITLE + Scale An Object + + + GEOM_SECTION + Section + + + GEOM_SECTION_TITLE + Section Of Two Objects + + + GEOM_SELECTED_FACE + Selected face + + + GEOM_SELECTED_OBJECTS + Selected objects + + + GEOM_SELECTED_SHAPE + Selected shape + + + GEOM_SELECTION + Selection + + + GEOM_SET_MATERIALS + Set materials + + + GEOM_SEWING + Sewing + + + GEOM_SEWING_TITLE + Topological sewing + + + GEOM_SHAPE + Shape + + + GEOM_SHAPEPROCESS_TITLE + Shape Processing + + + GEOM_SHAPES + Shapes + + + GEOM_SHELL + Shell + + + GEOM_SHELLS + Shells + + + GEOM_SHELL_TITLE + Shell Construction + + + GEOM_SKETCHER_ABS + Absolute + + + GEOM_SKETCHER_ANGLE + Angle + + + GEOM_SKETCHER_ANGLE2 + Angle : + + + GEOM_SKETCHER_APPLY + Apply + + + GEOM_SKETCHER_ARC + Arc + + + GEOM_SKETCHER_DEST + Destination + + + GEOM_SKETCHER_DIR + Direction + + + GEOM_SKETCHER_DX2 + DX : + + + GEOM_SKETCHER_DY2 + DY : + + + GEOM_SKETCHER_DZ2 + DZ : + + + GEOM_SKETCHER_EL + Element Type + + + GEOM_SKETCHER_LENGTH + Length + + + GEOM_SKETCHER_LENGTH2 + Length : + + + GEOM_SKETCHER_PER + Perpendicular + + + GEOM_SKETCHER_POINT + Point + + + GEOM_SKETCHER_POINT2 + Point : + + + GEOM_SKETCHER_RADIUS2 + Radius : + + + GEOM_SKETCHER_REL + Relative + + + GEOM_SKETCHER_SEGMENT + Segment + + + GEOM_SKETCHER_SEL + Selection + + + GEOM_SKETCHER_TAN + Tangent + + + GEOM_SKETCHER_TITLE + Sketch Construction + + + GEOM_3DSKETCHER_TITLE + 3D Sketch Construction + + + GEOM_SKETCHER_TYPE + Type + + + GEOM_SKETCHER_UNDO + Undo + + + GEOM_SKETCHER_VALUES + Values + + + GEOM_SKETCHER_VX2 + VX : + + + GEOM_SKETCHER_VXVY + VX-VY + + + GEOM_SKETCHER_VY2 + VY : + + + GEOM_SKETCHER_X + X + + + GEOM_SKETCHER_X2 + X : + + + GEOM_SKETCHER_X3 + Abs. X : + + + GEOM_SKETCHER_Y + Y + + + GEOM_SKETCHER_Y2 + Y : + + + GEOM_SKETCHER_Y3 + Abs. Y : + + + GEOM_SKETCHER_Z2 + Z : + + + GEOM_3DSKETCHER + 3D Sketcher + + + GEOM_COORDINATES_TYPE + Coordinates Type + + + GEOM_SOLID + Solid + + + GEOM_SOLID_TITLE + Solid Construction + + + GEOM_SPHERE + Sphere + + + GEOM_SPHERE_CR + Center + Radius + + + GEOM_SPHERE_RO + Radius At Origin + + + GEOM_SPHERE_TITLE + Sphere Construction + + + GEOM_SPLINE + Spline + + + GEOM_SPLINE_TITLE + Spline Construction + + + GEOM_START_LCS + Start LCS + + + SELECT_UNPUBLISHED_EDGES + Select unpublished edges + + + GEOM_STEP + Step : + + + GEOM_STEP_TITLE + Step value for GUI constructions + + + GEOM_STEP_U + Step U : + + + GEOM_STEP_V + Step V : + + + GEOM_STUDY_LOCKED + The active study is locked and therefore cannot be modified + + + GEOM_SUBSHAPE_SELECT + Select Sub Shapes + + + GEOM_SUBSHAPE_TITLE + Sub Shapes Selection + + + GEOM_SUBSHAPE_TYPE + Sub Shapes Type : + + + GEOM_SUB_SHAPE + Sub Shapes + + + GEOM_SUPPRESSHOLE_FACE_SHELL + Face or shell + + + GEOM_SUPPRESSHOLE_SELECTFACE + Select the face with hole + + + GEOM_SUPPRESSHOLE_SELECTFACE_END + Select end face (if hole traversing) + + + GEOM_SUPPRESSHOLE_SELECTWIRE + Select wire on face + + + GEOM_SUPPRESSHOLE_SELECTWIRE_END + Select end wire (if hole traversing) + + + GEOM_SUPPRESSHOLE_SELECT_HOLES_ON_FACE + Select hole(s) on the face + + + GEOM_SUPPRESSHOLE_TITLE + Suppress holes + + + GEOM_SUPPRESS_RESULT + Suppress Result + + + GEOM_SUPPRESS_RESULT_INSIDE + Inside + + + GEOM_SUPPRESS_RESULT_OUTSIDE + Outside + + + GEOM_SUPRESSFACE + Supress Face + + + GEOM_SUPRESSFACE_SELECT + Select Faces To Suppress + + + GEOM_SUPRESSFACE_TITLE + Suppress Faces In An Object + + + GEOM_SURFACE_CONTINUTY + Surface continuity + + + GEOM_SURFACE_MODE + Surface mode + + + GEOM_SURFCONE + Conical Face + + + GEOM_SURFCYLINDER + Cylindrical Face + + + GEOM_SURFSPHERE + Spherical Face + + + GEOM_SURFTORUS + Toroidal Face + + + GEOM_SameParameter + SameParameter + + + GEOM_SplitAngle + SplitAngle + + + GEOM_SplitClosedFaces + SplitClosedFaces + + + GEOM_SplitContinuity + SplitContinuity + + + GEOM_TOLERANCE + Tolerance + + + GEOM_TOLERANCE_CONSTR + Object And Its Tolerances + + + GEOM_TOLERANCE_EDGE + Edge : + + + GEOM_TOLERANCE_FACE + Face : + + + GEOM_TOLERANCE_TITLE + Maximum Tolerance + + + GEOM_TOLERANCE_VERTEX + Vertex : + + + GEOM_TOOL_OBJECT + Tool Object + + + GEOM_TORUS + Torus + + + GEOM_TORUS_TITLE + Torus Construction + + + GEOM_TRANSLATION + Translation + + + GEOM_TRANSLATION_COOR + Translation With Coordinates + + + GEOM_TRANSLATION_TITLE + Translation Of An Object + + + GEOM_TRANSPARENCY_OPAQUE + Opaque + + + GEOM_TRANSPARENCY_TITLE + Transparency + + + GEOM_TRANSPARENCY_TRANSPARENT + Transparent + + + GEOM_TRIHEDRON + Trihedron + + + GEOM_ToBezier + ToBezier + + + GEOM_VALUE + Value + + + GEOM_VECTOR + Vector + + + GEOM_VECTOR_LENGTH + Vector Length : + + + GEOM_VECTOR_TITLE + Vector Construction + + + GEOM_VECTOR_U + Vector U + + + GEOM_VECTOR_V + Vector V + + + GEOM_VERTEX + Vertex + + + GEOM_VERTEXES + Vertexes + + + GEOM_WATER_DENSITY + Water Density : + + + GEOM_WEIGHT + Weight : + + + GEOM_WIDTH + Width : + + + GEOM_WHATIS + Whatis + + + GEOM_WHATIS_OBJECT + Object And Its Topological Informations + + + GEOM_WHATIS_TITLE + Whatis Informations + + + GEOM_WIRE + Wire + + + GEOM_WIRES + Wire(s) + + + GEOM_WIRES_TO_REMOVE + Wires to remove + + + GEOM_WIREZ + Wires + + + GEOM_WIRE_CONNECT + Wire creation from wires/edges connected + + + GEOM_WIRE_TITLE + Create A Wire + + + GEOM_WPLANE + Working Plane + + + GEOM_WPLANE_FACE + Plane, Planar Face or LCS + + + GEOM_WPLANE_ORIGIN + Select a plane + + + GEOM_WPLANE_OXY + OXY + + + GEOM_WPLANE_OYZ + OYZ + + + GEOM_WPLANE_OZX + OZX + + + GEOM_WPLANE_TITLE + Working Plane Selection + + + GEOM_WPLANE_VECTOR + Select 2 vectors + + + GEOM_WPLANE_VX + Vector X + + + GEOM_WPLANE_VZ + Vector Z + + + GEOM_WRN_RADIUS_NULL + Radius is null + + + GEOM_WRN_WARNING + Warning + + + WRN_SHAPE_UNCLOSED + Unable to create solid from unclosed shape %1 + + + GEOM_X + X : + + + GEOM_Y + Y : + + + GEOM_Z + Z : + + + GLUE_NEW_OBJ_NAME + Glue + + + MEN_ALL_SEL_ONLY + Select All + + + MEN_ARC + Arc + + + MEN_ARCHIMEDE + Archimede + + + MEN_BASIC + Basic + + + MEN_BASIC_PROPS + Basic Properties + + + MEN_BLOCKS + Blocks + + + MEN_BND_BOX + Bounding Box + + + MEN_BOOLEAN + Boolean + + + MEN_BOX + Box + + + MEN_BUILD + Build + + + MEN_CHAMFER + Chamfer + + + MEN_CHANGE_ORIENTATION + Change Orientation + + + MEN_CHECK + Check + + + MEN_CHECK_COMPOUND + Check Compound of Blocks + + + MEN_CHECK_FREE_BNDS + Check Free Boundaries + + + MEN_CHECK_FREE_FACES + Check Free Faces + + + MEN_CHECK_GEOMETRY + Check Geometry + + + MEN_CIRCLE + Circle + + + MEN_CLIPPING + Clipping Range + + + MEN_CLOSE_CONTOUR + Close Contour + + + MEN_COMMON + Common + + + MEN_COMPOUND + Compound + + + MEN_COMPOUND_SEL_ONLY + Compound + + + MEN_CONE + Cone + + + MEN_CURVE + Curve + + + MEN_CUT + Cut + + + MEN_CYLINDER + Cylinder + + + MEN_DELETE + Delete + + + MEN_DIMENSIONS + Dimensions + + + MEN_DISPLAY + Show + + + MEN_DISK + Disk + + + MEN_DISPLAY_ALL + Show All + + + MEN_DISPLAY_MODE + Display Mode + + + MEN_DISPLAY_ONLY + Show Only + + + MEN_EDGE + Edge + + + MEN_EDGE_SEL_ONLY + Edge + + + MEN_EDIT + Edit + + + MEN_ELLIPSE + Ellipse + + + MEN_ERASE + Hide + + + MEN_ERASE_ALL + Hide All + + + MEN_EXPLODE + Explode + + + MEN_EXPLODE_BLOCKS + Explode on Blocks + + + MEN_EXPORT + Export... + + + MEN_EXTRUSION + Extrusion + + + MEN_FACE + Face + + + MEN_FACE_SEL_ONLY + Face + + + MEN_FILE + File + + + MEN_FILLET + Fillet + + + MEN_FILLET_2D + Fillet 2D + + + MEN_FILLING + Filling + + + MEN_FUSE + Fuse + + + MEN_GENERATION + Generation + + + MEN_GLUE_FACES + Glue Faces + + + MEN_GROUP + Group + + + MEN_GROUP_CREATE + Create + + + MEN_GROUP_EDIT + Edit + + + MEN_RELOAD_IMPORTED + Reload From Disk + + + MEN_HEX_SOLID + Hexahedral Solid + + + MEN_IMPORT + Import... + + + MEN_INERTIA + Inertia + + + MEN_ISOS + Isos + + + MEN_LINE + Line + + + MEN_LOCAL_CS + Local Coordinate System + + + MEN_MASS_CENTER + Center of Mass + + + MEN_MEASURES + Measures + + + MEN_MIN_DIST + Min Distance + + + MEN_MIRROR + Mirror Image + + + MEN_MODIFY_LOCATION + Modify the Location + + + MEN_MUL_ROTATION + Multi-Rotation + + + MEN_MUL_TRANSFORM + Multi-Transformation + + + MEN_MUL_TRANSLATION + Multi-Translation + + + MEN_NEW_ENTITY + New Entity + + + MEN_OFFSET + Offset Surface + + + MEN_OPERATIONS + Operations + + + MEN_PARTITION + Partition + + + MEN_PIPE + Extrusion Along a Path + + + MEN_PLANE + Plane + + + MEN_POINT + Point + + + MEN_POINT_COORDS + Point Coordinates + + + MEN_POINT_ON_EDGE + Add Point on Edge + + + MEN_POP_COLOR + Color + + + MEN_POP_CREATE_GROUP + Create Group + + + MEN_POP_ISOS + Isos + + + MEN_POP_RENAME + Rename + + + MEN_POP_SHADING + Shading + + + MEN_POP_TRANSPARENCY + Transparency + + + MEN_POP_WIREFRAME + Wireframe + + + MEN_PREFERENCES + Preferences + + + MEN_PREFERENCES_GEOM + Geometry + + + MEN_PRIMITIVES + Primitives + + + MEN_PROPAGATE + Propagate + + + MEN_Q_FACE + Quadrangle Face + + + MEN_REPAIR + Repair + + + MEN_REVOLUTION + Revolution + + + MEN_ROTATION + Rotation + + + MEN_SCALE + Scale Transform + + + MEN_SECTION + Section + + + MEN_SELECT_ONLY + Select Only + + + MEN_SEWING + Sewing + + + MEN_SHADING + Shading + + + MEN_SHADING_COLOR + Shading Color + + + MEN_SHAPE_PROCESS + Shape Processing + + + MEN_SHELL + Shell + + + MEN_SHELL_SEL_ONLY + Shell + + + MEN_SKETCH + Sketch + + + MEN_3DSKETCH + 3D Sketch + + + MEN_SOLID + Solid + + + MEN_SOLID_SEL_ONLY + Solid + + + MEN_SPHERE + Sphere + + + MEN_STEP_VALUE + Step Value + + + MEN_SUPPERSS_HOLES + Suppress Holes + + + MEN_SUPPRESS_FACES + Suppress Faces + + + MEN_SUPPRESS_INT_WIRES + Suppress Internal Wires + + + MEN_TOLERANCE + Compute Tolerance + + + MEN_TOOLS + Tools + + + MEN_TORUS + Torus + + + MEN_TRANSFORMATION + Transformation + + + MEN_TRANSLATION + Translation + + + MEN_VECTOR + Vector + + + MEN_VERTEX_SEL_ONLY + Vertex + + + MEN_VIEW + View + + + MEN_WHAT_IS + What is + + + MEN_WIRE + Wire + + + MEN_WIREFRAME + Wireframe + + + MEN_WIRE_SEL_ONLY + Wire + + + MEN_WORK_PLANE + Working Plane + + + NAME_LBL + Name: + + + NON_GEOM_OBJECTS_SELECTED + There are objects selected which do not belong to %1 component. + + + PREF_DISPLAY_MODE + Default display mode + + + PREF_FREE_BOUND_COLOR + Color of free boundaries + + + PREF_GROUP_GENERAL + General + + + PREF_GROUP_OCCVIEWER + OCC Viewer 3d + + + PREF_GROUP_VERTEX + Marker of Points + + + PREF_ISOS_COLOR + Color of isolines + + + PREF_LINE_COLOR + Color of edges, vectors, wires + + + PREF_MARKER_SCALE + Size + + + PREF_POINT_COLOR + Color of points + + + PREF_SHADING_COLOR + Default shading color + + + PREF_STEP_VALUE + Step value for spin boxes + + + PREF_TAB_SETTINGS + Settings + + + PREF_TYPE_OF_MARKER + Type + + + PREF_WIREFRAME_COLOR + Default wireframe color + + + PROCESS_SHAPE_NEW_OBJ_NAME + ProcessShape + + + REMOVE_HOLES_NEW_OBJ_NAME + SupressHoles + + + REMOVE_INT_WIRES_NEW_OBJ_NAME + RemoveIntWires + + + SEWING_NEW_OBJ_NAME + Sewing + + + STB_ALL_SEL_ONLY + Select all Objects + + + STB_ARC + Create an arc + + + STB_ARCHIMEDE + Archimede + + + STB_BASIC_PROPS + Basic properties + + + STB_BND_BOX + Compute bounding box + + + STB_BOX + Create a box + + + STB_CHAMFER + Chamfer + + + STB_CHANGE_ORIENTATION + Change orientation + + + STB_CHECK + Check + + + STB_CHECK_COMPOUND + Check compound of blocks + + + STB_CHECK_FREE_BNDS + Check free boundaries + + + STB_CHECK_FREE_FACES + Check free faces + + + STB_CHECK_GEOMETRY + Check Geometry + + + STB_CIRCLE + Create a circle + + + STB_CLIPPING + Clipping range + + + STB_CLOSE_CONTOUR + Perform close contour + + + STB_COMMON + Common + + + STB_COMPOUND + Build a compound + + + STB_COMPOUND_SEL_ONLY + Select only a Compounds + + + STB_CONE + Create a cone + + + STB_CURVE + Create a curve + + + STB_CUT + Cut + + + STB_CYLINDER + Create a cylinder + + + STB_DELETE + Delete object + + + STB_DISK + Create a disk + + + STB_DISPLAY + Show object(s) + + + STB_DISPLAY_ALL + Show all + + + STB_DISPLAY_ONLY + Show only + + + STB_EDGE + Build an edge + + + STB_EDGE_SEL_ONLY + Select only a Edges + + + STB_ELLIPSE + Create an ellipse + + + STB_ERASE + Hide object(s) + + + STB_ERASE_ALL + Hide all + + + STB_EXPLODE + Explode + + + STB_EXPLODE_BLOCKS + Explode on Blocks + + + STB_EXPORT + Export geometry to BREP file + + + STB_EXTRUSION + Create an extrusion + + + STB_FACE + Build a face + + + STB_FACE_SEL_ONLY + Select only a Faces + + + STB_FILLET + Fillet + + + STB_FILLING + Create a filling + + + STB_FUSE + Fuse + + + STB_GLUE_FACES + Perform glue faces + + + STB_GROUP_CREATE + Create a group + + + STB_GROUP_EDIT + Edit a group + + + STB_RELOAD_IMPORTED + Reload imported shape from its original place on disk + + + STB_HEX_SOLID + Hexahedral Solid + + + STB_IMPORT + Import geometry from BREP file + + + STB_INERTIA + Compute intertia + + + STB_ISOS + Set number of isolines + + + STB_LINE + Create a line + + + STB_LOCAL_CS + Create a local coordinate system + + + STB_MASS_CENTER + Compute center of mass + + + STB_MIN_DIST + Compute minimum distance + + + STB_MIRROR + Mirror image + + + STB_MODIFY_LOCATION + Modify the Location + + + STB_MUL_ROTATION + Multi-Rotation + + + STB_MUL_TRANSFORM + Multi-transformation + + + STB_MUL_TRANSLATION + Multi-Translation + + + STB_OFFSET + Offset surface + + + STB_PARTITION + Partition + + + STB_PIPE + Create a shape by Extrusion along a path + + + STB_PLANE + Create a plane + + + STB_POINT + Create a point + + + STB_POINT_COORDS + Point coordinates + + + STB_POINT_ON_EDGE + Add point on edge + + + STB_POP_COLOR + Color + + + STB_POP_CREATE_GROUP + Create Group + + + STB_POP_ISOS + Isolines + + + STB_POP_RENAME + Rename + + + STB_POP_SHADING + Shading + + + STB_POP_TRANSPARENCY + Transparency + + + STB_POP_WIREFRAME + Wireframe + + + STB_PROPAGATE + Propagate + + + STB_Q_FACE + Quadrangle Face + + + STB_REVOLUTION + Create a revolution + + + STB_ROTATION + Rotation + + + STB_SCALE + Scale transform + + + STB_SECTION + Section + + + STB_SEWING + Perform sewing + + + STB_SHADING + Shading + + + STB_SHADING_COLOR + Set shading color + + + STB_SHAPE_PROCESS + Perform shape processing + + + STB_SHELL + Build a shell + + + STB_SHELL_SEL_ONLY + Select only a Shells + + + STB_SKETCH + Sketch + + + STB_SOLID + Build a solid + + + STB_SOLID_SEL_ONLY + Select only a Solids + + + STB_SPHERE + Create a sphere + + + STB_STEP_VALUE + Set step value + + + STB_SUPPERSS_HOLES + Perform suppress holes + + + STB_SUPPRESS_FACES + Perform suppress faces + + + STB_SUPPRESS_INT_WIRES + Perform suppress internal wires + + + STB_TOLERANCE + Compute tolerance + + + STB_TORUS + Create a torus + + + STB_TRANSLATION + Translation + + + STB_VECTOR + Create a vector + + + STB_VERTEX_SEL_ONLY + Select only a Points + + + STB_WHAT_IS + What is + + + STB_WIRE + Build a wire + + + STB_WIRE_SEL_ONLY + Select only a Wires + + + STB_WORK_PLANE + Create a working plane + + + SUPPRESS_RESULT + Suppress Result + + + SUPRESS_FACE_NEW_OBJ_NAME + SupressFaces + + + ShHealOper_ErrorExecution_msg + Shape Healing algorithm failed + + + ShHealOper_InvalidParameters_msg + Incorrect parameters for Shape Healing algorithm + + + ShHealOper_NotError_msg + Shape Healing algorithm has done no modification of the original shape + + + TLT_RENAME + Rename + + + TOM_O + O + + + TOM_O_PLUS + + in O + + + TOM_O_POINT + . in O + + + TOM_O_STAR + * in O + + + TOM_O_X + X in O + + + TOM_PLUS + + + + + TOM_POINT + . + + + TOM_STAR + * + + + TOM_X + X + + + TOOL_BASIC + Basic + + + TOOL_BOOLEAN + Boolean operations + + + TOOL_GENERATION + Generation + + + TOOL_PRIMITIVES + Primitives + + + TOOL_TRANSFORMATION + Transformation + + + TOP_ARC + Create an arc + + + TOP_ARCHIMEDE + Archimede + + + TOP_BASIC_PROPS + Basic properties + + + TOP_BND_BOX + Compute bounding box + + + TOP_BOX + Create a box + + + TOP_CHAMFER + Chamfer + + + TOP_CHANGE_ORIENTATION + Change orientation + + + TOP_CHECK + Check + + + TOP_CHECK_COMPOUND + Check compound of blocks + + + TOP_CHECK_FREE_BNDS + Check free boundaries + + + TOP_CHECK_FREE_FACES + Check free faces + + + TOP_CHECK_GEOMETRY + Check Geometry + + + TOP_CIRCLE + Create a circle + + + TOP_CLIPPING + Clipping range + + + TOP_CLOSE_CONTOUR + Perform close contour + + + TOP_COMMON + Common + + + TOP_COMPOUND + Build a compound + + + TOP_CONE + Create a cone + + + TOP_CURVE + Create a curve + + + TOP_CUT + Cut + + + TOP_CYLINDER + Create a cylinder + + + TOP_DELETE + Delete object + + + TOP_DISK + Build a Disk + + + TOP_DISPLAY + Show + + + TOP_DISPLAY_ALL + Show all + + + TOP_DISPLAY_ONLY + Show only + + + TOP_EDGE + Build an edge + + + TOP_ELLIPSE + Create an ellipse + + + TOP_ERASE + Hide + + + TOP_ERASE_ALL + Hide all + + + TOP_EXPLODE + Explode + + + TOP_EXPLODE_BLOCKS + Explode on Blocks + + + TOP_EXPORT + Export geometry to BREP file + + + TOP_EXTRUSION + Create an extrusion + + + TOP_FACE + Build a face + + + TOP_FILLET + Fillet + + + TOP_FILLING + Create a filling + + + TOP_FUSE + Fuse + + + TOP_GLUE_FACES + Perform glue faces + + + TOP_GROUP_CREATE + Create a group + + + TOP_GROUP_EDIT + Edit a group + + + TOP_HEX_SOLID + Hexahedral Solid + + + TOP_IMPORT + Import geometry from BREP file + + + TOP_INERTIA + Compute intertia + + + TOP_ISOS + Set number of isolines + + + TOP_LINE + Create a line + + + TOP_LOCAL_CS + Create a local coordinate system + + + TOP_MASS_CENTER + Compute center of mass + + + TOP_MIN_DIST + Compute minimum distance + + + TOP_MIRROR + Mirror image + + + TOP_MODIFY_LOCATION + Modify the Location + + + TOP_MUL_ROTATION + Multi-Rotation + + + TOP_MUL_TRANSFORM + Multi-transformation + + + TOP_MUL_TRANSLATION + Multi-Translation + + + TOP_OFFSET + Offset surface + + + TOP_PARTITION + Partition + + + TOP_PIPE + Extrusion along a path + + + TOP_PLANE + Create a plane + + + TOP_POINT + Create a point + + + TOP_POINT_COORDS + Point coordinates + + + TOP_POINT_ON_EDGE + Add point on edge + + + TOP_POP_COLOR + Color + + + TOP_POP_CREATE_GROUP + Create Group + + + TOP_POP_ISOS + Isolines + + + TOP_POP_RENAME + Rename + + + TOP_POP_SHADING + Shading + + + TOP_POP_TRANSPARENCY + Transparency + + + TOP_POP_WIREFRAME + Wireframe + + + TOP_PROPAGATE + Propagate + + + TOP_Q_FACE + Quadrangle Face + + + TOP_REVOLUTION + Create a revolution + + + TOP_ROTATION + Rotation + + + TOP_SCALE + Scale transform + + + TOP_SECTION + Section + + + TOP_SEWING + Perform sewing + + + TOP_SHADING + Shading + + + TOP_SHADING_COLOR + Set shading color + + + TOP_SHAPE_PROCESS + Perform shape processing + + + TOP_SHELL + Build a shell + + + TOP_SKETCH + Sketch + + + TOP_SOLID + Build a solid + + + TOP_SPHERE + Create a sphere + + + TOP_STEP_VALUE + Set step value + + + TOP_SUPPERSS_HOLES + Perform suppress holes + + + TOP_SUPPRESS_FACES + Perform suppress faces + + + TOP_SUPPRESS_INT_WIRES + Perform suppress internal wires + + + TOP_TOLERANCE + Compute tolerance + + + TOP_TORUS + Create a torus + + + TOP_TRANSLATION + Translation + + + TOP_VECTOR + Create a vector + + + TOP_WHAT_IS + What is + + + TOP_WIRE + Build a wire + + + TOP_WORK_PLANE + Create a working plane + + + WRN_NOT_IMPLEMENTED + Sorry, this functionality is not yet implemented + + + _S_ + (s) + + + NOT_FOUND_ANY + Not a single entity has been found + + + GEOM_FACE_I + Face %1 + + + GEOM_CONSTANT_RADIUS + Radius : + + + GEOM_R1 + R1 : + + + GEOM_R2 + R2 : + + + GEOM_BOTHWAY + Both Directions + + + GEOM_NORMALE + Normal To A Face + + + GEOM_VECTOR_NORMALE + Vector_Normal + + + GEOM_LINE1 + Line 1 + + + GEOM_LINE2 + Line 2 + + + GEOM_D + D : + + + GEOM_CHAMFER_EDGE + Chamfer On Selected Edges + + + SELECTED_EDGE + Selected Edges + + + GEOM_NORMALE_TITLE + Create Normal To A Face + + + GEOM_MEASURE_ANGLE_TITLE + Angle Between Two Straight Edges/Lines/Vectors + + + GEOM_MEASURE_ANGLE_ANGLE + Angle + + + GEOM_MEASURE_ANGLE_OBJ + Objects And Results + + + GEOM_MEASURE_ANGLE_IS + Angle in degrees : + + + GEOM_LINE_INTERSECTION + Point On Lines Intersection + + + GEOM_KEEP_NONLIMIT_SHAPES + Keep shapes of lower type + + + GEOM_CENTER_2POINTS + Center and two points + + + GEOM_REMOVE_EXTRA_EDGES_TITLE + Remove extra edges + + + GEOM_REMOVE_EXTRA_EDGES + Object to remove extra edges + + + REMOVE_EXTRA_EDGES_NEW_OBJ_NAME + NoExtraEdges + + + TOP_REMOVE_EXTRA_EDGES + Remove extra edges + + + MEN_REMOVE_EXTRA_EDGES + Remove Extra Edges + + + STB_REMOVE_EXTRA_EDGES + Remove extra edges + + + TOP_NORMALE + Compute normal to a face + + + MEN_NORMALE + Normal to a Face + + + STB_NORMALE + Compute normal to a face in a point (optional) + + + TOP_MEASURE_ANGLE + Compute angle + + + MEN_MEASURE_ANGLE + Angle + + + STB_MEASURE_ANGLE + Compute angle between two lines or linear edges + + + TOP_POP_AUTO_COLOR + Auto color + + + MEN_POP_AUTO_COLOR + Auto Color + + + STB_POP_AUTO_COLOR + Auto color + + + TOP_POP_DISABLE_AUTO_COLOR + Disable auto color + + + MEN_POP_DISABLE_AUTO_COLOR + Disable Auto Color + + + STB_POP_DISABLE_AUTO_COLOR + Disable auto color + + + GEOM_RESULT_NAME_GRP + Result name + + + GEOM_RESULT_NAME_LBL + Name + + + GEOM_FILLING_APPROX + Approximation + + + GEOM_WRN_NO_APPROPRIATE_SELECTION + No appropriate objects selected + + + GEOM_SHAPES_ON_SHAPE + Get shapes on shape + + + GEOM_SHAPES_ON_SHAPE_ESHAPE + Shape for exploding + + + GEOM_SHAPES_ON_SHAPE_CSHAPE + Shape for checking + + + GEOM_SHAPES_ON_SHAPE_STATE + State + + + GEOM_KIND_OF_SHAPE + Kind of Shape : + + + GEOM_CLOSED + Closed + + + GEOM_UNCLOSED + Opened + + + GEOM_CLOSEDUNCLOSED + Not defined, Closed or Opened. Possibly, error occured. + + + GEOM_DISK_CIRCLE + Disk + + + GEOM_DISK_ELLIPSE + Elliptical face + + + GEOM_PLANAR_FACE + Planar Face + + + GEOM_POLYGON + Polygon + + + GEOM_NORMAL + Normal direction + + + GEOM_DIRECTION + Direction + + + GEOM_UPARAMETER + U-parameter : + + + GEOM_VPARAMETER + V-parameter : + + + GEOM_X_I + X%1 : + + + GEOM_Y_I + Y%1 : + + + GEOM_Z_I + Z%1 : + + + GEOM_SHAPES_ON_SHAPE_TITLE + Get shapes on shape + + + GEOM_SCALE_FACTOR_X + Scale Factor X : + + + GEOM_SCALE_FACTOR_Y + Scale Factor Y : + + + GEOM_SCALE_FACTOR_Z + Scale Factor Z : + + + GEOM_STATE_IN + IN + + + GEOM_STATE_OUT + OUT + + + GEOM_STATE_ON + ON + + + GEOM_STATE_ONIN + ONIN + + + GEOM_STATE_ONOUT + ONOUT + + + GEOM_STATE_INOUT + INOUT + + + TOP_GET_SHAPES_ON_SHAPES + Get shapes on shape + + + MEN_GET_SHAPES_ON_SHAPES + Get Shapes on Shape + + + STB_GET_SHAPES_ON_SHAPES + Get shapes on shape + + + GEOM_PUBLISH_RESULT_GRP + Advanced options + + + GEOM_RESTORE_SUB_SHAPES + Set presentation parameters and subshapes from arguments + + + GEOM_ALL_IMPORT_FILES + All supported formats ( %1 ) + + + GEOM_UNSUPPORTED_TYPE + Unsupported format for the file + + + GEOM_UNKNOWN_IMPORT_ERROR + Unknown error + + + GEOM_IMPORT_ERRORS + Import operation has finished with errors: + + + + BasicGUI_MarkerDlg + + CAPTION + Local CS Construction + + + DX + Dx + + + DY + Dy + + + DZ + Dz + + + LCS_NAME + LocalCS + + + LOCALCS + Local coordinate system + + + ORIGIN + Coordinates of origin + + + VEC_PARALLEL + Coordinate system axes cannot be parallel + + + XDIR + X axis direction + + + YDIR + Y axis direction + + + + BlocksGUI_BlockDlg + + FACE_1 + Face 1 + + + FACE_2 + Face 2 + + + FACE_3 + Face 3 + + + FACE_4 + Face 4 + + + FACE_5 + Face 5 + + + FACE_6 + Face 6 + + + + BlocksGUI_ExplodeDlg + + NB_FACES_MAX + Max. nb. faces + + + NB_FACES_MIN + Min. nb. faces + + + + BlocksGUI_QuadFaceDlg + + EDGE_1 + Edge 1 + + + EDGE_2 + Edge 2 + + + EDGE_3 + Edge 3 + + + EDGE_4 + Edge 4 + + + VERTEX_1 + Vertex 1 + + + VERTEX_2 + Vertex 2 + + + VERTEX_3 + Vertex 3 + + + VERTEX_4 + Vertex 4 + + + + BlocksGUI_TrsfDlg + + FACE_1 + Face 1 + + + FACE_1U + Face 1 U + + + FACE_1V + Face 1 V + + + FACE_2 + Face 2 + + + FACE_2U + Face 2 U + + + FACE_2V + Face 2 V + + + + EntityGUI_SketcherDlg + + CANNOT_CLOSE + It is impossible to close sketch +Number of sketch points too small + + + + EntityGUI_SubShapeDlg + + NO_SUBSHAPES_SELECTED + Please, select one or more sub-shapes + + + + GroupGUI + + NO_GROUP + Please, select a group to edit + + + + GroupGUI_GroupDlg + + ADD + Add + + + CREATE_GROUP_TITLE + Create Group + + + EDIT_GROUP_TITLE + Edit Group + + + EMPTY_LIST + Please, select one or more sub-shapes to put into the group + + + EMPTY_NAME + Please, specify a non-empty group name + + + GROUP_NAME + Group Name + + + GROUP_PREFIX + Group + + + MAIN_SHAPE + Main Shape + + + MAIN_SUB_SHAPES + Main Shape And Sub-Shapes + + + NO_GROUP + Please, select a group to edit + + + NO_MAIN_OBJ + Please, select a main shape + + + REMOVE + Remove + + + SELECT_ALL + Select All + + + SHAPE_SEL_RESTR + Main Shape Selection restriction + + + SHAPE_TYPE + Shape Type + + + NO_RESTR + No restriction + + + GEOM_PARTS_OF_SHAPE2 + Geometrical parts of the Second Shape + + + SUBSHAPES_OF_SHAPE2 + Only Sub-Shapes of the Second Shape + + + SECOND_SHAPE + Second Shape + + + + MeasureGUI_1Sel1TextView1Check_QTD + + CHECK_SHAPE_GEOMETRY + Check also geometry + + + + MeasureGUI_PointDlg + + CAPTION + Point Coordinates + + + COORDINATES + Point and its coordinates + + + POINT + Point + + + X + X + + + Y + Y + + + Z + Z + + + + OperationGUI_ChamferDlg + + D + D + + + FACE_1 + Face 1 + + + FACE_2 + Face 2 + + + SELECTED_FACES + Selected faces + + + + OperationGUI_FilletDlg + + SELECTED_EDGES + Selected edges + + + SELECTED_FACES + Selected faces + + + + RepairGUI_FreeBoundDlg + + CAPTION + Check free boundaries + + + FREE_BOUND + Free boundaries + + + NUMBER_CLOSED + Number of closed free boundaries: + + + NUMBER_OPEN + Number of open free boundaries: + + + + RepairGUI_GlueDlg + + FACES_FOR_GLUING_ARE_DETECTED + There are %1 face(s) that can be glued. They are coloured on the screen with red colour. +Please close this message box and select faces for glueing + + + GLUE_FACES + Glue faces + + + SELECT_FACES + Select Faces + + + THERE_ARE_NO_FACES_FOR_GLUING + There are no faces for gluing + + + + RepairGUI_ShapeProcessDlg + + ERROR_NO_OBJECTS + Please, select a geometrical object for Shape Processing. + + + ERROR_NO_OPERATORS + Please, select at least one Shape Process operation to proceed. + + + TIME_CONSUMING + Enabling this option may result in a very time-consuming operation for some input shapes. +Would you like to continue? + + + + GEOMToolsGUI_DeleteDlg + + GEOM_REALLY_DELETE + Do you really want to delete %1 object(s)? + + + GEOM_REALLY_DELETE_ALL + Do you really want to delete all objects? + + + GEOM_DELETE_OBJECTS + Delete objects + + + diff --git a/src/GEOMGUI/GEOM_msg_fr.po b/src/GEOMGUI/GEOM_msg_fr.po index d4efd381d..a0aaf1884 100644 --- a/src/GEOMGUI/GEOM_msg_fr.po +++ b/src/GEOMGUI/GEOM_msg_fr.po @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,12 +17,13 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # This is a Qt message file in .po format. Each msgid starts with # a scope. This scope should *NOT* be translated - eg. translating # from French to English, "Foo::Bar" would be translated to "Pub", # not "Foo::Pub". +# msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" diff --git a/src/GEOMGUI/GEOM_msg_fr.ts b/src/GEOMGUI/GEOM_msg_fr.ts new file mode 100644 index 000000000..608ad2570 --- /dev/null +++ b/src/GEOMGUI/GEOM_msg_fr.ts @@ -0,0 +1,1445 @@ + + + + + @default + + GEOM_ANGLE + Angle : + + + GEOM_ARC + Arc + + + GEOM_ARCHIMEDE + Archimde + + + GEOM_ARCHIMEDE_TITLE + Construction d'Archimde + + + GEOM_ARC_TITLE + Construction d'un Arc + + + GEOM_ARGUMENTS + Arguments + + + GEOM_AXE_MIRROR + Axe Miroir + + + GEOM_AXIS + Axe + + + GEOM_BASE + Base + + + GEOM_BASE_OBJECT + Objet De Base + + + GEOM_BASE_POINT + Point De Base + + + GEOM_BEZIER + Bezier + + + GEOM_BNDBOX + Boite Anglobante + + + GEOM_BNDBOX_OBJDIM + Objet and ses dimensions + + + GEOM_BNDBOX_TITLE + Boite Englobante + + + GEOM_BOX + Boite + + + GEOM_BOX_OBJ + Dimensions A l'Origine + + + GEOM_BOX_TITLE + Construction d'une Boite + + + GEOM_BUT_APPLY + &Appliquer + + + GEOM_BUT_CANCEL + &Annuler + + + GEOM_BUT_CLOSE + &Fermer + + + GEOM_BUT_CLOSE_SKETCH + Fermer Sketch + + + GEOM_BUT_END_SKETCH + Terminer Sketch + + + GEOM_BUT_EXPLODE + &Exploser + + + GEOM_BUT_HELP + &Aide + + + GEOM_BUT_NO + &Non + + + GEOM_BUT_OK + &Ok + + + GEOM_BUT_YES + &Oui + + + GEOM_CENTER + Centre + + + GEOM_CENTER_POINT + Point Centre + + + GEOM_CENTRAL_POINT + Point Central + + + GEOM_CHAMFER + Chanfrein + + + GEOM_CHAMFER_ABORT + Le chanfrein ne peut-tre realis avec %1 et %2 + + + GEOM_CHAMFER_ALL + Chanfrein sur toute la Shape + + + GEOM_CHAMFER_EDGES + Chanfrein sur Edges de la Shape + + + GEOM_CHAMFER_FACES + Chanfrein sur Faces de la Shape + + + GEOM_CHAMFER_TITLE + Construction d'un Chanfrein + + + GEOM_CHECK_BLOCKS_COMPOUND + Check Blocks Compound + + + GEOM_CHECK_BLOCKS_COMPOUND_ERRORS + Errors + + + GEOM_CHECK_BLOCKS_COMPOUND_HAS_ERRORS + The Compound of Blocks has errors + + + GEOM_CHECK_BLOCKS_COMPOUND_HAS_NO_ERRORS + The Compound of Blocks has no errors + + + GEOM_CHECK_BLOCKS_COMPOUND_SUBSHAPES + Incriminated Sub-Shapes + + + GEOM_CHECK_COMPOUND_BLOCKS_TITLE + Check Blocks Compound + + + GEOM_CHECK_INFOS + Objet et ses Informations Topologiques + + + GEOM_CHECK_SHAPE + Check Shape + + + GEOM_CHECK_TITLE + Check Shape + + + GEOM_CIRCLE + Cercle + + + GEOM_CIRCLE_TITLE + Construction d'un Cercle + + + GEOM_CMASS + Centre de Masse + + + GEOM_CMASS_TITLE + Centre De Gravit + + + GEOM_COMMON + Joindre + + + GEOM_COMMON_TITLE + BOOLEEN : Jonction De Deux Objets + + + GEOM_COMPOUND + Compound + + + GEOM_COMPOUNDSOLID + CompSolid + + + GEOM_COMPOUND_TITLE + Cration d'un Compound + + + GEOM_CONE + Cone + + + GEOM_CONE_TITLE + Construction d'un Cone + + + GEOM_CONFIRM + Confirmer cette operation + + + GEOM_CONFIRM_INFO + L'objet contient %1 sous objets + + + GEOM_COOR + Coord. : + + + GEOM_COORDINATES + Coordonnes + + + GEOM_CREATE_COPY + Create a copy + + + GEOM_CREATE_SINGLE_SOLID + Create a single solid + + + GEOM_CUT + Couper + + + GEOM_CUT_TITLE + BOOLEEN : Couper Deux Objets + + + GEOM_CYLINDER + Cylindre + + + GEOM_CYLINDER_TITLE + Construction d'un Cylindre + + + GEOM_D1 + D1 : + + + GEOM_D2 + D2 : + + + GEOM_DIAGONAL_POINTS + Points Diagonaux + + + GEOM_DIMENSIONS + Dimensions + + + GEOM_DISTANCE + Distance + + + GEOM_DX + Dx : + + + GEOM_DY + Dy : + + + GEOM_DZ + Dz : + + + GEOM_EDGE + Edge + + + GEOM_EDGE_TITLE + Cration d'un Edge + + + GEOM_ELLIPSE + Ellipse + + + GEOM_ELLIPSE_TITLE + Construction d'Ellipses + + + GEOM_EXTRUSION + Extrusion + + + GEOM_EXTRUSION_BSV + Shape de base + Vecteur + + + GEOM_EXTRUSION_BSV_2P + Shape de base + 2 Points + + + GEOM_EXTRUSION_TITLE + Extruder une Shape de base + + + GEOM_FACE + Face + + + GEOM_FACES + Faces + + + GEOM_FACE_FFW + Face a partir d'un wire + + + GEOM_FACE_OPT + Cration d'une Face plane + + + GEOM_FACE_SELECTION + Selection de Face + + + GEOM_FACE_TITLE + Cration d'une Face + + + GEOM_FILLET + Conge + + + GEOM_FILLET_ABORT + Le cong ne peut-tre realis avec un rayon de %1 + + + GEOM_FILLET_ALL + Cong sur toute la Shape + + + GEOM_FILLET_EDGES + Cong sur Edges de la Shape + + + GEOM_FILLET_FACES + Cong sur Faces de la Shape + + + GEOM_FILLET_TITLE + Construction d'un Cong + + + GEOM_FILLING + Surface Par Edges + + + GEOM_FILLING_ARG + Argument Et Parametres + + + GEOM_FILLING_COMPOUND + Compound de Edges + + + GEOM_FILLING_MAX_DEG + Max. Deg + + + GEOM_FILLING_MIN_DEG + Min. Deg + + + GEOM_FILLING_NB_ITER + Nb. Iter + + + GEOM_FILLING_TITLE + Surface Par Edges + + + GEOM_FILLING_TOL_2D + Tol. 2D + + + GEOM_FILLING_TOL_3D + Tol. 3D + + + GEOM_FREE_FACES + Free faces + + + GEOM_FREE_FACES_TITLE + Free faces + + + GEOM_FUSE + Fusionner + + + GEOM_FUSE_TITLE + BOOLEEN : Fusionner deux Objets + + + GEOM_HEIGHT + Hauteur + + + GEOM_IDENTICAL_NAMES_SELECT_BY_MOUSE + Noms identiques : selectionner avec la souris ! + + + GEOM_INERTIA_CONSTR + Matrice Et Moments d'Inertie + + + GEOM_INERTIA_I + %1:1 + + + GEOM_INERTIA_IXYZ + IX & IY & IZ + + + GEOM_INERTIA_TITLE + Calculs d'Inertie + + + GEOM_INF_LOADED + Le fichier %1 est charg. + + + GEOM_INTERPOL + Interpolation + + + GEOM_KEEP_OBJECT + Objet garde + + + GEOM_LENGTH + Longueur : + + + GEOM_LINE + Ligne + + + GEOM_LINE_TITLE + Construction d'une Ligne + + + GEOM_MAIN_OBJECT + Objet Principal + + + GEOM_MATERIAL_ID + Material ID: + + + GEOM_MATERIAL_MATERIAL + Material + + + GEOM_MATERIAL_SET + << Set + + + GEOM_MATERIAL_SHAPE + Shapes + + + GEOM_MATERIAL_TITLE + Define materials for Dominant Fuse + + + GEOM_MATRIX + Matrice : + + + GEOM_MAX + Max : + + + GEOM_MEN_ALL_FILES + Tous fichiers ( * ) + + + GEOM_MEN_ANGLE + Angle : + + + GEOM_MEN_COMPONENT + Gometrie + + + GEOM_MEN_ENTER_ANGLE + Saisir un angle en degrs + + + GEOM_MEN_EXPORT + Exporter + + + GEOM_MEN_IMPORT + Importer + + + GEOM_MEN_ISOS + Choisir un nombre d'isos + + + GEOM_MEN_ISOU + Isos u : + + + GEOM_MEN_ISOV + Isos v : + + + GEOM_MEN_LOAD_SCRIPT + Fichiers PYTHON ( *.py ) + + + GEOM_MEN_POPUP_NAME + %1 Objets + + + GEOM_MEN_SHADING + Ombr + + + GEOM_MEN_SKETCHER_X + Saisir une longueur pour fixer X + + + GEOM_MEN_SKETCHER_Y + Saisir une longueur pour fixer Y + + + GEOM_MEN_STEP_LABEL + Increment + + + GEOM_MEN_TRANSPARENCY + Transparence + + + GEOM_MEN_TRANSPARENCY_LABEL + Transparence : + + + GEOM_MEN_WIREFRAME + Filaire + + + GEOM_MEN_X + X : + + + GEOM_MEN_Y + Y : + + + GEOM_MESHING_DEFLECTION + Dflection Du Maillage : + + + GEOM_MIN + Min : + + + GEOM_MINDIST_OBJ + Objets Et Resultats + + + GEOM_MINDIST_TITLE + Distance Minimale entre Deux Objets + + + GEOM_MIRROR + Miroir + + + GEOM_MIRROR_TITLE + Methode Miroir + + + GEOM_MULTIROTATION + Multi-Rotation + + + GEOM_MULTIROTATION_DOUBLE + Multi Rotation Double + + + GEOM_MULTIROTATION_SIMPLE + Multi Rotation Simple + + + GEOM_MULTIROTATION_TITLE + Multi-Rotation + + + GEOM_MULTITRANSLATION + Multi-Translation + + + GEOM_MULTITRANSLATION_DOUBLE + Multi Translation Double + + + GEOM_MULTITRANSLATION_SIMPLE + Multi Translation Simple + + + GEOM_MULTITRANSLATION_TITLE + Multi-Translation + + + GEOM_NAME_INCORRECT + Le nom saisi n'existe pas + + + GEOM_NB_TIMES + Nb. Fois : + + + GEOM_NB_TIMES_U + Nb. Fois U : + + + GEOM_NB_TIMES_V + Nb. Fois V : + + + GEOM_OBJECT + Objet + + + GEOM_OBJECTS + Objets + + + GEOM_OBJECT_I + Objet %1 + + + GEOM_OBJECT_RESULT + Objet Et Rsultat + + + GEOM_ORIENTATION + Orientation + + + GEOM_ORIENTATION_OPT + Renverser l'orientation avec une simulation de vecteur normal + + + GEOM_ORIENTATION_TITLE + Changer l'Orientation + + + GEOM_PARAMETER + Paramtre : + + + GEOM_PARAM_POINT + Point paramtrique + + + GEOM_PARTITION + Partition + + + GEOM_PARTITION_HALFSPACE + Half-space partition + + + GEOM_PARTITION_ORIENTATION + Change l'orientation + + + GEOM_PARTITION_TITLE + Partition d'Objects Avec Outils + + + GEOM_PATH_OBJECT + Objet Chemin + + + GEOM_PIPE + Pipe + + + GEOM_PIPE_TITLE + Construction d'une Pipe + + + GEOM_PLANE + Plan + + + GEOM_PLANE_MIRROR + Plan Miroir + + + GEOM_PLANE_PV + Point + Vecteur + + + GEOM_PLANE_PVC + Point + Vecteur Coordonnes + + + GEOM_PLANE_SIZE + Taille du plan : + + + GEOM_PLANE_TITLE + Construction d'un Plan + + + GEOM_POINT + Point + + + GEOM_POINTS + Points + + + GEOM_POINT_I + Point %1 + + + GEOM_POINT_MIRROR + Point Miroir + + + GEOM_POINT_TITLE + Construction d'un Point + + + GEOM_PRECISION + Prcision : + + + GEOM_PROPAGATE + Propagate + + + GEOM_PROPAGATE_TITLE + Propagate + + + GEOM_PROPERTIES + Basiques Proprietes + + + GEOM_PROPERTIES_CONSTR + Objet et ses Proprietes + + + GEOM_PROPERTIES_SURFACE + Surface : + + + GEOM_PROPERTIES_TITLE + Proprietes Basiques + + + GEOM_PROPERTIES_VOLUME + Volume : + + + GEOM_PRP_ABORT + L'opration a echou + + + GEOM_PRP_COMMAND + Pas de commande associe l'id = %1. + + + GEOM_PRP_DONE + Opration effectue + + + GEOM_PRP_LOADING + Chargement de %1 ... + + + GEOM_PRP_MIN_DIST + Min Distance non calculer + + + GEOM_PRP_NOT_FOR_VTK_VIEWER + Non permis dans viewer VTK + + + GEOM_PRP_NULLSHAPE + Erreur, objet inconsistant ou inappropri ! + + + GEOM_PRP_READY + Prt... + + + GEOM_PRP_SELECT_EDGE + Selectionner les edges et clicker sur Apply + + + GEOM_PRP_SELECT_FACE + Select les faces a supprimer et clicker sur Ok/Apply + + + GEOM_PRP_SELECT_FIRST + Selectionner la shape principale en premier + + + GEOM_PRP_SELECT_SUBSHAPES + Selection de sous objets + + + GEOM_PRP_SHAPE_IN_STUDY + La shape principale doit etre avant dans l'etude + + + GEOM_RADIUS + Rayon + + + GEOM_RADIUS_I + Rayon %1 + + + GEOM_RADIUS_MAJOR + Rayon max. : + + + GEOM_RADIUS_MINOR + Rayon min. : + + + GEOM_REALLY_DELETE + Voulez-vous supprimer l'object(s) ? + + + GEOM_RECONSTRUCTION_LIMIT + Limite de Reconstruction + + + GEOM_RECONSTRUCTION_LIMIT_EDGE + Edge + + + GEOM_RECONSTRUCTION_LIMIT_FACE + Face + + + GEOM_RECONSTRUCTION_LIMIT_SHAPE + Shape + + + GEOM_RECONSTRUCTION_LIMIT_SHELL + Shell + + + GEOM_RECONSTRUCTION_LIMIT_SOLID + Solid + + + GEOM_RECONSTRUCTION_LIMIT_VERTEX + Vertex + + + GEOM_RECONSTRUCTION_LIMIT_WIRE + Wire + + + GEOM_REMOVE_WEBS + Remove webs + + + GEOM_REVERSE + Renverser + + + GEOM_REVERSE_U + Renverser U + + + GEOM_REVERSE_V + Reverser V + + + GEOM_REVERSE_VECTOR + Renverser Le Vecteur + + + GEOM_REVOLUTION + Rvolution + + + GEOM_REVOLUTION_TITLE + Construction Par Revolution + + + GEOM_ROTATION + Rotation + + + GEOM_ROTATION_TITLE + Rotation d'un Objet + + + GEOM_SCALE + Echelle + + + GEOM_SCALE_FACTOR + Facteur d'echelle + + + GEOM_SCALE_TITLE + Echelle d'un Objet + + + GEOM_SECTION + Section + + + GEOM_SECTION_TITLE + BOOLEEN : Section De Deux Objets + + + GEOM_SELECTION + Slection + + + GEOM_SET_MATERIALS + Set materials + + + GEOM_SEWING + Coudre + + + GEOM_SEWING_TITLE + Coudre des Topologies + + + GEOM_SHAPE + Shape + + + GEOM_SHELL + Shell + + + GEOM_SHELLS + Shells + + + GEOM_SHELL_TITLE + Construction d'une Shell + + + GEOM_SKETCHER_ABS + Absolu + + + GEOM_SKETCHER_ANGLE + Angle + + + GEOM_SKETCHER_ANGLE2 + Angle : + + + GEOM_SKETCHER_APPLY + Appliquer + + + GEOM_SKETCHER_ARC + Arc + + + GEOM_SKETCHER_DEST + Destination + + + GEOM_SKETCHER_DIR + Direction + + + GEOM_SKETCHER_DX2 + DX : + + + GEOM_SKETCHER_DY2 + DY : + + + GEOM_SKETCHER_EL + Type d'Element + + + GEOM_SKETCHER_LENGTH + Longueur + + + GEOM_SKETCHER_LENGTH2 + Longueur : + + + GEOM_SKETCHER_PER + Perpendiculaire + + + GEOM_SKETCHER_POINT + Point + + + GEOM_SKETCHER_POINT2 + Point : + + + GEOM_SKETCHER_RADIUS2 + Radius : + + + GEOM_SKETCHER_REL + Relative + + + GEOM_SKETCHER_SEGMENT + Sgment + + + GEOM_SKETCHER_SEL + Slection + + + GEOM_SKETCHER_TAN + Tangent + + + GEOM_SKETCHER_TITLE + Construction de Sketch + + + GEOM_SKETCHER_TYPE + Type + + + GEOM_SKETCHER_UNDO + Undo + + + GEOM_SKETCHER_VALUES + Valeurs + + + GEOM_SKETCHER_VX2 + VX : + + + GEOM_SKETCHER_VXVY + VX-VY + + + GEOM_SKETCHER_VY2 + VY : + + + GEOM_SKETCHER_X + X + + + GEOM_SKETCHER_X2 + X : + + + GEOM_SKETCHER_X3 + Abs. X : + + + GEOM_SKETCHER_Y + Y + + + GEOM_SKETCHER_Y2 + Y : + + + GEOM_SKETCHER_Y3 + Abs. Y : + + + GEOM_SOLID + Solide + + + GEOM_SOLID_TITLE + Construction d'un Solid + + + GEOM_SPHERE + Sphre + + + GEOM_SPHERE_CR + Centre + rayon + + + GEOM_SPHERE_RO + Rayon a l'origine + + + GEOM_SPHERE_TITLE + Construction d'une Sphere + + + GEOM_SPLINE + Spline + + + GEOM_SPLINE_TITLE + Construction de Splines + + + GEOM_STEP + Pas : + + + GEOM_STEP_TITLE + Increment par dfaut lors des constructions + + + GEOM_STEP_U + Pas U : + + + GEOM_STEP_V + Pas V : + + + GEOM_SUBSHAPE_SELECT + Selectionner de Sous Shapes + + + GEOM_SUBSHAPE_TITLE + Selection de Sous Shapes + + + GEOM_SUBSHAPE_TYPE + Type de Sous Shapes + + + GEOM_SUB_SHAPE + Sous Shapes + + + GEOM_SUPPRESSHOLE_FACE_SHELL + Face ou shell + + + GEOM_SUPPRESSHOLE_SELECTFACE + Selection de la face initiale + + + GEOM_SUPPRESSHOLE_SELECTFACE_END + Selection de la face terminale (si trou traversant) + + + GEOM_SUPPRESSHOLE_SELECTWIRE + Selection du contour/trou sur la face + + + GEOM_SUPPRESSHOLE_SELECTWIRE_END + Selection de contour final (si trou traversant) + + + GEOM_SUPPRESSHOLE_SELECT_HOLES_ON_FACE + Selection de trou(s) sur la face + + + GEOM_SUPPRESSHOLE_TITLE + Suppression de trous + + + GEOM_SUPPRESS_RESULT + Supprimer le Resultat + + + GEOM_SUPPRESS_RESULT_INSIDE + Intrieur + + + GEOM_SUPPRESS_RESULT_OUTSIDE + Extrieur + + + GEOM_SUPRESSFACE + Supression de Face + + + GEOM_SUPRESSFACE_SELECT + Selectionner les Faces a Supprimer + + + GEOM_SUPRESSFACE_TITLE + Supprimer des Faces dans un Objet + + + GEOM_SURFCONE + Face Conique + + + GEOM_SURFCYLINDER + Face Cylindrique + + + GEOM_SURFSPHERE + Face Sphrique + + + GEOM_SURFTORUS + Face Toroique + + + GEOM_TOLERANCE + Tolrance + + + GEOM_TOLERANCE_CONSTR + Object et ses Tolerances + + + GEOM_TOLERANCE_EDGE + Edge : + + + GEOM_TOLERANCE_FACE + Face : + + + GEOM_TOLERANCE_TITLE + Tolerance Maximale + + + GEOM_TOLERANCE_VERTEX + Vertex : + + + GEOM_TOOL_OBJECT + Objet Outil + + + GEOM_TORUS + Tore + + + GEOM_TORUS_TITLE + Constructiond'un Tore + + + GEOM_TRANSLATION + Translation + + + GEOM_TRANSLATION_COOR + Translation Avec Coordonnees + + + GEOM_TRANSLATION_TITLE + Translation d'un Objet + + + GEOM_TRANSPARENCY_OPAQUE + Opaque + + + GEOM_TRANSPARENCY_TITLE + Transparence + + + GEOM_TRANSPARENCY_TRANSPARENT + Transparent + + + GEOM_VECTOR + Vecteur + + + GEOM_VECTOR_LENGTH + Longueur Du Vecteur : + + + GEOM_VECTOR_TITLE + Construction d'un Vecteur + + + GEOM_VECTOR_U + Vecteur U + + + GEOM_VECTOR_V + Vecteur V + + + GEOM_VERTEX + Vertex + + + GEOM_WATER_DENSITY + Densit de l'eau : + + + GEOM_WEIGHT + poids + + + GEOM_WHATIS + Whatis + + + GEOM_WHATIS_OBJECT + Objet et ses Informations Topologiques + + + GEOM_WHATIS_TITLE + Whatis + + + GEOM_WIRE + Wire + + + GEOM_WIRES + Wire(s) + + + GEOM_WIRE_CONNECT + Creation d'un Wire a partir de wires/edges connectes + + + GEOM_WIRE_TITLE + Creer un Wire + + + GEOM_WPLANE + Plan de Travail + + + GEOM_WPLANE_FACE + Plan Ou Face plane + + + GEOM_WPLANE_TITLE + plan de travail + + + GEOM_WRN_RADIUS_NULL + Le rayon est nul + + + GEOM_WRN_WARNING + Avertissement + + + GEOM_X + X : + + + GEOM_Y + Y : + + + GEOM_Z + Z : + + + SUPPRESS_RESULT + Suppress Result + + + diff --git a/src/GEOMGUI/GeometryGUI.cxx b/src/GEOMGUI/GeometryGUI.cxx index 11d602f2c..54722fe93 100644 --- a/src/GEOMGUI/GeometryGUI.cxx +++ b/src/GEOMGUI/GeometryGUI.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,18 +19,19 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GeometryGUI.cxx +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) // -// -// File : GeometryGUI.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "GeometryGUI.h" #include "GEOMGUI_OCCSelector.h" #include "GEOMGUI_Selection.h" #include "GEOM_Displayer.h" +#include "GEOM_AISShape.hxx" +#include "GEOM_Actor.h" + +#include #include #include #include @@ -41,34 +42,53 @@ #include #include +#include +#include + #include #include #include #include -#include #include +#include + #include #include -#include +#include #include + #include #include +#include + +#include +#include // External includes -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include +#include #include #include #include +#include "GEOMImpl_Types.hxx" + +using namespace Qt; extern "C" { Standard_EXPORT CAM_Module* createModule() { @@ -129,41 +149,14 @@ SALOMEDS::Study_var GeometryGUI::ClientStudyToStudy (_PTR(Study) theStudy) return aDSStudy._retn(); } -//================================================================================= -// class : CustomItem -// purpose : Set Font to a text. -//================================================================================= -class CustomItem : public QCustomMenuItem +//======================================================================= +// function : JoinObjectParameters +// purpose : +//======================================================================= +char* GeometryGUI::JoinObjectParameters(const QStringList& theParametersList) { -public: - CustomItem(const QString& s, const QFont& f) : myString(s), myFont(f) {} - ~CustomItem() {} - - void paint(QPainter* p, const QColorGroup& cg, bool act, bool /*enabled*/, int x, int y, int w, int h) - { - p->save(); - p->fillRect( x, y, w, h, act ? cg.highlight() : cg.mid() ); - p->setPen( act ? cg.highlightedText() : cg.buttonText() ); - p->setFont( myFont ); - p->drawText( x, y, w, h, AlignHCenter | AlignVCenter | ShowPrefix | DontClip | SingleLine, myString ); - p->restore(); - } - - QSize sizeHint() - { - return QFontMetrics( myFont ).size( AlignHCenter | AlignVCenter | ShowPrefix | DontClip | SingleLine, myString ); - } - - bool fullSpan() const - { - return true; - } - -private: - QString myString; - QFont myFont; -}; - + return theParametersList.join(":").toLatin1().data(); +} //======================================================================= // function : GeometryGUI::GeometryGUI() // purpose : Constructor @@ -186,9 +179,6 @@ GeometryGUI::GeometryGUI() : gp_Dir direction = gp_Dir(0., 0., 1.); myWorkingPlane = gp_Ax3(origin, direction); - myOCCSelectors.setAutoDelete( true ); - myVTKSelectors.setAutoDelete( true ); - myDisplayer = 0; myLocalSelectionMode = GEOM_ALLOBJECTS; } @@ -199,6 +189,11 @@ GeometryGUI::GeometryGUI() : //======================================================================= GeometryGUI::~GeometryGUI() { + while (!myOCCSelectors.isEmpty()) + delete myOCCSelectors.takeFirst(); + + while (!myVTKSelectors.isEmpty()) + delete myVTKSelectors.takeFirst(); } //======================================================================= @@ -210,19 +205,21 @@ GEOMGUI* GeometryGUI::getLibrary( const QString& libraryName ) { if ( !myGUIMap.contains( libraryName ) ) { // try to load library if it is not loaded yet - QCString libs; + QString libs; #ifndef WNT - if ( (libs = getenv( "LD_LIBRARY_PATH" )) ) { - QStringList dirList = QStringList::split( ":", libs, false ); // skip empty entries + libs = getenv( "LD_LIBRARY_PATH" ); + if( !libs.isEmpty() ) { + QStringList dirList = libs.split( ":", QString::SkipEmptyParts ); // skip empty entries #else - if ( (libs = getenv( "PATH" )) ) { - QStringList dirList = QStringList::split( ";", libs, false ); // skip empty entries + libs = getenv( "PATH" ); + if( !libs.isEmpty() ) { + QStringList dirList = libs.split( ";", QString::SkipEmptyParts ); // skip empty entries #endif for( int i = dirList.count()-1; i >= 0; i-- ) { QString dir = dirList[ i ]; QFileInfo fi( Qtx::addSlash( dirList[ i ] ) + libraryName ); if( fi.exists() ) { - OSD_SharedLibrary aSharedLibrary( (char*)fi.fileName().latin1() ); + OSD_SharedLibrary aSharedLibrary( fi.fileName().toLatin1().data() ); bool res = aSharedLibrary.DlOpen( OSD_RTLD_LAZY ); if( !res ) { MESSAGE( "Can't open library : " << aSharedLibrary.DlError() ); @@ -358,7 +355,7 @@ void GeometryGUI::OnGUIEvent( int id ) // fix for IPAL9103, point 2 if ( CORBA::is_nil( GetGeomGen() ) ) { - SUIT_MessageBox::error1( desk, tr( "GEOM_ERROR" ), tr( "GEOM_ERR_GET_ENGINE" ), tr( "GEOM_BUT_OK" ) ); + SUIT_MessageBox::critical( desk, tr( "GEOM_ERROR" ), tr( "GEOM_ERR_GET_ENGINE" ), tr( "GEOM_BUT_OK" ) ); return; } @@ -382,8 +379,6 @@ void GeometryGUI::OnGUIEvent( int id ) id == 33 || // MENU EDIT - DELETE id == 411 || // MENU SETTINGS - ADD IN STUDY id == 412 || // MENU SETTINGS - SHADING COLOR - id == 413 || // MENU SETTINGS - ISOS - id == 414 || // MENU SETTINGS - STEP VALUE FOR SPIN BOXES id == 5103 || // MENU TOOLS - CHECK GEOMETRY id == 8032 || // POPUP VIEWER - COLOR id == 8033 || // POPUP VIEWER - TRANSPARENCY @@ -434,7 +429,9 @@ void GeometryGUI::OnGUIEvent( int id ) id == 4022 || // MENU PRIMITIVE - CYLINDER id == 4023 || // MENU PRIMITIVE - SPHERE id == 4024 || // MENU PRIMITIVE - TORUS - id == 4025 ) { // MENU PRIMITIVE - CONE + id == 4025 || // MENU PRIMITIVE - CONE + id == 4026 || // MENU PRIMITIVE - FACE + id == 4027 ) { // MENU PRIMITIVE - DISK #ifndef WNT library = getLibrary( "libPrimitiveGUI.so" ); #else @@ -452,6 +449,7 @@ void GeometryGUI::OnGUIEvent( int id ) #endif } else if( id == 404 || // MENU ENTITY - SKETCHER + id == 405 || // MENU ENTITY - 3D SKETCHER id == 407 ) { // MENU ENTITY - EXPLODE #ifndef WNT library = getLibrary( "libEntityGUI.so" ); @@ -488,7 +486,8 @@ void GeometryGUI::OnGUIEvent( int id ) id == 5025 || // MENU TRANSFORMATION - SCALE id == 5026 || // MENU TRANSFORMATION - OFFSET id == 5027 || // MENU TRANSFORMATION - MULTI-TRANSLATION - id == 5028 ) { // MENU TRANSFORMATION - MULTI-ROTATION + id == 5028 || // MENU TRANSFORMATION - MULTI-ROTATION + id == 5029 ) { // CONTEXT(POPUP) MENU - RELOAD_IMPORTED #ifndef WNT library = getLibrary( "libTransformationGUI.so" ); #else @@ -499,7 +498,9 @@ void GeometryGUI::OnGUIEvent( int id ) id == 504 || // MENU OPERATION - ARCHIMEDE id == 505 || // MENU OPERATION - FILLET id == 506 || // MENU OPERATION - CHAMFER - id == 507 ) { // MENU OPERATION - CLIPPING RANGE + id == 507 || // MENU OPERATION - CLIPPING RANGE + id == 508 || // MENU OPERATION - GET SHAPES ON SHAPE + id == 509 ) { // MENU OPERATION - FILLET 2D #ifndef WNT library = getLibrary( "libOperationGUI.so" ); #else @@ -535,7 +536,7 @@ void GeometryGUI::OnGUIEvent( int id ) id == 706 || // MENU MEASURE - WHATIS id == 707 || // MENU MEASURE - CHECK id == 7072 || // MENU MEASURE - CHECK COMPOUND OF BLOCKS - id == 708 ) { // MENU MEASURE - POINT COORDINATES + id == 708 ) { // MENU MEASURE - POINT COORDINATES #ifndef WNT library = getLibrary( "libMeasureGUI.so" ); #else @@ -555,7 +556,7 @@ void GeometryGUI::OnGUIEvent( int id ) id == 9998 || // MENU BLOCKS - MULTI-TRANSFORMATION id == 9997 || // MENU BLOCKS - QUADRANGLE FACE id == 99991 || // MENU BLOCKS - PROPAGATE - id == 9995 ) { // MENU BLOCKS - EXPLODE ON BLOCKS + id == 9995 ) { // MENU BLOCKS - EXPLODE ON BLOCKS #ifndef WNT library = getLibrary( "libBlocksGUI.so" ); #else @@ -567,7 +568,7 @@ void GeometryGUI::OnGUIEvent( int id ) if ( library ) library->OnGUIEvent( id, desk ); else - SUIT_MessageBox::error1( desk, tr( "GEOM_ERROR" ), tr( "GEOM_ERR_LIB_NOT_FOUND" ), tr( "GEOM_BUT_OK" ) ); + SUIT_MessageBox::critical( desk, tr( "GEOM_ERROR" ), tr( "GEOM_ERR_LIB_NOT_FOUND" ), tr( "GEOM_BUT_OK" ) ); } @@ -582,7 +583,7 @@ void GeometryGUI::OnKeyPress( SUIT_ViewWindow* win, QKeyEvent* pe ) for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it ) { SUIT_Application* anApp = application(); if (!anApp) return; - bOk = bOk && it.data()->OnKeyPress( pe, anApp->desktop(), win ); + bOk = bOk && it.value()->OnKeyPress( pe, anApp->desktop(), win ); } // return bOk; } @@ -599,7 +600,7 @@ void GeometryGUI::OnMouseMove( SUIT_ViewWindow* win, QMouseEvent* pe ) for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it ) { SUIT_Application* anApp = application(); if (!anApp) return; - bOk = bOk && it.data()->OnMouseMove( pe, anApp->desktop(), win ); + bOk = bOk && it.value()->OnMouseMove( pe, anApp->desktop(), win ); } // return bOk; } @@ -618,7 +619,7 @@ void GeometryGUI::OnMousePress( SUIT_ViewWindow* win, QMouseEvent* pe ) for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it ) { SUIT_Application* anApp = application(); if (!anApp) return; - processed = processed || it.data()->OnMousePress( pe, anApp->desktop(), win ); + processed = processed || it.value()->OnMousePress( pe, anApp->desktop(), win ); } // return processed; } @@ -738,20 +739,20 @@ bool GeometryGUI::SetSettings() //======================================================================= void GeometryGUI::createGeomAction( const int id, const QString& po_id, const QString& icon_id, const int key, const bool toggle ) { - QIconSet icon; + QIcon icon; QWidget* parent = application()->desktop(); SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); QPixmap pix; if ( icon_id.length() ) - pix = resMgr->loadPixmap( "GEOM", tr( icon_id ) ); + pix = resMgr->loadPixmap( "GEOM", tr( icon_id.toLatin1().constData() ) ); else - pix = resMgr->loadPixmap( "GEOM", tr( QString( "ICO_" )+po_id ), false ); + pix = resMgr->loadPixmap( "GEOM", tr( (QString( "ICO_" )+po_id).toLatin1().constData() ), false ); if ( !pix.isNull() ) - icon = QIconSet( pix ); + icon = QIcon( pix ); - QString tooltip = tr( QString( "TOP_" )+po_id ), - menu = tr( QString( "MEN_" )+po_id ), - status_bar = tr( QString( "STB_" )+po_id ); + QString tooltip = tr( (QString( "TOP_" )+po_id).toLatin1().constData() ), + menu = tr( (QString( "MEN_" )+po_id).toLatin1().constData() ), + status_bar = tr( (QString( "STB_" )+po_id).toLatin1().constData() ); createAction( id, tooltip, icon, menu, status_bar, key, parent, toggle, this, SLOT( OnGUIEvent() ) ); } @@ -771,7 +772,7 @@ void GeometryGUI::initialize( CAM_Application* app ) createGeomAction( 111, "IMPORT", "", (CTRL + Key_I) ); createGeomAction( 121, "EXPORT", "", (CTRL + Key_E) ); - createGeomAction( 33, "DELETE", "", Key_Delete ); + createGeomAction( 33, "DELETE", "", Qt::Key_Delete ); createGeomAction( 4011, "POINT" ); createGeomAction( 4012, "LINE" ); @@ -789,6 +790,8 @@ void GeometryGUI::initialize( CAM_Application* app ) createGeomAction( 4023, "SPHERE" ); createGeomAction( 4024, "TORUS" ); createGeomAction( 4025, "CONE" ); + createGeomAction( 4026, "FACE" ); + createGeomAction( 4027, "DISK" ); createGeomAction( 4031, "EXTRUSION" ); createGeomAction( 4032, "REVOLUTION" ); @@ -798,10 +801,13 @@ void GeometryGUI::initialize( CAM_Application* app ) createGeomAction( 800, "GROUP_CREATE" ); createGeomAction( 801, "GROUP_EDIT" ); + createGeomAction( 5029, "RELOAD_IMPORTED" ); + createGeomAction( 9997, "Q_FACE" ); createGeomAction( 9999, "HEX_SOLID" ); createGeomAction( 404, "SKETCH" ); + createGeomAction( 405, "3DSKETCH" ); createGeomAction( 407, "EXPLODE" ); createGeomAction( 4081, "EDGE" ); @@ -830,6 +836,8 @@ void GeometryGUI::initialize( CAM_Application* app ) createGeomAction( 505, "FILLET" ); createGeomAction( 506, "CHAMFER" ); //createGeomAction( 507, "CLIPPING" ); + createGeomAction( 508, "GET_SHAPES_ON_SHAPES" ); + createGeomAction( 509, "FILLET_2D" ); createGeomAction( 9998, "MUL_TRANSFORM" ); createGeomAction( 9995, "EXPLODE_BLOCKS" ); @@ -866,8 +874,6 @@ void GeometryGUI::initialize( CAM_Application* app ) createGeomAction( 5103, "CHECK_GEOMETRY" ); #endif createGeomAction( 412, "SHADING_COLOR" ); - createGeomAction( 413, "ISOS" ); - createGeomAction( 414, "STEP_VALUE" ); createGeomAction( 211, "SHADING" ); createGeomAction( 212, "DISPLAY_ALL" ); @@ -884,7 +890,7 @@ void GeometryGUI::initialize( CAM_Application* app ) createGeomAction( 213, "DISPLAY_ONLY" ); createGeomAction( 215, "ERASE" ); - createGeomAction( 901, "POP_RENAME", "", Key_F2 ); + createGeomAction( 901, "POP_RENAME", "", Qt::Key_F2 ); createGeomAction( 80311, "POP_WIREFRAME", "", 0, true ); createGeomAction( 80312, "POP_SHADING", "", 0, true ); createGeomAction( 8032, "POP_COLOR" ); @@ -930,6 +936,8 @@ void GeometryGUI::initialize( CAM_Application* app ) createMenu( 4023, primId, -1 ); createMenu( 4024, primId, -1 ); createMenu( 4025, primId, -1 ); + createMenu( 4026, primId, -1 ); + createMenu( 4027, primId, -1 ); int genId = createMenu( tr( "MEN_GENERATION" ), newEntId, -1 ); createMenu( 4031, genId, -1 ); @@ -949,6 +957,7 @@ void GeometryGUI::initialize( CAM_Application* app ) createMenu( separator(), newEntId, -1 ); createMenu( 404, newEntId, -1 ); + createMenu( 405, newEntId, -1 ); createMenu( separator(), newEntId, -1 ); createMenu( 407, newEntId, -1 ); @@ -981,7 +990,9 @@ void GeometryGUI::initialize( CAM_Application* app ) createMenu( 503, operId, -1 ); createMenu( 504, operId, -1 ); + createMenu( 508, operId, -1 ); createMenu( separator(), operId, -1 ); + createMenu( 509, transId, -1 ); createMenu( 505, transId, -1 ); createMenu( 506, transId, -1 ); //createMenu( 507, transId, -1 ); @@ -1040,8 +1051,6 @@ void GeometryGUI::initialize( CAM_Application* app ) //createMenu( separator(), prefId, -1 ); //int geomId = createMenu( tr( "MEN_PREFERENCES_GEOM" ), prefId, -1 ); //createMenu( 412, geomId, -1 ); - //createMenu( 413, geomId, -1 ); - //createMenu( 414, geomId, -1 ); //createMenu( separator(), prefId, -1 ); int viewId = createMenu( tr( "MEN_VIEW" ), -1, -1 ); @@ -1085,6 +1094,8 @@ void GeometryGUI::initialize( CAM_Application* app ) createTool( 4023, primTbId ); createTool( 4024, primTbId ); createTool( 4025, primTbId ); + createTool( 4026, primTbId ); + createTool( 4027, primTbId ); int boolTbId = createTool( tr( "TOOL_BOOLEAN" ) ); createTool( 5011, boolTbId ); @@ -1122,33 +1133,33 @@ void GeometryGUI::initialize( CAM_Application* app ) QtxPopupMgr* mgr = popupMgr(); mgr->insert( action( 901 ), -1, -1 ); // rename - mgr->setRule( action( 901 ), "$type in {'Shape' 'Group'} and selcount=1", true ); + mgr->setRule( action( 901 ), QString("$type in {'Shape' 'Group'} and selcount=1"), QtxPopupMgr::VisibleRule ); mgr->insert( action( 33 ), -1, -1 ); // delete - mgr->setRule( action( 33 ), "$type in {'Shape' 'Group'} and selcount>0", true ); + mgr->setRule( action( 33 ), QString("$type in {'Shape' 'Group'} and selcount>0"), QtxPopupMgr::VisibleRule ); mgr->insert( action( 8001 ), -1, -1 ); // create group - mgr->setRule( action( 8001 ), "client='ObjectBrowser' and type='Shape' and selcount=1 and isOCC=true", true ); + mgr->setRule( action( 8001 ), QString("client='ObjectBrowser' and type='Shape' and selcount=1 and isOCC=true"), QtxPopupMgr::VisibleRule ); mgr->insert( action( 801 ), -1, -1 ); // edit group - mgr->setRule( action( 801 ), "client='ObjectBrowser' and type='Group' and selcount=1 and isOCC=true", true ); + mgr->setRule( action( 801 ), QString("client='ObjectBrowser' and type='Group' and selcount=1 and isOCC=true"), QtxPopupMgr::VisibleRule ); mgr->insert( separator(), -1, -1 ); // ----------- dispmodeId = mgr->insert( tr( "MEN_DISPLAY_MODE" ), -1, -1 ); // display mode menu mgr->insert( action( 80311 ), dispmodeId, -1 ); // wireframe - mgr->setRule( action( 80311 ), clientOCCorVTK_AndSomeVisible, true ); - mgr->setRule( action( 80311 ), clientOCCorVTK + " and displaymode='Wireframe'", false ); + mgr->setRule( action( 80311 ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); + mgr->setRule( action( 80311 ), clientOCCorVTK + " and displaymode='Wireframe'", QtxPopupMgr::ToggleRule ); mgr->insert( action( 80312 ), dispmodeId, -1 ); // shading - mgr->setRule( action( 80312 ), clientOCCorVTK_AndSomeVisible, true ); - mgr->setRule( action( 80312 ), clientOCCorVTK + " and displaymode='Shading'", false ); + mgr->setRule( action( 80312 ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); + mgr->setRule( action( 80312 ), clientOCCorVTK + " and displaymode='Shading'", QtxPopupMgr::ToggleRule ); mgr->insert( separator(), -1, -1 ); // ----------- mgr->insert( action( 8032 ), -1, -1 ); // color - mgr->setRule( action( 8032 ), clientOCCorVTKorOB_AndSomeVisible + " and ($component={'GEOM'})", true ); + mgr->setRule( action( 8032 ), clientOCCorVTKorOB_AndSomeVisible + " and ($component={'GEOM'})", QtxPopupMgr::VisibleRule ); mgr->insert( action( 8033 ), -1, -1 ); // transparency - mgr->setRule( action( 8033 ), clientOCCorVTK_AndSomeVisible, true ); + mgr->setRule( action( 8033 ), clientOCCorVTK_AndSomeVisible, QtxPopupMgr::VisibleRule ); mgr->insert( action( 8034 ), -1, -1 ); // isos - mgr->setRule( action( 8034 ), clientOCCorVTK_AndSomeVisible + " and selcount>0 and isVisible", true ); + mgr->setRule( action( 8034 ), clientOCCorVTK_AndSomeVisible + " and selcount>0 and isVisible", QtxPopupMgr::VisibleRule ); mgr->insert( separator(), -1, -1 ); // ----------- mgr->insert( action( 8035 ), -1, -1 ); // auto color - mgr->setRule( action( 8035 ), autoColorPrefix + " and isAutoColor=false", true ); + mgr->setRule( action( 8035 ), autoColorPrefix + " and isAutoColor=false", QtxPopupMgr::VisibleRule ); mgr->insert( action( 8036 ), -1, -1 ); // disable auto color - mgr->setRule( action( 8036 ), autoColorPrefix + " and isAutoColor=true", true ); + mgr->setRule( action( 8036 ), autoColorPrefix + " and isAutoColor=true", QtxPopupMgr::VisibleRule ); mgr->insert( separator(), -1, -1 ); // ----------- @@ -1158,45 +1169,44 @@ void GeometryGUI::initialize( CAM_Application* app ) types = "'Shape' 'Group'"; mgr->insert( action( 216 ), -1, -1 ); // display - mgr->setRule( action( 216 ), rule.arg( types ).arg( "not isVisible" ), true ); + mgr->setRule( action( 216 ), rule.arg( types ).arg( "not isVisible" ), QtxPopupMgr::VisibleRule ); mgr->insert( action( 215 ), -1, -1 ); // erase - mgr->setRule( action( 215 ), rule.arg( types ).arg( "isVisible" ), true ); + mgr->setRule( action( 215 ), rule.arg( types ).arg( "isVisible" ), QtxPopupMgr::VisibleRule ); mgr->insert( action( 214 ), -1, -1 ); // erase All - mgr->setRule( action( 214 ), clientOCCorVTK, true ); + mgr->setRule( action( 214 ), clientOCCorVTK, QtxPopupMgr::VisibleRule ); QString selectOnly = "(client='OCCViewer' or client='VTKViewer') and (selcount=0)"; int selectolnyId = mgr->insert( tr("MEN_SELECT_ONLY"), -1, -1); //select only menu mgr->insert( action(2171), selectolnyId, -1); //Vertex - mgr->setRule(action(2171), selectOnly, true); - mgr->setRule(action(2171), selectOnly + " and selectionmode='VERTEX'", false); + mgr->setRule(action(2171), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(2171), selectOnly + " and selectionmode='VERTEX'", QtxPopupMgr::ToggleRule); mgr->insert( action(2172), selectolnyId, -1); //Edge - mgr->setRule(action(2172), selectOnly, true); - mgr->setRule(action(2172), selectOnly + " and selectionmode='EDGE'", false); + mgr->setRule(action(2172), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(2172), selectOnly + " and selectionmode='EDGE'", QtxPopupMgr::ToggleRule); mgr->insert( action(2173), selectolnyId, -1); //Wire - mgr->setRule(action(2173), selectOnly, true); - mgr->setRule(action(2173), selectOnly + " and selectionmode='WIRE'", false); + mgr->setRule(action(2173), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(2173), selectOnly + " and selectionmode='WIRE'", QtxPopupMgr::ToggleRule); mgr->insert( action(2174), selectolnyId, -1); //Face - mgr->setRule(action(2174), selectOnly, true); - mgr->setRule(action(2174), selectOnly + " and selectionmode='FACE'", false); + mgr->setRule(action(2174), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(2174), selectOnly + " and selectionmode='FACE'", QtxPopupMgr::ToggleRule); mgr->insert( action(2175), selectolnyId, -1); //Shell - mgr->setRule(action(2175), selectOnly, true); - mgr->setRule(action(2175), selectOnly + " and selectionmode='SHELL'", false); + mgr->setRule(action(2175), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(2175), selectOnly + " and selectionmode='SHELL'", QtxPopupMgr::ToggleRule); mgr->insert( action(2176), selectolnyId, -1); //Solid - mgr->setRule(action(2176), selectOnly, true); - mgr->setRule(action(2176), selectOnly + " and selectionmode='SOLID'", false); + mgr->setRule(action(2176), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(2176), selectOnly + " and selectionmode='SOLID'", QtxPopupMgr::ToggleRule); mgr->insert( action(2177), selectolnyId, -1); //Compound - mgr->setRule(action(2177), selectOnly, true); - mgr->setRule(action(2177), selectOnly + " and selectionmode='COMPOUND'", false); + mgr->setRule(action(2177), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(2177), selectOnly + " and selectionmode='COMPOUND'", QtxPopupMgr::ToggleRule); mgr->insert( separator(), selectolnyId, -1); mgr->insert( action(2178), selectolnyId, -1); //Clear selection filter - mgr->setRule(action(2178), selectOnly, true); - mgr->setRule(action(2178), selectOnly + " and selectionmode='ALL'", false); - + mgr->setRule(action(2178), selectOnly, QtxPopupMgr::VisibleRule); + mgr->setRule(action(2178), selectOnly + " and selectionmode='ALL'", QtxPopupMgr::ToggleRule); mgr->insert( action( 213 ), -1, -1 ); // display only - mgr->setRule( action( 213 ), rule.arg( types ).arg( "true" ), true ); + mgr->setRule( action( 213 ), rule.arg( types ).arg( "true" ), QtxPopupMgr::VisibleRule ); mgr->insert( separator(), -1, -1 ); mgr->hide( mgr->actionId( action( myEraseAll ) ) ); @@ -1225,32 +1235,50 @@ bool GeometryGUI::activateModule( SUIT_Study* study ) // Reset actions accelerator keys //action(111)->setAccel(QKeySequence(CTRL + Key_I)); // Import //action(121)->setAccel(QKeySequence(CTRL + Key_E)); // Export - action(111)->setEnabled(true); // Import - action(121)->setEnabled(true); // Export + action(111)->setEnabled( true ); // Import: CTRL + Key_I + action(121)->setEnabled( true ); // Export: CTRL + Key_E + action( 33)->setEnabled( true ); // Delete: Key_Delete + action(901)->setEnabled( true ); // Rename: Key_F2 GUIMap::Iterator it; for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it ) - it.data()->activate( application()->desktop() ); + it.value()->activate( application()->desktop() ); LightApp_SelectionMgr* sm = getApp()->selectionMgr(); + SUIT_ViewManager* vm; ViewManagerList OCCViewManagers, VTKViewManagers; + application()->viewManagers( OCCViewer_Viewer::Type(), OCCViewManagers ); - for ( vm = OCCViewManagers.first(); vm; vm = OCCViewManagers.next() ) + QListIterator itOCC( OCCViewManagers ); + while ( itOCC.hasNext() && (vm = itOCC.next()) ) myOCCSelectors.append( new GEOMGUI_OCCSelector( ((OCCViewer_ViewManager*)vm)->getOCCViewer(), sm ) ); + application()->viewManagers( SVTK_Viewer::Type(), VTKViewManagers ); - for ( vm = VTKViewManagers.first(); vm; vm = VTKViewManagers.next() ) + QListIterator itVTK( VTKViewManagers ); + while ( itVTK.hasNext() && (vm = itVTK.next()) ) myVTKSelectors.append( new LightApp_VTKSelector( dynamic_cast( vm->getViewModel() ), sm ) ); + //NPAL 19674 + SALOME_ListIO selected; + sm->selectedObjects( selected ); + sm->clearSelected(); + // disable OCC selectors - //getApp()->selectionMgr()->setEnabled( false, OCCViewer_Viewer::Type() ); - for ( GEOMGUI_OCCSelector* sr = myOCCSelectors.first(); sr; sr = myOCCSelectors.next() ) - sr->setEnabled(true); + getApp()->selectionMgr()->setEnabled( false, OCCViewer_Viewer::Type() ); + QListIterator itOCCSel( myOCCSelectors ); + while ( itOCCSel.hasNext() ) + if ( GEOMGUI_OCCSelector* sr = itOCCSel.next() ) + sr->setEnabled(true); // disable VTK selectors - //getApp()->selectionMgr()->setEnabled( false, SVTK_Viewer::Type() ); - for ( LightApp_VTKSelector* sr = myVTKSelectors.first(); sr; sr = myVTKSelectors.next() ) - sr->setEnabled(true); + getApp()->selectionMgr()->setEnabled( false, SVTK_Viewer::Type() ); + QListIterator itVTKSel( myVTKSelectors ); + while ( itVTKSel.hasNext() ) + if ( LightApp_VTKSelector* sr = itVTKSel.next() ) + sr->setEnabled(true); + + sm->setSelectedObjects( selected, true ); //NPAL 19674 return true; } @@ -1272,325 +1300,27 @@ bool GeometryGUI::deactivateModule( SUIT_Study* study ) GUIMap::Iterator it; for ( it = myGUIMap.begin(); it != myGUIMap.end(); ++it ) - it.data()->deactivate(); + it.value()->deactivate(); // Unset actions accelerator keys //action(111)->setAccel(QKeySequence()); // Import //action(121)->setAccel(QKeySequence()); // Export - action(111)->setEnabled(false); // Import - action(121)->setEnabled(false); // Export + action(111)->setEnabled( false ); // Import: CTRL + Key_I + action(121)->setEnabled( false ); // Export: CTRL + Key_E + action( 33)->setEnabled( false ); // Delete: Key_Delete + action(901)->setEnabled( false ); // Rename: Key_F2 + qDeleteAll(myOCCSelectors); myOCCSelectors.clear(); getApp()->selectionMgr()->setEnabled( true, OCCViewer_Viewer::Type() ); + qDeleteAll(myVTKSelectors); myVTKSelectors.clear(); getApp()->selectionMgr()->setEnabled( true, SVTK_Viewer::Type() ); return SalomeApp_Module::deactivateModule( study ); } -//================================================================================= -// function : GeometryGUI::DefinePopup() -// purpose : Called from desktop to define popup menu [static] -//================================================================================= -/* -void GeometryGUI::DefinePopup(QString& theContext, QString& theParent, QString& theObject) -{ - QAD_Study* ActiveStudy = QAD_Application::getDesktop()->getActiveStudy(); - SALOME_Selection* Sel = SALOME_Selection::Selection(ActiveStudy->getSelection()); - - theObject = ""; - theContext = ""; - - if ( theParent == "Viewer" ) { - if ( Sel->IObjectCount() == 0 ) - theContext = "NothingSelected"; - } - - if ( Sel->IObjectCount() == 1 ) { - Handle(SALOME_InteractiveObject) IO = Sel->firstIObject(); - if( IO->hasEntry() ) { - SALOMEDS::SObject_var sobj = ActiveStudy->getStudyDocument()->FindObjectID( IO->getEntry() ); - if ( !sobj->_is_nil() ) { - SALOMEDS::SComponent_var scomp = sobj->GetFatherComponent(); - if ( !strcmp(scomp->GetID(), IO->getEntry() ) ) { - // component is selected - theObject = "Component"; - } - else { - GEOM::GEOM_Object_var aGObj = GEOM::GEOM_Object::_narrow( sobj->GetObject() ); - if ( !CORBA::is_nil( aGObj ) ) { - switch( aGObj->GetType() ) { - case GEOM_GROUP: - theObject = "Group"; - break; - default: - theObject = "Shape"; - break; - } - } - } - } - } - } -} - -//================================================================================= -// function : GeometryGUI::CustomPopup() -// purpose : Called from desktop to create popup menu [static] -//================================================================================= -bool GeometryGUI::CustomPopup(QAD_Desktop* parent, QPopupMenu* popup, const QString& theContext, - const QString& theParent, const QString& theObject) -{ - GeometryGUI* geomGUI = GetGeomGUI(); - - // Deactivate any non modal dialog box to get the neutral point - geomGUI->EmitSignalDeactivateDialog(); - QAD_Study* anActiveStudy = parent->getActiveStudy(); - QAD_StudyFrame* aStudyFrame = anActiveStudy->getActiveStudyFrame(); - QAD_ViewFrame* aViewFrame = aStudyFrame->getRightFrame()->getViewFrame(); - SALOME_Selection* Sel = SALOME_Selection::Selection(anActiveStudy->getSelection()); - QString parentComponent = ((SALOMEGUI_Desktop*)parent)->getComponentFromSelection(); - bool isOCCViewer = aViewFrame->getTypeView() == VIEW_OCC; - bool isVTKViewer = aViewFrame->getTypeView() == VIEW_VTK; - int aDisplayMode = 0; - QString objectName; - - if ( aViewFrame->getTypeView() == VIEW_OCC ) - aDisplayMode = ((OCCViewer_ViewFrame*)aViewFrame)->getViewer()->getAISContext()->DisplayMode(); - else if ( aViewFrame->getTypeView() == VIEW_VTK ) - aDisplayMode = (dynamic_cast( aViewFrame )->getRWInteractor()->GetDisplayMode(); - - int nbSel = Sel->IObjectCount(); - - if( nbSel == 0 ) { - ////// NOTHING SELECTED - popup->clear(); - } - else if ( nbSel == 1 ) { - ////// SINGLE OBJECT SELECTION - if ( parentComponent != parent->getActiveComponent() ) { - ////// selected object does not belong to GEOM module: - // remove all commands except Display/Erase... - while ( 1 ) { - int id = popup->idAt( 0 ); - if ( id <= QAD_TopLabel_Popup_ID ) - popup->removeItemAt( 0 ); - else - break; - } - } - else { - ////// selected object belong to the GEOM module - // get interactive object - Handle(SALOME_InteractiveObject) IObject = Sel->firstIObject(); - objectName = IObject->getName(); - // if object has entry get SObject - SALOMEDS::SObject_var SO; - if ( IObject->hasEntry() ) - SO = anActiveStudy->getStudyDocument()->FindObjectID( IObject->getEntry() ); - - if ( theObject == "Component" ) { - ////// menu for component - if ( !isOCCViewer && !isVTKViewer ) { - popup->removeItem( QAD_DisplayOnly_Popup_ID ); - popup->removeItem( QAD_Display_Popup_ID ); - popup->removeItem( QAD_Erase_Popup_ID ); - } - } - else { - ////// not component (should be shape) - if ( IObject->hasEntry() ) /////// VSR : TO BE REMOVED - popup->removeItem( 804 ); // "Add in Study" - - // Here could be analysis of the geom shape's type - // ... // - - SALOMEDS::GenericAttribute_var aTmpAttr; - if( SO->_is_nil() || SO->GetFatherComponent()->FindAttribute( aTmpAttr, "AttributeIOR") ) - popup->removeItem( 9024 ); // "Open" /////// VSR : TO BE REMOVED - - if ( !isOCCViewer && theParent == "ObjectBrowser" ) { - if ( theObject == "Shape" ) - popup->removeItem( 800 ); // Create Group - else if ( theObject == "Group" ) - popup->removeItem( 801 ); // Edit Group - } - - if ( isOCCViewer || isVTKViewer ) { - ////// current viewer is OCC or VTK - SALOME_Prs* prs = aViewFrame->CreatePrs( IObject->getEntry() ); - if ( aViewFrame->isVisible( IObject ) ) { - ////// object is already displayed in the viewer - popup->removeItem( QAD_Display_Popup_ID ); - if ( isOCCViewer ) { - ////// OCC viewer only - OCCViewer_Prs* occPrs = dynamic_cast( prs ); - if ( occPrs && !occPrs->IsNull() ) { - AIS_ListOfInteractive ioList; - occPrs->GetObjects( ioList ); - QMenuItem* mi = popup->findItem( 803 ); - if ( mi && mi->popup() ) { - if ( ioList.First()->DisplayMode() == 0 ) - mi->popup()->setItemChecked( 80311, true ); // "Wireframe" - else if ( ioList.First()->DisplayMode() == 1 ) - mi->popup()->setItemChecked( 80312, true ); // "Shading" - else if ( ioList.First()->DisplayMode() < 0 ) - mi->popup()->setItemChecked( aDisplayMode == 0 ? 80311 : 80312 , true ); // "Wireframe" or "Shading" - } - } - } - else { - ////// VTK viewer only - //popup->removeItem( 8034 ); // "Isos" - SVTK_Prs* vtkPrs = dynamic_cast( prs ); - if ( vtkPrs && !vtkPrs->IsNull() ) { - vtkActorCollection* actorList = vtkPrs->GetObjects(); - actorList->InitTraversal(); - SALOME_Actor* ac = SALOME_Actor::SafeDownCast( actorList->GetNextActor() ); - QMenuItem* mi = popup->findItem( 803 ); - if ( ac && mi && mi->popup() ) { - if ( ac->getDisplayMode() == 0 ) - mi->popup()->setItemChecked( 80311, true ); // "Wireframe" - else if ( ac->getDisplayMode() == 1 ) - mi->popup()->setItemChecked( 80312, true ); // "Shading" - else - mi->popup()->setItemChecked( aDisplayMode == 0 ? 80311 : 80312 , true ); // "Wireframe" or "Shading" - } - } - } - } - else { - ////// object is not yet displayed in the viewer - popup->removeItem( 803 ); // "Display Mode" - popup->removeItem( 8032 ); // "Color" - popup->removeItem( 8033 ); // "Transparency" - popup->removeItem( 8034 ); // "Isos" - popup->removeItem( QAD_Erase_Popup_ID ); - } - delete prs; - } - else { - ////// other viewer type (neither OCC nor VTK) - popup->removeItem( 803 ); // "Display Mode" - popup->removeItem( 8032 ); // "Color" - popup->removeItem( 8033 ); // "Transparency" - popup->removeItem( 8034 ); // "Isos" - popup->removeItem( QAD_Display_Popup_ID ); - popup->removeItem( QAD_DisplayOnly_Popup_ID ); - popup->removeItem( QAD_Erase_Popup_ID ); - } - } - } - } - else { - ////// MULTIPLE SELECTION - if ( parentComponent != parent->getActiveComponent() ) { - ////// not GEOM module objects or objects belong to different modules - // remove all commands except Display/Erase... - while ( 1 ) { - int id = popup->idAt( 0 ); - if ( id <= QAD_TopLabel_Popup_ID ) - popup->removeItemAt( 0 ); - else - break; - } - if ( parentComponent.isNull() ) { - ////// objects belong to different modules - popup->removeItem(QAD_Display_Popup_ID); - popup->removeItem(QAD_DisplayOnly_Popup_ID); - popup->removeItem(QAD_Erase_Popup_ID); - } - else { - objectName = tr( "GEOM_MEN_POPUP_NAME" ).arg( nbSel ); - } - } - else { - ////// all selected objects belong to GEOM module - popup->removeItem( 901 ); // "Rename" - - SALOME_ListIteratorOfListIO It( Sel->StoredIObjects() ); - bool isComponent = false; - bool needOpen = false; - bool needDisplay = false; - bool needErase = false; - int needToPublish = 0; - - for( ;It.More();It.Next() ) { - Handle(SALOME_InteractiveObject) anIObject = It.Value(); - - if ( aViewFrame->isVisible( anIObject ) ) - needErase = true; - else - needDisplay = true; - - if( anIObject->hasEntry() ) { - needToPublish = -1; /////// VSR : TO BE REMOVED - SALOMEDS::SObject_var obj = anActiveStudy->getStudyDocument()->FindObjectID( anIObject->getEntry() ); - SALOMEDS::GenericAttribute_var aTmpAttr; - if ( !obj->_is_nil() && !obj->GetFatherComponent()->FindAttribute( aTmpAttr, "AttributeIOR" ) ) - needOpen = true; /////// VSR : TO BE REMOVED - if ( !obj->_is_nil() && QString( obj->GetID() ) == QString( obj->GetFatherComponent()->GetID() ) ) - isComponent = true; - } - else { - if ( needToPublish != -1 ) needToPublish = 1; - } - } - if( needOpen || ( !isOCCViewer && !isVTKViewer ) ) { - ////// Data is not loaded yet or current viewer is neither OCC nor VTK - popup->removeItem( 803 ); // "Display Mode" - popup->removeItem( 8032 ); // "Color" - popup->removeItem( 8033 ); // "Transparency" - popup->removeItem( 8034 ); // "Isos" - popup->removeItem( 804 ); // "Add in Study" - popup->removeItem( QAD_DisplayOnly_Popup_ID ); - popup->removeItem( QAD_Display_Popup_ID ); - popup->removeItem( QAD_Erase_Popup_ID ); - } - else { - popup->removeItem( 9024 ); // "Open" - if ( needToPublish <= 0 ) - popup->removeItem( 804 ); // "Add in Study" - - if( isComponent ) { - popup->removeItem( 803 ); // "Display Mode" - popup->removeItem( 8032 ); // "Color" - popup->removeItem( 8033 ); // "Transparency" - popup->removeItem( 8034 ); // "Isos" - popup->removeItem( QAD_DisplayOnly_Popup_ID ); - } - - if ( !needDisplay ) - popup->removeItem( QAD_Display_Popup_ID ); - if ( !needErase ) - popup->removeItem( QAD_Erase_Popup_ID ); - if ( !isOCCViewer && !isVTKViewer) - popup->removeItem( 8034 ); // "Isos" - } - } - } - - // check popup for unnecessary separators - QAD_Tools::checkPopup( popup ); - // find popup menu's TopLabel item (with title) - int topItem = popup->indexOf( QAD_TopLabel_Popup_ID ); - if ( topItem >= 0 ) { - // remove popup menu's title item - popup->removeItem( QAD_TopLabel_Popup_ID ); - if ( theParent == "Viewer" && !objectName.isEmpty() && popup->count() > 0 ) { - // set bold font for popup menu's title - QFont f = popup->font(); f.setBold( TRUE ); - popup->removeItem( QAD_TopLabel_Popup_ID ); - popup->insertItem( new CustomItem( objectName, f ), QAD_TopLabel_Popup_ID, topItem ); - } - } - - return false; -} - -*/ - //======================================================================= // function : GeometryGUI::BuildPresentation() // purpose : @@ -1610,7 +1340,7 @@ void GeometryGUI::onWindowActivated( SUIT_ViewWindow* win ) return; const bool ViewOCC = ( win->getViewManager()->getType() == OCCViewer_Viewer::Type() ); - const bool ViewVTK = ( win->getViewManager()->getType() == SVTK_Viewer::Type() ); + //const bool ViewVTK = ( win->getViewManager()->getType() == SVTK_Viewer::Type() ); // disable non-OCC viewframe menu commands // action( 404 )->setEnabled( ViewOCC ); // SKETCHER @@ -1620,8 +1350,6 @@ void GeometryGUI::onWindowActivated( SUIT_ViewWindow* win ) action( 607 )->setEnabled( ViewOCC ); // RemoveInternalWires action( 608 )->setEnabled( ViewOCC ); // AddPointOnEdge // action( 609 )->setEnabled( ViewOCC ); // Free boundaries - action( 413 )->setEnabled( ViewOCC ); // Isos Settings - action( 413 )->setEnabled( ViewVTK ); // Isos Settings action( 800 )->setEnabled( ViewOCC ); // Create Group action( 801 )->setEnabled( ViewOCC ); // Edit Group @@ -1631,8 +1359,8 @@ void GeometryGUI::onWindowActivated( SUIT_ViewWindow* win ) void GeometryGUI::windows( QMap& mappa ) const { - mappa.insert( SalomeApp_Application::WT_ObjectBrowser, Qt::DockLeft ); - mappa.insert( SalomeApp_Application::WT_PyConsole, Qt::DockBottom ); + mappa.insert( SalomeApp_Application::WT_ObjectBrowser, Qt::LeftDockWidgetArea ); + mappa.insert( SalomeApp_Application::WT_PyConsole, Qt::BottomDockWidgetArea ); } void GeometryGUI::viewManagers( QStringList& lst ) const @@ -1658,8 +1386,10 @@ void GeometryGUI::onViewManagerAdded( SUIT_ViewManager* vm ) // disable OCC selectors getApp()->selectionMgr()->setEnabled( false, OCCViewer_Viewer::Type() ); - for ( GEOMGUI_OCCSelector* sr = myOCCSelectors.first(); sr; sr = myOCCSelectors.next() ) - sr->setEnabled(true); + QListIterator itOCCSel( myOCCSelectors ); + while ( itOCCSel.hasNext() ) + if ( GEOMGUI_OCCSelector* sr = itOCCSel.next() ) + sr->setEnabled(true); } else if ( vm->getType() == SVTK_Viewer::Type() ) { @@ -1668,8 +1398,10 @@ void GeometryGUI::onViewManagerAdded( SUIT_ViewManager* vm ) // disable VTK selectors getApp()->selectionMgr()->setEnabled( false, SVTK_Viewer::Type() ); - for ( LightApp_VTKSelector* sr = myVTKSelectors.first(); sr; sr = myVTKSelectors.next() ) - sr->setEnabled(true); + QListIterator itVTKSel( myVTKSelectors ); + while ( itVTKSel.hasNext() ) + if ( LightApp_VTKSelector* sr = itVTKSel.next() ) + sr->setEnabled(true); } } @@ -1678,21 +1410,25 @@ void GeometryGUI::onViewManagerRemoved( SUIT_ViewManager* vm ) SUIT_ViewModel* viewer = vm->getViewModel(); if ( vm->getType() == OCCViewer_Viewer::Type() ) { - for ( GEOMGUI_OCCSelector* sr = myOCCSelectors.first(); sr; sr = myOCCSelectors.next() ) - if ( sr->viewer() == viewer ) - { - myOCCSelectors.remove( sr ); - break; - } + QListIterator itOCCSel( myOCCSelectors ); + while ( itOCCSel.hasNext() ) + if ( GEOMGUI_OCCSelector* sr = itOCCSel.next() ) + if ( sr->viewer() == viewer ) + { + delete myOCCSelectors.takeAt( myOCCSelectors.indexOf( sr ) ); + break; + } } if ( vm->getType() == SVTK_Viewer::Type() ) { - for ( LightApp_VTKSelector* sr = myVTKSelectors.first(); sr; sr = myVTKSelectors.next() ) - if ( sr->viewer() == viewer ) - { - myVTKSelectors.remove( sr ); - break; - } + QListIterator itVTKSel( myVTKSelectors ); + while ( itVTKSel.hasNext() ) + if ( LightApp_VTKSelector* sr = itVTKSel.next() ) + if ( sr->viewer() == viewer ) + { + delete myVTKSelectors.takeAt( myVTKSelectors.indexOf( sr ) ); + break; + } } } @@ -1700,7 +1436,7 @@ QString GeometryGUI::engineIOR() const { if ( !CORBA::is_nil( GetGeomGen() ) ) return QString( getApp()->orb()->object_to_string( GetGeomGen() ) ); - return QString( "" ); + return ""; } LightApp_Selection* GeometryGUI::createSelection() const @@ -1708,18 +1444,39 @@ LightApp_Selection* GeometryGUI::createSelection() const return new GEOMGUI_Selection(); } -void GeometryGUI::contextMenuPopup( const QString& client, QPopupMenu* menu, QString& title ) +void GeometryGUI::contextMenuPopup( const QString& client, QMenu* menu, QString& title ) { - SalomeApp_Module::contextMenuPopup( client, menu, title ); + SalomeApp_Module::contextMenuPopup(client, menu, title); + SALOME_ListIO lst; - getApp()->selectionMgr()->selectedObjects( lst ); - if ( ( client == "OCCViewer" || client == "VTKViewer" ) && lst.Extent() == 1 ) { - Handle(SALOME_InteractiveObject) io = lst.First(); - SalomeApp_Study* appStudy = dynamic_cast( application()->activeStudy() ); - _PTR(Study) study = appStudy->studyDS(); - _PTR(SObject) obj = study->FindObjectID( io->getEntry() ); - if ( obj ) - title = QString( obj->GetName().c_str() ); + getApp()->selectionMgr()->selectedObjects(lst); + if (lst.Extent() < 1) + return; + + SalomeApp_Study* appStudy = dynamic_cast(application()->activeStudy()); + _PTR(Study) study = appStudy->studyDS(); + + bool isImported = true; + SALOME_ListIteratorOfListIO anIt (lst); + for (; anIt.More() && isImported; anIt.Next()) { + Handle(SALOME_InteractiveObject) io = anIt.Value(); + _PTR(SObject) aSObj = study->FindObjectID(io->getEntry()); + if (aSObj) { + if (lst.Extent() == 1) { + // Set context menu title + if (client == "OCCViewer" || client == "VTKViewer") + title = QString(aSObj->GetName().c_str()); + } + + CORBA::Object_var anObj = GeometryGUI::ClientSObjectToObject(aSObj); + GEOM::GEOM_Object_var aGeomObj = GEOM::GEOM_Object::_narrow(anObj); + if (CORBA::is_nil(aGeomObj) || aGeomObj->GetType() != GEOM_IMPORT) + isImported = false; + } + } + + if (isImported) { + menu->addAction(action(5029)); // Reload imported shape } } @@ -1728,10 +1485,11 @@ void GeometryGUI::createPreferences() int tabId = addPreference( tr( "PREF_TAB_SETTINGS" ) ); int genGroup = addPreference( tr( "PREF_GROUP_GENERAL" ), tabId ); - setPreferenceProperty( genGroup, "columns", 1 ); + setPreferenceProperty( genGroup, "columns", 2 ); int dispmode = addPreference( tr( "PREF_DISPLAY_MODE" ), genGroup, - LightApp_Preferences::Selector, "Geometry", "display_mode" ); + LightApp_Preferences::Selector, + "Geometry", "display_mode" ); addPreference( tr( "PREF_SHADING_COLOR" ), genGroup, LightApp_Preferences::Color, "Geometry", "shading_color" ); @@ -1755,6 +1513,7 @@ void GeometryGUI::createPreferences() LightApp_Preferences::IntSpin, "Geometry", "SettingsGeomStep" ); int VertexGroup = addPreference( tr( "PREF_GROUP_VERTEX" ), tabId ); + setPreferenceProperty( VertexGroup, "columns", 2 ); int typeOfMarker = addPreference( tr( "PREF_TYPE_OF_MARKER" ), VertexGroup, LightApp_Preferences::Selector, "Geometry", "type_of_marker" ); @@ -1767,7 +1526,7 @@ void GeometryGUI::createPreferences() aModesList.append( tr("MEN_WIREFRAME") ); aModesList.append( tr("MEN_SHADING") ); - QValueList anIndexesList; + QList anIndexesList; anIndexesList.append(0); anIndexesList.append(1); @@ -1775,13 +1534,13 @@ void GeometryGUI::createPreferences() setPreferenceProperty( dispmode, "indexes", anIndexesList ); // Set property for step value for spinboxes - setPreferenceProperty( step, "min", 0.001 ); + setPreferenceProperty( step, "min", 1 ); setPreferenceProperty( step, "max", 10000 ); setPreferenceProperty( step, "precision", 3 ); // Set property for type of vertex marker QStringList aTypeOfMarkerList; - QValueList anTypeOfMarkerIndexesList; + QList anTypeOfMarkerIndexesList; aTypeOfMarkerList.append( tr("TOM_PLUS") ); anTypeOfMarkerIndexesList.append(Aspect_TOM_PLUS); @@ -1848,3 +1607,440 @@ int GeometryGUI::getLocalSelectionMode() const { return myLocalSelectionMode; } + +const char gSeparator = '_'; // character used to separate parameter names +const char gDigitsSep = ':'; // character used to separate numeric parameter values (color = r:g:b) + +/*! + * \brief Store visual parameters + * + * This method is called just before the study document is saved. + * Store visual parameters in AttributeParameter attribue(s) + */ +void GeometryGUI::storeVisualParameters (int savePoint) +{ + SalomeApp_Study* appStudy = dynamic_cast(application()->activeStudy()); + if (!appStudy || !appStudy->studyDS()) + return; + _PTR(Study) studyDS = appStudy->studyDS(); + + // componentName is used for encoding of entries when storing them in IParameters + std::string componentName = myComponentGeom->ComponentDataType(); + //_PTR(SComponent) aSComponent = studyDS->FindComponent("GEOM"); + //if (!aSComponent) return; + + // IParameters + _PTR(AttributeParameter) ap = studyDS->GetModuleParameters("Interface Applicative", + componentName.c_str(), + savePoint); + _PTR(IParameters) ip = ClientFactory::getIParameters(ap); + + // viewers counters are used for storing view_numbers in IParameters + int vtkViewers(0), occViewers(0); + + QList lst; + QList::Iterator it; + + // main cycle to store parameters of displayed objects + lst.clear(); + vtkViewers = occViewers = 0; + getApp()->viewManagers(lst); + for (it = lst.begin(); it != lst.end(); it++) + { + SUIT_ViewManager* vman = *it; + QString vType = vman->getType(); + + // saving VTK actors properties + if (vType == SVTK_Viewer::Type()) + { + QVector views = vman->getViews(); + for (int i = 0, iEnd = vman->getViewsCount(); i < iEnd; i++) + { + if (SVTK_ViewWindow* vtkView = dynamic_cast(views[i])) + { + vtkActorCollection* allActors = vtkView->getRenderer()->GetActors(); + allActors->InitTraversal(); + while (vtkActor* actor = allActors->GetNextActor()) + { + if (actor->GetVisibility()) // store only visible actors + { + GEOM_Actor* aGeomActor = 0; + if (actor->IsA("GEOM_Actor")) + aGeomActor = GEOM_Actor::SafeDownCast(actor); + if (aGeomActor && aGeomActor->hasIO()) + { + Handle(SALOME_InteractiveObject) io = aGeomActor->getIO(); + if (io->hasEntry()) + { + // entry is "encoded" = it does NOT contain component adress, since it is a + // subject to change on next component loading + std::string entry = ip->encodeEntry(io->getEntry(), componentName); + + std::string param, occParam = vType.toLatin1().data(); + occParam += gSeparator; + occParam += QString::number(vtkViewers).toLatin1().data(); + occParam += gSeparator; + + param = occParam + "Visibility"; + ip->setParameter(entry, param, "On"); + + param = occParam + "DisplayMode"; + ip->setParameter(entry, param, QString::number + (aGeomActor->getDisplayMode()).toLatin1().data()); + + vtkFloatingPointType r, g, b; + aGeomActor->GetColor(r, g, b); + QString colorStr = QString::number(r); + colorStr += gDigitsSep; colorStr += QString::number(g); + colorStr += gDigitsSep; colorStr += QString::number(b); + param = occParam + "Color"; + ip->setParameter(entry, param, colorStr.toLatin1().data()); + + param = occParam + "Opacity"; + ip->setParameter(entry, param, QString::number(aGeomActor->GetOpacity()).toLatin1().data()); + + int nbUIso(0), nbVIso(0); + aGeomActor->GetNbIsos(nbUIso,nbVIso); + QString isosStr = QString::number(nbUIso); + isosStr += gDigitsSep; + isosStr += QString::number(nbVIso); + param = occParam + "Isos"; + ip->setParameter(entry, param, isosStr.toLatin1().data()); + } // if (io->hasEntry()) + } // GEOM_Actor && hasIO + } // isVisible + } // while.. actors traversal + } // if (vtkView) + } // for (views) + vtkViewers++; + } // if (SVTK view model) + else if (vType == SOCC_Viewer::Type()) // processing OCC viewers + { + QVector views = vman->getViews(); + for (int i = 0, iEnd = vman->getViewsCount(); i < iEnd; i++) + { + SOCC_ViewWindow* occView = dynamic_cast(views[i]); + if (occView) + { + //Handle(AIS_InteractiveContext) ic = + // ((OCCViewer_Viewer*)(occView->getViewManager()->getViewModel()))->getAISContext(); + OCCViewer_Viewer* viewModel = (OCCViewer_Viewer*)(vman->getViewModel()); + //OCCViewer_Viewer* viewModel = ((OCCViewer_ViewManager*)vman)->getOCCViewer(); + Handle(AIS_InteractiveContext) ic = viewModel->getAISContext(); + + AIS_ListOfInteractive aList; + ic->DisplayedObjects(aList); + + AIS_ListIteratorOfListOfInteractive ite (aList); + for (; ite.More(); ite.Next()) + { + if (ite.Value()->IsInstance(STANDARD_TYPE(GEOM_AISShape))) + { + Handle(GEOM_AISShape) aSh = Handle(GEOM_AISShape)::DownCast(ite.Value()); + if (aSh->hasIO()) + { + Handle(SALOME_InteractiveObject) io = + Handle(SALOME_InteractiveObject)::DownCast(aSh->getIO()); + if (io->hasEntry()) + { + // entry is "encoded": it does NOT contain component adress, + // since it is a subject to change on next component loading + std::string entry = ip->encodeEntry(io->getEntry(), componentName); + + std::string param, occParam = vType.toLatin1().data(); + occParam += gSeparator; + occParam += QString::number(occViewers).toLatin1().data(); + occParam += gSeparator; + + // Visibility + param = occParam + "Visibility"; + ip->setParameter(entry, param, "On"); + + // DisplayMode + param = occParam + "DisplayMode"; + int dm = aSh->DisplayMode(); + ip->setParameter(entry, param, QString::number(dm).toLatin1().data()); + + // Color + // is a property of GEOM_Object, it is stored by GEOM engine + + // Transparency + param = occParam + "Transparency"; + ip->setParameter(entry, param, QString::number(aSh->Transparency()).toLatin1().data()); + + // Isos + Handle(AIS_Drawer) aDrawer = aSh->Attributes(); + int nbUIso = aDrawer->UIsoAspect()->Number(); + int nbVIso = aDrawer->VIsoAspect()->Number(); + QString isosStr = QString::number(nbUIso); + isosStr += gDigitsSep; + isosStr += QString::number(nbVIso); + param = occParam + "Isos"; + ip->setParameter(entry, param, isosStr.toLatin1().data()); + } // if (io->hasEntry()) + } // if (io) + } // if (GEOM_AISShape) + } // for (AIS_ListOfInteractive) + } // if ( occView ) + } // for ( views ) + occViewers++; + } // if (SOCC view model) + else + { + // unknown viewer type + } + } // for (viewManagers) +} + +/*! + * \brief Restore visual parameters + * + * This method is called after the study document is opened. + * Restore visual parameters from AttributeParameter attribue(s) + */ +void GeometryGUI::restoreVisualParameters (int savePoint) +{ + SalomeApp_Study* appStudy = dynamic_cast(application()->activeStudy()); + if (!appStudy || !appStudy->studyDS()) + return; + _PTR(Study) studyDS = appStudy->studyDS(); + + // componentName is used for encoding of entries when storing them in IParameters + std::string componentName = myComponentGeom->ComponentDataType(); + //_PTR(SComponent) aSComponent = studyDS->FindComponent("GEOM"); + //if (!aSComponent) return; + + // IParameters + _PTR(AttributeParameter) ap = studyDS->GetModuleParameters("Interface Applicative", + componentName.c_str(), + savePoint); + _PTR(IParameters) ip = ClientFactory::getIParameters(ap); + + std::vector entries = ip->getEntries(); + + for (std::vector::iterator entIt = entries.begin(); entIt != entries.end(); ++entIt) + { + // entry is a normal entry - it should be "decoded" (setting base adress of component) + QString entry (ip->decodeEntry(*entIt).c_str()); + + // Check that the entry corresponds to a real object in the Study + // as the object may be deleted or modified after the visual state is saved. + _PTR(SObject) so = studyDS->FindObjectID(entry.toLatin1().data()); + if (!so) continue; //Skip the not existent entry + + std::vector paramNames = ip->getAllParameterNames( *entIt ); + std::vector paramValues = ip->getAllParameterValues( *entIt ); + + std::vector::iterator namesIt = paramNames.begin(); + std::vector::iterator valuesIt = paramValues.begin(); + + // actors are stored in a map after displaying of them for + // quicker access in the future: map < viewID to actor > + NCollection_DataMap vtkActors; + NCollection_DataMap occActors; + + for (; namesIt != paramNames.end(); ++namesIt, ++valuesIt) + { + // visual parameters are stored in strings as follows: ViewerType_ViewIndex_ParamName. + // '_' is used as separator and should not be used in viewer type or parameter names. + QStringList lst = QString((*namesIt).c_str()).split(gSeparator, QString::SkipEmptyParts); + if (lst.size() != 3) + continue; + + QString viewerTypStr = lst[0]; + QString viewIndexStr = lst[1]; + QString paramNameStr = lst[2]; + + bool ok; + int viewIndex = viewIndexStr.toUInt(&ok); + if (!ok) // bad conversion of view index to integer + continue; + + // viewers + if (viewerTypStr == SVTK_Viewer::Type()) + { + GEOM_Actor* vActor = 0; + if (vtkActors.IsBound(viewIndex)) + vActor = vtkActors.Find(viewIndex); + + if (paramNameStr == "Visibility") + { + if (!vActor && displayer()) + { + QList lst; + getApp()->viewManagers(viewerTypStr, lst); + + // SVTK ViewManager always has 1 ViewWindow, so view index is index of view manager + if (viewIndex >= 0 && viewIndex < lst.count()) { + SUIT_ViewManager* vman = lst.at(viewIndex); + SUIT_ViewModel* vmodel = vman->getViewModel(); + // SVTK view model can be casted to SALOME_View + displayer()->Display(entry, true, dynamic_cast(vmodel)); + + // store displayed actor in a temporary map for quicker + // access later when restoring other parameters + SVTK_ViewWindow* vtkView = (SVTK_ViewWindow*) vman->getActiveView(); + vtkRenderer* Renderer = vtkView->getRenderer(); + vtkActorCollection* theActors = Renderer->GetActors(); + theActors->InitTraversal(); + bool isFound = false; + vtkActor *ac = theActors->GetNextActor(); + for (; ac != NULL && !isFound; ac = theActors->GetNextActor()) { + if (ac->IsA("GEOM_Actor")) { + GEOM_Actor* aGeomAc = GEOM_Actor::SafeDownCast(ac); + if (aGeomAc->hasIO()) { + Handle(SALOME_InteractiveObject) io = + Handle(SALOME_InteractiveObject)::DownCast(aGeomAc->getIO()); + if (io->hasEntry() && strcmp(io->getEntry(), entry.toLatin1().data()) == 0) { + isFound = true; + vtkActors.Bind(viewIndex, aGeomAc); + } + } + } + } + } + } + } // if (paramNameStr == "Visibility") + else + { + // the rest properties "work" with GEOM_Actor + if (vActor) + { + QString val ((*valuesIt).c_str()); + + if (paramNameStr == "DisplayMode") { + vActor->setDisplayMode(val.toInt()); + } + else if (paramNameStr == "Color") { + QStringList colors = val.split(gDigitsSep, QString::SkipEmptyParts); + if (colors.count() == 3) + vActor->SetColor(colors[0].toFloat(), colors[1].toFloat(), colors[2].toFloat()); + } + else if (paramNameStr == "Opacity") { + vActor->SetOpacity(val.toFloat()); + } + else if (paramNameStr == "Isos") { + QStringList isos = val.split(gDigitsSep, QString::SkipEmptyParts); + if (isos.count() == 2) { + int aIsos[2] = {isos[0].toInt(), isos[1].toInt()}; + vActor->SetNbIsos(aIsos); + } + } + } + } // other parameters than Visibility + } + else if (viewerTypStr == SOCC_Viewer::Type()) + { + //Handle(AIS_InteractiveObject) occActor; + Handle(GEOM_AISShape) occActor; + if (occActors.IsBound(viewIndex)) + occActor = occActors.Find(viewIndex); + + // ViewModel and InteractiveContext + SOCC_Viewer* occVModel = 0; + Handle(AIS_InteractiveContext) ic; + + QList lst; + getApp()->viewManagers(viewerTypStr, lst); + + // SOCC ViewManager always has 1 ViewWindow, so view index is index of view manager + if (viewIndex >= 0 && viewIndex < lst.count()) { + SUIT_ViewManager* vman = lst.at(viewIndex); + SUIT_ViewModel* vmodel = vman->getViewModel(); + occVModel = dynamic_cast(vmodel); + if (occVModel) + ic = occVModel->getAISContext(); + } + + if (ic.IsNull()) + continue; + + if (paramNameStr == "Visibility") + { + if (occActor.IsNull() && displayer()) + { + displayer()->Display(entry, true, occVModel); + + // store displayed actor in a temporary map for quicker + // access later when restoring other parameters + AIS_ListOfInteractive aList; + ic->DisplayedObjects(aList); + bool isFound = false; + AIS_ListIteratorOfListOfInteractive ite (aList); + for (; ite.More() && !isFound; ite.Next()) { + if (ite.Value()->IsInstance(STANDARD_TYPE(GEOM_AISShape))) { + Handle(GEOM_AISShape) aSh = Handle(GEOM_AISShape)::DownCast(ite.Value()); + if (aSh->hasIO()) { + Handle(SALOME_InteractiveObject) io = + Handle(SALOME_InteractiveObject)::DownCast(aSh->getIO()); + if (io->hasEntry() && strcmp(io->getEntry(), entry.toLatin1().data()) == 0) { + isFound = true; + occActors.Bind(viewIndex, aSh); + } + } + } + } + } + } // if (paramNameStr == "Visibility") + else + { + // the rest properties "work" with GEOM_AISShape + if (!occActor.IsNull()) + { + QString val ((*valuesIt).c_str()); + + if (paramNameStr == "DisplayMode") { + ic->SetDisplayMode(occActor, AIS_DisplayMode(val.toInt()), false); + //ic->Redisplay(occActor, Standard_False, Standard_True); + } + // Color is restored by the GEOM engine + else if (paramNameStr == "Transparency") { + ic->SetTransparency(occActor, val.toFloat(), false); + ic->Redisplay(occActor, Standard_False, Standard_True); + } + else if (paramNameStr == "Isos") { + QStringList isos = val.split(gDigitsSep, QString::SkipEmptyParts); + if (isos.count() == 2) { + Handle(AIS_Drawer) aDrawer = occActor->Attributes(); + int nbUIso = isos[0].toInt(); + int nbVIso = isos[1].toInt(); + Handle(Prs3d_IsoAspect) uIsoAspect = aDrawer->UIsoAspect(); + Handle(Prs3d_IsoAspect) vIsoAspect = aDrawer->VIsoAspect(); + uIsoAspect->SetNumber(nbUIso); + vIsoAspect->SetNumber(nbVIso); + aDrawer->SetUIsoAspect(uIsoAspect); + aDrawer->SetVIsoAspect(vIsoAspect); + ic->SetLocalAttributes(occActor, aDrawer); + ic->Redisplay(occActor); + } + } + } + } // other parameters than Visibility + } + else + { + // unknown viewer type + } + } // for names/parameters iterator + } // for entries iterator + + // update all VTK and OCC views + QList lst; + getApp()->viewManagers(lst); + for (QList::Iterator it = lst.begin(); it != lst.end(); it++) { + SUIT_ViewModel* vmodel = (*it)->getViewModel(); + if (!vmodel) + continue; + if (vmodel->getType() == SVTK_Viewer::Type()) { + SVTK_ViewWindow* vtkView = (SVTK_ViewWindow*) (*it)->getActiveView(); + vtkView->getRenderer()->ResetCameraClippingRange(); + vtkView->Repaint(); + } + else if (vmodel->getType() == SOCC_Viewer::Type()) { + //SOCC_ViewWindow* occView = (SOCC_ViewWindow*) (*it)->getActiveView(); + SALOME_View* occVMod = dynamic_cast(vmodel); + if (occVMod) + occVMod->Repaint(); + } + } +} diff --git a/src/GEOMGUI/GeometryGUI.h b/src/GEOMGUI/GeometryGUI.h index 484e3883f..36d06fd55 100644 --- a/src/GEOMGUI/GeometryGUI.h +++ b/src/GEOMGUI/GeometryGUI.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,30 +17,27 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GeometryGUI.h +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) // -// -// File : GeometryGUI.h -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #ifndef GEOMETRYGUI_H #define GEOMETRYGUI_H #include "GEOM_GEOMGUI.hxx" -#include "SalomeApp_Module.h" +#include + +#include +#include +#include #include "GEOMGUI.h" -#include "GEOM_Client.hxx" -#include "SALOME_InteractiveObject.hxx" - -#include "SALOMEDSClient.hxx" // QT Includes -#include +#include // OCCT Includes #include @@ -52,7 +49,7 @@ typedef QMap GUIMap; class QDialog; -class QPopupMenu; +class QMenu; class GEOMGUI_OCCSelector; class LightApp_VTKSelector; class LightApp_Selection; @@ -84,6 +81,8 @@ public: static CORBA::Object_var ClientSObjectToObject (_PTR(SObject) theSObject); static SALOMEDS::Study_var ClientStudyToStudy (_PTR(Study) theStudy); + static char* JoinObjectParameters(const QStringList& theParametersList); + GEOM_Client& GetShapeReader() { return myShapeReader; } Standard_CString& GetFatherior() { return myFatherior; } //void SetState( const int state ) { myState = state; } @@ -106,7 +105,7 @@ public: virtual void BuildPresentation( const Handle(SALOME_InteractiveObject)&, SUIT_ViewWindow* = 0 ); // virtual void DefinePopup( QString & theContext, QString & theParent, QString & theObject); -// virtual bool CustomPopup( QAD_Desktop* parent, QPopupMenu* popup, const QString& theContext, +// virtual bool CustomPopup( QAD_Desktop* parent, QMenu* popup, const QString& theContext, // const QString& theParent, const QString& theObject ); // The Working Plane management @@ -117,12 +116,15 @@ public: virtual void windows( QMap& ) const; virtual void viewManagers( QStringList& ) const; - virtual void contextMenuPopup( const QString&, QPopupMenu*, QString& ); + virtual void contextMenuPopup( const QString&, QMenu*, QString& ); virtual void createPreferences(); virtual void preferencesChanged( const QString&, const QString& ); int getLocalSelectionMode() const; void setLocalSelectionMode(const int mode); + virtual void storeVisualParameters (int savePoint); + virtual void restoreVisualParameters(int savePoint); + public slots: virtual bool deactivateModule( SUIT_Study* ); virtual bool activateModule( SUIT_Study* ); @@ -167,8 +169,8 @@ private: gp_Ax3 myWorkingPlane; QMap myRules; // popup rules - QPtrList myOCCSelectors; - QPtrList myVTKSelectors; + QList myOCCSelectors; + QList myVTKSelectors; LightApp_Displayer* myDisplayer; int myLocalSelectionMode; //Select Only diff --git a/src/GEOMGUI/GeometryGUI_Swig.cxx b/src/GEOMGUI/GeometryGUI_Swig.cxx index 57df497a6..e1e8f1390 100644 --- a/src/GEOMGUI/GeometryGUI_Swig.cxx +++ b/src/GEOMGUI/GeometryGUI_Swig.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,24 +17,20 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GeometryGUI_Swig.cxx +// Author : Nicolas REJNERI, Paul RASCLE // -// -// File : GeometryGUI_Swig.cxx -// Author : Nicolas REJNERI, Paul RASCLE -// Module : GEOM -// $Header$ - #include "GeometryGUI_Swig.hxx" -#include "SALOMEGUI_Swig.hxx" #include "GeometryGUI.h" +#include "SUIT_Desktop.h" #include "SUIT_Session.h" #include "SalomeApp_Application.h" #include "SalomeApp_Study.h" -#include "SalomeApp_ImportOperation.h" #include "OB_Browser.h" @@ -50,15 +46,10 @@ #include "GEOM_Actor.h" #include "GEOM_Client.hxx" #include "GEOM_AISShape.hxx" -#include "GEOM_AssemblyBuilder.h" #include "GEOM_InteractiveObject.hxx" #include "GEOM_Displayer.h" -#include "SALOME_Event.hxx" - -#include "utilities.h" - -#include "SALOMEDSClient.hxx" +#include "SALOME_Event.h" // OCCT Includes #include diff --git a/src/GEOMGUI/GeometryGUI_Swig.hxx b/src/GEOMGUI/GeometryGUI_Swig.hxx index 86fa64594..a0f079ac3 100644 --- a/src/GEOMGUI/GeometryGUI_Swig.hxx +++ b/src/GEOMGUI/GeometryGUI_Swig.hxx @@ -1,33 +1,30 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : GeometryGUI_Swig.hxx -// Author : Nicolas REJNERI, Paul RASCLE -// Module : GEOM -// $Header$ - -#ifndef _GeometryGUI_SWIG_HXX_ -#define _GeometryGUI_SWIG_HXX_ +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GeometryGUI_Swig.hxx +// Author : Nicolas REJNERI, Paul RASCLE +// +#ifndef GEOMETRYGUI_SWIG_HXX +#define GEOMETRYGUI_SWIG_HXX #include "GEOM_GEOMGUI.hxx" @@ -37,8 +34,6 @@ #include CORBA_SERVER_HEADER(SALOMEDS) #include CORBA_SERVER_HEADER(SALOMEDS_Attributes) -class GEOM_Client; - class GEOMGUI_EXPORT GEOM_Swig { public: @@ -61,5 +56,4 @@ public: bool initGeomGen(); }; - -#endif +#endif // GEOMETRYGUI_SWIG_HXX diff --git a/src/GEOMGUI/GeometryGUI_Swig.i b/src/GEOMGUI/GeometryGUI_Swig.i index d562c0ffc..4fa8d7ea2 100644 --- a/src/GEOMGUI/GeometryGUI_Swig.i +++ b/src/GEOMGUI/GeometryGUI_Swig.i @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,13 +19,10 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GeometryGUI_Swig.i +// Author : Nicolas REJNERI, Paul RASCLE // -// -// File : GeometryGUI_Swig.i -// Author : Nicolas REJNERI, Paul RASCLE -// Module : GEOM -// $Header$ - %{ #include "GeometryGUI_Swig.hxx" %} diff --git a/src/GEOMGUI/Makefile.am b/src/GEOMGUI/Makefile.am index 798553d30..9dc50a430 100644 --- a/src/GEOMGUI/Makefile.am +++ b/src/GEOMGUI/Makefile.am @@ -1,102 +1,89 @@ -# GEOM GEOMGUI : GUI for Geometry component +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM GEOMGUI : GUI for Geometry component +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : GEOMGUI # -# File : Makefile.in -# Author : Marc Tajchman (CEA) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header$ - include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libGEOM.la # header files -salomeinclude_HEADERS = \ - GeometryGUI.h \ - GEOMGUI.h \ - GEOM_Displayer.h \ - GEOMGUI_OCCSelector.h \ - GEOMGUI_Selection.h \ - GeometryGUI_Swig.hxx \ - GeometryGUI_Swig.i \ +salomeinclude_HEADERS = \ + GeometryGUI.h \ + GEOMGUI.h \ + GEOM_Displayer.h \ + GEOMGUI_OCCSelector.h \ + GEOMGUI_Selection.h \ + GeometryGUI_Swig.hxx \ + GeometryGUI_Swig.i \ GEOM_GEOMGUI.hxx -dist_libGEOM_la_SOURCES = \ - GeometryGUI.cxx \ - GEOMGUI.cxx \ - GEOM_Displayer.cxx \ - GEOMGUI_OCCSelector.cxx \ - GEOMGUI_Selection.cxx \ +dist_libGEOM_la_SOURCES = \ + GeometryGUI.cxx \ + GEOMGUI.cxx \ + GEOM_Displayer.cxx \ + GEOMGUI_OCCSelector.cxx \ + GEOMGUI_Selection.cxx \ GeometryGUI_Swig.cxx -MOC_FILES = \ +MOC_FILES = \ GeometryGUI_moc.cxx - -nodist_libGEOM_la_SOURCES= \ +nodist_libGEOM_la_SOURCES = \ $(MOC_FILES) # resources files -nodist_salomeres_DATA= \ - GEOM_images.qm \ - GEOM_msg_en.qm \ +nodist_salomeres_DATA = \ + GEOM_images.qm \ + GEOM_msg_en.qm \ GEOM_msg_fr.qm -#LIB_CLIENT_IDL = SALOME_Exception.idl \ -# SALOMEDS.idl \ -# SALOMEDS_Attributes.idl \ -# SALOME_GenericObj.idl \ -# SALOME_Component.idl \ -# GEOM_Gen.idl +# additional information to compile and link file -#LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libGEOM_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMFiltersSelection \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(top_builddir)/idl \ +libGEOM_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMFiltersSelection \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libGEOM_la_LDFLAGS = \ - ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ - ../GEOMClient/libGEOMClient.la \ - ../OBJECT/libGEOMObject.la \ - $(KERNEL_LDFLAGS) -lSalomeLifeCycleCORBA \ +libGEOM_la_LDFLAGS = \ + ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ + ../GEOMClient/libGEOMClient.la \ + ../OBJECT/libGEOMObject.la \ + $(KERNEL_LDFLAGS) -lSalomeLifeCycleCORBA \ $(GUI_LDFLAGS) -lOCCViewer -lVTKViewer -lCAM -lSOCC -lSVTK -lEvent # -lSalomeApp # -lToolsGUI diff --git a/src/GEOMImpl/GEOMImpl.pro b/src/GEOMImpl/GEOMImpl.pro new file mode 100644 index 000000000..87d10eaee --- /dev/null +++ b/src/GEOMImpl/GEOMImpl.pro @@ -0,0 +1,127 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GEOMimpl +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} $${BOOST_CPPFLAGS} ../ShHealOper ../NMTAlgo ../NMTTools ../GEOM ../GEOMAlgo ../SKETCHER ../ARCHIMEDE ../../salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lGEOMbasic -lNMTAlgo -lGEOMAlgo -lShHealOper -lGEOMArchimede -lGEOMSketcher $${KERNEL_LDFLAGS} -lSALOMELocalTrace $${STDLIB} $${CAS_LDPATH} -lTKCAF -lTKFillet -lTKOffset + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += GEOMIMPL_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +HEADERS = GEOMImpl_Gen.hxx +HEADERS += GEOMImpl_IBasicOperations.hxx +HEADERS += GEOMImpl_ITransformOperations.hxx +HEADERS += GEOMImpl_IHealingOperations.hxx +HEADERS += GEOMImpl_I3DPrimOperations.hxx +HEADERS += GEOMImpl_IShapesOperations.hxx +HEADERS += GEOMImpl_IBlocksOperations.hxx +HEADERS += GEOMImpl_IBooleanOperations.hxx +HEADERS += GEOMImpl_ICurvesOperations.hxx +HEADERS += GEOMImpl_ILocalOperations.hxx +HEADERS += GEOMImpl_IInsertOperations.hxx +HEADERS += GEOMImpl_IMeasureOperations.hxx +HEADERS += GEOMImpl_IGroupOperations.hxx +HEADERS += GEOMImpl_CopyDriver.hxx +HEADERS += GEOMImpl_Types.hxx +HEADERS += GEOM_GEOMImpl.hxx + +SOURCES = GEOMImpl_IBasicOperations.cxx +SOURCES += GEOMImpl_ITransformOperations.cxx +SOURCES += GEOMImpl_IHealingOperations.cxx +SOURCES += GEOMImpl_I3DPrimOperations.cxx +SOURCES += GEOMImpl_IShapesOperations.cxx +SOURCES += GEOMImpl_IBlocksOperations.cxx +SOURCES += GEOMImpl_IBooleanOperations.cxx +SOURCES += GEOMImpl_ICurvesOperations.cxx +SOURCES += GEOMImpl_ILocalOperations.cxx +SOURCES += GEOMImpl_IInsertOperations.cxx +SOURCES += GEOMImpl_IMeasureOperations.cxx +SOURCES += GEOMImpl_IGroupOperations.cxx +SOURCES += GEOMImpl_Gen.cxx +SOURCES += GEOMImpl_PointDriver.cxx +SOURCES += GEOMImpl_VectorDriver.cxx +SOURCES += GEOMImpl_LineDriver.cxx +SOURCES += GEOMImpl_PlaneDriver.cxx +SOURCES += GEOMImpl_MarkerDriver.cxx +SOURCES += GEOMImpl_TranslateDriver.cxx +SOURCES += GEOMImpl_MirrorDriver.cxx +SOURCES += GEOMImpl_OffsetDriver.cxx +SOURCES += GEOMImpl_ScaleDriver.cxx +SOURCES += GEOMImpl_PositionDriver.cxx +SOURCES += GEOMImpl_BoxDriver.cxx +SOURCES += GEOMImpl_ConeDriver.cxx +SOURCES += GEOMImpl_CylinderDriver.cxx +SOURCES += GEOMImpl_SphereDriver.cxx +SOURCES += GEOMImpl_TorusDriver.cxx +SOURCES += GEOMImpl_PrismDriver.cxx +SOURCES += GEOMImpl_PipeDriver.cxx +SOURCES += GEOMImpl_ThruSectionsDriver.cxx +SOURCES += GEOMImpl_RevolutionDriver.cxx +SOURCES += GEOMImpl_ShapeDriver.cxx +SOURCES += GEOMImpl_BlockDriver.cxx +SOURCES += GEOMImpl_Block6Explorer.cxx +SOURCES += GEOMImpl_MeasureDriver.cxx +SOURCES += GEOMImpl_PolylineDriver.cxx +SOURCES += GEOMImpl_CircleDriver.cxx +SOURCES += GEOMImpl_EllipseDriver.cxx +SOURCES += GEOMImpl_ArcDriver.cxx +SOURCES += GEOMImpl_SplineDriver.cxx +SOURCES += GEOMImpl_SketcherDriver.cxx +SOURCES += GEOMImpl_FilletDriver.cxx +SOURCES += GEOMImpl_Fillet2dDriver.cxx +SOURCES += GEOMImpl_ChamferDriver.cxx +SOURCES += GEOMImpl_BooleanDriver.cxx +SOURCES += GEOMImpl_PartitionDriver.cxx +SOURCES += GEOMImpl_CopyDriver.cxx +SOURCES += GEOMImpl_ExportDriver.cxx +SOURCES += GEOMImpl_ImportDriver.cxx +SOURCES += GEOMImpl_RotateDriver.cxx +SOURCES += GEOMImpl_ArchimedeDriver.cxx +SOURCES += GEOMImpl_HealingDriver.cxx +SOURCES += GEOMImpl_FillingDriver.cxx +SOURCES += GEOMImpl_GlueDriver.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/GEOMImpl/GEOMImpl_Template.cxx b/src/GEOMImpl/GEOMImpl_3DSketcherDriver.cxx old mode 100644 new mode 100755 similarity index 54% rename from src/GEOMImpl/GEOMImpl_Template.cxx rename to src/GEOMImpl/GEOMImpl_3DSketcherDriver.cxx index ccfb70528..ccf53fdfb --- a/src/GEOMImpl/GEOMImpl_Template.cxx +++ b/src/GEOMImpl/GEOMImpl_3DSketcherDriver.cxx @@ -20,65 +20,106 @@ #include -#include +#include +#include +#include #include + +#include + +// OCCT Includes +#include +#include +#include #include +#include +#include + +#include //======================================================================= //function : GetID //purpose : -//======================================================================= -const Standard_GUID& GEOMImpl_Template::GetID() +//======================================================================= +const Standard_GUID& GEOMImpl_3DSketcherDriver::GetID() { - static Standard_GUID aTemplate("Insert the correct GUID here"); - return aTemplate; + static Standard_GUID a3DSketcherDriver("FF2BBB54-5D24-4df3-210B-3A678263EA26"); + return a3DSketcherDriver; } //======================================================================= -//function : GEOMImpl_Template -//purpose : +//function : GEOMImpl_3DSketcherDriver +//purpose : //======================================================================= - -GEOMImpl_Template::GEOMImpl_Template() +GEOMImpl_3DSketcherDriver::GEOMImpl_3DSketcherDriver() { } //======================================================================= //function : Execute //purpose : -//======================================================================= -Standard_Integer GEOMImpl_Template::Execute(TFunction_Logbook& log) const +//======================================================================= +Standard_Integer GEOMImpl_3DSketcherDriver::Execute(TFunction_Logbook& log) const { if (Label().IsNull()) return 0; - Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction(Label()); - if(aFunction.IsNull()) return 0; - - //Add implemetation here + Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction(Label()); + GEOMImpl_I3DSketcher aCI (aFunction); + + TopoDS_Shape aShape; + + Handle(TColStd_HArray1OfReal) aCoordsArray = aCI.GetCoordinates(); + + BRepBuilderAPI_MakePolygon aMakePoly; + int anArrayLength = aCoordsArray->Length(); + double x, y, z; + gp_Pnt aPnt; + for (int i = 0; i <=(anArrayLength - 3); i+=3) { + x = aCoordsArray->Value(i+1); + y = aCoordsArray->Value(i+2); + z = aCoordsArray->Value(i+3); + aPnt = gp_Pnt(x, y, z); + aMakePoly.Add(aPnt); + } + if ( anArrayLength == 3) { // Only Start Point + BRepBuilderAPI_MakeVertex mkVertex (aPnt); + aShape = mkVertex.Shape(); + } + else { // Make Wire + if (aCoordsArray->Value(1) == x && aCoordsArray->Value(2) == y && aCoordsArray->Value(3) == z) + aMakePoly.Close(); + + if (aMakePoly.IsDone()) + aShape = aMakePoly.Wire(); + } + + if (aShape.IsNull()) return 0; + + aFunction->SetValue(aShape); log.SetTouched(Label()); - return 1; + return 1; } //======================================================================= -//function : GEOMImpl_Template_Type_ +//function : GEOMImpl_3DSketcherDriver_Type_ //purpose : -//======================================================================= -Standard_EXPORT Handle_Standard_Type& GEOMImpl_Template_Type_() +//======================================================================= +Standard_EXPORT Handle_Standard_Type& GEOMImpl_3DSketcherDriver_Type_() { static Handle_Standard_Type aType1 = STANDARD_TYPE(TFunction_Driver); if ( aType1.IsNull()) aType1 = STANDARD_TYPE(TFunction_Driver); static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared); - if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared); + if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared); static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient); if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient); - + static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL}; - static Handle_Standard_Type _aType = new Standard_Type("GEOMImpl_Template", - sizeof(GEOMImpl_Template), + static Handle_Standard_Type _aType = new Standard_Type("GEOMImpl_3DSketcherDriver", + sizeof(GEOMImpl_3DSketcherDriver), 1, (Standard_Address)_Ancestors, (Standard_Address)NULL); @@ -89,19 +130,16 @@ Standard_EXPORT Handle_Standard_Type& GEOMImpl_Template_Type_() //======================================================================= //function : DownCast //purpose : -//======================================================================= - -const Handle(GEOMImpl_Template) Handle(GEOMImpl_Template)::DownCast(const Handle(Standard_Transient)& AnObject) +//======================================================================= +const Handle(GEOMImpl_3DSketcherDriver) Handle(GEOMImpl_3DSketcherDriver)::DownCast(const Handle(Standard_Transient)& AnObject) { - Handle(GEOMImpl_Template) _anOtherObject; + Handle(GEOMImpl_3DSketcherDriver) _anOtherObject; if (!AnObject.IsNull()) { - if (AnObject->IsKind(STANDARD_TYPE(GEOMImpl_Template))) { - _anOtherObject = Handle(GEOMImpl_Template)((Handle(GEOMImpl_Template)&)AnObject); + if (AnObject->IsKind(STANDARD_TYPE(GEOMImpl_3DSketcherDriver))) { + _anOtherObject = Handle(GEOMImpl_3DSketcherDriver)((Handle(GEOMImpl_3DSketcherDriver)&)AnObject); } } return _anOtherObject ; } - - diff --git a/src/GEOMImpl/GEOMImpl_3DSketcherDriver.hxx b/src/GEOMImpl/GEOMImpl_3DSketcherDriver.hxx new file mode 100755 index 000000000..f0f2476f8 --- /dev/null +++ b/src/GEOMImpl/GEOMImpl_3DSketcherDriver.hxx @@ -0,0 +1,158 @@ +// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : GEOMImpl_3DSketcherDriver.ixx +// Module : GEOMImpl + +#ifndef _GEOMImpl_3DSketcherDriver_HeaderFile +#define _GEOMImpl_3DSketcherDriver_HeaderFile + +#ifndef _TColStd_SequenceOfExtendedString_HeaderFile +#include +#endif +#ifndef _Standard_TypeMismatch_HeaderFile +#include +#endif + +#ifndef _Standard_HeaderFile +#include +#endif + +#ifndef _Standard_Macro_HeaderFile +#include +#endif +#ifndef _Standard_HeaderFile +#include +#endif +#ifndef _Standard_GUID_HeaderFile +#include +#endif + +#ifndef _Handle_TFunction_Driver_HeaderFile +#include +#endif + +class Standard_Transient; +class Handle_Standard_Type; +class Handle(TFunction_Driver); +class GEOMImpl_3DSketcherDriver; + +Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOMImpl_3DSketcherDriver); + +class Handle(GEOMImpl_3DSketcherDriver) : public Handle(TFunction_Driver) { + public: + inline void* operator new(size_t,void* anAddress) + { + return anAddress; + } + inline void* operator new(size_t size) + { + return Standard::Allocate(size); + } + inline void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); + } + + Handle(GEOMImpl_3DSketcherDriver)():Handle(TFunction_Driver)() {} + Handle(GEOMImpl_3DSketcherDriver)(const Handle(GEOMImpl_3DSketcherDriver)& aHandle) : Handle(TFunction_Driver)(aHandle) + { + } + + Handle(GEOMImpl_3DSketcherDriver)(const GEOMImpl_3DSketcherDriver* anItem) : Handle(TFunction_Driver)((TFunction_Driver *)anItem) + { + } + + Handle(GEOMImpl_3DSketcherDriver)& operator=(const Handle(GEOMImpl_3DSketcherDriver)& aHandle) + { + Assign(aHandle.Access()); + return *this; + } + + Handle(GEOMImpl_3DSketcherDriver)& operator=(const GEOMImpl_3DSketcherDriver* anItem) + { + Assign((Standard_Transient *)anItem); + return *this; + } + + GEOMImpl_3DSketcherDriver* operator->() + { + return (GEOMImpl_3DSketcherDriver *)ControlAccess(); + } + + GEOMImpl_3DSketcherDriver* operator->() const + { + return (GEOMImpl_3DSketcherDriver *)ControlAccess(); + } + + Standard_EXPORT ~Handle(GEOMImpl_3DSketcherDriver)() {}; + + Standard_EXPORT static const Handle(GEOMImpl_3DSketcherDriver) DownCast(const Handle(Standard_Transient)& AnObject); +}; + +#ifndef _TFunction_Driver_HeaderFile +#include +#endif +#ifndef _TFunction_Logbook_HeaderFile +#include +#endif +#ifndef _Standard_CString_HeaderFile +#include +#endif + +class TColStd_SequenceOfExtendedString; + + +class GEOMImpl_3DSketcherDriver : public TFunction_Driver { + +public: + + inline void* operator new(size_t,void* anAddress) + { + return anAddress; + } + inline void* operator new(size_t size) + { + return Standard::Allocate(size); + } + inline void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); + } + + // Methods PUBLIC + // +Standard_EXPORT GEOMImpl_3DSketcherDriver(); +Standard_EXPORT virtual Standard_Integer Execute(TFunction_Logbook& log) const; +Standard_EXPORT virtual void Validate(TFunction_Logbook&) const {} +Standard_EXPORT Standard_Boolean MustExecute(const TFunction_Logbook&) const { return Standard_True; } +Standard_EXPORT static const Standard_GUID& GetID(); +Standard_EXPORT ~GEOMImpl_3DSketcherDriver() {}; + + + // Type management + // +Standard_EXPORT friend Handle_Standard_Type& GEOMImpl_3DSketcherDriver_Type_(); +Standard_EXPORT const Handle(Standard_Type)& DynamicType() const { return STANDARD_TYPE(GEOMImpl_3DSketcherDriver) ; } +Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)& AType) const { return (STANDARD_TYPE(GEOMImpl_3DSketcherDriver) == AType || TFunction_Driver::IsKind(AType)); } + + +}; + +#endif diff --git a/src/GEOMImpl/GEOMImpl_ArcDriver.cxx b/src/GEOMImpl/GEOMImpl_ArcDriver.cxx index d08ae24cc..ad099022f 100644 --- a/src/GEOMImpl/GEOMImpl_ArcDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ArcDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -36,12 +37,16 @@ #include #include +#include +#include #include #include #include #include #include +#include #include +#include #include "utilities.h" @@ -77,7 +82,7 @@ Standard_Integer GEOMImpl_ArcDriver::Execute(TFunction_Logbook& log) const Standard_Integer aType = aFunction->GetType(); TopoDS_Shape aShape; - if ((aType == CIRC_ARC_THREE_PNT) || (aType == CIRC_ARC_CENTER)) + if ((aType == CIRC_ARC_THREE_PNT) || (aType == CIRC_ARC_CENTER) || (aType == ELLIPSE_ARC_CENTER_TWO_PNT)) { Handle(GEOM_Function) aRefPoint1 = aCI.GetPoint1(); Handle(GEOM_Function) aRefPoint2 = aCI.GetPoint2(); @@ -107,9 +112,7 @@ Standard_Integer GEOMImpl_ArcDriver::Execute(TFunction_Logbook& log) const { GC_MakeArcOfCircle arc (aP1, aP2, aP3); aShape = BRepBuilderAPI_MakeEdge(arc).Edge(); - } - else // CIRC_ARC_CENTER - { + } else if ( aType == CIRC_ARC_CENTER ) { // CIRC_ARC_CENTER Standard_Boolean sense = aCI.GetSense(); Standard_Real aRad = aP1.Distance(aP2); @@ -125,9 +128,29 @@ Standard_Integer GEOMImpl_ArcDriver::Execute(TFunction_Logbook& log) const GC_MakeArcOfCircle arc (aGeomCirc->Circ(), aP2, aP3, Standard_True); aShape = BRepBuilderAPI_MakeEdge(arc).Edge(); + } else if ( aType == ELLIPSE_ARC_CENTER_TWO_PNT ) { // ELLIPSE_ARC_CENTER_TWO_PNT + if ( aP1.Distance(aP2) <= aP1.Distance(aP3) ) { + // Standard_ConstructionError::Raise("Arc creation aborted: the distance from Center Point to Point 1 needs to be bigger than the distance from Center Point to Point 2"); + cout << "aP1.Distance(aP2) <= aP1.Distance(aP3)" << endl; + gp_Pnt aTmpP = aP2; + aP2 = aP3; + aP3 = aTmpP; + } + + GC_MakeEllipse ellipse (aP2, aP3, aP1); + Handle(Geom_Ellipse) aGeomEllipse = ellipse.Value(); + + gp_Vec aV1 (aP1, aP2); + gp_Vec aV2 (aP1, aP3); + + double alpha = fabs(aV1.Angle(aV2)); + + GC_MakeArcOfEllipse arc (aGeomEllipse->Elips(), aP2, aP3, Standard_True); + aShape = BRepBuilderAPI_MakeEdge(arc).Edge(); } } - } else { + } + else { } if (aShape.IsNull()) return 0; diff --git a/src/GEOMImpl/GEOMImpl_ArcDriver.hxx b/src/GEOMImpl/GEOMImpl_ArcDriver.hxx index 89dbdcf81..4e84d5292 100644 --- a/src/GEOMImpl/GEOMImpl_ArcDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_ArcDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_ArcDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_ArcDriver_HeaderFile #define _GEOMImpl_ArcDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_ArchimedeDriver.cxx b/src/GEOMImpl/GEOMImpl_ArchimedeDriver.cxx index fbd03ee9e..9997cf2a7 100644 --- a/src/GEOMImpl/GEOMImpl_ArchimedeDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ArchimedeDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include "GEOMImpl_ArchimedeDriver.hxx" #include "GEOMImpl_IArchimede.hxx" #include "GEOMImpl_Types.hxx" diff --git a/src/GEOMImpl/GEOMImpl_ArchimedeDriver.hxx b/src/GEOMImpl/GEOMImpl_ArchimedeDriver.hxx index 3dbe0b615..1fb7839be 100644 --- a/src/GEOMImpl/GEOMImpl_ArchimedeDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_ArchimedeDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_ArchimedeDriver.hxx // Module : GEOMImpl - +// #ifndef _GEOMImpl_ArchimedeDriver_HeaderFile #define _GEOMImpl_ArchimedeDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx b/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx index 8366db405..68e3983d9 100644 --- a/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx +++ b/src/GEOMImpl/GEOMImpl_Block6Explorer.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include diff --git a/src/GEOMImpl/GEOMImpl_Block6Explorer.hxx b/src/GEOMImpl/GEOMImpl_Block6Explorer.hxx index db0613668..3ad008aed 100644 --- a/src/GEOMImpl/GEOMImpl_Block6Explorer.hxx +++ b/src/GEOMImpl/GEOMImpl_Block6Explorer.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_Block6Explorer.hxx // Module : GEOMImpl - +// #ifndef GEOMImpl_Block6Explorer_HeaderFile #define GEOMImpl_Block6Explorer_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_BlockDriver.cxx b/src/GEOMImpl/GEOMImpl_BlockDriver.cxx index 2efdd7ca2..7a98359ac 100644 --- a/src/GEOMImpl/GEOMImpl_BlockDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_BlockDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -34,7 +35,7 @@ #include #include -//#include +#include #include #include @@ -53,6 +54,7 @@ #include #include #include +#include #include #include #include @@ -507,17 +509,28 @@ Standard_Integer GEOMImpl_BlockDriver::Execute(TFunction_Logbook& log) const aTool.SetShape(aBlockOrComp); aTool.Perform(); - if (aType == BLOCK_REMOVE_EXTRA) { + TopoDS_Shape aFixedExtra = aTool.Shape(); + + // Repair result + BRepCheck_Analyzer ana (aFixedExtra, false); + if (!ana.IsValid()) { + TopoDS_Shape aFixed; + ShHealOper_ShapeProcess aHealer; + aHealer.Perform(aFixedExtra, aFixed); + if (aHealer.isDone()) + aFixedExtra = aFixed; + } + + if (aType == BLOCK_REMOVE_EXTRA) + { + aShape = aFixedExtra; - aShape = aTool.Shape(); if (aShape == aBlockOrComp) { MESSAGE("No modifications have been done"); } - - } else { // aType == BLOCK_COMPOUND_IMPROVE - - TopoDS_Shape aFixedExtra = aTool.Shape(); - + } + else // aType == BLOCK_COMPOUND_IMPROVE + { // 2. Separate non-blocks TopTools_ListOfShape BLO; // All blocks from the given compound TopTools_ListOfShape NOT; // Not blocks diff --git a/src/GEOMImpl/GEOMImpl_BlockDriver.hxx b/src/GEOMImpl/GEOMImpl_BlockDriver.hxx index a51ca743a..9037bbecf 100644 --- a/src/GEOMImpl/GEOMImpl_BlockDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_BlockDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_BlockDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_BlockDriver_HeaderFile #define _GEOMImpl_BlockDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx index c419cd6d5..bf82f5136 100644 --- a/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_BooleanDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include #include @@ -38,6 +39,9 @@ #include #include #include +#include +#include +#include #include #include @@ -405,9 +409,24 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const } if (aShape.IsNull()) return 0; - if (!BRepAlgo::IsValid(aShape)) { - Standard_ConstructionError::Raise("Boolean operation aborted : non valid shape result"); + + // 08.07.2008 skl for bug 19761 from Mantis + BRepCheck_Analyzer ana (aShape, Standard_True); + ana.Init(aShape); + if (!ana.IsValid()) { + ShapeFix_ShapeTolerance aSFT; + aSFT.LimitTolerance(aShape, Precision::Confusion(), + Precision::Confusion(), TopAbs_SHAPE); + Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aShape); + aSfs->Perform(); + aShape = aSfs->Shape(); + ana.Init(aShape); + if (!ana.IsValid()) + Standard_ConstructionError::Raise("Boolean operation aborted : non valid shape result"); } + //if (!BRepAlgo::IsValid(aShape)) { + // Standard_ConstructionError::Raise("Boolean operation aborted : non valid shape result"); + //} aFunction->SetValue(aShape); diff --git a/src/GEOMImpl/GEOMImpl_BooleanDriver.hxx b/src/GEOMImpl/GEOMImpl_BooleanDriver.hxx index a9b198ce1..c8d0cb10a 100644 --- a/src/GEOMImpl/GEOMImpl_BooleanDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_BooleanDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_BooleanDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_BooleanDriver_HeaderFile #define _GEOMImpl_BooleanDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_BoxDriver.cxx b/src/GEOMImpl/GEOMImpl_BoxDriver.cxx index f35350788..48be1001d 100644 --- a/src/GEOMImpl/GEOMImpl_BoxDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_BoxDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_BoxDriver.hxx b/src/GEOMImpl/GEOMImpl_BoxDriver.hxx index 7721d2a04..ecd3377c4 100644 --- a/src/GEOMImpl/GEOMImpl_BoxDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_BoxDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_BoxDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_BoxDriver_HeaderFile #define _GEOMImpl_BoxDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_ChamferDriver.cxx b/src/GEOMImpl/GEOMImpl_ChamferDriver.cxx index 54431c6dc..5a05432e1 100644 --- a/src/GEOMImpl/GEOMImpl_ChamferDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ChamferDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_ChamferDriver.hxx b/src/GEOMImpl/GEOMImpl_ChamferDriver.hxx index fbcd12928..4107f9dfe 100644 --- a/src/GEOMImpl/GEOMImpl_ChamferDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_ChamferDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_ChamferDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_ChamferDriver_HeaderFile #define _GEOMImpl_ChamferDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_CircleDriver.cxx b/src/GEOMImpl/GEOMImpl_CircleDriver.cxx index 79184422b..2edcc5c1b 100644 --- a/src/GEOMImpl/GEOMImpl_CircleDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_CircleDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -77,65 +78,87 @@ Standard_Integer GEOMImpl_CircleDriver::Execute(TFunction_Logbook& log) const TopoDS_Shape aShape; if (aType == CIRCLE_PNT_VEC_R) { - Handle(GEOM_Function) aRefPoint = aCI.GetCenter(); + // Center + gp_Pnt aP = gp::Origin(); + Handle(GEOM_Function) aRefPoint = aCI.GetCenter(); + if (!aRefPoint.IsNull()) { + TopoDS_Shape aShapePnt = aRefPoint->GetValue(); + if (aShapePnt.ShapeType() != TopAbs_VERTEX) { + Standard_ConstructionError::Raise + ("Circle creation aborted: invalid center argument, must be a point"); + } + aP = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt)); + } + // Normal + gp_Vec aV = gp::DZ(); Handle(GEOM_Function) aRefVector = aCI.GetVector(); - TopoDS_Shape aShapePnt = aRefPoint->GetValue(); - TopoDS_Shape aShapeVec = aRefVector->GetValue(); - if (aShapePnt.ShapeType() == TopAbs_VERTEX && - aShapeVec.ShapeType() == TopAbs_EDGE) { - gp_Pnt aP = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt)); + if (!aRefVector.IsNull()) { + TopoDS_Shape aShapeVec = aRefVector->GetValue(); + if (aShapeVec.ShapeType() != TopAbs_EDGE) { + Standard_ConstructionError::Raise + ("Circle creation aborted: invalid vector argument, must be a vector or an edge"); + } TopoDS_Edge anE = TopoDS::Edge(aShapeVec); TopoDS_Vertex V1, V2; TopExp::Vertices(anE, V1, V2, Standard_True); if (!V1.IsNull() && !V2.IsNull()) { - gp_Vec aV (BRep_Tool::Pnt(V1), BRep_Tool::Pnt(V2)); - gp_Ax2 anAxes (aP, aV); - gp_Circ aCirc (anAxes, aCI.GetRadius()); - aShape = BRepBuilderAPI_MakeEdge(aCirc).Edge(); + aV = gp_Vec(BRep_Tool::Pnt(V1), BRep_Tool::Pnt(V2)); + if (aV.Magnitude() < gp::Resolution()) { + Standard_ConstructionError::Raise + ("Circle creation aborted: vector of zero length is given"); + } } } + // Axes + gp_Ax2 anAxes (aP, aV); + // Circle + gp_Circ aCirc (anAxes, aCI.GetRadius()); + aShape = BRepBuilderAPI_MakeEdge(aCirc).Edge(); } - else if (aType == CIRCLE_CENTER_TWO_PNT) { - Handle(GEOM_Function) aRefPoint1 = aCI.GetPoint1(); - Handle(GEOM_Function) aRefPoint2 = aCI.GetPoint2(); - Handle(GEOM_Function) aRefPoint3 = aCI.GetPoint3(); - TopoDS_Shape aShapePnt1 = aRefPoint1->GetValue(); - TopoDS_Shape aShapePnt2 = aRefPoint2->GetValue(); - TopoDS_Shape aShapePnt3 = aRefPoint3->GetValue(); - if (aShapePnt1.ShapeType() == TopAbs_VERTEX && aShapePnt2.ShapeType() == TopAbs_VERTEX && - aShapePnt3.ShapeType() == TopAbs_VERTEX) - { - gp_Pnt aP1 = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt1)); - gp_Pnt aP2 = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt2)); - gp_Pnt aP3 = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt3)); + else if (aType == CIRCLE_CENTER_TWO_PNT) { + Handle(GEOM_Function) aRefPoint1 = aCI.GetPoint1(); + Handle(GEOM_Function) aRefPoint2 = aCI.GetPoint2(); + Handle(GEOM_Function) aRefPoint3 = aCI.GetPoint3(); + TopoDS_Shape aShapePnt1 = aRefPoint1->GetValue(); + TopoDS_Shape aShapePnt2 = aRefPoint2->GetValue(); + TopoDS_Shape aShapePnt3 = aRefPoint3->GetValue(); + if (aShapePnt1.ShapeType() == TopAbs_VERTEX && + aShapePnt2.ShapeType() == TopAbs_VERTEX && + aShapePnt3.ShapeType() == TopAbs_VERTEX) + { + gp_Pnt aP1 = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt1)); + gp_Pnt aP2 = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt2)); + gp_Pnt aP3 = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt3)); - if (aP1.Distance(aP2) < gp::Resolution() || - aP1.Distance(aP3) < gp::Resolution() || - aP2.Distance(aP3) < gp::Resolution()) - Standard_ConstructionError::Raise("Circle creation aborted: coincident points given"); - if (gp_Vec(aP1, aP2).IsParallel(gp_Vec(aP1, aP3), Precision::Angular())) - Standard_ConstructionError::Raise("Circle creation aborted: points lay on one line"); - double x, y, z, x1, y1, z1, x2, y2, z2, dx, dy, dz, dx2, dy2, dz2, dx3, dy3, dz3, aRadius; - //Calculations for Radius - x = aP1.X(); y = aP1.Y(); z = aP1.Z(); - x1 = aP2.X(); y1 = aP2.Y(); z1 = aP2.Z(); - dx = x1 - x; - dy = y1 - y; - dz = z1 - z; - aRadius = sqrt(dx*dx + dy*dy + dz*dz); - //Calculations for Plane Vector - x2 = aP3.X(); y2 = aP3.Y(); z2 = aP3.Z(); - dx2 = x2 - x; dy2 = y2 - y; dz2 = z2 - z; - dx3 = ((dy*dz2) - (dy2*dz))/100; - dy3 = ((dx2*dz) - (dx*dz2))/100; - dz3 = ((dx*dy2) - (dx2*dy))/100; - //Make Plane Vector - gp_Dir aDir ( dx3, dy3, dz3 ); - //Make Circle - gp_Ax2 anAxes (aP1, aDir); - gp_Circ aCirc (anAxes, aRadius); - aShape = BRepBuilderAPI_MakeEdge(aCirc).Edge(); - } + if (aP1.Distance(aP2) < gp::Resolution() || + aP1.Distance(aP3) < gp::Resolution() || + aP2.Distance(aP3) < gp::Resolution()) + Standard_ConstructionError::Raise("Circle creation aborted: coincident points given"); + + if (gp_Vec(aP1, aP2).IsParallel(gp_Vec(aP1, aP3), Precision::Angular())) + Standard_ConstructionError::Raise("Circle creation aborted: points lay on one line"); + + double x, y, z, x1, y1, z1, x2, y2, z2, dx, dy, dz, dx2, dy2, dz2, dx3, dy3, dz3, aRadius; + //Calculations for Radius + x = aP1.X(); y = aP1.Y(); z = aP1.Z(); + x1 = aP2.X(); y1 = aP2.Y(); z1 = aP2.Z(); + dx = x1 - x; + dy = y1 - y; + dz = z1 - z; + aRadius = sqrt(dx*dx + dy*dy + dz*dz); + //Calculations for Plane Vector + x2 = aP3.X(); y2 = aP3.Y(); z2 = aP3.Z(); + dx2 = x2 - x; dy2 = y2 - y; dz2 = z2 - z; + dx3 = ((dy*dz2) - (dy2*dz))/100; + dy3 = ((dx2*dz) - (dx*dz2))/100; + dz3 = ((dx*dy2) - (dx2*dy))/100; + //Make Plane Vector + gp_Dir aDir ( dx3, dy3, dz3 ); + //Make Circle + gp_Ax2 anAxes (aP1, aDir); + gp_Circ aCirc (anAxes, aRadius); + aShape = BRepBuilderAPI_MakeEdge(aCirc).Edge(); + } } else if (aType == CIRCLE_THREE_PNT) { Handle(GEOM_Function) aRefPoint1 = aCI.GetPoint1(); @@ -160,7 +183,7 @@ Standard_Integer GEOMImpl_CircleDriver::Execute(TFunction_Logbook& log) const aShape = BRepBuilderAPI_MakeEdge(aCirc).Edge(); } } - else { + else { } if (aShape.IsNull()) return 0; diff --git a/src/GEOMImpl/GEOMImpl_CircleDriver.hxx b/src/GEOMImpl/GEOMImpl_CircleDriver.hxx index 8eb470385..4aa2ab5dc 100644 --- a/src/GEOMImpl/GEOMImpl_CircleDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_CircleDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_CircleDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_CircleDriver_HeaderFile #define _GEOMImpl_CircleDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_ConeDriver.cxx b/src/GEOMImpl/GEOMImpl_ConeDriver.cxx index d9ee6044a..a84948554 100644 --- a/src/GEOMImpl/GEOMImpl_ConeDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ConeDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_ConeDriver.hxx b/src/GEOMImpl/GEOMImpl_ConeDriver.hxx index 7c53100a6..81aaf2779 100644 --- a/src/GEOMImpl/GEOMImpl_ConeDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_ConeDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_ConeDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_ConeDriver_HeaderFile #define _GEOMImpl_ConeDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_CopyDriver.cxx b/src/GEOMImpl/GEOMImpl_CopyDriver.cxx index 6fd87146f..008d28289 100644 --- a/src/GEOMImpl/GEOMImpl_CopyDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_CopyDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_CopyDriver.hxx b/src/GEOMImpl/GEOMImpl_CopyDriver.hxx index ca86e7664..4b2271be2 100644 --- a/src/GEOMImpl/GEOMImpl_CopyDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_CopyDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_CopyDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_CopyDriver_HeaderFile #define _GEOMImpl_CopyDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_CylinderDriver.cxx b/src/GEOMImpl/GEOMImpl_CylinderDriver.cxx index cba3e36c5..3cf373e4e 100644 --- a/src/GEOMImpl/GEOMImpl_CylinderDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_CylinderDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_CylinderDriver.hxx b/src/GEOMImpl/GEOMImpl_CylinderDriver.hxx index a7799c927..ab063d334 100644 --- a/src/GEOMImpl/GEOMImpl_CylinderDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_CylinderDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_CylinderDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_CylinderDriver_HeaderFile #define _GEOMImpl_CylinderDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_DiskDriver.cxx b/src/GEOMImpl/GEOMImpl_DiskDriver.cxx new file mode 100755 index 000000000..5804a77ac --- /dev/null +++ b/src/GEOMImpl/GEOMImpl_DiskDriver.cxx @@ -0,0 +1,205 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include + +//======================================================================= +//function : GetID +//purpose : +//======================================================================= +const Standard_GUID& GEOMImpl_DiskDriver::GetID() +{ + static Standard_GUID aDiskDriver("C1FEEF9D-1C6D-41ce-9507-F10D75430CE1"); + return aDiskDriver; +} + + +//======================================================================= +//function : GEOMImpl_DiskDriver +//purpose : +//======================================================================= +GEOMImpl_DiskDriver::GEOMImpl_DiskDriver() +{ +} + +//======================================================================= +//function : Execute +//purpose : +//======================================================================= +Standard_Integer GEOMImpl_DiskDriver::Execute(TFunction_Logbook& log) const +{ + if (Label().IsNull()) return 0; + Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction(Label()); + + GEOMImpl_IDisk aCI (aFunction); + Standard_Integer aType = aFunction->GetType(); + + TopoDS_Shape aShape; + + if (aType == DISK_PNT_VEC_R) { + Handle(GEOM_Function) aRefPoint = aCI.GetCenter(); + Handle(GEOM_Function) aRefVector = aCI.GetVector(); + TopoDS_Shape aShapePnt = aRefPoint->GetValue(); + TopoDS_Shape aShapeVec = aRefVector->GetValue(); + if (aShapePnt.ShapeType() == TopAbs_VERTEX && + aShapeVec.ShapeType() == TopAbs_EDGE) { + gp_Pnt aP = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt)); + TopoDS_Edge anE = TopoDS::Edge(aShapeVec); + TopoDS_Vertex V1, V2; + TopExp::Vertices(anE, V1, V2, Standard_True); + if (!V1.IsNull() && !V2.IsNull()) { + gp_Vec aV (BRep_Tool::Pnt(V1), BRep_Tool::Pnt(V2)); + gp_Ax2 anAxes (aP, -aV); + gp_Circ aCirc (anAxes, aCI.GetRadius()); + TopoDS_Shape aCircle = BRepBuilderAPI_MakeEdge(aCirc).Edge(); + BRepBuilderAPI_MakeWire MW; + MW.Add(TopoDS::Edge(aCircle)); + BRepBuilderAPI_MakeFace MF (MW, Standard_False); + aShape = MF.Shape(); + } + } + } + else if (aType == DISK_THREE_PNT) { + Handle(GEOM_Function) aRefPoint1 = aCI.GetPoint1(); + Handle(GEOM_Function) aRefPoint2 = aCI.GetPoint2(); + Handle(GEOM_Function) aRefPoint3 = aCI.GetPoint3(); + TopoDS_Shape aShapePnt1 = aRefPoint1->GetValue(); + TopoDS_Shape aShapePnt2 = aRefPoint2->GetValue(); + TopoDS_Shape aShapePnt3 = aRefPoint3->GetValue(); + if (aShapePnt1.ShapeType() == TopAbs_VERTEX && + aShapePnt2.ShapeType() == TopAbs_VERTEX && + aShapePnt3.ShapeType() == TopAbs_VERTEX) { + gp_Pnt aP1 = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt1)); + gp_Pnt aP2 = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt2)); + gp_Pnt aP3 = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt3)); + if (aP1.Distance(aP2) < gp::Resolution() || + aP1.Distance(aP3) < gp::Resolution() || + aP2.Distance(aP3) < gp::Resolution()) + Standard_ConstructionError::Raise("Disk creation aborted: coincident points given"); + if (gp_Vec(aP1, aP2).IsParallel(gp_Vec(aP1, aP3), Precision::Angular())) + Standard_ConstructionError::Raise("Disk creation aborted: points lay on one line"); + Handle(Geom_Circle) aCirc = GC_MakeCircle(aP3, aP2, aP1).Value(); + TopoDS_Shape aCircle = BRepBuilderAPI_MakeEdge(aCirc).Edge(); + BRepBuilderAPI_MakeWire MW; + MW.Add(TopoDS::Edge(aCircle)); + BRepBuilderAPI_MakeFace MF (MW, Standard_False); + aShape = MF.Shape(); + } + } + else if (aType == DISK_R) { + int anOrient = aCI.GetOrientation(); + gp_Pnt aP = gp::Origin(); + gp_Vec aV; + if (anOrient == 1) + aV = gp::DZ(); + else if (anOrient == 2) + aV = gp::DX(); + else if (anOrient == 3) + aV = gp::DY(); + + gp_Ax2 anAxes (aP, -aV); + gp_Circ aCirc (anAxes, aCI.GetRadius()); + TopoDS_Shape aCircle = BRepBuilderAPI_MakeEdge(aCirc).Edge(); + BRepBuilderAPI_MakeWire MW; + MW.Add(TopoDS::Edge(aCircle)); + BRepBuilderAPI_MakeFace MF (MW, Standard_False); + aShape = MF.Shape(); + } + else { + } + + if (aShape.IsNull()) return 0; + + aFunction->SetValue(aShape); + + log.SetTouched(Label()); + + return 1; +} + + +//======================================================================= +//function : GEOMImpl_DiskDriver_Type_ +//purpose : +//======================================================================= +Standard_EXPORT Handle_Standard_Type& GEOMImpl_DiskDriver_Type_() +{ + + static Handle_Standard_Type aType1 = STANDARD_TYPE(TFunction_Driver); + if ( aType1.IsNull()) aType1 = STANDARD_TYPE(TFunction_Driver); + static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared); + if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared); + static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient); + if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient); + + + static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL}; + static Handle_Standard_Type _aType = new Standard_Type("GEOMImpl_DiskDriver", + sizeof(GEOMImpl_DiskDriver), + 1, + (Standard_Address)_Ancestors, + (Standard_Address)NULL); + + return _aType; +} + +//======================================================================= +//function : DownCast +//purpose : +//======================================================================= +const Handle(GEOMImpl_DiskDriver) Handle(GEOMImpl_DiskDriver)::DownCast(const Handle(Standard_Transient)& AnObject) +{ + Handle(GEOMImpl_DiskDriver) _anOtherObject; + + if (!AnObject.IsNull()) { + if (AnObject->IsKind(STANDARD_TYPE(GEOMImpl_DiskDriver))) { + _anOtherObject = Handle(GEOMImpl_DiskDriver)((Handle(GEOMImpl_DiskDriver)&)AnObject); + } + } + + return _anOtherObject ; +} diff --git a/src/GEOMImpl/GEOMImpl_DiskDriver.hxx b/src/GEOMImpl/GEOMImpl_DiskDriver.hxx new file mode 100755 index 000000000..ffee9eddf --- /dev/null +++ b/src/GEOMImpl/GEOMImpl_DiskDriver.hxx @@ -0,0 +1,160 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : GEOMImpl_DiskDriver.ixx +// Module : GEOMImpl +// +#ifndef _GEOMImpl_DiskDriver_HeaderFile +#define _GEOMImpl_DiskDriver_HeaderFile + +#ifndef _TColStd_SequenceOfExtendedString_HeaderFile +#include +#endif +#ifndef _Standard_TypeMismatch_HeaderFile +#include +#endif + +#ifndef _Standard_HeaderFile +#include +#endif + +#ifndef _Standard_Macro_HeaderFile +#include +#endif +#ifndef _Standard_HeaderFile +#include +#endif +#ifndef _Standard_GUID_HeaderFile +#include +#endif + +#ifndef _Handle_TFunction_Driver_HeaderFile +#include +#endif + +class Standard_Transient; +class Handle_Standard_Type; +class Handle(TFunction_Driver); +class GEOMImpl_DiskDriver; + +Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOMImpl_DiskDriver); + +class Handle(GEOMImpl_DiskDriver) : public Handle(TFunction_Driver) { + public: + inline void* operator new(size_t,void* anAddress) + { + return anAddress; + } + inline void* operator new(size_t size) + { + return Standard::Allocate(size); + } + inline void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); + } + + Handle(GEOMImpl_DiskDriver)():Handle(TFunction_Driver)() {} + Handle(GEOMImpl_DiskDriver)(const Handle(GEOMImpl_DiskDriver)& aHandle) : Handle(TFunction_Driver)(aHandle) + { + } + + Handle(GEOMImpl_DiskDriver)(const GEOMImpl_DiskDriver* anItem) : Handle(TFunction_Driver)((TFunction_Driver *)anItem) + { + } + + Handle(GEOMImpl_DiskDriver)& operator=(const Handle(GEOMImpl_DiskDriver)& aHandle) + { + Assign(aHandle.Access()); + return *this; + } + + Handle(GEOMImpl_DiskDriver)& operator=(const GEOMImpl_DiskDriver* anItem) + { + Assign((Standard_Transient *)anItem); + return *this; + } + + GEOMImpl_DiskDriver* operator->() + { + return (GEOMImpl_DiskDriver *)ControlAccess(); + } + + GEOMImpl_DiskDriver* operator->() const + { + return (GEOMImpl_DiskDriver *)ControlAccess(); + } + + Standard_EXPORT ~Handle(GEOMImpl_DiskDriver)() {}; + + Standard_EXPORT static const Handle(GEOMImpl_DiskDriver) DownCast(const Handle(Standard_Transient)& AnObject); +}; + +#ifndef _TFunction_Driver_HeaderFile +#include +#endif +#ifndef _TFunction_Logbook_HeaderFile +#include +#endif +#ifndef _Standard_CString_HeaderFile +#include +#endif + +class TColStd_SequenceOfExtendedString; + + +class GEOMImpl_DiskDriver : public TFunction_Driver { + +public: + + inline void* operator new(size_t,void* anAddress) + { + return anAddress; + } + inline void* operator new(size_t size) + { + return Standard::Allocate(size); + } + inline void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); + } + + // Methods PUBLIC + // +Standard_EXPORT GEOMImpl_DiskDriver(); +Standard_EXPORT virtual Standard_Integer Execute(TFunction_Logbook& log) const; +Standard_EXPORT virtual void Validate(TFunction_Logbook&) const {} +Standard_EXPORT Standard_Boolean MustExecute(const TFunction_Logbook&) const { return Standard_True; } +Standard_EXPORT static const Standard_GUID& GetID(); +Standard_EXPORT ~GEOMImpl_DiskDriver() {}; + + + // Type management + // +Standard_EXPORT friend Handle_Standard_Type& GEOMImpl_DiskDriver_Type_(); +Standard_EXPORT const Handle(Standard_Type)& DynamicType() const { return STANDARD_TYPE(GEOMImpl_DiskDriver) ; } +Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)& AType) const { return (STANDARD_TYPE(GEOMImpl_DiskDriver) == AType || TFunction_Driver::IsKind(AType)); } + + +}; + +#endif diff --git a/src/GEOMImpl/GEOMImpl_EllipseDriver.cxx b/src/GEOMImpl/GEOMImpl_EllipseDriver.cxx index 03685a46b..24ac23eb6 100644 --- a/src/GEOMImpl/GEOMImpl_EllipseDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_EllipseDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -71,24 +72,44 @@ Standard_Integer GEOMImpl_EllipseDriver::Execute(TFunction_Logbook& log) const TopoDS_Shape aShape; if (aType == ELLIPSE_PNT_VEC_RR) { - Handle(GEOM_Function) aRefPoint = aCI.GetCenter(); + // Center + gp_Pnt aP = gp::Origin(); + Handle(GEOM_Function) aRefPoint = aCI.GetCenter(); + if (!aRefPoint.IsNull()) { + TopoDS_Shape aShapePnt = aRefPoint->GetValue(); + if (aShapePnt.ShapeType() != TopAbs_VERTEX) { + Standard_ConstructionError::Raise + ("Circle creation aborted: invalid center argument, must be a point"); + } + aP = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt)); + } + // Normal + gp_Vec aV = gp::DZ(); Handle(GEOM_Function) aRefVector = aCI.GetVector(); - TopoDS_Shape aShapePnt = aRefPoint->GetValue(); - TopoDS_Shape aShapeVec = aRefVector->GetValue(); - if (aShapePnt.ShapeType() == TopAbs_VERTEX && - aShapeVec.ShapeType() == TopAbs_EDGE) { - gp_Pnt aP = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt)); + if (!aRefVector.IsNull()) { + TopoDS_Shape aShapeVec = aRefVector->GetValue(); + if (aShapeVec.ShapeType() != TopAbs_EDGE) { + Standard_ConstructionError::Raise + ("Circle creation aborted: invalid vector argument, must be a vector or an edge"); + } TopoDS_Edge anE = TopoDS::Edge(aShapeVec); TopoDS_Vertex V1, V2; TopExp::Vertices(anE, V1, V2, Standard_True); if (!V1.IsNull() && !V2.IsNull()) { - gp_Vec aV (BRep_Tool::Pnt(V1), BRep_Tool::Pnt(V2)); - gp_Ax2 anAxes (aP, aV); - gp_Elips anEll (anAxes, aCI.GetRMajor(), aCI.GetRMinor()); - aShape = BRepBuilderAPI_MakeEdge(anEll).Edge(); + aV = gp_Vec(BRep_Tool::Pnt(V1), BRep_Tool::Pnt(V2)); + if (aV.Magnitude() < gp::Resolution()) { + Standard_ConstructionError::Raise + ("Circle creation aborted: vector of zero length is given"); + } } } - } else { + // Axes + gp_Ax2 anAxes (aP, aV); + // Ellipse + gp_Elips anEll (anAxes, aCI.GetRMajor(), aCI.GetRMinor()); + aShape = BRepBuilderAPI_MakeEdge(anEll).Edge(); + } + else { } if (aShape.IsNull()) return 0; diff --git a/src/GEOMImpl/GEOMImpl_EllipseDriver.hxx b/src/GEOMImpl/GEOMImpl_EllipseDriver.hxx index 9e80dc606..98bdec9a5 100644 --- a/src/GEOMImpl/GEOMImpl_EllipseDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_EllipseDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_EllipseDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_EllipseDriver_HeaderFile #define _GEOMImpl_EllipseDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_ExportDriver.cxx b/src/GEOMImpl/GEOMImpl_ExportDriver.cxx index 5ea854b96..44efd6e1e 100644 --- a/src/GEOMImpl/GEOMImpl_ExportDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ExportDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_ExportDriver.hxx b/src/GEOMImpl/GEOMImpl_ExportDriver.hxx index 307df2424..040d7c912 100644 --- a/src/GEOMImpl/GEOMImpl_ExportDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_ExportDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_ExportDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_ExportDriver_HeaderFile #define _GEOMImpl_ExportDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_FaceDriver.cxx b/src/GEOMImpl/GEOMImpl_FaceDriver.cxx new file mode 100755 index 000000000..197b52ee0 --- /dev/null +++ b/src/GEOMImpl/GEOMImpl_FaceDriver.cxx @@ -0,0 +1,169 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +#include + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +//======================================================================= +//function : GetID +//purpose : +//======================================================================= +const Standard_GUID& GEOMImpl_FaceDriver::GetID() +{ + static Standard_GUID aFaceDriver("F7953CC1-FF8B-4628-BF5E-9D3510DE4629"); + return aFaceDriver; +} + + +//======================================================================= +//function : GEOMImpl_FaceDriver +//purpose : +//======================================================================= +GEOMImpl_FaceDriver::GEOMImpl_FaceDriver() +{ +} + +//======================================================================= +//function : Execute +//purpose : +//======================================================================= +Standard_Integer GEOMImpl_FaceDriver::Execute(TFunction_Logbook& log) const +{ + if (Label().IsNull()) return 0; + Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction(Label()); + + GEOMImpl_IFace aFI (aFunction); + Standard_Integer aType = aFunction->GetType(); + + TopoDS_Shape aShape; + + if (aType == FACE_OBJ_H_W) { + Handle(GEOM_Function) aRefFunct = aFI.GetRef1(); + TopoDS_Shape aRefShape = aRefFunct->GetValue(); + if (aRefShape.ShapeType() == TopAbs_EDGE) { + TopoDS_Edge anEdge = TopoDS::Edge(aRefShape); + double aH = aFI.GetH() / 2.0; + double aW = aFI.GetW() / 2.0; + TopoDS_Vertex V1, V2; + TopExp::Vertices(anEdge, V1, V2, Standard_True); + gp_Pnt aP (BRep_Tool::Pnt(V1)); + gp_Vec aV (BRep_Tool::Pnt(V1), BRep_Tool::Pnt(V2)); + gp_Pln aPlane (aP, aV); + aShape = BRepBuilderAPI_MakeFace(aPlane, -aH, +aH, -aW, +aW).Shape(); + } else if (aRefShape.ShapeType() == TopAbs_FACE) { + double aH = aFI.GetH() / 2.0; + double aW = aFI.GetW() / 2.0; + gp_Ax3 anAx = GEOMImpl_IMeasureOperations::GetPosition(aRefShape); + gp_Pln aPln (anAx); + aShape = BRepBuilderAPI_MakeFace(aPln, -aH, +aH, -aW, +aW).Shape(); + } + } + else if (aType == FACE_H_W) { + double aH = aFI.GetH() / 2.0; + double aW = aFI.GetW() / 2.0; + TopoDS_Vertex V1, V2; + int anOrient = aFI.GetOrientation(); + gp_Pnt aP = gp::Origin(); + gp_Vec aV; + if (anOrient == 1) + aV = gp::DZ(); + else if (anOrient == 2) + aV = gp::DX(); + else if (anOrient == 3) + aV = gp::DY(); + + gp_Pln aPlane (aP, aV); + aShape = BRepBuilderAPI_MakeFace(aPlane, -aH, +aH, -aW, +aW).Shape(); + } + else { + } + + if (aShape.IsNull()) return 0; + + aFunction->SetValue(aShape); + + log.SetTouched(Label()); + + return 1; +} + + +//======================================================================= +//function : GEOMImpl_FaceDriver_Type_ +//purpose : +//======================================================================= +Standard_EXPORT Handle_Standard_Type& GEOMImpl_FaceDriver_Type_() +{ + + static Handle_Standard_Type aType1 = STANDARD_TYPE(TFunction_Driver); + if ( aType1.IsNull()) aType1 = STANDARD_TYPE(TFunction_Driver); + static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared); + if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared); + static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient); + if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient); + + + static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL}; + static Handle_Standard_Type _aType = new Standard_Type("GEOMImpl_FaceDriver", + sizeof(GEOMImpl_FaceDriver), + 1, + (Standard_Address)_Ancestors, + (Standard_Address)NULL); + + return _aType; +} + +//======================================================================= +//function : DownCast +//purpose : +//======================================================================= +const Handle(GEOMImpl_FaceDriver) Handle(GEOMImpl_FaceDriver)::DownCast(const Handle(Standard_Transient)& AnObject) +{ + Handle(GEOMImpl_FaceDriver) _anOtherObject; + + if (!AnObject.IsNull()) { + if (AnObject->IsKind(STANDARD_TYPE(GEOMImpl_FaceDriver))) { + _anOtherObject = Handle(GEOMImpl_FaceDriver)((Handle(GEOMImpl_FaceDriver)&)AnObject); + } + } + + return _anOtherObject ; +} diff --git a/src/GEOMImpl/GEOMImpl_FaceDriver.hxx b/src/GEOMImpl/GEOMImpl_FaceDriver.hxx new file mode 100755 index 000000000..4e927d510 --- /dev/null +++ b/src/GEOMImpl/GEOMImpl_FaceDriver.hxx @@ -0,0 +1,160 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : GEOMImpl_FaceDriver.ixx +// Module : GEOMImpl +// +#ifndef _GEOMImpl_FaceDriver_HeaderFile +#define _GEOMImpl_FaceDriver_HeaderFile + +#ifndef _TColStd_SequenceOfExtendedString_HeaderFile +#include +#endif +#ifndef _Standard_TypeMismatch_HeaderFile +#include +#endif + +#ifndef _Standard_HeaderFile +#include +#endif + +#ifndef _Standard_Macro_HeaderFile +#include +#endif +#ifndef _Standard_HeaderFile +#include +#endif +#ifndef _Standard_GUID_HeaderFile +#include +#endif + +#ifndef _Handle_TFunction_Driver_HeaderFile +#include +#endif + +class Standard_Transient; +class Handle_Standard_Type; +class Handle(TFunction_Driver); +class GEOMImpl_FaceDriver; + +Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOMImpl_FaceDriver); + +class Handle(GEOMImpl_FaceDriver) : public Handle(TFunction_Driver) { + public: + inline void* operator new(size_t,void* anAddress) + { + return anAddress; + } + inline void* operator new(size_t size) + { + return Standard::Allocate(size); + } + inline void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); + } + + Handle(GEOMImpl_FaceDriver)():Handle(TFunction_Driver)() {} + Handle(GEOMImpl_FaceDriver)(const Handle(GEOMImpl_FaceDriver)& aHandle) : Handle(TFunction_Driver)(aHandle) + { + } + + Handle(GEOMImpl_FaceDriver)(const GEOMImpl_FaceDriver* anItem) : Handle(TFunction_Driver)((TFunction_Driver *)anItem) + { + } + + Handle(GEOMImpl_FaceDriver)& operator=(const Handle(GEOMImpl_FaceDriver)& aHandle) + { + Assign(aHandle.Access()); + return *this; + } + + Handle(GEOMImpl_FaceDriver)& operator=(const GEOMImpl_FaceDriver* anItem) + { + Assign((Standard_Transient *)anItem); + return *this; + } + + GEOMImpl_FaceDriver* operator->() + { + return (GEOMImpl_FaceDriver *)ControlAccess(); + } + + GEOMImpl_FaceDriver* operator->() const + { + return (GEOMImpl_FaceDriver *)ControlAccess(); + } + + Standard_EXPORT ~Handle(GEOMImpl_FaceDriver)() {}; + + Standard_EXPORT static const Handle(GEOMImpl_FaceDriver) DownCast(const Handle(Standard_Transient)& AnObject); +}; + +#ifndef _TFunction_Driver_HeaderFile +#include +#endif +#ifndef _TFunction_Logbook_HeaderFile +#include +#endif +#ifndef _Standard_CString_HeaderFile +#include +#endif + +class TColStd_SequenceOfExtendedString; + + +class GEOMImpl_FaceDriver : public TFunction_Driver { + +public: + + inline void* operator new(size_t,void* anAddress) + { + return anAddress; + } + inline void* operator new(size_t size) + { + return Standard::Allocate(size); + } + inline void operator delete(void *anAddress) + { + if (anAddress) Standard::Free((Standard_Address&)anAddress); + } + + // Methods PUBLIC + // +Standard_EXPORT GEOMImpl_FaceDriver(); +Standard_EXPORT virtual Standard_Integer Execute(TFunction_Logbook& log) const; +Standard_EXPORT virtual void Validate(TFunction_Logbook&) const {} +Standard_EXPORT Standard_Boolean MustExecute(const TFunction_Logbook&) const { return Standard_True; } +Standard_EXPORT static const Standard_GUID& GetID(); +Standard_EXPORT ~GEOMImpl_FaceDriver() {}; + + + // Type management + // +Standard_EXPORT friend Handle_Standard_Type& GEOMImpl_FaceDriver_Type_(); +Standard_EXPORT const Handle(Standard_Type)& DynamicType() const { return STANDARD_TYPE(GEOMImpl_FaceDriver) ; } +Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)& AType) const { return (STANDARD_TYPE(GEOMImpl_FaceDriver) == AType || TFunction_Driver::IsKind(AType)); } + + +}; + +#endif diff --git a/src/GEOMImpl/GEOMImpl_Fillet2dDriver.cxx b/src/GEOMImpl/GEOMImpl_Fillet2dDriver.cxx new file mode 100755 index 000000000..f7f2050ae --- /dev/null +++ b/src/GEOMImpl/GEOMImpl_Fillet2dDriver.cxx @@ -0,0 +1,152 @@ +// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +//======================================================================= +//function : GetID +//purpose : +//======================================================================= +const Standard_GUID& GEOMImpl_Fillet2dDriver::GetID() +{ + static Standard_GUID aFillet2dDriver("FF1AAB41-2A14-4df2-581B-3A568163BA46"); + return aFillet2dDriver; +} + + +//======================================================================= +//function : GEOMImpl_Fillet2dDriver +//purpose : +//======================================================================= +GEOMImpl_Fillet2dDriver::GEOMImpl_Fillet2dDriver() +{ +} + +//======================================================================= +//function : Execute +//purpose : +//======================================================================= +Standard_Integer GEOMImpl_Fillet2dDriver::Execute(TFunction_Logbook& log) const +{ + if (Label().IsNull()) return 0; + Handle(GEOM_Function) aFunction = GEOM_Function::GetFunction(Label()); + + GEOMImpl_IFillet2d aCI (aFunction); + + TopoDS_Shape aShape; + + Handle(GEOM_Function) aRefShape = aCI.GetShape(); + TopoDS_Face aFaceShape = TopoDS::Face(aRefShape->GetValue()); + + if (aFaceShape.ShapeType() != TopAbs_FACE) + Standard_ConstructionError::Raise("Wrong arguments: two faces must be given"); + + BRepFilletAPI_MakeFillet2d fillet2d (aFaceShape); + + int aLen = aCI.GetLength(); + int ind = 1; + double rad = aCI.GetR(); + for (; ind <= aLen; ind++) { + TopoDS_Shape aShapeVertex; + if (GEOMImpl_ILocalOperations::GetSubShape + (aFaceShape, aCI.GetVertex(ind), aShapeVertex)) { + fillet2d.AddFillet(TopoDS::Vertex(aShapeVertex), rad); + } + } + + fillet2d.Build(); + if (!fillet2d.IsDone()) { + StdFail_NotDone::Raise("2D Fillet can't be computed on the given shape with the given radius"); + } + aShape = fillet2d.Shape(); + + if (aShape.IsNull()) return 0; + + aFunction->SetValue(aShape); + log.SetTouched(Label()); + + return 1; +} + + +//======================================================================= +//function : GEOMImpl_Fillet2dDriver_Type_ +//purpose : +//======================================================================= +Standard_EXPORT Handle_Standard_Type& GEOMImpl_Fillet2dDriver_Type_() +{ + + static Handle_Standard_Type aType1 = STANDARD_TYPE(TFunction_Driver); + if ( aType1.IsNull()) aType1 = STANDARD_TYPE(TFunction_Driver); + static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared); + if ( aType2.IsNull()) aType2 = STANDARD_TYPE(MMgt_TShared); + static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient); + if ( aType3.IsNull()) aType3 = STANDARD_TYPE(Standard_Transient); + + + static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL}; + static Handle_Standard_Type _aType = new Standard_Type("GEOMImpl_Fillet2dDriver", + sizeof(GEOMImpl_Fillet2dDriver), + 1, + (Standard_Address)_Ancestors, + (Standard_Address)NULL); + + return _aType; +} + +//======================================================================= +//function : DownCast +//purpose : +//======================================================================= +const Handle(GEOMImpl_Fillet2dDriver) Handle(GEOMImpl_Fillet2dDriver)::DownCast(const Handle(Standard_Transient)& AnObject) +{ + Handle(GEOMImpl_Fillet2dDriver) _anOtherObject; + + if (!AnObject.IsNull()) { + if (AnObject->IsKind(STANDARD_TYPE(GEOMImpl_Fillet2dDriver))) { + _anOtherObject = Handle(GEOMImpl_Fillet2dDriver)((Handle(GEOMImpl_Fillet2dDriver)&)AnObject); + } + } + + return _anOtherObject ; +} diff --git a/src/GEOMImpl/GEOMImpl_Template.hxx b/src/GEOMImpl/GEOMImpl_Fillet2dDriver.hxx old mode 100644 new mode 100755 similarity index 67% rename from src/GEOMImpl/GEOMImpl_Template.hxx rename to src/GEOMImpl/GEOMImpl_Fillet2dDriver.hxx index 866b7fefe..a5448db66 --- a/src/GEOMImpl/GEOMImpl_Template.hxx +++ b/src/GEOMImpl/GEOMImpl_Fillet2dDriver.hxx @@ -17,11 +17,11 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// File : GEOMImpl_Template.hxx +// File : GEOMImpl_Fillet2dDriver.ixx // Module : GEOMImpl -#ifndef _GEOMImpl_Template_HeaderFile -#define _GEOMImpl_Template_HeaderFile +#ifndef _GEOMImpl_Fillet2dDriver_HeaderFile +#define _GEOMImpl_Fillet2dDriver_HeaderFile #ifndef _TColStd_SequenceOfExtendedString_HeaderFile #include @@ -51,11 +51,11 @@ class Standard_Transient; class Handle_Standard_Type; class Handle(TFunction_Driver); -class GEOMImpl_Template; +class GEOMImpl_Fillet2dDriver; -Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOMImpl_Template); +Standard_EXPORT Handle_Standard_Type& STANDARD_TYPE(GEOMImpl_Fillet2dDriver); -class Handle(GEOMImpl_Template) : public Handle(TFunction_Driver) { +class Handle(GEOMImpl_Fillet2dDriver) : public Handle(TFunction_Driver) { public: inline void* operator new(size_t,void* anAddress) { @@ -70,40 +70,40 @@ class Handle(GEOMImpl_Template) : public Handle(TFunction_Driver) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } - Handle(GEOMImpl_Template)():Handle(TFunction_Driver)() {} - Handle(GEOMImpl_Template)(const Handle(GEOMImpl_Template)& aHandle) : Handle(TFunction_Driver)(aHandle) + Handle(GEOMImpl_Fillet2dDriver)():Handle(TFunction_Driver)() {} + Handle(GEOMImpl_Fillet2dDriver)(const Handle(GEOMImpl_Fillet2dDriver)& aHandle) : Handle(TFunction_Driver)(aHandle) { } - Handle(GEOMImpl_Template)(const GEOMImpl_Template* anItem) : Handle(TFunction_Driver)((TFunction_Driver *)anItem) + Handle(GEOMImpl_Fillet2dDriver)(const GEOMImpl_Fillet2dDriver* anItem) : Handle(TFunction_Driver)((TFunction_Driver *)anItem) { } - Handle(GEOMImpl_Template)& operator=(const Handle(GEOMImpl_Template)& aHandle) + Handle(GEOMImpl_Fillet2dDriver)& operator=(const Handle(GEOMImpl_Fillet2dDriver)& aHandle) { Assign(aHandle.Access()); return *this; } - Handle(GEOMImpl_Template)& operator=(const GEOMImpl_Template* anItem) + Handle(GEOMImpl_Fillet2dDriver)& operator=(const GEOMImpl_Fillet2dDriver* anItem) { Assign((Standard_Transient *)anItem); return *this; } - GEOMImpl_Template* operator->() + GEOMImpl_Fillet2dDriver* operator->() { - return (GEOMImpl_Template *)ControlAccess(); + return (GEOMImpl_Fillet2dDriver *)ControlAccess(); } - GEOMImpl_Template* operator->() const + GEOMImpl_Fillet2dDriver* operator->() const { - return (GEOMImpl_Template *)ControlAccess(); + return (GEOMImpl_Fillet2dDriver *)ControlAccess(); } - Standard_EXPORT ~Handle(GEOMImpl_Template)() {}; + Standard_EXPORT ~Handle(GEOMImpl_Fillet2dDriver)() {}; - Standard_EXPORT static const Handle(GEOMImpl_Template) DownCast(const Handle(Standard_Transient)& AnObject); + Standard_EXPORT static const Handle(GEOMImpl_Fillet2dDriver) DownCast(const Handle(Standard_Transient)& AnObject); }; #ifndef _TFunction_Driver_HeaderFile @@ -119,7 +119,7 @@ class Handle(GEOMImpl_Template) : public Handle(TFunction_Driver) { class TColStd_SequenceOfExtendedString; -class GEOMImpl_Template : public TFunction_Driver { +class GEOMImpl_Fillet2dDriver : public TFunction_Driver { public: @@ -138,19 +138,19 @@ public: // Methods PUBLIC // -Standard_EXPORT GEOMImpl_Template(); +Standard_EXPORT GEOMImpl_Fillet2dDriver(); Standard_EXPORT virtual Standard_Integer Execute(TFunction_Logbook& log) const; Standard_EXPORT virtual void Validate(TFunction_Logbook&) const {} Standard_EXPORT Standard_Boolean MustExecute(const TFunction_Logbook&) const { return Standard_True; } Standard_EXPORT static const Standard_GUID& GetID(); -Standard_EXPORT ~GEOMImpl_Template() {}; +Standard_EXPORT ~GEOMImpl_Fillet2dDriver() {}; // Type management // -Standard_EXPORT friend Handle_Standard_Type& GEOMImpl_Template_Type_(); -Standard_EXPORT const Handle(Standard_Type)& DynamicType() const { return STANDARD_TYPE(GEOMImpl_Template) ; } -Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)& AType) const { return (STANDARD_TYPE(GEOMImpl_Template) == AType || TFunction_Driver::IsKind(AType)); } +Standard_EXPORT friend Handle_Standard_Type& GEOMImpl_Fillet2dDriver_Type_(); +Standard_EXPORT const Handle(Standard_Type)& DynamicType() const { return STANDARD_TYPE(GEOMImpl_Fillet2dDriver) ; } +Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)& AType) const { return (STANDARD_TYPE(GEOMImpl_Fillet2dDriver) == AType || TFunction_Driver::IsKind(AType)); } }; diff --git a/src/GEOMImpl/GEOMImpl_FilletDriver.cxx b/src/GEOMImpl/GEOMImpl_FilletDriver.cxx index e662d4cac..af8f67064 100644 --- a/src/GEOMImpl/GEOMImpl_FilletDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_FilletDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -36,6 +37,9 @@ #include #include +#include +#include + #include #include #include @@ -128,7 +132,16 @@ Standard_Integer GEOMImpl_FilletDriver::Execute(TFunction_Logbook& log) const // Check shape validity BRepCheck_Analyzer ana (aShape, false); if (!ana.IsValid()) { - StdFail_NotDone::Raise("Fillet algorithm have produced an invalid shape result"); + // 08.07.2008 added by skl during fixing bug 19761 from Mantis + ShapeFix_ShapeTolerance aSFT; + aSFT.LimitTolerance(aShape, Precision::Confusion(), + Precision::Confusion(), TopAbs_SHAPE); + Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aShape); + aSfs->Perform(); + aShape = aSfs->Shape(); + ana.Init(aShape); + if (!ana.IsValid()) + StdFail_NotDone::Raise("Fillet algorithm have produced an invalid shape result"); } aFunction->SetValue(aShape); diff --git a/src/GEOMImpl/GEOMImpl_FilletDriver.hxx b/src/GEOMImpl/GEOMImpl_FilletDriver.hxx index 22a5baec7..d5ac84451 100644 --- a/src/GEOMImpl/GEOMImpl_FilletDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_FilletDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_FilletDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_FilletDriver_HeaderFile #define _GEOMImpl_FilletDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_FillingDriver.cxx b/src/GEOMImpl/GEOMImpl_FillingDriver.cxx index d17febfd2..5be038b34 100644 --- a/src/GEOMImpl/GEOMImpl_FillingDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_FillingDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -45,6 +46,11 @@ #include #include +#include +#include +#include +#include + //======================================================================= //function : GetID //purpose : @@ -99,34 +105,109 @@ Standard_Integer GEOMImpl_FillingDriver::Execute(TFunction_Logbook& log) const TopoDS_Shape Scurrent; Standard_Real First, Last; Handle(Geom_Curve) C; - GeomFill_SectionGenerator Section; - Standard_Integer i = 0; - for (Ex.Init(aShape, TopAbs_EDGE); Ex.More(); Ex.Next()) { - Scurrent = Ex.Current() ; - if (Scurrent.IsNull() || Scurrent.ShapeType() != TopAbs_EDGE) return 0; - C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last); - C = new Geom_TrimmedCurve(C, First, Last); - Section.AddCurve(C); - i++; + TopoDS_Iterator It (aShape); + for (; It.More(); It.Next()) { + Scurrent = It.Value(); + if (Scurrent.ShapeType() != TopAbs_EDGE) + Standard_ConstructionError::Raise("The argument compound must contain only edges"); } - /* a 'tolerance' is used to compare 2 knots : see GeomFill_Generator.cdl */ - Section.Perform(Precision::Confusion()); - Handle(GeomFill_Line) Line = new GeomFill_Line(i); + if (!isApprox) { + // make filling as in old version of SALOME (before 4.1.1) + GeomFill_SectionGenerator Section; + Standard_Integer i = 0; + for (Ex.Init(aShape, TopAbs_EDGE); Ex.More(); Ex.Next()) { + Scurrent = Ex.Current(); + if (Scurrent.IsNull() || Scurrent.ShapeType() != TopAbs_EDGE) return 0; + if (BRep_Tool::Degenerated(TopoDS::Edge(Scurrent))) continue; + C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last); + C = new Geom_TrimmedCurve(C, First, Last); + Section.AddCurve(C); + i++; + } - GeomFill_AppSurf App (mindeg, maxdeg, tol3d, tol2d, nbiter); /* user parameters */ - App.Perform(Line, Section, isApprox); - - if (!App.IsDone()) return 0; - Standard_Integer UDegree, VDegree, NbUPoles, NbVPoles, NbUKnots, NbVKnots; - App.SurfShape(UDegree, VDegree, NbUPoles, NbVPoles, NbUKnots, NbVKnots); - Handle(Geom_BSplineSurface) GBS = new Geom_BSplineSurface - (App.SurfPoles(), App.SurfWeights(), App.SurfUKnots(), App.SurfVKnots(), - App.SurfUMults(), App.SurfVMults(), App.UDegree(), App.VDegree()); - - if (GBS.IsNull()) return 0; - aShape = BRepBuilderAPI_MakeFace(GBS); + /* a 'tolerance' is used to compare 2 knots : see GeomFill_Generator.cdl */ + Section.Perform(Precision::Confusion()); + Handle(GeomFill_Line) Line = new GeomFill_Line(i); + + GeomFill_AppSurf App (mindeg, maxdeg, tol3d, tol2d, nbiter); /* user parameters */ + App.Perform(Line, Section); + + if (!App.IsDone()) return 0; + Standard_Integer UDegree, VDegree, NbUPoles, NbVPoles, NbUKnots, NbVKnots; + App.SurfShape(UDegree, VDegree, NbUPoles, NbVPoles, NbUKnots, NbVKnots); + Handle(Geom_BSplineSurface) GBS = new Geom_BSplineSurface + (App.SurfPoles(), App.SurfWeights(), App.SurfUKnots(), App.SurfVKnots(), + App.SurfUMults(), App.SurfVMults(), App.UDegree(), App.VDegree()); + + if (GBS.IsNull()) return 0; + aShape = BRepBuilderAPI_MakeFace(GBS); + } + else { + // implemented by skl 20.03.2008 for bug 16568 + // make approximation - try to create bspline surface + // using GeomAPI_PointsToBSplineSurface + TColGeom_SequenceOfCurve aSeq; + int MaxNbPoles = 0; + // add curves from edges to sequence and find maximal + // number of poles if some of them are bsplines + for (Ex.Init(aShape, TopAbs_EDGE); Ex.More(); Ex.Next()) { + Scurrent = Ex.Current(); + if (Scurrent.IsNull() || Scurrent.ShapeType() != TopAbs_EDGE) return 0; + if (BRep_Tool::Degenerated(TopoDS::Edge(Scurrent))) continue; + C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last); + Handle(Geom_TrimmedCurve) TC = Handle(Geom_TrimmedCurve)::DownCast(C); + if(TC.IsNull()) { + Handle(Geom_BSplineCurve) BC = Handle(Geom_BSplineCurve)::DownCast(C); + if(!BC.IsNull()) { + MaxNbPoles = Max(MaxNbPoles,BC->NbPoles()); + } + } + else { + Handle(Geom_BSplineCurve) BC = Handle(Geom_BSplineCurve)::DownCast(TC->BasisCurve()); + if(BC.IsNull()) { + Handle(Geom_TrimmedCurve) TC1 = Handle(Geom_TrimmedCurve)::DownCast(TC->BasisCurve()); + if(!TC1.IsNull()) { + BC = Handle(Geom_BSplineCurve)::DownCast(TC1->BasisCurve()); + } + } + if(!BC.IsNull()) { + MaxNbPoles = Max(MaxNbPoles,BC->NbPoles()); + } + } + aSeq.Append(C); + } + // prepare array of points for creation bspline surface + // size of this array: by U parameter - number of curves, + // by V parameter - determ using MaxNbPoles but it's + // value must be between 21(min) and 101(max) + int nbc = aSeq.Length(); + int nbp = Max(21,2*MaxNbPoles-1); + if(nbp>101) nbp = 101; + TColgp_Array2OfPnt Points(1,nbc,1,nbp); + int ic = 1; + for(; ic<=nbc; ic++) { + Handle(Geom_Curve) C = aSeq.Value(ic); + double fp = C->FirstParameter(); + double lp = C->LastParameter(); + double dp = (lp-fp)/(nbp-1); + int j = 0; + gp_Pnt P; + for(; jD0(fp+dp*j,P); + Points.SetValue(ic,j+1,P); + } + } + GeomAPI_PointsToBSplineSurface PTB(Points,mindeg,maxdeg,GeomAbs_C2,tol3d); + Handle(Geom_BSplineSurface) BS = PTB.Surface(); + BRepBuilderAPI_MakeFace BB(BS); + TopoDS_Face NewF = BB.Face(); + Handle(ShapeFix_Face) sff = new ShapeFix_Face(NewF); + sff->Perform(); + sff->FixOrientation(); + aShape = sff->Face(); + } /* We test the validity of resulting shape */ if (!BRepAlgo::IsValid((aShape))) { diff --git a/src/GEOMImpl/GEOMImpl_FillingDriver.hxx b/src/GEOMImpl/GEOMImpl_FillingDriver.hxx index 88eb0d8ab..753439de2 100644 --- a/src/GEOMImpl/GEOMImpl_FillingDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_FillingDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_FillingDriver.hxx // Module : GEOMImpl - +// #ifndef _GEOMImpl_FillingDriver_HeaderFile #define _GEOMImpl_FillingDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_Gen.cxx b/src/GEOMImpl/GEOMImpl_Gen.cxx index ff5d2a26a..b01b3f88a 100644 --- a/src/GEOMImpl/GEOMImpl_Gen.cxx +++ b/src/GEOMImpl/GEOMImpl_Gen.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifdef WNT #pragma warning( disable:4786 ) @@ -43,7 +45,10 @@ #include #include #include +#include #include +#include +#include #include #include #include @@ -57,6 +62,7 @@ #include #include #include +#include #include #include #include @@ -98,9 +104,12 @@ GEOMImpl_Gen::GEOMImpl_Gen() TFunction_DriverTable::Get()->AddDriver(GEOMImpl_PolylineDriver::GetID(), new GEOMImpl_PolylineDriver()); TFunction_DriverTable::Get()->AddDriver(GEOMImpl_SplineDriver::GetID(), new GEOMImpl_SplineDriver()); TFunction_DriverTable::Get()->AddDriver(GEOMImpl_SketcherDriver::GetID(), new GEOMImpl_SketcherDriver()); + TFunction_DriverTable::Get()->AddDriver(GEOMImpl_3DSketcherDriver::GetID(), new GEOMImpl_3DSketcherDriver()); // 3D Primitives TFunction_DriverTable::Get()->AddDriver(GEOMImpl_BoxDriver::GetID(), new GEOMImpl_BoxDriver()); + TFunction_DriverTable::Get()->AddDriver(GEOMImpl_FaceDriver::GetID(), new GEOMImpl_FaceDriver()); + TFunction_DriverTable::Get()->AddDriver(GEOMImpl_DiskDriver::GetID(), new GEOMImpl_DiskDriver()); TFunction_DriverTable::Get()->AddDriver(GEOMImpl_ConeDriver::GetID(), new GEOMImpl_ConeDriver()); TFunction_DriverTable::Get()->AddDriver(GEOMImpl_CylinderDriver::GetID(), new GEOMImpl_CylinderDriver()); TFunction_DriverTable::Get()->AddDriver(GEOMImpl_PrismDriver::GetID(), new GEOMImpl_PrismDriver()); @@ -125,6 +134,7 @@ GEOMImpl_Gen::GEOMImpl_Gen() // Local Operations TFunction_DriverTable::Get()->AddDriver(GEOMImpl_ChamferDriver::GetID(), new GEOMImpl_ChamferDriver()); TFunction_DriverTable::Get()->AddDriver(GEOMImpl_FilletDriver::GetID(), new GEOMImpl_FilletDriver()); + TFunction_DriverTable::Get()->AddDriver(GEOMImpl_Fillet2dDriver::GetID(), new GEOMImpl_Fillet2dDriver()); TFunction_DriverTable::Get()->AddDriver(GEOMImpl_ArchimedeDriver::GetID(), new GEOMImpl_ArchimedeDriver()); // Geometrical Transformations, Offset, Scale diff --git a/src/GEOMImpl/GEOMImpl_Gen.hxx b/src/GEOMImpl/GEOMImpl_Gen.hxx index f1a22a785..c777a3a6b 100644 --- a/src/GEOMImpl/GEOMImpl_Gen.hxx +++ b/src/GEOMImpl/GEOMImpl_Gen.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOMImpl_GEN_HXX_ #define _GEOMImpl_GEN_HXX_ diff --git a/src/GEOMImpl/GEOMImpl_GlueDriver.cxx b/src/GEOMImpl/GEOMImpl_GlueDriver.cxx index ec18620ff..cd6235466 100644 --- a/src/GEOMImpl/GEOMImpl_GlueDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_GlueDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_GlueDriver.hxx b/src/GEOMImpl/GEOMImpl_GlueDriver.hxx index e7c3befa8..1121c2f6d 100644 --- a/src/GEOMImpl/GEOMImpl_GlueDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_GlueDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_GlueDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_GlueDriver_HeaderFile #define _GEOMImpl_GlueDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_HealingDriver.cxx b/src/GEOMImpl/GEOMImpl_HealingDriver.cxx index d4921d648..9516c6137 100644 --- a/src/GEOMImpl/GEOMImpl_HealingDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_HealingDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_HealingDriver.hxx b/src/GEOMImpl/GEOMImpl_HealingDriver.hxx index 3bc27c1a8..d89f3e408 100644 --- a/src/GEOMImpl/GEOMImpl_HealingDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_HealingDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_HealingDriver.hxx // Module : GEOMImpl - +// #ifndef _GEOMImpl_HealingDriver_HeaderFile #define _GEOMImpl_HealingDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_I3DPrimOperations.cxx b/src/GEOMImpl/GEOMImpl_I3DPrimOperations.cxx index a1c554544..ffa7b4d3f 100644 --- a/src/GEOMImpl/GEOMImpl_I3DPrimOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_I3DPrimOperations.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -36,6 +38,8 @@ #include #include +#include +#include #include #include #include @@ -48,6 +52,8 @@ #include #include +#include +#include #include #include #include @@ -60,6 +66,7 @@ #include #include #include +#include #include #include // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC @@ -192,6 +199,281 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeBoxTwoPnt (Handle(GEOM_Objec return aBox; } +//============================================================================= +/*! + * MakeFaceHW + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeFaceHW (double theH, double theW, int theOrientation) +{ + SetErrorCode(KO); + + if (theH == 0 || theW == 0) return NULL; + + //Add a new Face object + Handle(GEOM_Object) aFace = GetEngine()->AddObject(GetDocID(), GEOM_FACE); + + //Add a new Box function for creation a box relatively to two points + Handle(GEOM_Function) aFunction = aFace->AddFunction(GEOMImpl_FaceDriver::GetID(), FACE_H_W); + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_FaceDriver::GetID()) return aFace; + + GEOMImpl_IFace aFI (aFunction); + + aFI.SetH(theH); + aFI.SetW(theW); + aFI.SetOrientation(theOrientation); + + //Compute the Face + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Face driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump(aFunction) << aFace << " = geompy.MakeFaceHW(" + << theH << ", " << theW << ", " << theOrientation << ")"; + + SetErrorCode(OK); + return aFace; +} + +//============================================================================= +/*! + * MakeFaceObjHW + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeFaceObjHW (Handle(GEOM_Object) theObj, + double theH, double theW) +{ + SetErrorCode(KO); + + if (theObj.IsNull()) return NULL; + + //Add a new Face object + Handle(GEOM_Object) aFace = GetEngine()->AddObject(GetDocID(), GEOM_FACE); + + //Add a new Box function for creation a box relatively to two points + Handle(GEOM_Function) aFunction = aFace->AddFunction(GEOMImpl_FaceDriver::GetID(), FACE_OBJ_H_W); + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_FaceDriver::GetID()) return aFace; + + GEOMImpl_IFace aFI (aFunction); + + Handle(GEOM_Function) aRefFunction1 = theObj->GetLastFunction(); + + if (aRefFunction1.IsNull()) + return aFace; + + aFI.SetRef1(aRefFunction1); + aFI.SetH(theH); + aFI.SetW(theW); + + //Compute the Face + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Face driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump(aFunction) << aFace << " = geompy.MakeFaceObjHW(" + << theObj << ", " << theH << ", " << theW << ")"; + + SetErrorCode(OK); + return aFace; +} + +//============================================================================= +/*! + * MakeDiskPntVecR + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeDiskPntVecR + (Handle(GEOM_Object) thePnt, Handle(GEOM_Object) theVec, double theR) +{ + SetErrorCode(KO); + + if (thePnt.IsNull() || theVec.IsNull()) return NULL; + + //Add a new Disk object + Handle(GEOM_Object) aDisk = GetEngine()->AddObject(GetDocID(), GEOM_FACE); + + //Add a new Disk function for creation a disk relatively to point and vector + Handle(GEOM_Function) aFunction = + aDisk->AddFunction(GEOMImpl_DiskDriver::GetID(), DISK_PNT_VEC_R); + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_DiskDriver::GetID()) return NULL; + + GEOMImpl_IDisk aCI (aFunction); + + Handle(GEOM_Function) aRefPnt = thePnt->GetLastFunction(); + Handle(GEOM_Function) aRefVec = theVec->GetLastFunction(); + + if (aRefPnt.IsNull() || aRefVec.IsNull()) return NULL; + + aCI.SetCenter(aRefPnt); + aCI.SetVector(aRefVec); + aCI.SetRadius(theR); + + //Compute the Disk value + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Disk driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump(aFunction) << aDisk << " = geompy.MakeDiskPntVecR(" + << thePnt << ", " << theVec << ", " << theR << ")"; + + SetErrorCode(OK); + return aDisk; +} + +//============================================================================= +/*! + * MakeDiskThreePnt + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeDiskThreePnt (Handle(GEOM_Object) thePnt1, + Handle(GEOM_Object) thePnt2, + Handle(GEOM_Object) thePnt3) +{ + SetErrorCode(KO); + + if (thePnt1.IsNull() || thePnt2.IsNull() || thePnt3.IsNull()) return NULL; + + //Add a new Disk object + Handle(GEOM_Object) aDisk = GetEngine()->AddObject(GetDocID(), GEOM_FACE); + + //Add a new Disk function for creation a disk relatively to three points + Handle(GEOM_Function) aFunction = + aDisk->AddFunction(GEOMImpl_DiskDriver::GetID(), DISK_THREE_PNT); + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_DiskDriver::GetID()) return NULL; + + GEOMImpl_IDisk aCI (aFunction); + + Handle(GEOM_Function) aRefPnt1 = thePnt1->GetLastFunction(); + Handle(GEOM_Function) aRefPnt2 = thePnt2->GetLastFunction(); + Handle(GEOM_Function) aRefPnt3 = thePnt3->GetLastFunction(); + + if (aRefPnt1.IsNull() || aRefPnt2.IsNull() || aRefPnt3.IsNull()) return NULL; + + aCI.SetPoint1(aRefPnt1); + aCI.SetPoint2(aRefPnt2); + aCI.SetPoint3(aRefPnt3); + + //Compute the Disk value + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Disk driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump(aFunction) << aDisk << " = geompy.MakeDiskThreePnt(" + << thePnt1 << ", " << thePnt2 << ", " << thePnt3 << ")"; + + SetErrorCode(OK); + return aDisk; +} + +//============================================================================= +/*! + * MakeDiskR + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakeDiskR (double theR, int theOrientation) +{ + SetErrorCode(KO); + + if (theR == 0 ) return NULL; + + //Add a new Disk object + Handle(GEOM_Object) aDisk = GetEngine()->AddObject(GetDocID(), GEOM_FACE); + + //Add a new Box function for creation a box relatively to two points + Handle(GEOM_Function) aFunction = aDisk->AddFunction(GEOMImpl_DiskDriver::GetID(), DISK_R); + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_DiskDriver::GetID()) return aDisk; + + GEOMImpl_IDisk aDI (aFunction); + + aDI.SetRadius(theR); + aDI.SetOrientation(theOrientation); + + //Compute the Disk + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Disk driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump(aFunction) << aDisk << " = geompy.MakeDiskR(" + << theR << ", " << theOrientation << ")"; + + SetErrorCode(OK); + return aDisk; +} //============================================================================= /*! @@ -874,6 +1156,121 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePrismTwoPnt2Ways return aPrism; } +//============================================================================= +/*! + * MakePrismDXDYDZ + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePrismDXDYDZ + (Handle(GEOM_Object) theBase, double theDX, double theDY, double theDZ) +{ + SetErrorCode(KO); + + if (theBase.IsNull()) return NULL; + + //Add a new Prism object + Handle(GEOM_Object) aPrism = GetEngine()->AddObject(GetDocID(), GEOM_PRISM); + + //Add a new Prism function for creation a Prism by DXDYDZ + Handle(GEOM_Function) aFunction = + aPrism->AddFunction(GEOMImpl_PrismDriver::GetID(), PRISM_BASE_DXDYDZ); + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_PrismDriver::GetID()) return NULL; + + GEOMImpl_IPrism aCI (aFunction); + + Handle(GEOM_Function) aRefBase = theBase->GetLastFunction(); + + if (aRefBase.IsNull()) return NULL; + + aCI.SetBase(aRefBase); + aCI.SetDX(theDX); + aCI.SetDY(theDY); + aCI.SetDZ(theDZ); + + //Compute the Prism value + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Extrusion can not be created, check input data"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump(aFunction) << aPrism << " = geompy.MakePrismDXDYDZ(" + << theBase << ", " << theDX << ", " << theDY << ", " << theDZ << ")"; + + SetErrorCode(OK); + return aPrism; +} + +//============================================================================= +/*! + * MakePrismDXDYDZ_2WAYS + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePrismDXDYDZ2Ways + (Handle(GEOM_Object) theBase, double theDX, double theDY, double theDZ) +{ + SetErrorCode(KO); + + if (theBase.IsNull()) return NULL; + + //Add a new Prism object + Handle(GEOM_Object) aPrism = GetEngine()->AddObject(GetDocID(), GEOM_PRISM); + + //Add a new Prism function for creation a Prism by DXDYDZ + Handle(GEOM_Function) aFunction = + aPrism->AddFunction(GEOMImpl_PrismDriver::GetID(), PRISM_BASE_DXDYDZ_2WAYS); + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_PrismDriver::GetID()) return NULL; + + GEOMImpl_IPrism aCI (aFunction); + + Handle(GEOM_Function) aRefBase = theBase->GetLastFunction(); + + if (aRefBase.IsNull()) return NULL; + + aCI.SetBase(aRefBase); + aCI.SetDX(theDX); + aCI.SetDY(theDY); + aCI.SetDZ(theDZ); + + //Compute the Prism value + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Extrusion can not be created, check input data"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump(aFunction) << aPrism << " = geompy.MakePrismDXDYDZ2Ways(" + << theBase << ", " << theDX << ", " << theDY << ", " << theDZ << ")"; + + SetErrorCode(OK); + return aPrism; +} //============================================================================= /*! @@ -1728,3 +2125,64 @@ Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePipeShellsWithoutPath( } + +//============================================================================= +/*! + * MakePipeBiNormalAlongVector + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_I3DPrimOperations::MakePipeBiNormalAlongVector (Handle(GEOM_Object) theBase, + Handle(GEOM_Object) thePath, + Handle(GEOM_Object) theVec) +{ + SetErrorCode(KO); + + if (theBase.IsNull() || thePath.IsNull() || theVec.IsNull()) return NULL; + + //Add a new Pipe object + Handle(GEOM_Object) aPipe = GetEngine()->AddObject(GetDocID(), GEOM_PIPE); + + //Add a new Pipe function + Handle(GEOM_Function) aFunction = + aPipe->AddFunction(GEOMImpl_PipeDriver::GetID(), PIPE_BI_NORMAL_ALONG_VECTOR); + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_PipeDriver::GetID()) return NULL; + + GEOMImpl_IPipeBiNormal aCI (aFunction); + + Handle(GEOM_Function) aRefBase = theBase->GetLastFunction(); + Handle(GEOM_Function) aRefPath = thePath->GetLastFunction(); + Handle(GEOM_Function) aRefVec = theVec->GetLastFunction(); + + if (aRefBase.IsNull() || aRefPath.IsNull() || aRefVec.IsNull()) return NULL; + + aCI.SetBase(aRefBase); + aCI.SetPath(aRefPath); + aCI.SetVector(aRefVec); + + //Compute the Pipe value + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Pipe driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump(aFunction) << aPipe << " = geompy.MakePipeBiNormalAlongVector(" + << theBase << ", " << thePath << ", " << theVec << ")"; + + SetErrorCode(OK); + return aPipe; +} + diff --git a/src/GEOMImpl/GEOMImpl_I3DPrimOperations.hxx b/src/GEOMImpl/GEOMImpl_I3DPrimOperations.hxx index 5f1f52f36..6f1295b41 100644 --- a/src/GEOMImpl/GEOMImpl_I3DPrimOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_I3DPrimOperations.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOMImpl_I3DPrimOperations_HXX_ #define _GEOMImpl_I3DPrimOperations_HXX_ @@ -35,8 +36,17 @@ class GEOMImpl_I3DPrimOperations : public GEOM_IOperations { Standard_EXPORT Handle(GEOM_Object) MakeBoxDXDYDZ (double theDX, double theDY, double theDZ); Standard_EXPORT Handle(GEOM_Object) MakeBoxTwoPnt (Handle(GEOM_Object) thePnt1, - Handle(GEOM_Object) thePnt2); - + Handle(GEOM_Object) thePnt2); + Standard_EXPORT Handle(GEOM_Object) MakeFaceHW (double theH, double theW, int theOrientation); + Standard_EXPORT Handle(GEOM_Object) MakeFaceObjHW (Handle(GEOM_Object) theObj, + double theH, double theW); + Standard_EXPORT Handle(GEOM_Object) MakeDiskThreePnt (Handle(GEOM_Object) thePnt1, + Handle(GEOM_Object) thePnt2, + Handle(GEOM_Object) thePnt3); + Standard_EXPORT Handle(GEOM_Object) MakeDiskPntVecR (Handle(GEOM_Object) thePnt1, + Handle(GEOM_Object) theVec, + double theR); + Standard_EXPORT Handle(GEOM_Object) MakeDiskR (double theR, int theOrientation); Standard_EXPORT Handle(GEOM_Object) MakeCylinderRH (double theR, double theH); Standard_EXPORT Handle(GEOM_Object) MakeCylinderPntVecRH (Handle(GEOM_Object) thePnt, Handle(GEOM_Object) theVec, @@ -70,6 +80,12 @@ class GEOMImpl_I3DPrimOperations : public GEOM_IOperations { Handle(GEOM_Object) thePoint1, Handle(GEOM_Object) thePoint2); + Standard_EXPORT Handle(GEOM_Object) MakePrismDXDYDZ (Handle(GEOM_Object) theBase, + double theDX, double theDY, double theDZ); + + Standard_EXPORT Handle(GEOM_Object) MakePrismDXDYDZ2Ways (Handle(GEOM_Object) theBase, + double theDX, double theDY, double theDZ); + Standard_EXPORT Handle(GEOM_Object) MakePipe (Handle(GEOM_Object) theBase, Handle(GEOM_Object) thePath); @@ -109,6 +125,10 @@ class GEOMImpl_I3DPrimOperations : public GEOM_IOperations { const Handle(TColStd_HSequenceOfTransient)& theBases, const Handle(TColStd_HSequenceOfTransient)& theLocations); + Standard_EXPORT Handle(GEOM_Object) MakePipeBiNormalAlongVector (Handle(GEOM_Object) theBase, + Handle(GEOM_Object) thePath, + Handle(GEOM_Object) theVec); + }; #endif diff --git a/src/DlgRef/DlgRef_1Sel_Ext.h b/src/GEOMImpl/GEOMImpl_I3DSketcher.hxx old mode 100644 new mode 100755 similarity index 52% rename from src/DlgRef/DlgRef_1Sel_Ext.h rename to src/GEOMImpl/GEOMImpl_I3DSketcher.hxx index ff29a6216..dc4ea30f6 --- a/src/DlgRef/DlgRef_1Sel_Ext.h +++ b/src/GEOMImpl/GEOMImpl_I3DSketcher.hxx @@ -17,33 +17,27 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -/**************************************************************************** -** Form interface generated from reading ui file 'DlgRef_1Sel_QTD.ui' -** -** Created: lun sep 22 17:38:05 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef DlgRef_1Sel_Ext_H -#define DlgRef_1Sel_Ext_H +//NOTE: This is an interface to a function for the Sketcher creation. -#include "GEOM_DlgRef.hxx" -#include "DlgRef_1Sel_QTD.h" +#include "GEOM_Function.hxx" -class QGridLayout; +#include -class GEOM_DLGREF_EXPORT DlgRef_1Sel_Ext : public DlgRef_1Sel_QTD -{ - Q_OBJECT +#define SKETCH_ARG_COORDS 1 -public: - DlgRef_1Sel_Ext( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ) - : DlgRef_1Sel_QTD( parent, name, fl ) {}; - ~DlgRef_1Sel_Ext() {}; +class GEOMImpl_I3DSketcher +{ + public: - QGridLayout* getGroupBoxLayout() { return GroupBox1Layout; } + GEOMImpl_I3DSketcher(Handle(GEOM_Function) theFunction): _func(theFunction) {} + + void SetCoordinates(const Handle(TColStd_HArray1OfReal)& theValue) + { _func->SetRealArray(SKETCH_ARG_COORDS, theValue); } + + Handle(TColStd_HArray1OfReal) GetCoordinates() { return _func->GetRealArray(SKETCH_ARG_COORDS); } + + private: + + Handle(GEOM_Function) _func; }; - -#endif // DlgRef_1Sel_Ext_H diff --git a/src/GEOMImpl/GEOMImpl_IArc.hxx b/src/GEOMImpl/GEOMImpl_IArc.hxx index dc7372cd5..8aecd206c 100644 --- a/src/GEOMImpl/GEOMImpl_IArc.hxx +++ b/src/GEOMImpl/GEOMImpl_IArc.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Arc creation. - - +// #include "GEOM_Function.hxx" #define ARC_ARG_PI 1 diff --git a/src/GEOMImpl/GEOMImpl_IArchimede.hxx b/src/GEOMImpl/GEOMImpl_IArchimede.hxx index ca31fa31b..4b93c91f0 100644 --- a/src/GEOMImpl/GEOMImpl_IArchimede.hxx +++ b/src/GEOMImpl/GEOMImpl_IArchimede.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Archimede operation. - - +// #include "GEOM_Function.hxx" #define ARG_WEIGHT 1 diff --git a/src/GEOMImpl/GEOMImpl_IBasicOperations.cxx b/src/GEOMImpl/GEOMImpl_IBasicOperations.cxx index 08d1fde18..1594f5827 100644 --- a/src/GEOMImpl/GEOMImpl_IBasicOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IBasicOperations.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -231,6 +233,64 @@ Handle(GEOM_Object) GEOMImpl_IBasicOperations::MakePointOnCurve return aPoint; } + +//============================================================================= +/*! + * MakePointOnSurface + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_IBasicOperations::MakePointOnSurface + (Handle(GEOM_Object) theSurface, double theUParameter, double theVParameter) +{ + SetErrorCode(KO); + + if (theSurface.IsNull()) return NULL; + + //Add a new Point object + Handle(GEOM_Object) aPoint = GetEngine()->AddObject(GetDocID(), GEOM_POINT); + + //Add a new Point function for creation a point relativley another point + Handle(GEOM_Function) aFunction = aPoint->AddFunction(GEOMImpl_PointDriver::GetID(), + POINT_SURFACE_PAR); + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_PointDriver::GetID()) return NULL; + + GEOMImpl_IPoint aPI (aFunction); + + Handle(GEOM_Function) aRefFunction = theSurface->GetLastFunction(); + if (aRefFunction.IsNull()) return NULL; + + aPI.SetSurface(aRefFunction); + aPI.SetParameter(theUParameter); + aPI.SetParameter2(theVParameter); + + //Compute the point value + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Point driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump(aFunction) << aPoint << " = geompy.MakeVertexOnSurface(" + << theSurface << ", " << theUParameter + << ", " << theVParameter << ")"; + + SetErrorCode(OK); + return aPoint; +} + + //============================================================================= /*! * MakePointOnLinesIntersection diff --git a/src/GEOMImpl/GEOMImpl_IBasicOperations.hxx b/src/GEOMImpl/GEOMImpl_IBasicOperations.hxx index e6155178b..16c4af6ea 100644 --- a/src/GEOMImpl/GEOMImpl_IBasicOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_IBasicOperations.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOMImpl_IBasicOperations_HXX_ #define _GEOMImpl_IBasicOperations_HXX_ @@ -44,6 +45,10 @@ class GEOMImpl_IBasicOperations : public GEOM_IOperations { Standard_EXPORT Handle(GEOM_Object) MakePointOnLinesIntersection (Handle(GEOM_Object) theLine1, Handle(GEOM_Object) theLine2); + Standard_EXPORT Handle(GEOM_Object) MakePointOnSurface (Handle(GEOM_Object) theSurface, + double theUParameter, + double theVParameter); + // Vector Standard_EXPORT Handle(GEOM_Object) MakeVectorDXDYDZ (double theDX, double theDY, double theDZ); diff --git a/src/GEOMImpl/GEOMImpl_IBlockTrsf.hxx b/src/GEOMImpl/GEOMImpl_IBlockTrsf.hxx index 0c5eac84a..b6827133d 100644 --- a/src/GEOMImpl/GEOMImpl_IBlockTrsf.hxx +++ b/src/GEOMImpl/GEOMImpl_IBlockTrsf.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an interface to a function for the Blocks Multi-Transformations. - - +// #include "GEOM_Function.hxx" #define TRSF_ORIGIN 1 diff --git a/src/GEOMImpl/GEOMImpl_IBlocks.hxx b/src/GEOMImpl/GEOMImpl_IBlocks.hxx index f32575c30..dac943bd2 100644 --- a/src/GEOMImpl/GEOMImpl_IBlocks.hxx +++ b/src/GEOMImpl/GEOMImpl_IBlocks.hxx @@ -1,26 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // NOTE: This is an interface to a function for the Blocks // creation and transformation. - - +// #include "GEOM_Function.hxx" #include "TColStd_HSequenceOfTransient.hxx" diff --git a/src/GEOMImpl/GEOMImpl_IBlocksOperations.cxx b/src/GEOMImpl/GEOMImpl_IBlocksOperations.cxx index 22032807a..590881408 100644 --- a/src/GEOMImpl/GEOMImpl_IBlocksOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IBlocksOperations.cxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifdef WNT #pragma warning( disable:4786 ) #endif -using namespace std; - #include #include @@ -1925,7 +1925,7 @@ Standard_Boolean HasAnyConnection (const Standard_Integer theBlockIndex, //============================================================================= Standard_Boolean GEOMImpl_IBlocksOperations::CheckCompoundOfBlocksOld (Handle(GEOM_Object) theCompound, - list& theErrors) + std::list& theErrors) { SetErrorCode(KO); @@ -2077,11 +2077,11 @@ Standard_Boolean GEOMImpl_IBlocksOperations::CheckCompoundOfBlocksOld //============================================================================= TCollection_AsciiString GEOMImpl_IBlocksOperations::PrintBCErrors (Handle(GEOM_Object) theCompound, - const list& theErrors) + const std::list& theErrors) { TCollection_AsciiString aDescr; - list::const_iterator errIt = theErrors.begin(); + std::list::const_iterator errIt = theErrors.begin(); int i = 0; for (; errIt != theErrors.end(); i++, errIt++) { BCError errStruct = *errIt; @@ -2106,8 +2106,8 @@ TCollection_AsciiString GEOMImpl_IBlocksOperations::PrintBCErrors break; } - list sshList = errStruct.incriminated; - list::iterator sshIt = sshList.begin(); + std::list sshList = errStruct.incriminated; + std::list::iterator sshIt = sshList.begin(); int jj = 0; for (; sshIt != sshList.end(); jj++, sshIt++) { if (jj > 0) @@ -2126,7 +2126,7 @@ TCollection_AsciiString GEOMImpl_IBlocksOperations::PrintBCErrors //============================================================================= Standard_Boolean GEOMImpl_IBlocksOperations::CheckCompoundOfBlocks (Handle(GEOM_Object) theCompound, - list& theErrors) + std::list& theErrors) { SetErrorCode(KO); diff --git a/src/GEOMImpl/GEOMImpl_IBlocksOperations.hxx b/src/GEOMImpl/GEOMImpl_IBlocksOperations.hxx index 8248df00f..449c36f51 100644 --- a/src/GEOMImpl/GEOMImpl_IBlocksOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_IBlocksOperations.hxx @@ -1,28 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOMImpl_IBlocksOperations_HXX_ #define _GEOMImpl_IBlocksOperations_HXX_ -using namespace std; - #include "GEOM_IOperations.hxx" #include @@ -114,17 +113,17 @@ class GEOMImpl_IBlocksOperations : public GEOM_IOperations { struct BCError { BCErrorType error; - list incriminated; + std::list incriminated; }; Standard_EXPORT Standard_Boolean CheckCompoundOfBlocksOld (Handle(GEOM_Object) theCompound, - list& theErrors); + std::list& theErrors); Standard_EXPORT Standard_Boolean CheckCompoundOfBlocks (Handle(GEOM_Object) theCompound, - list& theErrors); + std::list& theErrors); Standard_EXPORT TCollection_AsciiString PrintBCErrors (Handle(GEOM_Object) theCompound, - const list& theErrors); + const std::list& theErrors); Standard_EXPORT Handle(GEOM_Object) RemoveExtraEdges (Handle(GEOM_Object) theShape); diff --git a/src/GEOMImpl/GEOMImpl_IBoolean.hxx b/src/GEOMImpl/GEOMImpl_IBoolean.hxx index 302ecfc44..871b58caa 100644 --- a/src/GEOMImpl/GEOMImpl_IBoolean.hxx +++ b/src/GEOMImpl/GEOMImpl_IBoolean.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Common, Cut and Fuse creation. - - +// #include "GEOM_Function.hxx" #define BOOL_ARG_SHAPE1 1 diff --git a/src/GEOMImpl/GEOMImpl_IBooleanOperations.cxx b/src/GEOMImpl/GEOMImpl_IBooleanOperations.cxx index f5c4040a1..bae1dd0c6 100644 --- a/src/GEOMImpl/GEOMImpl_IBooleanOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IBooleanOperations.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_IBooleanOperations.hxx b/src/GEOMImpl/GEOMImpl_IBooleanOperations.hxx index 6dc82d7be..7e99fa82f 100644 --- a/src/GEOMImpl/GEOMImpl_IBooleanOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_IBooleanOperations.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOMImpl_IBooleanOperations_HXX_ #define _GEOMImpl_IBooleanOperations_HXX_ diff --git a/src/GEOMImpl/GEOMImpl_IBox.hxx b/src/GEOMImpl/GEOMImpl_IBox.hxx index 7ce2152a8..81445ab6e 100644 --- a/src/GEOMImpl/GEOMImpl_IBox.hxx +++ b/src/GEOMImpl/GEOMImpl_IBox.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Box creation. - - +// #include "GEOM_Function.hxx" #define BOX_ARG_DX 1 diff --git a/src/GEOMImpl/GEOMImpl_IChamfer.hxx b/src/GEOMImpl/GEOMImpl_IChamfer.hxx index 17f7e5afc..32f43fa17 100644 --- a/src/GEOMImpl/GEOMImpl_IChamfer.hxx +++ b/src/GEOMImpl/GEOMImpl_IChamfer.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an interface to a function for the Chamfer and creation. - - +// #include "GEOM_Function.hxx" #define CHAM_ARG_SH 1 diff --git a/src/GEOMImpl/GEOMImpl_ICircle.hxx b/src/GEOMImpl/GEOMImpl_ICircle.hxx index ab44ba5d7..e5d466a8a 100644 --- a/src/GEOMImpl/GEOMImpl_ICircle.hxx +++ b/src/GEOMImpl/GEOMImpl_ICircle.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Circle creation. - - +// #include "GEOM_Function.hxx" #define CIRC_ARG_P1 1 diff --git a/src/GEOMImpl/GEOMImpl_ICone.hxx b/src/GEOMImpl/GEOMImpl_ICone.hxx index bce989a92..f927a59c7 100644 --- a/src/GEOMImpl/GEOMImpl_ICone.hxx +++ b/src/GEOMImpl/GEOMImpl_ICone.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Cone creation. - - +// #include "GEOM_Function.hxx" #define CONE_ARG_R1 1 diff --git a/src/GEOMImpl/GEOMImpl_ICopy.hxx b/src/GEOMImpl/GEOMImpl_ICopy.hxx index 09b9ee001..a9c4ad251 100644 --- a/src/GEOMImpl/GEOMImpl_ICopy.hxx +++ b/src/GEOMImpl/GEOMImpl_ICopy.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Copy operation. - - +// #include "GEOM_Function.hxx" #define COPY_ARG_REF 1 diff --git a/src/GEOMImpl/GEOMImpl_ICurvesOperations.cxx b/src/GEOMImpl/GEOMImpl_ICurvesOperations.cxx index d6628ca43..6a6b8f9ef 100644 --- a/src/GEOMImpl/GEOMImpl_ICurvesOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_ICurvesOperations.cxx @@ -1,26 +1,30 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include #include +#include + #include #include @@ -32,6 +36,7 @@ #include #include #include +#include #include #include @@ -39,6 +44,7 @@ #include #include #include +#include #include "utilities.h" @@ -266,7 +272,9 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeCirclePntVecR { SetErrorCode(KO); - if (thePnt.IsNull() || theVec.IsNull()) return NULL; + // Not set thePnt means origin of global CS, + // Not set theVec means Z axis of global CS + //if (thePnt.IsNull() || theVec.IsNull()) return NULL; //Add a new Circle object Handle(GEOM_Object) aCircle = GetEngine()->AddObject(GetDocID(), GEOM_CIRCLE); @@ -281,13 +289,18 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeCirclePntVecR GEOMImpl_ICircle aCI (aFunction); - Handle(GEOM_Function) aRefPnt = thePnt->GetLastFunction(); - Handle(GEOM_Function) aRefVec = theVec->GetLastFunction(); + if (!thePnt.IsNull()) { + Handle(GEOM_Function) aRefPnt = thePnt->GetLastFunction(); + if (aRefPnt.IsNull()) return NULL; + aCI.SetCenter(aRefPnt); + } - if (aRefPnt.IsNull() || aRefVec.IsNull()) return NULL; + if (!theVec.IsNull()) { + Handle(GEOM_Function) aRefVec = theVec->GetLastFunction(); + if (aRefVec.IsNull()) return NULL; + aCI.SetVector(aRefVec); + } - aCI.SetCenter(aRefPnt); - aCI.SetVector(aRefVec); aCI.SetRadius(theR); //Compute the Circle value @@ -325,7 +338,9 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeEllipse { SetErrorCode(KO); - if (thePnt.IsNull() || theVec.IsNull()) return NULL; + // Not set thePnt means origin of global CS, + // Not set theVec means Z axis of global CS + //if (thePnt.IsNull() || theVec.IsNull()) return NULL; //Add a new Ellipse object Handle(GEOM_Object) anEll = GetEngine()->AddObject(GetDocID(), GEOM_ELLIPSE); @@ -340,13 +355,18 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeEllipse GEOMImpl_IEllipse aCI (aFunction); - Handle(GEOM_Function) aRefPnt = thePnt->GetLastFunction(); - Handle(GEOM_Function) aRefVec = theVec->GetLastFunction(); + if (!thePnt.IsNull()) { + Handle(GEOM_Function) aRefPnt = thePnt->GetLastFunction(); + if (aRefPnt.IsNull()) return NULL; + aCI.SetCenter(aRefPnt); + } - if (aRefPnt.IsNull() || aRefVec.IsNull()) return NULL; + if (!theVec.IsNull()) { + Handle(GEOM_Function) aRefVec = theVec->GetLastFunction(); + if (aRefVec.IsNull()) return NULL; + aCI.SetVector(aRefVec); + } - aCI.SetCenter(aRefPnt); - aCI.SetVector(aRefVec); aCI.SetRMajor(theRMajor); aCI.SetRMinor(theRMinor); @@ -495,6 +515,67 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeArcCenter (Handle(GEOM_Objec return anArc; } +//============================================================================= +/*! + * MakeArcOfEllipse + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeArcOfEllipse (Handle(GEOM_Object) thePnt1, + Handle(GEOM_Object) thePnt2, + Handle(GEOM_Object) thePnt3) +{ + SetErrorCode(KO); + + if (thePnt1.IsNull() || thePnt2.IsNull() || thePnt3.IsNull()) return NULL; + + //Add a new Circle Arc object + Handle(GEOM_Object) anArc = GetEngine()->AddObject(GetDocID(), GEOM_ELLIPSE_ARC); + + //Add a new Circle Arc function + Handle(GEOM_Function) aFunction = + anArc->AddFunction(GEOMImpl_ArcDriver::GetID(), ELLIPSE_ARC_CENTER_TWO_PNT); + + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_ArcDriver::GetID()) return NULL; + GEOMImpl_IArc aCI (aFunction); + + Handle(GEOM_Function) aRefPnt1 = thePnt1->GetLastFunction(); + Handle(GEOM_Function) aRefPnt2 = thePnt2->GetLastFunction(); + Handle(GEOM_Function) aRefPnt3 = thePnt3->GetLastFunction(); + + + if (aRefPnt1.IsNull() || aRefPnt2.IsNull() || aRefPnt3.IsNull()) return NULL; + + aCI.SetPoint1(aRefPnt1); + aCI.SetPoint2(aRefPnt2); + aCI.SetPoint3(aRefPnt3); + + //Compute the Arc value + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Arc driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump(aFunction) << anArc << " = geompy.MakeArcOfEllipse(" + << thePnt1 << ", " << thePnt2 << ", " << thePnt3 << ")"; + + SetErrorCode(OK); + return anArc; +} + //============================================================================= /*! * MakeSplineBezier @@ -634,13 +715,12 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSplineInterpolation * MakeSketcher */ //============================================================================= -Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcher - (const TCollection_AsciiString& theCommand, - list theWorkingPlane) +Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcher (const char* theCommand, + list theWorkingPlane) { SetErrorCode(KO); - if (theCommand.IsEmpty()) return NULL; + if (!theCommand || strcmp(theCommand, "") == 0) return NULL; //Add a new Sketcher object Handle(GEOM_Object) aSketcher = GetEngine()->AddObject(GetDocID(), GEOM_SKETCHER); @@ -655,7 +735,8 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcher GEOMImpl_ISketcher aCI (aFunction); - aCI.SetCommand(theCommand); + TCollection_AsciiString aCommand((char*) theCommand); + aCI.SetCommand(aCommand); int ind = 1; list::iterator it = theWorkingPlane.begin(); @@ -680,7 +761,7 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcher //Make a Python command GEOM::TPythonDump pd (aFunction); - pd << aSketcher << " = geompy.MakeSketcher(\"" << theCommand.ToCString() << "\", ["; + pd << aSketcher << " = geompy.MakeSketcher(\"" << aCommand.ToCString() << "\", ["; it = theWorkingPlane.begin(); pd << (*it++); @@ -693,18 +774,85 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcher return aSketcher; } +//============================================================================= +/*! + * Make3DSketcher + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_ICurvesOperations::Make3DSketcher (list theCoordinates) +{ + SetErrorCode(KO); + + //Add a new Sketcher object + Handle(GEOM_Object) a3DSketcher = GetEngine()->AddObject(GetDocID(), GEOM_3DSKETCHER); + + //Add a new Sketcher function + Handle(GEOM_Function) aFunction = + a3DSketcher->AddFunction(GEOMImpl_3DSketcherDriver::GetID(), GEOM_3DSKETCHER); + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_3DSketcherDriver::GetID()) return NULL; + + GEOMImpl_I3DSketcher aCI (aFunction); + + int nbOfCoords = 0; + list::iterator it = theCoordinates.begin(); + for (; it != theCoordinates.end(); it++) + nbOfCoords++; + + Handle(TColStd_HArray1OfReal) aCoordsArray = new TColStd_HArray1OfReal (1, nbOfCoords); + + it = theCoordinates.begin(); + int ind = 1; + for (; it != theCoordinates.end(); it++, ind++) + aCoordsArray->SetValue(ind, *it); + + aCI.SetCoordinates(aCoordsArray); + + //Compute the Sketcher value + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("3D Sketcher driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump pd (aFunction); + pd << a3DSketcher << " = geompy.Make3DSketcher(["; + + it = theCoordinates.begin(); + pd << (*it++); + while (it != theCoordinates.end()) { + pd << ", " << (*it++); + } + pd << "])"; + + SetErrorCode(OK); + return a3DSketcher; +} + //============================================================================= /*! * MakeSketcherOnPlane */ //============================================================================= Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcherOnPlane - (const TCollection_AsciiString& theCommand, + (const char* theCommand, Handle(GEOM_Object) theWorkingPlane) { SetErrorCode(KO); - if (theCommand.IsEmpty()) return NULL; + if (!theCommand || strcmp(theCommand, "") == 0) return NULL; //Add a new Sketcher object Handle(GEOM_Object) aSketcher = GetEngine()->AddObject(GetDocID(), GEOM_SKETCHER); @@ -718,7 +866,9 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcherOnPlane if (aFunction->GetDriverGUID() != GEOMImpl_SketcherDriver::GetID()) return NULL; GEOMImpl_ISketcher aCI (aFunction); - aCI.SetCommand(theCommand); + + TCollection_AsciiString aCommand((char*) theCommand); + aCI.SetCommand(aCommand); Handle(GEOM_Function) aRefPlane = theWorkingPlane->GetLastFunction(); if (aRefPlane.IsNull()) return NULL; @@ -742,7 +892,7 @@ Handle(GEOM_Object) GEOMImpl_ICurvesOperations::MakeSketcherOnPlane //Make a Python command GEOM::TPythonDump (aFunction) << aSketcher << " = geompy.MakeSketcherOnPlane(\"" - << theCommand.ToCString() << "\", " << theWorkingPlane << " )"; + << aCommand.ToCString() << "\", " << theWorkingPlane << " )"; SetErrorCode(OK); return aSketcher; diff --git a/src/GEOMImpl/GEOMImpl_ICurvesOperations.hxx b/src/GEOMImpl/GEOMImpl_ICurvesOperations.hxx index 34bb01148..7380a0977 100644 --- a/src/GEOMImpl/GEOMImpl_ICurvesOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_ICurvesOperations.hxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // using namespace std; @@ -60,12 +62,17 @@ class GEOMImpl_ICurvesOperations : public GEOM_IOperations { Handle(GEOM_Object) thePnt3, bool theSense); + Standard_EXPORT Handle(GEOM_Object) MakeArcOfEllipse (Handle(GEOM_Object) thePnt1, + Handle(GEOM_Object) thePnt2, + Handle(GEOM_Object) thePnt3); + Standard_EXPORT Handle(GEOM_Object) MakeSplineBezier (list thePoints); Standard_EXPORT Handle(GEOM_Object) MakeSplineInterpolation (list thePoints); - Standard_EXPORT Handle(GEOM_Object) MakeSketcher (const TCollection_AsciiString& theCommand, + Standard_EXPORT Handle(GEOM_Object) MakeSketcher (const char* theCommand, list theWorkingPlane); - Standard_EXPORT Handle(GEOM_Object) MakeSketcherOnPlane (const TCollection_AsciiString& theCommand, + Standard_EXPORT Handle(GEOM_Object) Make3DSketcher (list theCoordinates); + Standard_EXPORT Handle(GEOM_Object) MakeSketcherOnPlane (const char* theCommand, Handle(GEOM_Object) theWorkingPlane); }; diff --git a/src/GEOMImpl/GEOMImpl_ICylinder.hxx b/src/GEOMImpl/GEOMImpl_ICylinder.hxx index e71b4f5d5..735668007 100644 --- a/src/GEOMImpl/GEOMImpl_ICylinder.hxx +++ b/src/GEOMImpl/GEOMImpl_ICylinder.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Cylinder creation. - - +// #include "GEOM_Function.hxx" #define CYL_ARG_R 1 diff --git a/src/GEOMImpl/GEOMImpl_IDisk.hxx b/src/GEOMImpl/GEOMImpl_IDisk.hxx new file mode 100755 index 000000000..3102ea484 --- /dev/null +++ b/src/GEOMImpl/GEOMImpl_IDisk.hxx @@ -0,0 +1,65 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +//NOTE: This is an intreface to a function for the Disk creation. +// +#include "GEOM_Function.hxx" + +#define DISK_ARG_P1 1 +#define DISK_ARG_P2 2 +#define DISK_ARG_P3 3 + +#define DISK_ARG_CC 4 +#define DISK_ARG_VV 5 +#define DISK_ARG_RR 6 + +#define DISK_ARG_ORIENT 7 + +class GEOMImpl_IDisk +{ + public: + + GEOMImpl_IDisk(Handle(GEOM_Function) theFunction): _func(theFunction) {} + + void SetPoint1(Handle(GEOM_Function) theP) { _func->SetReference(DISK_ARG_P1, theP); } + void SetPoint2(Handle(GEOM_Function) theP) { _func->SetReference(DISK_ARG_P2, theP); } + void SetPoint3(Handle(GEOM_Function) theP) { _func->SetReference(DISK_ARG_P3, theP); } + + void SetCenter(Handle(GEOM_Function) theP) { _func->SetReference(DISK_ARG_CC, theP); } + void SetVector(Handle(GEOM_Function) theV) { _func->SetReference(DISK_ARG_VV, theV); } + + void SetRadius(double theR) { _func->SetReal(DISK_ARG_RR, theR); } + void SetOrientation(double theO) { _func->SetReal(DISK_ARG_ORIENT, theO); } + + Handle(GEOM_Function) GetPoint1() { return _func->GetReference(DISK_ARG_P1); } + Handle(GEOM_Function) GetPoint2() { return _func->GetReference(DISK_ARG_P2); } + Handle(GEOM_Function) GetPoint3() { return _func->GetReference(DISK_ARG_P3); } + + Handle(GEOM_Function) GetCenter() { return _func->GetReference(DISK_ARG_CC); } + Handle(GEOM_Function) GetVector() { return _func->GetReference(DISK_ARG_VV); } + + double GetRadius() { return _func->GetReal(DISK_ARG_RR); } + double GetOrientation() { return _func->GetReal(DISK_ARG_ORIENT); } + + private: + + Handle(GEOM_Function) _func; +}; diff --git a/src/GEOMImpl/GEOMImpl_IEllipse.hxx b/src/GEOMImpl/GEOMImpl_IEllipse.hxx index a87713518..8a199e760 100644 --- a/src/GEOMImpl/GEOMImpl_IEllipse.hxx +++ b/src/GEOMImpl/GEOMImpl_IEllipse.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Ellipse creation. - - +// #include "GEOM_Function.hxx" #define ELLIPS_ARG_CC 1 diff --git a/src/GEOMImpl/GEOMImpl_IFace.hxx b/src/GEOMImpl/GEOMImpl_IFace.hxx new file mode 100755 index 000000000..6782c0891 --- /dev/null +++ b/src/GEOMImpl/GEOMImpl_IFace.hxx @@ -0,0 +1,54 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +//NOTE: This is an intreface to a function for the Face creation. +// +#include "GEOM_Function.hxx" + +#define FACE_ARG_REF1 1 +#define FACE_ARG_ORIENT 2 + +#define FACE_ARG_PLANE 4 +#define FACE_ARG_H 5 +#define FACE_ARG_W 6 + +class GEOMImpl_IFace +{ + public: + + GEOMImpl_IFace(Handle(GEOM_Function) theFunction): _func(theFunction) {} + + void SetRef1(Handle(GEOM_Function) theRefPoint1) { _func->SetReference(FACE_ARG_REF1, theRefPoint1); } + Handle(GEOM_Function) GetRef1() { return _func->GetReference(FACE_ARG_REF1); } + + void SetOrientation(int theOrientation) { _func->SetReal(FACE_ARG_ORIENT, theOrientation); } + int GetOrientation() { return _func->GetReal(FACE_ARG_ORIENT); } + + void SetH(double theH) { _func->SetReal(FACE_ARG_H, theH); } + void SetW(double theW) { _func->SetReal(FACE_ARG_W, theW); } + + double GetH() { return _func->GetReal(FACE_ARG_H); } + double GetW() { return _func->GetReal(FACE_ARG_W); } + + private: + + Handle(GEOM_Function) _func; +}; diff --git a/src/GEOMImpl/GEOMImpl_IFillet.hxx b/src/GEOMImpl/GEOMImpl_IFillet.hxx index f9deb9b86..975670a8c 100644 --- a/src/GEOMImpl/GEOMImpl_IFillet.hxx +++ b/src/GEOMImpl/GEOMImpl_IFillet.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an interface to a function for the Fillet and creation. - - +// #include "GEOM_Function.hxx" #define FILLET_ARG_SH 1 diff --git a/src/GEOMImpl/GEOMImpl_IFillet2d.hxx b/src/GEOMImpl/GEOMImpl_IFillet2d.hxx new file mode 100755 index 000000000..ba67a6a18 --- /dev/null +++ b/src/GEOMImpl/GEOMImpl_IFillet2d.hxx @@ -0,0 +1,51 @@ +// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +//NOTE: This is an interface to a function for the Fillet2d and creation. + + +#include "GEOM_Function.hxx" + +#define FILLET2D_ARG_SH 1 +#define FILLET2D_ARG_R 2 +#define FILLET2D_ARG_LENG 3 +#define FILLET2D_ARG_LAST 4 + +class GEOMImpl_IFillet2d +{ + public: + + GEOMImpl_IFillet2d(Handle(GEOM_Function) theFunction): _func(theFunction) {} + + void SetShape(Handle(GEOM_Function) theRef) { _func->SetReference(FILLET2D_ARG_SH, theRef); } + Handle(GEOM_Function) GetShape() { return _func->GetReference(FILLET2D_ARG_SH); } + + void SetR(double theR) { _func->SetReal(FILLET2D_ARG_R, theR); } + void SetLength(int theLen) { _func->SetInteger(FILLET2D_ARG_LENG, theLen); } + void SetVertex(int theInd, int theVertex) + { _func->SetInteger(FILLET2D_ARG_LAST + theInd, theVertex); } + + double GetR() { return _func->GetReal(FILLET2D_ARG_R); } + int GetLength() { return _func->GetInteger(FILLET2D_ARG_LENG); } + int GetVertex(int theInd) { return _func->GetInteger(FILLET2D_ARG_LAST + theInd); } + + private: + + Handle(GEOM_Function) _func; +}; diff --git a/src/GEOMImpl/GEOMImpl_IFilling.hxx b/src/GEOMImpl/GEOMImpl_IFilling.hxx index f8fbae645..491555e48 100644 --- a/src/GEOMImpl/GEOMImpl_IFilling.hxx +++ b/src/GEOMImpl/GEOMImpl_IFilling.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Filling operation. - - +// #include "GEOM_Function.hxx" #define FILL_ARG_MINDEG 1 diff --git a/src/GEOMImpl/GEOMImpl_IGlue.hxx b/src/GEOMImpl/GEOMImpl_IGlue.hxx index e6e269221..1ee1515d0 100644 --- a/src/GEOMImpl/GEOMImpl_IGlue.hxx +++ b/src/GEOMImpl/GEOMImpl_IGlue.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // NOTE: This is an interface to a function for the Glueing of faces - - +// #include "GEOM_Function.hxx" #include diff --git a/src/GEOMImpl/GEOMImpl_IGroupOperations.cxx b/src/GEOMImpl/GEOMImpl_IGroupOperations.cxx index f9c99baa1..1c0a5c1e6 100644 --- a/src/GEOMImpl/GEOMImpl_IGroupOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IGroupOperations.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_IGroupOperations.hxx b/src/GEOMImpl/GEOMImpl_IGroupOperations.hxx index 9629b5912..272d2c532 100644 --- a/src/GEOMImpl/GEOMImpl_IGroupOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_IGroupOperations.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOMImpl_IGroupOperations_HXX_ #define _GEOMImpl_IGroupOperations_HXX_ diff --git a/src/GEOMImpl/GEOMImpl_IHealing.hxx b/src/GEOMImpl/GEOMImpl_IHealing.hxx index 8e52151ca..62e53e804 100755 --- a/src/GEOMImpl/GEOMImpl_IHealing.hxx +++ b/src/GEOMImpl/GEOMImpl_IHealing.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Healing creation. - - +// #include "GEOM_Function.hxx" #include diff --git a/src/GEOMImpl/GEOMImpl_IHealingOperations.cxx b/src/GEOMImpl/GEOMImpl_IHealingOperations.cxx index bf9a60316..6057b7a37 100644 --- a/src/GEOMImpl/GEOMImpl_IHealingOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IHealingOperations.cxx @@ -1,31 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - - - #ifdef WNT #pragma warning( disable:4786 ) #endif -using namespace std; - #include #include @@ -192,9 +189,9 @@ Handle(GEOM_Object) GEOMImpl_IHealingOperations::ShapeProcess (Handle(GEOM_Objec * ShapeProcess */ //============================================================================= -void GEOMImpl_IHealingOperations::GetShapeProcessParameters (list& theOperations, - list& theParams, - list& theValues) +void GEOMImpl_IHealingOperations::GetShapeProcessParameters (std::list& theOperations, + std::list& theParams, + std::list& theValues) { ShHealOper_ShapeProcess aHealer; TColStd_SequenceOfAsciiString anOperators; @@ -203,7 +200,7 @@ void GEOMImpl_IHealingOperations::GetShapeProcessParameters (list& theOp { for ( Standard_Integer i = 1; i <= anOperators.Length(); i++ ) { - string anOperation = anOperators.Value( i ).ToCString(); + std::string anOperation = anOperators.Value( i ).ToCString(); if ( GetOperatorParameters( anOperation, theParams, theValues ) ) theOperations.push_back( anOperation ); else @@ -227,15 +224,15 @@ void GEOMImpl_IHealingOperations::GetShapeProcessParameters (list& theOp * GetOperatorParameters */ //============================================================================= -bool GEOMImpl_IHealingOperations::GetOperatorParameters( const string theOperation, - list& theParams, - list& theValues ) +bool GEOMImpl_IHealingOperations::GetOperatorParameters( const std::string theOperation, + std::list& theParams, + std::list& theValues ) { ShHealOper_ShapeProcess aHealer; int nbParamValueErrors( 0 ); - list aParams; + std::list aParams; if ( GetParameters( theOperation, aParams ) ) { - for ( list::iterator it = aParams.begin(); it != aParams.end(); ++it ) { + for ( std::list::iterator it = aParams.begin(); it != aParams.end(); ++it ) { TCollection_AsciiString aParam( (Standard_CString)(*it).c_str() ); TCollection_AsciiString aValue; if ( aHealer.GetParameter( aParam, aValue ) ) { @@ -263,8 +260,8 @@ bool GEOMImpl_IHealingOperations::GetOperatorParameters( const string theOperati * GetParameters */ //============================================================================= -bool GEOMImpl_IHealingOperations::GetParameters (const string theOperation, - list& theParams) +bool GEOMImpl_IHealingOperations::GetParameters (const std::string theOperation, + std::list& theParams) { if ( theOperation == "SplitAngle" ) { theParams.push_back( "SplitAngle.Angle" ); diff --git a/src/GEOMImpl/GEOMImpl_IHealingOperations.hxx b/src/GEOMImpl/GEOMImpl_IHealingOperations.hxx index 119873d19..9be4f44f5 100644 --- a/src/GEOMImpl/GEOMImpl_IHealingOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_IHealingOperations.hxx @@ -1,25 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - -using namespace std; - #ifndef _GEOMImpl_IHealingOperations_HXX_ #define _GEOMImpl_IHealingOperations_HXX_ @@ -44,17 +43,17 @@ class GEOMImpl_IHealingOperations : public GEOM_IOperations { const Handle(TColStd_HArray1OfExtendedString)& theValues ); // Retrieve default Shape Process parameters (from resource file) - Standard_EXPORT void GetShapeProcessParameters( list& theOperations, - list& theParams, - list& theValues ); + Standard_EXPORT void GetShapeProcessParameters( std::list& theOperations, + std::list& theParams, + std::list& theValues ); // Retrieve default Shape Process parameters for given operator - Standard_EXPORT bool GetOperatorParameters( const string theOperation, - list& theParams, - list& theValues ); + Standard_EXPORT bool GetOperatorParameters( const std::string theOperation, + std::list& theParams, + std::list& theValues ); // returns all parameters that are valid for the given operation (Shape Process operator) - Standard_EXPORT static bool GetParameters( const string theOperation, list& theParams ); + Standard_EXPORT static bool GetParameters( const std::string theOperation, std::list& theParams ); Standard_EXPORT Handle(GEOM_Object) SuppressFaces( Handle(GEOM_Object) theObject, const Handle(TColStd_HArray1OfInteger)& theFaces); diff --git a/src/GEOMImpl/GEOMImpl_IImportExport.hxx b/src/GEOMImpl/GEOMImpl_IImportExport.hxx index 3ead28531..731e637ec 100644 --- a/src/GEOMImpl/GEOMImpl_IImportExport.hxx +++ b/src/GEOMImpl/GEOMImpl_IImportExport.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Import Export operation. - - +// #include "GEOM_Function.hxx" #define EXP_ARG_REF 1 diff --git a/src/GEOMImpl/GEOMImpl_IInsertOperations.cxx b/src/GEOMImpl/GEOMImpl_IInsertOperations.cxx index 9339f4a47..5fb461ff7 100644 --- a/src/GEOMImpl/GEOMImpl_IInsertOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IInsertOperations.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -163,7 +165,7 @@ void GEOMImpl_IInsertOperations::Export OCC_CATCH_SIGNALS; #endif if (!GetSolver()->ComputeFunction(aFunction)) { - SetErrorCode("Export driver failed"); + SetErrorCode("Not enough space on disk, or you haven't permissions to write this directory"); return; } } diff --git a/src/GEOMImpl/GEOMImpl_IInsertOperations.hxx b/src/GEOMImpl/GEOMImpl_IInsertOperations.hxx index 7660da21e..aba0c227f 100644 --- a/src/GEOMImpl/GEOMImpl_IInsertOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_IInsertOperations.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOMImpl_IInsertOperations_HXX_ #define _GEOMImpl_IInsertOperations_HXX_ diff --git a/src/GEOMImpl/GEOMImpl_ILine.hxx b/src/GEOMImpl/GEOMImpl_ILine.hxx index 99a60b778..faa1d462c 100644 --- a/src/GEOMImpl/GEOMImpl_ILine.hxx +++ b/src/GEOMImpl/GEOMImpl_ILine.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the vector creation. - - +// #include "GEOM_Function.hxx" #define LINE_ARG_PNT1 1 diff --git a/src/GEOMImpl/GEOMImpl_ILocalOperations.cxx b/src/GEOMImpl/GEOMImpl_ILocalOperations.cxx index 2ec4e5e39..9e552229a 100644 --- a/src/GEOMImpl/GEOMImpl_ILocalOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_ILocalOperations.cxx @@ -1,25 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - -using namespace std; - #include #include @@ -30,9 +29,11 @@ using namespace std; #include #include +#include #include #include +#include #include #include @@ -138,7 +139,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletAll */ //============================================================================= Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdges - (Handle(GEOM_Object) theShape, double theR, list theEdges) + (Handle(GEOM_Object) theShape, double theR, std::list theEdges) { SetErrorCode(KO); @@ -164,7 +165,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdges aCI.SetLength(aLen); int ind = 1; - list::iterator it = theEdges.begin(); + std::list::iterator it = theEdges.begin(); for (; it != theEdges.end(); it++, ind++) { aCI.SetEdge(ind, (*it)); } @@ -207,7 +208,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdges */ //============================================================================= Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdgesR1R2 - (Handle(GEOM_Object) theShape, double theR1, double theR2, list theEdges) + (Handle(GEOM_Object) theShape, double theR1, double theR2, std::list theEdges) { SetErrorCode(KO); @@ -234,7 +235,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdgesR1R2 aCI.SetLength(aLen); int ind = 1; - list::iterator it = theEdges.begin(); + std::list::iterator it = theEdges.begin(); for (; it != theEdges.end(); it++, ind++) { aCI.SetEdge(ind, (*it)); } @@ -278,7 +279,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletEdgesR1R2 */ //============================================================================= Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFaces - (Handle(GEOM_Object) theShape, double theR, list theFaces) + (Handle(GEOM_Object) theShape, double theR, std::list theFaces) { SetErrorCode(KO); @@ -304,7 +305,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFaces aCI.SetLength(aLen); int ind = 1; - list::iterator it = theFaces.begin(); + std::list::iterator it = theFaces.begin(); for (; it != theFaces.end(); it++, ind++) { aCI.SetFace(ind, (*it)); } @@ -347,7 +348,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFaces */ //============================================================================= Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFacesR1R2 - (Handle(GEOM_Object) theShape, double theR1, double theR2, list theFaces) + (Handle(GEOM_Object) theShape, double theR1, double theR2, std::list theFaces) { SetErrorCode(KO); @@ -374,7 +375,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFacesR1R2 aCI.SetLength(aLen); int ind = 1; - list::iterator it = theFaces.begin(); + std::list::iterator it = theFaces.begin(); for (; it != theFaces.end(); it++, ind++) { aCI.SetFace(ind, (*it)); } @@ -411,6 +412,75 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFilletFacesR1R2 return aFillet; } +//============================================================================= +/*! + * MakeFillet2D + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeFillet2D + (Handle(GEOM_Object) theShape, double theR, std::list theVertexes) +{ + SetErrorCode(KO); + + //Add a new Fillet object + Handle(GEOM_Object) aFillet2D = GetEngine()->AddObject(GetDocID(), GEOM_FILLET_2D); + + //Add a new Fillet function + Handle(GEOM_Function) aFunction = + aFillet2D->AddFunction(GEOMImpl_Fillet2dDriver::GetID(), FILLET_2D_SHAPE_VERTEXES); + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_Fillet2dDriver::GetID()) return NULL; + + GEOMImpl_IFillet2d aCI (aFunction); + + Handle(GEOM_Function) aRefShape = theShape->GetLastFunction(); + if (aRefShape.IsNull()) return NULL; + + aCI.SetShape(aRefShape); + aCI.SetR(theR); + int aLen = theVertexes.size(); + aCI.SetLength(aLen); + + int ind = 1; + std::list::iterator it = theVertexes.begin(); + for (; it != theVertexes.end(); it++, ind++) { + aCI.SetVertex(ind, (*it)); + } + + //Compute the Fillet value + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("2D Fillet driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + GEOM::TPythonDump pd (aFunction); + pd << aFillet2D << " = geompy.MakeFillet2D(" << theShape + << ", " << theR << ", ["; + + it = theVertexes.begin(); + pd << (*it++); + while (it != theVertexes.end()) { + pd << ", " << (*it++); + } + pd << "])"; + + SetErrorCode(OK); + return aFillet2D; +} + //============================================================================= /*! * MakeChamferAll @@ -585,7 +655,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdgeAD //============================================================================= Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFaces (Handle(GEOM_Object) theShape, double theD1, double theD2, - list theFaces) + std::list theFaces) { SetErrorCode(KO); @@ -612,7 +682,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFaces aCI.SetLength(aLen); int ind = 1; - list::iterator it = theFaces.begin(); + std::list::iterator it = theFaces.begin(); for (; it != theFaces.end(); it++, ind++) { aCI.SetFace(ind, (*it)); } @@ -656,7 +726,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFaces //============================================================================= Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFacesAD (Handle(GEOM_Object) theShape, double theD, double theAngle, - list theFaces) + std::list theFaces) { SetErrorCode(KO); @@ -683,7 +753,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFacesAD aCI.SetLength(aLen); int ind = 1; - list::iterator it = theFaces.begin(); + std::list::iterator it = theFaces.begin(); for (; it != theFaces.end(); it++, ind++) { aCI.SetFace(ind, (*it)); } @@ -727,7 +797,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferFacesAD //============================================================================= Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdges (Handle(GEOM_Object) theShape, double theD1, double theD2, - list theEdges) + std::list theEdges) { SetErrorCode(KO); @@ -737,16 +807,16 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdges //Add a new Chamfer function Handle(GEOM_Function) aFunction = aChamfer->AddFunction(GEOMImpl_ChamferDriver::GetID(), CHAMFER_SHAPE_EDGES); - if (aFunction.IsNull()) { return NULL; cout << "Edges Function is NULL!!!" << endl; } + if (aFunction.IsNull()) { MESSAGE ( "Edges Function is NULL!!!" ); return NULL;} //Check if the function is set correctly if (aFunction->GetDriverGUID() != GEOMImpl_ChamferDriver::GetID()) - { return NULL; cout << "Chamfer Driver is NULL!!!" << endl; } + { MESSAGE ( "Chamfer Driver is NULL!!!" ); return NULL; } GEOMImpl_IChamfer aCI (aFunction); Handle(GEOM_Function) aRefShape = theShape->GetLastFunction(); - if (aRefShape.IsNull()) { return NULL; cout << "Shape is NULL!!!" << endl; } + if (aRefShape.IsNull()) { MESSAGE ("Shape is NULL!!!"); return NULL;} aCI.SetShape(aRefShape); aCI.SetD1(theD1); @@ -755,7 +825,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdges aCI.SetLength(aLen); int ind = 1; - list::iterator it = theEdges.begin(); + std::list::iterator it = theEdges.begin(); for (; it != theEdges.end(); it++, ind++) { aCI.SetEdge(ind, (*it)); } @@ -799,7 +869,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdges //============================================================================= Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdgesAD (Handle(GEOM_Object) theShape, double theD, double theAngle, - list theEdges) + std::list theEdges) { SetErrorCode(KO); @@ -809,16 +879,16 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdgesAD //Add a new Chamfer function Handle(GEOM_Function) aFunction = aChamfer->AddFunction(GEOMImpl_ChamferDriver::GetID(), CHAMFER_SHAPE_EDGES_AD); - if (aFunction.IsNull()) { return NULL; cout << "Edges Function is NULL!!!" << endl; } + if (aFunction.IsNull()) { MESSAGE ( "Edges Function is NULL!!!" ); return NULL; } //Check if the function is set correctly if (aFunction->GetDriverGUID() != GEOMImpl_ChamferDriver::GetID()) - { return NULL; cout << "Chamfer Driver is NULL!!!" << endl; } + { MESSAGE("Chamfer Driver is NULL!!!"); return NULL;} GEOMImpl_IChamfer aCI (aFunction); Handle(GEOM_Function) aRefShape = theShape->GetLastFunction(); - if (aRefShape.IsNull()) { return NULL; cout << "Shape is NULL!!!" << endl; } + if (aRefShape.IsNull()) { MESSAGE ("Shape is NULL!!!"); return NULL;} aCI.SetShape(aRefShape); aCI.SetD(theD); @@ -827,7 +897,7 @@ Handle(GEOM_Object) GEOMImpl_ILocalOperations::MakeChamferEdgesAD aCI.SetLength(aLen); int ind = 1; - list::iterator it = theEdges.begin(); + std::list::iterator it = theEdges.begin(); for (; it != theEdges.end(); it++, ind++) { aCI.SetEdge(ind, (*it)); } diff --git a/src/GEOMImpl/GEOMImpl_ILocalOperations.hxx b/src/GEOMImpl/GEOMImpl_ILocalOperations.hxx index ba1972e37..15acc6eaf 100644 --- a/src/GEOMImpl/GEOMImpl_ILocalOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_ILocalOperations.hxx @@ -1,28 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOMImpl_ILocalOperations_HXX_ #define _GEOMImpl_ILocalOperations_HXX_ -using namespace std; - #include "Utils_SALOME_Exception.hxx" #include "GEOM_IOperations.hxx" #include "GEOM_Engine.hxx" @@ -38,15 +37,17 @@ class GEOMImpl_ILocalOperations : public GEOM_IOperations { Standard_EXPORT Handle(GEOM_Object) MakeFilletAll (Handle(GEOM_Object) theShape, double theR); Standard_EXPORT Handle(GEOM_Object) MakeFilletEdges (Handle(GEOM_Object) theShape, double theR, - list theEdges); + std::list theEdges); Standard_EXPORT Handle(GEOM_Object) MakeFilletEdgesR1R2 (Handle(GEOM_Object) theShape, double theR1, double theR2, - list theEdges); + std::list theEdges); Standard_EXPORT Handle(GEOM_Object) MakeFilletFaces (Handle(GEOM_Object) theShape, double theR, - list theFaces); + std::list theFaces); Standard_EXPORT Handle(GEOM_Object) MakeFilletFacesR1R2 (Handle(GEOM_Object) theShape, double theR1, double theR2, - list theFaces); + std::list theFaces); + Standard_EXPORT Handle(GEOM_Object) MakeFillet2D (Handle(GEOM_Object) theShape, double theR, + std::list theVertexes); Standard_EXPORT Handle(GEOM_Object) MakeChamferAll (Handle(GEOM_Object) theShape, double theD); Standard_EXPORT Handle(GEOM_Object) MakeChamferEdge (Handle(GEOM_Object) theShape, @@ -56,27 +57,27 @@ class GEOMImpl_ILocalOperations : public GEOM_IOperations { double theD, double theAngle, int theFace1, int theFace2); Standard_EXPORT Handle(GEOM_Object) MakeChamferFaces (Handle(GEOM_Object) theShape, - double theD1, double theD2, - list theFaces); + double theD1, double theD2, + std::list theFaces); Standard_EXPORT Handle(GEOM_Object) MakeChamferFacesAD (Handle(GEOM_Object) theShape, - double theD, double theAngle, - list theFaces); + double theD, double theAngle, + std::list theFaces); Standard_EXPORT Handle(GEOM_Object) MakeChamferEdges (Handle(GEOM_Object) theShape, - double theD1, double theD2, - list theEdges); + double theD1, double theD2, + std::list theEdges); Standard_EXPORT Handle(GEOM_Object) MakeChamferEdgesAD (Handle(GEOM_Object) theShape, - double theD, double theAngle, - list theEdges); + double theD, double theAngle, + std::list theEdges); Standard_EXPORT Handle(GEOM_Object) MakeArchimede (Handle(GEOM_Object) theShape, - double theWeight, double theWaterDensity, - double theMeshingDeflection); - + double theWeight, double theWaterDensity, + double theMeshingDeflection); + Standard_EXPORT Standard_Integer GetSubShapeIndex (Handle(GEOM_Object) theShape, - Handle(GEOM_Object) theSubShape); - + Handle(GEOM_Object) theSubShape); + Standard_EXPORT static bool GetSubShape (const TopoDS_Shape& theShape, - const int theIndex, - TopoDS_Shape& theSubShape); + const int theIndex, + TopoDS_Shape& theSubShape); }; #endif diff --git a/src/GEOMImpl/GEOMImpl_IMarker.hxx b/src/GEOMImpl/GEOMImpl_IMarker.hxx index 1fa2f49d5..54265314f 100644 --- a/src/GEOMImpl/GEOMImpl_IMarker.hxx +++ b/src/GEOMImpl/GEOMImpl_IMarker.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an interface to a function for the local coordinate system creation. - - +// #include "GEOM_Function.hxx" #define CS_ARG_O_X 1 diff --git a/src/GEOMImpl/GEOMImpl_IMeasure.hxx b/src/GEOMImpl/GEOMImpl_IMeasure.hxx index db615f1f3..c6c8ab74e 100644 --- a/src/GEOMImpl/GEOMImpl_IMeasure.hxx +++ b/src/GEOMImpl/GEOMImpl_IMeasure.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // NOTE: This is an interface to a functions for the Measurement - - +// #include "GEOM_Function.hxx" //#define MEASURE_ARG_BASE 1 diff --git a/src/GEOMImpl/GEOMImpl_IMeasureOperations.cxx b/src/GEOMImpl/GEOMImpl_IMeasureOperations.cxx index 67e26c014..d77245838 100644 --- a/src/GEOMImpl/GEOMImpl_IMeasureOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IMeasureOperations.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -87,9 +88,24 @@ #include #include +#include +#include +#include +#include +#include + #include #include // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC +#include +#include +#include +#include +#include +#include +#include + + //============================================================================= /*! * Constructor @@ -1296,6 +1312,306 @@ TCollection_AsciiString GEOMImpl_IMeasureOperations::WhatIs (Handle(GEOM_Object) return Astr; } + +//======================================================================= +//function : CheckSingularCase +//purpose : auxilary for GetMinDistance() +// workaround for bugs 19899, 19908 and 19910 from Mantis +//======================================================================= +static double CheckSingularCase(const TopoDS_Shape& aSh1, + const TopoDS_Shape& aSh2, + gp_Pnt& Ptmp1, gp_Pnt& Ptmp2) +{ + bool IsChange1 = false; + double AddDist1 = 0.0; + TopExp_Explorer anExp; + TopoDS_Shape tmpSh1, tmpSh2; + int nbf = 0; + for ( anExp.Init( aSh1, TopAbs_FACE ); anExp.More(); anExp.Next() ) { + nbf++; + tmpSh1 = anExp.Current(); + } + if(nbf==1) { + TopoDS_Shape sh = aSh1; + while(sh.ShapeType()==TopAbs_COMPOUND) { + TopoDS_Iterator it(sh); + sh = it.Value(); + } + Handle(Geom_Surface) S = BRep_Tool::Surface(TopoDS::Face(tmpSh1)); + if( S->IsKind(STANDARD_TYPE(Geom_SphericalSurface)) || + S->IsKind(STANDARD_TYPE(Geom_ToroidalSurface)) ) { + if( sh.ShapeType()==TopAbs_SHELL || sh.ShapeType()==TopAbs_FACE ) { + // non solid case + double U1,U2,V1,V2; + S->Bounds(U1,U2,V1,V2); + Handle(Geom_RectangularTrimmedSurface) TrS1 = + new Geom_RectangularTrimmedSurface(S,U1,(U1+U2)/2.,V1,V2); + Handle(Geom_RectangularTrimmedSurface) TrS2 = + new Geom_RectangularTrimmedSurface(S,(U1+U2)/2.,U2,V1,V2); + BRep_Builder B; + TopoDS_Face F1,F2; + TopoDS_Compound Comp; + B.MakeCompound(Comp); + B.MakeFace(F1,TrS1,1.e-7); + B.Add(Comp,F1); + B.MakeFace(F2,TrS2,1.e-7); + B.Add(Comp,F2); + Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape; + sfs->Init(Comp); + sfs->SetPrecision(1.e-6); + sfs->SetMaxTolerance(1.0); + sfs->Perform(); + tmpSh1 = sfs->Shape(); + IsChange1 = true; + } + else { + if( S->IsKind(STANDARD_TYPE(Geom_SphericalSurface)) ) { + Handle(Geom_SphericalSurface) SS = Handle(Geom_SphericalSurface)::DownCast(S); + gp_Pnt PC = SS->Location(); + BRep_Builder B; + TopoDS_Vertex V; + B.MakeVertex(V,PC,1.e-7); + tmpSh1 = V; + AddDist1 = SS->Radius(); + IsChange1 = true; + } + else { + Handle(Geom_ToroidalSurface) TS = Handle(Geom_ToroidalSurface)::DownCast(S); + gp_Ax3 ax3 = TS->Position(); + Handle(Geom_Circle) C = new Geom_Circle(ax3.Ax2(),TS->MajorRadius()); + BRep_Builder B; + TopoDS_Edge E; + B.MakeEdge(E,C,1.e-7); + tmpSh1 = E; + AddDist1 = TS->MinorRadius(); + IsChange1 = true; + } + } + } + else + tmpSh1 = aSh1; + } + else + tmpSh1 = aSh1; + bool IsChange2 = false; + double AddDist2 = 0.0; + nbf = 0; + for ( anExp.Init( aSh2, TopAbs_FACE ); anExp.More(); anExp.Next() ) { + nbf++; + tmpSh2 = anExp.Current(); + } + if(nbf==1) { + TopoDS_Shape sh = aSh2; + while(sh.ShapeType()==TopAbs_COMPOUND) { + TopoDS_Iterator it(sh); + sh = it.Value(); + } + Handle(Geom_Surface) S = BRep_Tool::Surface(TopoDS::Face(tmpSh2)); + if( S->IsKind(STANDARD_TYPE(Geom_SphericalSurface)) || + S->IsKind(STANDARD_TYPE(Geom_ToroidalSurface)) ) { + if( sh.ShapeType()==TopAbs_SHELL || sh.ShapeType()==TopAbs_FACE ) { + // non solid case + double U1,U2,V1,V2; + S->Bounds(U1,U2,V1,V2); + Handle(Geom_RectangularTrimmedSurface) TrS1 = + new Geom_RectangularTrimmedSurface(S,U1,(U1+U2)/2.,V1,V2); + Handle(Geom_RectangularTrimmedSurface) TrS2 = + new Geom_RectangularTrimmedSurface(S,(U1+U2)/2.,U2,V1,V2); + BRep_Builder B; + TopoDS_Face F1,F2; + TopoDS_Compound Comp; + B.MakeCompound(Comp); + B.MakeFace(F1,TrS1,1.e-7); + B.Add(Comp,F1); + B.MakeFace(F2,TrS2,1.e-7); + B.Add(Comp,F2); + Handle(ShapeFix_Shape) sfs = new ShapeFix_Shape; + sfs->Init(Comp); + sfs->SetPrecision(1.e-6); + sfs->SetMaxTolerance(1.0); + sfs->Perform(); + tmpSh2 = sfs->Shape(); + IsChange2 = true; + } + else { + if( S->IsKind(STANDARD_TYPE(Geom_SphericalSurface)) ) { + Handle(Geom_SphericalSurface) SS = Handle(Geom_SphericalSurface)::DownCast(S); + gp_Pnt PC = SS->Location(); + BRep_Builder B; + TopoDS_Vertex V; + B.MakeVertex(V,PC,1.e-7); + tmpSh2 = V; + AddDist2 = SS->Radius(); + IsChange2 = true; + } + else if( S->IsKind(STANDARD_TYPE(Geom_ToroidalSurface)) ) { + Handle(Geom_ToroidalSurface) TS = Handle(Geom_ToroidalSurface)::DownCast(S); + gp_Ax3 ax3 = TS->Position(); + Handle(Geom_Circle) C = new Geom_Circle(ax3.Ax2(),TS->MajorRadius()); + BRep_Builder B; + TopoDS_Edge E; + B.MakeEdge(E,C,1.e-7); + tmpSh2 = E; + AddDist2 = TS->MinorRadius(); + IsChange2 = true; + } + } + } + else + tmpSh2 = aSh2; + } + else + tmpSh2 = aSh2; + + if( !IsChange1 && !IsChange2 ) + return -2.0; + + BRepExtrema_DistShapeShape dst(tmpSh1,tmpSh2); + if (dst.IsDone()) { + double MinDist = 1.e9; + gp_Pnt PMin1, PMin2, P1, P2; + for (int i = 1; i <= dst.NbSolution(); i++) { + P1 = dst.PointOnShape1(i); + P2 = dst.PointOnShape2(i); + Standard_Real Dist = P1.Distance(P2); + if (MinDist > Dist) { + MinDist = Dist; + PMin1 = P1; + PMin2 = P2; + } + } + if(MinDist<1.e-7) { + Ptmp1 = PMin1; + Ptmp2 = PMin2; + } + else { + gp_Dir aDir(gp_Vec(PMin1,PMin2)); + if( MinDist > (AddDist1+AddDist2) ) { + Ptmp1 = gp_Pnt( PMin1.X() + aDir.X()*AddDist1, + PMin1.Y() + aDir.Y()*AddDist1, + PMin1.Z() + aDir.Z()*AddDist1 ); + Ptmp2 = gp_Pnt( PMin2.X() - aDir.X()*AddDist2, + PMin2.Y() - aDir.Y()*AddDist2, + PMin2.Z() - aDir.Z()*AddDist2 ); + return (MinDist - AddDist1 - AddDist2); + } + else { + if( AddDist1 > 0 ) { + Ptmp1 = gp_Pnt( PMin1.X() + aDir.X()*AddDist1, + PMin1.Y() + aDir.Y()*AddDist1, + PMin1.Z() + aDir.Z()*AddDist1 ); + Ptmp2 = Ptmp1; + } + else { + Ptmp2 = gp_Pnt( PMin2.X() - aDir.X()*AddDist2, + PMin2.Y() - aDir.Y()*AddDist2, + PMin2.Z() - aDir.Z()*AddDist2 ); + Ptmp1 = Ptmp2; + } + } + } + double res = MinDist - AddDist1 - AddDist2; + if(res<0.) res = 0.0; + return res; + } + return -2.0; +} +/* old variant +static bool CheckSingularCase(const TopoDS_Shape& aSh1, + const TopoDS_Shape& aSh2, + gp_Pnt& Ptmp) +{ + TopExp_Explorer anExp; + TopoDS_Shape tmpSh1, tmpSh2; + int nbf = 0; + for ( anExp.Init( aSh1, TopAbs_FACE ); anExp.More(); anExp.Next() ) { + nbf++; + tmpSh1 = anExp.Current(); + } + if(nbf==1) { + Handle(Geom_Surface) S1 = BRep_Tool::Surface(TopoDS::Face(tmpSh1)); + if( S1->IsKind(STANDARD_TYPE(Geom_SphericalSurface)) || + S1->IsKind(STANDARD_TYPE(Geom_ToroidalSurface)) ) { + nbf = 0; + for ( anExp.Init( aSh2, TopAbs_FACE ); anExp.More(); anExp.Next() ) { + nbf++; + tmpSh2 = anExp.Current(); + Handle(Geom_Surface) S2 = BRep_Tool::Surface(TopoDS::Face(tmpSh2)); + GeomAPI_IntSS ISS(S1,S2,1.e-7); + if(ISS.IsDone()) { + for(int i=1; i<=ISS.NbLines(); i++) { + Handle(Geom_Curve) C3d = ISS.Line(i); + BRep_Builder B; + TopoDS_Edge E; + B.MakeEdge(E,C3d,1.e-7); + BRepExtrema_DistShapeShape dst(tmpSh2,E); + if (dst.IsDone()) { + gp_Pnt PMin1, PMin2, P1, P2; + double MinDist = 1.e9; + for (int i = 1; i <= dst.NbSolution(); i++) { + P1 = dst.PointOnShape1(i); + P2 = dst.PointOnShape2(i); + Standard_Real Dist = P1.Distance(P2); + if (MinDist > Dist) { + MinDist = Dist; + Ptmp = P1; + } + } + if(MinDist<1.e-7) + return true; + } + } + } + } + } + } + nbf = 0; + for ( anExp.Init( aSh2, TopAbs_FACE ); anExp.More(); anExp.Next() ) { + nbf++; + tmpSh1 = anExp.Current(); + } + if(nbf==1) { + Handle(Geom_Surface) S1 = BRep_Tool::Surface(TopoDS::Face(tmpSh1)); + if( S1->IsKind(STANDARD_TYPE(Geom_SphericalSurface)) || + S1->IsKind(STANDARD_TYPE(Geom_ToroidalSurface)) ) { + nbf = 0; + for ( anExp.Init( aSh1, TopAbs_FACE ); anExp.More(); anExp.Next() ) { + nbf++; + tmpSh2 = anExp.Current(); + Handle(Geom_Surface) S2 = BRep_Tool::Surface(TopoDS::Face(tmpSh2)); + GeomAPI_IntSS ISS(S1,S2,1.e-7); + if(ISS.IsDone()) { + for(int i=1; i<=ISS.NbLines(); i++) { + Handle(Geom_Curve) C3d = ISS.Line(i); + BRep_Builder B; + TopoDS_Edge E; + B.MakeEdge(E,C3d,1.e-7); + BRepExtrema_DistShapeShape dst(tmpSh2,E); + if (dst.IsDone()) { + gp_Pnt P1,P2; + double MinDist = 1.e9; + for (int i = 1; i <= dst.NbSolution(); i++) { + P1 = dst.PointOnShape1(i); + P2 = dst.PointOnShape2(i); + Standard_Real Dist = P1.Distance(P2); + if (MinDist > Dist) { + MinDist = Dist; + Ptmp = P1; + } + } + if(MinDist<1.e-7) + return true; + } + } + } + } + } + } + return false; +} +*/ + + //============================================================================= /*! * GetMinDistance @@ -1327,6 +1643,18 @@ Standard_Real GEOMImpl_IMeasureOperations::GetMinDistance #if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 OCC_CATCH_SIGNALS; #endif + + // skl 30.06.2008 + // additional workaround for bugs 19899, 19908 and 19910 from Mantis + gp_Pnt Ptmp1, Ptmp2; + double dist = CheckSingularCase(aShape1, aShape2, Ptmp1, Ptmp2); + if(dist>-1.0) { + Ptmp1.Coord(X1, Y1, Z1); + Ptmp2.Coord(X2, Y2, Z2); + SetErrorCode(OK); + return dist; + } + BRepExtrema_DistShapeShape dst (aShape1, aShape2); if (dst.IsDone()) { gp_Pnt PMin1, PMin2, P1, P2; @@ -1440,7 +1768,8 @@ Standard_Real GEOMImpl_IMeasureOperations::GetAngle (Handle(GEOM_Object) theLine Handle(Geom_Curve) C1 = BRep_Tool::Curve(E1,fp,lp); Handle(Geom_Curve) C2 = BRep_Tool::Curve(E2,fp,lp); - if (!C1->IsKind(STANDARD_TYPE(Geom_Line)) || + if ( C1.IsNull() || C2.IsNull() || + !C1->IsKind(STANDARD_TYPE(Geom_Line)) || !C2->IsKind(STANDARD_TYPE(Geom_Line))) { SetErrorCode("The edges must be linear"); @@ -1467,6 +1796,317 @@ Standard_Real GEOMImpl_IMeasureOperations::GetAngle (Handle(GEOM_Object) theLine return anAngle; } + +//============================================================================= +/*! + * CurveCurvatureByParam + */ +//============================================================================= +Standard_Real GEOMImpl_IMeasureOperations::CurveCurvatureByParam + (Handle(GEOM_Object) theCurve, Standard_Real& theParam) +{ + SetErrorCode(KO); + Standard_Real aRes = -1.0; + + if(theCurve.IsNull()) return aRes; + + Handle(GEOM_Function) aRefShape = theCurve->GetLastFunction(); + if(aRefShape.IsNull()) return aRes; + + TopoDS_Shape aShape = aRefShape->GetValue(); + if(aShape.IsNull()) { + SetErrorCode("One of Objects has NULL Shape"); + return aRes; + } + + Standard_Real aFP, aLP, aP; + Handle(Geom_Curve) aCurve = BRep_Tool::Curve(TopoDS::Edge(aShape), aFP, aLP); + aP = aFP + (aLP - aFP) * theParam; + + if(aCurve.IsNull()) return aRes; + + //Compute curvature + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + GeomLProp_CLProps Prop = GeomLProp_CLProps + (aCurve, aP, 2, Precision::Confusion()); + aRes = fabs(Prop.Curvature()); + SetErrorCode(OK); + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return aRes; + } + + if( aRes > Precision::Confusion() ) + aRes = 1/aRes; + else + aRes = RealLast(); + + return aRes; +} + + +//============================================================================= +/*! + * CurveCurvatureByPoint + */ +//============================================================================= +Standard_Real GEOMImpl_IMeasureOperations::CurveCurvatureByPoint + (Handle(GEOM_Object) theCurve, Handle(GEOM_Object) thePoint) +{ + SetErrorCode(KO); + Standard_Real aRes = -1.0; + + if( theCurve.IsNull() || thePoint.IsNull() ) return aRes; + + Handle(GEOM_Function) aRefCurve = theCurve->GetLastFunction(); + Handle(GEOM_Function) aRefPoint = thePoint->GetLastFunction(); + if( aRefCurve.IsNull() || aRefPoint.IsNull() ) return aRes; + + TopoDS_Edge anEdge = TopoDS::Edge(aRefCurve->GetValue()); + TopoDS_Vertex aPnt = TopoDS::Vertex(aRefPoint->GetValue()); + if( anEdge.IsNull() || aPnt.IsNull() ) { + SetErrorCode("One of Objects has NULL Shape"); + return aRes; + } + + Standard_Real aFP, aLP; + Handle(Geom_Curve) aCurve = BRep_Tool::Curve(anEdge, aFP, aLP); + if(aCurve.IsNull()) return aRes; + gp_Pnt aPoint = BRep_Tool::Pnt(aPnt); + + //Compute curvature + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + GeomAPI_ProjectPointOnCurve PPC(aPoint, aCurve, aFP, aLP); + if(PPC.NbPoints()>0) { + GeomLProp_CLProps Prop = GeomLProp_CLProps + (aCurve, PPC.LowerDistanceParameter(), 2, Precision::Confusion()); + aRes = fabs(Prop.Curvature()); + SetErrorCode(OK); + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return aRes; + } + + if( aRes > Precision::Confusion() ) + aRes = 1/aRes; + else + aRes = RealLast(); + + return aRes; +} + + +//============================================================================= +/*! + * getSurfaceCurvatures + */ +//============================================================================= +Standard_Real GEOMImpl_IMeasureOperations::getSurfaceCurvatures + (const Handle(Geom_Surface)& aSurf, + Standard_Real theUParam, + Standard_Real theVParam, + Standard_Boolean theNeedMaxCurv) +{ + SetErrorCode(KO); + Standard_Real aRes = 1.0; + + if (aSurf.IsNull()) return aRes; + + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + GeomLProp_SLProps Prop = GeomLProp_SLProps + (aSurf, theUParam, theVParam, 2, Precision::Confusion()); + if(Prop.IsCurvatureDefined()) { + if(Prop.IsUmbilic()) { + //cout<<"is umbilic"<GetMessageString()); + return aRes; + } + + if( fabs(aRes) > Precision::Confusion() ) + aRes = 1/aRes; + else + aRes = RealLast(); + + return aRes; +} + + +//============================================================================= +/*! + * MaxSurfaceCurvatureByParam + */ +//============================================================================= +Standard_Real GEOMImpl_IMeasureOperations::MaxSurfaceCurvatureByParam + (Handle(GEOM_Object) theSurf, + Standard_Real& theUParam, + Standard_Real& theVParam) +{ + SetErrorCode(KO); + Standard_Real aRes = -1.0; + + if (theSurf.IsNull()) return aRes; + + Handle(GEOM_Function) aRefShape = theSurf->GetLastFunction(); + if(aRefShape.IsNull()) return aRes; + + TopoDS_Shape aShape = aRefShape->GetValue(); + if(aShape.IsNull()) { + SetErrorCode("One of Objects has NULL Shape"); + return aRes; + } + + TopoDS_Face F = TopoDS::Face(aShape); + Handle(Geom_Surface) aSurf = BRep_Tool::Surface(F); + + //Compute the parameters + Standard_Real U1,U2,V1,V2; + ShapeAnalysis::GetFaceUVBounds(F,U1,U2,V1,V2); + Standard_Real U = U1 + (U2-U1)*theUParam; + Standard_Real V = V1 + (V2-V1)*theVParam; + + return getSurfaceCurvatures(aSurf, U, V, true); +} + + +//============================================================================= +/*! + * MaxSurfaceCurvatureByPoint + */ +//============================================================================= +Standard_Real GEOMImpl_IMeasureOperations::MaxSurfaceCurvatureByPoint + (Handle(GEOM_Object) theSurf, Handle(GEOM_Object) thePoint) +{ + SetErrorCode(KO); + Standard_Real aRes = -1.0; + + if( theSurf.IsNull() || thePoint.IsNull() ) return aRes; + + Handle(GEOM_Function) aRefShape = theSurf->GetLastFunction(); + Handle(GEOM_Function) aRefPoint = thePoint->GetLastFunction(); + if( aRefShape.IsNull() || aRefPoint.IsNull() ) return aRes; + + TopoDS_Face aFace = TopoDS::Face(aRefShape->GetValue()); + TopoDS_Vertex aPnt = TopoDS::Vertex(aRefPoint->GetValue()); + if( aFace.IsNull() || aPnt.IsNull() ) { + SetErrorCode("One of Objects has NULL Shape"); + return 0; + } + + Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace); + if(aSurf.IsNull()) return aRes; + gp_Pnt aPoint = BRep_Tool::Pnt(aPnt); + + //Compute the parameters + ShapeAnalysis_Surface sas(aSurf); + gp_Pnt2d UV = sas.ValueOfUV(aPoint,Precision::Confusion()); + + return getSurfaceCurvatures(aSurf, UV.X(), UV.Y(), true); +} + + +//============================================================================= +/*! + * MinSurfaceCurvatureByParam + */ +//============================================================================= +Standard_Real GEOMImpl_IMeasureOperations::MinSurfaceCurvatureByParam + (Handle(GEOM_Object) theSurf, + Standard_Real& theUParam, + Standard_Real& theVParam) +{ + SetErrorCode(KO); + Standard_Real aRes = -1.0; + + if (theSurf.IsNull()) return aRes; + + Handle(GEOM_Function) aRefShape = theSurf->GetLastFunction(); + if(aRefShape.IsNull()) return aRes; + + TopoDS_Shape aShape = aRefShape->GetValue(); + if(aShape.IsNull()) { + SetErrorCode("One of Objects has NULL Shape"); + return aRes; + } + + TopoDS_Face F = TopoDS::Face(aShape); + Handle(Geom_Surface) aSurf = BRep_Tool::Surface(F); + + //Compute the parameters + Standard_Real U1,U2,V1,V2; + ShapeAnalysis::GetFaceUVBounds(F,U1,U2,V1,V2); + Standard_Real U = U1 + (U2-U1)*theUParam; + Standard_Real V = V1 + (V2-V1)*theVParam; + + return getSurfaceCurvatures(aSurf, U, V, false); +} + + +//============================================================================= +/*! + * MinSurfaceCurvatureByPoint + */ +//============================================================================= +Standard_Real GEOMImpl_IMeasureOperations::MinSurfaceCurvatureByPoint + (Handle(GEOM_Object) theSurf, Handle(GEOM_Object) thePoint) +{ + SetErrorCode(KO); + Standard_Real aRes = -1.0; + + if( theSurf.IsNull() || thePoint.IsNull() ) return aRes; + + Handle(GEOM_Function) aRefShape = theSurf->GetLastFunction(); + Handle(GEOM_Function) aRefPoint = thePoint->GetLastFunction(); + if( aRefShape.IsNull() || aRefPoint.IsNull() ) return aRes; + + TopoDS_Face aFace = TopoDS::Face(aRefShape->GetValue()); + TopoDS_Vertex aPnt = TopoDS::Vertex(aRefPoint->GetValue()); + if( aFace.IsNull() || aPnt.IsNull() ) { + SetErrorCode("One of Objects has NULL Shape"); + return 0; + } + + Handle(Geom_Surface) aSurf = BRep_Tool::Surface(aFace); + if(aSurf.IsNull()) return aRes; + gp_Pnt aPoint = BRep_Tool::Pnt(aPnt); + + //Compute the parameters + ShapeAnalysis_Surface sas(aSurf); + gp_Pnt2d UV = sas.ValueOfUV(aPoint,Precision::Confusion()); + + return getSurfaceCurvatures(aSurf, UV.X(), UV.Y(), false); +} + + //======================================================================= //function : StructuralDump //purpose : Structural (data exchange) style of output. @@ -1709,6 +2349,7 @@ void GEOMImpl_IMeasureOperations::StructuralDump (const BRepCheck_Analyzer& theA } } + //======================================================================= //function : GetProblemShapes // purpose : for StructuralDump diff --git a/src/GEOMImpl/GEOMImpl_IMeasureOperations.hxx b/src/GEOMImpl/GEOMImpl_IMeasureOperations.hxx index 24f6e5253..8d484b716 100644 --- a/src/GEOMImpl/GEOMImpl_IMeasureOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_IMeasureOperations.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOMImpl_IMeasureOperations_HXX_ #define _GEOMImpl_IMeasureOperations_HXX_ @@ -31,6 +32,7 @@ #include #include #include +#include class GEOM_Engine; class Handle(GEOM_Object); @@ -130,6 +132,24 @@ class GEOMImpl_IMeasureOperations : public GEOM_IOperations { Standard_EXPORT Standard_Real GetAngle (Handle(GEOM_Object) theLine1, Handle(GEOM_Object) theLine2); + + // Methods for recieving radiuses of curvature of curves and surfaces + // in the given point + Standard_EXPORT Standard_Real CurveCurvatureByParam (Handle(GEOM_Object) theCurve, + Standard_Real& theParam); + Standard_EXPORT Standard_Real CurveCurvatureByPoint (Handle(GEOM_Object) theCurve, + Handle(GEOM_Object) thePoint); + Standard_EXPORT Standard_Real MaxSurfaceCurvatureByParam (Handle(GEOM_Object) theSurf, + Standard_Real& theUParam, + Standard_Real& theVParam); + Standard_EXPORT Standard_Real MaxSurfaceCurvatureByPoint (Handle(GEOM_Object) theSurf, + Handle(GEOM_Object) thePoint); + Standard_EXPORT Standard_Real MinSurfaceCurvatureByParam (Handle(GEOM_Object) theSurf, + Standard_Real& theUParam, + Standard_Real& theVParam); + Standard_EXPORT Standard_Real MinSurfaceCurvatureByPoint (Handle(GEOM_Object) theSurf, + Handle(GEOM_Object) thePoint); + public: Standard_EXPORT static gp_Ax3 GetPosition (const TopoDS_Shape& theShape); @@ -150,6 +170,11 @@ class GEOMImpl_IMeasureOperations : public GEOM_IOperations { Handle(TColStd_HArray1OfInteger)& NbProblems, const TopAbs_ShapeEnum Subtype, TopTools_DataMapOfShapeListOfShape& theMap); + + Standard_Real getSurfaceCurvatures (const Handle(Geom_Surface)& aSurf, + Standard_Real theUParam, + Standard_Real theVParam, + Standard_Boolean theNeedMaxCurv); }; #endif diff --git a/src/GEOMImpl/GEOMImpl_IMirror.hxx b/src/GEOMImpl/GEOMImpl_IMirror.hxx index 4475216a2..513d81a30 100644 --- a/src/GEOMImpl/GEOMImpl_IMirror.hxx +++ b/src/GEOMImpl/GEOMImpl_IMirror.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Mirror creation. - - +// #include "GEOM_Function.hxx" #define MIRROR_ARG_ORIGINAL 1 diff --git a/src/GEOMImpl/GEOMImpl_IOffset.hxx b/src/GEOMImpl/GEOMImpl_IOffset.hxx index 6533324b7..eb8821589 100644 --- a/src/GEOMImpl/GEOMImpl_IOffset.hxx +++ b/src/GEOMImpl/GEOMImpl_IOffset.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Offset creation. - - +// #include "GEOM_Function.hxx" #define OFF_ARG_SHAPE 1 diff --git a/src/GEOMImpl/GEOMImpl_IPartition.hxx b/src/GEOMImpl/GEOMImpl_IPartition.hxx index bf1ff4d7c..ae5d9e2a7 100644 --- a/src/GEOMImpl/GEOMImpl_IPartition.hxx +++ b/src/GEOMImpl/GEOMImpl_IPartition.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Partition creation. - - +// #include "GEOM_Function.hxx" #include "TColStd_HSequenceOfTransient.hxx" diff --git a/src/GEOMImpl/GEOMImpl_IPipe.hxx b/src/GEOMImpl/GEOMImpl_IPipe.hxx index 7982d8614..5b56e2454 100644 --- a/src/GEOMImpl/GEOMImpl_IPipe.hxx +++ b/src/GEOMImpl/GEOMImpl_IPipe.hxx @@ -1,24 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Pipe creation. - +// #ifndef _GEOMImpl_IPIPE_HXX_ #define _GEOMImpl_IPIPE_HXX_ diff --git a/src/GEOMImpl/GEOMImpl_IPipeBiNormal.hxx b/src/GEOMImpl/GEOMImpl_IPipeBiNormal.hxx new file mode 100644 index 000000000..04ccfd371 --- /dev/null +++ b/src/GEOMImpl/GEOMImpl_IPipeBiNormal.hxx @@ -0,0 +1,49 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +//NOTE: This is an interface to a function for the Pipe creation. +// +#ifndef _GEOMImpl_IPIPEBINORMAL_HXX_ +#define _GEOMImpl_IPIPEBINORMAL_HXX_ + +#include "GEOM_Function.hxx" + +#ifndef _GEOMImpl_IPIPE_HXX_ +#include "GEOMImpl_IPipe.hxx" +#endif + +#define PIPE_ARG_BASE 1 +#define PIPE_ARG_PATH 2 +#define PIPE_ARG_VEC 3 + +class GEOMImpl_IPipeBiNormal : public GEOMImpl_IPipe +{ + public: + + GEOMImpl_IPipeBiNormal(Handle(GEOM_Function)& theFunction):GEOMImpl_IPipe(theFunction) {} + + void SetVector(Handle(GEOM_Function) theVec) { _func->SetReference(PIPE_ARG_VEC, theVec); } + + Handle(GEOM_Function) GetVector() { return _func->GetReference(PIPE_ARG_VEC); } + +}; + +#endif diff --git a/src/GEOMImpl/GEOMImpl_IPipeDiffSect.hxx b/src/GEOMImpl/GEOMImpl_IPipeDiffSect.hxx index 711348b97..3b51e624c 100644 --- a/src/GEOMImpl/GEOMImpl_IPipeDiffSect.hxx +++ b/src/GEOMImpl/GEOMImpl_IPipeDiffSect.hxx @@ -1,24 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Pipe creation. - +// #ifndef _GEOMImpl_IPIPEDIFFSECT_HXX_ #define _GEOMImpl_IPIPEDIFFSECT_HXX_ diff --git a/src/GEOMImpl/GEOMImpl_IPipeShellSect.hxx b/src/GEOMImpl/GEOMImpl_IPipeShellSect.hxx index 590e83697..0afb7506f 100644 --- a/src/GEOMImpl/GEOMImpl_IPipeShellSect.hxx +++ b/src/GEOMImpl/GEOMImpl_IPipeShellSect.hxx @@ -1,24 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Pipe creation. - +// #ifndef _GEOMImpl_IPIPESHELLSECT_HXX_ #define _GEOMImpl_IPIPESHELLSECT_HXX_ diff --git a/src/GEOMImpl/GEOMImpl_IPlane.hxx b/src/GEOMImpl/GEOMImpl_IPlane.hxx index bf328a80f..fbd97d705 100644 --- a/src/GEOMImpl/GEOMImpl_IPlane.hxx +++ b/src/GEOMImpl/GEOMImpl_IPlane.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the vector creation. - - +// #include "GEOM_Function.hxx" #define PLN_ARG_SIZE 1 diff --git a/src/GEOMImpl/GEOMImpl_IPoint.hxx b/src/GEOMImpl/GEOMImpl_IPoint.hxx index b796a51f5..61b2ae8bc 100755 --- a/src/GEOMImpl/GEOMImpl_IPoint.hxx +++ b/src/GEOMImpl/GEOMImpl_IPoint.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the point creation. - - +// #include "GEOM_Function.hxx" #define ARG_X 1 @@ -33,6 +34,9 @@ #define ARG_LINE1 7 #define ARG_LINE2 8 +#define ARG_SURFACE 9 +#define ARG_PARAM2 10 + class GEOMImpl_IPoint { public: @@ -52,16 +56,20 @@ class GEOMImpl_IPoint Handle(GEOM_Function) GetRef() { return _func->GetReference(ARG_REF); } void SetCurve(Handle(GEOM_Function) theRef) { _func->SetReference(ARG_CURVE, theRef); } + void SetSurface(Handle(GEOM_Function) theRef) { _func->SetReference(ARG_SURFACE, theRef); } void SetLine1(Handle(GEOM_Function) theRef) { _func->SetReference(ARG_LINE1, theRef); } void SetLine2(Handle(GEOM_Function) theRef) { _func->SetReference(ARG_LINE2, theRef); } Handle(GEOM_Function) GetCurve() { return _func->GetReference(ARG_CURVE); } + Handle(GEOM_Function) GetSurface() { return _func->GetReference(ARG_SURFACE); } Handle(GEOM_Function) GetLine1() { return _func->GetReference(ARG_LINE1); } Handle(GEOM_Function) GetLine2() { return _func->GetReference(ARG_LINE2); } void SetParameter(double theParam) { _func->SetReal(ARG_PARAM, theParam); } + void SetParameter2(double theParam) { _func->SetReal(ARG_PARAM2, theParam); } double GetParameter() { return _func->GetReal(ARG_PARAM); } + double GetParameter2() { return _func->GetReal(ARG_PARAM2); } private: diff --git a/src/GEOMImpl/GEOMImpl_IPolyline.hxx b/src/GEOMImpl/GEOMImpl_IPolyline.hxx index 800795a4b..5c0c80ad3 100644 --- a/src/GEOMImpl/GEOMImpl_IPolyline.hxx +++ b/src/GEOMImpl/GEOMImpl_IPolyline.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Polyline creation. - - +// #include "GEOM_Function.hxx" #define POLY_ARG_LENG 1 diff --git a/src/GEOMImpl/GEOMImpl_IPosition.hxx b/src/GEOMImpl/GEOMImpl_IPosition.hxx index 77a0e358a..5d42d5d92 100644 --- a/src/GEOMImpl/GEOMImpl_IPosition.hxx +++ b/src/GEOMImpl/GEOMImpl_IPosition.hxx @@ -1,30 +1,34 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Setting In Position. - - +// #include "GEOM_Function.hxx" -#define POSITION_ARG_SHAPE 1 +#define POSITION_ARG_SHAPE 1 #define POSITION_ARG_START_LCS 2 -#define POSITION_ARG_END_LCS 3 +#define POSITION_ARG_END_LCS 3 +#define POSITION_ARG_PATH 5 +#define POSITION_ARG_DISTANCE 6 +#define POSITION_ARG_REVERSE 7 class GEOMImpl_IPosition { @@ -46,6 +50,17 @@ class GEOMImpl_IPosition Handle(GEOM_Function) GetEndLCS() { return _func->GetReference(POSITION_ARG_END_LCS); } + void SetPath(Handle(GEOM_Function) thePath) { _func->SetReference(POSITION_ARG_PATH, thePath); } + + Handle(GEOM_Function) GetPath() { return _func->GetReference(POSITION_ARG_PATH); } + + void SetDistance(double theDistance) { _func->SetReal(POSITION_ARG_DISTANCE, theDistance); } + + double GetDistance() { return _func->GetReal(POSITION_ARG_DISTANCE); } + + void SetReverse(bool theReverse) { _func->SetReal(POSITION_ARG_REVERSE, theReverse); } + bool GetReverse() { return _func->GetReal(POSITION_ARG_REVERSE); } + private: Handle(GEOM_Function) _func; diff --git a/src/GEOMImpl/GEOMImpl_IPrism.hxx b/src/GEOMImpl/GEOMImpl_IPrism.hxx index 14c01864e..f3496f0d9 100644 --- a/src/GEOMImpl/GEOMImpl_IPrism.hxx +++ b/src/GEOMImpl/GEOMImpl_IPrism.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Prism creation. - - +// #include "GEOM_Function.hxx" #define PRISM_ARG_H 1 @@ -27,6 +28,9 @@ #define PRISM_ARG_BASE 3 #define PRISM_ARG_PNT_F 4 #define PRISM_ARG_PNT_L 5 +#define PRISM_ARG_DX 6 +#define PRISM_ARG_DY 7 +#define PRISM_ARG_DZ 8 class GEOMImpl_IPrism { @@ -39,6 +43,14 @@ class GEOMImpl_IPrism void SetFirstPoint(Handle(GEOM_Function) thePoint) { _func->SetReference(PRISM_ARG_PNT_F, thePoint); } void SetLastPoint (Handle(GEOM_Function) thePoint) { _func->SetReference(PRISM_ARG_PNT_L, thePoint); } + void SetDX(double theDX) { _func->SetReal(PRISM_ARG_DX, theDX); } + void SetDY(double theDY) { _func->SetReal(PRISM_ARG_DY, theDY); } + void SetDZ(double theDZ) { _func->SetReal(PRISM_ARG_DZ, theDZ); } + + double GetDX() { return _func->GetReal(PRISM_ARG_DX); } + double GetDY() { return _func->GetReal(PRISM_ARG_DY); } + double GetDZ() { return _func->GetReal(PRISM_ARG_DZ); } + Handle(GEOM_Function) GetBase () { return _func->GetReference(PRISM_ARG_BASE); } Handle(GEOM_Function) GetVector() { return _func->GetReference(PRISM_ARG_VEC ); } Handle(GEOM_Function) GetFirstPoint() { return _func->GetReference(PRISM_ARG_PNT_F ); } diff --git a/src/GEOMImpl/GEOMImpl_IRevolution.hxx b/src/GEOMImpl/GEOMImpl_IRevolution.hxx index c0d551b34..a02b7ad73 100644 --- a/src/GEOMImpl/GEOMImpl_IRevolution.hxx +++ b/src/GEOMImpl/GEOMImpl_IRevolution.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Revolution creation. - - +// #include "GEOM_Function.hxx" #define REVOL_ARG_ANGLE 1 diff --git a/src/GEOMImpl/GEOMImpl_IRotate.hxx b/src/GEOMImpl/GEOMImpl_IRotate.hxx index 2cdad4d5a..e4a603070 100644 --- a/src/GEOMImpl/GEOMImpl_IRotate.hxx +++ b/src/GEOMImpl/GEOMImpl_IRotate.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Rotate operation. - - +// #include "GEOM_Function.hxx" #define ROTATE_ANGLE 1 diff --git a/src/GEOMImpl/GEOMImpl_IScale.hxx b/src/GEOMImpl/GEOMImpl_IScale.hxx index 9a7e904a2..bcbd0493e 100644 --- a/src/GEOMImpl/GEOMImpl_IScale.hxx +++ b/src/GEOMImpl/GEOMImpl_IScale.hxx @@ -1,30 +1,33 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Scale creation. - - +// #include "GEOM_Function.hxx" #define SCALE_ARG_SHAPE 1 #define SCALE_ARG_VALUE 2 #define SCALE_ARG_POINT 3 +#define SCALE_ARG_VALUE_Y 4 +#define SCALE_ARG_VALUE_Z 5 class GEOMImpl_IScale { @@ -44,6 +47,14 @@ class GEOMImpl_IScale Handle(GEOM_Function) GetPoint() { return _func->GetReference(SCALE_ARG_POINT); } + void SetFactorX(double theValue) { _func->SetReal(SCALE_ARG_VALUE , theValue); } + void SetFactorY(double theValue) { _func->SetReal(SCALE_ARG_VALUE_Y, theValue); } + void SetFactorZ(double theValue) { _func->SetReal(SCALE_ARG_VALUE_Z, theValue); } + + double GetFactorX() { return _func->GetReal(SCALE_ARG_VALUE ); } + double GetFactorY() { return _func->GetReal(SCALE_ARG_VALUE_Y); } + double GetFactorZ() { return _func->GetReal(SCALE_ARG_VALUE_Z); } + private: Handle(GEOM_Function) _func; diff --git a/src/GEOMImpl/GEOMImpl_IShapes.hxx b/src/GEOMImpl/GEOMImpl_IShapes.hxx index 25c3796d3..a4efd5161 100644 --- a/src/GEOMImpl/GEOMImpl_IShapes.hxx +++ b/src/GEOMImpl/GEOMImpl_IShapes.hxx @@ -1,26 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // NOTE: This is an intreface to a function for the Shapes // (Wire, Face, Shell, Solid and Compound) creation. - - +// #include "GEOM_Function.hxx" #include "TColStd_HSequenceOfTransient.hxx" diff --git a/src/GEOMImpl/GEOMImpl_IShapesOperations.cxx b/src/GEOMImpl/GEOMImpl_IShapesOperations.cxx index 089072899..09a2477a7 100644 --- a/src/GEOMImpl/GEOMImpl_IShapesOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IShapesOperations.cxx @@ -1,30 +1,30 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_IShapesOperations.cxx -// Created : +// Created : // Author : modified by Lioka RAZAFINDRAZAKA (CEA) 22/06/2007 // Project : SALOME // $Header$ - -using namespace std; - +// #include #include "GEOMImpl_IShapesOperations.hxx" @@ -50,6 +50,7 @@ using namespace std; #include "GEOMAlgo_FinderShapeOnQuad.hxx" #include "GEOMAlgo_FinderShapeOn2.hxx" #include "GEOMAlgo_ClsfBox.hxx" +#include "GEOMAlgo_ClsfSolid.hxx" #include "GEOMAlgo_Gluer1.hxx" #include "GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx" #include "GEOMAlgo_CoupleOfShapes.hxx" @@ -67,6 +68,7 @@ using namespace std; #include #include +#include #include #include @@ -116,6 +118,7 @@ using namespace std; #include +#include #include #include // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC @@ -150,7 +153,6 @@ GEOMImpl_IShapesOperations::~GEOMImpl_IShapesOperations() MESSAGE("GEOMImpl_IShapesOperations::~GEOMImpl_IShapesOperations"); } - //============================================================================= /*! * MakeEdge @@ -212,7 +214,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeEdge */ //============================================================================= Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeWire - (list theShapes) + (std::list theShapes) { return MakeShape(theShapes, GEOM_WIRE, WIRE_EDGES, "MakeWire"); } @@ -279,7 +281,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeFace (Handle(GEOM_Object) th */ //============================================================================= Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeFaceWires - (list theShapes, + (std::list theShapes, const bool isPlanarWanted) { SetErrorCode(KO); @@ -300,7 +302,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeFaceWires Handle(TColStd_HSequenceOfTransient) aShapesSeq = new TColStd_HSequenceOfTransient; // Shapes - list::iterator it = theShapes.begin(); + std::list::iterator it = theShapes.begin(); for (; it != theShapes.end(); it++) { Handle(GEOM_Function) aRefSh = (*it)->GetLastFunction(); if (aRefSh.IsNull()) { @@ -353,7 +355,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeFaceWires */ //============================================================================= Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeShell - (list theShapes) + (std::list theShapes) { return MakeShape(theShapes, GEOM_SHELL, SHELL_FACES, "MakeShell"); } @@ -364,7 +366,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeShell */ //============================================================================= Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeSolidShells - (list theShapes) + (std::list theShapes) { return MakeShape(theShapes, GEOM_SOLID, SOLID_SHELLS, "MakeSolid"); } @@ -429,7 +431,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeSolidShell (Handle(GEOM_Obje */ //============================================================================= Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeCompound - (list theShapes) + (std::list theShapes) { return MakeShape(theShapes, GEOM_COMPOUND, COMPOUND_SHAPES, "MakeCompound"); } @@ -440,7 +442,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeCompound */ //============================================================================= Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeShape - (list theShapes, + (std::list theShapes, const Standard_Integer theObjectType, const Standard_Integer theFunctionType, const TCollection_AsciiString& theMethodName) @@ -463,7 +465,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeShape Handle(TColStd_HSequenceOfTransient) aShapesSeq = new TColStd_HSequenceOfTransient; // Shapes - list::iterator it = theShapes.begin(); + std::list::iterator it = theShapes.begin(); for (; it != theShapes.end(); it++) { Handle(GEOM_Function) aRefSh = (*it)->GetLastFunction(); if (aRefSh.IsNull()) { @@ -647,7 +649,6 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::GetGlueFaces return aSeq; } - //============================================================================= /*! * MakeGlueFacesByList @@ -656,7 +657,7 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::GetGlueFaces Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFacesByList (Handle(GEOM_Object) theShape, const Standard_Real theTolerance, - list theFaces, + std::list theFaces, const Standard_Boolean doKeepNonSolids) { SetErrorCode(KO); @@ -684,7 +685,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFacesByList aCI.SetKeepNonSolids(doKeepNonSolids); Handle(TColStd_HSequenceOfTransient) aFaces = new TColStd_HSequenceOfTransient; - list::iterator it = theFaces.begin(); + std::list::iterator it = theFaces.begin(); for (; it != theFaces.end(); it++) { Handle(GEOM_Function) aRefSh = (*it)->GetLastFunction(); if (aRefSh.IsNull()) { @@ -718,7 +719,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFacesByList } //Make a Python command - + GEOM::TPythonDump pd(aFunction); pd << aGlued << " = geompy.MakeGlueFacesByList(" << theShape << ", " << theTolerance << ", ["; @@ -732,14 +733,11 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::MakeGlueFacesByList } pd << "])"; - // to provide warning if (!isWarning) SetErrorCode(OK); return aGlued; } - - //============================================================================= /*! * MakeExplode @@ -796,8 +794,6 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::MakeExplode TopExp::MapShapes(aShape, anIndices); Handle(TColStd_HArray1OfInteger) anArray; - Standard_Integer nbAllSubShape = anIndices.Extent(); - TopTools_ListIteratorOfListOfShape itSub (listShape); TCollection_AsciiString anAsciiList, anEntry; for (int index = 1; itSub.More(); itSub.Next(), ++index) @@ -1081,7 +1077,7 @@ TCollection_AsciiString GEOMImpl_IShapesOperations::GetShapeTypeString (Handle(G (Abs(curv.LastParameter()) >= 1E6)) aTypeName = "Line"; else - aTypeName = "Edge" ; + aTypeName = "Edge"; } else if (curv.GetType() == GeomAbs_Circle) { if (curv.IsClosed()) aTypeName = "Circle"; @@ -1105,7 +1101,6 @@ TCollection_AsciiString GEOMImpl_IShapesOperations::GetShapeTypeString (Handle(G return aTypeName; } - //============================================================================= /*! * NumberOfFaces @@ -1264,7 +1259,6 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetFreeFacesIDs //function : GetSharedShapes //purpose : //======================================================================= - Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::GetSharedShapes (Handle(GEOM_Object) theShape1, Handle(GEOM_Object) theShape2, @@ -1364,7 +1358,6 @@ static GEOM::TPythonDump& operator<< (GEOM::TPythonDump& theDump, * \retval bool - result of the check */ //======================================================================= - bool GEOMImpl_IShapesOperations::checkTypeShapesOn(const Standard_Integer theShapeType) { if (theShapeType != TopAbs_VERTEX && @@ -1385,7 +1378,6 @@ bool GEOMImpl_IShapesOperations::checkTypeShapesOn(const Standard_Integer theSha * \retval Handle(Geom_Surface) - resulting surface */ //======================================================================= - Handle(Geom_Surface) GEOMImpl_IShapesOperations::makePlane(const TopoDS_Shape& anAx1) { if (anAx1.ShapeType() != TopAbs_EDGE) return NULL; @@ -1414,7 +1406,6 @@ Handle(Geom_Surface) GEOMImpl_IShapesOperations::makePlane(const TopoDS_Shape& a * \retval Handle(Geom_Surface) - resulting surface */ //======================================================================= - Handle(Geom_Surface) GEOMImpl_IShapesOperations::makeCylinder(const TopoDS_Shape& anAxis, const Standard_Real theRadius) { @@ -1441,7 +1432,6 @@ Handle(Geom_Surface) GEOMImpl_IShapesOperations::makeCylinder(const TopoDS_Shape return new Geom_CylindricalSurface(anAx3, theRadius); } - //======================================================================= //function : getShapesOnBoxIDs /*! @@ -1453,7 +1443,6 @@ Handle(Geom_Surface) GEOMImpl_IShapesOperations::makeCylinder(const TopoDS_Shape * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes */ //======================================================================= - Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::getShapesOnBoxIDs(const Handle(GEOM_Object)& theBox, const Handle(GEOM_Object)& theShape, @@ -1524,7 +1513,6 @@ Handle(TColStd_HSequenceOfInteger) return aSeqOfIDs; } - //======================================================================= //function : GetShapesOnBoxIDs /*! @@ -1536,7 +1524,6 @@ Handle(TColStd_HSequenceOfInteger) * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes */ //======================================================================= - Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetShapesOnBoxIDs(const Handle(GEOM_Object)& theBox, const Handle(GEOM_Object)& theShape, @@ -1554,7 +1541,7 @@ Handle(TColStd_HSequenceOfInteger) // Make a Python command GEOM::TPythonDump(aFunction) - << "listShapesOnBoxIDs = geompy.GetShapesOnQuadrangleIDs(" + << "listShapesOnBoxIDs = geompy.GetShapesOnBoxIDs(" << theBox << ", " << theShape << ", " << TopAbs_ShapeEnum(theShapeType) << ", " @@ -1575,7 +1562,6 @@ Handle(TColStd_HSequenceOfInteger) * \retval Handle(TColStd_HSequenceOfTransient) - found subshapes */ //======================================================================= - Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::GetShapesOnBox(const Handle(GEOM_Object)& theBox, const Handle(GEOM_Object)& theShape, @@ -1611,6 +1597,225 @@ Handle(TColStd_HSequenceOfTransient) return aSeq; } +//======================================================================= +//function : getShapesOnShapeIDs +/*! + * \brief Find IDs of subshapes complying with given status about surface + * \param theCheckShape - the shape to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes + */ +//======================================================================= +Handle(TColStd_HSequenceOfInteger) + GEOMImpl_IShapesOperations::getShapesOnShapeIDs + (const Handle(GEOM_Object)& theCheckShape, + const Handle(GEOM_Object)& theShape, + const Standard_Integer theShapeType, + GEOMAlgo_State theState) +{ + Handle(TColStd_HSequenceOfInteger) aSeqOfIDs; + + TopoDS_Shape aCheckShape = theCheckShape->GetValue(); + TopoDS_Shape aShape = theShape->GetValue(); + TopTools_ListOfShape res; + + // Check presence of triangulation, build if need + if (!CheckTriangulation(aShape)) { + SetErrorCode("Cannot build triangulation on the shape"); + return aSeqOfIDs; + } + + // Call algo + GEOMAlgo_FinderShapeOn2 aFinder; + Standard_Real aTol = 0.0001; // default value + + Handle(GEOMAlgo_ClsfSolid) aClsfSolid = new GEOMAlgo_ClsfSolid; + aClsfSolid->SetShape(aCheckShape); + + aFinder.SetShape(aShape); + aFinder.SetTolerance(aTol); + aFinder.SetClsf(aClsfSolid); + aFinder.SetShapeType( (TopAbs_ShapeEnum)theShapeType ); + aFinder.SetState(theState); + aFinder.Perform(); + + // Interprete results + Standard_Integer iErr = aFinder.ErrorStatus(); + // the detailed description of error codes is in GEOMAlgo_FinderShapeOn1.cxx + if (iErr) { + MESSAGE(" iErr : " << iErr); + TCollection_AsciiString aMsg (" iErr : "); + aMsg += TCollection_AsciiString(iErr); + SetErrorCode(aMsg); + return aSeqOfIDs; + } + Standard_Integer iWrn = aFinder.WarningStatus(); + // the detailed description of warning codes is in GEOMAlgo_FinderShapeOn1.cxx + if (iWrn) { + MESSAGE(" *** iWrn : " << iWrn); + } + + const TopTools_ListOfShape& listSS = aFinder.Shapes(); // the result + + if (listSS.Extent() < 1) { + //SetErrorCode("Not a single sub-shape of the requested type found on the given surface"); + SetErrorCode(NOT_FOUND_ANY); // NPAL18017 + } + + // Fill sequence of object IDs + aSeqOfIDs = new TColStd_HSequenceOfInteger; + + TopTools_IndexedMapOfShape anIndices; + TopExp::MapShapes(aShape, anIndices); + + TopTools_ListIteratorOfListOfShape itSub (listSS); + for (int index = 1; itSub.More(); itSub.Next(), ++index) { + int id = anIndices.FindIndex(itSub.Value()); + aSeqOfIDs->Append(id); + } + + return aSeqOfIDs; +} + +//======================================================================= +//function : GetShapesOnShapeIDs +/*! + * \brief Find subshapes complying with given status about surface + * \param theCheckShape - the shape to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes + */ +//======================================================================= +Handle(TColStd_HSequenceOfInteger) + GEOMImpl_IShapesOperations::GetShapesOnShapeIDs + (const Handle(GEOM_Object)& theCheckShape, + const Handle(GEOM_Object)& theShape, + const Standard_Integer theShapeType, + GEOMAlgo_State theState) +{ + Handle(TColStd_HSequenceOfInteger) aSeqOfIDs = + getShapesOnShapeIDs (theCheckShape, theShape, theShapeType, theState); + + if ( aSeqOfIDs.IsNull() || aSeqOfIDs->Length() == 0 ) + return NULL; + + // The GetShapesOnShape() doesn't change object so no new function is required. + Handle(GEOM_Function) aFunction = + GEOM::GetCreatedLast(theShape,theCheckShape)->GetLastFunction(); + + // Make a Python command + GEOM::TPythonDump(aFunction) + << "listShapesOnBoxIDs = geompy.GetShapesOnShapeIDs(" + << theCheckShape << ", " + << theShape << ", " + << TopAbs_ShapeEnum(theShapeType) << ", " + << theState << ")"; + + SetErrorCode(OK); + return aSeqOfIDs; +} + +//======================================================================= +//function : GetShapesOnShape +/*! + * \brief Find subshapes complying with given status about surface + * \param theCheckShape - the shape to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \retval Handle(TColStd_HSequenceOfTransient) - found subshapes + */ +//======================================================================= +Handle(TColStd_HSequenceOfTransient) + GEOMImpl_IShapesOperations::GetShapesOnShape + (const Handle(GEOM_Object)& theCheckShape, + const Handle(GEOM_Object)& theShape, + const Standard_Integer theShapeType, + GEOMAlgo_State theState) +{ + Handle(TColStd_HSequenceOfInteger) aSeqOfIDs = + getShapesOnShapeIDs (theCheckShape, theShape, theShapeType, theState); + if ( aSeqOfIDs.IsNull() || aSeqOfIDs->Length() == 0 ) + return NULL; + + // Find objects by indices + TCollection_AsciiString anAsciiList; + Handle(TColStd_HSequenceOfTransient) aSeq; + aSeq = getObjectsShapesOn( theShape, aSeqOfIDs, anAsciiList ); + + if ( aSeq.IsNull() || aSeq->IsEmpty() ) + return NULL; + + // Make a Python command + + Handle(GEOM_Object) anObj = Handle(GEOM_Object)::DownCast( aSeq->Value( 1 )); + Handle(GEOM_Function) aFunction = anObj->GetLastFunction(); + + GEOM::TPythonDump(aFunction) + << "[" << anAsciiList.ToCString() << "] = geompy.GetShapesOnShape(" + << theCheckShape << ", " + << theShape << ", " + << TopAbs_ShapeEnum(theShapeType) << ", " + << theState << ")"; + + SetErrorCode(OK); + return aSeq; +} + +//======================================================================= +//function : GetShapesOnShapeAsCompound +//======================================================================= +Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetShapesOnShapeAsCompound + (const Handle(GEOM_Object)& theCheckShape, + const Handle(GEOM_Object)& theShape, + const Standard_Integer theShapeType, + GEOMAlgo_State theState) +{ + Handle(TColStd_HSequenceOfInteger) aSeqOfIDs = + getShapesOnShapeIDs (theCheckShape, theShape, theShapeType, theState); + + if ( aSeqOfIDs.IsNull() || aSeqOfIDs->Length() == 0 ) + return NULL; + + // Find objects by indices + TCollection_AsciiString anAsciiList; + Handle(TColStd_HSequenceOfTransient) aSeq; + aSeq = getObjectsShapesOn( theShape, aSeqOfIDs, anAsciiList ); + + if ( aSeq.IsNull() || aSeq->IsEmpty() ) + return NULL; + + TopoDS_Compound aCompound; + BRep_Builder B; + B.MakeCompound(aCompound); + int i = 1; + for(; i<=aSeq->Length(); i++) { + Handle(GEOM_Object) anObj = Handle(GEOM_Object)::DownCast(aSeq->Value(i)); + TopoDS_Shape aShape_i = anObj->GetValue(); + B.Add(aCompound,aShape_i); + } + + //Add a new result object + Handle(GEOM_Object) aRes = GetEngine()->AddObject(GetDocID(), GEOM_SHAPES_ON_SHAPE); + Handle(GEOM_Function) aFunction = + aRes->AddFunction(GEOMImpl_ShapeDriver::GetID(), SHAPES_ON_SHAPE); + aFunction->SetValue(aCompound); + + GEOM::TPythonDump(aFunction) + << aRes << " = geompy.GetShapesOnShapeAsCompound(" + << theCheckShape << ", " + << theShape << ", " + << TopAbs_ShapeEnum(theShapeType) << ", " + << theState << ")"; + + SetErrorCode(OK); + + return aRes; +} //======================================================================= //function : getShapesOnSurfaceIDs @@ -1623,7 +1828,6 @@ Handle(TColStd_HSequenceOfTransient) * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes */ //======================================================================= - Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::getShapesOnSurfaceIDs(const Handle(Geom_Surface)& theSurface, const TopoDS_Shape& theShape, @@ -1708,7 +1912,6 @@ Handle(TColStd_HSequenceOfInteger) * \retval Handle(TColStd_HSequenceOfTransient) - found shape objects */ //======================================================================= - Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations:: getObjectsShapesOn(const Handle(GEOM_Object)& theShape, const Handle(TColStd_HSequenceOfInteger)& theShapeIDs, @@ -1747,7 +1950,6 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations:: * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes */ //======================================================================= - Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::getShapesOnSurface(const Handle(Geom_Surface)& theSurface, const Handle(GEOM_Object)& theShape, @@ -2213,7 +2415,6 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetShapesOnSphere * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes */ //======================================================================= - Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::getShapesOnQuadrangleIDs (const Handle(GEOM_Object)& theShape, const Standard_Integer theShapeType, @@ -2340,7 +2541,6 @@ Handle(TColStd_HSequenceOfInteger) * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes */ //======================================================================= - Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::GetShapesOnQuadrangle (const Handle(GEOM_Object)& theShape, const Standard_Integer theShapeType, @@ -2402,7 +2602,6 @@ Handle(TColStd_HSequenceOfTransient) * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes */ //======================================================================= - Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetShapesOnQuadrangleIDs (const Handle(GEOM_Object)& theShape, const Standard_Integer theShapeType, @@ -2447,7 +2646,6 @@ Handle(TColStd_HSequenceOfInteger) return aSeqOfIDs; } - //============================================================================= /*! * GetInPlaceOfShape @@ -2577,23 +2775,20 @@ static bool GetInPlaceOfShape (const Handle(GEOM_Function)& theWhereFunction, * GetShapeProperties */ //============================================================================= - void GEOMImpl_IShapesOperations::GetShapeProperties( const TopoDS_Shape aShape, Standard_Real tab[], gp_Pnt & aVertex ) { - GProp_GProps SProps, VProps; + GProp_GProps theProps; gp_Pnt aCenterMass; TopoDS_Shape aPntShape; Standard_Real aShapeSize; - BRepGProp::VolumeProperties(aShape, VProps); - aCenterMass = VProps.CentreOfMass(); - aShapeSize = VProps.Mass(); - if (aShape.ShapeType() == TopAbs_FACE) { - BRepGProp::SurfaceProperties(aShape, SProps); - aCenterMass = SProps.CentreOfMass(); - aShapeSize = SProps.Mass(); - } + if (aShape.ShapeType() == TopAbs_EDGE) BRepGProp::LinearProperties(aShape, theProps); + else if (aShape.ShapeType() == TopAbs_FACE) BRepGProp::SurfaceProperties(aShape, theProps); + else BRepGProp::VolumeProperties(aShape, theProps); + + aCenterMass = theProps.CentreOfMass(); + aShapeSize = theProps.Mass(); aPntShape = BRepBuilderAPI_MakeVertex(aCenterMass).Shape(); aVertex = BRep_Tool::Pnt( TopoDS::Vertex( aPntShape ) ); @@ -2618,6 +2813,8 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetInPlace (Handle(GEOM_Object) TopoDS_Shape aWhere = theShapeWhere->GetValue(); TopoDS_Shape aWhat = theShapeWhat->GetValue(); + TopoDS_Shape aPntShape; + TopoDS_Vertex aVertex; if (aWhere.IsNull() || aWhat.IsNull()) { SetErrorCode("Error: aWhere and aWhat TopoDS_Shape are Null."); @@ -2640,32 +2837,54 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetInPlace (Handle(GEOM_Object) bool isFound = false; Standard_Integer iType = TopAbs_SOLID; + Standard_Integer compType = TopAbs_SOLID; Standard_Real aWhat_Mass = 0., aWhere_Mass = 0.; Standard_Real tab_aWhat[4], tab_aWhere[4]; Standard_Real dl_l = 1e-3; Standard_Real min_l, Tol_1D, Tol_2D, Tol_3D, Tol_Mass; - gp_Pnt aPnt, aPnt_aWhat; + Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax; + Bnd_Box BoundingBox; + gp_Pnt aPnt, aPnt_aWhat, tab_Pnt[2]; GProp_GProps aProps; - // 2D or 3D shapes - if ( aWhat.ShapeType() == TopAbs_COMPOUND || - aWhat.ShapeType() == TopAbs_SHELL || - aWhat.ShapeType() == TopAbs_COMPSOLID ) { - TopExp_Explorer Exp( aWhat, TopAbs_ShapeEnum( iType ) ); - if ( ! Exp.More() ) iType = TopAbs_FACE; + // Find the iType of the aWhat shape + if ( aWhat.ShapeType() == TopAbs_EDGE || aWhat.ShapeType() == TopAbs_WIRE ) iType = TopAbs_EDGE; + else if ( aWhat.ShapeType() == TopAbs_FACE || aWhat.ShapeType() == TopAbs_SHELL ) iType = TopAbs_FACE; + else if ( aWhat.ShapeType() == TopAbs_SOLID || aWhat.ShapeType() == TopAbs_COMPSOLID ) iType = TopAbs_SOLID; + else if ( aWhat.ShapeType() == TopAbs_COMPOUND ) { + // Only the iType of the first shape in the compound is taken into account + TopoDS_Iterator It (aWhat, Standard_True, Standard_True); + compType = It.Value().ShapeType(); + if ( compType == TopAbs_EDGE || compType == TopAbs_WIRE ) iType = TopAbs_EDGE; + else if ( compType == TopAbs_FACE || compType == TopAbs_SHELL) iType = TopAbs_FACE; + else if ( compType == TopAbs_SOLID || compType == TopAbs_COMPSOLID) iType = TopAbs_SOLID; + } + else { + SetErrorCode("Error: An attempt to extract a shape of not supported type."); + return NULL; } - else if ( aWhat.ShapeType() == TopAbs_FACE ) - iType = TopAbs_FACE; TopExp_Explorer Exp_aWhat( aWhat, TopAbs_ShapeEnum( iType ) ); TopExp_Explorer Exp_aWhere( aWhere, TopAbs_ShapeEnum( iType ) ); TopExp_Explorer Exp_Edge( aWhere, TopAbs_EDGE ); // Find the shortest edge in theShapeWhere shape + BRepBndLib::Add(aWhere, BoundingBox); + BoundingBox.Get(aXmin, aYmin, aZmin, aXmax, aYmax, aZmax); + min_l = fabs(aXmax - aXmin); + if( min_l < fabs(aYmax - aYmin) ) min_l = fabs(aYmax - aYmin); + if( min_l < fabs(aZmax - aZmin) ) min_l = fabs(aZmax - aZmin); + min_l /= dl_l; for ( Standard_Integer nbEdge = 0; Exp_Edge.More(); Exp_Edge.Next(), nbEdge++ ) { - BRepGProp::LinearProperties(Exp_Edge.Current(), aProps); - if ( ! nbEdge ) min_l = aProps.Mass(); - if ( aProps.Mass() < min_l ) min_l = aProps.Mass(); + TopExp_Explorer Exp_Vertex( Exp_Edge.Current(), TopAbs_VERTEX); + for ( Standard_Integer nbVertex = 0; Exp_Vertex.More(); Exp_Vertex.Next(), nbVertex++ ) { + aPnt = BRep_Tool::Pnt( TopoDS::Vertex( Exp_Vertex.Current() ) ); + tab_Pnt[nbVertex] = aPnt; + } + if ( ! tab_Pnt[0].IsEqual(tab_Pnt[1], dl_l) ) { + BRepGProp::LinearProperties(Exp_Edge.Current(), aProps); + if ( aProps.Mass() < min_l ) min_l = aProps.Mass(); + } } // Compute tolerances @@ -2673,30 +2892,41 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetInPlace (Handle(GEOM_Object) Tol_2D = dl_l * ( min_l * min_l) * ( 2. + dl_l); Tol_3D = dl_l * ( min_l * min_l * min_l ) * ( 3. + (3 * dl_l) + (dl_l * dl_l) ); + if (Tol_1D < Precision::Confusion()) Tol_1D = Precision::Confusion(); + if (Tol_2D < Precision::Confusion()) Tol_2D = Precision::Confusion(); + if (Tol_3D < Precision::Confusion()) Tol_3D = Precision::Confusion(); + Tol_Mass = Tol_3D; - if ( iType == TopAbs_FACE ) Tol_Mass = Tol_2D; + if ( iType == TopAbs_EDGE ) Tol_Mass = Tol_1D; + else if ( iType == TopAbs_FACE ) Tol_Mass = Tol_2D; // Compute the ShapeWhat Mass for ( ; Exp_aWhat.More(); Exp_aWhat.Next() ) { - if ( iType == TopAbs_SOLID ) BRepGProp::VolumeProperties(Exp_aWhat.Current(), aProps); - else if ( iType == TopAbs_FACE ) BRepGProp::SurfaceProperties(Exp_aWhat.Current(), aProps); + if ( iType == TopAbs_EDGE ) BRepGProp::LinearProperties(Exp_aWhat.Current(), aProps); + else if ( iType == TopAbs_FACE ) BRepGProp::SurfaceProperties(Exp_aWhat.Current(), aProps); + else BRepGProp::VolumeProperties(Exp_aWhat.Current(), aProps); aWhat_Mass += aProps.Mass(); } - // Finding the Sub-ShapeWhere + // Searching for the sub-shapes inside the ShapeWhere shape + TopTools_MapOfShape map_aWhere; for ( Exp_aWhere.ReInit(); Exp_aWhere.More(); Exp_aWhere.Next() ) { + if (!map_aWhere.Add(Exp_aWhere.Current())) + continue; // skip repeated shape to avoid mass addition GetShapeProperties( Exp_aWhere.Current(), tab_aWhere, aPnt ); for ( Exp_aWhat.ReInit(); Exp_aWhat.More(); Exp_aWhat.Next() ) { GetShapeProperties( Exp_aWhat.Current(), tab_aWhat, aPnt_aWhat ); if ( fabs(tab_aWhat[3] - tab_aWhere[3]) <= Tol_Mass && aPnt_aWhat.Distance(aPnt) <= Tol_1D ) isFound = true; - else if ( tab_aWhat[3] - ( tab_aWhere[3] > Tol_Mass) ) { - BRepClass3d_SolidClassifier SC_aWhere (Exp_aWhere.Current(), aPnt, Precision::Confusion()); - BRepClass3d_SolidClassifier SC_aWhat (Exp_aWhat.Current(), aPnt, Precision::Confusion()); - // Block construction 3D - if ( SC_aWhere.State() == TopAbs_IN && SC_aWhat.State() == TopAbs_IN ) isFound = true; - // Block construction 2D - else if ( SC_aWhere.State() == TopAbs_ON && SC_aWhat.State() == TopAbs_ON ) isFound = true; + else { + if ( (tab_aWhat[3] - tab_aWhere[3]) > Tol_Mass ) { + aPntShape = BRepBuilderAPI_MakeVertex( aPnt ).Shape(); + aVertex = TopoDS::Vertex( aPntShape ); + BRepExtrema_DistShapeShape aWhereDistance ( aVertex, Exp_aWhere.Current() ); + BRepExtrema_DistShapeShape aWhatDistance ( aVertex, Exp_aWhat.Current() ); + if ( fabs(aWhereDistance.Value() - aWhatDistance.Value()) <= Tol_1D ) + isFound = true; + } } if ( isFound ) { aWhereIndex = aWhereIndices.FindIndex(Exp_aWhere.Current()); @@ -2709,6 +2939,11 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetInPlace (Handle(GEOM_Object) if ( fabs( aWhat_Mass - aWhere_Mass ) <= Tol_Mass ) break; } + if (aModifiedList.Extent() == 0) { // Not found any Results + SetErrorCode(NOT_FOUND_ANY); + return NULL; + } + aModifiedArray = new TColStd_HArray1OfInteger (1, aModifiedList.Extent()); TColStd_ListIteratorOfListOfInteger anIterModif (aModifiedList); for (Standard_Integer imod = 1; anIterModif.More(); anIterModif.Next(), imod++) @@ -2805,7 +3040,7 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetInPlaceByHistory //Make a Python command Handle(GEOM_Function) aFunction = aResult->GetFunction(1); - GEOM::TPythonDump(aFunction) << aResult << " = geompy.GetInPlace(" + GEOM::TPythonDump(aFunction) << aResult << " = geompy.GetInPlaceByHistory(" << theShapeWhere << ", " << theShapeWhat << ")"; SetErrorCode(OK); @@ -2860,6 +3095,7 @@ void GEOMImpl_IShapesOperations::SortShapes(TopTools_ListOfShape& SL) Sort = Standard_False; for (Index=1; Index < MaxShapes; Index++) { + exchange = Standard_False; Standard_Real dMidXYZ = MidXYZ(OrderInd(Index)) - MidXYZ(OrderInd(Index+1)); Standard_Real dLength = Length(OrderInd(Index)) - Length(OrderInd(Index+1)); if ( dMidXYZ >= tol ) { @@ -2892,13 +3128,14 @@ void GEOMImpl_IShapesOperations::SortShapes(TopTools_ListOfShape& SL) val1 = (aXmin+aXmax)*999 + (aYmin+aYmax)*99 + (aZmin+aZmax)*0.9; box2.Get(aXmin, aYmin, aZmin, aXmax, aYmax, aZmax); val2 = (aXmin+aXmax)*999 + (aYmin+aYmax)*99 + (aZmin+aZmax)*0.9; - exchange = val1 > val2; -// cout << "box: " << val1<<" > "< val2; + if ((val1 - val2) >= tol) { + exchange = Standard_True; + } + //cout << "box: " << val1<<" > "< zmaxB2) zmaxB2 = P.Z(); } - //Compare the bounding boxes of both faces if(gp_Pnt(xminB1, yminB1, zminB1).Distance(gp_Pnt(xminB2, yminB2, zminB2)) > MAX_TOLERANCE) return false; @@ -3109,16 +3350,16 @@ static bool isSameFace(const TopoDS_Face& theFace1, const TopoDS_Face& theFace2) U = U11+rangeU*2.0/3.0; V = V11+rangeV*2.0/3.0; gp_Pnt P2 = S1->Value(U, V); - - if(!GeomLib_Tool::Parameters(S2, P1, MAX_TOLERANCE, U, V) || U < U21 || U > U22 || V < V21 || V > V22) + + if (!GeomLib_Tool::Parameters(S2, P1, MAX_TOLERANCE, U, V) || U < U21 || U > U22 || V < V21 || V > V22) return false; - - if(P1.Distance(S2->Value(U,V)) > MAX_TOLERANCE) return false; - - if(!GeomLib_Tool::Parameters(S2, P2, MAX_TOLERANCE, U, V) || U < U21 || U > U22 || V < V21 || V > V22) + + if (P1.Distance(S2->Value(U,V)) > MAX_TOLERANCE) return false; + + if (!GeomLib_Tool::Parameters(S2, P2, MAX_TOLERANCE, U, V) || U < U21 || U > U22 || V < V21 || V > V22) return false; - - if(P2.Distance(S2->Value(U, V)) > MAX_TOLERANCE) return false; + + if (P2.Distance(S2->Value(U, V)) > MAX_TOLERANCE) return false; //Check that each edge of the Face1 has a counterpart in the Face2 TopTools_MapOfOrientedShape aMap; diff --git a/src/GEOMImpl/GEOMImpl_IShapesOperations.hxx b/src/GEOMImpl/GEOMImpl_IShapesOperations.hxx index 6506de36e..3deb09d0a 100644 --- a/src/GEOMImpl/GEOMImpl_IShapesOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_IShapesOperations.hxx @@ -1,35 +1,35 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //============================================================================= // File : GEOMImpl_IShapesOperations.hxx // Created : // Author : modified by Lioka RAZAFINDRAZAKA (CEA) 22/06/2007 // Project : SALOME -// Copyright : CEA 2003 // $Header$ //============================================================================= +// #ifndef _GEOMImpl_IShapesOperations_HXX_ #define _GEOMImpl_IShapesOperations_HXX_ -using namespace std; - #include "GEOM_IOperations.hxx" #include "GEOMAlgo_State.hxx" @@ -56,20 +56,20 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations Standard_EXPORT Handle(GEOM_Object) MakeEdge (Handle(GEOM_Object) thePoint1, Handle(GEOM_Object) thePoint2); - Standard_EXPORT Handle(GEOM_Object) MakeWire (list theEdgesAndWires); + Standard_EXPORT Handle(GEOM_Object) MakeWire (std::list theEdgesAndWires); Standard_EXPORT Handle(GEOM_Object) MakeFace (Handle(GEOM_Object) theWire, const bool isPlanarWanted); - Standard_EXPORT Handle(GEOM_Object) MakeFaceWires (list theWires, + Standard_EXPORT Handle(GEOM_Object) MakeFaceWires (std::list theWires, const bool isPlanarWanted); - Standard_EXPORT Handle(GEOM_Object) MakeShell (list theShapes); + Standard_EXPORT Handle(GEOM_Object) MakeShell (std::list theShapes); Standard_EXPORT Handle(GEOM_Object) MakeSolidShell (Handle(GEOM_Object) theShell); - Standard_EXPORT Handle(GEOM_Object) MakeSolidShells (list theShells); + Standard_EXPORT Handle(GEOM_Object) MakeSolidShells (std::list theShells); - Standard_EXPORT Handle(GEOM_Object) MakeCompound (list theShapes); + Standard_EXPORT Handle(GEOM_Object) MakeCompound (std::list theShapes); Standard_EXPORT Handle(GEOM_Object) MakeGlueFaces (Handle(GEOM_Object) theShape, const Standard_Real theTolerance, @@ -80,7 +80,7 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations Standard_EXPORT Handle(GEOM_Object) MakeGlueFacesByList (Handle(GEOM_Object) theShape, const Standard_Real theTolerance, - list theFaces, + std::list theFaces, const Standard_Boolean doKeepNonSolids); Standard_EXPORT Handle(TColStd_HSequenceOfTransient) MakeExplode (Handle(GEOM_Object) theShape, @@ -254,13 +254,46 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations * \param theShape - the shape to explore * \param theShapeType - type of subshape of theShape * \param theState - required state - * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes + * \retval Handle(TColStd_HSequenceOfTransient) - found shape objects */ Standard_EXPORT Handle(TColStd_HSequenceOfTransient) - GetShapesOnBox(const Handle(GEOM_Object)& theBox, - const Handle(GEOM_Object)& theShape, - const Standard_Integer theShapeType, - GEOMAlgo_State theState); + GetShapesOnBox(const Handle(GEOM_Object)& theBox, + const Handle(GEOM_Object)& theShape, + const Standard_Integer theShapeType, + GEOMAlgo_State theState); + + /*! + * \brief Find IDs of subshapes complying with given status about surface + * \param theCheckShape - the shape to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes + */ + Standard_EXPORT Handle(TColStd_HSequenceOfInteger) + GetShapesOnShapeIDs(const Handle(GEOM_Object)& theCheckShape, + const Handle(GEOM_Object)& theShape, + const Standard_Integer theShapeType, + GEOMAlgo_State theState); + + /*! + * \brief Find subshapes complying with given status about surface + * \param theCheckShape - the shape to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \retval Handle(TColStd_HSequenceOfTransient) - found shape objects + */ + Standard_EXPORT Handle(TColStd_HSequenceOfTransient) + GetShapesOnShape(const Handle(GEOM_Object)& theCheckShape, + const Handle(GEOM_Object)& theShape, + const Standard_Integer theShapeType, + GEOMAlgo_State theState); + Standard_EXPORT Handle(GEOM_Object) + GetShapesOnShapeAsCompound(const Handle(GEOM_Object)& theCheckShape, + const Handle(GEOM_Object)& theShape, + const Standard_Integer theShapeType, + GEOMAlgo_State theState); public: /*! @@ -287,7 +320,7 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations Standard_EXPORT static bool CheckTriangulation (const TopoDS_Shape& theShape); private: - Handle(GEOM_Object) MakeShape (list theShapes, + Handle(GEOM_Object) MakeShape (std::list theShapes, const Standard_Integer theObjectType, const Standard_Integer theFunctionType, const TCollection_AsciiString& theMethodName); @@ -298,34 +331,34 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations /*! * \brief Checks if theShapeType parameter of GetShapesOnXXX() is OK - * \param theShapeType - the shape type to check - * \retval bool - result of the check + * \param theShapeType - the shape type to check + * \retval bool - result of the check */ bool checkTypeShapesOn(const Standard_Integer theShapeType); /*! * \brief Creates Geom_Plane - * \param theAx1 - edge defining plane normal - * \retval Handle(Geom_Surface) - resulting surface + * \param theAx1 - edge defining plane normal + * \retval Handle(Geom_Surface) - resulting surface */ Handle(Geom_Surface) makePlane(const TopoDS_Shape& theAx1); /*! * \brief Creates Geom_CylindricalSurface - * \param theAx1 - edge defining cylinder axis - * \param theRadius - cylinder radius - * \retval Handle(Geom_Surface) - resulting surface + * \param theAx1 - edge defining cylinder axis + * \param theRadius - cylinder radius + * \retval Handle(Geom_Surface) - resulting surface */ Handle(Geom_Surface) makeCylinder(const TopoDS_Shape& theAx1, const Standard_Real theRadius); /*! * \brief Find IDs of subshapes complying with given status about surface - * \param theSurface - the surface to check state of subshapes against - * \param theShape - the shape to explore - * \param theShapeType - type of subshape of theShape - * \param theState - required state - * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes + * \param theSurface - the surface to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes */ Handle(TColStd_HSequenceOfInteger) getShapesOnSurfaceIDs(const Handle(Geom_Surface)& theSurface, @@ -335,12 +368,12 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations /*! * \brief Find subshapes complying with given status about surface - * \param theSurface - the surface to check state of subshapes against - * \param theShape - the shape to explore - * \param theShapeType - type of subshape of theShape - * \param theState - required state - * \param theShapeEntries - outgoing entries like "entry1, entry2, ..." - * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes + * \param theSurface - the surface to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \param theShapeEntries - outgoing entries like "entry1, entry2, ..." + * \retval Handle(TColStd_HSequenceOfTransient) - found shape objects */ Handle(TColStd_HSequenceOfTransient) getShapesOnSurface(const Handle(Geom_Surface)& theSurface, @@ -351,14 +384,14 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations /*! * \brief Find IDs of subshapes complying with given status about quadrangle - * \param theShape - the shape to explore - * \param theShapeType - type of subshape of theShape - * \param theTopLeftPoint - top left quadrangle corner - * \param theTopRigthPoint - top right quadrangle corner - * \param theBottomLeftPoint - bottom left quadrangle corner - * \param theBottomRigthPoint - bottom right quadrangle corner - * \param theState - required state - * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theTopLeftPoint - top left quadrangle corner + * \param theTopRigthPoint - top right quadrangle corner + * \param theBottomLeftPoint - bottom left quadrangle corner + * \param theBottomRigthPoint - bottom right quadrangle corner + * \param theState - required state + * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes */ Handle(TColStd_HSequenceOfInteger) getShapesOnQuadrangleIDs (const Handle(GEOM_Object)& theShape, @@ -371,23 +404,37 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations /*! * \brief Find IDs of subshapes complying with given status about surface - * \param theBox - the box to check state of subshapes against - * \param theShape - the shape to explore - * \param theShapeType - type of subshape of theShape - * \param theState - required state - * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes + * \param theBox - the box to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes */ Handle(TColStd_HSequenceOfInteger) getShapesOnBoxIDs(const Handle(GEOM_Object)& theBox, const Handle(GEOM_Object)& theShape, const Standard_Integer theShapeType, GEOMAlgo_State theState); + /*! + * \brief Find IDs of subshapes complying with given status about surface + * \param theCheckShape - the shape to check state of subshapes against + * \param theShape - the shape to explore + * \param theShapeType - type of subshape of theShape + * \param theState - required state + * \retval Handle(TColStd_HSequenceOfInteger) - IDs of found subshapes + */ + Handle(TColStd_HSequenceOfInteger) getShapesOnShapeIDs + (const Handle(GEOM_Object)& theCheckShape, + const Handle(GEOM_Object)& theShape, + const Standard_Integer theShapeType, + GEOMAlgo_State theState); + /*! * \brief Find shape objects and their entries by their ids - * \param theShape - the main shape - * \param theShapeIDs - theShapeIDs - incoming shape ids - * \param theShapeEntries - outgoing entries like "entry1, entry2, ..." - * \retval Handle(TColStd_HSequenceOfTransient) - found shape objects + * \param theShape - the main shape + * \param theShapeIDs - theShapeIDs - incoming shape ids + * \param theShapeEntries - outgoing entries like "entry1, entry2, ..." + * \retval Handle(TColStd_HSequenceOfTransient) - found shape objects */ Handle(TColStd_HSequenceOfTransient) getObjectsShapesOn(const Handle(GEOM_Object)& theShape, @@ -396,9 +443,9 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations /*! * \brief Select the object created last - * \param theObj1 - Object 1 - * \param theObj2 - Object 2 - * \retval Handle(GEOM_Object) - selected object + * \param theObj1 - Object 1 + * \param theObj2 - Object 2 + * \retval Handle(GEOM_Object) - selected object */ static Handle(GEOM_Object) getCreatedLast(const Handle(GEOM_Object)& theObj1, const Handle(GEOM_Object)& theObj2); diff --git a/src/GEOMImpl/GEOMImpl_ISketcher.hxx b/src/GEOMImpl/GEOMImpl_ISketcher.hxx index cf2d46f21..2cec2cb61 100644 --- a/src/GEOMImpl/GEOMImpl_ISketcher.hxx +++ b/src/GEOMImpl/GEOMImpl_ISketcher.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an interface to a function for the Sketcher creation. - - +// #include "GEOM_Function.hxx" #define SKETCH_ARG_CMD 1 diff --git a/src/GEOMImpl/GEOMImpl_ISphere.hxx b/src/GEOMImpl/GEOMImpl_ISphere.hxx index 23ee4c245..785af6fd7 100644 --- a/src/GEOMImpl/GEOMImpl_ISphere.hxx +++ b/src/GEOMImpl/GEOMImpl_ISphere.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Sphere creation. - - +// #include "GEOM_Function.hxx" #define SPH_ARG_R 1 diff --git a/src/GEOMImpl/GEOMImpl_ISpline.hxx b/src/GEOMImpl/GEOMImpl_ISpline.hxx index 75d5ea6d0..3694a556d 100644 --- a/src/GEOMImpl/GEOMImpl_ISpline.hxx +++ b/src/GEOMImpl/GEOMImpl_ISpline.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Spline creation. - - +// #include "GEOM_Function.hxx" #define SPL_ARG_LENG 1 diff --git a/src/GEOMImpl/GEOMImpl_IThruSections.hxx b/src/GEOMImpl/GEOMImpl_IThruSections.hxx index 330d83c96..f2e2a55e2 100644 --- a/src/GEOMImpl/GEOMImpl_IThruSections.hxx +++ b/src/GEOMImpl/GEOMImpl_IThruSections.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Pipe creation. - - +// #include "GEOM_Function.hxx" #include diff --git a/src/GEOMImpl/GEOMImpl_ITorus.hxx b/src/GEOMImpl/GEOMImpl_ITorus.hxx index 86909ac8c..9edc7e359 100644 --- a/src/GEOMImpl/GEOMImpl_ITorus.hxx +++ b/src/GEOMImpl/GEOMImpl_ITorus.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Torus creation. - - +// #include "GEOM_Function.hxx" #define TORUS_ARG_CC 1 diff --git a/src/GEOMImpl/GEOMImpl_ITransformOperations.cxx b/src/GEOMImpl/GEOMImpl_ITransformOperations.cxx index 9bf0da1bf..5150f0a1c 100644 --- a/src/GEOMImpl/GEOMImpl_ITransformOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_ITransformOperations.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -178,7 +180,7 @@ Handle(GEOM_Object) GEOMImpl_ITransformOperations::TranslateDXDYDZ } //Make a Python command - GEOM::TPythonDump(aFunction) << "geompy.TrsfOp.TranslateDXDYDZ(" + GEOM::TPythonDump(aFunction) << "geompy.TranslateDXDYDZ(" << theObject << ", " << theX << ", " << theY << ", " << theZ << ")"; SetErrorCode(OK); @@ -350,7 +352,6 @@ Handle(GEOM_Object) GEOMImpl_ITransformOperations::TranslateVector SetErrorCode(OK); return theObject; } - //============================================================================= /*! * TranslateVectorCopy @@ -405,6 +406,73 @@ Handle(GEOM_Object) GEOMImpl_ITransformOperations::TranslateVectorCopy return aCopy; } +//============================================================================= +/*! + * TranslateVectorDistance + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_ITransformOperations::TranslateVectorDistance + (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theVector, double theDistance, bool theCopy) +{ + SetErrorCode(KO); + + if (theObject.IsNull() || theVector.IsNull()) return NULL; + + Handle(GEOM_Function) aLastFunction = theObject->GetLastFunction(); + if (aLastFunction.IsNull()) return NULL; //There is no function which creates an object to be moved + + Handle(GEOM_Object) aCopy; //Add a new Copy object + Handle(GEOM_Function) aFunction; + + //Add a translate function + if (theCopy) { + aCopy = GetEngine()->AddObject(GetDocID(), theObject->GetType()); + aFunction = aCopy->AddFunction(GEOMImpl_TranslateDriver::GetID(), TRANSLATE_VECTOR_DISTANCE); + } + else { + aFunction = theObject->AddFunction(GEOMImpl_TranslateDriver::GetID(), TRANSLATE_VECTOR_DISTANCE); + } + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_TranslateDriver::GetID()) return NULL; + + GEOMImpl_ITranslate aTI(aFunction); + aTI.SetVector(theVector->GetLastFunction()); + aTI.SetDistance(theDistance); +// aTI.SetShape(theObject->GetValue()); + aTI.SetOriginal(aLastFunction); + + //Compute the translation + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Translation driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + if (theCopy) { + GEOM::TPythonDump(aFunction) << aCopy << " = geompy.MakeTranslationVectorDistance(" + << theObject << ", " << theVector << ", " << theDistance << ")"; + SetErrorCode(OK); + return aCopy; + } + + GEOM::TPythonDump(aFunction) << "geompy.TranslateVectorDistance(" + << theObject << ", " << theVector << ", " << theDistance << ", " << theCopy << ")"; + SetErrorCode(OK); + return theObject; +} + //============================================================================= /*! * Translate1D @@ -964,14 +1032,11 @@ Handle(GEOM_Object) GEOMImpl_ITransformOperations::ScaleShape { SetErrorCode(KO); - if (theObject.IsNull() || thePoint.IsNull()) return NULL; + if (theObject.IsNull()) return NULL; Handle(GEOM_Function) anOriginal = theObject->GetLastFunction(); if (anOriginal.IsNull()) return NULL; //There is no function which creates an object to be scaled - // Get last functions of the arguments - Handle(GEOM_Function) aPF = thePoint->GetLastFunction(); - //Add a scale function Handle(GEOM_Function) aFunction = theObject->AddFunction(GEOMImpl_ScaleDriver::GetID(), SCALE_SHAPE); @@ -980,11 +1045,17 @@ Handle(GEOM_Object) GEOMImpl_ITransformOperations::ScaleShape //Check if the function is set correctly if (aFunction->GetDriverGUID() != GEOMImpl_ScaleDriver::GetID()) return NULL; + // Set arguments GEOMImpl_IScale aTI (aFunction); aTI.SetShape(anOriginal); - aTI.SetPoint(aPF); aTI.SetFactor(theFactor); + // Set point argument + if (!thePoint.IsNull()) { + Handle(GEOM_Function) aPF = thePoint->GetLastFunction(); + aTI.SetPoint(aPF); + } + //Compute the scale try { #if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 @@ -1019,7 +1090,7 @@ Handle(GEOM_Object) GEOMImpl_ITransformOperations::ScaleShapeCopy { SetErrorCode(KO); - if (theObject.IsNull() || thePoint.IsNull()) return NULL; + if (theObject.IsNull()) return NULL; Handle(GEOM_Function) anOriginal = theObject->GetLastFunction(); if (anOriginal.IsNull()) return NULL; //There is no function which creates an object to be scaled @@ -1035,11 +1106,17 @@ Handle(GEOM_Object) GEOMImpl_ITransformOperations::ScaleShapeCopy //Check if the function is set correctly if (aFunction->GetDriverGUID() != GEOMImpl_ScaleDriver::GetID()) return NULL; + // Set arguments GEOMImpl_IScale aTI (aFunction); aTI.SetShape(anOriginal); - aTI.SetPoint(thePoint->GetLastFunction()); aTI.SetFactor(theFactor); + // Set point argument + if (!thePoint.IsNull()) { + Handle(GEOM_Function) aPF = thePoint->GetLastFunction(); + aTI.SetPoint(aPF); + } + //Compute the scale try { #if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 @@ -1064,6 +1141,85 @@ Handle(GEOM_Object) GEOMImpl_ITransformOperations::ScaleShapeCopy return aCopy; } +//============================================================================= +/*! + * ScaleShapeAlongAxes + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_ITransformOperations::ScaleShapeAlongAxes (Handle(GEOM_Object) theObject, + Handle(GEOM_Object) thePoint, + double theFactorX, + double theFactorY, + double theFactorZ, + bool doCopy) +{ + SetErrorCode(KO); + + if (theObject.IsNull()) return NULL; + + Handle(GEOM_Function) anOriginal = theObject->GetLastFunction(); + if (anOriginal.IsNull()) return NULL; //There is no function which creates an object to be scaled + + //Add a scale function + Handle(GEOM_Object) aCopy; //Add a new Copy object + Handle(GEOM_Function) aFunction; + if (doCopy) { + aCopy = GetEngine()->AddObject(GetDocID(), theObject->GetType()); + aFunction = aCopy->AddFunction(GEOMImpl_ScaleDriver::GetID(), SCALE_SHAPE_AXES_COPY); + } + else { + aFunction = theObject->AddFunction(GEOMImpl_ScaleDriver::GetID(), SCALE_SHAPE_AXES); + } + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_ScaleDriver::GetID()) return NULL; + + // Set arguments + GEOMImpl_IScale aTI (aFunction); + aTI.SetShape(anOriginal); + aTI.SetFactorX(theFactorX); + aTI.SetFactorY(theFactorY); + aTI.SetFactorZ(theFactorZ); + + // Set point (optional argument) + if (!thePoint.IsNull()) { + Handle(GEOM_Function) aPF = thePoint->GetLastFunction(); + aTI.SetPoint(aPF); + } + + //Compute the scale + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Scale driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + SetErrorCode(OK); + + //Make a Python command + if (doCopy) { + GEOM::TPythonDump(aFunction) << aCopy << " = geompy.MakeScaleAlongAxes(" + << theObject << ", " << thePoint << ", " + << theFactorX << ", " << theFactorY << ", " << theFactorZ << ")"; + return aCopy; + } + + GEOM::TPythonDump(aFunction) << "geompy.TrsfOp.ScaleShapeAlongAxes(" + << theObject << ", " << thePoint << ", " + << theFactorX << ", " << theFactorY << ", " << theFactorZ << ")"; + return theObject; +} + //============================================================================= /*! * PositionShape @@ -1180,6 +1336,75 @@ Handle(GEOM_Object) GEOMImpl_ITransformOperations::PositionShapeCopy return aCopy; } +//============================================================================= +/*! + * PositionAlongPath + */ +//============================================================================= +Handle(GEOM_Object) GEOMImpl_ITransformOperations::PositionAlongPath + (Handle(GEOM_Object) theObject, Handle(GEOM_Object) thePath, + double theDistance, bool theCopy, bool theReverse) +{ + SetErrorCode(KO); + + if (theObject.IsNull() || thePath.IsNull()) return NULL; + + Handle(GEOM_Function) anOriginal = theObject->GetLastFunction(); + if (anOriginal.IsNull()) return NULL; //There is no function which creates an object to be set in position + + //Add a position function + Handle(GEOM_Function) aFunction; + Handle(GEOM_Object) aCopy; + + if (theCopy) { + aCopy = GetEngine()->AddObject(GetDocID(), theObject->GetType()); + aFunction = aCopy->AddFunction(GEOMImpl_PositionDriver::GetID(), POSITION_ALONG_PATH); + } + else + aFunction = theObject->AddFunction(GEOMImpl_PositionDriver::GetID(), POSITION_ALONG_PATH); + + if (aFunction.IsNull()) return NULL; + + //Check if the function is set correctly + if (aFunction->GetDriverGUID() != GEOMImpl_PositionDriver::GetID()) return NULL; + + GEOMImpl_IPosition aTI (aFunction); + aTI.SetShape(anOriginal); + aTI.SetPath(thePath->GetLastFunction()); + aTI.SetDistance(theDistance); + aTI.SetReverse(theReverse); + + //Compute the position + try { +#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 + OCC_CATCH_SIGNALS; +#endif + if (!GetSolver()->ComputeFunction(aFunction)) { + SetErrorCode("Position driver failed"); + return NULL; + } + } + catch (Standard_Failure) { + Handle(Standard_Failure) aFail = Standard_Failure::Caught(); + SetErrorCode(aFail->GetMessageString()); + return NULL; + } + + //Make a Python command + if (theCopy) { + GEOM::TPythonDump(aFunction) << aCopy << " = geompy.PositionAlongPath(" + << theObject << ", " << thePath << ", " << theDistance << ", " << theCopy << ", " << theReverse << ")"; + SetErrorCode(OK); + return aCopy; + } + + GEOM::TPythonDump(aFunction) << "geompy.TrsfOp.PositionAlongPath(" + << theObject << ", " << thePath << ", " << theDistance << ", " << theCopy << ", " << theReverse << ")"; + + SetErrorCode(OK); + return theObject; +} + //============================================================================= /*! * Rotate @@ -1229,7 +1454,7 @@ Handle(GEOM_Object) GEOMImpl_ITransformOperations::Rotate (Handle(GEOM_Object) t } //Make a Python command - GEOM::TPythonDump(aFunction) << "geompy.TrsfOp.Rotate(" << theObject + GEOM::TPythonDump(aFunction) << "geompy.Rotate(" << theObject << ", " << theAxis << ", " << theAngle * 180.0 / PI << "*math.pi/180.0)"; SetErrorCode(OK); diff --git a/src/GEOMImpl/GEOMImpl_ITransformOperations.hxx b/src/GEOMImpl/GEOMImpl_ITransformOperations.hxx index 843c8a12a..99c52595e 100644 --- a/src/GEOMImpl/GEOMImpl_ITransformOperations.hxx +++ b/src/GEOMImpl/GEOMImpl_ITransformOperations.hxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOMImpl_ITransformOperations_HXX_ #define _GEOMImpl_ITransformOperations_HXX_ @@ -27,96 +28,131 @@ #include "GEOM_Object.hxx" #include -class GEOMImpl_ITransformOperations : public GEOM_IOperations { +class GEOMImpl_ITransformOperations : public GEOM_IOperations +{ public: Standard_EXPORT GEOMImpl_ITransformOperations(GEOM_Engine* theEngine, int theDocID); Standard_EXPORT ~GEOMImpl_ITransformOperations(); Standard_EXPORT Handle(GEOM_Object) TranslateTwoPoints (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) thePoint1, - Handle(GEOM_Object) thePoint2); + Handle(GEOM_Object) thePoint1, + Handle(GEOM_Object) thePoint2); Standard_EXPORT Handle(GEOM_Object) TranslateTwoPointsCopy (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) thePoint1, - Handle(GEOM_Object) thePoint2); + Handle(GEOM_Object) thePoint1, + Handle(GEOM_Object) thePoint2); - Standard_EXPORT Handle(GEOM_Object) TranslateDXDYDZ (Handle(GEOM_Object) theObject, double theX, double theY, double theZ); + Standard_EXPORT Handle(GEOM_Object) TranslateDXDYDZ (Handle(GEOM_Object) theObject, + double theX, double theY, double theZ); - Standard_EXPORT Handle(GEOM_Object) TranslateDXDYDZCopy (Handle(GEOM_Object) theObject, double theX, double theY, double theZ); + Standard_EXPORT Handle(GEOM_Object) TranslateDXDYDZCopy (Handle(GEOM_Object) theObject, + double theX, double theY, double theZ); Standard_EXPORT Handle(GEOM_Object) TranslateVector (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) theVector); + Handle(GEOM_Object) theVector); Standard_EXPORT Handle(GEOM_Object) TranslateVectorCopy (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) theVector); + Handle(GEOM_Object) theVector); - Standard_EXPORT Handle(GEOM_Object) Translate1D (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theVector, double theStep, Standard_Integer theNbTimes); + Standard_EXPORT Handle(GEOM_Object) TranslateVectorDistance (Handle(GEOM_Object) theObject, + Handle(GEOM_Object) theVector, + double theDistance, + bool theCopy); - Standard_EXPORT Handle(GEOM_Object) Translate2D (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theVector, double theStep1, Standard_Integer theNbTimes1, - Handle(GEOM_Object) theVector2, double theStep2, Standard_Integer theNbTimes2); + Standard_EXPORT Handle(GEOM_Object) Translate1D (Handle(GEOM_Object) theObject, + Handle(GEOM_Object) theVector, + double theStep, + Standard_Integer theNbTimes); + + Standard_EXPORT Handle(GEOM_Object) Translate2D (Handle(GEOM_Object) theObject, + Handle(GEOM_Object) theVector, + double theStep1, + Standard_Integer theNbTimes1, + Handle(GEOM_Object) theVector2, + double theStep2, + Standard_Integer theNbTimes2); Standard_EXPORT Handle(GEOM_Object) MirrorPlane (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) thePlane); + Handle(GEOM_Object) thePlane); Standard_EXPORT Handle(GEOM_Object) MirrorPlaneCopy (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) thePlane); + Handle(GEOM_Object) thePlane); Standard_EXPORT Handle(GEOM_Object) MirrorAxis (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) theAxis); + Handle(GEOM_Object) theAxis); Standard_EXPORT Handle(GEOM_Object) MirrorAxisCopy (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) theAxis); + Handle(GEOM_Object) theAxis); Standard_EXPORT Handle(GEOM_Object) MirrorPoint (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) thePoint); + Handle(GEOM_Object) thePoint); Standard_EXPORT Handle(GEOM_Object) MirrorPointCopy (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) thePoint); + Handle(GEOM_Object) thePoint); Standard_EXPORT Handle(GEOM_Object) OffsetShape (Handle(GEOM_Object) theObject, - double theOffset); + double theOffset); Standard_EXPORT Handle(GEOM_Object) OffsetShapeCopy (Handle(GEOM_Object) theObject, - double theOffset); + double theOffset); Standard_EXPORT Handle(GEOM_Object) ScaleShape (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) thePoint, - double theFactor); + Handle(GEOM_Object) thePoint, + double theFactor); Standard_EXPORT Handle(GEOM_Object) ScaleShapeCopy (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) thePoint, - double theFactor); + Handle(GEOM_Object) thePoint, + double theFactor); + + Standard_EXPORT Handle(GEOM_Object) ScaleShapeAlongAxes (Handle(GEOM_Object) theObject, + Handle(GEOM_Object) thePoint, + double theFactorX, + double theFactorY, + double theFactorZ, + bool doCopy); Standard_EXPORT Handle(GEOM_Object) PositionShape (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) theStartLCS, - Handle(GEOM_Object) theEndLCS); + Handle(GEOM_Object) theStartLCS, + Handle(GEOM_Object) theEndLCS); Standard_EXPORT Handle(GEOM_Object) PositionShapeCopy (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) theStartLCS, - Handle(GEOM_Object) theEndLCS); + Handle(GEOM_Object) theStartLCS, + Handle(GEOM_Object) theEndLCS); - Standard_EXPORT Handle(GEOM_Object) Rotate (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theAxis, double theAngle); + Standard_EXPORT Handle(GEOM_Object) PositionAlongPath (Handle(GEOM_Object) theObject, + Handle(GEOM_Object) thePath, + double theDistance, + bool theCopy, + bool theReverse); - Standard_EXPORT Handle(GEOM_Object) RotateCopy (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theAxis, double theAngle); + Standard_EXPORT Handle(GEOM_Object) Rotate (Handle(GEOM_Object) theObject, + Handle(GEOM_Object) theAxis, + double theAngle); - Standard_EXPORT Handle(GEOM_Object) Rotate1D (Handle(GEOM_Object) theObject, Handle(GEOM_Object) theAxis, Standard_Integer theNbTimes); - - Standard_EXPORT Handle(GEOM_Object) Rotate2D (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) theAxis, - double theAngle, - Standard_Integer theNbTimes1, - double theStep, - Standard_Integer theNbTimes2); + Standard_EXPORT Handle(GEOM_Object) RotateCopy (Handle(GEOM_Object) theObject, + Handle(GEOM_Object) theAxis, + double theAngle); + + Standard_EXPORT Handle(GEOM_Object) Rotate1D (Handle(GEOM_Object) theObject, + Handle(GEOM_Object) theAxis, + Standard_Integer theNbTimes); + + Standard_EXPORT Handle(GEOM_Object) Rotate2D (Handle(GEOM_Object) theObject, + Handle(GEOM_Object) theAxis, + double theAngle, + Standard_Integer theNbTimes1, + double theStep, + Standard_Integer theNbTimes2); Standard_EXPORT Handle(GEOM_Object) RotateThreePoints (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) theCentPoint, - Handle(GEOM_Object) thePoint1, - Handle(GEOM_Object) thePoint2); + Handle(GEOM_Object) theCentPoint, + Handle(GEOM_Object) thePoint1, + Handle(GEOM_Object) thePoint2); - Standard_EXPORT Handle(GEOM_Object) RotateThreePointsCopy (Handle(GEOM_Object) theObject, - Handle(GEOM_Object) theCentPoint, - Handle(GEOM_Object) thePoint1, - Handle(GEOM_Object) thePoint2); + Standard_EXPORT Handle(GEOM_Object) RotateThreePointsCopy (Handle(GEOM_Object) theObject, + Handle(GEOM_Object) theCentPoint, + Handle(GEOM_Object) thePoint1, + Handle(GEOM_Object) thePoint2); }; diff --git a/src/GEOMImpl/GEOMImpl_ITranslate.hxx b/src/GEOMImpl/GEOMImpl_ITranslate.hxx index 0ca4201e4..4c6692440 100755 --- a/src/GEOMImpl/GEOMImpl_ITranslate.hxx +++ b/src/GEOMImpl/GEOMImpl_ITranslate.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the Translate creation. - - +// #include "GEOM_Function.hxx" #define TRANSLATE_ARG_POINT1 1 @@ -33,7 +34,8 @@ #define TRANSLATE_ARG_VECTOR2 11 #define TRANSLATE_ARG_DX 12 #define TRANSLATE_ARG_DY 13 -#define TRANSLATE_ARG_DZ 14 +#define TRANSLATE_ARG_DZ 14 +#define TRANSLATE_ARG_DISTANCE 15 class GEOMImpl_ITranslate { @@ -81,6 +83,10 @@ class GEOMImpl_ITranslate double GetDX() { return _func->GetReal(TRANSLATE_ARG_DX); } + void SetDistance(double theDistance) { return _func->SetReal(TRANSLATE_ARG_DISTANCE, theDistance); } + + double GetDistance() { return _func->GetReal(TRANSLATE_ARG_DISTANCE); } + void SetDY(double theDY) { return _func->SetReal(TRANSLATE_ARG_DY, theDY); } double GetDY() { return _func->GetReal(TRANSLATE_ARG_DY); } diff --git a/src/GEOMImpl/GEOMImpl_IVector.hxx b/src/GEOMImpl/GEOMImpl_IVector.hxx index 63b72f370..fc63787ac 100644 --- a/src/GEOMImpl/GEOMImpl_IVector.hxx +++ b/src/GEOMImpl/GEOMImpl_IVector.hxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //NOTE: This is an intreface to a function for the vector creation. - - +// #include "GEOM_Function.hxx" #define VEC_ARG_DX 1 diff --git a/src/GEOMImpl/GEOMImpl_ImportDriver.cxx b/src/GEOMImpl/GEOMImpl_ImportDriver.cxx index 3249a485e..4a309a0b6 100644 --- a/src/GEOMImpl/GEOMImpl_ImportDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ImportDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_ImportDriver.hxx b/src/GEOMImpl/GEOMImpl_ImportDriver.hxx index 318ade68e..c165d1aab 100644 --- a/src/GEOMImpl/GEOMImpl_ImportDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_ImportDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_ImportDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_ImportDriver_HeaderFile #define _GEOMImpl_ImportDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_LineDriver.cxx b/src/GEOMImpl/GEOMImpl_LineDriver.cxx index 4f7b9263c..9e9a18e05 100644 --- a/src/GEOMImpl/GEOMImpl_LineDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_LineDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_LineDriver.hxx b/src/GEOMImpl/GEOMImpl_LineDriver.hxx index 72041a016..4f5d8e2c5 100644 --- a/src/GEOMImpl/GEOMImpl_LineDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_LineDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_LineDriver.hxx // Module : GEOMImpl - +// #ifndef _GEOMImpl_LineDriver_HeaderFile #define _GEOMImpl_LineDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_MarkerDriver.cxx b/src/GEOMImpl/GEOMImpl_MarkerDriver.cxx index b4d605340..bbe8a5f38 100644 --- a/src/GEOMImpl/GEOMImpl_MarkerDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_MarkerDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_MarkerDriver.hxx b/src/GEOMImpl/GEOMImpl_MarkerDriver.hxx index d95295692..90222bdd9 100644 --- a/src/GEOMImpl/GEOMImpl_MarkerDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_MarkerDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_MarkerDriver.hxx // Module : GEOMImpl - +// #ifndef _GEOMImpl_MarkerDriver_HeaderFile #define _GEOMImpl_MarkerDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_MeasureDriver.cxx b/src/GEOMImpl/GEOMImpl_MeasureDriver.cxx index 69ffeabd8..b9dff3e14 100644 --- a/src/GEOMImpl/GEOMImpl_MeasureDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_MeasureDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_MeasureDriver.hxx b/src/GEOMImpl/GEOMImpl_MeasureDriver.hxx index cceeb6df0..9463fed63 100644 --- a/src/GEOMImpl/GEOMImpl_MeasureDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_MeasureDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_MeasureDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_MeasureDriver_HeaderFile #define _GEOMImpl_MeasureDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_MirrorDriver.cxx b/src/GEOMImpl/GEOMImpl_MirrorDriver.cxx index 218e1fee2..69a8c599d 100644 --- a/src/GEOMImpl/GEOMImpl_MirrorDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_MirrorDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_MirrorDriver.hxx b/src/GEOMImpl/GEOMImpl_MirrorDriver.hxx index f8dfd7676..3fafbd3aa 100644 --- a/src/GEOMImpl/GEOMImpl_MirrorDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_MirrorDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_MirrorDriver.hxx // Module : GEOMImpl - +// #ifndef _GEOMImpl_MirrorDriver_HeaderFile #define _GEOMImpl_MirrorDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_OffsetDriver.cxx b/src/GEOMImpl/GEOMImpl_OffsetDriver.cxx index 42d437e71..ff68f7e8d 100644 --- a/src/GEOMImpl/GEOMImpl_OffsetDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_OffsetDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_OffsetDriver.hxx b/src/GEOMImpl/GEOMImpl_OffsetDriver.hxx index b9ea5c641..b171523fe 100644 --- a/src/GEOMImpl/GEOMImpl_OffsetDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_OffsetDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_OffsetDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_OffsetDriver_HeaderFile #define _GEOMImpl_OffsetDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx b/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx index b68177098..40d68aa88 100644 --- a/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_PartitionDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -46,6 +47,9 @@ #include #include +#include +#include + #include #include #include @@ -258,7 +262,15 @@ Standard_Integer GEOMImpl_PartitionDriver::Execute(TFunction_Logbook& log) const if (aShape.IsNull()) return 0; if (!BRepAlgo::IsValid(aShape)) { - Standard_ConstructionError::Raise("Partition aborted : non valid shape result"); + // 08.07.2008 added by skl during fixing bug 19761 from Mantis + ShapeFix_ShapeTolerance aSFT; + aSFT.LimitTolerance(aShape, Precision::Confusion(), + Precision::Confusion(), TopAbs_SHAPE); + Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aShape); + aSfs->Perform(); + aShape = aSfs->Shape(); + if (!BRepAlgo::IsValid(aShape)) + Standard_ConstructionError::Raise("Partition aborted : non valid shape result"); } aFunction->SetValue(aShape); diff --git a/src/GEOMImpl/GEOMImpl_PartitionDriver.hxx b/src/GEOMImpl/GEOMImpl_PartitionDriver.hxx index 095d3c1e5..4c0e0d684 100644 --- a/src/GEOMImpl/GEOMImpl_PartitionDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_PartitionDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_PartitionDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_PartitionDriver_HeaderFile #define _GEOMImpl_PartitionDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_PipeDriver.cxx b/src/GEOMImpl/GEOMImpl_PipeDriver.cxx index df73fdb80..430cb0ef9 100644 --- a/src/GEOMImpl/GEOMImpl_PipeDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_PipeDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -25,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -146,7 +148,7 @@ static bool FillForOtherEdges(const TopoDS_Shape& F1, ShapeAnalysis_Edge sae; while(1) { if(!aMapVertEdge1.Contains(VS1)) - cout<<" FillForOtherEdges: map aMapVertEdge1 not contains key VS1"<edge for created pipe edges @@ -1506,7 +1508,7 @@ static TopoDS_Shape CreatePipeShellsWithoutPath(GEOMImpl_IPipe* aCI) //if(nbff!=3) continue; - cout<<" make pipe for "<IsKind(STANDARD_TYPE(Geom_RectangularTrimmedSurface))) { @@ -1550,12 +1552,12 @@ static TopoDS_Shape CreatePipeShellsWithoutPath(GEOMImpl_IPipe* aCI) TopoDS_Edge E1 = TopoDS::Edge(anExpE.Current()); //nbee++; if(!FF.Contains(E1)) - cout<<"map FF not contains key E1"<Add(anExp.Current()); } aSewing->Perform(); - cout<<" shell for face "<SewedShape(); //BRepTools::Write(aSewShape,"/dn02/users_Linux/skl/work/Bugs/14857/sew.brep"); if( aSewShape.ShapeType() == TopAbs_SHELL ) { @@ -1810,16 +1812,16 @@ static TopoDS_Shape CreatePipeShellsWithoutPath(GEOMImpl_IPipe* aCI) B.MakeSolid(aSolid); B.Add(aSolid,aShell); B.Add(aComp,aSolid); - cout<<" solid for face "<GetBase(); + Handle(GEOM_Function) aRefVec = aCIBN->GetVector(); + TopoDS_Shape aShapeBase = aRefBase->GetValue(); + TopoDS_Shape aShapeVec = aRefVec->GetValue(); + + if (aShapeBase.IsNull()) { + if(aCIBN) delete aCIBN; + Standard_NullObject::Raise("MakePipe aborted : null base argument"); + } + + TopoDS_Shape aProf; + if( aShapeBase.ShapeType() == TopAbs_VERTEX ) { + aProf = aShapeBase; + } + else if( aShapeBase.ShapeType() == TopAbs_EDGE) { + aProf = BRepBuilderAPI_MakeWire(TopoDS::Edge(aShapeBase)).Shape(); + } + else if( aShapeBase.ShapeType() == TopAbs_WIRE) { + aProf = aShapeBase; + } + else if( aShapeBase.ShapeType() == TopAbs_FACE) { + TopExp_Explorer wexp(aShapeBase,TopAbs_WIRE); + aProf = wexp.Current(); + } + else { + Standard_TypeMismatch::Raise + ("MakePipe aborted : invalid type of base"); + } + BRepOffsetAPI_MakePipeShell PipeBuilder(aWirePath); + PipeBuilder.Add(aProf); + + if (aShapeVec.IsNull()) { + if(aCIBN) delete aCIBN; + Standard_NullObject::Raise + ("MakePipe aborted : null vector argument"); + } + if (aShapeVec.ShapeType() != TopAbs_EDGE) + Standard_TypeMismatch::Raise + ("MakePipe aborted: invalid type of vector"); + TopoDS_Edge anEdge = TopoDS::Edge(aShapeVec); + TopoDS_Vertex V1, V2; + TopExp::Vertices(anEdge, V1, V2, Standard_True); + if (V1.IsNull() || V2.IsNull()) + Standard_NullObject::Raise + ("MakePipe aborted: vector is not defined"); + gp_Vec aVec(BRep_Tool::Pnt(V1), BRep_Tool::Pnt(V2)); + gp_Dir BiNormal(aVec); + PipeBuilder.SetMode(BiNormal); + PipeBuilder.Build(); + if( aShapeBase.ShapeType() == TopAbs_FACE) { + PipeBuilder.MakeSolid(); + } + + return PipeBuilder.Shape(); +} + + //======================================================================= //function : Execute //purpose : @@ -1870,6 +1938,8 @@ Standard_Integer GEOMImpl_PipeDriver::Execute(TFunction_Logbook& log) const aCI = new GEOMImpl_IPipeShellSect(aFunction); else if(aType == PIPE_SHELLS_WITHOUT_PATH) aCI = new GEOMImpl_IPipeShellSect(aFunction); + else if(aType == PIPE_BI_NORMAL_ALONG_VECTOR) + aCI = new GEOMImpl_IPipeBiNormal(aFunction); else return 0; @@ -1880,7 +1950,7 @@ Standard_Integer GEOMImpl_PipeDriver::Execute(TFunction_Logbook& log) const TopoDS_Shape aShapePath = aRefPath->GetValue(); if (aShapePath.IsNull()) { - cout<<"Driver : path is null"< #include diff --git a/src/GEOMImpl/GEOMImpl_PlaneDriver.hxx b/src/GEOMImpl/GEOMImpl_PlaneDriver.hxx index 926d1e905..8eb27642a 100644 --- a/src/GEOMImpl/GEOMImpl_PlaneDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_PlaneDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_PlaneDriver.hxx // Module : GEOMImpl - +// #ifndef _GEOMImpl_PlaneDriver_HeaderFile #define _GEOMImpl_PlaneDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_PointDriver.cxx b/src/GEOMImpl/GEOMImpl_PointDriver.cxx index a511c53ea..accc93779 100644 --- a/src/GEOMImpl/GEOMImpl_PointDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_PointDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -36,7 +37,11 @@ #include #include +#include #include +#include +#include + //======================================================================= //function : GetID @@ -57,6 +62,7 @@ GEOMImpl_PointDriver::GEOMImpl_PointDriver() { } + //======================================================================= //function : Execute //purpose : @@ -74,7 +80,8 @@ Standard_Integer GEOMImpl_PointDriver::Execute(TFunction_Logbook& log) const if (aType == POINT_XYZ) { aPnt = gp_Pnt(aPI.GetX(), aPI.GetY(), aPI.GetZ()); - } else if (aType == POINT_XYZ_REF) { + } + else if (aType == POINT_XYZ_REF) { Handle(GEOM_Function) aRefPoint = aPI.GetRef(); TopoDS_Shape aRefShape = aRefPoint->GetValue(); @@ -85,8 +92,8 @@ Standard_Integer GEOMImpl_PointDriver::Execute(TFunction_Logbook& log) const gp_Pnt P = BRep_Tool::Pnt(TopoDS::Vertex(aRefShape)); aPnt = gp_Pnt(P.X() + aPI.GetX(), P.Y() + aPI.GetY(), P.Z() + aPI.GetZ()); - } else if (aType == POINT_CURVE_PAR) { - + } + else if (aType == POINT_CURVE_PAR) { Handle(GEOM_Function) aRefCurve = aPI.GetCurve(); TopoDS_Shape aRefShape = aRefCurve->GetValue(); if (aRefShape.ShapeType() != TopAbs_EDGE) { @@ -97,8 +104,24 @@ Standard_Integer GEOMImpl_PointDriver::Execute(TFunction_Logbook& log) const Handle(Geom_Curve) aCurve = BRep_Tool::Curve(TopoDS::Edge(aRefShape), aFP, aLP); aP = aFP + (aLP - aFP) * aPI.GetParameter(); aPnt = aCurve->Value(aP); - - } else if (aType == POINT_LINES_INTERSECTION) { + } + else if (aType == POINT_SURFACE_PAR) { + Handle(GEOM_Function) aRefCurve = aPI.GetSurface(); + TopoDS_Shape aRefShape = aRefCurve->GetValue(); + if (aRefShape.ShapeType() != TopAbs_FACE) { + Standard_TypeMismatch::Raise + ("Point On Surface creation aborted : surface shape is not a face"); + } + TopoDS_Face F = TopoDS::Face(aRefShape); + Handle(Geom_Surface) aSurf = BRep_Tool::Surface(F); + Standard_Real U1,U2,V1,V2; + //aSurf->Bounds(U1,U2,V1,V2); + ShapeAnalysis::GetFaceUVBounds(F,U1,U2,V1,V2); + Standard_Real U = U1 + (U2-U1) * aPI.GetParameter(); + Standard_Real V = V1 + (V2-V1) * aPI.GetParameter2(); + aPnt = aSurf->Value(U,V); + } + else if (aType == POINT_LINES_INTERSECTION) { Handle(GEOM_Function) aRef1 = aPI.GetLine1(); Handle(GEOM_Function) aRef2 = aPI.GetLine2(); diff --git a/src/GEOMImpl/GEOMImpl_PointDriver.hxx b/src/GEOMImpl/GEOMImpl_PointDriver.hxx index 50f098be7..acffa0196 100644 --- a/src/GEOMImpl/GEOMImpl_PointDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_PointDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_PointDriver.hxx // Module : GEOMImpl - +// #ifndef _GEOMImpl_PointDriver_HeaderFile #define _GEOMImpl_PointDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_PolylineDriver.cxx b/src/GEOMImpl/GEOMImpl_PolylineDriver.cxx index a079f608c..5a295e43b 100644 --- a/src/GEOMImpl/GEOMImpl_PolylineDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_PolylineDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_PolylineDriver.hxx b/src/GEOMImpl/GEOMImpl_PolylineDriver.hxx index 0f9b7a6a8..197087d66 100644 --- a/src/GEOMImpl/GEOMImpl_PolylineDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_PolylineDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_PolylineDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_PolylineDriver_HeaderFile #define _GEOMImpl_PolylineDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_PositionDriver.cxx b/src/GEOMImpl/GEOMImpl_PositionDriver.cxx index 789575c79..2bdec65f3 100644 --- a/src/GEOMImpl/GEOMImpl_PositionDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_PositionDriver.cxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - //#include - +// #include #include #include @@ -29,19 +30,33 @@ // OCCT Includes #include +#include +#include #include +#include +#include #include #include #include +#include +#include #include #include +#include #include #include +#include #include #include +#include +#include +#include +#include #include #include +#include +#include //======================================================================= //function : GetID @@ -130,6 +145,183 @@ Standard_Integer GEOMImpl_PositionDriver::Execute(TFunction_Logbook& log) const BRepBuilderAPI_Transform aBRepTrsf (aShapeBase, aTrsf, Standard_False); aShape = aBRepTrsf.Shape(); } + else if (aType == POSITION_ALONG_PATH) { + Handle(GEOM_Function) aRefShape = aCI.GetShape(); + Handle(GEOM_Function) aPathShape = aCI.GetPath(); + double aValue = aCI.GetDistance(); + bool aReversed = aCI.GetReverse(); + + TopoDS_Shape aShapeBase = aRefShape->GetValue(); + TopoDS_Shape aPath = aPathShape->GetValue(); + + if (aShapeBase.IsNull() || aPath.IsNull()) + return 0; + + //Get a Center Of Mass Of Base Object + GProp_GProps aSystem; + gp_Pnt aCenterMass; + if (aShapeBase.ShapeType() == TopAbs_VERTEX) { + aCenterMass = BRep_Tool::Pnt(TopoDS::Vertex(aShapeBase)); + } else if (aShapeBase.ShapeType() == TopAbs_EDGE || aShapeBase.ShapeType() == TopAbs_WIRE) { + BRepGProp::LinearProperties(aShapeBase, aSystem); + aCenterMass = aSystem.CentreOfMass(); + } else if (aShapeBase.ShapeType() == TopAbs_FACE || aShapeBase.ShapeType() == TopAbs_SHELL) { + BRepGProp::SurfaceProperties(aShapeBase, aSystem); + aCenterMass = aSystem.CentreOfMass(); + } else { + BRepGProp::VolumeProperties(aShapeBase, aSystem); + aCenterMass = aSystem.CentreOfMass(); + } + + TopoDS_Shape aTrimmedPath; + gp_Trsf aTrsf; + Handle(Geom_Curve) aCurve; + Standard_Real aFirst =0.,aLast=0.; + Standard_Real aParam = 0.; + Standard_Real aLength = 0.; + + gp_Pnt aPFirst, aPLast; + + if ( aPath.ShapeType() == TopAbs_EDGE ) { // The Path is Edge + TopoDS_Edge anEdge = TopoDS::Edge(aPath); + + BRep_Tool::Range(anEdge,aFirst,aLast); + aCurve = BRep_Tool::Curve(anEdge,aFirst,aLast); + if (aReversed) + aCurve = aCurve->Reversed(); + + aCurve->D0(aFirst, aPFirst); + aCurve->D0(aLast, aPLast); + + // Translate a CenterMass of Base Shape to the start of the path + if ( !aPFirst.IsEqual(aCenterMass, gp::Resolution()) ) { + gp_Trsf aCurTrsf; + aCurTrsf.SetTranslation(aCenterMass, aPFirst); + aTrsf.PreMultiply(aCurTrsf); + } + aParam = aFirst + aValue*(aLast - aFirst); // Calculate parameter + } else if ( aPath.ShapeType() == TopAbs_WIRE ) { // The path Shape is Wire + TopoDS_Wire aWire = TopoDS::Wire(aPath); + + // fix edges order + Handle(ShapeFix_Wire) aFixWire = new ShapeFix_Wire; + aFixWire->Load(aWire); + aFixWire->FixReorder(); + aWire = aFixWire->Wire(); + + TopExp_Explorer ex; + TopTools_SequenceOfShape Edges; + Standard_Real nbEdges = 0.; + BRepTools_WireExplorer aWE (aWire); + for (; aWE.More(); aWE.Next(), nbEdges++) // Explore a Wire on Edges + Edges.Append(aWE.Current()); + + Standard_Real aSummOfLen =0.; + Standard_Real aCurLen =0.; + GeomAdaptor_Curve aAdC; + + for(int i=1; i<=Edges.Length(); i++) { // Calculate summary Lenght of edges + TopoDS_Edge anEdge = TopoDS::Edge(Edges.Value(i)); + BRep_Tool::Range(anEdge,aFirst,aLast); + aCurve = BRep_Tool::Curve(anEdge,aFirst,aLast); + aAdC.Load(aCurve,aFirst,aLast); + aCurLen = GCPnts_AbscissaPoint::Length(aAdC,aFirst,aLast); + aSummOfLen += aCurLen; + } + + // Move BaseShape to the Start Of the Curve + TopoDS_Edge anEdge; + if (!aReversed) + anEdge = TopoDS::Edge(Edges.Value(1)); + else + anEdge = TopoDS::Edge(Edges.Value(Edges.Length())); + + BRep_Tool::Range(anEdge,aFirst,aLast); + aCurve = BRep_Tool::Curve(anEdge,aFirst,aLast); + aCurve->D0(aFirst, aPFirst); + aCurve->D0(aLast, aPLast); + if ( !aPFirst.IsEqual(aCenterMass, gp::Resolution()) ) { + gp_Trsf aCurTrsf; + if (aReversed && anEdge.Orientation() == TopAbs_FORWARD) + aPFirst = aPLast; + + aCurTrsf.SetTranslation(aCenterMass, aPFirst); + aTrsf.PreMultiply(aCurTrsf); + } + + Standard_Real aWireLen = aSummOfLen*aValue; + aSummOfLen = 0; + for(int i=1; i<=Edges.Length(); i++) { + TopoDS_Edge anEdge; + if (!aReversed) + anEdge = TopoDS::Edge(Edges.Value(i)); + else + anEdge = TopoDS::Edge(Edges.Value(Edges.Length() - i + 1)); + + aCurve = BRep_Tool::Curve(anEdge,aFirst,aLast); + BRep_Tool::Range(anEdge,aFirst,aLast); + + if (!aReversed && anEdge.Orientation() == TopAbs_REVERSED) + aCurve = aCurve->Reversed(); + + if (aReversed && anEdge.Orientation() == TopAbs_FORWARD) + aCurve = aCurve->Reversed(); + + aAdC.Load(aCurve,aFirst,aLast); + aCurLen = GCPnts_AbscissaPoint::Length(aAdC,aFirst,aLast); + + if ( aWireLen > (aSummOfLen + aCurLen) ) { // Transform a Base object along this Edge + aSummOfLen += aCurLen; + gp_Pnt aP1, aP2; + gp_Vec aStartVec1, aStartVec2, aDestVec1, aDestVec2; + aCurve->D2(aFirst, aP1, aStartVec1, aStartVec2 ); + aCurve->D2(aLast, aP2, aDestVec1, aDestVec2 ); + gp_Trsf aCurTrsf; + if (aStartVec2.Magnitude() > gp::Resolution() && aDestVec2.Magnitude() > gp::Resolution()) { + gp_Ax3 aStartAx3(aP1, aStartVec1, aStartVec2); + gp_Ax3 aDestAx3(aP2, aDestVec1, aDestVec2); + aCurTrsf.SetDisplacement(aStartAx3, aDestAx3); + } else + aCurTrsf.SetTranslation(aP1, aP2); + + aTrsf.PreMultiply(aCurTrsf); + } + else { + aLength = aWireLen - aSummOfLen; + GCPnts_AbscissaPoint anAbsc(aAdC,aLength,aFirst); + if(anAbsc.IsDone()) + aParam = anAbsc.Parameter(); + break; + } + } + } else + return 0; // Unknown Type + + gp_Trsf aCurTrsf; + gp_Pnt aP1, aP2; + gp_Vec aStartVec1, aStartVec2, aDestVec1, aDestVec2; + aCurve->D2(aFirst, aP1, aStartVec1, aStartVec2 ); + aCurve->D2(aParam, aP2, aDestVec1, aDestVec2 ); + + if (aStartVec2.Magnitude() > gp::Resolution() && aDestVec2.Magnitude() > gp::Resolution()) { + gp_Ax3 aStartAx3(aP1, aStartVec1, aStartVec2); + gp_Ax3 aDestAx3(aP2, aDestVec1, aDestVec2); + aCurTrsf.SetDisplacement(aStartAx3, aDestAx3); + } else + aCurTrsf.SetTranslation(aP1, aP2); + + aTrsf.PreMultiply(aCurTrsf); + + if ( !aPFirst.IsEqual(aCenterMass, gp::Resolution()) ) { + gp_Trsf aCurTrsf; + aCurTrsf.SetTranslation(aPFirst, aCenterMass); + aTrsf.PreMultiply(aCurTrsf); + } + + // Perform transformation + BRepBuilderAPI_Transform aBRepTrsf (aShapeBase, aTrsf, Standard_False); + aShape = aBRepTrsf.Shape(); + } else return 0; diff --git a/src/GEOMImpl/GEOMImpl_PositionDriver.hxx b/src/GEOMImpl/GEOMImpl_PositionDriver.hxx index 64d2a19d1..96d147fa7 100644 --- a/src/GEOMImpl/GEOMImpl_PositionDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_PositionDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_PositionDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_PositionDriver_HeaderFile #define _GEOMImpl_PositionDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_PrismDriver.cxx b/src/GEOMImpl/GEOMImpl_PrismDriver.cxx index 11bb15ad6..0cd63b150 100644 --- a/src/GEOMImpl/GEOMImpl_PrismDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_PrismDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -129,7 +130,21 @@ Standard_Integer GEOMImpl_PrismDriver::Execute(TFunction_Logbook& log) const } } } - } else { + } else if (aType == PRISM_BASE_DXDYDZ || aType == PRISM_BASE_DXDYDZ_2WAYS) { + Handle(GEOM_Function) aRefBase = aCI.GetBase(); + TopoDS_Shape aShapeBase = aRefBase->GetValue(); + gp_Vec aV (aCI.GetDX(), aCI.GetDY(), aCI.GetDZ()); + if (aV.Magnitude() > gp::Resolution()) { + if (aType == PRISM_BASE_DXDYDZ_2WAYS) + { + gp_Trsf aTrsf; + aTrsf.SetTranslation(-aV); + BRepBuilderAPI_Transform aTransformation(aShapeBase, aTrsf, Standard_False); + aShapeBase = aTransformation.Shape(); + aV = aV * 2; + } + aShape = BRepPrimAPI_MakePrism(aShapeBase, aV, Standard_False).Shape(); + } } if (aShape.IsNull()) return 0; diff --git a/src/GEOMImpl/GEOMImpl_PrismDriver.hxx b/src/GEOMImpl/GEOMImpl_PrismDriver.hxx index 27ce618c9..a1f890d9f 100644 --- a/src/GEOMImpl/GEOMImpl_PrismDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_PrismDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_PrismDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_PrismDriver_HeaderFile #define _GEOMImpl_PrismDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_RevolutionDriver.cxx b/src/GEOMImpl/GEOMImpl_RevolutionDriver.cxx index 9d3d91ca3..f4e8026b1 100644 --- a/src/GEOMImpl/GEOMImpl_RevolutionDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_RevolutionDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_RevolutionDriver.hxx b/src/GEOMImpl/GEOMImpl_RevolutionDriver.hxx index 1290b8339..b1e7b15ad 100644 --- a/src/GEOMImpl/GEOMImpl_RevolutionDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_RevolutionDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_RevolutionDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_RevolutionDriver_HeaderFile #define _GEOMImpl_RevolutionDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_RotateDriver.cxx b/src/GEOMImpl/GEOMImpl_RotateDriver.cxx index c6655fa58..cff3a9b51 100644 --- a/src/GEOMImpl/GEOMImpl_RotateDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_RotateDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -98,6 +99,7 @@ Standard_Integer GEOMImpl_RotateDriver::Execute(TFunction_Logbook& log) const gp_Dir aDir(gp_Vec(aP1, aP2)); gp_Ax1 anAx1(aP1, aDir); Standard_Real anAngle = RI.GetAngle(); + if (fabs(anAngle) < Precision::Angular()) anAngle += 2*PI; // NPAL19665,19769 aTrsf.SetRotation(anAx1, anAngle); //NPAL18620: performance problem: multiple locations are accumulated @@ -106,7 +108,9 @@ Standard_Integer GEOMImpl_RotateDriver::Execute(TFunction_Logbook& log) const //aShape = aTransformation.Shape(); TopLoc_Location aLocOrig = anOriginal.Location(); gp_Trsf aTrsfOrig = aLocOrig.Transformation(); - TopLoc_Location aLocRes (aTrsf * aTrsfOrig); + //TopLoc_Location aLocRes (aTrsf * aTrsfOrig); // gp_Trsf::Multiply() has a bug + aTrsfOrig.PreMultiply(aTrsf); + TopLoc_Location aLocRes (aTrsfOrig); aShape = anOriginal.Located(aLocRes); } else if (aType == ROTATE_THREE_POINTS || aType == ROTATE_THREE_POINTS_COPY) { @@ -125,11 +129,12 @@ Standard_Integer GEOMImpl_RotateDriver::Execute(TFunction_Logbook& log) const aP1 = BRep_Tool::Pnt(TopoDS::Vertex(aV1)); aP2 = BRep_Tool::Pnt(TopoDS::Vertex(aV2)); - gp_Vec aVec1(aCP, aP1); - gp_Vec aVec2(aCP, aP2); - gp_Dir aDir(aVec1 ^ aVec2); - gp_Ax1 anAx1(aCP, aDir); + gp_Vec aVec1 (aCP, aP1); + gp_Vec aVec2 (aCP, aP2); + gp_Dir aDir (aVec1 ^ aVec2); + gp_Ax1 anAx1 (aCP, aDir); Standard_Real anAngle = aVec1.Angle(aVec2); + if (fabs(anAngle) < Precision::Angular()) anAngle += 2*PI; // NPAL19665 aTrsf.SetRotation(anAx1, anAngle); //NPAL18620: performance problem: multiple locations are accumulated // in shape and need a great time to process @@ -137,7 +142,9 @@ Standard_Integer GEOMImpl_RotateDriver::Execute(TFunction_Logbook& log) const //aShape = aTransformation.Shape(); TopLoc_Location aLocOrig = anOriginal.Location(); gp_Trsf aTrsfOrig = aLocOrig.Transformation(); - TopLoc_Location aLocRes (aTrsf * aTrsfOrig); + //TopLoc_Location aLocRes (aTrsf * aTrsfOrig); // gp_Trsf::Multiply() has a bug + aTrsfOrig.PreMultiply(aTrsf); + TopLoc_Location aLocRes (aTrsfOrig); aShape = anOriginal.Located(aLocRes); } else if (aType == ROTATE_1D) { @@ -165,20 +172,26 @@ Standard_Integer GEOMImpl_RotateDriver::Execute(TFunction_Logbook& log) const gp_Trsf aTrsfOrig = aLocOrig.Transformation(); for (int i = 0; i < nbtimes; i++ ) { - aTrsf.SetRotation(AX1, i*angle*PI180); + if (i == 0) { // NPAL19665 + B.Add(aCompound, anOriginal); + } + else { + aTrsf.SetRotation(AX1, i*angle*PI180); + //TopLoc_Location aLocRes (aTrsf * aTrsfOrig); // gp_Trsf::Multiply() has a bug + gp_Trsf aTrsfNew (aTrsfOrig); + aTrsfNew.PreMultiply(aTrsf); + TopLoc_Location aLocRes (aTrsfNew); + B.Add(aCompound, anOriginal.Located(aLocRes)); + } //NPAL18620: performance problem: multiple locations are accumulated // in shape and need a great time to process //BRepBuilderAPI_Transform aBRepTransformation(anOriginal, aTrsf, Standard_False); //B.Add(aCompound, aBRepTransformation.Shape()); - TopLoc_Location aLocRes (aTrsf * aTrsfOrig); - B.Add(aCompound, anOriginal.Located(aLocRes)); } aShape = aCompound; } else if (aType == ROTATE_2D) { - Standard_Real DX, DY, DZ; - //Get direction Handle(GEOM_Function) anAxis = RI.GetAxis(); if(anAxis.IsNull()) return 0; @@ -219,7 +232,7 @@ Standard_Integer GEOMImpl_RotateDriver::Execute(TFunction_Logbook& log) const if ( P1.IsEqual(P2, Precision::Confusion() ) ) return 0; - gp_Vec Vec(P1.X()-P2.X(), P1.Y()-P2.Y(), P1.Z()-P2.Z()); + gp_Vec Vec (P1.X()-P2.X(), P1.Y()-P2.Y(), P1.Z()-P2.Z()); Vec.Normalize(); Standard_Integer nbtimes2 = RI.GetNbIter2(); @@ -234,21 +247,35 @@ Standard_Integer GEOMImpl_RotateDriver::Execute(TFunction_Logbook& log) const TopoDS_Compound aCompound; BRep_Builder B; B.MakeCompound( aCompound ); + + Standard_Real DX, DY, DZ; + for (int i = 0; i < nbtimes2; i++ ) { + DX = i * step * Vec.X(); + DY = i * step * Vec.Y(); + DZ = i * step * Vec.Z(); + aVec.SetCoord( DX, DY, DZ ); + aTrsf1.SetTranslation(aVec); + for (int j = 0; j < nbtimes1; j++ ) { - DX = i * step * Vec.X(); - DY = i * step * Vec.Y(); - DZ = i * step * Vec.Z(); - aVec.SetCoord( DX, DY, DZ ); - aTrsf1.SetTranslation(aVec); - aTrsf2.SetRotation(AX1, j*ang*PI180); + if (j == 0) { // NPAL19665 + TopLoc_Location aLocRes (aTrsf1 * aTrsfOrig); + B.Add(aCompound, anOriginal.Located(aLocRes)); + } + else { + aTrsf2.SetRotation(AX1, j*ang*PI180); + //TopLoc_Location aLocRes (aTrsf2 * aTrsf1 * aTrsfOrig); // gp_Trsf::Multiply() has a bug + gp_Trsf aTrsfNew (aTrsfOrig); + aTrsfNew.PreMultiply(aTrsf1); + aTrsfNew.PreMultiply(aTrsf2); + TopLoc_Location aLocRes (aTrsfNew); + B.Add(aCompound, anOriginal.Located(aLocRes)); + } //NPAL18620: performance problem: multiple locations are accumulated // in shape and need a great time to process //BRepBuilderAPI_Transform aBRepTrsf1 (anOriginal, aTrsf1, Standard_False); //BRepBuilderAPI_Transform aBRepTrsf2 (aBRepTrsf1.Shape(), aTrsf2, Standard_False); //B.Add(aCompound, aBRepTrsf2.Shape()); - TopLoc_Location aLocRes (aTrsf2 * aTrsf1 * aTrsfOrig); - B.Add(aCompound, anOriginal.Located(aLocRes)); } } diff --git a/src/GEOMImpl/GEOMImpl_RotateDriver.hxx b/src/GEOMImpl/GEOMImpl_RotateDriver.hxx index e88b65697..5b94668ba 100644 --- a/src/GEOMImpl/GEOMImpl_RotateDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_RotateDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_RotateDriver.hxx // Module : GEOMImpl - +// #ifndef _GEOMImpl_RotateDriver_HeaderFile #define _GEOMImpl_RotateDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_ScaleDriver.cxx b/src/GEOMImpl/GEOMImpl_ScaleDriver.cxx index 88342f057..0c4dea8f4 100644 --- a/src/GEOMImpl/GEOMImpl_ScaleDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ScaleDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include @@ -25,9 +26,15 @@ #include #include +#include +#include + #include +#include #include #include +#include + #include #include #include @@ -37,6 +44,8 @@ #include #include +#include +#include //======================================================================= //function : GetID @@ -73,11 +82,17 @@ Standard_Integer GEOMImpl_ScaleDriver::Execute(TFunction_Logbook& log) const if (aType == SCALE_SHAPE || aType == SCALE_SHAPE_COPY) { Handle(GEOM_Function) aRefShape = aCI.GetShape(); - Handle(GEOM_Function) aRefPoint = aCI.GetPoint(); TopoDS_Shape aShapeBase = aRefShape->GetValue(); - TopoDS_Shape aShapePnt = aRefPoint->GetValue(); - if (aShapeBase.IsNull() || aShapePnt.IsNull()) return 0; - if (aShapePnt.ShapeType() != TopAbs_VERTEX) return 0; + if (aShapeBase.IsNull()) return 0; + + gp_Pnt aP (0,0,0); + Handle(GEOM_Function) aRefPoint = aCI.GetPoint(); + if (!aRefPoint.IsNull()) { + TopoDS_Shape aShapePnt = aRefPoint->GetValue(); + if (aShapePnt.IsNull()) return 0; + if (aShapePnt.ShapeType() != TopAbs_VERTEX) return 0; + aP = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt)); + } // Bug 6839: Check for standalone (not included in faces) degenerated edges TopTools_IndexedDataMapOfShapeListOfShape aEFMap; @@ -94,18 +109,84 @@ Standard_Integer GEOMImpl_ScaleDriver::Execute(TFunction_Logbook& log) const } // Perform Scaling - gp_Pnt aP = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt)); gp_Trsf aTrsf; aTrsf.SetScale(aP, aCI.GetFactor()); BRepBuilderAPI_Transform aBRepTrsf (aShapeBase, aTrsf, Standard_False); aShape = aBRepTrsf.Shape(); - } else { + } + else if (aType == SCALE_SHAPE_AXES || aType == SCALE_SHAPE_AXES_COPY) { + Handle(GEOM_Function) aRefShape = aCI.GetShape(); + TopoDS_Shape aShapeBase = aRefShape->GetValue(); + if (aShapeBase.IsNull()) return 0; + + bool isP = false; + gp_Pnt aP (0,0,0); + Handle(GEOM_Function) aRefPoint = aCI.GetPoint(); + if (!aRefPoint.IsNull()) { + TopoDS_Shape aShapePnt = aRefPoint->GetValue(); + if (aShapePnt.IsNull()) return 0; + if (aShapePnt.ShapeType() != TopAbs_VERTEX) return 0; + aP = BRep_Tool::Pnt(TopoDS::Vertex(aShapePnt)); + isP = true; + } + + // Bug 6839: Check for standalone (not included in faces) degenerated edges + TopTools_IndexedDataMapOfShapeListOfShape aEFMap; + TopExp::MapShapesAndAncestors(aShapeBase, TopAbs_EDGE, TopAbs_FACE, aEFMap); + Standard_Integer i, nbE = aEFMap.Extent(); + for (i = 1; i <= nbE; i++) { + TopoDS_Shape anEdgeSh = aEFMap.FindKey(i); + if (BRep_Tool::Degenerated(TopoDS::Edge(anEdgeSh))) { + const TopTools_ListOfShape& aFaces = aEFMap.FindFromIndex(i); + if (aFaces.IsEmpty()) + Standard_ConstructionError::Raise + ("Scaling aborted : cannot scale standalone degenerated edge"); + } + } + + // Perform Scaling + gp_GTrsf aGTrsf; + gp_Mat rot (aCI.GetFactorX(), 0, 0, + 0, aCI.GetFactorY(), 0, + 0, 0, aCI.GetFactorZ()); + aGTrsf.SetVectorialPart(rot); + + if (isP) { + gp_Pnt anO (0,0,0); + if (anO.Distance(aP) > Precision::Confusion()) { + gp_GTrsf aGTrsfP0; + aGTrsfP0.SetTranslationPart(anO.XYZ() - aP.XYZ()); + gp_GTrsf aGTrsf0P; + aGTrsf0P.SetTranslationPart(aP.XYZ()); + //aGTrsf = aGTrsf0P * aGTrsf * aGTrsfP0; + aGTrsf = aGTrsf0P.Multiplied(aGTrsf); + aGTrsf = aGTrsf.Multiplied(aGTrsfP0); + } + } + + BRepBuilderAPI_GTransform aBRepGTrsf (aShapeBase, aGTrsf, Standard_False); + if (!aBRepGTrsf.IsDone()) + Standard_ConstructionError::Raise("Scaling not done"); + aShape = aBRepGTrsf.Shape(); + } + else { } if (aShape.IsNull()) return 0; - if (!BRepAlgo::IsValid(aShape)) - Standard_ConstructionError::Raise("Scaling aborted : non valid shape result"); + BRepCheck_Analyzer ana (aShape, Standard_False); + if (!ana.IsValid()) { + ShapeFix_ShapeTolerance aSFT; + aSFT.LimitTolerance(aShape,Precision::Confusion(),Precision::Confusion()); + Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aShape); + aSfs->SetPrecision(Precision::Confusion()); + aSfs->Perform(); + aShape = aSfs->Shape(); + + ana.Init(aShape, Standard_False); + if (!ana.IsValid()) + Standard_ConstructionError::Raise("Scaling aborted : algorithm has produced an invalid shape result"); + } aFunction->SetValue(aShape); diff --git a/src/GEOMImpl/GEOMImpl_ScaleDriver.hxx b/src/GEOMImpl/GEOMImpl_ScaleDriver.hxx index bbc2f7c9c..9aca82323 100644 --- a/src/GEOMImpl/GEOMImpl_ScaleDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_ScaleDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_ScaleDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_ScaleDriver_HeaderFile #define _GEOMImpl_ScaleDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx b/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx index 349b59f09..43af2ed5c 100644 --- a/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ShapeDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_ShapeDriver.hxx b/src/GEOMImpl/GEOMImpl_ShapeDriver.hxx index fa0a0023d..45bc5e65b 100644 --- a/src/GEOMImpl/GEOMImpl_ShapeDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_ShapeDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_ShapeDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_ShapeDriver_HeaderFile #define _GEOMImpl_ShapeDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_SketcherDriver.cxx b/src/GEOMImpl/GEOMImpl_SketcherDriver.cxx index 2a6eb0a7b..6642592d1 100644 --- a/src/GEOMImpl/GEOMImpl_SketcherDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_SketcherDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_SketcherDriver.hxx b/src/GEOMImpl/GEOMImpl_SketcherDriver.hxx index 6d84a4d06..5d5362b25 100644 --- a/src/GEOMImpl/GEOMImpl_SketcherDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_SketcherDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_SketcherDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_SketcherDriver_HeaderFile #define _GEOMImpl_SketcherDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_SphereDriver.cxx b/src/GEOMImpl/GEOMImpl_SphereDriver.cxx index c8d175adc..9bc4f0e8d 100644 --- a/src/GEOMImpl/GEOMImpl_SphereDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_SphereDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_SphereDriver.hxx b/src/GEOMImpl/GEOMImpl_SphereDriver.hxx index 065fcb22c..e80729ca0 100644 --- a/src/GEOMImpl/GEOMImpl_SphereDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_SphereDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_SphereDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_SphereDriver_HeaderFile #define _GEOMImpl_SphereDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_SplineDriver.cxx b/src/GEOMImpl/GEOMImpl_SplineDriver.cxx index 4f5832006..11aaea41f 100644 --- a/src/GEOMImpl/GEOMImpl_SplineDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_SplineDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_SplineDriver.hxx b/src/GEOMImpl/GEOMImpl_SplineDriver.hxx index e09a0446a..c615207c1 100644 --- a/src/GEOMImpl/GEOMImpl_SplineDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_SplineDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_SplineDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_SplineDriver_HeaderFile #define _GEOMImpl_SplineDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_ThruSectionsDriver.cxx b/src/GEOMImpl/GEOMImpl_ThruSectionsDriver.cxx index 07855fdcc..2f99b2580 100644 --- a/src/GEOMImpl/GEOMImpl_ThruSectionsDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_ThruSectionsDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,F -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_ThruSectionsDriver.hxx b/src/GEOMImpl/GEOMImpl_ThruSectionsDriver.hxx index b0b25d9c5..2aacffe9a 100644 --- a/src/GEOMImpl/GEOMImpl_ThruSectionsDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_ThruSectionsDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_ThruSectionsDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_ThruSectionsDriver_HeaderFile #define _GEOMImpl_ThruSectionsDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_TorusDriver.cxx b/src/GEOMImpl/GEOMImpl_TorusDriver.cxx index 810757b74..7ccffe4bd 100644 --- a/src/GEOMImpl/GEOMImpl_TorusDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_TorusDriver.cxx @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include diff --git a/src/GEOMImpl/GEOMImpl_TorusDriver.hxx b/src/GEOMImpl/GEOMImpl_TorusDriver.hxx index f27520ed1..56db37230 100644 --- a/src/GEOMImpl/GEOMImpl_TorusDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_TorusDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_TorusDriver.ixx // Module : GEOMImpl - +// #ifndef _GEOMImpl_TorusDriver_HeaderFile #define _GEOMImpl_TorusDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_TranslateDriver.cxx b/src/GEOMImpl/GEOMImpl_TranslateDriver.cxx index ad967865b..57689ec57 100644 --- a/src/GEOMImpl/GEOMImpl_TranslateDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_TranslateDriver.cxx @@ -1,34 +1,39 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include #include #include #include -#include -#include -#include -#include + +#include +#include + +#include #include +#include +#include + #include #include #include @@ -37,7 +42,10 @@ #include #include #include -#include + +#include +#include +#include //======================================================================= //function : GetID @@ -122,6 +130,26 @@ Standard_Integer GEOMImpl_TranslateDriver::Execute(TFunction_Logbook& log) const TopLoc_Location aLocRes (aTrsf * aTrsfOrig); aShape = anOriginal.Located(aLocRes); } + else if (aType == TRANSLATE_VECTOR_DISTANCE) { + Handle(GEOM_Function) aVector = TI.GetVector(); + double aDistance = TI.GetDistance(); + if(aVector.IsNull()) return 0; + TopoDS_Shape aV = aVector->GetValue(); + if(aV.IsNull() || aV.ShapeType() != TopAbs_EDGE) return 0; + TopoDS_Edge anEdge = TopoDS::Edge(aV); + + aP1 = BRep_Tool::Pnt(TopExp::FirstVertex(anEdge)); + aP2 = BRep_Tool::Pnt(TopExp::LastVertex(anEdge)); + + gp_Vec aVec (aP1, aP2); + aVec.Normalize(); + aTrsf.SetTranslation(aVec * aDistance); + + TopLoc_Location aLocOrig = anOriginal.Location(); + gp_Trsf aTrsfOrig = aLocOrig.Transformation(); + TopLoc_Location aLocRes (aTrsf * aTrsfOrig); + aShape = anOriginal.Located(aLocRes); + } else if (aType == TRANSLATE_XYZ || aType == TRANSLATE_XYZ_COPY) { gp_Vec aVec (TI.GetDX(), TI.GetDY(), TI.GetDZ()); aTrsf.SetTranslation(aVec); @@ -217,9 +245,22 @@ Standard_Integer GEOMImpl_TranslateDriver::Execute(TFunction_Logbook& log) const } else return 0; - if (aShape.IsNull()) return 0; + BRepCheck_Analyzer ana (aShape, Standard_True); + if (!ana.IsValid()) { + ShapeFix_ShapeTolerance aSFT; + aSFT.LimitTolerance(aShape,Precision::Confusion(),Precision::Confusion()); + Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aShape); + aSfs->SetPrecision(Precision::Confusion()); + aSfs->Perform(); + aShape = aSfs->Shape(); + + ana.Init(aShape, Standard_False); + if (!ana.IsValid()) + Standard_ConstructionError::Raise("Scaling aborted : algorithm has produced an invalid shape result"); + } + aFunction->SetValue(aShape); log.SetTouched(Label()); diff --git a/src/GEOMImpl/GEOMImpl_TranslateDriver.hxx b/src/GEOMImpl/GEOMImpl_TranslateDriver.hxx index d8294a2d3..d8875696b 100644 --- a/src/GEOMImpl/GEOMImpl_TranslateDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_TranslateDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_TranslateDriver.hxx // Module : GEOMImpl - +// #ifndef _GEOMImpl_TranslateDriver_HeaderFile #define _GEOMImpl_TranslateDriver_HeaderFile diff --git a/src/GEOMImpl/GEOMImpl_Types.hxx b/src/GEOMImpl/GEOMImpl_Types.hxx index be924b3f7..49cf5542f 100755 --- a/src/GEOMImpl/GEOMImpl_Types.hxx +++ b/src/GEOMImpl/GEOMImpl_Types.hxx @@ -1,24 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // //GEOM_Object types - +// #define GEOM_COPY 0 #define GEOM_IMPORT 1 @@ -45,8 +47,9 @@ #define GEOM_ELLIPSE 18 #define GEOM_CIRC_ARC 19 -#define GEOM_FILLET 20 -#define GEOM_CHAMFER 21 +#define GEOM_FILLET 20 +#define GEOM_FILLET_2D 45 +#define GEOM_CHAMFER 21 #define GEOM_EDGE 22 #define GEOM_WIRE 23 @@ -81,6 +84,14 @@ #define GEOM_THRUSECTIONS 40 +#define GEOM_COMPOUNDFILTER 41 + +#define GEOM_SHAPES_ON_SHAPE 42 + +#define GEOM_ELLIPSE_ARC 43 + +#define GEOM_3DSKETCHER 44 + //GEOM_Function types #define COPY_WITH_REF 1 @@ -93,6 +104,7 @@ #define POINT_XYZ_REF 2 #define POINT_CURVE_PAR 3 #define POINT_LINES_INTERSECTION 4 +#define POINT_SURFACE_PAR 5 //#define POINT_FACE_PAR 5 #define VECTOR_TWO_PNT 1 @@ -111,6 +123,7 @@ #define TRANSLATE_TWO_POINTS 1 #define TRANSLATE_VECTOR 2 +#define TRANSLATE_VECTOR_DISTANCE 9 #define TRANSLATE_TWO_POINTS_COPY 3 #define TRANSLATE_VECTOR_COPY 4 #define TRANSLATE_1D 5 @@ -137,11 +150,14 @@ #define SCALE_SHAPE 1 #define SCALE_SHAPE_COPY 2 +#define SCALE_SHAPE_AXES 3 +#define SCALE_SHAPE_AXES_COPY 4 #define POSITION_SHAPE 1 #define POSITION_SHAPE_COPY 2 #define POSITION_SHAPE_FROM_GLOBAL 3 #define POSITION_SHAPE_FROM_GLOBAL_COPY 4 +#define POSITION_ALONG_PATH 5 #define TORUS_RR 1 #define TORUS_PNT_VEC_RR 2 @@ -149,6 +165,13 @@ #define BOX_DX_DY_DZ 1 #define BOX_TWO_PNT 2 +#define FACE_OBJ_H_W 1 +#define FACE_H_W 2 + +#define DISK_PNT_VEC_R 1 +#define DISK_THREE_PNT 2 +#define DISK_R 3 + #define CYLINDER_R_H 1 #define CYLINDER_PNT_VEC_R_H 2 @@ -162,6 +185,8 @@ #define PRISM_BASE_TWO_PNT 2 #define PRISM_BASE_VEC_H_2WAYS 3 #define PRISM_BASE_TWO_PNT_2WAYS 4 +#define PRISM_BASE_DXDYDZ 5 +#define PRISM_BASE_DXDYDZ_2WAYS 6 #define REVOLUTION_BASE_AXIS_ANGLE 1 #define REVOLUTION_BASE_AXIS_ANGLE_2WAYS 2 @@ -170,6 +195,7 @@ #define PIPE_DIFFERENT_SECTIONS 2 #define PIPE_SHELL_SECTIONS 3 #define PIPE_SHELLS_WITHOUT_PATH 4 +#define PIPE_BI_NORMAL_ALONG_VECTOR 5 #define THRUSECTIONS_RULED 1 #define THRUSECTIONS_SMOOTHED 2 @@ -194,8 +220,9 @@ #define ELLIPSE_PNT_VEC_RR 1 -#define CIRC_ARC_THREE_PNT 1 -#define CIRC_ARC_CENTER 2 +#define CIRC_ARC_THREE_PNT 1 +#define CIRC_ARC_CENTER 2 +#define ELLIPSE_ARC_CENTER_TWO_PNT 3 #define FILLET_SHAPE_ALL 1 #define FILLET_SHAPE_EDGES 2 @@ -203,6 +230,8 @@ #define FILLET_SHAPE_EDGES_2R 4 #define FILLET_SHAPE_FACES_2R 5 +#define FILLET_2D_SHAPE_VERTEXES 1 + #define CHAMFER_SHAPE_ALL 1 #define CHAMFER_SHAPE_EDGE 2 #define CHAMFER_SHAPE_FACES 3 @@ -246,6 +275,8 @@ #define GROUP_FUNCTION 1 +#define SHAPES_ON_SHAPE 1 + // Blocks #define BLOCK_FACE_FOUR_PNT 1 #define BLOCK_FACE_FOUR_EDGES 2 diff --git a/src/GEOMImpl/GEOMImpl_VectorDriver.cxx b/src/GEOMImpl/GEOMImpl_VectorDriver.cxx index 0be034733..e925d0e8b 100644 --- a/src/GEOMImpl/GEOMImpl_VectorDriver.cxx +++ b/src/GEOMImpl/GEOMImpl_VectorDriver.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include diff --git a/src/GEOMImpl/GEOMImpl_VectorDriver.hxx b/src/GEOMImpl/GEOMImpl_VectorDriver.hxx index 38c92fd52..7bf4a469f 100644 --- a/src/GEOMImpl/GEOMImpl_VectorDriver.hxx +++ b/src/GEOMImpl/GEOMImpl_VectorDriver.hxx @@ -1,25 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOMImpl_VectorDriver.hxx // Module : GEOMImpl - +// #ifndef _GEOMImpl_VectorDriver_HeaderFile #define _GEOMImpl_VectorDriver_HeaderFile diff --git a/src/GEOMImpl/GEOM_GEOMImpl.hxx b/src/GEOMImpl/GEOM_GEOMImpl.hxx index a8f4a439f..b101bae15 100755 --- a/src/GEOMImpl/GEOM_GEOMImpl.hxx +++ b/src/GEOMImpl/GEOM_GEOMImpl.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOM_GEOMImpl.hxx // Author : Alexander A. BORODIN // Module : GEOM - +// #ifndef _GEOM_GEOMImpl_HXX_ #define _GEOM_GEOMImpl_HXX_ diff --git a/src/GEOMImpl/Makefile.am b/src/GEOMImpl/Makefile.am index 0c025b8b7..eb02b2929 100644 --- a/src/GEOMImpl/Makefile.am +++ b/src/GEOMImpl/Makefile.am @@ -1,30 +1,31 @@ -# GEOM GEOM : implementaion of GEOM_Gen.idl +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM GEOM : implementaion of GEOM_Gen.idl # File : Makefile.in # Author : Damien COQUERET (OCC) # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header: - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets @@ -32,103 +33,203 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am lib_LTLIBRARIES = libGEOMimpl.la # header files -salomeinclude_HEADERS = \ - GEOMImpl_Gen.hxx \ - GEOMImpl_IBasicOperations.hxx \ - GEOMImpl_ITransformOperations.hxx \ - GEOMImpl_IHealingOperations.hxx \ - GEOMImpl_I3DPrimOperations.hxx \ - GEOMImpl_IShapesOperations.hxx \ - GEOMImpl_IBlocksOperations.hxx \ - GEOMImpl_IBooleanOperations.hxx \ - GEOMImpl_ICurvesOperations.hxx \ - GEOMImpl_ILocalOperations.hxx \ - GEOMImpl_IInsertOperations.hxx \ - GEOMImpl_IMeasureOperations.hxx \ - GEOMImpl_IGroupOperations.hxx \ - GEOMImpl_CopyDriver.hxx \ - GEOMImpl_Types.hxx \ +salomeinclude_HEADERS = \ + GEOMImpl_Gen.hxx \ + GEOMImpl_IBasicOperations.hxx \ + GEOMImpl_ITransformOperations.hxx \ + GEOMImpl_IHealingOperations.hxx \ + GEOMImpl_I3DPrimOperations.hxx \ + GEOMImpl_IShapesOperations.hxx \ + GEOMImpl_IBlocksOperations.hxx \ + GEOMImpl_IBooleanOperations.hxx \ + GEOMImpl_ICurvesOperations.hxx \ + GEOMImpl_ILocalOperations.hxx \ + GEOMImpl_IInsertOperations.hxx \ + GEOMImpl_IMeasureOperations.hxx \ + GEOMImpl_IGroupOperations.hxx \ + GEOMImpl_IGlue.hxx \ + GEOMImpl_Gen.hxx \ + GEOMImpl_PointDriver.hxx \ + GEOMImpl_IPoint.hxx \ + GEOMImpl_IPolyline.hxx \ + GEOMImpl_ICircle.hxx \ + GEOMImpl_ISpline.hxx \ + GEOMImpl_IEllipse.hxx \ + GEOMImpl_IFillet.hxx \ + GEOMImpl_IFillet2d.hxx \ + GEOMImpl_IChamfer.hxx \ + GEOMImpl_ICopy.hxx \ + GEOMImpl_IArchimede.hxx \ + GEOMImpl_IArc.hxx \ + GEOMImpl_ISketcher.hxx \ + GEOMImpl_I3DSketcher.hxx \ + GEOMImpl_IVector.hxx \ + GEOMImpl_IDisk.hxx \ + GEOMImpl_IFace.hxx \ + GEOMImpl_ILine.hxx \ + GEOMImpl_IPlane.hxx \ + GEOMImpl_IMarker.hxx \ + GEOMImpl_ITranslate.hxx \ + GEOMImpl_IMirror.hxx \ + GEOMImpl_IOffset.hxx \ + GEOMImpl_IScale.hxx \ + GEOMImpl_IRotate.hxx \ + GEOMImpl_IPosition.hxx \ + GEOMImpl_IHealing.hxx \ + GEOMImpl_IImportExport.hxx \ + GEOMImpl_IBox.hxx \ + GEOMImpl_IBlocks.hxx \ + GEOMImpl_IBlockTrsf.hxx \ + GEOMImpl_IBoolean.hxx \ + GEOMImpl_ICylinder.hxx \ + GEOMImpl_ICone.hxx \ + GEOMImpl_ISphere.hxx \ + GEOMImpl_ITorus.hxx \ + GEOMImpl_IPrism.hxx \ + GEOMImpl_IPipe.hxx \ + GEOMImpl_IRevolution.hxx \ + GEOMImpl_IMeasure.hxx \ + GEOMImpl_IShapes.hxx \ + GEOMImpl_IFilling.hxx \ + GEOMImpl_IThruSections.hxx \ + GEOMImpl_IPartition.hxx \ + GEOMImpl_IPipeDiffSect.hxx \ + GEOMImpl_IPipeShellSect.hxx \ + GEOMImpl_IPipeBiNormal.hxx \ + GEOMImpl_VectorDriver.hxx \ + GEOMImpl_LineDriver.hxx \ + GEOMImpl_DiskDriver.hxx \ + GEOMImpl_FaceDriver.hxx \ + GEOMImpl_PlaneDriver.hxx \ + GEOMImpl_MarkerDriver.hxx \ + GEOMImpl_TranslateDriver.hxx \ + GEOMImpl_MirrorDriver.hxx \ + GEOMImpl_OffsetDriver.hxx \ + GEOMImpl_ScaleDriver.hxx \ + GEOMImpl_PositionDriver.hxx \ + GEOMImpl_BoxDriver.hxx \ + GEOMImpl_ConeDriver.hxx \ + GEOMImpl_CylinderDriver.hxx \ + GEOMImpl_SphereDriver.hxx \ + GEOMImpl_TorusDriver.hxx \ + GEOMImpl_PrismDriver.hxx \ + GEOMImpl_PipeDriver.hxx \ + GEOMImpl_ThruSectionsDriver.hxx \ + GEOMImpl_RevolutionDriver.hxx \ + GEOMImpl_ShapeDriver.hxx \ + GEOMImpl_BlockDriver.hxx \ + GEOMImpl_Block6Explorer.hxx \ + GEOMImpl_MeasureDriver.hxx \ + GEOMImpl_PolylineDriver.hxx \ + GEOMImpl_CircleDriver.hxx \ + GEOMImpl_EllipseDriver.hxx \ + GEOMImpl_ArcDriver.hxx \ + GEOMImpl_SplineDriver.hxx \ + GEOMImpl_SketcherDriver.hxx \ + GEOMImpl_3DSketcherDriver.hxx \ + GEOMImpl_FilletDriver.hxx \ + GEOMImpl_Fillet2dDriver.hxx \ + GEOMImpl_ChamferDriver.hxx \ + GEOMImpl_BooleanDriver.hxx \ + GEOMImpl_PartitionDriver.hxx \ + GEOMImpl_CopyDriver.hxx \ + GEOMImpl_ExportDriver.hxx \ + GEOMImpl_ImportDriver.hxx \ + GEOMImpl_RotateDriver.hxx \ + GEOMImpl_ArchimedeDriver.hxx \ + GEOMImpl_HealingDriver.hxx \ + GEOMImpl_FillingDriver.hxx \ + GEOMImpl_GlueDriver.hxx \ + GEOMImpl_CopyDriver.hxx \ + GEOMImpl_Types.hxx \ GEOM_GEOMImpl.hxx -dist_libGEOMimpl_la_SOURCES = \ - GEOMImpl_IBasicOperations.cxx \ - GEOMImpl_ITransformOperations.cxx \ - GEOMImpl_IHealingOperations.cxx \ - GEOMImpl_I3DPrimOperations.cxx \ - GEOMImpl_IShapesOperations.cxx \ - GEOMImpl_IBlocksOperations.cxx \ - GEOMImpl_IBooleanOperations.cxx \ - GEOMImpl_ICurvesOperations.cxx \ - GEOMImpl_ILocalOperations.cxx \ - GEOMImpl_IInsertOperations.cxx \ - GEOMImpl_IMeasureOperations.cxx \ - GEOMImpl_IGroupOperations.cxx \ - GEOMImpl_Gen.cxx \ - GEOMImpl_PointDriver.cxx \ - GEOMImpl_VectorDriver.cxx \ - GEOMImpl_LineDriver.cxx \ - GEOMImpl_PlaneDriver.cxx \ - GEOMImpl_MarkerDriver.cxx \ - GEOMImpl_TranslateDriver.cxx \ - GEOMImpl_MirrorDriver.cxx \ - GEOMImpl_OffsetDriver.cxx \ - GEOMImpl_ScaleDriver.cxx \ - GEOMImpl_PositionDriver.cxx \ - GEOMImpl_BoxDriver.cxx \ - GEOMImpl_ConeDriver.cxx \ - GEOMImpl_CylinderDriver.cxx \ - GEOMImpl_SphereDriver.cxx \ - GEOMImpl_TorusDriver.cxx \ - GEOMImpl_PrismDriver.cxx \ - GEOMImpl_PipeDriver.cxx \ - GEOMImpl_ThruSectionsDriver.cxx \ - GEOMImpl_RevolutionDriver.cxx \ - GEOMImpl_ShapeDriver.cxx \ - GEOMImpl_BlockDriver.cxx \ - GEOMImpl_Block6Explorer.cxx \ - GEOMImpl_MeasureDriver.cxx \ - GEOMImpl_PolylineDriver.cxx \ - GEOMImpl_CircleDriver.cxx \ - GEOMImpl_EllipseDriver.cxx \ - GEOMImpl_ArcDriver.cxx \ - GEOMImpl_SplineDriver.cxx \ - GEOMImpl_SketcherDriver.cxx \ - GEOMImpl_FilletDriver.cxx \ - GEOMImpl_ChamferDriver.cxx \ - GEOMImpl_BooleanDriver.cxx \ - GEOMImpl_PartitionDriver.cxx \ - GEOMImpl_CopyDriver.cxx \ - GEOMImpl_ExportDriver.cxx \ - GEOMImpl_ImportDriver.cxx \ - GEOMImpl_RotateDriver.cxx \ - GEOMImpl_ArchimedeDriver.cxx \ - GEOMImpl_HealingDriver.cxx \ - GEOMImpl_FillingDriver.cxx \ +dist_libGEOMimpl_la_SOURCES = \ + GEOMImpl_IBasicOperations.cxx \ + GEOMImpl_ITransformOperations.cxx \ + GEOMImpl_IHealingOperations.cxx \ + GEOMImpl_I3DPrimOperations.cxx \ + GEOMImpl_IShapesOperations.cxx \ + GEOMImpl_IBlocksOperations.cxx \ + GEOMImpl_IBooleanOperations.cxx \ + GEOMImpl_ICurvesOperations.cxx \ + GEOMImpl_ILocalOperations.cxx \ + GEOMImpl_IInsertOperations.cxx \ + GEOMImpl_IMeasureOperations.cxx \ + GEOMImpl_IGroupOperations.cxx \ + GEOMImpl_Gen.cxx \ + GEOMImpl_PointDriver.cxx \ + GEOMImpl_VectorDriver.cxx \ + GEOMImpl_LineDriver.cxx \ + GEOMImpl_PlaneDriver.cxx \ + GEOMImpl_MarkerDriver.cxx \ + GEOMImpl_TranslateDriver.cxx \ + GEOMImpl_MirrorDriver.cxx \ + GEOMImpl_OffsetDriver.cxx \ + GEOMImpl_ScaleDriver.cxx \ + GEOMImpl_PositionDriver.cxx \ + GEOMImpl_BoxDriver.cxx \ + GEOMImpl_FaceDriver.cxx \ + GEOMImpl_DiskDriver.cxx \ + GEOMImpl_ConeDriver.cxx \ + GEOMImpl_CylinderDriver.cxx \ + GEOMImpl_SphereDriver.cxx \ + GEOMImpl_TorusDriver.cxx \ + GEOMImpl_PrismDriver.cxx \ + GEOMImpl_PipeDriver.cxx \ + GEOMImpl_ThruSectionsDriver.cxx \ + GEOMImpl_RevolutionDriver.cxx \ + GEOMImpl_ShapeDriver.cxx \ + GEOMImpl_BlockDriver.cxx \ + GEOMImpl_Block6Explorer.cxx \ + GEOMImpl_MeasureDriver.cxx \ + GEOMImpl_PolylineDriver.cxx \ + GEOMImpl_CircleDriver.cxx \ + GEOMImpl_EllipseDriver.cxx \ + GEOMImpl_ArcDriver.cxx \ + GEOMImpl_SplineDriver.cxx \ + GEOMImpl_SketcherDriver.cxx \ + GEOMImpl_3DSketcherDriver.cxx \ + GEOMImpl_FilletDriver.cxx \ + GEOMImpl_Fillet2dDriver.cxx \ + GEOMImpl_ChamferDriver.cxx \ + GEOMImpl_BooleanDriver.cxx \ + GEOMImpl_PartitionDriver.cxx \ + GEOMImpl_CopyDriver.cxx \ + GEOMImpl_ExportDriver.cxx \ + GEOMImpl_ImportDriver.cxx \ + GEOMImpl_RotateDriver.cxx \ + GEOMImpl_ArchimedeDriver.cxx \ + GEOMImpl_HealingDriver.cxx \ + GEOMImpl_FillingDriver.cxx \ GEOMImpl_GlueDriver.cxx -# additionnal information to compil and link file -libGEOMimpl_la_CPPFLAGS = \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(BOOST_CPPFLAGS) \ - -I$(srcdir)/../ShHealOper \ - -I$(srcdir)/../NMTTools \ - -I$(srcdir)/../GEOM \ - -I$(srcdir)/../GEOMAlgo \ - -I$(srcdir)/../SKETCHER \ - -I$(srcdir)/../ARCHIMEDE \ - -I$(top_builddir)/idl \ +# additional information to compile and link file + +libGEOMimpl_la_CPPFLAGS = \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(BOOST_CPPFLAGS) \ + -I$(srcdir)/../ShHealOper \ + -I$(srcdir)/../NMTTools \ + -I$(srcdir)/../GEOM \ + -I$(srcdir)/../GEOMAlgo \ + -I$(srcdir)/../SKETCHER \ + -I$(srcdir)/../ARCHIMEDE \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libGEOMimpl_la_LDFLAGS = \ - ../GEOM/libGEOMbasic.la \ - ../GEOMAlgo/libGEOMAlgo.la \ - ../ShHealOper/libShHealOper.la \ - ../ARCHIMEDE/libGEOMArchimede.la \ - ../SKETCHER/libGEOMSketcher.la \ - $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ - $(STDLIB) \ +libGEOMimpl_la_LDFLAGS = \ + ../GEOM/libGEOMbasic.la \ + ../GEOMAlgo/libGEOMAlgo.la \ + ../ShHealOper/libShHealOper.la \ + ../ARCHIMEDE/libGEOMArchimede.la \ + ../SKETCHER/libGEOMSketcher.la \ + $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ + $(STDLIB) \ $(CAS_LDPATH) -lTKCAF -lTKFillet -lTKOffset +# extra dist files +EXTRA_DIST += GUID.txt diff --git a/src/GEOMToolsGUI/GEOMToolsGUI.cxx b/src/GEOMToolsGUI/GEOMToolsGUI.cxx index ae6fb406e..4945b72e8 100644 --- a/src/GEOMToolsGUI/GEOMToolsGUI.cxx +++ b/src/GEOMToolsGUI/GEOMToolsGUI.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,47 +17,42 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMBase_Tools.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : GEOMBase_Tools.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "GEOMToolsGUI.h" +#include "GEOMToolsGUI_DeleteDlg.h" -#include "GeometryGUI.h" -#include "GEOM_Actor.h" -#include "GEOMBase.h" -#include "GEOMBase_aWarningDlg.h" - -#include "GEOM_Operation.h" -#include "GEOM_Displayer.h" +#include +#include +#include +#include #include -#include #include #include #include #include #include #include +#include #include #include #include #include +#include #include #include -#include "utilities.h" - // QT Includes -#include -#include +#include +#include +#include // OCCT Includes #include @@ -65,6 +60,7 @@ using namespace std; typedef QMap FilterMap; +static QString lastUsedFilter; //======================================================================= // function : getFileName @@ -74,48 +70,194 @@ typedef QMap FilterMap; static QString getFileName( QWidget* parent, const QString& initial, const FilterMap& filterMap, - const QStringList filters, + const QStringList& filters, const QString& caption, bool open, - QString& format ) + QString& format, + bool showCurrentDirInitially = false ) { - static QString lastUsedFilter; //QStringList filters; QString aBrepFilter; for ( FilterMap::const_iterator it = filterMap.begin(); it != filterMap.end(); ++it ) { //filters.push_back( it.key() ); - - if (it.key().contains("BREP", false)) { + if ( it.key().contains( "BREP", Qt::CaseInsensitive ) ) aBrepFilter = it.key(); - } } SUIT_FileDlg* fd = new SUIT_FileDlg( parent, open, true, true ); if ( !caption.isEmpty() ) - fd->setCaption( caption ); + fd->setWindowTitle( caption ); if ( !initial.isEmpty() ) - fd->setSelection( initial ); + fd->selectFile( initial ); + + if ( showCurrentDirInitially && SUIT_FileDlg::getLastVisitedPath().isEmpty() ) + fd->setDirectory( QDir::currentPath() ); fd->setFilters( filters ); - - if ( !lastUsedFilter.isEmpty() && filterMap.contains( lastUsedFilter ) ) - fd->setSelectedFilter( lastUsedFilter ); - else { - if (!aBrepFilter.isEmpty()) { - fd->setSelectedFilter(aBrepFilter); - } + + if ( !lastUsedFilter.isEmpty() && filterMap.contains( lastUsedFilter ) ) { + fd->selectFilter( lastUsedFilter ); + } + else if ( !aBrepFilter.isEmpty() ) { + fd->selectFilter( aBrepFilter ); + } + + QString filename; + if ( fd->exec() == QDialog::Accepted ) { + filename = fd->selectedFile(); + format = filterMap[fd->selectedFilter()]; + lastUsedFilter = fd->selectedFilter(); } - fd->exec(); - QString filename = fd->selectedFile(); - format = filterMap[fd->selectedFilter()]; - lastUsedFilter = fd->selectedFilter(); delete fd; qApp->processEvents(); return filename; } +//======================================================================= +// function : getFileNames +// purpose : Select list of files for Import operation. Returns also +// the selected file type code through argument. +//======================================================================= +static QStringList getFileNames( QWidget* parent, + const QString& initial, + const FilterMap& filterMap, + const QString& caption, + QString& format, + bool showCurrentDirInitially = false) +{ + QString aBrepFilter; + QStringList allFilters; + QStringList filters; + QRegExp re( "\\((.*)\\)" ); + re.setMinimal( true ); + for ( FilterMap::const_iterator it = filterMap.begin(); it != filterMap.end(); ++it ) { + if ( it.value().contains( "BREP", Qt::CaseInsensitive ) && aBrepFilter.isEmpty() ) + aBrepFilter = it.key(); + filters.append( it.key() ); + int pos = 0; + while ( re.indexIn( it.key(), pos ) >= 0 ) { + QString f = re.cap(1); + pos = re.pos() + f.length() + 2; + allFilters.append( f.simplified() ); + } + } + filters.append( QObject::tr( "GEOM_ALL_IMPORT_FILES" ).arg( allFilters.join( " " ) ) ); + + SUIT_FileDlg fd( parent, true, true, true ); + fd.setFileMode( SUIT_FileDlg::ExistingFiles ); + if ( !caption.isEmpty() ) + fd.setWindowTitle( caption ); + if ( !initial.isEmpty() ) + fd.selectFile( initial ); + + if ( showCurrentDirInitially && SUIT_FileDlg::getLastVisitedPath().isEmpty() ) + fd.setDirectory( QDir::currentPath() ); + + fd.setFilters( filters ); + + if ( !lastUsedFilter.isEmpty() && filterMap.contains( lastUsedFilter ) ) + fd.selectFilter( lastUsedFilter ); + else if ( !aBrepFilter.isEmpty() ) + fd.selectFilter( aBrepFilter ); + + QStringList filenames; + if ( fd.exec() ) { + filenames = fd.selectedFiles(); + format = filterMap.contains( fd.selectedFilter() ) ? filterMap[ fd.selectedFilter() ] : QString(); + lastUsedFilter = fd.selectedFilter(); + } + qApp->processEvents(); + return filenames; +} + +//======================================================================= +// function : getParentComponent +// purpose : Get object's parent component entry +//======================================================================= +static QString getParentComponent( _PTR( SObject ) obj ) +{ + if ( obj ) { + _PTR(SComponent) comp = obj->GetFatherComponent(); + if ( comp ) + return QString( comp->GetID().c_str() ); + } + return QString(); +} + +//===================================================================================== +// function : inUse +// purpose : check if the object(s) passed as the the second arguments are used +// by the other objects in the study +//===================================================================================== +static bool inUse( _PTR(Study) study, const QString& component, const QMap& objects ) +{ + _PTR(SObject) comp = study->FindObjectID( component.toLatin1().data() ); + if ( !comp ) + return false; + + // collect all GEOM objects being deleted + QMap gobjects; + QMap::ConstIterator oit; + list<_PTR(SObject)> aSelectedSO; + for ( oit = objects.begin(); oit != objects.end(); ++oit ) { + _PTR(SObject) so = study->FindObjectID( oit.key().toLatin1().data() ); + if ( !so ) + continue; + aSelectedSO.push_back(so); + CORBA::Object_var corbaObj_rem = GeometryGUI::ClientSObjectToObject( so ); + GEOM::GEOM_Object_var geomObj_rem = GEOM::GEOM_Object::_narrow( corbaObj_rem ); + if( CORBA::is_nil( geomObj_rem ) ) + continue; + gobjects.insert( oit.key(), geomObj_rem ); + } + + // Search References with other Modules + list< _PTR(SObject) >::iterator itSO = aSelectedSO.begin(); + for ( ; itSO != aSelectedSO.end(); ++itSO ) { + std::vector<_PTR(SObject)> aReferences = study->FindDependances( *itSO ); + int aRefLength = aReferences.size(); + if (aRefLength) { + for (int i = 0; i < aRefLength; i++) { + _PTR(SObject) firstSO( aReferences[i] ); + _PTR(SComponent) aComponent = firstSO->GetFatherComponent(); + QString type = aComponent->ComponentDataType().c_str(); + if ( type == "SMESH" ) + return true; + } + } + } + + // browse through all GEOM data tree + _PTR(ChildIterator) it ( study->NewChildIterator( comp ) ); + for ( it->InitEx( true ); it->More(); it->Next() ) { + _PTR(SObject) child( it->Value() ); + CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject( child ); + GEOM::GEOM_Object_var geomObj = GEOM::GEOM_Object::_narrow( corbaObj ); + if( CORBA::is_nil( geomObj ) ) + continue; + + GEOM::ListOfGO_var list = geomObj->GetDependency(); + if( list->length() == 0 ) + continue; + + for( int i = 0; i < list->length(); i++ ) { + bool depends = false; + bool deleted = false; + QMap::Iterator git; + for ( git = gobjects.begin(); git != gobjects.end() && ( !depends || !deleted ); ++git ) { + depends = depends || list[i]->_is_equivalent( *git ); + deleted = deleted || git.key() == child->GetID().c_str() ;//geomObj->_is_equivalent( *git ); + } + if ( depends && !deleted ) + return true; + } + } + return false; +} + + //======================================================================= // function : GEOMToolsGUI() // purpose : Constructor @@ -219,16 +361,6 @@ bool GEOMToolsGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) OnSettingsColor(); break; } - case 413: // SETTINGS - ISOS - { - OnSettingsIsos(); - break; - } - case 414: // SETTINGS : STEP VALUE FOR SPIN BOXES - { - OnSettingsStep(); - break; - } case 804: // ADD IN STUDY - POPUP VIEWER { // SAN -- TO BE REMOVED !!!! @@ -284,7 +416,6 @@ bool GEOMToolsGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) } - //=============================================================================== // function : OnEditDelete() // purpose : @@ -294,157 +425,145 @@ void GEOMToolsGUI::OnEditDelete() SALOME_ListIO selected; SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); - if ( app ) { - LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); - SalomeApp_Study* appStudy = dynamic_cast( app->activeStudy() ); - if ( aSelMgr && appStudy ) { - aSelMgr->selectedObjects( selected, QString::null, false ); - if ( !selected.IsEmpty() ) { - _PTR(Study) aStudy = appStudy->studyDS(); + if ( !app ) + return; - bool aLocked = (_PTR(AttributeStudyProperties)(aStudy->GetProperties()))->IsLocked(); - if ( aLocked ) { - SUIT_MessageBox::warn1 ( app->desktop(), - QObject::tr("WRN_WARNING"), - QObject::tr("WRN_STUDY_LOCKED"), - QObject::tr("BUT_OK") ); - return; - } + LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); + SalomeApp_Study* appStudy = dynamic_cast( app->activeStudy() ); + if ( !aSelMgr || !appStudy ) + return; - // VSR 17/11/04: check if all objects selected belong to GEOM component --> start - // modifications of ASV 01.06.05 - QString parentComp = getParentComponent( aStudy, selected ); - CORBA::String_var geomIOR = app->orb()->object_to_string( GeometryGUI::GetGeomGen() ); - QString geomComp = getParentComponent( aStudy->FindObjectIOR( geomIOR.in() ) ); + // get selection + aSelMgr->selectedObjects( selected, "ObjectBrowser", false ); + if ( selected.IsEmpty() ) + return; - if ( parentComp != geomComp ) { - SUIT_MessageBox::warn1 ( app->desktop(), - QObject::tr("ERR_ERROR"), - QObject::tr("NON_GEOM_OBJECTS_SELECTED").arg( getGeometryGUI()->moduleName() ), - QObject::tr("BUT_OK") ); - return; - } - // VSR 17/11/04: check if all objects selected belong to GEOM component <-- finish - QString aNameList; - int nbSel = 0; - //Get Main Objects Names - Handle(SALOME_InteractiveObject) anIObject; - for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) - { - QString aName = It.Value()->getName(); - if ( aName != "" && aName.ref(0) != '*') { - aNameList.append(" - " + aName + "\n"); - nbSel++; - } - anIObject = It.Value(); - } - // Append Child Names of Last Selected Object - _PTR(SObject) obj ( aStudy->FindObjectID( anIObject->getEntry() ) ); - for (_PTR(ChildIterator) iit (aStudy->NewChildIterator(obj)); iit->More(); iit->Next()) { - _PTR(SObject) child (iit->Value()); - QString aName = child->GetName(); - if (aName != "" && aName.ref(0) != '*') { - aNameList.append(" - " + aName + "\n"); - nbSel++; - //append childs child - for (_PTR(ChildIterator) iitt(aStudy->NewChildIterator(child)); iitt->More(); iitt->Next()) { - _PTR(SObject) childchild(iitt->Value()); - QString aName = childchild->GetName(); - if (aName != "" && aName.ref(0) != '*') { - aNameList.append(" - " + aName + "\n"); - nbSel++; - for (_PTR(ChildIterator) itt(aStudy->NewChildIterator(childchild)); itt->More(); itt->Next()) - { - _PTR(SObject) childs(itt->Value()); - QString aName = childs->GetName(); - if (aName != "" && aName.ref(0) != '*') { - aNameList.append(" - " + aName + "\n"); - nbSel++; - } - } - } - } - } - } //end of child append + _PTR(Study) aStudy = appStudy->studyDS(); + + // check if study is locked + if ( _PTR(AttributeStudyProperties)( aStudy->GetProperties() )->IsLocked() ) { + SUIT_MessageBox::warning( app->desktop(), + tr("WRN_WARNING"), + tr("WRN_STUDY_LOCKED") ); + return; // study is locked + } + + // get GEOM component + CORBA::String_var geomIOR = app->orb()->object_to_string( GeometryGUI::GetGeomGen() ); + QString geomComp = getParentComponent( aStudy->FindObjectIOR( geomIOR.in() ) ); - GEOMBase_aWarningDlg* Dialog = new GEOMBase_aWarningDlg( app->desktop(), QObject::tr( "GEOM_WRN_WARNING" ), aNameList, nbSel); - int r = Dialog->exec(); + // check each selected object: if belongs to GEOM, if not reference... + QMap toBeDeleted; + QMap allDeleted; + bool isComponentSelected = false; + for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) { + Handle(SALOME_InteractiveObject) anIObject = It.Value(); + if ( !anIObject->hasEntry() ) + continue; // invalid object + // ... + QString entry = anIObject->getEntry(); + _PTR(SObject) obj = aStudy->FindObjectID( entry.toLatin1().data() ); + // check parent component + QString parentComp = getParentComponent( obj ); + if ( parentComp != geomComp ) { + SUIT_MessageBox::warning( app->desktop(), + QObject::tr("ERR_ERROR"), + QObject::tr("NON_GEOM_OBJECTS_SELECTED").arg( getGeometryGUI()->moduleName() ) ); + return; // not GEOM object selected + } - if (!r) - return; + /////////////////////////////////////////////////////// + // if GEOM component is selected, so skip other checks + if ( isComponentSelected ) continue; + /////////////////////////////////////////////////////// + + // check if object is reference + _PTR(SObject) refobj; + if ( obj && obj->ReferencedObject( refobj ) ) + continue; // skip references + // ... + QString aName = obj->GetName().c_str(); + if ( entry == geomComp ) { + // GEOM component is selected, skip other checks + isComponentSelected = true; + continue; + } + toBeDeleted.insert( entry, aName ); + allDeleted.insert( entry, aName ); // skip GEOM component + // browse through all children recursively + _PTR(ChildIterator) it ( aStudy->NewChildIterator( obj ) ); + for ( it->InitEx( true ); it->More(); it->Next() ) { + _PTR(SObject) child( it->Value() ); + if ( child && child->ReferencedObject( refobj ) ) + continue; // skip references + aName = child->GetName().c_str(); + if ( !aName.isEmpty() ) + allDeleted.insert( child->GetID().c_str(), aName ); + } + } + + // is there is anything to delete? + if ( !isComponentSelected && allDeleted.count() <= 0 ) + return; // nothing to delete - // QAD_Operation* op = new SALOMEGUI_ImportOperation(.....); - // op->start(); - - // prepare list of SALOME_Views - QPtrList views; - SALOME_View* view; - // fill the list - ViewManagerList vmans = app->viewManagers(); - SUIT_ViewManager* vman; - for ( vman = vmans.first(); vman; vman = vmans.next() ) { - SUIT_ViewModel* vmod = vman->getViewModel(); - view = dynamic_cast ( vmod ); // must work for OCC and VTK views - if ( view ) - views.append( view ); - } - - _PTR(StudyBuilder) aStudyBuilder (aStudy->NewBuilder()); - _PTR(GenericAttribute) anAttr; - GEOM_Displayer* disp = new GEOM_Displayer( appStudy ); - - _PTR(SComponent) aGeom ( aStudy->FindComponent("GEOM") ); - if ( !aGeom ) - return; - - // MAIN LOOP OF SELECTED OBJECTS - for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) { - - Handle(SALOME_InteractiveObject) io = It.Value(); - if ( !io->hasEntry() ) - continue; - - _PTR(SObject) obj ( aStudy->FindObjectID( io->getEntry() ) ); - - // disable removal of "Geometry" component object - if ( !strcmp( obj->GetIOR().c_str(), geomIOR ) ) - continue; - - //If the object has been used to create another one,then it can't be deleted - _PTR(ChildIterator) it (aStudy->NewChildIterator(aGeom)); - for ( it->InitEx( true ); it->More(); it->Next() ) { - _PTR(SObject) chobj (it->Value()); - if(CheckSubObjectInUse(chobj, obj, aStudy)) return; - //check subobjects - for (_PTR(ChildIterator) it (aStudy->NewChildIterator(obj)); it->More(); it->Next()) { - _PTR(SObject) child (it->Value()); - if(CheckSubObjectInUse( chobj, child, aStudy)) return; - } - } - - RemoveObjectWithChildren(obj, aStudy, views, disp); - - // Remove objects from Study - aStudyBuilder->RemoveObjectWithChildren( obj ); - - //deleted = true; - } // MAIN LOOP of selected - - selected.Clear(); - aSelMgr->setSelectedObjects( selected ); - getGeometryGUI()->updateObjBrowser(); - } // if ( selected not empty ) - } // if ( selMgr && appStudy ) - - app->updateActions(); //SRN: To update a Save button in the toolbar - - } // if ( app ) - - - // if ( deleted ) - // op->finish(); - // else - // op->abort(); + // show confirmation dialog box + GEOMToolsGUI_DeleteDlg dlg( app->desktop(), allDeleted, isComponentSelected ); + if ( !dlg.exec() ) + return; // operation is cancelled by user + + // get currently opened views + QList views; + SALOME_View* view; + ViewManagerList vmans = app->viewManagers(); + SUIT_ViewManager* vman; + foreach ( vman, vmans ) { + SUIT_ViewModel* vmod = vman->getViewModel(); + view = dynamic_cast ( vmod ); // must work for OCC and VTK views + if ( view ) + views.append( view ); + } + + _PTR(StudyBuilder) aStudyBuilder (aStudy->NewBuilder()); + GEOM_Displayer* disp = new GEOM_Displayer( appStudy ); + + if ( isComponentSelected ) { + // GEOM component is selected: delete all objects recursively + _PTR(SObject) comp = aStudy->FindObjectID( geomComp.toLatin1().data() ); + if ( !comp ) + return; + _PTR(ChildIterator) it ( aStudy->NewChildIterator( comp ) ); + // remove top-level objects only + for ( it->InitEx( false ); it->More(); it->Next() ) { + _PTR(SObject) child( it->Value() ); + // remove object from GEOM engine + removeObjectWithChildren( child, aStudy, views, disp ); + // remove object from study + aStudyBuilder->RemoveObjectWithChildren( child ); + } + } + else { + // GEOM component is not selected: check if selected objects are in use + if ( inUse( aStudy, geomComp, allDeleted ) ) { + SUIT_MessageBox::warning( app->desktop(), + QObject::tr("WRN_WARNING"), + QObject::tr("DEP_OBJECT") ); + return; // object(s) in use + } + // ... and then delete all objects + QMap::Iterator it; + for ( it = toBeDeleted.begin(); it != toBeDeleted.end(); ++it ) { + _PTR(SObject) obj ( aStudy->FindObjectID( it.key().toLatin1().data() ) ); + // remove object from GEOM engine + removeObjectWithChildren( obj, aStudy, views, disp ); + // remove objects from study + aStudyBuilder->RemoveObjectWithChildren( obj ); + } + } + + selected.Clear(); + aSelMgr->setSelectedObjects( selected ); + getGeometryGUI()->updateObjBrowser(); + app->updateActions(); //SRN: To update a Save button in the toolbar } @@ -483,7 +602,6 @@ void GEOMToolsGUI::OnEditCopy() */ } - //===================================================================================== // function : Import // purpose : BRep, Iges, Step @@ -491,116 +609,141 @@ void GEOMToolsGUI::OnEditCopy() bool GEOMToolsGUI::Import() { SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( getGeometryGUI()->getApp() ); - //SUIT_Application* app = getGeometryGUI()->getApp(); if (! app) return false; SalomeApp_Study* stud = dynamic_cast ( app->activeStudy() ); if ( !stud ) { - cout << "FAILED to cast active study to SalomeApp_Study" << endl; + MESSAGE ( "FAILED to cast active study to SalomeApp_Study" ); return false; } _PTR(Study) aStudy = stud->studyDS(); + // check if study is locked bool aLocked = (_PTR(AttributeStudyProperties)(aStudy->GetProperties()))->IsLocked(); if ( aLocked ) { - SUIT_MessageBox::warn1 ( app->desktop(), - QObject::tr("WRN_WARNING"), - QObject::tr("WRN_STUDY_LOCKED"), - QObject::tr("BUT_OK") ); + SUIT_MessageBox::warning( app->desktop(), + QObject::tr("WRN_WARNING"), + QObject::tr("WRN_STUDY_LOCKED") ); return false; } + // check if GEOM engine is available GEOM::GEOM_Gen_var eng = GeometryGUI::GetGeomGen(); if ( CORBA::is_nil( eng ) ) { - SUIT_MessageBox::error1( app->desktop(), - QObject::tr("WRN_WARNING"), - QObject::tr( "GEOM Engine is not started" ), - QObject::tr("BUT_OK") ); - return false; - } + SUIT_MessageBox::critical( app->desktop(), + QObject::tr("WRN_WARNING"), + QObject::tr( "GEOM Engine is not started" ) ); + return false; + } GEOM::GEOM_IInsertOperations_var aInsOp = eng->GetIInsertOperations( aStudy->StudyId() ); if ( aInsOp->_is_nil() ) return false; - GEOM::GEOM_Object_var anObj; - - // Obtain a list of available import formats + // obtain a list of available import formats FilterMap aMap; - QStringList filters; GEOM::string_array_var aFormats, aPatterns; aInsOp->ImportTranslators( aFormats, aPatterns ); - for ( int i = 0, n = aFormats->length(); i < n; i++ ) { + for ( int i = 0, n = aFormats->length(); i < n; i++ ) aMap.insert( (char*)aPatterns[i], (char*)aFormats[i] ); - filters.push_back( (char*)aPatterns[i] ); - } + // select files to be imported QString fileType; + QStringList fileNames = getFileNames( app->desktop(), "", aMap, + tr( "GEOM_MEN_IMPORT" ), fileType, true ); - QString fileName = getFileName(app->desktop(), "", aMap, filters, - tr("GEOM_MEN_IMPORT"), true, fileType); + // set Wait cursor + SUIT_OverrideCursor wc; - if (fileType.isEmpty() ) - { - // Trying to detect file type - QFileInfo aFileInfo( fileName ); - QString aPossibleType = (aFileInfo.extension(false)).upper() ; + if ( fileNames.count() == 0 ) + return false; // nothing selected, return - if ( (aMap.values()).contains(aPossibleType) ) - fileType = aPossibleType; - } + QStringList errors; - if (fileName.isEmpty() || fileType.isEmpty()) - return false; + QList< GEOM::GEOM_Object_var > objsForDisplay; + + // iterate through all selected files + for ( QStringList::ConstIterator it = fileNames.begin(); it != fileNames.end(); ++it ) { + QString fileName = *it; - GEOM_Operation* anOp = new GEOM_Operation (app, aInsOp.in()); - try { - SUIT_OverrideCursor wc; + if ( fileName.isEmpty() ) + continue; - app->putInfo(tr("GEOM_PRP_LOADING").arg(SUIT_Tools::file(fileName, /*withExten=*/true))); - - anOp->start(); - - CORBA::String_var fileN = fileName.latin1(); - CORBA::String_var fileT = fileType.latin1(); - anObj = aInsOp->Import(fileN, fileT); - - if ( !anObj->_is_nil() && aInsOp->IsDone() ) { - QString aPublishObjName = - GEOMBase::GetDefaultName(SUIT_Tools::file(fileName, /*withExten=*/true)); - - SALOMEDS::Study_var aDSStudy = GeometryGUI::ClientStudyToStudy(aStudy); - GeometryGUI::GetGeomGen()->PublishInStudy(aDSStudy, - SALOMEDS::SObject::_nil(), - anObj, - aPublishObjName); - - GEOM_Displayer( stud ).Display( anObj.in() ); - - // update data model and object browser - getGeometryGUI()->updateObjBrowser( true ); - - anOp->commit(); + QString aCurrentType; + if ( fileType.isEmpty() ) { + // file type is not defined, try to detect + QString ext = QFileInfo( fileName ).suffix().toUpper(); + QRegExp re( "\\*\\.(\\w+)" ); + for ( FilterMap::const_iterator it = aMap.begin(); + it != aMap.end() && aCurrentType.isEmpty(); ++it ) { + int pos = 0; + while ( re.indexIn( it.key(), pos ) >= 0 ) { + QString f = re.cap(1).trimmed().toUpper(); + if ( ext == f ) { aCurrentType = it.value(); break; } + pos = re.pos() + re.cap(1).length() + 2; + } + } } else { + aCurrentType = fileType; + } + + if ( aCurrentType.isEmpty() ) { + errors.append( QString( "%1 : %2" ).arg( fileName ).arg( tr( "GEOM_UNSUPPORTED_TYPE" ) ) ); + continue; + } + + GEOM_Operation* anOp = new GEOM_Operation( app, aInsOp.in() ); + try { + app->putInfo( tr( "GEOM_PRP_LOADING" ).arg( SUIT_Tools::file( fileName, /*withExten=*/true ) ) ); + anOp->start(); + + CORBA::String_var fileN = fileName.toLatin1().constData(); + CORBA::String_var fileT = aCurrentType.toLatin1().constData(); + GEOM::GEOM_Object_var anObj = aInsOp->Import( fileN, fileT ); + + if ( !anObj->_is_nil() && aInsOp->IsDone() ) { + QString aPublishObjName = + GEOMBase::GetDefaultName( SUIT_Tools::file( fileName, /*withExten=*/true ) ); + + SALOMEDS::Study_var aDSStudy = GeometryGUI::ClientStudyToStudy( aStudy ); + GeometryGUI::GetGeomGen()->PublishInStudy( aDSStudy, + SALOMEDS::SObject::_nil(), + anObj, + aPublishObjName.toLatin1().constData() ); + + objsForDisplay.append( anObj ); + + anOp->commit(); + } + else { + anOp->abort(); + errors.append( QString( "%1 : %2" ).arg( fileName ).arg( aInsOp->GetErrorCode() ) ); + } + } + catch( const SALOME::SALOME_Exception& S_ex ) { anOp->abort(); - wc.suspend(); - SUIT_MessageBox::error1( app->desktop(), - QObject::tr( "GEOM_ERROR" ), - QObject::tr("GEOM_PRP_ABORT") + "\n" + QString( aInsOp->GetErrorCode() ), - QObject::tr("BUT_OK") ); + errors.append( QString( "%1 : %2" ).arg( fileName ).arg( tr( "GEOM_UNKNOWN_IMPORT_ERROR" ) ) ); } } - catch( const SALOME::SALOME_Exception& S_ex ) { - //QtCatchCorbaException(S_ex); - anOp->abort(); - return false; + + // update object browser + getGeometryGUI()->updateObjBrowser( true ); + + // display imported model (if only one file is selected) + if ( objsForDisplay.count() == 1 ) + GEOM_Displayer( stud ).Display( objsForDisplay[0].in() ); + + if ( errors.count() > 0 ) { + SUIT_MessageBox::critical( app->desktop(), + QObject::tr( "GEOM_ERROR" ), + QObject::tr( "GEOM_IMPORT_ERRORS" ) + "\n" + errors.join( "\n" ) ); } app->updateActions(); //SRN: To update a Save button in the toolbar - return true; + return objsForDisplay.count() > 0; } @@ -615,17 +758,16 @@ bool GEOMToolsGUI::Export() SalomeApp_Study* stud = dynamic_cast ( app->activeStudy() ); if ( !stud ) { - cout << "FAILED to cast active study to SalomeApp_Study" << endl; + MESSAGE ( "FAILED to cast active study to SalomeApp_Study" ); return false; } _PTR(Study) aStudy = stud->studyDS(); GEOM::GEOM_Gen_var eng = GeometryGUI::GetGeomGen(); if ( CORBA::is_nil( eng ) ) { - SUIT_MessageBox::error1( app->desktop(), - QObject::tr("WRN_WARNING"), - QObject::tr( "GEOM Engine is not started" ), - QObject::tr("BUT_OK") ); + SUIT_MessageBox::critical( app->desktop(), + QObject::tr("WRN_WARNING"), + QObject::tr( "GEOM Engine is not started" ) ); return false; } @@ -650,6 +792,7 @@ bool GEOMToolsGUI::Export() SALOME_ListIO selectedObjects; sm->selectedObjects( selectedObjects ); + bool appropriateObj = false; SALOME_ListIteratorOfListIO It( selectedObjects ); for(;It.More();It.Next()) { @@ -662,7 +805,7 @@ bool GEOMToolsGUI::Export() QString fileType; QString file = getFileName(app->desktop(), QString( IObject->getName() ), aMap, filters, - tr("GEOM_MEN_EXPORT"), false, fileType); + tr("GEOM_MEN_EXPORT"), false, fileType, true); // User has pressed "Cancel" --> stop the operation if ( file.isEmpty() || fileType.isEmpty() ) @@ -677,7 +820,7 @@ bool GEOMToolsGUI::Export() anOp->start(); - aInsOp->Export( anObj, file, fileType.latin1() ); + aInsOp->Export( anObj, file.toStdString().c_str(), fileType.toLatin1().constData() ); if ( aInsOp->IsDone() ) anOp->commit(); @@ -685,10 +828,9 @@ bool GEOMToolsGUI::Export() { anOp->abort(); wc.suspend(); - SUIT_MessageBox::error1( app->desktop(), - QObject::tr( "GEOM_ERROR" ), - QObject::tr("GEOM_PRP_ABORT") + "\n" + QString( aInsOp->GetErrorCode() ), - QObject::tr("BUT_OK") ); + SUIT_MessageBox::critical( app->desktop(), + QObject::tr( "GEOM_ERROR" ), + QObject::tr("GEOM_PRP_ABORT") + "\n" + QString( aInsOp->GetErrorCode() ) ); return false; } } @@ -697,63 +839,29 @@ bool GEOMToolsGUI::Export() anOp->abort(); return false; } + appropriateObj = true; } + if ( !appropriateObj ) + SUIT_MessageBox::warning( app->desktop(), + QObject::tr("WRN_WARNING"), + QObject::tr("GEOM_WRN_NO_APPROPRIATE_SELECTION") ); return true; } - -QString GEOMToolsGUI::getParentComponent( _PTR( Study ) study, const SALOME_ListIO& iobjs ) -{ - QString parentComp; - - for ( SALOME_ListIteratorOfListIO it( iobjs ); it.More(); it.Next() ) { - - Handle(SALOME_InteractiveObject) io = it.Value(); - if ( !io->hasEntry() ) - continue; - - QString compName = getParentComponent( study->FindObjectID( io->getEntry() ) ); - - if ( parentComp.isNull() ) - parentComp = compName; - else if ( parentComp.compare( compName) != 0 ) { // objects belonging to different components are selected - parentComp = QString::null; - break; - } - } - - return parentComp; -} - -QString GEOMToolsGUI::getParentComponent( _PTR( SObject ) obj ) -{ - if ( obj ) { - _PTR(SComponent) comp = obj->GetFatherComponent(); - if ( comp ) { - _PTR(GenericAttribute) anAttr; - if ( comp->FindAttribute( anAttr, "AttributeName") ) { - _PTR(AttributeName) aName( anAttr ); - return QString( aName->Value().c_str() ); - } - } - } - return QString(); -} - //===================================================================================== // function : RemoveObjectWithChildren // purpose : to be used by OnEditDelete() method //===================================================================================== -void GEOMToolsGUI::RemoveObjectWithChildren(_PTR(SObject) obj, +void GEOMToolsGUI::removeObjectWithChildren(_PTR(SObject) obj, _PTR(Study) aStudy, - QPtrList views, + QList views, GEOM_Displayer* disp) { // iterate through all children of obj for (_PTR(ChildIterator) it (aStudy->NewChildIterator(obj)); it->More(); it->Next()) { _PTR(SObject) child (it->Value()); - RemoveObjectWithChildren(child, aStudy, views, disp); + removeObjectWithChildren(child, aStudy, views, disp); } // erase object and remove it from engine @@ -769,50 +877,17 @@ void GEOMToolsGUI::RemoveObjectWithChildren(_PTR(SObject) obj, GEOM::GEOM_Object_var geomObj = GEOM::GEOM_Object::_narrow( corbaObj ); if (!CORBA::is_nil(geomObj)) { // Erase graphical object - SALOME_View* view = views.first(); - for (; view; view = views.next()) { - disp->Erase(geomObj, true, view); - } - + QListIterator it( views ); + while ( it.hasNext() ) + if ( SALOME_View* view = it.next() ) + disp->Erase(geomObj, true, view); + // Remove object from Engine GeometryGUI::GetGeomGen()->RemoveObject( geomObj ); } } } -//===================================================================================== -// function : CheckSubObjectInUse -// purpose : to be used by OnEditDelete() method -//===================================================================================== -bool GEOMToolsGUI::CheckSubObjectInUse(_PTR(SObject) checkobj, - _PTR(SObject) remobj, - _PTR(Study) aStudy) -{ - CORBA::Object_var corbaObj = GeometryGUI::ClientSObjectToObject(checkobj); - GEOM::GEOM_Object_var geomObj = GEOM::GEOM_Object::_narrow( corbaObj ); - if( CORBA::is_nil(geomObj) ) - return false; - - GEOM::ListOfGO_var list = geomObj->GetDependency(); - if( list->length() > 1 ) - for(int i = 0; i < list->length(); i++ ){ - CORBA::Object_var corbaObj_rem = GeometryGUI::ClientSObjectToObject(remobj); - GEOM::GEOM_Object_var geomObj_rem = GEOM::GEOM_Object::_narrow( corbaObj_rem ); - if( list[i]->_is_equivalent( geomObj_rem ) ){ - SalomeApp_Application* app = - dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); - - SUIT_MessageBox::warn1 ( app->desktop(), - QObject::tr("WRN_WARNING"), - QObject::tr("DEP_OBJECT"), - QObject::tr("BUT_OK") ); - return true; - } - } - - return false; -} - //================================================================================= // function : deactivate() // purpose : Called when GEOM component is deactivated @@ -833,7 +908,9 @@ void GEOMToolsGUI::deactivate() //===================================================================================== extern "C" { -GEOMTOOLSGUI_EXPORT +#ifdef WIN32 + __declspec( dllexport ) +#endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { return new GEOMToolsGUI( parent ); diff --git a/src/GEOMToolsGUI/GEOMToolsGUI.h b/src/GEOMToolsGUI/GEOMToolsGUI.h index 69ad114d1..3ae7e7808 100644 --- a/src/GEOMToolsGUI/GEOMToolsGUI.h +++ b/src/GEOMToolsGUI/GEOMToolsGUI.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,31 +17,26 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMToolsGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : GEOMToolsGUI.h -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #ifndef GEOMTOOLSGUI_H #define GEOMTOOLSGUI_H #include "GEOM_ToolsGUI.hxx" -#include "GEOMGUI.h" -#include "GEOM_Displayer.h" - -#include +#include #include -#include -#include +class GEOM_Displayer; +class SALOME_View; +class SALOME_ListIO; -#include +#include //================================================================================= // class : GEOMToolsGUI @@ -49,51 +44,39 @@ //================================================================================= class GEOMTOOLSGUI_EXPORT GEOMToolsGUI : public GEOMGUI { -public : +public: GEOMToolsGUI( GeometryGUI* ); // hide constructor to avoid direct creation ~GEOMToolsGUI(); - bool OnGUIEvent( int theCommandID, SUIT_Desktop* parent ); + bool OnGUIEvent( int, SUIT_Desktop* ); virtual void deactivate(); private: // Import and export topology methods - bool Import(); - bool Export(); + bool Import(); + bool Export(); - void OnEditCopy(); - void OnEditDelete(); + void OnEditCopy(); + void OnEditDelete(); - void OnSettingsColor(); - void OnSettingsIsos(); - void OnSettingsStep(); - void OnRename(); - void OnCheckGeometry(); + void OnSettingsColor(); + void OnRename(); + void OnCheckGeometry(); // Popup commands - void OnAutoColor(); - void OnDisableAutoColor(); - void OnColor(); - void OnTransparency(); - void OnNbIsos(); - void OnOpen(); - void OnSelectOnly(int mode); + void OnAutoColor(); + void OnDisableAutoColor(); + void OnColor(); + void OnTransparency(); + void OnNbIsos(); + void OnOpen(); + void OnSelectOnly(int mode); - // returns name of Module (Component) of given objects (usually selected objects) - // if objects belong to different Components, a NULL string is returned. - QString getParentComponent( _PTR( Study ), const SALOME_ListIO& ); - QString getParentComponent( _PTR(SObject) ); - // Recursive deletion of object with children - void RemoveObjectWithChildren(_PTR(SObject) obj, - _PTR(Study) aStudy, - QPtrList views, - GEOM_Displayer* disp); - - //checks if the object passed as the first argument depends on the second arguments - bool CheckSubObjectInUse(_PTR(SObject) checkobj, - _PTR(SObject) remobj, - _PTR(Study) aStudy); + void removeObjectWithChildren( _PTR(SObject), + _PTR(Study), + QList, + GEOM_Displayer* ); }; -#endif +#endif // GEOMTOOLSGUI_H diff --git a/src/GEOMToolsGUI/GEOMToolsGUI.pro b/src/GEOMToolsGUI/GEOMToolsGUI.pro new file mode 100644 index 000000000..3ab591e7b --- /dev/null +++ b/src/GEOMToolsGUI/GEOMToolsGUI.pro @@ -0,0 +1,65 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GEOMToolsGUI +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +GUI_LDFLAGS = -L$$(GUI_ROOT_DIR)/lib/salome + +INCLUDEPATH += $${QT_INCLUDES} $${VTK_INCLUDES} $${CAS_CPPFLAGS} $${PYTHON_INCLUDES} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} $${CORBA_INCLUDES} ../OBJECT ../GEOMBase ../GEOMClient ../GEOMImpl ../GEOMGUI $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lGEOMBase -lGEOM $${GUI_LDFLAGS} -lVTKViewer -lOCCViewer -lsuit -lSalomeApp + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += GEOMTOOLSGUI_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +SOURCES = GEOMToolsGUI.cxx +SOURCES += GEOMToolsGUI_1.cxx +SOURCES += GEOMToolsGUI_TransparencyDlg.cxx +SOURCES += GEOMToolsGUI_NbIsosDlg.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx b/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx index 139630563..a996e25ef 100644 --- a/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx +++ b/src/GEOMToolsGUI/GEOMToolsGUI_1.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,28 +17,26 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMToolsGUI_1.cxx +// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com) // -// -// File : GEOMToolsGUI_1.cxx -// Author : Sergey ANIKIN -// Module : GEOM -// $Header$ - -#include +#include #include "GEOMToolsGUI.h" - -#include "GeometryGUI.h" #include "GEOMToolsGUI_TransparencyDlg.h" -#include "GEOMToolsGUI_NbIsosDlg.h" // Method ISOS adjustement +#include "GEOMToolsGUI_NbIsosDlg.h" -#include "GEOM_Actor.h" -#include "GEOMBase.h" +#include +#include -#include "SALOME_ListIO.hxx" -#include "SALOME_ListIteratorOfListIO.hxx" +#include +#include + +#include +#include #include @@ -48,10 +46,8 @@ #include #include -#include #include -#include #include #include #include @@ -67,35 +63,20 @@ #include -#include "SALOMEDSClient.hxx" - #include "utilities.h" // OCCT Includes #include -#include -#include #include #include #include -// VTK Includes -#include -#include -#include -#include -#include -#include - // QT Includes -#include -#include -#include -#include -#include - -using namespace std; +#include +#include +// VTK includes +#include void GEOMToolsGUI::OnSettingsColor() { @@ -116,68 +97,11 @@ void GEOMToolsGUI::OnSettingsColor() } } -void GEOMToolsGUI::OnSettingsIsos() -{ -/* - SUIT_Session* sess = SUIT_Session::session(); - SUIT_ResourceMgr* resMgr = sess->resourceMgr(); - SUIT_Desktop* desk = sess->activeApplication()->desktop(); - - SUIT_ViewManager* vman = desk->activeWindow()->getViewManager(); - QString type = vman->getType(); - - if ( type != OCCViewer_Viewer::Type() ) - return; - - OCCViewer_Viewer* vm = (OCCViewer_Viewer*)vman->getViewModel(); - Handle (AIS_InteractiveContext) ic = vm->getAISContext(); - - int IsoU = resMgr->integerValue( "Geometry:SettingsIsoU", 1 ); - int IsoV = resMgr->integerValue( "Geometry:SettingsIsoV", 1 ); - - ic->DefaultDrawer()->UIsoAspect()->SetNumber( IsoU ); - ic->DefaultDrawer()->VIsoAspect()->SetNumber( IsoV ); - - GEOMBase_NbIsosDlg* NbIsosDlg = new GEOMBase_NbIsosDlg(desk, tr("GEOM_MEN_ISOS"), TRUE); - - NbIsosDlg->SpinBoxU->setValue(IsoU); - NbIsosDlg->SpinBoxV->setValue(IsoV); - - if(NbIsosDlg->exec()) { - IsoU = NbIsosDlg->SpinBoxU->text().toInt(); - IsoV = NbIsosDlg->SpinBoxV->text().toInt(); - - ic->DefaultDrawer()->UIsoAspect()->SetNumber(UIso); - ic->DefaultDrawer()->VIsoAspect()->SetNumber(VIso); - resMgr->setValue("Geometry:SettingsIsoU", isoU); - resMgr->setValue("Geometry:SettingsIsoV", isoV); - } -*/ -} - -void GEOMToolsGUI::OnSettingsStep() -{ - SUIT_Session* sess = SUIT_Session::session(); - SUIT_ResourceMgr* resMgr = sess->resourceMgr(); - - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100. ); - - Standard_Boolean res = false; - double dd = GEOMBase::Parameter( res, QString("%1").arg(step), tr("GEOM_MEN_STEP_LABEL"), tr("GEOM_STEP_TITLE"), 0.001, 10000.0, 3); - if(res) { - resMgr->setValue( "Geometry", "SettingsGeomStep", dd ); - - /* Emit signal to GeometryGUI_SpinBoxes */ - getGeometryGUI()->EmitSignalDefaultStepValueChanged( dd ); - } - else - sess->activeApplication()->putInfo(tr("GEOM_PRP_ABORT")); -} - void GEOMToolsGUI::OnRename() { SALOME_ListIO selected; - SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); + SalomeApp_Application* app = + dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); if ( app ) { LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); SalomeApp_Study* appStudy = dynamic_cast( app->activeStudy() ); @@ -188,35 +112,44 @@ void GEOMToolsGUI::OnRename() bool aLocked = (_PTR(AttributeStudyProperties)(aStudy->GetProperties()))->IsLocked(); if ( aLocked ) { - SUIT_MessageBox::warn1 ( app->desktop(), - QObject::tr("WRN_WARNING"), - QObject::tr("WRN_STUDY_LOCKED"), - QObject::tr("BUT_OK") ); + SUIT_MessageBox::warning ( app->desktop(), + QObject::tr("WRN_WARNING"), + QObject::tr("WRN_STUDY_LOCKED") ); return; } + bool isAny = false; // is there any appropriate object selected for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) { Handle(SALOME_InteractiveObject) IObject = It.Value(); _PTR(SObject) obj ( aStudy->FindObjectID(IObject->getEntry()) ); _PTR(GenericAttribute) anAttr; if ( obj ) { - if( obj->FindAttribute(anAttr, "AttributeName") ) { + if ( obj->FindAttribute(anAttr, "AttributeName") ) { _PTR(AttributeName) aName (anAttr); - QString newName = LightApp_NameDlg::getName( app->desktop(), aName->Value().c_str() ); - if ( !newName.isEmpty() ) { - aName->SetValue( newName.latin1() ); // rename the SObject - IObject->setName( newName.latin1() );// rename the InteractiveObject - // Rename the corresponding GEOM_Object - GEOM::GEOM_Object_var anObj = GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(obj)); - if (!CORBA::is_nil( anObj )) - anObj->SetName( newName.latin1() ); - (dynamic_cast(app->activeModule()))->updateObjBrowser( false ); - } + GEOM::GEOM_Object_var anObj = + GEOM::GEOM_Object::_narrow(GeometryGUI::ClientSObjectToObject(obj)); + if (!CORBA::is_nil(anObj)) { + isAny = true; + QString newName = LightApp_NameDlg::getName( app->desktop(), aName->Value().c_str() ); + if (!newName.isEmpty()) { + aName->SetValue( newName.toLatin1().data() ); // rename the SObject + IObject->setName( newName.toLatin1().data() );// rename the InteractiveObject + anObj->SetName( newName.toLatin1().data() ); // Rename the corresponding GEOM_Object + (dynamic_cast(app->activeModule()))->updateObjBrowser( false ); + } + } // if ( anObj ) } // if ( name attribute ) } // if ( obj ) } // iterator + + if (!isAny) { + SUIT_MessageBox::warning( app->desktop(), + QObject::tr("WRN_WARNING"), + QObject::tr("GEOM_WRN_NO_APPROPRIATE_SELECTION") ); + return; + } } } } @@ -227,7 +160,7 @@ void GEOMToolsGUI::OnRename() void GEOMToolsGUI::OnCheckGeometry() { SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); - PythonConsole* pyConsole = app->pythonConsole(); + PyConsole_Console* pyConsole = app->pythonConsole(); if(pyConsole) pyConsole->exec("from GEOM_usinggeom import *"); @@ -235,8 +168,6 @@ void GEOMToolsGUI::OnCheckGeometry() void GEOMToolsGUI::OnAutoColor() { - QPtrList aListOfGroups; - SALOME_ListIO selected; SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); if( !app ) @@ -261,7 +192,7 @@ void GEOMToolsGUI::OnAutoColor() aMainObject->SetAutoColor( true ); - QValueList aReservedColors; + QList aReservedColors; GEOM_Displayer aDisp (appStudy); @@ -461,10 +392,9 @@ void GEOMToolsGUI::OnNbIsos() SUIT_ViewWindow* window = SUIT_Session::session()->activeApplication()->desktop()->activeWindow(); bool isOCC = ( window && window->getViewManager()->getType() == OCCViewer_Viewer::Type() ); - const bool isVTK = ( window && window->getViewManager()->getType() == SVTK_Viewer::Type() ); + bool isVTK = ( window && window->getViewManager()->getType() == SVTK_Viewer::Type() ); - // if is OCCViewer - if(isOCC){ + if(isOCC){ // if is OCCViewer OCCViewer_Viewer* vm = dynamic_cast( window->getViewManager()->getViewModel() ); Handle (AIS_InteractiveContext) ic = vm->getAISContext(); @@ -500,8 +430,8 @@ void GEOMToolsGUI::OnNbIsos() } } } - } else if(isVTK){ // if is VTKViewer - + } + else if(isVTK){ // if is VTKViewer // // Warning. It's works incorrect. must be recheked. // @@ -516,50 +446,61 @@ void GEOMToolsGUI::OnNbIsos() if ( selected.IsEmpty() ) return; - Handle(SALOME_InteractiveObject) FirstIOS = selected.First(); - if ( FirstIOS.IsNull() ) - return; - SVTK_ViewWindow* vtkVW = dynamic_cast( window ); if ( !vtkVW ) return; + + SALOME_View* view = GEOM_Displayer::GetActiveView(); + + vtkActorCollection* aCollection = vtkActorCollection::New(); - SVTK_View* aView = vtkVW->getView(); - vtkActorCollection* aCollection = aView->getRenderer()->GetActors(); - + for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) { + Handle(SALOME_InteractiveObject) anIObject = It.Value(); + SALOME_Prs* aPrs = view->CreatePrs( anIObject->getEntry() ); + SVTK_Prs* vtkPrs = dynamic_cast( aPrs ); + if ( vtkPrs ) { + vtkActorCollection* anActors = vtkPrs->GetObjects(); + anActors->InitTraversal(); + vtkActor* anAct = anActors->GetNextActor(); + aCollection->AddItem(anAct); + } + } + + if(aCollection) + aCollection->InitTraversal(); + else + return; + int UIso = 0; int VIso = 0; - if(aCollection){ - aCollection->InitTraversal(); - } - vtkActor *anAct = aCollection->GetNextActor(); - if(GEOM_Actor *anActor = dynamic_cast(anAct)){ + vtkActor* anAct = aCollection->GetNextActor(); + if (GEOM_Actor* anActor = GEOM_Actor::SafeDownCast(anAct)) anActor->GetNbIsos(UIso,VIso); - } + else + return; - - GEOMToolsGUI_NbIsosDlg * NbIsosDlg = + GEOMToolsGUI_NbIsosDlg* NbIsosDlg = new GEOMToolsGUI_NbIsosDlg( SUIT_Session::session()->activeApplication()->desktop() ); - + NbIsosDlg->setU( UIso ); NbIsosDlg->setV( VIso ); - + if ( NbIsosDlg->exec() ) { SUIT_OverrideCursor(); - while(anAct = aCollection->GetNextActor()) { - if(GEOM_Actor *anActor = dynamic_cast(anAct)){ + while( anAct!=NULL ) { + if(GEOM_Actor* anActor = GEOM_Actor::SafeDownCast(anAct)){ // There are no casting to needed actor. UIso = NbIsosDlg->getU(); VIso = NbIsosDlg->getV(); int aIsos[2]={UIso,VIso}; anActor->SetNbIsos(aIsos); } + anAct = aCollection->GetNextActor(); } } } // end vtkviewer - } void GEOMToolsGUI::OnOpen() diff --git a/src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.cxx b/src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.cxx new file mode 100644 index 000000000..9a350496f --- /dev/null +++ b/src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.cxx @@ -0,0 +1,132 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMToolsGUI_DeleteDlg.cxx +// Author : Dmitry Matveitchev, Open CASCADE S.A.S. +// +#include "GEOMToolsGUI_DeleteDlg.h" + +#include +#include +#include +#include +#include +#include + +static bool isEntryLess( const QString& e1, const QString& e2 ) +{ + QStringList el1 = e1.split(":"); + QStringList el2 = e2.split(":"); + int e1c = el1.count(), e2c = el2.count(); + for ( int i = 0; i < e1c && i < e2c; i++ ) { + int id1 = el1[i].toInt(); + int id2 = el2[i].toInt(); + if ( id1 < id2 ) return true; + else if ( id2 < id1 ) return false; + } + return el1.count() < el2.count(); +} + +static QStringList objectsToNames( const QMap& objects ) +{ + QStringList entries; + for ( QMap::ConstIterator it = objects.begin(); it != objects.end(); ++it ) { + QString entry = it.key(); + QStringList::Iterator iter; + bool added = false; + for ( iter = entries.begin(); iter != entries.end() && !added; ++iter ) { + if ( isEntryLess( entry, *iter ) ) { + entries.insert( iter, entry ); + added = true; + } + } + if ( !added ) + entries.append( entry ); + } + QStringList names; + for ( int i = 0; i < entries.count(); i++ ) { + int level = entries[i].count(":")-3; + names.append( QString( level*2, ' ' ) + objects[ entries[i] ] ); + } + return names; +} + +/*! + \brief Constructor. + \param parent parent widget +*/ +GEOMToolsGUI_DeleteDlg::GEOMToolsGUI_DeleteDlg( QWidget* parent, + const QMap& objects, + bool deleteAll ) +: QDialog( parent ) +{ + setModal( true ); + setObjectName( "GEOMToolsGUI_DeleteDlg" ); + + setWindowTitle( tr( "GEOM_DELETE_OBJECTS" ) ); + setSizeGripEnabled( true ); + + QGridLayout* topLayout = new QGridLayout( this ); + + topLayout->setSpacing( 6 ); + topLayout->setMargin( 11 ); + + QLabel* pix = new QLabel( this ); + pix->setPixmap( SUIT_MessageBox::standardIcon( QMessageBox::Question ) ); + pix->setScaledContents( false ); + pix->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) ); + topLayout->addWidget( pix, 0, 0, 1, 1 ); + + QLabel* lab = new QLabel( this ); + lab->setAlignment( Qt::AlignCenter ); + topLayout->addWidget( lab, 0, 1, 1, 1 ); + + if ( !deleteAll ) { + lab->setText( tr( "GEOM_REALLY_DELETE" ).arg( objects.count() ) ); + QTextBrowser* viewer = new QTextBrowser( this ); + viewer->setText( QString( " - %1" ).arg( objectsToNames( objects ).join( "\n - " ) ) ); + topLayout->addWidget( viewer, 1, 0, 1, 2 ); + } + else { + lab->setText( tr( "GEOM_REALLY_DELETE_ALL" ) ); + } + + QPushButton* buttonYes = new QPushButton( tr( "GEOM_BUT_YES" ), this ); + QPushButton* buttonNo = new QPushButton( tr( "GEOM_BUT_NO" ), this ); + QHBoxLayout* btnLayout = new QHBoxLayout; + btnLayout->setMargin( 0 ); + btnLayout->setSpacing( 6 ); + btnLayout->addWidget( buttonYes ); + btnLayout->addSpacing( 10 ); + btnLayout->addStretch(); + btnLayout->addWidget( buttonNo ); + int rc = topLayout->rowCount(); + topLayout->addLayout( btnLayout, rc, 0, 1, 2 ); + + /* signals and slots connections */ + connect( buttonYes, SIGNAL( clicked() ), this, SLOT( accept() ) ); + connect( buttonNo, SIGNAL( clicked() ), this, SLOT( reject() ) ); +} + +GEOMToolsGUI_DeleteDlg::~GEOMToolsGUI_DeleteDlg() +{ +} diff --git a/src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.h b/src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.h new file mode 100644 index 000000000..2e5e906e1 --- /dev/null +++ b/src/GEOMToolsGUI/GEOMToolsGUI_DeleteDlg.h @@ -0,0 +1,43 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMToolsGUI_DeleteDlg.h +// Author : Dmitry Matveitchev, Open CASCADE S.A.S. +// +#ifndef GEOMTOOLSGUI_DELETEDLG_H +#define GEOMTOOLSGUI_DELETEDLG_H + +#include "GEOM_ToolsGUI.hxx" + +#include +#include + +class GEOMTOOLSGUI_EXPORT GEOMToolsGUI_DeleteDlg : public QDialog +{ + Q_OBJECT + +public: + GEOMToolsGUI_DeleteDlg( QWidget*, const QMap&, bool = false ); + ~GEOMToolsGUI_DeleteDlg(); +}; + +#endif // GEOMTOOLSGUI_DELETEDLG_H diff --git a/src/GEOMToolsGUI/GEOMToolsGUI_NameDlg.h b/src/GEOMToolsGUI/GEOMToolsGUI_NameDlg.h deleted file mode 100644 index 050806d8a..000000000 --- a/src/GEOMToolsGUI/GEOMToolsGUI_NameDlg.h +++ /dev/null @@ -1,48 +0,0 @@ -// SALOME GEOMToolsGUI : implementation of desktop and GUI kernel -// -// Copyright (C) 2003 CEA/DEN, EDF R&D -// -// -// -// File : GEOMToolsGUI_NameDlg.h -// Author : Vadim SANDLER -// Module : SALOME -// $Header$ - -#ifndef GEOMToolsGUI_NAMEDLG_H -#define GEOMToolsGUI_NAMEDLG_H - -#include "GEOM_ToolsGUI.hxx" - -#include - -class QLineEdit; -class QPushButton; - -//================================================================================= -// class : GEOMToolsGUI_NameDlg -// purpose : Common dialog box class -//================================================================================= -class GEOMTOOLSGUI_EXPORT GEOMToolsGUI_NameDlg : public QDialog -{ - Q_OBJECT - -public: - GEOMToolsGUI_NameDlg( QWidget* parent = 0 ); - ~GEOMToolsGUI_NameDlg(); - - void setName( const QString& name ); - QString name(); - - static QString getName( QWidget* parent = 0, const QString& oldName = QString::null ); - -protected slots: - void accept(); - -private: - QPushButton* myButtonOk; - QPushButton* myButtonCancel; - QLineEdit* myLineEdit; -}; - -#endif // GEOMToolsGUI_NAMEDLG_H diff --git a/src/GEOMToolsGUI/GEOMToolsGUI_NbIsosDlg.cxx b/src/GEOMToolsGUI/GEOMToolsGUI_NbIsosDlg.cxx index 3fad26e35..b8bc790ba 100644 --- a/src/GEOMToolsGUI/GEOMToolsGUI_NbIsosDlg.cxx +++ b/src/GEOMToolsGUI/GEOMToolsGUI_NbIsosDlg.cxx @@ -1,45 +1,42 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMToolsGUI_NbIsosDlg.cxx +// Author : OCC Team // -// File : GEOMBase_NbIsosDlg.cxx -// Author : -// Module : GEOM -// $Header: - - #include "GEOMToolsGUI_NbIsosDlg.h" -#include "GeometryGUI.h" +#include #include #include +#include #include #include -#include -#include -#include -#include -#include -//using namespace std; +#include +#include +#include +#include +#include +#include //================================================================================= // class : GEOMToolsGUI_NbIsosDlg() @@ -49,55 +46,59 @@ // TRUE to construct a modal dialog. //================================================================================= GEOMToolsGUI_NbIsosDlg::GEOMToolsGUI_NbIsosDlg(QWidget* parent ) - :QDialog( parent, "GEOMToolsGUI_NbIsosDlg", true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) + :QDialog( parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint ) { - setCaption( tr( "GEOM_MEN_ISOS" ) ); + setObjectName( "GEOMToolsGUI_NbIsosDlg" ); + setModal( true ); + + setWindowTitle( tr( "GEOM_MEN_ISOS" ) ); setSizeGripEnabled(TRUE); QGridLayout* MyDialogLayout = new QGridLayout(this); MyDialogLayout->setSpacing(6); MyDialogLayout->setMargin(11); /***************************************************************/ - QGroupBox* GroupC1 = new QGroupBox( this, "GroupC1" ); - GroupC1->setColumnLayout(0, Qt::Vertical ); - GroupC1->layout()->setSpacing( 0 ); - GroupC1->layout()->setMargin( 0 ); - QGridLayout* GroupC1Layout = new QGridLayout( GroupC1->layout() ); + QGroupBox* GroupC1 = new QGroupBox( this ); + GroupC1->setObjectName( "GroupC1" ); + QGridLayout* GroupC1Layout = new QGridLayout( GroupC1 ); GroupC1Layout->setAlignment( Qt::AlignTop ); GroupC1Layout->setSpacing( 6 ); GroupC1Layout->setMargin( 11 ); - QLabel* TextLabel1 = new QLabel( GroupC1, "TextLabel1" ); + QLabel* TextLabel1 = new QLabel( GroupC1 ); + TextLabel1->setObjectName( "TextLabel1" ); TextLabel1->setText( tr( "GEOM_MEN_ISOU") ); GroupC1Layout->addWidget( TextLabel1, 0, 0 ); - SpinBoxU = new QSpinBox( GroupC1, "SpinBoxU" ); + SpinBoxU = new QSpinBox( GroupC1 ); + SpinBoxU->setObjectName( "SpinBoxU" ); SpinBoxU->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); - SpinBoxU->setMinValue( 0 ); + SpinBoxU->setMinimum( 0 ); SpinBoxU->setValue( 1 ); GroupC1Layout->addWidget( SpinBoxU, 0, 1 ); - QLabel* TextLabel2 = new QLabel( GroupC1, "TextLabel2" ); + QLabel* TextLabel2 = new QLabel( GroupC1 ); + TextLabel2->setObjectName( "TextLabel2" ); TextLabel2->setText( tr( "GEOM_MEN_ISOV") ) ; GroupC1Layout->addWidget( TextLabel2, 0, 2 ); - SpinBoxV = new QSpinBox( GroupC1, "SpinBoxV"); + SpinBoxV = new QSpinBox( GroupC1 ); + SpinBoxV->setObjectName( "SpinBoxV"); SpinBoxV->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); SpinBoxV->setValue( 1 ); - SpinBoxV->setMinValue( 0 ); + SpinBoxV->setMinimum( 0 ); GroupC1Layout->addWidget( SpinBoxV, 0, 3 ); /***************************************************************/ - QGroupBox* GroupButtons = new QGroupBox( this, "GroupButtons" ); - GroupButtons->setColumnLayout(0, Qt::Vertical ); - GroupButtons->layout()->setSpacing( 0 ); - GroupButtons->layout()->setMargin( 0 ); - QGridLayout* GroupButtonsLayout = new QGridLayout( GroupButtons->layout() ); + QGroupBox* GroupButtons = new QGroupBox( this ); + GroupButtons->setObjectName( "GroupButtons" ); + QGridLayout* GroupButtonsLayout = new QGridLayout( GroupButtons ); GroupButtonsLayout->setAlignment( Qt::AlignTop ); GroupButtonsLayout->setSpacing( 6 ); GroupButtonsLayout->setMargin( 11 ); - QPushButton* buttonOk = new QPushButton( GroupButtons, "buttonOk" ); + QPushButton* buttonOk = new QPushButton( GroupButtons ); + buttonOk->setObjectName( "buttonOk" ); buttonOk->setText( tr( "GEOM_BUT_OK" ) ) ; buttonOk->setAutoDefault( TRUE ); buttonOk->setDefault( TRUE ); @@ -105,12 +106,14 @@ GEOMToolsGUI_NbIsosDlg::GEOMToolsGUI_NbIsosDlg(QWidget* parent ) GroupButtonsLayout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 1 ); - QPushButton* buttonCancel = new QPushButton( GroupButtons, "buttonCancel" ); + QPushButton* buttonCancel = new QPushButton( GroupButtons ); + buttonCancel->setObjectName( "buttonCancel" ); buttonCancel->setText( tr( "GEOM_BUT_CANCEL" ) ) ; buttonCancel->setAutoDefault( TRUE ); GroupButtonsLayout->addWidget( buttonCancel, 0, 1 ); - QPushButton* buttonHelp = new QPushButton( GroupButtons, "buttonHelp" ); + QPushButton* buttonHelp = new QPushButton( GroupButtons ); + buttonHelp->setObjectName( "buttonHelp" ); buttonHelp->setText( tr( "GEOM_BUT_HELP" ) ) ; buttonHelp->setAutoDefault( TRUE ); GroupButtonsLayout->addWidget( buttonHelp, 0, 2 ); @@ -177,10 +180,10 @@ void GEOMToolsGUI_NbIsosDlg::ClickOnHelp() #else platform = "application"; #endif - SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"), - QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). - arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName), - QObject::tr("BUT_OK")); + SUIT_MessageBox::warning(0, QObject::tr("WRN_WARNING"), + QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). + arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName), + QObject::tr("BUT_OK")); } } @@ -194,7 +197,7 @@ void GEOMToolsGUI_NbIsosDlg::keyPressEvent( QKeyEvent* e ) if ( e->isAccepted() ) return; - if ( e->key() == Key_F1 ) + if ( e->key() == Qt::Key_F1 ) { e->accept(); ClickOnHelp(); diff --git a/src/GEOMToolsGUI/GEOMToolsGUI_NbIsosDlg.h b/src/GEOMToolsGUI/GEOMToolsGUI_NbIsosDlg.h index e93b1ded3..23beae1ea 100644 --- a/src/GEOMToolsGUI/GEOMToolsGUI_NbIsosDlg.h +++ b/src/GEOMToolsGUI/GEOMToolsGUI_NbIsosDlg.h @@ -1,37 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMToolsGUI_NbIsosDlg.h +// Author : OCC Team // -// File : GEOMToolsGUI_NbIsosDlg.h -// Author : -// Module : GEOM -// $Header: - #ifndef GEOMTOOLSGUI_NBISOSDLG_H #define GEOMTOOLSGUI_NBISOSDLG_H #include "GEOM_ToolsGUI.hxx" -#include +#include class QSpinBox; @@ -41,29 +38,28 @@ class QSpinBox; //================================================================================= class GEOMTOOLSGUI_EXPORT GEOMToolsGUI_NbIsosDlg : public QDialog { - Q_OBJECT + Q_OBJECT public: - GEOMToolsGUI_NbIsosDlg( QWidget* parent ); - ~GEOMToolsGUI_NbIsosDlg(); + GEOMToolsGUI_NbIsosDlg( QWidget* ); + ~GEOMToolsGUI_NbIsosDlg(); - int getU() const; - int getV() const; - - void setU( const int ); - void setV( const int ); - + int getU() const; + int getV() const; + + void setU( const int ); + void setV( const int ); + private slots: - void ClickOnHelp(); + void ClickOnHelp(); private: - void keyPressEvent(QKeyEvent*); + void keyPressEvent( QKeyEvent* ); private: - QSpinBox* SpinBoxU; - QSpinBox* SpinBoxV; - QString myHelpFileName; - + QSpinBox* SpinBoxU; + QSpinBox* SpinBoxV; + QString myHelpFileName; }; #endif // GEOMTOOLSGUI_NBISOSDLG_H diff --git a/src/GEOMToolsGUI/GEOMToolsGUI_TransparencyDlg.cxx b/src/GEOMToolsGUI/GEOMToolsGUI_TransparencyDlg.cxx index ad43b1bd0..c3f06d704 100644 --- a/src/GEOMToolsGUI/GEOMToolsGUI_TransparencyDlg.cxx +++ b/src/GEOMToolsGUI/GEOMToolsGUI_TransparencyDlg.cxx @@ -1,48 +1,43 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMToolsGUI_TransparencyDlg.cxx +// Author : Lucien PIGNOLONI // -// File : GEOMBase_TransparencyDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM - - #include "GEOMToolsGUI_TransparencyDlg.h" -#include "GEOMBase.h" -#include "GEOM_AISShape.hxx" -#include "GeometryGUI.h" +#include +#include +#include -#include "SALOME_ListIO.hxx" -#include "SALOME_ListIteratorOfListIO.hxx" +#include +#include #include #include #include #include -#include #include -#include #include #include #include @@ -53,18 +48,17 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include + using namespace std; //================================================================================= @@ -76,82 +70,92 @@ using namespace std; // //================================================================================= GEOMToolsGUI_TransparencyDlg::GEOMToolsGUI_TransparencyDlg( QWidget* parent ) - :QDialog( parent, "GEOMBase_TransparencyDlg", true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ) + :QDialog( parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint ) { + setModal( true ); + resize(152, 107); - setCaption(tr("GEOM_TRANSPARENCY_TITLE")); - setSizeGripEnabled(TRUE); - QGridLayout* lay = new QGridLayout(this); + setWindowTitle(tr("GEOM_TRANSPARENCY_TITLE")); + setSizeGripEnabled(true); + QVBoxLayout* lay = new QVBoxLayout(this); lay->setSpacing(6); lay->setMargin(11); - + /*************************************************************************/ - QGroupBox* GroupButtons = new QGroupBox( this, "GroupButtons" ); - GroupButtons->setColumnLayout(0, Qt::Vertical ); - GroupButtons->layout()->setSpacing( 0 ); - GroupButtons->layout()->setMargin( 0 ); - QGridLayout* GroupButtonsLayout = new QGridLayout( GroupButtons->layout() ); + QGroupBox* GroupButtons = new QGroupBox( this ); + QHBoxLayout* GroupButtonsLayout = new QHBoxLayout( GroupButtons ); GroupButtonsLayout->setAlignment( Qt::AlignTop ); GroupButtonsLayout->setSpacing( 6 ); GroupButtonsLayout->setMargin( 11 ); - QPushButton* buttonOk = new QPushButton( GroupButtons, "buttonOk" ); - buttonOk->setText( tr( "GEOM_BUT_OK" ) ); - buttonOk->setAutoDefault( TRUE ); - buttonOk->setDefault( TRUE ); - - QPushButton* buttonHelp = new QPushButton( GroupButtons, "buttonHelp" ); - buttonHelp->setText( tr( "GEOM_BUT_HELP" ) ); - buttonHelp->setAutoDefault( TRUE ); - buttonHelp->setDefault( TRUE ); - - GroupButtonsLayout->addWidget( buttonOk, 0, 0 ); - GroupButtonsLayout->addItem( new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum), 0, 1 ); - GroupButtonsLayout->addWidget( buttonHelp, 0, 2 ); - /*************************************************************************/ - QGroupBox* GroupC1 = new QGroupBox( this, "GroupC1" ); - GroupC1->setColumnLayout(0, Qt::Vertical ); - GroupC1->layout()->setSpacing( 0 ); - GroupC1->layout()->setMargin( 0 ); - QGridLayout* GroupC1Layout = new QGridLayout( GroupC1->layout() ); + QGroupBox* GroupC1 = new QGroupBox( this ); + QGridLayout* GroupC1Layout = new QGridLayout( GroupC1 ); GroupC1Layout->setAlignment( Qt::AlignTop ); GroupC1Layout->setSpacing( 6 ); GroupC1Layout->setMargin( 11 ); - QLabel* TextLabelOpaque = new QLabel( GroupC1, "TextLabelOpaque" ); - TextLabelOpaque->setText( tr( "GEOM_TRANSPARENCY_OPAQUE" ) ); - TextLabelOpaque->setAlignment( int( QLabel::AlignLeft ) ); - GroupC1Layout->addWidget( TextLabelOpaque, 0, 0 ); - GroupC1Layout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 1 ); + QLabel* TextLabelTransparent = new QLabel( tr( "GEOM_TRANSPARENCY_TRANSPARENT" ), GroupC1 ); + TextLabelTransparent->setAlignment( Qt::AlignRight ); + GroupC1Layout->addWidget( TextLabelTransparent, 0, 0 ); - QLabel* TextLabelTransparent = new QLabel( GroupC1, "TextLabelTransparent" ); - TextLabelTransparent->setText( tr( "GEOM_TRANSPARENCY_TRANSPARENT" ) ); - TextLabelTransparent->setAlignment( int( QLabel::AlignRight ) ); - GroupC1Layout->addWidget( TextLabelTransparent, 0, 2 ); + myValueLab = new QLabel( GroupC1 ); + myValueLab->setAlignment( Qt::AlignCenter ); + myValueLab->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); + QFont fnt = myValueLab->font(); fnt.setBold( true ); myValueLab->setFont( fnt ); + GroupC1Layout->addWidget( myValueLab, 0, 1 ); + + QLabel* TextLabelOpaque = new QLabel( tr( "GEOM_TRANSPARENCY_OPAQUE" ), GroupC1 ); + TextLabelOpaque->setAlignment( Qt::AlignLeft ); + GroupC1Layout->addWidget( TextLabelOpaque, 0, 2 ); + //GroupC1Layout->addItem( new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 1 ); - mySlider = new QSlider( 0, 10, 1, 5, Horizontal, GroupC1, "mySlider" ); + mySlider = new QSlider( Qt::Horizontal, GroupC1 ); + mySlider->setFocusPolicy( Qt::NoFocus ); mySlider->setMinimumSize( 300, 0 ); - mySlider->setTickmarks( QSlider::Left ); - GroupC1Layout->addMultiCellWidget( mySlider, 1, 1, 0, 2 ); + mySlider->setTickPosition( QSlider::TicksAbove ); + mySlider->setTickInterval( 10 ); + mySlider->setMinimum( 0 ); + mySlider->setMaximum( 100 ); + mySlider->setSingleStep( 1 ); + mySlider->setPageStep( 10 ); + //mySlider->setValue( 5 ); + + mySlider->setTickPosition( QSlider::TicksLeft ); + GroupC1Layout->addWidget( mySlider, 1, 0, 1, 3 ); + /*************************************************************************/ + QPushButton* buttonOk = new QPushButton( tr( "GEOM_BUT_OK" ), GroupButtons ); + buttonOk->setAutoDefault( true ); + buttonOk->setDefault( true ); - lay->addWidget(GroupC1, 0, 0); - lay->addWidget(GroupButtons, 1, 0); + QPushButton* buttonHelp = new QPushButton( tr( "GEOM_BUT_HELP" ), GroupButtons ); + buttonHelp->setAutoDefault( true ); + buttonHelp->setDefault( true ); + + GroupButtonsLayout->addWidget( buttonOk ); + GroupButtonsLayout->addSpacing( 10 ); + GroupButtonsLayout->addStretch(); + GroupButtonsLayout->addWidget( buttonHelp ); + + /*************************************************************************/ + lay->addWidget(GroupC1); + lay->addWidget(GroupButtons); /* First call valueChanged() method for initialisation */ /* The default value of transparency will change with the selection */ myFirstInit = true; // mySlider->setMaxValue( 10 ); // mySlider->setValue( 5 ) ; - ValueHasChanged(mySlider->value()); + SetTransparency(); myHelpFileName = "transparency_page.html"; // signals and slots connections : after ValueHasChanged() - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); - connect(mySlider, SIGNAL(valueChanged(int)), this, SLOT(ValueHasChanged(int))); + connect(mySlider, SIGNAL(valueChanged(int)), this, SLOT(SetTransparency())); + connect(mySlider, SIGNAL(sliderMoved(int)), this, SLOT(ValueHasChanged())); } @@ -204,20 +208,31 @@ void GEOMToolsGUI_TransparencyDlg::ClickOnHelp() #else platform = "application"; #endif - SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"), - QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). - arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName), - QObject::tr("BUT_OK")); + SUIT_MessageBox::warning(0, QObject::tr("WRN_WARNING"), + QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). + arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName), + QObject::tr("BUT_OK")); } } //================================================================================= // function : ValueHasChanged() // purpose : Called when value of slider change +//================================================================================= +void GEOMToolsGUI_TransparencyDlg::ValueHasChanged() +{ + myValueLab->setText( QString("%1%").arg( mySlider->value() ) ); +} + +//================================================================================= +// function : SetTransparency() +// purpose : Called when value of slider change // : or the first time as initilisation //================================================================================= -void GEOMToolsGUI_TransparencyDlg::ValueHasChanged( int newValue ) +void GEOMToolsGUI_TransparencyDlg::SetTransparency() { + float newValue = ( 100 - mySlider->value() ) / 100.; + SalomeApp_Application* app = dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() ); if ( !app ) return; @@ -244,14 +259,15 @@ void GEOMToolsGUI_TransparencyDlg::ValueHasChanged( int newValue ) SVTK_View* aView = vtkVW->getView(); if ( myFirstInit ) { myFirstInit = false; - float transp = (aView->GetTransparency(FirstIOS))*10.0; - mySlider->setValue(int(transp)); + int transp = int (100 - ((aView->GetTransparency(FirstIOS))*100.0) + 0.5); + mySlider->setValue(transp); + ValueHasChanged(); return; } SUIT_OverrideCursor(); for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) { - aView->SetTransparency( It.Value(), newValue/10.0 ); + aView->SetTransparency( It.Value(), newValue ); } aView->Repaint(); } // if ( isVTK ) @@ -265,8 +281,9 @@ void GEOMToolsGUI_TransparencyDlg::ValueHasChanged( int newValue ) aisShape = gb->ConvertIOinGEOMAISShape( FirstIOS, found ); if( !found ) return; - float transp = (int(aisShape->Transparency() * 10.0 + 0.001)); - mySlider->setValue(int(transp)); + int transp = int( 100 - ( aisShape->Transparency() * 100.0 ) + 0.5); + mySlider->setValue(transp); + ValueHasChanged(); return; } @@ -278,12 +295,14 @@ void GEOMToolsGUI_TransparencyDlg::ValueHasChanged( int newValue ) for ( SALOME_ListIteratorOfListIO It( selected ); It.More(); It.Next() ) { aisShape = gb->ConvertIOinGEOMAISShape( It.Value(), found ); if ( found ) { - ic->SetTransparency( aisShape, newValue / 10.0, false ); + ic->SetTransparency( aisShape, newValue, false ); ic->Redisplay( aisShape, Standard_False, Standard_True ); } } // for... ic->UpdateCurrentViewer(); } // if ( isOCC ) + + ValueHasChanged(); } //================================================================================= @@ -296,7 +315,7 @@ void GEOMToolsGUI_TransparencyDlg::keyPressEvent( QKeyEvent* e ) if ( e->isAccepted() ) return; - if ( e->key() == Key_F1 ) + if ( e->key() == Qt::Key_F1 ) { e->accept(); ClickOnHelp(); diff --git a/src/GEOMToolsGUI/GEOMToolsGUI_TransparencyDlg.h b/src/GEOMToolsGUI/GEOMToolsGUI_TransparencyDlg.h index 0b7aa869c..96eda5d71 100644 --- a/src/GEOMToolsGUI/GEOMToolsGUI_TransparencyDlg.h +++ b/src/GEOMToolsGUI/GEOMToolsGUI_TransparencyDlg.h @@ -1,39 +1,37 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : GEOMBase_TransparencyDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - -#ifndef DIALOGBOX_TRANSPARENCYDLG_H -#define DIALOGBOX_TRANSPARENCYDLG_H +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GEOMToolsGUI_TransparencyDlg.h +// Author : Lucien PIGNOLONI +// +#ifndef GEOMTOOLSGUI_TRANSPARENCYDLG_H +#define GEOMTOOLSGUI_TRANSPARENCYDLG_H #include "GEOM_ToolsGUI.hxx" -#include +#include class QSlider; +class QLabel; //================================================================================= // class : GEOMBase_TransparencyDlg @@ -42,27 +40,27 @@ class QSlider; //================================================================================= class GEOMTOOLSGUI_EXPORT GEOMToolsGUI_TransparencyDlg : public QDialog { - Q_OBJECT + Q_OBJECT public: - GEOMToolsGUI_TransparencyDlg( QWidget* parent ); + GEOMToolsGUI_TransparencyDlg( QWidget* ); ~GEOMToolsGUI_TransparencyDlg(); private: - void keyPressEvent(QKeyEvent*); + void keyPressEvent( QKeyEvent* ); -private : - bool myFirstInit ; /* Inform for the first init */ +private: + bool myFirstInit; /* Inform for the first init */ QSlider* mySlider; + QLabel* myValueLab; QString myHelpFileName; private slots: void ClickOnOk(); void ClickOnClose(); void ClickOnHelp(); - void ValueHasChanged( int ) ; - + void ValueHasChanged(); + void SetTransparency(); }; -#endif // DIALOGBOX_TRANSPARENCYDLG_H - +#endif // GEOMTOOLSGUI_TRANSPARENCYDLG_H diff --git a/src/GEOMToolsGUI/GEOM_ToolsGUI.hxx b/src/GEOMToolsGUI/GEOM_ToolsGUI.hxx index db2c0ed56..97cc42ba3 100755 --- a/src/GEOMToolsGUI/GEOM_ToolsGUI.hxx +++ b/src/GEOMToolsGUI/GEOM_ToolsGUI.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOM_ToolsGUI.hxx // Author : Alexander A. BORODIN // Module : GEOM - +// #ifndef _GEOM_ToolsGUI_HXX_ #define _GEOM_ToolsGUI_HXX_ diff --git a/src/GEOMToolsGUI/Makefile.am b/src/GEOMToolsGUI/Makefile.am index 45092979a..4f879990b 100644 --- a/src/GEOMToolsGUI/Makefile.am +++ b/src/GEOMToolsGUI/Makefile.am @@ -1,80 +1,78 @@ -# GEOM GEOMTOOLSGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : GEOMToolsGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libGEOMToolsGUI.la # header files -salomeinclude_HEADERS = +salomeinclude_HEADERS = \ + GEOMToolsGUI.h \ + GEOM_ToolsGUI.hxx \ + GEOMToolsGUI_NbIsosDlg.h \ + GEOMToolsGUI_TransparencyDlg.h \ + GEOMToolsGUI_DeleteDlg.h \ + GEOMToolsGUI_NbIsosDlg.h -dist_libGEOMToolsGUI_la_SOURCES = \ - GEOMToolsGUI.cxx \ - GEOMToolsGUI_1.cxx \ - GEOMToolsGUI_TransparencyDlg.cxx \ - GEOMToolsGUI_NbIsosDlg.cxx +dist_libGEOMToolsGUI_la_SOURCES = \ + GEOMToolsGUI.cxx \ + GEOMToolsGUI_1.cxx \ + GEOMToolsGUI_TransparencyDlg.cxx \ + GEOMToolsGUI_NbIsosDlg.cxx \ + GEOMToolsGUI_DeleteDlg.cxx -MOC_FILES = \ - GEOMToolsGUI_TransparencyDlg_moc.cxx \ - GEOMToolsGUI_NbIsosDlg_moc.cxx +MOC_FILES = \ + GEOMToolsGUI_TransparencyDlg_moc.cxx \ + GEOMToolsGUI_NbIsosDlg_moc.cxx \ + GEOMToolsGUI_DeleteDlg_moc.cxx -nodist_libGEOMToolsGUI_la_SOURCES= \ +nodist_libGEOMToolsGUI_la_SOURCES = \ $(MOC_FILES) -#LIB_CLIENT_IDL = SALOMEDS_Attributes.idl \ -# SALOME_GenericObj.idl \ -# SALOME_Exception.idl \ -# SALOME_Component.idl +# additional information to compile and link file -#LIB_SERVER_IDL = - -# additionnal information to compile and link file -libGEOMToolsGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(top_builddir)/idl \ +libGEOMToolsGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libGEOMToolsGUI_la_LDFLAGS = \ - ../GEOMBase/libGEOMBase.la \ - ../GEOMGUI/libGEOM.la \ +libGEOMToolsGUI_la_LDFLAGS = \ + ../GEOMBase/libGEOMBase.la \ + ../GEOMGUI/libGEOM.la \ $(GUI_LDFLAGS) -lVTKViewer -lOCCViewer -lsuit -lSalomeApp diff --git a/src/GEOM_I/GEOM_DumpPython.cc b/src/GEOM_I/GEOM_DumpPython.cc index 3fb087871..82f5f5d44 100644 --- a/src/GEOM_I/GEOM_DumpPython.cc +++ b/src/GEOM_I/GEOM_DumpPython.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifdef WNT #pragma warning( disable:4786 ) @@ -24,11 +26,15 @@ #include #include "GEOM_Gen_i.hh" + #include #include #include #include +#include +#include + //======================================================================= //function : DumpPython //purpose : @@ -48,6 +54,8 @@ Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Object_ptr theStudy, Resource_DataMapOfAsciiStringAsciiString aMap; + TVariablesList aVariableMap; + SALOMEDS::ChildIterator_var Itr = aStudy->NewChildIterator(aSO); for(Itr->InitEx(true); Itr->More(); Itr->Next()) { SALOMEDS::SObject_var aValue = Itr->Value(); @@ -59,14 +67,47 @@ Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Object_ptr theStudy, CORBA::String_var aName = aValue->GetName(); CORBA::String_var anEntry = GO->GetEntry(); aMap.Bind( (char*)anEntry.in(), (char*)aName.in() ); + + //Find attribute with list of used notebook variables + SALOMEDS::GenericAttribute_var anAttr; + SALOMEDS::AttributeString_var anAttrStr; + if(aValue->FindAttribute(anAttr,"AttributeString")){ + anAttrStr = SALOMEDS::AttributeString::_narrow(anAttr); + SALOMEDS::ListOfListOfStrings_var aSections = aStudy->ParseVariables(anAttrStr->Value()); + ObjectStates* aStates = new ObjectStates(); + for(int i = 0; i < aSections->length(); i++) { + TState aState; + SALOMEDS::ListOfStrings aListOfVars = aSections[i]; + for(int j = 0; j < aListOfVars.length(); j++) { + bool isVar = aStudy->IsVariable(aListOfVars[j].in()); + TVariable aVar = TVariable( (char*)aListOfVars[j].in(), isVar ); + aState.push_back(aVar); + } + aStates->AddState(aState); + } + aVariableMap.insert(pair(TCollection_AsciiString(anEntry),aStates)); + } } } } - + TCollection_AsciiString aScript = "### This file is generated by SALOME automatically by dump python functionality\n" "### of GEOM component\n\n"; - aScript += _impl->DumpPython(aStudy->StudyId(), aMap, isPublished, isValidScript); + aScript += _impl->DumpPython(aStudy->StudyId(), aMap, aVariableMap, isPublished, isValidScript); + + if (isPublished) + { + //Output the script that sets up the visual parameters. + char* script = aStudy->GetDefaultScript(ComponentDataType(), "\t"); + if (script && strlen(script) > 0) { + aScript += "\n\t### Store presentation parameters of displayed objects\n"; + aScript += script; + CORBA::string_free(script); + } + } + + aScript += "\n\tpass\n"; int aLen = aScript.Length(); unsigned char* aBuffer = new unsigned char[aLen+1]; diff --git a/src/GEOM_I/GEOM_GEOM_I.hxx b/src/GEOM_I/GEOM_GEOM_I.hxx index 0d0d57396..b9ef2ed75 100755 --- a/src/GEOM_I/GEOM_GEOM_I.hxx +++ b/src/GEOM_I/GEOM_GEOM_I.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOM_GEOM_I.hxx // Author : Alexander A. BORODIN // Module : GEOM - +// #ifndef _GEOM_GEOM_I_HXX_ #define _GEOM_GEOM_I_HXX_ diff --git a/src/GEOM_I/GEOM_Gen_i.cc b/src/GEOM_I/GEOM_Gen_i.cc index 106ee9ef6..6e8e4e430 100644 --- a/src/GEOM_I/GEOM_Gen_i.cc +++ b/src/GEOM_I/GEOM_Gen_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifdef WNT #pragma warning( disable:4786 ) @@ -159,7 +161,6 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy, Unexpect aCatch(SALOME_SalomeException); SALOMEDS::SObject_var aResultSO; if(CORBA::is_nil(theObject) || theStudy->_is_nil()) return aResultSO; - GEOM::GEOM_Object_var aShape = GEOM::GEOM_Object::_narrow(theObject); if(aShape->_is_nil()) return aResultSO; @@ -272,7 +273,25 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy, anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeName"); SALOMEDS::AttributeName_var aNameAttrib = SALOMEDS::AttributeName::_narrow(anAttr); aNameAttrib->SetValue(aShapeName.ToCString()); - + + //Set NoteBook variables used in the object creation + TCollection_AsciiString aVars; + SALOMEDS::ListOfListOfStrings_var aSections = theStudy->ParseVariables(aShape->GetParameters()); + for(int i = 0, n = aSections->length(); i < n; i++) { + SALOMEDS::ListOfStrings aListOfVars = aSections[i]; + for(int j = 0, m = aListOfVars.length(); j < m; j++) { + if(theStudy->IsVariable(aListOfVars[j].in())) + aVars += TCollection_AsciiString(aListOfVars[j].in()); + if(j != m-1) + aVars += ":"; + } + if(i != n-1) + aVars += "|"; + } + anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeString"); + SALOMEDS::AttributeString_var aStringAttrib = SALOMEDS::AttributeString::_narrow(anAttr); + aStringAttrib->SetValue(aVars.ToCString()); + //Set a name of the GEOM object aShape->SetName(theName); @@ -313,7 +332,7 @@ SALOMEDS::TMPFile* GEOM_Gen_i::Save(SALOMEDS::SComponent_ptr theComponent, // Build a full file name of temporary file TCollection_AsciiString aFullName = TCollection_AsciiString((char*)aTmpDir.c_str()) + aNameWithExt; // Save GEOM component in this file - _impl->Save(theComponent->GetStudy()->StudyId(), aFullName.ToCString()); + _impl->Save(theComponent->GetStudy()->StudyId(),(char*) aFullName.ToCString()); // Conver a file to the byte stream aStreamFile = SALOMEDS_Tool::PutFilesToStream(aTmpDir.c_str(), aSeq.in(), isMultiFile); // Remove the created file and tmp directory @@ -375,7 +394,7 @@ CORBA::Boolean GEOM_Gen_i::Load(SALOMEDS::SComponent_ptr theComponent, TCollection_AsciiString aFullName = (TCollection_AsciiString((char*)aTmpDir.c_str()) + aNameWithExt); // Open document - if (!_impl->Load(theComponent->GetStudy()->StudyId(), aFullName.ToCString())) return false; + if (!_impl->Load(theComponent->GetStudy()->StudyId(),(char*) aFullName.ToCString())) return false; // Remove the created file and tmp directory if (!isMultiFile) SALOMEDS_Tool::RemoveTemporaryFiles(aTmpDir.c_str(), aSeq.in(), true); @@ -522,7 +541,10 @@ char* GEOM_Gen_i::ComponentDataType() // function : AddInStudy // purpose : //============================================================================ -SALOMEDS::SObject_ptr GEOM_Gen_i::AddInStudy(SALOMEDS::Study_ptr theStudy, GEOM::GEOM_Object_ptr theObject, const char* theName, GEOM::GEOM_Object_ptr theFather) +SALOMEDS::SObject_ptr GEOM_Gen_i::AddInStudy (SALOMEDS::Study_ptr theStudy, + GEOM::GEOM_Object_ptr theObject, + const char* theName, + GEOM::GEOM_Object_ptr theFather) { SALOMEDS::SObject_var aResultSO; if(theObject->_is_nil() || theStudy->_is_nil()) return aResultSO; @@ -559,6 +581,393 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::AddInStudy(SALOMEDS::Study_ptr theStudy, GEOM: return aResultSO._retn(); } +//============================================================================ +// function : RestoreSubShapesO +// purpose : Publish sub-shapes, standing for arguments and sub-shapes of arguments. +// To be used from python scripts out of geompy.addToStudy (non-default usage) +//============================================================================ +CORBA::Boolean GEOM_Gen_i::RestoreSubShapesO (SALOMEDS::Study_ptr theStudy, + GEOM::GEOM_Object_ptr theObject, + const GEOM::ListOfGO& theArgs, + GEOM::find_shape_method theFindMethod, + CORBA::Boolean theInheritFirstArg) +{ + if (CORBA::is_nil(theStudy) || CORBA::is_nil(theObject)) + return false; + + // find SObject in the study + CORBA::String_var anIORo = _orb->object_to_string(theObject); + SALOMEDS::SObject_var aSO = theStudy->FindObjectIOR(anIORo.in()); + if (CORBA::is_nil(aSO)) + return false; + + return RestoreSubShapes(theStudy, theObject, aSO, theArgs, theFindMethod, theInheritFirstArg); +} + +//============================================================================ +// function : RestoreSubShapesSO +// purpose : Publish sub-shapes, standing for arguments and sub-shapes of arguments. +// To be used from GUI and from geompy.addToStudy +//============================================================================ +CORBA::Boolean GEOM_Gen_i::RestoreSubShapesSO (SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject, + const GEOM::ListOfGO& theArgs, + GEOM::find_shape_method theFindMethod, + CORBA::Boolean theInheritFirstArg) +{ + if (CORBA::is_nil(theStudy) || CORBA::is_nil(theSObject)) + return false; + + SALOMEDS::GenericAttribute_var anAttr; + if (!theSObject->FindAttribute(anAttr, "AttributeIOR")) + return false; + + SALOMEDS::AttributeIOR_var anAttrIOR = SALOMEDS::AttributeIOR::_narrow(anAttr); + CORBA::String_var anIORso = anAttrIOR->Value(); + + // get Object from SObject + GEOM::GEOM_Object_var anO = GEOM::GEOM_Object::_narrow(_orb->string_to_object(anIORso)); + if (CORBA::is_nil(anO)) + return false; + + return RestoreSubShapes(theStudy, anO, theSObject, theArgs, theFindMethod, theInheritFirstArg); +} + +//============================================================================ +// function : RestoreSubShapes +// purpose : Private method. Works only if both theObject and theSObject +// are defined, and does not check, if they correspond to each other. +//============================================================================ +CORBA::Boolean GEOM_Gen_i::RestoreSubShapes (SALOMEDS::Study_ptr theStudy, + GEOM::GEOM_Object_ptr theObject, + SALOMEDS::SObject_ptr theSObject, + const GEOM::ListOfGO& theArgs, + GEOM::find_shape_method theFindMethod, + CORBA::Boolean theInheritFirstArg) +{ + if (CORBA::is_nil(theStudy) || CORBA::is_nil(theObject) || CORBA::is_nil(theSObject)) + return false; + + // Arguments to be published + GEOM::ListOfGO_var aList; + + // If theArgs list is empty, we try to publish all arguments, + // otherwise publish only passed args + Standard_Integer nbArgsActual = -1; // -1 means unknown + Standard_Integer aLength = theArgs.length(); + if (aLength > 0) { + aList = new GEOM::ListOfGO; + aList->length(aLength); + for (int i = 0; i < aLength; i++) { + aList[i] = theArgs[i]; + } + } + else { + // Get all arguments + aList = theObject->GetDependency(); + aLength = aList->length(); + nbArgsActual = aLength; + } + + if (aLength < 1) + return false; + + if (theInheritFirstArg || (nbArgsActual == 1)) { + // Do not publish argument's reflection, + // but only reconstruct its published sub-shapes + + GEOM::GEOM_Object_var anArgO = aList[0]; + CORBA::String_var anIOR = _orb->object_to_string(anArgO); + SALOMEDS::SObject_var anArgSO = theStudy->FindObjectIOR(anIOR.in()); + + GEOM::ListOfGO_var aParts = + RestoreSubShapesOneLevel(theStudy, anArgSO, theSObject, theObject, theFindMethod); + + // set the color of the transformed shape to the color of initial shape + theObject->SetColor(aList[0]->GetColor()); + + return (aParts->length() > 0); + } + + // Get interface, containing method, which we will use to reconstruct sub-shapes + GEOM::GEOM_IShapesOperations_var aShapesOp = GetIShapesOperations(theStudy->StudyId()); + GEOM::GEOM_IGroupOperations_var aGroupOp = GetIGroupOperations(theStudy->StudyId()); + + // Reconstruct arguments and tree of sub-shapes of the arguments + CORBA::String_var anIOR; + SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder(); + for (Standard_Integer i = 0; i < aLength; i++) + { + GEOM::GEOM_Object_var anArgO = aList[i]; + if (!CORBA::is_nil(anArgO)) { + anIOR = _orb->object_to_string(anArgO); + SALOMEDS::SObject_var anArgSO = theStudy->FindObjectIOR(anIOR.in()); + TCollection_AsciiString anArgName; + if (CORBA::is_nil(anArgSO)) { + anArgName = "arg_"; + anArgName += TCollection_AsciiString(i); + } + else { + anArgName = anArgSO->GetName(); + } + + // Find a sub-shape of theObject in place of the argument + GEOM::GEOM_Object_var aSubO; + switch (theFindMethod) { + case GEOM::FSM_GetInPlace: + { + // Use GetInPlace + aSubO = aShapesOp->GetInPlace(theObject, anArgO); + } + break; + case GEOM::FSM_Transformed: + { + // transformation, cannot use GetInPlace, operate with indices + GEOM::ListOfLong_var anIDs = anArgO->GetSubShapeIndices(); + if (anIDs->length() > 1) { + // group + aSubO = aGroupOp->CreateGroup(theObject, aGroupOp->GetType(anArgO)); + if (!CORBA::is_nil(aSubO)) + aGroupOp->UnionIDs(aSubO, anIDs); + } + else { + // single sub-shape + aSubO = aShapesOp->GetSubShape(theObject, anIDs[0]); + } + } + break; + case GEOM::FSM_GetSame: + { + // Use GetSame + aSubO = aShapesOp->GetSame(theObject, anArgO); + } + break; + case GEOM::FSM_GetShapesOnShape: + { + // Use GetShapesOnShape. Can work only on solids, so it has sense to search only solids + aSubO = aShapesOp->GetShapesOnShapeAsCompound(anArgO, theObject, + (short)GEOM::SOLID, GEOM::ST_ONIN); + } + break; + case GEOM::FSM_GetInPlaceByHistory: + { + // Use GetInPlaceByHistory + aSubO = aShapesOp->GetInPlaceByHistory(theObject, anArgO); + } + break; + default: + {} + } + + if (!CORBA::is_nil(aSubO)) { + // Publish the sub-shape + TCollection_AsciiString aSubName ("from_"); + aSubName += anArgName; + SALOMEDS::SObject_var aSubSO = aStudyBuilder->NewObject(theSObject); + aSubSO = PublishInStudy(theStudy, aSubSO, aSubO, aSubName.ToCString()); + // Restore color + aSubO->SetColor(anArgO->GetColor()); + + if (!CORBA::is_nil(anArgSO)) { + // Restore published sub-shapes of the argument + if (theFindMethod == GEOM::FSM_GetInPlaceByHistory) + // pass theObject, because only it has the history + RestoreSubShapesOneLevel(theStudy, anArgSO, aSubSO, theObject, theFindMethod); + else + RestoreSubShapesOneLevel(theStudy, anArgSO, aSubSO, aSubO, theFindMethod); + } + } + else { // GetInPlace failed, try to build from published parts + if (!CORBA::is_nil(anArgSO)) { + SALOMEDS::SObject_var aSubSO = aStudyBuilder->NewObject(theSObject); + + // Restore published sub-shapes of the argument + GEOM::ListOfGO_var aParts = + RestoreSubShapesOneLevel(theStudy, anArgSO, aSubSO, theObject, theFindMethod); + + if (aParts->length() > 0) { + // try to build an argument from a set of its sub-shapes, + // that published and will be reconstructed + if (aParts->length() > 1) { + aSubO = aShapesOp->MakeCompound(aParts); + } + else { + aSubO = aParts[0]; + } + if (!CORBA::is_nil(aSubO)) { + // Publish the sub-shape + TCollection_AsciiString aSubName ("from_parts_of_"); + aSubName += anArgName; + aSubSO = PublishInStudy(theStudy, aSubSO, aSubO, aSubName.ToCString()); + // Restore color + aSubO->SetColor(anArgO->GetColor()); + } + } + else { + // remove created aSubSO, because no parts have been found + aStudyBuilder->RemoveObject(aSubSO); + } + } + } // try to build from published parts + } + } // process arguments + + return true; +} + +//============================================================================ +// function : RestoreSubShapesOneLevel +// purpose : Private method +//============================================================================ +GEOM::ListOfGO* GEOM_Gen_i::RestoreSubShapesOneLevel (SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theOldSO, + SALOMEDS::SObject_ptr theNewSO, + GEOM::GEOM_Object_ptr theNewO, + GEOM::find_shape_method theFindMethod) +{ + int i = 0; + GEOM::ListOfGO_var aParts = new GEOM::ListOfGO; + if (CORBA::is_nil(theStudy) || CORBA::is_nil(theOldSO) || + CORBA::is_nil(theNewO) || CORBA::is_nil(theNewSO)) + return aParts._retn(); + + SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder(); + + // Get interface, containing method, which we will use to reconstruct sub-shapes + GEOM::GEOM_IShapesOperations_var aShapesOp = GetIShapesOperations(theStudy->StudyId()); + GEOM::GEOM_IGroupOperations_var aGroupOp = GetIGroupOperations(theStudy->StudyId()); + + // Reconstruct published sub-shapes + SALOMEDS::ChildIterator_var it = theStudy->NewChildIterator(theOldSO); + + int aLen = 0; + for (it->Init(); it->More(); it->Next()) { + aLen++; + } + aParts->length(aLen); + + for (it->Init(); it->More(); it->Next()) { + SALOMEDS::SObject_var anOldSubSO = it->Value(); + + TCollection_AsciiString anArgName = anOldSubSO->GetName(); + + SALOMEDS::GenericAttribute_var anAttr; + if (anOldSubSO->FindAttribute(anAttr, "AttributeIOR")) { + SALOMEDS::AttributeIOR_var anAttrIOR = SALOMEDS::AttributeIOR::_narrow(anAttr); + GEOM::GEOM_Object_var anOldSubO = + GEOM::GEOM_Object::_narrow(_orb->string_to_object(anAttrIOR->Value())); + if (!CORBA::is_nil(anOldSubO)) { + // Find a sub-shape of theNewO in place of anOldSubO + GEOM::GEOM_Object_var aNewSubO; + switch (theFindMethod) { + case GEOM::FSM_GetInPlace: + { + // Use GetInPlace + aNewSubO = aShapesOp->GetInPlace(theNewO, anOldSubO); + } + break; + case GEOM::FSM_Transformed: + { + // transformation, cannot use GetInPlace, operate with indices + GEOM::ListOfLong_var anIDs = anOldSubO->GetSubShapeIndices(); + if (anIDs->length() > 1) { + // group + aNewSubO = aGroupOp->CreateGroup(theNewO, aGroupOp->GetType(anOldSubO)); + if (!CORBA::is_nil(aNewSubO)) + aGroupOp->UnionIDs(aNewSubO, anIDs); + } + else { + // single sub-shape + aNewSubO = aShapesOp->GetSubShape(theNewO, anIDs[0]); + } + } + break; + case GEOM::FSM_GetSame: + { + // Use GetSame + aNewSubO = aShapesOp->GetSame(theNewO, anOldSubO); + } + break; + case GEOM::FSM_GetShapesOnShape: + { + // Use GetShapesOnShape. Can work only on solids, so it has sense to search only solids + aNewSubO = aShapesOp->GetShapesOnShapeAsCompound(anOldSubO, theNewO, + (short)GEOM::SOLID, GEOM::ST_ONIN); + } + break; + case GEOM::FSM_GetInPlaceByHistory: + { + // Use GetInPlaceByHistory + aNewSubO = aShapesOp->GetInPlaceByHistory(theNewO, anOldSubO); + } + break; + default: + {} + } + + if (!CORBA::is_nil(aNewSubO)) { + // add the part to the list + aParts[i] = aNewSubO; + i++; + + // Publish the sub-shape + TCollection_AsciiString aSubName ("from_"); + aSubName += anArgName; + SALOMEDS::SObject_var aNewSubSO = aStudyBuilder->NewObject(theNewSO); + aNewSubSO = PublishInStudy(theStudy, aNewSubSO, aNewSubO, aSubName.ToCString()); + // Restore color + aNewSubO->SetColor(anOldSubO->GetColor()); + + // Restore published sub-shapes of the argument + if (theFindMethod == GEOM::FSM_GetInPlaceByHistory) + // pass the main shape as Object, because only it has the history + RestoreSubShapesOneLevel(theStudy, anOldSubSO, aNewSubSO, theNewO, theFindMethod); + else + RestoreSubShapesOneLevel(theStudy, anOldSubSO, aNewSubSO, aNewSubO, theFindMethod); + } + else { // GetInPlace failed, try to build from published parts + SALOMEDS::SObject_var aNewSubSO = aStudyBuilder->NewObject(theNewSO); + + // Restore published sub-shapes of the argument + GEOM::ListOfGO_var aParts = + RestoreSubShapesOneLevel(theStudy, anOldSubSO, aNewSubSO, theNewO, theFindMethod); + + if (aParts->length() > 0) { + // try to build an object from a set of its sub-shapes, + // that published and will be reconstructed + if (aParts->length() > 1) { + aNewSubO = aShapesOp->MakeCompound(aParts); + } + else { + aNewSubO = aParts[0]; + } + + if (!CORBA::is_nil(aNewSubO)) { + // add the part to the list + aParts[i] = aNewSubO; + i++; + + // Publish the sub-shape + TCollection_AsciiString aSubName = "from_parts_of_"; + aSubName += anArgName; + aNewSubSO = PublishInStudy(theStudy, aNewSubSO, aNewSubO, aSubName.ToCString()); + // Restore color + aNewSubO->SetColor(anOldSubO->GetColor()); + } + } + else { + // remove created aSubSO, because no parts have been found + aStudyBuilder->RemoveObject(aNewSubSO); + } + } // try to build from published parts + } + } + } // iterate on published sub-shapes + + aParts->length(i); + return aParts._retn(); +} + //============================================================================ // function : register() // purpose : register 'name' in 'name_service' @@ -858,7 +1267,8 @@ GEOM::GEOM_Object_ptr GEOM_Gen_i::AddSubShape (GEOM::GEOM_Object_ptr theMainShap //============================================================================= void GEOM_Gen_i::RemoveObject(GEOM::GEOM_Object_ptr theObject) { - Handle(GEOM_Object) anObject = _impl->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + CORBA::String_var anEntry = theObject->GetEntry(); + Handle(GEOM_Object) anObject = _impl->GetObject(theObject->GetStudyID(), anEntry); if (anObject.IsNull()) return; _impl->RemoveObject(anObject); return; @@ -915,6 +1325,157 @@ GEOM::GEOM_Object_ptr GEOM_Gen_i::GetObject (CORBA::Long theStudyID, const char* return obj._retn(); } +//================================================================================= +// function : hasObjectInfo() +// purpose : shows if module provides information for its objects +//================================================================================= +bool GEOM_Gen_i::hasObjectInfo() +{ + return true; +} + +//================================================================================= +// function : getObjectInfo() +// purpose : returns an information for a given object by its entry +//================================================================================= +char* GEOM_Gen_i::getObjectInfo(CORBA::Long studyId, const char* entry) +{ + GEOM::GEOM_Object_var aGeomObject; + + CORBA::Object_var aSMObject = name_service->Resolve( "/myStudyManager" ); + SALOMEDS::StudyManager_var aStudyManager = SALOMEDS::StudyManager::_narrow( aSMObject ); + SALOMEDS::Study_var aStudy = aStudyManager->GetStudyByID( studyId ); + SALOMEDS::SObject_var aSObj = aStudy->FindObjectID( entry ); + SALOMEDS::SObject_var aResultSObj; + if (aSObj->ReferencedObject(aResultSObj)) + aSObj = aResultSObj; + + SALOMEDS::GenericAttribute_var anAttr; + if (!aSObj->_is_nil() && aSObj->FindAttribute(anAttr, "AttributeIOR")) { + SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr); + CORBA::String_var aVal = anIOR->Value(); + CORBA::Object_var anObject = aStudy->ConvertIORToObject(aVal); + aGeomObject = GEOM::GEOM_Object::_narrow(anObject); + } + + char* aTypeInfo = "Object"; + if ( !aGeomObject->_is_nil() ) { + GEOM::GEOM_IKindOfShape::shape_kind aKind; + GEOM::ListOfLong_var anInts; + GEOM::ListOfDouble_var aDbls; + + GEOM::GEOM_IMeasureOperations_var anOp = GetIMeasureOperations( studyId ); + aKind = anOp->KindOfShape( aGeomObject, anInts, aDbls ); + + if ( anOp->IsDone() ) { + switch ( aKind ) { + case GEOM::GEOM_IKindOfShape::COMPOUND: + aTypeInfo = "Compound"; + break; + case GEOM::GEOM_IKindOfShape::COMPSOLID: + aTypeInfo = "CompSolid"; + break; + case GEOM::GEOM_IKindOfShape::SHELL: + aTypeInfo = "Shell"; + break; + case GEOM::GEOM_IKindOfShape::WIRE: + if ( anInts[0] == 1 ) + aTypeInfo = "Closed Wire"; + else if ( anInts[0] == 2 ) + aTypeInfo = "Opened Wire"; + else + aTypeInfo = "Wire"; + break; + // SOLIDs + case GEOM::GEOM_IKindOfShape::SPHERE: + aTypeInfo = "Sphere"; + break; + case GEOM::GEOM_IKindOfShape::CYLINDER: + aTypeInfo = "Cylinder"; + break; + case GEOM::GEOM_IKindOfShape::BOX: + case GEOM::GEOM_IKindOfShape::ROTATED_BOX: + aTypeInfo = "Box"; + break; + case GEOM::GEOM_IKindOfShape::TORUS: + aTypeInfo = "Torus"; + break; + case GEOM::GEOM_IKindOfShape::CONE: + aTypeInfo = "Cone"; + break; + case GEOM::GEOM_IKindOfShape::POLYHEDRON: + aTypeInfo = "Polyhedron"; + break; + case GEOM::GEOM_IKindOfShape::SOLID: + aTypeInfo = "Solid"; + break; + // FACEs + case GEOM::GEOM_IKindOfShape::SPHERE2D: + aTypeInfo = "Spherical Face"; + break; + case GEOM::GEOM_IKindOfShape::CYLINDER2D: + aTypeInfo = "Cylindrical Face"; + break; + case GEOM::GEOM_IKindOfShape::TORUS2D: + aTypeInfo = "Toroidal Face"; + break; + case GEOM::GEOM_IKindOfShape::CONE2D: + aTypeInfo = "Conical Face"; + break; + case GEOM::GEOM_IKindOfShape::DISK_CIRCLE: + aTypeInfo = "Disk"; + break; + case GEOM::GEOM_IKindOfShape::DISK_ELLIPSE: + aTypeInfo = "Elliptical Face"; + break; + case GEOM::GEOM_IKindOfShape::POLYGON: + aTypeInfo = "Polygon"; + break; + case GEOM::GEOM_IKindOfShape::PLANE: + aTypeInfo = "Plane"; + break; + case GEOM::GEOM_IKindOfShape::PLANAR: + aTypeInfo = "Planar Face"; + break; + case GEOM::GEOM_IKindOfShape::FACE: + aTypeInfo = "Face"; + break; + // EDGEs + case GEOM::GEOM_IKindOfShape::CIRCLE: + aTypeInfo = "Circle"; + break; + case GEOM::GEOM_IKindOfShape::ARC_CIRCLE: + aTypeInfo = "Ark"; + break; + case GEOM::GEOM_IKindOfShape::ELLIPSE: + aTypeInfo = "Ellipse"; + break; + case GEOM::GEOM_IKindOfShape::ARC_ELLIPSE: + aTypeInfo = "Arc Ellipse"; + break; + case GEOM::GEOM_IKindOfShape::LINE: + aTypeInfo = "Line"; + break; + case GEOM::GEOM_IKindOfShape::SEGMENT: + aTypeInfo = "Segment"; + break; + case GEOM::GEOM_IKindOfShape::EDGE: + aTypeInfo = "Edge"; + break; + case GEOM::GEOM_IKindOfShape::VERTEX: + aTypeInfo = "Vertex"; + break; + default: + break; + } + } + } + + char anInfo [strlen("Module ") + strlen(ComponentDataType()) + strlen(", ") + strlen(aTypeInfo)]; + sprintf(anInfo, "Module %s, %s", ComponentDataType(), aTypeInfo); + + return CORBA::string_dup(anInfo); +} //===================================================================================== // EXPORTED METHODS diff --git a/src/GEOM_I/GEOM_Gen_i.hh b/src/GEOM_I/GEOM_Gen_i.hh index 30188801f..aba3b6aa6 100644 --- a/src/GEOM_I/GEOM_Gen_i.hh +++ b/src/GEOM_I/GEOM_Gen_i.hh @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __GEOM_GEN_I_H__ #define __GEOM_GEN_I_H__ @@ -133,6 +135,24 @@ class GEOM_I_EXPORT GEOM_Gen_i: virtual public POA_GEOM::GEOM_Gen, virtual publi const char* theName, GEOM::GEOM_Object_ptr theFather); + /*! \brief Publish sub-shapes, standing for arguments and sub-shapes of arguments. + * To be used from python scripts out of geompy.addToStudy (non-default usage) + */ + CORBA::Boolean RestoreSubShapesO (SALOMEDS::Study_ptr theStudy, + GEOM::GEOM_Object_ptr theObject, + const GEOM::ListOfGO& theArgs, + GEOM::find_shape_method theFindMethod, + CORBA::Boolean theInheritFirstArg); + + /*! \brief Publish sub-shapes, standing for arguments and sub-shapes of arguments. + * To be used from GUI and from geompy.addToStudy + */ + CORBA::Boolean RestoreSubShapesSO (SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject, + const GEOM::ListOfGO& theArgs, + GEOM::find_shape_method theFindMethod, + CORBA::Boolean theInheritFirstArg); + //-----------------------------------------------------------------------// // Transaction methods // //-----------------------------------------------------------------------// @@ -212,13 +232,31 @@ class GEOM_I_EXPORT GEOM_Gen_i: virtual public POA_GEOM::GEOM_Gen, virtual publi char* GetDumpName (const char* theStudyEntry); GEOM::string_array* GetAllDumpNames(); - + + // Object information + virtual bool hasObjectInfo(); + virtual char* getObjectInfo(CORBA::Long studyId, const char* entry); + //-----------------------------------------------------------------------// // Internal methods // //-----------------------------------------------------------------------// virtual GEOM::GEOM_Object_ptr GetObject(CORBA::Long theStudyID, const char* theEntry); + private: + GEOM::ListOfGO* RestoreSubShapesOneLevel (SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theOldSO, + SALOMEDS::SObject_ptr theNewSO, + GEOM::GEOM_Object_ptr theNewO, + GEOM::find_shape_method theFindMethod); + + CORBA::Boolean RestoreSubShapes (SALOMEDS::Study_ptr theStudy, + GEOM::GEOM_Object_ptr theObject, + SALOMEDS::SObject_ptr theSObject, + const GEOM::ListOfGO& theArgs, + GEOM::find_shape_method theFindMethod, + CORBA::Boolean theInheritFirstArg); + private: ::GEOMImpl_Gen* _impl; diff --git a/src/GEOM_I/GEOM_I.pro b/src/GEOM_I/GEOM_I.pro new file mode 100644 index 000000000..7b2cccd07 --- /dev/null +++ b/src/GEOM_I/GEOM_I.pro @@ -0,0 +1,94 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GEOMEngine +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +CAS_DATAEXCHANGE = -L$${CASROOT}/Linux/lib -lTKIGES -lTKSTEP + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$${CASROOT}/Linux/lib + +CORBA_LIBS = -L$$(OMNIORBDIR)/lib -lomniORB4 -lomniDynamic4 -lCOS4 -lCOSDynamic4 -lomnithread + +INCLUDEPATH += $${CORBA_INCLUDES} $${CAS_CPPFLAGS} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} ../SKETCHER ../ARCHIMEDE ../GEOMImpl ../GEOMAlgo ../GEOM $$(GEOM_ROOT_DIR)/idl ../../salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/idl -lSalomeIDLGEOM -L$$(GEOM_ROOT_DIR)/lib -lGEOMArchimede -lGEOMimpl -lGEOMSketcher -lGEOMbasic $${KERNEL_LDFLAGS} -lSalomeNS -lSalomeContainer -lSalomeGenericObj -lTOOLSDS $${CAS_DATAEXCHANGE} $${CAS_LDPATH} -lTKFillet -lTKOffset $${STDLIB} $${CORBA_LIBS} + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += GEOM_I_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +HEADERS = GEOM_Object_i.hh +HEADERS += GEOM_IOperations_i.hh +HEADERS += GEOM_IBasicOperations_i.hh +HEADERS += GEOM_IHealingOperations_i.hh +HEADERS += GEOM_I3DPrimOperations_i.hh +HEADERS += GEOM_IShapesOperations_i.hh +HEADERS += GEOM_IBlocksOperations_i.hh +HEADERS += GEOM_IBooleanOperations_i.hh +HEADERS += GEOM_ICurvesOperations_i.hh +HEADERS += GEOM_ILocalOperations_i.hh +HEADERS += GEOM_IInsertOperations_i.hh +HEADERS += GEOM_ITransformOperations_i.hh +HEADERS += GEOM_IMeasureOperations_i.hh +HEADERS += GEOM_IGroupOperations_i.hh +HEADERS += GEOM_Gen_i.hh +HEADERS += GEOM_GEOM_I.hxx + +SOURCES = GEOM_Object_i.cc +SOURCES += GEOM_IOperations_i.cc +SOURCES += GEOM_IBasicOperations_i.cc +SOURCES += GEOM_IHealingOperations_i.cc +SOURCES += GEOM_I3DPrimOperations_i.cc +SOURCES += GEOM_IShapesOperations_i.cc +SOURCES += GEOM_IBlocksOperations_i.cc +SOURCES += GEOM_IBooleanOperations_i.cc +SOURCES += GEOM_ICurvesOperations_i.cc +SOURCES += GEOM_ILocalOperations_i.cc +SOURCES += GEOM_IInsertOperations_i.cc +SOURCES += GEOM_ITransformOperations_i.cc +SOURCES += GEOM_IMeasureOperations_i.cc +SOURCES += GEOM_IGroupOperations_i.cc +SOURCES += GEOM_Gen_i.cc +SOURCES += GEOM_DumpPython.cc + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/GEOM_I/GEOM_I3DPrimOperations_i.cc b/src/GEOM_I/GEOM_I3DPrimOperations_i.cc index 55160f0fb..104bb85ab 100644 --- a/src/GEOM_I/GEOM_I3DPrimOperations_i.cc +++ b/src/GEOM_I/GEOM_I3DPrimOperations_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -103,6 +105,156 @@ GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeBoxTwoPnt return GetObject(anObject); } +//============================================================================= +/*! + * MakeFaceHW + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeFaceHW (CORBA::Double theH, + CORBA::Double theW, + CORBA::Short theOrientation) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (theH == 0 || theW == 0) + return aGEOMObject._retn(); + + //Create the Face + Handle(GEOM_Object) anObject = GetOperations()->MakeFaceHW(theH, theW, theOrientation); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + +//============================================================================= +/*! + * MakeFaceObjHW + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeFaceObjHW + (GEOM::GEOM_Object_ptr theObj, + CORBA::Double theH, + CORBA::Double theW) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (theObj == NULL || theH == 0 || theW == 0) + return aGEOMObject._retn(); + + //Get the reference points + Handle(GEOM_Object) anObj = GetOperations()->GetEngine()->GetObject + (theObj->GetStudyID(), theObj->GetEntry()); + + if (anObj.IsNull()) + return aGEOMObject._retn(); + + //Create the Face + Handle(GEOM_Object) anObject = GetOperations()->MakeFaceObjHW(anObj, theH, theW); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + +//============================================================================= +/*! + * MakeDiskPntVecR + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeDiskPntVecR + (GEOM::GEOM_Object_ptr thePnt, GEOM::GEOM_Object_ptr theVec, + CORBA::Double theR) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (thePnt == NULL || theVec == NULL) return aGEOMObject._retn(); + + //Get the reference points + Handle(GEOM_Object) aPnt = GetOperations()->GetEngine()->GetObject + (thePnt->GetStudyID(), thePnt->GetEntry()); + Handle(GEOM_Object) aVec = GetOperations()->GetEngine()->GetObject + (theVec->GetStudyID(), theVec->GetEntry()); + + if (aPnt.IsNull() || aVec.IsNull()) return aGEOMObject._retn(); + + // Make Disk + Handle(GEOM_Object) anObject = + GetOperations()->MakeDiskPntVecR(aPnt, aVec, theR); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + +//============================================================================= +/*! + * MakeDiskThreePnt + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeDiskThreePnt + (GEOM::GEOM_Object_ptr thePnt1, GEOM::GEOM_Object_ptr thePnt2, + GEOM::GEOM_Object_ptr thePnt3) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (thePnt1 == NULL || thePnt2 == NULL || thePnt3 == NULL) return aGEOMObject._retn(); + + //Get the reference points + Handle(GEOM_Object) aPnt1 = GetOperations()->GetEngine()->GetObject + (thePnt1->GetStudyID(), thePnt1->GetEntry()); + Handle(GEOM_Object) aPnt2 = GetOperations()->GetEngine()->GetObject + (thePnt2->GetStudyID(), thePnt2->GetEntry()); + Handle(GEOM_Object) aPnt3 = GetOperations()->GetEngine()->GetObject + (thePnt3->GetStudyID(), thePnt3->GetEntry()); + + if (aPnt1.IsNull() || aPnt2.IsNull() || aPnt3.IsNull()) return aGEOMObject._retn(); + + // Make Disk + Handle(GEOM_Object) anObject = + GetOperations()->MakeDiskThreePnt(aPnt1, aPnt2, aPnt3); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + +//============================================================================= +/*! + * MakeDiskR + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakeDiskR (CORBA::Double theR, + CORBA::Short theOrientation) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (theR == 0) + return aGEOMObject._retn(); + + //Create the Face + Handle(GEOM_Object) anObject = GetOperations()->MakeDiskR(theR, theOrientation); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + //============================================================================= /*! * MakeCylinderRH @@ -459,6 +611,68 @@ GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePrismTwoPnt2Ways return GetObject(anObject); } +//============================================================================= +/*! + * MakePrismDXDYDZ + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePrismDXDYDZ + (GEOM::GEOM_Object_ptr theBase, CORBA::Double theDX, + CORBA::Double theDY, CORBA::Double theDZ) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (theBase == NULL) return aGEOMObject._retn(); + + //Get the reference objects + Handle(GEOM_Object) aBase = GetOperations()->GetEngine()->GetObject + (theBase->GetStudyID(), theBase->GetEntry()); + + if (aBase.IsNull()) return aGEOMObject._retn(); + + //Create the Prism + Handle(GEOM_Object) anObject = + GetOperations()->MakePrismDXDYDZ(aBase, theDX, theDY, theDZ); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + +//============================================================================= +/*! + * MakePrismDXDYDZ2Ways + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePrismDXDYDZ2Ways + (GEOM::GEOM_Object_ptr theBase, CORBA::Double theDX, + CORBA::Double theDY, CORBA::Double theDZ) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (theBase == NULL) return aGEOMObject._retn(); + + //Get the reference objects + Handle(GEOM_Object) aBase = GetOperations()->GetEngine()->GetObject + (theBase->GetStudyID(), theBase->GetEntry()); + + if (aBase.IsNull()) return aGEOMObject._retn(); + + //Create the Prism + Handle(GEOM_Object) anObject = + GetOperations()->MakePrismDXDYDZ2Ways(aBase, theDX, theDY, theDZ); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + //============================================================================= /*! * MakePipe @@ -819,3 +1033,40 @@ GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePipeShellsWithoutPath return GetObject(anObject); } + + +//============================================================================= +/*! + * MakePipeBiNormalAlongVector + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_I3DPrimOperations_i::MakePipeBiNormalAlongVector + (GEOM::GEOM_Object_ptr theBase, + GEOM::GEOM_Object_ptr thePath, + GEOM::GEOM_Object_ptr theVec) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (theBase == NULL || thePath == NULL || theVec == NULL) return aGEOMObject._retn(); + + //Get the reference objects + Handle(GEOM_Object) aBase = GetOperations()->GetEngine()->GetObject + (theBase->GetStudyID(), theBase->GetEntry()); + Handle(GEOM_Object) aPath = GetOperations()->GetEngine()->GetObject + (thePath->GetStudyID(), thePath->GetEntry()); + Handle(GEOM_Object) aVec = GetOperations()->GetEngine()->GetObject + (theVec->GetStudyID(), theVec->GetEntry()); + + if (aBase.IsNull() || aPath.IsNull() || aVec.IsNull()) return aGEOMObject._retn(); + + //Create the Pipe + Handle(GEOM_Object) anObject = + GetOperations()->MakePipeBiNormalAlongVector(aBase, aPath, aVec); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} diff --git a/src/GEOM_I/GEOM_I3DPrimOperations_i.hh b/src/GEOM_I/GEOM_I3DPrimOperations_i.hh index 330f4974b..e6574b876 100644 --- a/src/GEOM_I/GEOM_I3DPrimOperations_i.hh +++ b/src/GEOM_I/GEOM_I3DPrimOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_I3DPrimOperations_i_HeaderFile #define _GEOM_I3DPrimOperations_i_HeaderFile @@ -46,6 +47,25 @@ class GEOM_I_EXPORT GEOM_I3DPrimOperations_i : GEOM::GEOM_Object_ptr MakeBoxTwoPnt (GEOM::GEOM_Object_ptr thePnt1, GEOM::GEOM_Object_ptr thePnt2); + + GEOM::GEOM_Object_ptr MakeFaceHW (CORBA::Double theH, + CORBA::Double theW, + CORBA::Short theOrientation); + + GEOM::GEOM_Object_ptr MakeFaceObjHW (GEOM::GEOM_Object_ptr theObj, + CORBA::Double theH, + CORBA::Double theW); + + GEOM::GEOM_Object_ptr MakeDiskPntVecR (GEOM::GEOM_Object_ptr theCenter, + GEOM::GEOM_Object_ptr theVector, + double theR); + + GEOM::GEOM_Object_ptr MakeDiskThreePnt (GEOM::GEOM_Object_ptr thePnt1, + GEOM::GEOM_Object_ptr thePnt2, + GEOM::GEOM_Object_ptr thePnt3); + + GEOM::GEOM_Object_ptr MakeDiskR (CORBA::Double theR, + CORBA::Short theOrientation); GEOM::GEOM_Object_ptr MakeCylinderRH (CORBA::Double theR, CORBA::Double theH); @@ -94,6 +114,15 @@ class GEOM_I_EXPORT GEOM_I3DPrimOperations_i : GEOM::GEOM_Object_ptr thePoint1, GEOM::GEOM_Object_ptr thePoint2); + GEOM::GEOM_Object_ptr MakePrismDXDYDZ (GEOM::GEOM_Object_ptr theBase, + CORBA::Double theDX, + CORBA::Double theDY, + CORBA::Double theDZ); + GEOM::GEOM_Object_ptr MakePrismDXDYDZ2Ways (GEOM::GEOM_Object_ptr theBase, + CORBA::Double theDX, + CORBA::Double theDY, + CORBA::Double theDZ); + GEOM::GEOM_Object_ptr MakePipe (GEOM::GEOM_Object_ptr theBase, GEOM::GEOM_Object_ptr thePath); @@ -128,6 +157,10 @@ class GEOM_I_EXPORT GEOM_I3DPrimOperations_i : GEOM::GEOM_Object_ptr MakePipeShellsWithoutPath(const GEOM::ListOfGO& theBases, const GEOM::ListOfGO& theLocations); + GEOM::GEOM_Object_ptr MakePipeBiNormalAlongVector (GEOM::GEOM_Object_ptr theBase, + GEOM::GEOM_Object_ptr thePath, + GEOM::GEOM_Object_ptr theVec); + ::GEOMImpl_I3DPrimOperations* GetOperations() { return (::GEOMImpl_I3DPrimOperations*)GetImpl(); } }; diff --git a/src/GEOM_I/GEOM_IBasicOperations_i.cc b/src/GEOM_I/GEOM_IBasicOperations_i.cc index fe525509c..f475de827 100644 --- a/src/GEOM_I/GEOM_IBasicOperations_i.cc +++ b/src/GEOM_I/GEOM_IBasicOperations_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -138,6 +140,7 @@ GEOM::GEOM_Object_ptr GEOM_IBasicOperations_i::MakePointOnLinesIntersection return GetObject(anObject); } + //============================================================================= /*! * MakePointOnCurve @@ -169,6 +172,39 @@ GEOM::GEOM_Object_ptr GEOM_IBasicOperations_i::MakePointOnCurve return GetObject(anObject); } + +//============================================================================= +/*! + * MakePointOnSurface + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_IBasicOperations_i::MakePointOnSurface + (GEOM::GEOM_Object_ptr theSurface, + CORBA::Double theUParameter, + CORBA::Double theVParameter) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (theSurface == NULL) return aGEOMObject._retn(); + + //Get the reference surface + Handle(GEOM_Object) aRefernce = GetOperations()->GetEngine()->GetObject + (theSurface->GetStudyID(), theSurface->GetEntry()); + if (aRefernce.IsNull()) return aGEOMObject._retn(); + + //Create the point + Handle(GEOM_Object) anObject = + GetOperations()->MakePointOnSurface(aRefernce, theUParameter, theVParameter); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + + //============================================================================= /*! * MakeTangentOnCurve diff --git a/src/GEOM_I/GEOM_IBasicOperations_i.hh b/src/GEOM_I/GEOM_IBasicOperations_i.hh index 753e0df16..cc44faafc 100644 --- a/src/GEOM_I/GEOM_IBasicOperations_i.hh +++ b/src/GEOM_I/GEOM_IBasicOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_IBasicOperations_i_HeaderFile #define _GEOM_IBasicOperations_i_HeaderFile @@ -53,6 +54,10 @@ class GEOM_I_EXPORT GEOM_IBasicOperations_i : GEOM::GEOM_Object_ptr MakePointOnCurve (GEOM::GEOM_Object_ptr theCurve, CORBA::Double theParameter); + GEOM::GEOM_Object_ptr MakePointOnSurface (GEOM::GEOM_Object_ptr theSurface, + CORBA::Double theUParameter, + CORBA::Double theVParameter); + GEOM::GEOM_Object_ptr MakePointOnLinesIntersection (GEOM::GEOM_Object_ptr theLine1, GEOM::GEOM_Object_ptr theLine2); diff --git a/src/GEOM_I/GEOM_IBlocksOperations_i.cc b/src/GEOM_I/GEOM_IBlocksOperations_i.cc index f8a1d2a20..093df705a 100644 --- a/src/GEOM_I/GEOM_IBlocksOperations_i.cc +++ b/src/GEOM_I/GEOM_IBlocksOperations_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include diff --git a/src/GEOM_I/GEOM_IBlocksOperations_i.hh b/src/GEOM_I/GEOM_IBlocksOperations_i.hh index 701b374dc..ff6480f8b 100644 --- a/src/GEOM_I/GEOM_IBlocksOperations_i.hh +++ b/src/GEOM_I/GEOM_IBlocksOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_IBlocksOperations_i_HeaderFile #define _GEOM_IBlocksOperations_i_HeaderFile diff --git a/src/GEOM_I/GEOM_IBooleanOperations_i.cc b/src/GEOM_I/GEOM_IBooleanOperations_i.cc index 57dabf6a6..cceef3727 100644 --- a/src/GEOM_I/GEOM_IBooleanOperations_i.cc +++ b/src/GEOM_I/GEOM_IBooleanOperations_i.cc @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include "GEOM_IBooleanOperations_i.hh" diff --git a/src/GEOM_I/GEOM_IBooleanOperations_i.hh b/src/GEOM_I/GEOM_IBooleanOperations_i.hh index 7379d00b8..5be05a05e 100644 --- a/src/GEOM_I/GEOM_IBooleanOperations_i.hh +++ b/src/GEOM_I/GEOM_IBooleanOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_IBooleanOperations_i_HeaderFile #define _GEOM_IBooleanOperations_i_HeaderFile diff --git a/src/GEOM_I/GEOM_ICurvesOperations_i.cc b/src/GEOM_I/GEOM_ICurvesOperations_i.cc index 3a15afb1b..2b15af49f 100644 --- a/src/GEOM_I/GEOM_ICurvesOperations_i.cc +++ b/src/GEOM_I/GEOM_ICurvesOperations_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -65,15 +67,22 @@ GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeCirclePntVecR //Set a not done flag GetOperations()->SetNotDone(); - if (thePnt == NULL || theVec == NULL) return aGEOMObject._retn(); + // Not set thePnt means origin of global CS, + // Not set theVec means Z axis of global CS + //if (thePnt == NULL || theVec == NULL) return aGEOMObject._retn(); - //Get the reference points - Handle(GEOM_Object) aPnt = GetOperations()->GetEngine()->GetObject - (thePnt->GetStudyID(), thePnt->GetEntry()); - Handle(GEOM_Object) aVec = GetOperations()->GetEngine()->GetObject - (theVec->GetStudyID(), theVec->GetEntry()); - - if (aPnt.IsNull() || aVec.IsNull()) return aGEOMObject._retn(); + //Get the arguments + Handle(GEOM_Object) aPnt, aVec; + if (!CORBA::is_nil(thePnt)) { + aPnt = GetOperations()->GetEngine()->GetObject + (thePnt->GetStudyID(), thePnt->GetEntry()); + if (aPnt.IsNull()) return aGEOMObject._retn(); + } + if (!CORBA::is_nil(theVec)) { + aVec = GetOperations()->GetEngine()->GetObject + (theVec->GetStudyID(), theVec->GetEntry()); + if (aVec.IsNull()) return aGEOMObject._retn(); + } // Make Circle Handle(GEOM_Object) anObject = @@ -167,15 +176,22 @@ GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeEllipse //Set a not done flag GetOperations()->SetNotDone(); - if (thePnt == NULL || theVec == NULL) return aGEOMObject._retn(); + // Not set thePnt means origin of global CS, + // Not set theVec means Z axis of global CS + //if (thePnt == NULL || theVec == NULL) return aGEOMObject._retn(); - //Get the reference points - Handle(GEOM_Object) aPnt = GetOperations()->GetEngine()->GetObject - (thePnt->GetStudyID(), thePnt->GetEntry()); - Handle(GEOM_Object) aVec = GetOperations()->GetEngine()->GetObject - (theVec->GetStudyID(), theVec->GetEntry()); - - if (aPnt.IsNull() || aVec.IsNull()) return aGEOMObject._retn(); + //Get the arguments + Handle(GEOM_Object) aPnt, aVec; + if (!CORBA::is_nil(thePnt)) { + aPnt = GetOperations()->GetEngine()->GetObject + (thePnt->GetStudyID(), thePnt->GetEntry()); + if (aPnt.IsNull()) return aGEOMObject._retn(); + } + if (!CORBA::is_nil(theVec)) { + aVec = GetOperations()->GetEngine()->GetObject + (theVec->GetStudyID(), theVec->GetEntry()); + if (aVec.IsNull()) return aGEOMObject._retn(); + } // Make Ellipse Handle(GEOM_Object) anObject = @@ -259,6 +275,43 @@ GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeArcCenter return GetObject(anObject); } + +//============================================================================= +/*! + * MakeArc + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeArcOfEllipse + (GEOM::GEOM_Object_ptr thePnt1, + GEOM::GEOM_Object_ptr thePnt2, + GEOM::GEOM_Object_ptr thePnt3) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (thePnt1 == NULL || thePnt2 == NULL || thePnt3 == NULL) return aGEOMObject._retn(); + + //Get the reference points + Handle(GEOM_Object) aPnt1 = GetOperations()->GetEngine()->GetObject + (thePnt1->GetStudyID(), thePnt1->GetEntry()); + Handle(GEOM_Object) aPnt2 = GetOperations()->GetEngine()->GetObject + (thePnt2->GetStudyID(), thePnt2->GetEntry()); + Handle(GEOM_Object) aPnt3 = GetOperations()->GetEngine()->GetObject + (thePnt3->GetStudyID(), thePnt3->GetEntry()); + + if (aPnt1.IsNull() || aPnt2.IsNull() || aPnt3.IsNull()) return aGEOMObject._retn(); + + // Make Arc + Handle(GEOM_Object) anObject = + GetOperations()->MakeArcOfEllipse(aPnt1, aPnt2, aPnt3); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + //============================================================================= /*! * MakePolyline @@ -386,13 +439,38 @@ GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeSketcher // Make Sketcher Handle(GEOM_Object) anObject = - GetOperations()->MakeSketcher((char*)theCommand, aWorkingPlane); + GetOperations()->MakeSketcher(theCommand, aWorkingPlane); if (!GetOperations()->IsDone() || anObject.IsNull()) return GEOM::GEOM_Object::_nil(); return GetObject(anObject); } +//============================================================================= +/*! + * Make3DSketcher + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::Make3DSketcher + (const GEOM::ListOfDouble& theCoordinates) +{ + //Set a not done flag + GetOperations()->SetNotDone(); + + int ind = 0; + int aLen = theCoordinates.length(); + list aCoords; + for (; ind < aLen; ind++) + aCoords.push_back(theCoordinates[ind]); + + // Make Sketcher + Handle(GEOM_Object) anObject = + GetOperations()->Make3DSketcher(aCoords); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return GEOM::GEOM_Object::_nil(); + + return GetObject(anObject); +} //============================================================================= /*! @@ -410,7 +488,7 @@ GEOM::GEOM_Object_ptr GEOM_ICurvesOperations_i::MakeSketcherOnPlane // Make Sketcher Handle(GEOM_Object) anObject = - GetOperations()->MakeSketcherOnPlane((char*)theCommand, aWorkingPlane); + GetOperations()->MakeSketcherOnPlane(theCommand, aWorkingPlane); if (!GetOperations()->IsDone() || anObject.IsNull()) return GEOM::GEOM_Object::_nil(); diff --git a/src/GEOM_I/GEOM_ICurvesOperations_i.hh b/src/GEOM_I/GEOM_ICurvesOperations_i.hh index d341c4575..24179fc1f 100644 --- a/src/GEOM_I/GEOM_ICurvesOperations_i.hh +++ b/src/GEOM_I/GEOM_ICurvesOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_ICurvesOperations_i_HeaderFile #define _GEOM_ICurvesOperations_i_HeaderFile @@ -64,6 +65,10 @@ class GEOM_I_EXPORT GEOM_ICurvesOperations_i : GEOM::GEOM_Object_ptr thePnt2, GEOM::GEOM_Object_ptr thePnt3, bool theSense); + + GEOM::GEOM_Object_ptr MakeArcOfEllipse (GEOM::GEOM_Object_ptr thePnt1, + GEOM::GEOM_Object_ptr thePnt2, + GEOM::GEOM_Object_ptr thePnt3); GEOM::GEOM_Object_ptr MakePolyline (const GEOM::ListOfGO& thePoints); @@ -72,6 +77,8 @@ class GEOM_I_EXPORT GEOM_ICurvesOperations_i : GEOM::GEOM_Object_ptr MakeSplineInterpolation (const GEOM::ListOfGO& thePoints); GEOM::GEOM_Object_ptr MakeSketcher (const char* theCommand, const GEOM::ListOfDouble& theWorkingPlane); + + GEOM::GEOM_Object_ptr Make3DSketcher (const GEOM::ListOfDouble& theCoordinates); GEOM::GEOM_Object_ptr MakeSketcherOnPlane (const char* theCommand, GEOM::GEOM_Object_ptr theWorkingPlane); diff --git a/src/GEOM_I/GEOM_IGroupOperations_i.cc b/src/GEOM_I/GEOM_IGroupOperations_i.cc index e99524c98..7f87d4ac4 100644 --- a/src/GEOM_I/GEOM_IGroupOperations_i.cc +++ b/src/GEOM_I/GEOM_IGroupOperations_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include diff --git a/src/GEOM_I/GEOM_IGroupOperations_i.hh b/src/GEOM_I/GEOM_IGroupOperations_i.hh index 505f16ee4..c4cf01e93 100644 --- a/src/GEOM_I/GEOM_IGroupOperations_i.hh +++ b/src/GEOM_I/GEOM_IGroupOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_IGroupOperations_i_HeaderFile #define _GEOM_IGroupOperations_i_HeaderFile diff --git a/src/GEOM_I/GEOM_IHealingOperations_i.cc b/src/GEOM_I/GEOM_IHealingOperations_i.cc index cdd3f1efe..a529c1cfe 100644 --- a/src/GEOM_I/GEOM_IHealingOperations_i.cc +++ b/src/GEOM_I/GEOM_IHealingOperations_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include diff --git a/src/GEOM_I/GEOM_IHealingOperations_i.hh b/src/GEOM_I/GEOM_IHealingOperations_i.hh index 1b3f45118..a76e39ac1 100644 --- a/src/GEOM_I/GEOM_IHealingOperations_i.hh +++ b/src/GEOM_I/GEOM_IHealingOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_IHealingOperations_i_HeaderFile #define _GEOM_IHealingOperations_i_HeaderFile diff --git a/src/GEOM_I/GEOM_IInsertOperations_i.cc b/src/GEOM_I/GEOM_IInsertOperations_i.cc index 01ffb311d..a0145517c 100644 --- a/src/GEOM_I/GEOM_IInsertOperations_i.cc +++ b/src/GEOM_I/GEOM_IInsertOperations_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifdef WNT #pragma warning( disable:4786 ) diff --git a/src/GEOM_I/GEOM_IInsertOperations_i.hh b/src/GEOM_I/GEOM_IInsertOperations_i.hh index bd0941f4f..da29eabf0 100644 --- a/src/GEOM_I/GEOM_IInsertOperations_i.hh +++ b/src/GEOM_I/GEOM_IInsertOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_IInsertOperations_i_HeaderFile #define _GEOM_IInsertOperations_i_HeaderFile diff --git a/src/GEOM_I/GEOM_ILocalOperations_i.cc b/src/GEOM_I/GEOM_ILocalOperations_i.cc index a9ec1fc6d..c71a24780 100644 --- a/src/GEOM_I/GEOM_ILocalOperations_i.cc +++ b/src/GEOM_I/GEOM_ILocalOperations_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -219,6 +221,41 @@ GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeFilletFacesR1R2 return GetObject(anObject); } +//============================================================================= +/*! + * MakeFillet2D + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_ILocalOperations_i::MakeFillet2D + (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR, + const GEOM::ListOfLong& theVertexes) +{ + GEOM::GEOM_Object_var aGEOMObject; + + if (theShape == NULL) return aGEOMObject._retn(); + + //Get the reference shape + Handle(GEOM_Object) aShapeRef = GetOperations()->GetEngine()->GetObject + (theShape->GetStudyID(), theShape->GetEntry()); + if (aShapeRef.IsNull()) return aGEOMObject._retn(); + + //Get the reference vertex + int ind = 0; + int aLen = theVertexes.length(); + list aVertexes; + for (; ind < aLen; ind++) { + aVertexes.push_back(theVertexes[ind]); + } + + //Create the Fillet + Handle(GEOM_Object) anObject = + GetOperations()->MakeFillet2D(aShapeRef, theR, aVertexes); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + //============================================================================= /*! * MakeChamferAll diff --git a/src/GEOM_I/GEOM_ILocalOperations_i.hh b/src/GEOM_I/GEOM_ILocalOperations_i.hh index 79a80acfc..e13d37f49 100644 --- a/src/GEOM_I/GEOM_ILocalOperations_i.hh +++ b/src/GEOM_I/GEOM_ILocalOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_ILocalOperations_i_HeaderFile #define _GEOM_ILocalOperations_i_HeaderFile @@ -58,6 +59,9 @@ class GEOM_I_EXPORT GEOM_ILocalOperations_i : CORBA::Double theR1, CORBA::Double theR2, const GEOM::ListOfLong& theFaces); + + GEOM::GEOM_Object_ptr MakeFillet2D (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR, + const GEOM::ListOfLong& theVertexes); GEOM::GEOM_Object_ptr MakeChamferAll (GEOM::GEOM_Object_ptr theShape, CORBA::Double theD); diff --git a/src/GEOM_I/GEOM_IMeasureOperations_i.cc b/src/GEOM_I/GEOM_IMeasureOperations_i.cc index d4e8c6a8e..84248c73b 100644 --- a/src/GEOM_I/GEOM_IMeasureOperations_i.cc +++ b/src/GEOM_I/GEOM_IMeasureOperations_i.cc @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include #include "GEOM_IMeasureOperations_i.hh" @@ -473,3 +474,151 @@ CORBA::Double GEOM_IMeasureOperations_i::GetAngle (GEOM::GEOM_Object_ptr theShap // Get the angle return GetOperations()->GetAngle(aShape1, aShape2); } + + +//============================================================================= +/*! + * CurveCurvatureByParam + */ +//============================================================================= +CORBA::Double GEOM_IMeasureOperations_i::CurveCurvatureByParam + (GEOM::GEOM_Object_ptr theCurve, CORBA::Double theParam) +{ + //Set a not done flag + GetOperations()->SetNotDone(); + + if(theCurve==NULL) return -1.0; + + //Get the reference shape + Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject + (theCurve->GetStudyID(), theCurve->GetEntry()); + + if(aShape.IsNull()) return -1.0; + + return GetOperations()->CurveCurvatureByParam(aShape,theParam); +} + + +//============================================================================= +/*! + * CurveCurvatureByPoint + */ +//============================================================================= +CORBA::Double GEOM_IMeasureOperations_i::CurveCurvatureByPoint + (GEOM::GEOM_Object_ptr theCurve, GEOM::GEOM_Object_ptr thePoint) +{ + //Set a not done flag + GetOperations()->SetNotDone(); + + if( theCurve==NULL || thePoint==NULL ) return -1.0; + + //Get the reference shape + Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject + (theCurve->GetStudyID(), theCurve->GetEntry()); + Handle(GEOM_Object) aPoint = GetOperations()->GetEngine()->GetObject + (thePoint->GetStudyID(), thePoint->GetEntry()); + + if( aShape.IsNull() || aPoint.IsNull() ) return -1.0; + + return GetOperations()->CurveCurvatureByPoint(aShape,aPoint); +} + + +//============================================================================= +/*! + * MaxSurfaceCurvatureByParam + */ +//============================================================================= +CORBA::Double GEOM_IMeasureOperations_i::MaxSurfaceCurvatureByParam + (GEOM::GEOM_Object_ptr theSurf, + CORBA::Double theUParam, + CORBA::Double theVParam) +{ + //Set a not done flag + GetOperations()->SetNotDone(); + + if(theSurf==NULL) return -1.0; + + //Get the reference shape + Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject + (theSurf->GetStudyID(), theSurf->GetEntry()); + + if(aShape.IsNull()) return -1.0; + + return GetOperations()->MaxSurfaceCurvatureByParam(aShape,theUParam,theVParam); +} + + +//============================================================================= +/*! + * MaxSurfaceCurvatureByPoint + */ +//============================================================================= +CORBA::Double GEOM_IMeasureOperations_i::MaxSurfaceCurvatureByPoint + (GEOM::GEOM_Object_ptr theSurf, GEOM::GEOM_Object_ptr thePoint) +{ + //Set a not done flag + GetOperations()->SetNotDone(); + + if( theSurf==NULL || thePoint==NULL ) return -1.0; + + //Get the reference shape + Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject + (theSurf->GetStudyID(), theSurf->GetEntry()); + Handle(GEOM_Object) aPoint = GetOperations()->GetEngine()->GetObject + (thePoint->GetStudyID(), thePoint->GetEntry()); + + if( aShape.IsNull() || aPoint.IsNull() ) return -1.0; + + return GetOperations()->MaxSurfaceCurvatureByPoint(aShape,aPoint); +} + + +//============================================================================= +/*! + * MinSurfaceCurvatureByParam + */ +//============================================================================= +CORBA::Double GEOM_IMeasureOperations_i::MinSurfaceCurvatureByParam + (GEOM::GEOM_Object_ptr theSurf, + CORBA::Double theUParam, + CORBA::Double theVParam) +{ + //Set a not done flag + GetOperations()->SetNotDone(); + + if(theSurf==NULL) return -1.0; + + //Get the reference shape + Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject + (theSurf->GetStudyID(), theSurf->GetEntry()); + + if(aShape.IsNull()) return -1.0; + + return GetOperations()->MinSurfaceCurvatureByParam(aShape,theUParam,theVParam); +} + + +//============================================================================= +/*! + * MinSurfaceCurvatureByPoint + */ +//============================================================================= +CORBA::Double GEOM_IMeasureOperations_i::MinSurfaceCurvatureByPoint + (GEOM::GEOM_Object_ptr theSurf, GEOM::GEOM_Object_ptr thePoint) +{ + //Set a not done flag + GetOperations()->SetNotDone(); + + if( theSurf==NULL || thePoint==NULL ) return -1.0; + + //Get the reference shape + Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject + (theSurf->GetStudyID(), theSurf->GetEntry()); + Handle(GEOM_Object) aPoint = GetOperations()->GetEngine()->GetObject + (thePoint->GetStudyID(), thePoint->GetEntry()); + + if( aShape.IsNull() || aPoint.IsNull() ) return -1.0; + + return GetOperations()->MinSurfaceCurvatureByPoint(aShape,aPoint); +} diff --git a/src/GEOM_I/GEOM_IMeasureOperations_i.hh b/src/GEOM_I/GEOM_IMeasureOperations_i.hh index 4db8a26d4..1aace732a 100644 --- a/src/GEOM_I/GEOM_IMeasureOperations_i.hh +++ b/src/GEOM_I/GEOM_IMeasureOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_IMeasureOperations_i_HeaderFile #define _GEOM_IMeasureOperations_i_HeaderFile @@ -94,6 +95,28 @@ class GEOM_I_EXPORT GEOM_IMeasureOperations_i : CORBA::Double GetAngle (GEOM::GEOM_Object_ptr theShape1, GEOM::GEOM_Object_ptr theShape2); + // Methods for recieving radiuses of curvature of curves and surfaces + // in the given point + CORBA::Double CurveCurvatureByParam (GEOM::GEOM_Object_ptr theCurve, + CORBA::Double theParam); + + CORBA::Double CurveCurvatureByPoint (GEOM::GEOM_Object_ptr theCurve, + GEOM::GEOM_Object_ptr thePoint); + + CORBA::Double MaxSurfaceCurvatureByParam (GEOM::GEOM_Object_ptr theSurf, + CORBA::Double theUParam, + CORBA::Double theVParam); + + CORBA::Double MaxSurfaceCurvatureByPoint (GEOM::GEOM_Object_ptr theSurf, + GEOM::GEOM_Object_ptr thePoint); + + CORBA::Double MinSurfaceCurvatureByParam (GEOM::GEOM_Object_ptr theSurf, + CORBA::Double theUParam, + CORBA::Double theVParam); + + CORBA::Double MinSurfaceCurvatureByPoint (GEOM::GEOM_Object_ptr theSurf, + GEOM::GEOM_Object_ptr thePoint); + ::GEOMImpl_IMeasureOperations* GetOperations() { return (::GEOMImpl_IMeasureOperations*)GetImpl(); } }; diff --git a/src/GEOM_I/GEOM_IOperations_i.cc b/src/GEOM_I/GEOM_IOperations_i.cc index 3d5c87c46..3a6516150 100644 --- a/src/GEOM_I/GEOM_IOperations_i.cc +++ b/src/GEOM_I/GEOM_IOperations_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include "GEOM_IOperations_i.hh" diff --git a/src/GEOM_I/GEOM_IOperations_i.hh b/src/GEOM_I/GEOM_IOperations_i.hh index c425449dc..c816e0beb 100644 --- a/src/GEOM_I/GEOM_IOperations_i.hh +++ b/src/GEOM_I/GEOM_IOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_IOperations_i_HeaderFile #define _GEOM_IOperations_i_HeaderFile diff --git a/src/GEOM_I/GEOM_IShapesOperations_i.cc b/src/GEOM_I/GEOM_IShapesOperations_i.cc index 6d9bf7fcc..16eb76575 100644 --- a/src/GEOM_I/GEOM_IShapesOperations_i.cc +++ b/src/GEOM_I/GEOM_IShapesOperations_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -1290,6 +1292,133 @@ GEOM::ListOfLong* GEOM_IShapesOperations_i::GetShapesOnBoxIDs return aSeq._retn(); } + +//============================================================================= +/*! + * GetShapesOnShape + */ +//============================================================================= +GEOM::ListOfGO* GEOM_IShapesOperations_i::GetShapesOnShape + (GEOM::GEOM_Object_ptr theCheckShape, + GEOM::GEOM_Object_ptr theShape, + CORBA::Short theShapeType, + GEOM::shape_state theState) +{ + GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if ( theShape == NULL || theCheckShape == NULL ) + return aSeq._retn(); + + //Get the reference objects + Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject + (theShape->GetStudyID(), theShape->GetEntry()); + Handle(GEOM_Object) aCheckShape = GetOperations()->GetEngine()->GetObject + (theShape->GetStudyID(), theCheckShape->GetEntry()); + + if (aShape.IsNull() || aCheckShape.IsNull() ) + return aSeq._retn(); + + //Get Shapes On Shape + Handle(TColStd_HSequenceOfTransient) aHSeq = GetOperations()->GetShapesOnShape + (aCheckShape,aShape, theShapeType,ShapeState(theState)); + + if (!GetOperations()->IsDone() || aHSeq.IsNull()) + return aSeq._retn(); + + Standard_Integer aLength = aHSeq->Length(); + aSeq->length(aLength); + for (Standard_Integer i = 1; i <= aLength; i++) + aSeq[i-1] = GetObject(Handle(GEOM_Object)::DownCast(aHSeq->Value(i))); + + return aSeq._retn(); +} + + +//============================================================================= +/*! + * GetShapesOnShapeAsCompound + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_IShapesOperations_i::GetShapesOnShapeAsCompound + (GEOM::GEOM_Object_ptr theCheckShape, + GEOM::GEOM_Object_ptr theShape, + CORBA::Short theShapeType, + GEOM::shape_state theState) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if ( theShape == NULL || theCheckShape == NULL ) + return aGEOMObject._retn(); + + //Get the reference objects + Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject + (theShape->GetStudyID(), theShape->GetEntry()); + Handle(GEOM_Object) aCheckShape = GetOperations()->GetEngine()->GetObject + (theShape->GetStudyID(), theCheckShape->GetEntry()); + + if (aShape.IsNull() || aCheckShape.IsNull() ) + return aGEOMObject._retn(); + + //Get Shapes On Shape + Handle(GEOM_Object) anObject = GetOperations()->GetShapesOnShapeAsCompound + (aCheckShape,aShape, theShapeType,ShapeState(theState)); + + if (anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + + +//============================================================================= +/*! + * GetShapesOnShapeIDs + */ +//============================================================================= +GEOM::ListOfLong* GEOM_IShapesOperations_i::GetShapesOnShapeIDs + (GEOM::GEOM_Object_ptr theCheckShape, + GEOM::GEOM_Object_ptr theShape, + CORBA::Short theShapeType, + GEOM::shape_state theState) +{ + GEOM::ListOfLong_var aSeq = new GEOM::ListOfLong; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if ( theShape == NULL || theCheckShape == NULL ) + return aSeq._retn(); + + //Get the reference objects + Handle(GEOM_Object) aShape = GetOperations()->GetEngine()->GetObject + (theShape->GetStudyID(), theShape->GetEntry()); + Handle(GEOM_Object) aCheckShape = GetOperations()->GetEngine()->GetObject + (theShape->GetStudyID(), theCheckShape->GetEntry()); + + if (aShape.IsNull() || aCheckShape.IsNull() ) + return aSeq._retn(); + + //Get Shapes On Shape + Handle(TColStd_HSequenceOfInteger) aHSeq = GetOperations()->GetShapesOnShapeIDs + (aCheckShape,aShape, theShapeType,ShapeState(theState)); + if (!GetOperations()->IsDone() || aHSeq.IsNull()) + return aSeq._retn(); + + Standard_Integer aLength = aHSeq->Length(); + aSeq->length(aLength); + for (Standard_Integer i = 1; i <= aLength; i++) + aSeq[i-1] = aHSeq->Value(i); + + return aSeq._retn(); +} + + //============================================================================= /*! * GetInPlace diff --git a/src/GEOM_I/GEOM_IShapesOperations_i.hh b/src/GEOM_I/GEOM_IShapesOperations_i.hh index de1b24be1..2b1523918 100644 --- a/src/GEOM_I/GEOM_IShapesOperations_i.hh +++ b/src/GEOM_I/GEOM_IShapesOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_IShapesOperations_i_HeaderFile #define _GEOM_IShapesOperations_i_HeaderFile @@ -175,6 +176,22 @@ class GEOM_I_EXPORT GEOM_IShapesOperations_i : CORBA::Long theShapeType, GEOM::shape_state theState); + GEOM::ListOfGO* GetShapesOnShape (GEOM::GEOM_Object_ptr theSheckShape, + GEOM::GEOM_Object_ptr theShape, + CORBA::Short theShapeType, + GEOM::shape_state theState); + + GEOM::GEOM_Object_ptr GetShapesOnShapeAsCompound + (GEOM::GEOM_Object_ptr theSheckShape, + GEOM::GEOM_Object_ptr theShape, + CORBA::Short theShapeType, + GEOM::shape_state theState); + + GEOM::ListOfLong* GetShapesOnShapeIDs (GEOM::GEOM_Object_ptr theCheckShape, + GEOM::GEOM_Object_ptr theShape, + CORBA::Short theShapeType, + GEOM::shape_state theState); + GEOM::GEOM_Object_ptr GetInPlace (GEOM::GEOM_Object_ptr theShapeWhere, GEOM::GEOM_Object_ptr theShapeWhat); diff --git a/src/GEOM_I/GEOM_ITransformOperations_i.cc b/src/GEOM_I/GEOM_ITransformOperations_i.cc index e914733f6..ac359856d 100644 --- a/src/GEOM_I/GEOM_ITransformOperations_i.cc +++ b/src/GEOM_I/GEOM_ITransformOperations_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -84,18 +86,21 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateTwoPoints aGEOMObject = GEOM::GEOM_Object::_duplicate(theObject); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) anObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (anObject.IsNull()) return aGEOMObject._retn(); //Get the first point of translation + CORBA::String_var aP1Entry = thePoint1->GetEntry(); Handle(GEOM_Object) aPoint1 = - GetOperations()->GetEngine()->GetObject(thePoint1->GetStudyID(), thePoint1->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePoint1->GetStudyID(), aP1Entry); if (aPoint1.IsNull()) return aGEOMObject._retn(); //Get the second point of translation + CORBA::String_var aP2Entry = thePoint2->GetEntry(); Handle(GEOM_Object) aPoint2 = - GetOperations()->GetEngine()->GetObject(thePoint2->GetStudyID(), thePoint2->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePoint2->GetStudyID(), aP2Entry); if (aPoint2.IsNull()) return aGEOMObject._retn(); //Perform the translation @@ -122,18 +127,21 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateTwoPointsCopy if (thePoint1 == NULL || thePoint2 == NULL || theObject == NULL) return aGEOMObject._retn(); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the first point of translation + CORBA::String_var aP1Entry = thePoint1->GetEntry(); Handle(GEOM_Object) aPoint1 = - GetOperations()->GetEngine()->GetObject(thePoint1->GetStudyID(), thePoint1->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePoint1->GetStudyID(), aP1Entry); if (aPoint1.IsNull()) return aGEOMObject._retn(); //Get the second point of translation + CORBA::String_var aP2Entry = thePoint2->GetEntry(); Handle(GEOM_Object) aPoint2 = - GetOperations()->GetEngine()->GetObject(thePoint2->GetStudyID(), thePoint2->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePoint2->GetStudyID(), aP2Entry); if (aPoint2.IsNull()) return aGEOMObject._retn(); //Create the translated shape @@ -150,8 +158,9 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateTwoPointsCopy * TranslateDXDYDZ */ //============================================================================= -GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateDXDYDZ (GEOM::GEOM_Object_ptr theObject, - CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ) +GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateDXDYDZ + (GEOM::GEOM_Object_ptr theObject, + CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ) { //Set a not done flag GetOperations()->SetNotDone(); @@ -168,8 +177,9 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateDXDYDZ (GEOM::GEOM_O aGEOMObject = GEOM::GEOM_Object::_duplicate(theObject); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) anObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (anObject.IsNull()) return aGEOMObject._retn(); //Perform the translation @@ -185,7 +195,8 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateDXDYDZ (GEOM::GEOM_O */ //============================================================================= GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateDXDYDZCopy - (GEOM::GEOM_Object_ptr theObject, CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ) + (GEOM::GEOM_Object_ptr theObject, + CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ) { GEOM::GEOM_Object_var aGEOMObject; @@ -195,12 +206,11 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateDXDYDZCopy if (theObject == NULL) return aGEOMObject._retn(); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); - - //Create the translated shape Handle(GEOM_Object) anObject = GetOperations()->TranslateDXDYDZCopy(aBasicObject, theDX, theDY, theDZ); @@ -232,16 +242,18 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateVector return aGEOMObject._retn(); } - aGEOMObject = GEOM::GEOM_Object::_duplicate(theObject); + aGEOMObject = GEOM::GEOM_Object::_duplicate(theObject); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) anObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (anObject.IsNull()) return aGEOMObject._retn(); //Get the vector of translation + CORBA::String_var aVEntry = theVector->GetEntry(); Handle(GEOM_Object) aVector = - GetOperations()->GetEngine()->GetObject(theVector->GetStudyID(), theVector->GetEntry()); + GetOperations()->GetEngine()->GetObject(theVector->GetStudyID(), aVEntry); if (aVector.IsNull()) return aGEOMObject._retn(); //Perform the translation @@ -267,13 +279,15 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateVectorCopy if (theObject == NULL || theVector == NULL) return aGEOMObject._retn(); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the vector of translation + CORBA::String_var aVEntry = theVector->GetEntry(); Handle(GEOM_Object) aVector = - GetOperations()->GetEngine()->GetObject(theVector->GetStudyID(), theVector->GetEntry()); + GetOperations()->GetEngine()->GetObject(theVector->GetStudyID(), aVEntry); if (aVector.IsNull()) return aGEOMObject._retn(); //Perform the translation @@ -284,6 +298,56 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateVectorCopy return GetObject(anObject); } +//============================================================================= +/*! + * TranslateVectorDistance + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::TranslateVectorDistance + (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr theVector, + CORBA::Double theDistance, + CORBA::Boolean theCopy) +{ + GEOM::GEOM_Object_var aGEOMObject; + GetOperations()->SetNotDone(); //Set a not done flag + + if (theObject == NULL || theVector == NULL) return aGEOMObject._retn(); + + //check if the object is a subshape + if (!theCopy && !theObject->IsMainShape()) { + GetOperations()->SetErrorCode(SUBSHAPE_ERROR); + return aGEOMObject._retn(); + } + + if (!theCopy) + aGEOMObject = GEOM::GEOM_Object::_duplicate(theObject); + + //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); + Handle(GEOM_Object) aBasicObject = + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); + if (aBasicObject.IsNull()) return aGEOMObject._retn(); + + //Get the vector of translation + CORBA::String_var aVecEntry = theVector->GetEntry(); + Handle(GEOM_Object) aVector = + GetOperations()->GetEngine()->GetObject(theVector->GetStudyID(), aVecEntry); + if (aVector.IsNull()) return aGEOMObject._retn(); + + //Perform the translation + if (theCopy) { + Handle(GEOM_Object) anObject = GetOperations()-> + TranslateVectorDistance(aBasicObject, aVector, theDistance, theCopy); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); + } + + GetOperations()->TranslateVectorDistance(aBasicObject, aVector, theDistance, theCopy); + return aGEOMObject._retn(); +} //============================================================================= /*! @@ -309,12 +373,15 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::Rotate (GEOM::GEOM_Object_ptr aGEOMObject = GEOM::GEOM_Object::_duplicate(theObject); //Get the object itself - Handle(GEOM_Object) anObject = GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + CORBA::String_var anEntry = theObject->GetEntry(); + Handle(GEOM_Object) anObject = + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (anObject.IsNull()) return aGEOMObject._retn(); //Get the axis of revolution + CORBA::String_var anAEntry = theAxis->GetEntry(); Handle(GEOM_Object) anAxis = - GetOperations()->GetEngine()->GetObject(theAxis->GetStudyID(), theAxis->GetEntry()); + GetOperations()->GetEngine()->GetObject(theAxis->GetStudyID(), anAEntry); if (anAxis.IsNull()) return aGEOMObject._retn(); //Perform the rotation @@ -340,13 +407,15 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::RotateCopy (GEOM::GEOM_Object if (theObject == NULL || theAxis == NULL) return aGEOMObject._retn(); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the axis of rotation + CORBA::String_var anAEntry = theAxis->GetEntry(); Handle(GEOM_Object) anAxis = - GetOperations()->GetEngine()->GetObject(theAxis->GetStudyID(), theAxis->GetEntry()); + GetOperations()->GetEngine()->GetObject(theAxis->GetStudyID(), anAEntry); if (anAxis.IsNull()) return aGEOMObject._retn(); //Perform the rotation @@ -375,19 +444,21 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::MirrorPlane if (theObject == NULL || thePlane == NULL) return aGEOMObject._retn(); //check if the object is a subshape - if(!theObject->IsMainShape()) { + if (!theObject->IsMainShape()) { GetOperations()->SetErrorCode(SUBSHAPE_ERROR); return aGEOMObject._retn(); } //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) anObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (anObject.IsNull()) return aGEOMObject._retn(); //Get the plane + CORBA::String_var aPlnEntry = thePlane->GetEntry(); Handle(GEOM_Object) aPlane = - GetOperations()->GetEngine()->GetObject(thePlane->GetStudyID(), thePlane->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePlane->GetStudyID(), aPlnEntry); if (aPlane.IsNull()) return aGEOMObject._retn(); //Perform the mirror @@ -413,13 +484,15 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::MirrorPlaneCopy if (theObject == NULL || thePlane == NULL) return aGEOMObject._retn(); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the vector of translation + CORBA::String_var aPlnEntry = thePlane->GetEntry(); Handle(GEOM_Object) aPlane = - GetOperations()->GetEngine()->GetObject(thePlane->GetStudyID(), thePlane->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePlane->GetStudyID(), aPlnEntry); if (aPlane.IsNull()) return aGEOMObject._retn(); //Perform the mirror @@ -453,13 +526,15 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::MirrorAxis } //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) anObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (anObject.IsNull()) return aGEOMObject._retn(); //Get the axis + CORBA::String_var anAEntry = theAxis->GetEntry(); Handle(GEOM_Object) aAxis = - GetOperations()->GetEngine()->GetObject(theAxis->GetStudyID(), theAxis->GetEntry()); + GetOperations()->GetEngine()->GetObject(theAxis->GetStudyID(), anAEntry); if (aAxis.IsNull()) return aGEOMObject._retn(); //Perform the mirror @@ -485,13 +560,15 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::MirrorAxisCopy if (theObject == NULL || theAxis == NULL) return aGEOMObject._retn(); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the vector of translation + CORBA::String_var anAEntry = theAxis->GetEntry(); Handle(GEOM_Object) aAxis = - GetOperations()->GetEngine()->GetObject(theAxis->GetStudyID(), theAxis->GetEntry()); + GetOperations()->GetEngine()->GetObject(theAxis->GetStudyID(), anAEntry); if (aAxis.IsNull()) return aGEOMObject._retn(); //Perform the mirror @@ -519,19 +596,21 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::MirrorPoint if (theObject == NULL || thePoint == NULL) return aGEOMObject._retn(); //check if the object is a subshape - if(!theObject->IsMainShape()) { + if (!theObject->IsMainShape()) { GetOperations()->SetErrorCode(SUBSHAPE_ERROR); return aGEOMObject._retn(); } //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) anObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (anObject.IsNull()) return aGEOMObject._retn(); //Get the point + CORBA::String_var aPntEntry = thePoint->GetEntry(); Handle(GEOM_Object) aPoint = - GetOperations()->GetEngine()->GetObject(thePoint->GetStudyID(), thePoint->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePoint->GetStudyID(), aPntEntry); if (aPoint.IsNull()) return aGEOMObject._retn(); //Perform the mirror @@ -557,13 +636,15 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::MirrorPointCopy if (theObject == NULL || thePoint == NULL) return aGEOMObject._retn(); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the vector of translation + CORBA::String_var aPntEntry = thePoint->GetEntry(); Handle(GEOM_Object) aPoint = - GetOperations()->GetEngine()->GetObject(thePoint->GetStudyID(), thePoint->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePoint->GetStudyID(), aPntEntry); if (aPoint.IsNull()) return aGEOMObject._retn(); //Perform the mirror @@ -592,15 +673,15 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::OffsetShape if (theObject == NULL) return aGEOMObject._retn(); //check if the object is a subshape - if(!theObject->IsMainShape()) { + if (!theObject->IsMainShape()) { GetOperations()->SetErrorCode(SUBSHAPE_ERROR); return aGEOMObject._retn(); } - //Get the basic object + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Create the offset shape @@ -626,8 +707,9 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::OffsetShapeCopy if (theObject == NULL) return aGEOMObject._retn(); //Get the basic object + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Create the offset shape @@ -647,30 +729,34 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::OffsetShapeCopy GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::ScaleShape (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr thePoint, - CORBA::Double theFactor) + CORBA::Double theFactor) { GEOM::GEOM_Object_var aGEOMObject = GEOM::GEOM_Object::_duplicate(theObject); //Set a not done flag GetOperations()->SetNotDone(); - if (thePoint == NULL || theObject == NULL) return aGEOMObject._retn(); + if (theObject->_is_nil()) return aGEOMObject._retn(); //check if the object is a subshape - if(!theObject->IsMainShape()) { + if (!theObject->IsMainShape()) { GetOperations()->SetErrorCode(SUBSHAPE_ERROR); return aGEOMObject._retn(); } //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) anObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (anObject.IsNull()) return aGEOMObject._retn(); //Get the point - Handle(GEOM_Object) aPoint = - GetOperations()->GetEngine()->GetObject(thePoint->GetStudyID(), thePoint->GetEntry()); - if (aPoint.IsNull()) return aGEOMObject._retn(); + Handle(GEOM_Object) aPoint; + if (!thePoint->_is_nil()) { + CORBA::String_var aPntEntry = thePoint->GetEntry(); + aPoint = GetOperations()->GetEngine()->GetObject(thePoint->GetStudyID(), aPntEntry); + if (aPoint.IsNull()) return aGEOMObject._retn(); + } //Perform the scale GetOperations()->ScaleShape(anObject, aPoint, theFactor); @@ -686,24 +772,28 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::ScaleShape GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::ScaleShapeCopy (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr thePoint, - CORBA::Double theFactor) + CORBA::Double theFactor) { GEOM::GEOM_Object_var aGEOMObject; //Set a not done flag GetOperations()->SetNotDone(); - if (thePoint == NULL || theObject == NULL) return aGEOMObject._retn(); + if (theObject->_is_nil()) return aGEOMObject._retn(); //Get the basic object + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the point - Handle(GEOM_Object) aPoint = - GetOperations()->GetEngine()->GetObject(thePoint->GetStudyID(), thePoint->GetEntry()); - if (aPoint.IsNull()) return aGEOMObject._retn(); + Handle(GEOM_Object) aPoint; + if (!thePoint->_is_nil()) { + CORBA::String_var aPntEntry = thePoint->GetEntry(); + aPoint = GetOperations()->GetEngine()->GetObject(thePoint->GetStudyID(), aPntEntry); + if (aPoint.IsNull()) return aGEOMObject._retn(); + } //Perform the scale Handle(GEOM_Object) anObject = @@ -714,6 +804,94 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::ScaleShapeCopy return GetObject(anObject); } +//============================================================================= +/*! + * ScaleShapeAlongAxes + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::ScaleShapeAlongAxes + (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePoint, + CORBA::Double theFactorX, + CORBA::Double theFactorY, + CORBA::Double theFactorZ) +{ + GEOM::GEOM_Object_var aGEOMObject = GEOM::GEOM_Object::_duplicate(theObject); + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (theObject->_is_nil()) return aGEOMObject._retn(); + + //check if the object is a subshape + if (!theObject->IsMainShape()) { + GetOperations()->SetErrorCode(SUBSHAPE_ERROR); + return aGEOMObject._retn(); + } + + //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); + Handle(GEOM_Object) anObject = + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); + if (anObject.IsNull()) return aGEOMObject._retn(); + + //Get the point + Handle(GEOM_Object) aPoint; + if (!thePoint->_is_nil()) { + CORBA::String_var aPntEntry = thePoint->GetEntry(); + aPoint = GetOperations()->GetEngine()->GetObject(thePoint->GetStudyID(), aPntEntry); + if (aPoint.IsNull()) return aGEOMObject._retn(); + } + + //Perform the scale + GetOperations()->ScaleShapeAlongAxes + (anObject, aPoint, theFactorX, theFactorY, theFactorZ, /*doCopy*/false); + + return aGEOMObject._retn(); +} + +//============================================================================= +/*! + * ScaleShapeAlongAxesCopy + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::ScaleShapeAlongAxesCopy + (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePoint, + CORBA::Double theFactorX, + CORBA::Double theFactorY, + CORBA::Double theFactorZ) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (theObject->_is_nil()) return aGEOMObject._retn(); + + //Get the basic object + CORBA::String_var anEntry = theObject->GetEntry(); + Handle(GEOM_Object) aBasicObject = + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); + if (aBasicObject.IsNull()) return aGEOMObject._retn(); + + //Get the point + Handle(GEOM_Object) aPoint; + if (!thePoint->_is_nil()) { + CORBA::String_var aPntEntry = thePoint->GetEntry(); + aPoint = GetOperations()->GetEngine()->GetObject(thePoint->GetStudyID(), aPntEntry); + if (aPoint.IsNull()) return aGEOMObject._retn(); + } + + //Perform the scale + Handle(GEOM_Object) anObject = GetOperations()->ScaleShapeAlongAxes + (aBasicObject, aPoint, theFactorX, theFactorY, theFactorZ, /*doCopy*/true); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + //============================================================================= /*! * PositionShape @@ -733,26 +911,29 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::PositionShape return aGEOMObject._retn(); //check if the object is a subshape - if(!theObject->IsMainShape()) { + if (!theObject->IsMainShape()) { GetOperations()->SetErrorCode(SUBSHAPE_ERROR); return aGEOMObject._retn(); } //Get the basic object + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) anObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (anObject.IsNull()) return aGEOMObject._retn(); //Get the Start LCS (may be NULL for positioning from global LCS) Handle(GEOM_Object) aStartLCS = NULL; if (theStartLCS != NULL && !CORBA::is_nil(theStartLCS)) { - aStartLCS = GetOperations()->GetEngine()->GetObject(theStartLCS->GetStudyID(), theStartLCS->GetEntry()); + CORBA::String_var aStartLCSEntry = theStartLCS->GetEntry(); + aStartLCS = GetOperations()->GetEngine()->GetObject(theStartLCS->GetStudyID(), aStartLCSEntry); if (aStartLCS.IsNull()) return aGEOMObject._retn(); } //Get the End LCS + CORBA::String_var anEndLCSEntry = theEndLCS->GetEntry(); Handle(GEOM_Object) aEndLCS = - GetOperations()->GetEngine()->GetObject(theEndLCS->GetStudyID(), theEndLCS->GetEntry()); + GetOperations()->GetEngine()->GetObject(theEndLCS->GetStudyID(), anEndLCSEntry); if (aEndLCS.IsNull()) return aGEOMObject._retn(); //Perform the Position @@ -780,20 +961,23 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::PositionShapeCopy return aGEOMObject._retn(); //Get the basic object + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the Start LCS (may be NULL for positioning from global LCS) Handle(GEOM_Object) aStartLCS = NULL; if (theStartLCS != NULL && !CORBA::is_nil(theStartLCS)) { - aStartLCS = GetOperations()->GetEngine()->GetObject(theStartLCS->GetStudyID(), theStartLCS->GetEntry()); + CORBA::String_var aStartLCSEntry = theStartLCS->GetEntry(); + aStartLCS = GetOperations()->GetEngine()->GetObject(theStartLCS->GetStudyID(), aStartLCSEntry); if (aStartLCS.IsNull()) return aGEOMObject._retn(); } //Get the End LCS + CORBA::String_var anEndLCSEntry = theEndLCS->GetEntry(); Handle(GEOM_Object) aEndLCS = - GetOperations()->GetEngine()->GetObject(theEndLCS->GetStudyID(), theEndLCS->GetEntry()); + GetOperations()->GetEngine()->GetObject(theEndLCS->GetStudyID(), anEndLCSEntry); if (aEndLCS.IsNull()) return aGEOMObject._retn(); //Perform the position @@ -805,6 +989,47 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::PositionShapeCopy return GetObject(anObject); } +//============================================================================= +/*! + * PositionAlongPath + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::PositionAlongPath + (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePath, + CORBA::Double theDistance, + CORBA::Boolean theCopy, + CORBA::Boolean theReverse) +{ + GEOM::GEOM_Object_var aGEOMObject; + + //Set a not done flag + GetOperations()->SetNotDone(); + + if (theObject == NULL || thePath == NULL) + return aGEOMObject._retn(); + + //Get the basic object + CORBA::String_var anEntry = theObject->GetEntry(); + Handle(GEOM_Object) aBasicObject = + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); + if (aBasicObject.IsNull()) return aGEOMObject._retn(); + + //Get the path object + CORBA::String_var aPathEntry = thePath->GetEntry(); + Handle(GEOM_Object) aPathObject = + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), aPathEntry); + if (aPathObject.IsNull()) return aGEOMObject._retn(); + + //Perform the position + Handle(GEOM_Object) anObject = + GetOperations()->PositionAlongPath(aBasicObject, aPathObject, theDistance, theCopy, theReverse); + if (!GetOperations()->IsDone() || anObject.IsNull()) + return aGEOMObject._retn(); + + return GetObject(anObject); +} + //============================================================================= /*! * MultiTranslate1D @@ -823,13 +1048,15 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::MultiTranslate1D if (theObject == NULL || theVector == NULL) return aGEOMObject._retn(); //Get the object itself - Handle(GEOM_Object) aBasicObject = GetOperations()->GetEngine()->GetObject - (theObject->GetStudyID(), theObject->GetEntry()); + CORBA::String_var anEntry = theObject->GetEntry(); + Handle(GEOM_Object) aBasicObject = + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the vector of translation - Handle(GEOM_Object) aVector = GetOperations()->GetEngine()->GetObject - (theVector->GetStudyID(), theVector->GetEntry()); + CORBA::String_var aVecEntry = theVector->GetEntry(); + Handle(GEOM_Object) aVector = + GetOperations()->GetEngine()->GetObject(theVector->GetStudyID(), aVecEntry); if (aVector.IsNull()) return aGEOMObject._retn(); //Perform the translation @@ -861,18 +1088,21 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::MultiTranslate2D (GEOM::GEOM_ if (theObject == NULL || theVector1 == NULL || theVector2 == NULL) return aGEOMObject._retn(); //Get the object itself - Handle(GEOM_Object) aBasicObject = GetOperations()->GetEngine()->GetObject - (theObject->GetStudyID(), theObject->GetEntry()); + CORBA::String_var anEntry = theObject->GetEntry(); + Handle(GEOM_Object) aBasicObject = + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the vector1 of translation - Handle(GEOM_Object) aVector1 = GetOperations()->GetEngine()->GetObject - (theVector1->GetStudyID(), theVector1->GetEntry()); + CORBA::String_var aVec1Entry = theVector1->GetEntry(); + Handle(GEOM_Object) aVector1 = + GetOperations()->GetEngine()->GetObject(theVector1->GetStudyID(), aVec1Entry); if (aVector1.IsNull()) return aGEOMObject._retn(); //Get the vector2 of translation - Handle(GEOM_Object) aVector2 = GetOperations()->GetEngine()->GetObject - (theVector2->GetStudyID(), theVector2->GetEntry()); + CORBA::String_var aVec2Entry = theVector2->GetEntry(); + Handle(GEOM_Object) aVector2 = + GetOperations()->GetEngine()->GetObject(theVector2->GetStudyID(), aVec2Entry); if (aVector2.IsNull()) return aGEOMObject._retn(); //Perform the translation @@ -900,13 +1130,15 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::MultiRotate1D (GEOM::GEOM_Obj if (theObject == NULL || theVector == NULL) return aGEOMObject._retn(); //Get the object itself - Handle(GEOM_Object) aBasicObject = GetOperations()->GetEngine()->GetObject - (theObject->GetStudyID(), theObject->GetEntry()); + CORBA::String_var anEntry = theObject->GetEntry(); + Handle(GEOM_Object) aBasicObject = + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the a directon of rotation - Handle(GEOM_Object) aVector = GetOperations()->GetEngine()->GetObject - (theVector->GetStudyID(), theVector->GetEntry()); + CORBA::String_var aVecEntry = theVector->GetEntry(); + Handle(GEOM_Object) aVector = + GetOperations()->GetEngine()->GetObject(theVector->GetStudyID(), aVecEntry); if (aVector.IsNull()) return aGEOMObject._retn(); //Perform the rotation @@ -936,13 +1168,15 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::MultiRotate2D (GEOM::GEOM_Obj if (theObject == NULL || theVector == NULL) return aGEOMObject._retn(); //Get the object itself - Handle(GEOM_Object) aBasicObject = GetOperations()->GetEngine()->GetObject - (theObject->GetStudyID(), theObject->GetEntry()); + CORBA::String_var anEntry = theObject->GetEntry(); + Handle(GEOM_Object) aBasicObject = + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the a directon of rotation - Handle(GEOM_Object) aVector = GetOperations()->GetEngine()->GetObject - (theVector->GetStudyID(), theVector->GetEntry()); + CORBA::String_var aVecEntry = theVector->GetEntry(); + Handle(GEOM_Object) aVector = + GetOperations()->GetEngine()->GetObject(theVector->GetStudyID(), aVecEntry); if (aVector.IsNull()) return aGEOMObject._retn(); //Perform the rotation @@ -968,10 +1202,11 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::RotateThreePoints GetOperations()->SetNotDone(); GEOM::GEOM_Object_var aGEOMObject; - if (theCentPoint == NULL || thePoint1 == NULL || thePoint2 == NULL || theObject == NULL) return aGEOMObject._retn(); + if (theCentPoint == NULL || thePoint1 == NULL || thePoint2 == NULL || theObject == NULL) + return aGEOMObject._retn(); //check if the object is a subshape - if(!theObject->IsMainShape()) { + if (!theObject->IsMainShape()) { GetOperations()->SetErrorCode(SUBSHAPE_ERROR); return aGEOMObject._retn(); } @@ -979,23 +1214,27 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::RotateThreePoints aGEOMObject = GEOM::GEOM_Object::_duplicate(theObject); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) anObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (anObject.IsNull()) return aGEOMObject._retn(); //Get the central point of rotation + CORBA::String_var aCPEntry = theCentPoint->GetEntry(); Handle(GEOM_Object) aCentPoint = - GetOperations()->GetEngine()->GetObject(theCentPoint->GetStudyID(), theCentPoint->GetEntry()); + GetOperations()->GetEngine()->GetObject(theCentPoint->GetStudyID(), aCPEntry); if (aCentPoint.IsNull()) return aGEOMObject._retn(); //Get the first point + CORBA::String_var aP1Entry = thePoint1->GetEntry(); Handle(GEOM_Object) aPoint1 = - GetOperations()->GetEngine()->GetObject(thePoint1->GetStudyID(), thePoint1->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePoint1->GetStudyID(), aP1Entry); if (aPoint1.IsNull()) return aGEOMObject._retn(); //Get the second point + CORBA::String_var aP2Entry = thePoint2->GetEntry(); Handle(GEOM_Object) aPoint2 = - GetOperations()->GetEngine()->GetObject(thePoint2->GetStudyID(), thePoint2->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePoint2->GetStudyID(), aP2Entry); if (aPoint2.IsNull()) return aGEOMObject._retn(); //Perform the translation @@ -1020,26 +1259,31 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::RotateThreePointsCopy //Set a not done flag GetOperations()->SetNotDone(); - if (theCentPoint == NULL || thePoint1 == NULL || thePoint2 == NULL || theObject == NULL) return aGEOMObject._retn(); + if (theCentPoint == NULL || thePoint1 == NULL || thePoint2 == NULL || theObject == NULL) + return aGEOMObject._retn(); //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); Handle(GEOM_Object) aBasicObject = - GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), theObject->GetEntry()); + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); if (aBasicObject.IsNull()) return aGEOMObject._retn(); //Get the central point of rotation + CORBA::String_var aCPEntry = theCentPoint->GetEntry(); Handle(GEOM_Object) aCentPoint = - GetOperations()->GetEngine()->GetObject(theCentPoint->GetStudyID(), theCentPoint->GetEntry()); + GetOperations()->GetEngine()->GetObject(theCentPoint->GetStudyID(), aCPEntry); if (aCentPoint.IsNull()) return aGEOMObject._retn(); //Get the first point + CORBA::String_var aP1Entry = thePoint1->GetEntry(); Handle(GEOM_Object) aPoint1 = - GetOperations()->GetEngine()->GetObject(thePoint1->GetStudyID(), thePoint1->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePoint1->GetStudyID(), aP1Entry); if (aPoint1.IsNull()) return aGEOMObject._retn(); //Get the second point + CORBA::String_var aP2Entry = thePoint2->GetEntry(); Handle(GEOM_Object) aPoint2 = - GetOperations()->GetEngine()->GetObject(thePoint2->GetStudyID(), thePoint2->GetEntry()); + GetOperations()->GetEngine()->GetObject(thePoint2->GetStudyID(), aP2Entry); if (aPoint2.IsNull()) return aGEOMObject._retn(); //Perform the rotation @@ -1051,3 +1295,38 @@ GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::RotateThreePointsCopy return GetObject(anObject); } +//============================================================================= +/*! + * RecomputeObject + */ +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_ITransformOperations_i::RecomputeObject + (GEOM::GEOM_Object_ptr theObject) +{ + //Set a not done flag + GetOperations()->SetNotDone(); + GEOM::GEOM_Object_var aGEOMObject; + + if (theObject == NULL) return aGEOMObject._retn(); + + //check if the object is a subshape + //if (!theObject->IsMainShape()) { + // GetOperations()->SetErrorCode(SUBSHAPE_ERROR); + // return aGEOMObject._retn(); + //} + + aGEOMObject = GEOM::GEOM_Object::_duplicate(theObject); + + //Get the object itself + CORBA::String_var anEntry = theObject->GetEntry(); + Handle(GEOM_Object) anObject = + GetOperations()->GetEngine()->GetObject(theObject->GetStudyID(), anEntry); + if (anObject.IsNull()) return aGEOMObject._retn(); + + //Perform the recomputation + Handle(GEOM_Function) aLastFunction = anObject->GetLastFunction(); + if (aLastFunction.IsNull()) return aGEOMObject._retn(); + GetOperations()->GetSolver()->ComputeFunction(aLastFunction); + + return aGEOMObject._retn(); +} diff --git a/src/GEOM_I/GEOM_ITransformOperations_i.hh b/src/GEOM_I/GEOM_ITransformOperations_i.hh index 3f49b17b7..e46758e01 100644 --- a/src/GEOM_I/GEOM_ITransformOperations_i.hh +++ b/src/GEOM_I/GEOM_ITransformOperations_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_ITransformOperations_i_HeaderFile #define _GEOM_ITransformOperations_i_HeaderFile @@ -60,6 +61,11 @@ class GEOM_I_EXPORT GEOM_ITransformOperations_i : GEOM::GEOM_Object_ptr TranslateVectorCopy (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theVector); + GEOM::GEOM_Object_ptr TranslateVectorDistance (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr theVector, + CORBA::Double theDistance, + CORBA::Boolean theCopy); + GEOM::GEOM_Object_ptr MultiTranslate1D (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theVector, CORBA::Double theStep, CORBA::Long theNbTimes); GEOM::GEOM_Object_ptr MultiTranslate2D (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theVector1, CORBA::Double theStep1, CORBA::Long theNbTimes1, @@ -72,7 +78,6 @@ class GEOM_I_EXPORT GEOM_ITransformOperations_i : GEOM::GEOM_Object_ptr MultiRotate1D (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theVector, CORBA::Long theNbTimes); - GEOM::GEOM_Object_ptr MultiRotate2D (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theVector, @@ -117,6 +122,18 @@ class GEOM_I_EXPORT GEOM_ITransformOperations_i : GEOM::GEOM_Object_ptr thePoint, CORBA::Double theFactor); + GEOM::GEOM_Object_ptr ScaleShapeAlongAxes (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePoint, + CORBA::Double theFactorX, + CORBA::Double theFactorY, + CORBA::Double theFactorZ); + + GEOM::GEOM_Object_ptr ScaleShapeAlongAxesCopy (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePoint, + CORBA::Double theFactorX, + CORBA::Double theFactorY, + CORBA::Double theFactorZ); + GEOM::GEOM_Object_ptr PositionShape (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theStartLCS, GEOM::GEOM_Object_ptr theEndLCS); @@ -125,6 +142,12 @@ class GEOM_I_EXPORT GEOM_ITransformOperations_i : GEOM::GEOM_Object_ptr theStartLCS, GEOM::GEOM_Object_ptr theEndLCS); + GEOM::GEOM_Object_ptr PositionAlongPath (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePath, + CORBA::Double theDistance, + CORBA::Boolean theCopy, + CORBA::Boolean theReverse); + GEOM::GEOM_Object_ptr RotateThreePoints (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theCentPoint, GEOM::GEOM_Object_ptr thePoint1, @@ -135,6 +158,8 @@ class GEOM_I_EXPORT GEOM_ITransformOperations_i : GEOM::GEOM_Object_ptr thePoint1, GEOM::GEOM_Object_ptr thePoint2); + GEOM::GEOM_Object_ptr RecomputeObject (GEOM::GEOM_Object_ptr theObject); + ::GEOMImpl_ITransformOperations* GetOperations() { return (::GEOMImpl_ITransformOperations*)GetImpl(); } }; diff --git a/src/GEOM_I/GEOM_Object_i.cc b/src/GEOM_I/GEOM_Object_i.cc index 4a86443b6..12ea73a99 100644 --- a/src/GEOM_I/GEOM_Object_i.cc +++ b/src/GEOM_I/GEOM_Object_i.cc @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #include @@ -360,3 +362,14 @@ bool GEOM_Object_i::IsShape() { return !_impl->GetValue().IsNull() && _impl->GetType() != GEOM_MARKER; } + +void GEOM_Object_i::SetParameters(const char* theParameters) +{ + _impl->SetParameters((char*)theParameters); +} + +char* GEOM_Object_i::GetParameters() +{ + return CORBA::string_dup(_impl->GetParameters().ToCString()); +} + diff --git a/src/GEOM_I/GEOM_Object_i.hh b/src/GEOM_I/GEOM_Object_i.hh index 56631b7f0..13bb0290f 100644 --- a/src/GEOM_I/GEOM_Object_i.hh +++ b/src/GEOM_I/GEOM_Object_i.hh @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #ifndef _GEOM_Object_i_HeaderFile #define _GEOM_Object_i_HeaderFile @@ -81,6 +82,10 @@ class GEOM_I_EXPORT GEOM_Object_i : public virtual POA_GEOM::GEOM_Object, public virtual bool IsShape(); + virtual void SetParameters(const char* theParameters); + + virtual char* GetParameters(); + Handle(GEOM_Object) GetImpl() { return _impl; } private: diff --git a/src/GEOM_I/Makefile.am b/src/GEOM_I/Makefile.am index 7915c62bb..445804206 100644 --- a/src/GEOM_I/Makefile.am +++ b/src/GEOM_I/Makefile.am @@ -1,98 +1,100 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM GEOM : implementaion of GEOM_Gen.idl -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.in # Author : Patrick GOLDBRONN (CEA) # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libGEOMEngine.la # header files -salomeinclude_HEADERS = \ - GEOM_Object_i.hh \ - GEOM_IOperations_i.hh \ - GEOM_IBasicOperations_i.hh \ - GEOM_IHealingOperations_i.hh \ - GEOM_I3DPrimOperations_i.hh \ - GEOM_IShapesOperations_i.hh \ - GEOM_IBlocksOperations_i.hh \ - GEOM_IBooleanOperations_i.hh \ - GEOM_ICurvesOperations_i.hh \ - GEOM_ILocalOperations_i.hh \ - GEOM_IInsertOperations_i.hh \ - GEOM_ITransformOperations_i.hh \ - GEOM_IMeasureOperations_i.hh \ - GEOM_IGroupOperations_i.hh \ - GEOM_Gen_i.hh \ +salomeinclude_HEADERS = \ + GEOM_Object_i.hh \ + GEOM_IOperations_i.hh \ + GEOM_IBasicOperations_i.hh \ + GEOM_IHealingOperations_i.hh \ + GEOM_I3DPrimOperations_i.hh \ + GEOM_IShapesOperations_i.hh \ + GEOM_IBlocksOperations_i.hh \ + GEOM_IBooleanOperations_i.hh \ + GEOM_ICurvesOperations_i.hh \ + GEOM_ILocalOperations_i.hh \ + GEOM_IInsertOperations_i.hh \ + GEOM_ITransformOperations_i.hh \ + GEOM_IMeasureOperations_i.hh \ + GEOM_IGroupOperations_i.hh \ + GEOM_Gen_i.hh \ GEOM_GEOM_I.hxx -dist_libGEOMEngine_la_SOURCES = \ - GEOM_Object_i.cc \ - GEOM_IOperations_i.cc \ - GEOM_IBasicOperations_i.cc \ - GEOM_IHealingOperations_i.cc \ - GEOM_I3DPrimOperations_i.cc \ - GEOM_IShapesOperations_i.cc \ - GEOM_IBlocksOperations_i.cc \ - GEOM_IBooleanOperations_i.cc \ - GEOM_ICurvesOperations_i.cc \ - GEOM_ILocalOperations_i.cc \ - GEOM_IInsertOperations_i.cc \ - GEOM_ITransformOperations_i.cc \ - GEOM_IMeasureOperations_i.cc \ - GEOM_IGroupOperations_i.cc \ - GEOM_Gen_i.cc \ +dist_libGEOMEngine_la_SOURCES = \ + GEOM_Object_i.cc \ + GEOM_IOperations_i.cc \ + GEOM_IBasicOperations_i.cc \ + GEOM_IHealingOperations_i.cc \ + GEOM_I3DPrimOperations_i.cc \ + GEOM_IShapesOperations_i.cc \ + GEOM_IBlocksOperations_i.cc \ + GEOM_IBooleanOperations_i.cc \ + GEOM_ICurvesOperations_i.cc \ + GEOM_ILocalOperations_i.cc \ + GEOM_IInsertOperations_i.cc \ + GEOM_ITransformOperations_i.cc \ + GEOM_IMeasureOperations_i.cc \ + GEOM_IGroupOperations_i.cc \ + GEOM_Gen_i.cc \ GEOM_DumpPython.cc -# additionnal information to compil and link file -libGEOMEngine_la_CPPFLAGS = \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - -I$(srcdir)/../SKETCHER \ - -I$(srcdir)/../ARCHIMEDE \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMAlgo \ - -I$(srcdir)/../GEOM \ - -I$(top_builddir)/idl \ +# additional information to compile and link file + +libGEOMEngine_la_CPPFLAGS = \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + -I$(srcdir)/../SKETCHER \ + -I$(srcdir)/../ARCHIMEDE \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMAlgo \ + -I$(srcdir)/../GEOM \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libGEOMEngine_la_LDFLAGS = \ - ../../idl/libSalomeIDLGEOM.la \ - ../ARCHIMEDE/libGEOMArchimede.la \ - ../GEOMImpl/libGEOMimpl.la \ - ../SKETCHER/libGEOMSketcher.la \ - ../GEOM/libGEOMbasic.la \ - $(KERNEL_LDFLAGS) -lSalomeNS -lSalomeContainer -lSalomeGenericObj -lTOOLSDS \ - $(CAS_DATAEXCHANGE) \ - $(CAS_LDPATH) -lTKFillet -lTKOffset \ - $(STDLIB) \ - $(CORBA_LIBS) +libGEOMEngine_la_LDFLAGS = \ + ../../idl/libSalomeIDLGEOM.la \ + ../ARCHIMEDE/libGEOMArchimede.la \ + ../GEOMImpl/libGEOMimpl.la \ + ../SKETCHER/libGEOMSketcher.la \ + ../GEOM/libGEOMbasic.la \ + $(KERNEL_LDFLAGS) -lSalomeNS -lSalomeContainer -lSalomeGenericObj -lTOOLSDS \ + $(CAS_DATAEXCHANGE) \ + $(CAS_LDPATH) -lTKFillet -lTKOffset + +# \ +# $(STDLIB) \ +# $(CORBA_LIBS) diff --git a/src/GEOM_I_Superv/GEOM_List_i.hh b/src/GEOM_I_Superv/GEOM_List_i.hh index 7b8e56c75..292cb4fb9 100644 --- a/src/GEOM_I_Superv/GEOM_List_i.hh +++ b/src/GEOM_I_Superv/GEOM_List_i.hh @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __GEOM_LIST_I_H__ #define __GEOM_LIST_I_H__ diff --git a/src/GEOM_I_Superv/GEOM_Superv_i.cc b/src/GEOM_I_Superv/GEOM_Superv_i.cc index 387c3b0d4..159bb6f49 100644 --- a/src/GEOM_I_Superv/GEOM_Superv_i.cc +++ b/src/GEOM_I_Superv/GEOM_Superv_i.cc @@ -1,23 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - #include "GEOM_Superv_i.hh" #include "SALOME_LifeCycleCORBA.hxx" @@ -771,6 +772,80 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeBoxTwoPnt (GEOM::GEOM_Object_ptr thePnt return anObj; } +//============================================================================= +// MakeFaceHW: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFaceHW (CORBA::Double theH, + CORBA::Double theW, + CORBA::Short theOrientation) +{ + beginService( " GEOM_Superv_i::MakeFaceHW" ); + MESSAGE("GEOM_Superv_i::MakeFaceHW"); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeFaceHW(theH, theW, theOrientation); + endService( " GEOM_Superv_i::MakeFaceHW" ); + return anObj; +} + +//============================================================================= +// MakeFaceObjHW: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFaceObjHW (GEOM::GEOM_Object_ptr theObj, + CORBA::Double theH, + CORBA::Double theW) +{ + beginService( " GEOM_Superv_i::MakeFaceObjHW" ); + MESSAGE("GEOM_Superv_i::MakeFaceObjHW"); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeFaceObjHW(theObj, theH, theW); + endService( " GEOM_Superv_i::MakeFaceObjHW" ); + return anObj; +} + +//============================================================================= +// MakeDiskPntVecR: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeDiskPntVecR (GEOM::GEOM_Object_ptr theCenter, + GEOM::GEOM_Object_ptr theVector, + CORBA::Double theR) +{ + beginService( " GEOM_Superv_i::MakeDiskPntVecR" ); + MESSAGE("GEOM_Superv_i::MakeDiskPntVecR"); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeDiskPntVecR(theCenter, theVector, theR); + endService( " GEOM_Superv_i::MakeDiskPntVecR" ); + return anObj; +} + +//============================================================================= +// MakeDiskThreePnt: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeDiskThreePnt (GEOM::GEOM_Object_ptr thePnt1, + GEOM::GEOM_Object_ptr thePnt2, + GEOM::GEOM_Object_ptr thePnt3) +{ + beginService( " GEOM_Superv_i::MakeDiskThreePnt" ); + MESSAGE("GEOM_Superv_i::MakeDiskThreePnt"); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeDiskThreePnt(thePnt1, thePnt2, thePnt3); + endService( " GEOM_Superv_i::MakeDiskThreePnt" ); + return anObj; +} + +//============================================================================= +// MakeDiskR: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeDiskR (CORBA::Double theR, + CORBA::Short theOrientation) +{ + beginService( " GEOM_Superv_i::MakeDiskR" ); + MESSAGE("GEOM_Superv_i::MakeDiskR"); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeDiskR(theR, theOrientation); + endService( " GEOM_Superv_i::MakeDiskR" ); + return anObj; +} + //============================================================================= // MakeCylinderPntVecRH: //============================================================================= @@ -813,9 +888,7 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSphere (CORBA::Double theX, MESSAGE("GEOM_Superv_i::MakeSphepe"); getBasicOp(); get3DPrimOp(); - GEOM::GEOM_Object_var o = myBasicOp->MakePointXYZ(theX, theY, theZ); - GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeSpherePntR(o, theRadius); - o->Destroy(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakeSpherePntR(myBasicOp->MakePointXYZ(theX, theY, theZ), theRadius); endService( " GEOM_Superv_i::MakeSphepe" ); return anObj; } @@ -969,6 +1042,34 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismTwoPnt2Ways (GEOM::GEOM_Object_ptr return anObj; } +//============================================================================= +// MakePrismDXDYDZ: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismDXDYDZ (GEOM::GEOM_Object_ptr theBase, + CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ) +{ + beginService( " GEOM_Superv_i::MakePrismDXDYDZ" ); + MESSAGE("GEOM_Superv_i::MakePrismDXDYDZ"); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismDXDYDZ(theBase, theDX, theDY, theDZ); + endService( " GEOM_Superv_i::MakePrismDXDYDZ" ); + return anObj; +} + +//============================================================================= +// MakePrismDXDYDZ: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePrismDXDYDZ2Ways (GEOM::GEOM_Object_ptr theBase, + CORBA::Double theDX, CORBA::Double theDY, CORBA::Double theDZ) +{ + beginService( " GEOM_Superv_i::MakePrismDXDYDZ2Ways" ); + MESSAGE("GEOM_Superv_i::MakePrismDXDYDZ2Ways"); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = my3DPrimOp->MakePrismDXDYDZ2Ways(theBase, theDX, theDY, theDZ); + endService( " GEOM_Superv_i::MakePrismDXDYDZ2Ways" ); + return anObj; +} + //============================================================================= // MakePipe: //============================================================================= @@ -1122,6 +1223,24 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeShellsWithoutPath } +//============================================================================= +// MakePipe: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakePipeBiNormalAlongVector + (GEOM::GEOM_Object_ptr theBase, + GEOM::GEOM_Object_ptr thePath, + GEOM::GEOM_Object_ptr theVec) +{ + beginService( " GEOM_Superv_i::MakePipeBiNormalAlongVector" ); + MESSAGE("GEOM_Superv_i::MakePipeBiNormalAlongVector"); + get3DPrimOp(); + GEOM::GEOM_Object_ptr anObj = + my3DPrimOp->MakePipeBiNormalAlongVector(theBase, thePath, theVec); + endService( " GEOM_Superv_i::MakePipeBiNormalAlongVector" ); + return anObj; +} + + //============================================================================= // MakeFuse: //============================================================================= @@ -1347,6 +1466,23 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVectorCopy (GEOM::GEOM_Object_ptr return anObj; } +//============================================================================= +// TranslateVectorDistance: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::TranslateVectorDistance (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr theVector, + CORBA::Double theDistance, + CORBA::Boolean theCopy) +{ + beginService( " GEOM_Superv_i::TranslateVectorDistance" ); + MESSAGE("GEOM_Superv_i::TranslateVectorDistance"); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->TranslateVectorDistance(theObject, + theVector, theDistance, theCopy); + endService( " GEOM_Superv_i::TranslateVectorDistance" ); + return anObj; +} + //============================================================================= // MultiTranslate1D: //============================================================================= @@ -1619,6 +1755,42 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShapeCopy (GEOM::GEOM_Object_ptr theOb return anObj; } +//============================================================================= +// ScaleShapeAlongAxes: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShapeAlongAxes (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePoint, + CORBA::Double theFactorX, + CORBA::Double theFactorY, + CORBA::Double theFactorZ) +{ + beginService( " GEOM_Superv_i::ScaleShapeAlongAxes" ); + MESSAGE("GEOM_Superv_i::ScaleShapeAlongAxes"); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShapeAlongAxes + (theObject, thePoint, theFactorX, theFactorY, theFactorZ); + endService( " GEOM_Superv_i::ScaleShapeAlongAxes" ); + return anObj; +} + +//============================================================================= +// ScaleShapeAlongAxesCopy: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::ScaleShapeAlongAxesCopy (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePoint, + CORBA::Double theFactorX, + CORBA::Double theFactorY, + CORBA::Double theFactorZ) +{ + beginService( " GEOM_Superv_i::ScaleShapeAlongAxesCopy" ); + MESSAGE("GEOM_Superv_i::ScaleShapeAlongAxesCopy"); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->ScaleShapeAlongAxesCopy + (theObject, thePoint, theFactorX, theFactorY, theFactorZ); + endService( " GEOM_Superv_i::ScaleShapeAlongAxesCopy" ); + return anObj; +} + //============================================================================= // PositionShape: //============================================================================= @@ -1649,6 +1821,23 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionShapeCopy (GEOM::GEOM_Object_ptr th return anObj; } +//============================================================================= +// PositionAlongPath: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::PositionAlongPath (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePath, + CORBA::Double theDistance, + CORBA::Boolean theCopy, + CORBA::Boolean theReverse) +{ + beginService( " GEOM_Superv_i::PositionAlongPath" ); + MESSAGE("GEOM_Superv_i::PositionAlongPath"); + getTransfOp(); + GEOM::GEOM_Object_ptr anObj = myTransfOp->PositionAlongPath(theObject, thePath, theDistance, theCopy, theReverse); + endService( " GEOM_Superv_i::PositionAlongPath" ); + return anObj; +} + //=============================== ShapesOperations ============================ //============================================================================= // Make: @@ -1875,6 +2064,7 @@ CORBA::Long GEOM_Superv_i::NumberOfEdges (GEOM::GEOM_Object_ptr theShape) return aRes; } + //============================================================================= // ChangeOrientation: //============================================================================= @@ -1889,6 +2079,46 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::ChangeOrientation (GEOM::GEOM_Object_ptr th } +//============================================================================= +// GetShapesOnShape: +//============================================================================= +GEOM::GEOM_List_ptr GEOM_Superv_i::GetShapesOnShape + (GEOM::GEOM_Object_ptr theCheckShape, + GEOM::GEOM_Object_ptr theShape, + CORBA::Short theShapeType, + GEOM::shape_state theState) +{ + beginService( " GEOM_Superv_i::GetShapesOnShape" ); + MESSAGE("GEOM_Superv_i::GetShapesOnShape"); + getShapesOp(); + GEOM::ListOfGO* aList = + myShapesOp->GetShapesOnShape(theCheckShape, theShape, theShapeType, theState); + GEOM_List_i* aListPtr = new GEOM_List_i(*(aList)); + MESSAGE(" List of "<GetList().length()<<" element(s)"); + endService( " GEOM_Superv_i::GetShapesOnShape" ); + return aListPtr->_this(); +} + + +//============================================================================= +// GetShapesOnShapeAsCompound: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::GetShapesOnShapeAsCompound + (GEOM::GEOM_Object_ptr theCheckShape, + GEOM::GEOM_Object_ptr theShape, + CORBA::Short theShapeType, + GEOM::shape_state theState) +{ + beginService( " GEOM_Superv_i::GetShapesOnShapeAsCompound" ); + MESSAGE("GEOM_Superv_i::GetShapesOnShapeAsCompound"); + getShapesOp(); + GEOM::GEOM_Object_ptr anObj = + myShapesOp->GetShapesOnShapeAsCompound(theCheckShape, theShape, theShapeType, theState); + endService( " GEOM_Superv_i::GetShapesOnShapeAsCompound" ); + return anObj; +} + + //=============================== BlocksOperations ============================ //============================================================================= // MakeQuad4Vertices: @@ -2333,6 +2563,21 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArcCenter (GEOM::GEOM_Object_ptr theCen return anObj; } +//============================================================================= +// MakeArcOfEllipse: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeArcOfEllipse (GEOM::GEOM_Object_ptr thePnt1, + GEOM::GEOM_Object_ptr thePnt2, + GEOM::GEOM_Object_ptr thePnt3) +{ + beginService( " GEOM_Superv_i::MakeArcOfEllipse" ); + MESSAGE("GEOM_Superv_i::MakeArcOfEllipse"); + getCurvesOp(); + GEOM::GEOM_Object_ptr anObj = myCurvesOp->MakeArcOfEllipse(thePnt1, thePnt2, thePnt3); + endService( " GEOM_Superv_i::MakeArcOfEllipse" ); + return anObj; +} + //============================================================================= // MakePolyline: //============================================================================= @@ -2406,6 +2651,24 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeSketcher (const char* theCommand, return NULL; } +//============================================================================= +// Make3DSketcher: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::Make3DSketcher ( GEOM::GEOM_List_ptr theCoordinates) +{ + beginService( " GEOM_Superv_i::Make3DSketcher" ); + MESSAGE("GEOM_Superv_i::Make3DSketcher"); + if (GEOM_List_i* aListImpl = + dynamic_cast*>(GetServant(theCoordinates, myPOA).in())) { + getCurvesOp(); + GEOM::GEOM_Object_ptr anObj = myCurvesOp->Make3DSketcher(aListImpl->GetList()); + endService( " GEOM_Superv_i::Make3DSketcher" ); + return anObj; + } + endService( " GEOM_Superv_i::Make3DSketcher" ); + return NULL; +} + //=============================== LocalOperations ============================= //============================================================================= // MakeFilletAll: @@ -2505,6 +2768,26 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFilletFacesR1R2 (GEOM::GEOM_Object_ptr return NULL; } +//============================================================================= +// MakeFillet2D: +//============================================================================= +GEOM::GEOM_Object_ptr GEOM_Superv_i::MakeFillet2D (GEOM::GEOM_Object_ptr theShape, + CORBA::Double theR, + GEOM::GEOM_List_ptr theVertexes) +{ + beginService( " GEOM_Superv_i::MakeFillet2D" ); + MESSAGE("GEOM_Superv_i::MakeFillet2D"); + if (GEOM_List_i* aListImplV = + dynamic_cast*>(GetServant(theVertexes, myPOA).in())) { + getLocalOp(); + GEOM::GEOM_Object_ptr anObj = myLocalOp->MakeFillet2D(theShape, theR, aListImplV->GetList()); + endService( " GEOM_Superv_i::MakeFillet2D" ); + return anObj; + } + endService( " GEOM_Superv_i::MakeFillet2D" ); + return NULL; +} + //============================================================================= // MakeChamferAll: //============================================================================= diff --git a/src/GEOM_I_Superv/GEOM_Superv_i.hh b/src/GEOM_I_Superv/GEOM_Superv_i.hh index 3cb1ffd25..b34c13214 100644 --- a/src/GEOM_I_Superv/GEOM_Superv_i.hh +++ b/src/GEOM_I_Superv/GEOM_Superv_i.hh @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef __GEOM_SUPERV_I_H__ #define __GEOM_SUPERV_I_H__ @@ -187,6 +189,20 @@ public: CORBA::Double theDZ); GEOM::GEOM_Object_ptr MakeBoxTwoPnt (GEOM::GEOM_Object_ptr thePnt1, GEOM::GEOM_Object_ptr thePnt2); + GEOM::GEOM_Object_ptr MakeFaceHW (CORBA::Double theH, + CORBA::Double theW, + CORBA::Short theOrientation); + GEOM::GEOM_Object_ptr MakeFaceObjHW (GEOM::GEOM_Object_ptr theObj, + CORBA::Double theH, + CORBA::Double theW); + GEOM::GEOM_Object_ptr MakeDiskPntVecR (GEOM::GEOM_Object_ptr theCenter, + GEOM::GEOM_Object_ptr theVector, + CORBA::Double theR); + GEOM::GEOM_Object_ptr MakeDiskThreePnt (GEOM::GEOM_Object_ptr thePnt1, + GEOM::GEOM_Object_ptr thePnt2, + GEOM::GEOM_Object_ptr thePnt3); + GEOM::GEOM_Object_ptr MakeDiskR (CORBA::Double theR, + CORBA::Short theOrientation); GEOM::GEOM_Object_ptr MakeCylinderPntVecRH (GEOM::GEOM_Object_ptr thePnt, GEOM::GEOM_Object_ptr theAxis, CORBA::Double theRadius, @@ -226,6 +242,14 @@ public: GEOM::GEOM_Object_ptr MakePrismTwoPnt2Ways (GEOM::GEOM_Object_ptr theBase, GEOM::GEOM_Object_ptr thePoint1, GEOM::GEOM_Object_ptr thePoint2); + GEOM::GEOM_Object_ptr MakePrismDXDYDZ (GEOM::GEOM_Object_ptr theBase, + CORBA::Double theDX, + CORBA::Double theDY, + CORBA::Double theDZ); + GEOM::GEOM_Object_ptr MakePrismDXDYDZ2Ways (GEOM::GEOM_Object_ptr theBase, + CORBA::Double theDX, + CORBA::Double theDY, + CORBA::Double theDZ); GEOM::GEOM_Object_ptr MakePipe (GEOM::GEOM_Object_ptr theBase, GEOM::GEOM_Object_ptr thePath); GEOM::GEOM_Object_ptr MakeRevolutionAxisAngle (GEOM::GEOM_Object_ptr theBase, @@ -260,6 +284,10 @@ public: GEOM::GEOM_Object_ptr MakePipeShellsWithoutPath(const GEOM::ListOfGO& theBases, const GEOM::ListOfGO& theLocations); + GEOM::GEOM_Object_ptr MakePipeBiNormalAlongVector (GEOM::GEOM_Object_ptr theBase, + GEOM::GEOM_Object_ptr thePath, + GEOM::GEOM_Object_ptr theVec); + //-----------------------------------------------------------// // BooleanOperations // //-----------------------------------------------------------// @@ -314,6 +342,10 @@ public: GEOM::GEOM_Object_ptr theVector); GEOM::GEOM_Object_ptr TranslateVectorCopy (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theVector); + GEOM::GEOM_Object_ptr TranslateVectorDistance (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr theVector, + CORBA::Double theDistance, + CORBA::Boolean theCopy); GEOM::GEOM_Object_ptr MultiTranslate1D (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theVector, CORBA::Double theStep, @@ -373,12 +405,27 @@ public: GEOM::GEOM_Object_ptr ScaleShapeCopy (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr thePoint, CORBA::Double theFactor); + GEOM::GEOM_Object_ptr ScaleShapeAlongAxes (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePoint, + CORBA::Double theFactorX, + CORBA::Double theFactorY, + CORBA::Double theFactorZ); + GEOM::GEOM_Object_ptr ScaleShapeAlongAxesCopy (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePoint, + CORBA::Double theFactorX, + CORBA::Double theFactorY, + CORBA::Double theFactorZ); GEOM::GEOM_Object_ptr PositionShape (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theStartLCS, GEOM::GEOM_Object_ptr theEndLCS); GEOM::GEOM_Object_ptr PositionShapeCopy (GEOM::GEOM_Object_ptr theObject, GEOM::GEOM_Object_ptr theStartLCS, GEOM::GEOM_Object_ptr theEndLCS); + GEOM::GEOM_Object_ptr PositionAlongPath (GEOM::GEOM_Object_ptr theObject, + GEOM::GEOM_Object_ptr thePath, + CORBA::Double theDistance, + CORBA::Boolean theCopy, + CORBA::Boolean theReverse); //-----------------------------------------------------------// // ShapesOperations // @@ -410,6 +457,17 @@ public: CORBA::Long NumberOfEdges (GEOM::GEOM_Object_ptr theShape); GEOM::GEOM_Object_ptr ChangeOrientation (GEOM::GEOM_Object_ptr theShape); + GEOM::GEOM_List_ptr GetShapesOnShape (GEOM::GEOM_Object_ptr theCheckShape, + GEOM::GEOM_Object_ptr theShape, + CORBA::Short theShapeType, + GEOM::shape_state theState); + GEOM::GEOM_Object_ptr GetShapesOnShapeAsCompound + (GEOM::GEOM_Object_ptr theCheckShape, + GEOM::GEOM_Object_ptr theShape, + CORBA::Short theShapeType, + GEOM::shape_state theState); + + //-----------------------------------------------------------// // BlocksOperations // //-----------------------------------------------------------// @@ -506,11 +564,15 @@ public: GEOM::GEOM_Object_ptr thePnt1, GEOM::GEOM_Object_ptr thePnt2, CORBA::Boolean theSense); + GEOM::GEOM_Object_ptr MakeArcOfEllipse (GEOM::GEOM_Object_ptr thePnt1, + GEOM::GEOM_Object_ptr thePnt2, + GEOM::GEOM_Object_ptr thePnt3); GEOM::GEOM_Object_ptr MakePolyline (GEOM::GEOM_List_ptr thePoints); GEOM::GEOM_Object_ptr MakeSplineBezier (GEOM::GEOM_List_ptr thePoints); GEOM::GEOM_Object_ptr MakeSplineInterpolation (GEOM::GEOM_List_ptr thePoints); GEOM::GEOM_Object_ptr MakeSketcher (const char* theCommand, GEOM::GEOM_List_ptr theWorkingPlane); + GEOM::GEOM_Object_ptr Make3DSketcher (GEOM::GEOM_List_ptr theCoordinates); //-----------------------------------------------------------// // LocalOperations // @@ -525,6 +587,8 @@ public: GEOM::GEOM_List_ptr theFaces); GEOM::GEOM_Object_ptr MakeFilletFacesR1R2 (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR1, CORBA::Double theR2, GEOM::GEOM_List_ptr theFaces); + GEOM::GEOM_Object_ptr MakeFillet2D (GEOM::GEOM_Object_ptr theShape, CORBA::Double theR, + GEOM::GEOM_List_ptr theVertexes); GEOM::GEOM_Object_ptr MakeChamferAll (GEOM::GEOM_Object_ptr theShape, CORBA::Double theD); GEOM::GEOM_Object_ptr MakeChamferEdge (GEOM::GEOM_Object_ptr theShape, CORBA::Double theD1, CORBA::Double theD2, diff --git a/src/GEOM_I_Superv/Makefile.am b/src/GEOM_I_Superv/Makefile.am index 4a97945b0..69edb9a10 100644 --- a/src/GEOM_I_Superv/Makefile.am +++ b/src/GEOM_I_Superv/Makefile.am @@ -1,38 +1,38 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM GEOM : implementaion of GEOM_Superv.idl -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.in # Author : Patrick GOLDBRONN (CEA) # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - # Libraries targets - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = +salomeinclude_HEADERS = \ + GEOM_Superv_i.hh \ + GEOM_List_i.hh # Libraries targets lib_LTLIBRARIES = libGEOM_SupervEngine.la @@ -40,29 +40,26 @@ lib_LTLIBRARIES = libGEOM_SupervEngine.la dist_libGEOM_SupervEngine_la_SOURCES = \ GEOM_Superv_i.cc -#LIB_SERVER_IDL = SALOMEDS.idl SALOMEDS_Attributes.idl SALOME_Component.idl SALOME_Exception.idl \ -# SALOME_GenericObj.idl SALOME_ModuleCatalog.idl SALOME_Session.idl GEOM_Gen.idl GEOM_Superv.idl +# additional information to compile and link file -# additionnal information to compil and link file -libGEOM_SupervEngine_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ - $(QT_INCLUDES) \ - $(KERNEL_CXXFLAGS) \ - $(BOOST_CPPFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOM \ - -I$(srcdir)/../GEOM_I \ - -I$(srcdir)/../GEOMAlgo \ - -I$(top_builddir)/idl \ +libGEOM_SupervEngine_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ + $(QT_INCLUDES) \ + $(KERNEL_CXXFLAGS) \ + $(BOOST_CPPFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOM \ + -I$(srcdir)/../GEOM_I \ + -I$(srcdir)/../GEOMAlgo \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libGEOM_SupervEngine_la_LDFLAGS = \ - ../GEOM_I/libGEOMEngine.la \ +libGEOM_SupervEngine_la_LDFLAGS = \ + $(CORBA_LIBS) \ $(KERNEL_LDFLAGS) -lSalomeGenericObj -lSalomeNS -lSalomeLifeCycleCORBA -lSalomeContainer -lSalomeDSClient \ - $(CORBA_LIBS) \ $(STDLIB) diff --git a/src/GEOM_SWIG/GEOM_Nut.py b/src/GEOM_SWIG/GEOM_Nut.py index 3a1f90adb..d5624c17f 100755 --- a/src/GEOM_SWIG/GEOM_Nut.py +++ b/src/GEOM_SWIG/GEOM_Nut.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,13 +17,13 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ##################################################################### #Created :17/02/2005 #Auhtor :MASLOV Eugeny, KOVALTCHUK Alexey ##################################################################### - +# import geompy import salome import os diff --git a/src/GEOM_SWIG/GEOM_ObjectInfo.py b/src/GEOM_SWIG/GEOM_ObjectInfo.py new file mode 100644 index 000000000..a5c57e9e0 --- /dev/null +++ b/src/GEOM_SWIG/GEOM_ObjectInfo.py @@ -0,0 +1,60 @@ +# GEOM GEOM_SWIG : binding of C++ omplementaion with Python +# +# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# +# +# File : GEOM_ObjectInfo.py +# Author : Michael ZORIN +# Module : GEOM +# $Header: + +import salome +import geompy + +geom = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM") + +# Create several objects +obj1 = geompy.MakeVertex(0.,0.,0.) +obj2 = geompy.MakeCircleR(150.) +obj3 = geompy.MakeBoxDXDYDZ(300.,400.,500.) +obj4 = geompy.MakeCylinderRH(100.,200.) +ShapeListCompound = [] +ShapeListCompound.append(obj3) +ShapeListCompound.append(obj4) +obj5 = geompy.MakeCompound(ShapeListCompound) + +obj1_entry = geompy.addToStudy(obj1, "Object1") +obj2_entry = geompy.addToStudy(obj2, "Object2") +obj3_entry = geompy.addToStudy(obj3, "Object3") +obj4_entry = geompy.addToStudy(obj4, "Object4") +obj5_entry = geompy.addToStudy(obj5, "Object5") + +# Get information about objects +hasInfo = geom.hasObjectInfo() +print "Check if GEOM module provides information about its objects: ", hasInfo +if hasInfo == True: + print "Information about first object: ", geom.getObjectInfo(salome.myStudyId, obj1_entry) + print "Information about second object: ", geom.getObjectInfo(salome.myStudyId, obj2_entry) + print "Information about third object: ", geom.getObjectInfo(salome.myStudyId, obj3_entry) + print "Information about fourth object: ", geom.getObjectInfo(salome.myStudyId, obj4_entry) + print "Information about fifth object: ", geom.getObjectInfo(salome.myStudyId, obj5_entry) + +salome.sg.updateObjBrowser(1) diff --git a/src/GEOM_SWIG/GEOM_Partition1.py b/src/GEOM_SWIG/GEOM_Partition1.py index bc8e4c138..14b7be011 100755 --- a/src/GEOM_SWIG/GEOM_Partition1.py +++ b/src/GEOM_SWIG/GEOM_Partition1.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -18,17 +20,13 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# # File : GEOM_Partition1.py # Module : GEOM - -#%Make geometry (like CEA script (A1)) using Partition algorithm% # appel: # import alveole_3D_01_GEOM # reload(alveole_3D_01_GEOM) - # -- Rayon de la bariere - +# barier_height = 7.0 barier_radius = 5.6 / 2 # Rayon de la bariere colis_radius = 1.0 / 2 # Rayon du colis diff --git a/src/GEOM_SWIG/GEOM_Partition2.py b/src/GEOM_SWIG/GEOM_Partition2.py index fd66fa72c..14375f6c9 100755 --- a/src/GEOM_SWIG/GEOM_Partition2.py +++ b/src/GEOM_SWIG/GEOM_Partition2.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -18,19 +20,14 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# # File : GEOM_Partition2.py # Module : GEOM - -#%Make geometry (like CEA script (A2)) using Partition algorithm% # import callovo_01_GEOM # reload(callovo_01_GEOM) - - # -------------------------------------------- # Geometrie avec une galerie perpendiculaire # -------------------------------------------- - +# import geompy geom = geompy.geom diff --git a/src/GEOM_SWIG/GEOM_Partition3.py b/src/GEOM_SWIG/GEOM_Partition3.py index 462c8ac7f..c613a4b20 100755 --- a/src/GEOM_SWIG/GEOM_Partition3.py +++ b/src/GEOM_SWIG/GEOM_Partition3.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -18,15 +20,11 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# # File : GEOM_Partition3.py # Module : GEOM - -#%Make geometry (like CEA script (A2)) using Partition algorithm% # import callovo_01_GEOM # reload(callovo_01_GEOM) - - +# import geompy geom = geompy.geom diff --git a/src/GEOM_SWIG/GEOM_Partition4.py b/src/GEOM_SWIG/GEOM_Partition4.py index 348d6b45b..6c5924711 100755 --- a/src/GEOM_SWIG/GEOM_Partition4.py +++ b/src/GEOM_SWIG/GEOM_Partition4.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -18,17 +20,13 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# # File : GEOM_Partition4.py # Module : GEOM - -#%Make geometry (like CEA script (A3)) using Partition algorithm% # import couplex2_01_GEOM # reload(couplex2_01_GEOM) - # Dimensions de alveolus # Parall‰pipˆde rectangle de taille alDx, alDy, alDz - +# alDx = 2.5 alDy = 20.0 alDz = 2.5 diff --git a/src/GEOM_SWIG/GEOM_Partition5.py b/src/GEOM_SWIG/GEOM_Partition5.py index 00ce525d5..69c621a5f 100755 --- a/src/GEOM_SWIG/GEOM_Partition5.py +++ b/src/GEOM_SWIG/GEOM_Partition5.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -18,16 +20,12 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# # File : GEOM_Partition5.py # Module : GEOM - -#%Make geometry (like CEA script (A4)) using Partition algorithm% # import gallery_01_GEOM # reload(gallery_01_GEOM) - # -- Import geompy pour piloter GEOM par script - +# import geompy geom = geompy.geom diff --git a/src/GEOM_SWIG/GEOM_Sketcher.py b/src/GEOM_SWIG/GEOM_Sketcher.py index dc8bf692d..7ea56b3cb 100644 --- a/src/GEOM_SWIG/GEOM_Sketcher.py +++ b/src/GEOM_SWIG/GEOM_Sketcher.py @@ -1,31 +1,30 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : GEOM_Sketcher.py # Author : Damien COQUERET, Open CASCADE # Module : GEOM # $Header$ - +# import geompy #SKETCHER INFOS diff --git a/src/GEOM_SWIG/GEOM_Spanner.py b/src/GEOM_SWIG/GEOM_Spanner.py index 2e410ca9c..f95ab64e3 100644 --- a/src/GEOM_SWIG/GEOM_Spanner.py +++ b/src/GEOM_SWIG/GEOM_Spanner.py @@ -1,6 +1,7 @@ -# GEOM GEOM_SWIG : binding of C++ implementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 CEA +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -16,17 +17,19 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# GEOM GEOM_SWIG : binding of C++ implementaion with Python # File : GEOM_Spanner.py # Author : Julia DOROVSKIKH # Module : GEOM # $Header$ - +# ! Please, if you edit this example file, update also +# ! GEOM_SRC/doc/salome/gui/GEOM/input/tui_test_spanner.doc +# ! as some sequences of symbols from this example are used during +# ! documentation generation to identify certain places of this file ############# MakeSpanner ############# - +# def MakeSpanner (geompy, math, isBlocksTest = 0, isMeshTest = 0, smesh = None): ### Variables ### @@ -400,8 +403,8 @@ def MakeSpanner (geompy, math, isBlocksTest = 0, isMeshTest = 0, smesh = None): print algoReg.GetName() print algoReg.GetId() algoReg.SetName("Regular_1D") - - + + hypNbSeg3 = algoReg.NumberOfSegments(3) print hypNbSeg3.GetName() print hypNbSeg3.GetId() @@ -419,7 +422,7 @@ def MakeSpanner (geompy, math, isBlocksTest = 0, isMeshTest = 0, smesh = None): algoQuad.SetName("Quadrangle_2D") print "-------------------------- add hypothesis to the Middle Block" - + print "-------------------------- LocalLength" algoRegMb = mesh.Segment(BlockMh) hypLen1 = algoRegMb.LocalLength(10) @@ -436,14 +439,14 @@ def MakeSpanner (geompy, math, isBlocksTest = 0, isMeshTest = 0, smesh = None): print hypPropE1.GetId() smesh.SetName(hypPropE1, "Propagation hypothesis") smesh.SetName(algoRegE1.GetSubMesh(), "SubMesh Edge 1 of Top Face") - + algoRegE2 = mesh.Segment(Edge2) hypPropE2 = algoRegE2.Propagation() print hypPropE2.GetName() print hypPropE2.GetId() smesh.SetName(hypPropE2, "Propagation hypothesis") smesh.SetName(algoRegE2.GetSubMesh(), "SubMesh Edge 2 of Top Face") - + print "-------------------------- compute the mesh" mesh.Compute() diff --git a/src/GEOM_SWIG/GEOM_TestAll.py b/src/GEOM_SWIG/GEOM_TestAll.py index 4c2d3675a..317f1dc40 100644 --- a/src/GEOM_SWIG/GEOM_TestAll.py +++ b/src/GEOM_SWIG/GEOM_TestAll.py @@ -1,7 +1,7 @@ -# GEOM GEOM_SWIG : binding of C++ omplementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 CEA - +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -17,15 +17,18 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# GEOM GEOM_SWIG : binding of C++ omplementaion with Python # File : GEOM_usinggeom.py # Author : Damien COQUERET, Open CASCADE # Module : GEOM -# $Header$ - - +# +# ! Please, if you edit this example file, update also +# ! GEOM_SRC/doc/salome/gui/GEOM/input/tui_test_all.doc +# ! as some sequences of symbols from this example are used during +# ! documentation generation to identify certain places of this file +# def TestAll (geompy, math): #Create base Variables @@ -76,18 +79,20 @@ def TestAll (geompy, math): vxyz = geompy.MakeVectorDXDYDZ(100., 100., 100.) #(3 Doubles)->GEOM_Object_ptr #Create local coordinate systems - cs1 = geompy.MakeMarker(50,50,50, 1,0,0, 0,1,0) - cs2 = geompy.MakeMarker(70,80,10, 1,0,1, 1,1,0) + cs1 = geompy.MakeMarker(50,50,50, 1,0,0, 0,1,0) #(9 Doubles)->GEOM_Object_ptr + cs2 = geompy.MakeMarker(70,80,10, 1,0,1, 1,1,0) #(9 Doubles)->GEOM_Object_ptr + cs3 = geompy.MakeMarkerPntTwoVec(pz, vxy, vz) #(3 GEOM_Object_ptr)->GEOM_Object_ptr #Create base geometry 2D Line = geompy.MakeLineTwoPnt(p0, pxyz) #(2 GEOM_Object_ptr)->GEOM_Object_ptr Line1 = geompy.MakeLine(pz, vxy) #(2 GEOM_Object_ptr)->GEOM_Object_ptr - Line2 = geompy.MakeLineTwoPnt(pxyz, pz) #(2 GEOM_Object_ptr)->GEOM_Object_ptr + Line2 = geompy.MakeLineTwoPnt(pxyz, pz) #(2 GEOM_Object_ptr)->GEOM_Object_ptr Plane = geompy.MakePlane(pz, vxyz, trimsize) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr Plane1 = geompy.MakePlaneThreePnt(px, pz, p200, trimsize) #(4 Doubles)->GEOM_Object_ptr Arc = geompy.MakeArc(py, pz, px) #(3 GEOM_Object_ptr)->GEOM_Object_ptr Arc2 = geompy.MakeArcCenter(py, pz, px,0) #(3 GEOM_Object_ptr,Boolean)->GEOM_Object_ptr + Arc3 = geompy.MakeArcOfEllipse(p0, px, pz) #(3 GEOM_Object_ptr,Boolean)->GEOM_Object_ptr Circle = geompy.MakeCircle(p0, vz, radius1) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr Circle1 = geompy.MakeCircleThreePnt(p0, pxyz, px) #(3 GEOM_Object_ptr)->GEOM_Object_ptr Circle2 = geompy.MakeCircleCenter2Pnt(p0, pxyz, py) #(3 GEOM_Object_ptr)->GEOM_Object_ptr @@ -97,12 +102,16 @@ def TestAll (geompy, math): Interpol = geompy.MakeInterpol([px, py, p200, pxyz]) #(List of GEOM_Object_ptr)->GEOM_Object_ptr Sketcher = geompy.MakeSketcher("Sketcher:F -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WW", [100,0,0, 1,1,1, -1,1,0]) #(String, List of Doubles)->GEOM_Object_ptr + Sketcher3d = geompy.Make3DSketcher([0,0,0, 50,50,50, 0,50,50, 10,0,0]) #Test point on curve creation p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr #Test point on lines intersection - pLine = geompy.MakeVertexOnLinesIntersection( Line1, Line2 ) + p_on_l1l2 = geompy.MakeVertexOnLinesIntersection(Line1, Line2) #(2 GEOM_Object_ptr)->GEOM_Object_ptr + + #Test tangent on curve creation + tan_on_arc = geompy.MakeTangentOnCurve(Arc, 0.7) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr #Create base geometry 3D Box = geompy.MakeBoxTwoPnt(p0, p200) #(2 GEOM_Object_ptr)->GEOM_Object_ptr @@ -131,6 +140,11 @@ def TestAll (geompy, math): Face1 = geompy.MakeFaceWires([Wire, Sketcher], WantPlanarFace) #(List of GEOM_Object_ptr, Boolean)->GEOM_Object_ptr Face2 = geompy.MakeFace(Sketcher, WantPlanarFace) + Face3 = geompy.MakeFaceHW (100., 200., 1) #(2 Doubles, 1 Int)->GEOM_Object_ptr + Face4 = geompy.MakeFaceObjHW (vz, 200., 100.) #(1 GEOM_Object_ptr, 2 Doubles)->GEOM_Object_ptr + Disk = geompy.MakeDiskPntVecR (p0, vz, radius) #(2 GEOM_Object_ptr, 1 Double)->GEOM_Object_ptr + Disk2 = geompy.MakeDiskThreePnt(p0, p200, pz) #(3 GEOM_Object_ptr)->GEOM_Object_ptr + Disk3 = geompy.MakeDiskR(100., 1) #(1 Doubles, 1 Int)->GEOM_Object_ptr Shell = geompy.MakeShell([Face, Face1]) #(List of GEOM_Object_ptr)->GEOM_Object_ptr Prism1 = geompy.MakePrism(Face2, p0, pxyz) #(3 GEOM_Object_ptr)->GEOM_Object_ptr @@ -148,19 +162,24 @@ def TestAll (geompy, math): i = i + 1 Compound = geompy.MakeCompound(ShapeListCompound) #(List of GEOM_Object_ptr)->GEOM_Object_ptr + #Test point on surface creation + p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8) #(GEOM_Object_ptr, Double, Double)->GEOM_Object_ptr + # Test plane from existing face creation Plane2 = geompy.MakePlaneFace(Face, trimsize) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr #ShapeList for Sewing S = geompy.MakeRotation(Face, vxy, angle1) - + #Test Line on Faces Intersection - Line3 = geompy.MakeLineTwoFaces( prism1_faces[0], prism1_faces[1]) #(2 GEOM_Object_ptr)->GEOM_Object_ptr + Line3 = geompy.MakeLineTwoFaces(prism1_faces[0], prism1_faces[1]) #(2 GEOM_Object_ptr)->GEOM_Object_ptr #Create advanced objects Copy = geompy.MakeCopy(Box) #(GEOM_Object_ptr)->GEOM_Object_ptr Prism = geompy.MakePrismVecH(Face, vz, 100.0) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr Prism2Ways = geompy.MakePrismVecH2Ways(Face, vz, 10.0) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr + PrismDXDYDZ= geompy.MakePrismDXDYDZ(Face2, 10, 20, 100)#(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr + PrismDXDYDZ2Ways= geompy.MakePrismDXDYDZ2Ways(Face, 30, -20, 200)#(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr Revolution = geompy.MakeRevolution(Face, vz, angle2) # Revolution2Ways = geompy.MakeRevolution(Face, vz, angle1) # Filling = geompy.MakeFilling(Compound, mindeg, maxdeg, @@ -171,14 +190,25 @@ def TestAll (geompy, math): #Transform objects Translation = geompy.MakeTranslationTwoPoints(Box, px, pz) #(3 GEOM_Object_ptr)->GEOM_Object_ptr TranslVect = geompy.MakeTranslationVector(Box, vxyz) #(2 GEOM_Object_ptr)->GEOM_Object_ptr + TranslVectD = geompy.MakeTranslationVectorDistance(Box, vxyz, 50.0) #(2 GEOM_Object_ptr)->GEOM_Object_ptr Rotation = geompy.MakeRotation(Box, vz, angle1) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr RotatPnt = geompy.MakeRotationThreePoints(Box, px, py, pz) #(4 GEOM_Object_ptr)->GEOM_Object_ptr - Scale = geompy.MakeScaleTransform(Box, p0, factor) # - Mirror = geompy.MakeMirrorByPlane(Box, Plane) #(2 GEOM_Object_ptr)->GEOM_Object_ptr - MirrorAxis = geompy.MakeMirrorByAxis(Box, Line1) # - MirrorPnt = geompy.MakeMirrorByPoint(Box, p200) # - Position = geompy.MakePosition(Box, cs1, cs2) #(3 GEOM_Object_ptr)->GEOM_Object_ptr - Offset = geompy.MakeOffset(Box, 10.) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr + + #Scale by factor relatively given point + Scale1 = geompy.MakeScaleTransform(Box, pxyz, factor) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr + #Scale by factor relatively the origin of global CS + Scale2 = geompy.MakeScaleTransform(Box, None, factor) # + #Scale along axes of global CS by different factors. Scale relatively given point + Scale3 = geompy.MakeScaleAlongAxes(Box, pxyz, 1.5, 0.5, 3) #(2 GEOM_Object_ptr, 3 Doubles)->GEOM_Object_ptr + #Scale along axes of global CS by different factors. Scale relatively the origin of global CS + Scale4 = geompy.MakeScaleAlongAxes(Box, None, 1.5, 0.5, 3) # + + Mirror = geompy.MakeMirrorByPlane(Box, Plane) #(2 GEOM_Object_ptr)->GEOM_Object_ptr + MirrorAxis = geompy.MakeMirrorByAxis(Box, Line1) # + MirrorPnt = geompy.MakeMirrorByPoint(Box, p200) # + Position = geompy.MakePosition(Box, cs1, cs2) #(3 GEOM_Object_ptr)->GEOM_Object_ptr + Position2 = geompy.PositionAlongPath(Box, Arc, 0.5, 1, 0) #(2 GEOM_Object_ptr, 1 Double, 2 Bool)->GEOM_Object_ptr + Offset = geompy.MakeOffset(Box, 10.) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr Orientation = geompy.ChangeOrientation(Box) #IDList for Fillet/Chamfer @@ -205,6 +235,7 @@ def TestAll (geompy, math): IDlist_f = [f_ind_1, f_ind_2] #Local operations + Fillet2d = geompy.MakeFillet2D(Face3, radius, [4, 7, 9]) #(GEOM_Object_ptr, Double, ListOfLong)->GEOM_Object_ptr Fillet = geompy.MakeFillet (Prism, radius, ShapeTypeEdge, IDlist_e) #(GEOM_Object_ptr, Double, Short, ListOfLong)->GEOM_Object_ptr Fillet2 = geompy.MakeFilletR1R2 (Prism, 7., 13., ShapeTypeEdge, @@ -217,6 +248,8 @@ def TestAll (geompy, math): IDlist_e) #(GEOM_Object_ptr, 2 Doubles, ListOfLong)->GEOM_Object_ptr Chamfer4 = geompy.MakeChamferFacesAD(Prism, d1, 20. * math.pi / 180., IDlist_f) #(GEOM_Object_ptr, 2 Doubles, ListOfLong)->GEOM_Object_ptr + #End of Local operations + #Create Patterns MultiTrans1D = geompy.MakeMultiTranslation1D(Fillet, vz, step1, nbtimes1) MultiTrans2D = geompy.MakeMultiTranslation2D(Fillet, vz, step1, nbtimes1, vy, step2, nbtimes2) @@ -228,6 +261,9 @@ def TestAll (geompy, math): CDG = geompy.MakeCDG(Prism) #(GEOM_Object_ptr)->GEOM_Object_ptr Archimede = geompy.Archimede(Box, weight, waterdensity, meshingdeflection) #(GEOM_Object_ptr, 3 Doubles)->GEOM_Object_ptr + mindist = geompy.MinDistanceComponents(TranslVect, Mirror) #(2 GEOM_Object_ptr)->4 Doubles + print "Minumal distance between TranslVect and Mirror is", mindist[0], + print "by components:", mindist[1], ",", mindist[2], ",", mindist[3] CheckShape = geompy.CheckShape(Prism) #(GEOM_Object_ptr)->Boolean print "CheckShape(Prism) = ", CheckShape @@ -236,14 +272,12 @@ def TestAll (geompy, math): Partition1 = geompy.MakeHalfPartition(Box, Plane) #(2 GEOM_Object_ptr)->GEOM_Object_ptr #Add In Study - id_p0 = geompy.addToStudy(p0, "Vertex 0") id_px = geompy.addToStudy(px, "Vertex X") id_py = geompy.addToStudy(py, "Vertex Y") id_pz = geompy.addToStudy(pz, "Vertex Z") id_pxyz = geompy.addToStudy(pxyz, "Vertex XYZ") id_p200 = geompy.addToStudy(p200, "Vertex 200") - id_pLine = geompy.addToStudy(pLine, "Vertex on Lines Intersection") id_vx = geompy.addToStudy(vx, "Vector X") id_vy = geompy.addToStudy(vy, "Vector Y") @@ -253,6 +287,7 @@ def TestAll (geompy, math): id_cs1 = geompy.addToStudy(cs1, "CS 50,50,50, 1,0,0, 0,1,0") id_cs2 = geompy.addToStudy(cs2, "CS 70,80,10, 1,0,1, 1,1,0") + id_cs3 = geompy.addToStudy(cs3, "CS: pz, vxy, vz") id_Line = geompy.addToStudy(Line, "Line") id_Line1 = geompy.addToStudy(Line1, "Line by point and vector") @@ -261,6 +296,8 @@ def TestAll (geompy, math): id_Plane1 = geompy.addToStudy(Plane1, "Plane by 3 points") id_Arc = geompy.addToStudy(Arc, "Arc") + id_Arc2 = geompy.addToStudy(Arc2, "Arc2") + id_Arc3 = geompy.addToStudy(Arc3, "Arc3") id_Circle = geompy.addToStudy(Circle, "Circle") id_Circle1 = geompy.addToStudy(Circle1, "Circle by 3 points") id_Circle2 = geompy.addToStudy(Circle2, "Circle by center and 2 points") @@ -269,8 +306,12 @@ def TestAll (geompy, math): id_Bezier = geompy.addToStudy(Bezier, "Bezier") id_Interpol = geompy.addToStudy(Interpol, "Interpol") id_Sketcher = geompy.addToStudy(Sketcher, "Sketcher") + id_Sketcher3d = geompy.addToStudy(Sketcher3d, "Sketcher 3D") - id_p_on_arc = geompy.addToStudy(p_on_arc, "Vertex on Arc") + id_p_on_arc = geompy.addToStudy(p_on_arc, "Vertex on Arc (0.25)") + id_p_on_l1l2 = geompy.addToStudy(p_on_l1l2, "Vertex on Lines Intersection") + + id_tan_on_arc = geompy.addToStudy(tan_on_arc, "Tangent on Arc (0.7)") id_Box = geompy.addToStudy(Box, "Box") id_Box1 = geompy.addToStudy(Box1, "Box 10x20x30") @@ -295,8 +336,15 @@ def TestAll (geompy, math): id_Face = geompy.addToStudy(Face, "Face") id_Face1 = geompy.addToStudy(Face1, "Face from two wires") id_Face2 = geompy.addToStudy(Face2, "Face from Sketcher") + id_Face3 = geompy.addToStudy(Face3, "Face Height Width") + id_Face4 = geompy.addToStudy(Face4, "Face Plane_HW") + id_Disk = geompy.addToStudy(Disk, "Disk PntVecR") + id_Disk2 = geompy.addToStudy(Disk2, "Disk Three Points") + id_Disk3 = geompy.addToStudy(Disk3, "Disk OXY Radius") id_Shell = geompy.addToStudy(Shell, "Shell") + id_p_on_face = geompy.addToStudy(p_on_face, "Vertex on Face (0.1, 0.8)") + id_Prism1 = geompy.addToStudy(Prism1, "Prism by Two Pnt") id_Shell1 = geompy.addToStudy(Shell1, "Shell from Prism1 faces") id_Solid = geompy.addToStudy(Solid, "Solid") @@ -307,6 +355,8 @@ def TestAll (geompy, math): id_Copy = geompy.addToStudy(Copy, "Copy") id_Prism = geompy.addToStudy(Prism, "Prism") id_Prism2Ways = geompy.addToStudy(Prism2Ways, "Prism2Ways") + id_PrismDXDYDZ= geompy.addToStudy(PrismDXDYDZ,"PrismDXDYDZ") + id_PrismDXDYDZ2Ways= geompy.addToStudy(PrismDXDYDZ2Ways,"PrismDXDYDZ2Ways") id_Revolution = geompy.addToStudy(Revolution, "Revolution") id_Revolution2Ways = geompy.addToStudy(Revolution2Ways, "Revolution2Ways") id_Filling = geompy.addToStudy(Filling, "Filling") @@ -315,18 +365,24 @@ def TestAll (geompy, math): id_Translation = geompy.addToStudy(Translation, "Translation") id_TranslVect = geompy.addToStudy(TranslVect , "Translation along vector") + id_TranslVectD = geompy.addToStudy(TranslVectD, "Translation along vector with defined distance") id_Rotation = geompy.addToStudy(Rotation, "Rotation") id_RotatPnt = geompy.addToStudy(RotatPnt, "Rotation by three points") - id_Scale = geompy.addToStudy(Scale, "Scale") + id_Scale1 = geompy.addToStudy(Scale1, "Scale1") + id_Scale2 = geompy.addToStudy(Scale2, "Scale2") + id_Scale3 = geompy.addToStudy(Scale3, "Scale3") + id_Scale4 = geompy.addToStudy(Scale4, "Scale4") id_Mirror = geompy.addToStudy(Mirror, "Mirror by Plane") id_MirrorAxis = geompy.addToStudy(MirrorAxis, "Mirror by Axis") id_MirrorPnt = geompy.addToStudy(MirrorPnt, "Mirror by Point") id_Position = geompy.addToStudy(Position, "Positioned box") + id_Position2 = geompy.addToStudy(Position2, "Positioned box along path") id_Offset = geompy.addToStudy(Offset, "Offset") id_Orientation = geompy.addToStudy(Orientation, "Orientation") id_Fillet = geompy.addToStudy(Fillet, "Fillet") id_Fillet2 = geompy.addToStudy(Fillet2, "Fillet2") + id_Fillet2d = geompy.addToStudy(Fillet2d, "Fillet2D") id_Chamfer = geompy.addToStudy(Chamfer, "Chamfer on Edge") id_Chamfer2 = geompy.addToStudy(Chamfer2, "Chamfer on Faces") @@ -345,20 +401,40 @@ def TestAll (geompy, math): id_Partition1 = geompy.addToStudy(Partition1, "Half Partition") #Decompose objects + + # SubShape SubFace = geompy.SubShape(Box, geompy.ShapeType["FACE"], [2]) name = geompy.SubShapeName(SubFace, Box) id_SubFace = geompy.addToStudyInFather(Box, SubFace, name) + # SubShapeSorted SubFaceS = geompy.SubShapeSorted(Box, geompy.ShapeType["FACE"], [5]) nameS = geompy.SubShapeName(SubFaceS, Box) id_SubFace = geompy.addToStudyInFather(Box, SubFaceS, nameS) + # SubShapeAll SubEdgeList = geompy.SubShapeAll(SubFace, geompy.ShapeType["EDGE"]) i=0 for SubEdge in SubEdgeList : name = geompy.SubShapeName(SubEdge, SubFace) id_SubEdge = geompy.addToStudyInFather(SubFace, SubEdge, name) - #------------------- + # SubShapeAllIDs + SubEdgeIDsList = geompy.SubShapeAllIDs(SubFace, geompy.ShapeType["EDGE"]) + print "IDs of edges of SubFace:", SubEdgeIDsList, "(unsorted)" + group = geompy.CreateGroup(SubFace, geompy.ShapeType["EDGE"]) + geompy.UnionIDs(group, SubEdgeIDsList) + geompy.addToStudyInFather(SubFace, group, "Group of all edges") + + # SubShapeAllSortedIDs + SubEdgeIDsList = geompy.SubShapeAllSortedIDs(SubFace, geompy.ShapeType["EDGE"]) + print "IDs of edges of SubFace:", SubEdgeIDsList, "(sorted)" + + # GetSubShape and GetSubShapeID + for ind in SubEdgeIDsList: + edge = geompy.GetSubShape(SubFace, [ind]) + ind_e = geompy.GetSubShapeID(SubFace, edge) + if ind_e != ind: + print "Error in GetSubShape or GetSubShapeID" print "DONE" diff --git a/src/GEOM_SWIG/GEOM_TestHealing.py b/src/GEOM_SWIG/GEOM_TestHealing.py index 1ae6078c9..b5f4d688a 100644 --- a/src/GEOM_SWIG/GEOM_TestHealing.py +++ b/src/GEOM_SWIG/GEOM_TestHealing.py @@ -1,6 +1,7 @@ -# GEOM GEOM_SWIG : binding of C++ implementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 CEA +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -16,14 +17,14 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# GEOM GEOM_SWIG : binding of C++ implementaion with Python # File : GEOM_TestHealing.py # Author : Julia DOROVSKIKH # Module : GEOM # $Header$ - +# def TestProcessShape (geompy): ##Load shape from BREP file diff --git a/src/GEOM_SWIG/GEOM_TestMeasures.py b/src/GEOM_SWIG/GEOM_TestMeasures.py index d552abf06..08d341090 100644 --- a/src/GEOM_SWIG/GEOM_TestMeasures.py +++ b/src/GEOM_SWIG/GEOM_TestMeasures.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,7 +17,7 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # def TestMeasureOperations (geompy, math): @@ -152,6 +154,13 @@ def TestMeasureOperations (geompy, math): if math.fabs(Angle - 45.0) > 1e-05: print " Error: returned angle is", Angle, "while must be 45.0" + Angle = geompy.GetAngleRadians(OX, OXY) + + print "\nAngle between OX and OXY in radians = ", Angle + if math.fabs(Angle - math.pi/4) > 1e-05: + print " Error: returned angle is", Angle, "while must be pi/4" + pass + # not in one plane OXY_shift = geompy.MakeTranslation(OXY,10,-10,20) Angle = geompy.GetAngle(OX, OXY_shift) diff --git a/src/GEOM_SWIG/GEOM_TestOthers.py b/src/GEOM_SWIG/GEOM_TestOthers.py index 3bf25cf75..76d4e2811 100644 --- a/src/GEOM_SWIG/GEOM_TestOthers.py +++ b/src/GEOM_SWIG/GEOM_TestOthers.py @@ -1,6 +1,7 @@ -# GEOM GEOM_SWIG : binding of C++ implementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 CEA +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -16,14 +17,18 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# GEOM GEOM_SWIG : binding of C++ implementaion with Python # File : GEOM_TestOthers.py # Author : Julia DOROVSKIKH # Module : GEOM # $Header$ - +# ! Please, if you edit this example file, update also +# ! GEOM_SRC/doc/salome/gui/GEOM/input/tui_test_others.doc +# ! as some sequences of symbols from this example are used during +# ! documentation generation to identify certain places of this file +# import os def TestExportImport (geompy, shape): @@ -94,7 +99,11 @@ def TestExportImport (geompy, shape): def TestOtherOperations (geompy, math): - # MakeFaces + # prepare data for further operations + vx = geompy.MakeVectorDXDYDZ( 1, 0, 0) + vy = geompy.MakeVectorDXDYDZ( 0, 1, 0) + vz = geompy.MakeVectorDXDYDZ( 0, 0, 1) + p11 = geompy.MakeVertex( 0, 0, 0) p12 = geompy.MakeVertex(30, 0, 0) p13 = geompy.MakeVertex(30, 30, 0) @@ -123,6 +132,7 @@ def TestOtherOperations (geompy, math): id_w2 = geompy.addToStudy(w2, "Inside Wire") id_w3 = geompy.addToStudy(w3, "Inside Wire, translated along OZ") + # MakeFaces f12 = geompy.MakeFaces([w1, w2], 0) id_f12 = geompy.addToStudy(f12, "MakeFaces WO + WI") @@ -232,6 +242,10 @@ def TestOtherOperations (geompy, math): else: print "The Box is VALID" + # GetSame + Cone_ss = geompy.GetSame(Compound1, Cone) + id_Cone_ss = geompy.addToStudyInFather(Compound1, Cone_ss, "Cone subshape") + # test geometrical groups # CreateGroup @@ -269,6 +283,7 @@ def TestOtherOperations (geompy, math): for ObjectID in GetObjectIDs: print " ", ObjectID + # GetMainShape BoxCopy = geompy.GetMainShape(CreateGroup) # DifferenceIDs @@ -289,7 +304,8 @@ def TestOtherOperations (geompy, math): # ----------------------------------------------------------------------------- # enumeration ShapeTypeString as a dictionary # ----------------------------------------------------------------------------- - ShapeTypeString = {'0':"COMPOUND", '1':"COMPSOLID", '2':"SOLID", '3':"SHELL", '4':"FACE", '5':"WIRE", '6':"EDGE", '7':"VERTEX", '8':"SHAPE"} + ShapeTypeString = {'0':"COMPOUND", '1':"COMPSOLID", '2':"SOLID", '3':"SHELL", + '4':"FACE", '5':"WIRE", '6':"EDGE", '7':"VERTEX", '8':"SHAPE"} GroupType = geompy.GetType(CreateGroup) print "Type of elements of the created group is ", ShapeTypeString[`GroupType`] @@ -303,66 +319,67 @@ def TestOtherOperations (geompy, math): id_s0 = geompy.addToStudy(s0, "s0") v_0pp = geompy.MakeVectorDXDYDZ( 0, 1, 1) - v_0np = geompy.MakeVectorDXDYDZ( 0, -1, 1) - v_p0p = geompy.MakeVectorDXDYDZ( 1, 0, 1) - v_n0p = geompy.MakeVectorDXDYDZ(-1, 0, 1) - v_pp0 = geompy.MakeVectorDXDYDZ( 1, 1, 0) - v_np0 = geompy.MakeVectorDXDYDZ(-1, 1, 0) + #v_0np = geompy.MakeVectorDXDYDZ( 0, -1, 1) + #v_p0p = geompy.MakeVectorDXDYDZ( 1, 0, 1) + #v_n0p = geompy.MakeVectorDXDYDZ(-1, 0, 1) + #v_pp0 = geompy.MakeVectorDXDYDZ( 1, 1, 0) + #v_np0 = geompy.MakeVectorDXDYDZ(-1, 1, 0) v_0n0 = geompy.MakeVectorDXDYDZ( 0, -1, 0) - pln_0pp = geompy.MakePlane(p0, v_0pp, 300) - pln_0np = geompy.MakePlane(p0, v_0np, 300) - pln_p0p = geompy.MakePlane(p0, v_p0p, 300) - pln_n0p = geompy.MakePlane(p0, v_n0p, 300) - pln_pp0 = geompy.MakePlane(p0, v_pp0, 300) - pln_np0 = geompy.MakePlane(p0, v_np0, 300) - - #part_tool_1 = geompy.MakePartition([b0, pln_0pp, pln_0np, pln_p0p, pln_n0p, pln_pp0, pln_np0], - # [], - # [], - # [b0]) - part_tool_1 = geompy.MakePartition([b0, pln_0pp, pln_0np, pln_p0p, pln_n0p, pln_pp0, pln_np0]) - - id_part_tool_1 = geompy.addToStudy(part_tool_1, "part_tool_1") - - pt_pnt_1 = geompy.MakeVertex( 55, 0, 55) - pt_pnt_2 = geompy.MakeVertex( 0, 55, 55) - pt_pnt_3 = geompy.MakeVertex(-55, 0, 55) - pt_pnt_4 = geompy.MakeVertex( 0, -55, 55) - pt_pnt_5 = geompy.MakeVertex( 55, 55, 0) - pt_pnt_6 = geompy.MakeVertex( 55, -55, 0) - pt_pnt_7 = geompy.MakeVertex(-55, 55, 0) - pt_pnt_8 = geompy.MakeVertex(-55, -55, 0) - pt_pnt_9 = geompy.MakeVertex( 55, 0, -55) - pt_pnt_10 = geompy.MakeVertex( 0, 55, -55) - pt_pnt_11 = geompy.MakeVertex(-55, 0, -55) - pt_pnt_12 = geompy.MakeVertex( 0, -55, -55) - - pt_face_1 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_1) - pt_face_2 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_2) - pt_face_3 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_3) - pt_face_4 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_4) - pt_face_5 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_5) - pt_face_6 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_6) - pt_face_7 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_7) - pt_face_8 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_8) - pt_face_9 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_9) - pt_face_10 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_10) - pt_face_11 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_11) - pt_face_12 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_12) - + #pln_0pp = geompy.MakePlane(p0, v_0pp, 300) + #pln_0np = geompy.MakePlane(p0, v_0np, 300) + #pln_p0p = geompy.MakePlane(p0, v_p0p, 300) + #pln_n0p = geompy.MakePlane(p0, v_n0p, 300) + #pln_pp0 = geompy.MakePlane(p0, v_pp0, 300) + #pln_np0 = geompy.MakePlane(p0, v_np0, 300) + # + #part_objs = [b0, pln_0pp, pln_0np, pln_p0p, pln_n0p, pln_pp0, pln_np0] + #part_tool_1 = geompy.MakePartition(part_objs, [], [], [b0]) + #part_tool_1 = geompy.MakePartition(part_objs) + # + #id_part_tool_1 = geompy.addToStudy(part_tool_1, "part_tool_1") + # + #pt_pnt_1 = geompy.MakeVertex( 55, 0, 55) + #pt_pnt_2 = geompy.MakeVertex( 0, 55, 55) + #pt_pnt_3 = geompy.MakeVertex(-55, 0, 55) + #pt_pnt_4 = geompy.MakeVertex( 0, -55, 55) + #pt_pnt_5 = geompy.MakeVertex( 55, 55, 0) + #pt_pnt_6 = geompy.MakeVertex( 55, -55, 0) + #pt_pnt_7 = geompy.MakeVertex(-55, 55, 0) + #pt_pnt_8 = geompy.MakeVertex(-55, -55, 0) + #pt_pnt_9 = geompy.MakeVertex( 55, 0, -55) + #pt_pnt_10 = geompy.MakeVertex( 0, 55, -55) + #pt_pnt_11 = geompy.MakeVertex(-55, 0, -55) + #pt_pnt_12 = geompy.MakeVertex( 0, -55, -55) + # + #pt_face_1 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_1) + #pt_face_2 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_2) + #pt_face_3 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_3) + #pt_face_4 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_4) + #pt_face_5 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_5) + #pt_face_6 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_6) + #pt_face_7 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_7) + #pt_face_8 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_8) + #pt_face_9 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_9) + #pt_face_10 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_10) + #pt_face_11 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_11) + #pt_face_12 = geompy.GetFaceNearPoint(part_tool_1, pt_pnt_12) + # #pt_box = geompy.GetBlockNearPoint(part_tool_1, p0) - - #part_tool = geompy.MakeCompound([pt_face_1, pt_face_4, pt_face_7, pt_face_10, - # pt_face_2, pt_face_5, pt_face_8, pt_face_11, - # #pt_face_3, pt_face_6, pt_face_9, pt_face_12, pt_box]) - # pt_face_3, pt_face_6, pt_face_9, pt_face_12) + # + #comp_parts = [pt_face_1, pt_face_4, pt_face_7, pt_face_10, + # pt_face_2, pt_face_5, pt_face_8, pt_face_11, + # #pt_face_3, pt_face_6, pt_face_9, pt_face_12, pt_box] + # pt_face_3, pt_face_6, pt_face_9, pt_face_12] + #part_tool = geompy.MakeCompound(comp_parts) #id_part_tool = geompy.addToStudy(part_tool, "part_tool") - + # #part = geompy.MakePartition([s0], [part_tool]) - #part = geompy.MakePartition([s0], [ pt_face_1, pt_face_4, pt_face_7, pt_face_10, - # pt_face_2, pt_face_5, pt_face_8, pt_face_11, - # pt_face_3, pt_face_6, pt_face_9, pt_face_12, b0] ) + # + #part_tools = [pt_face_1, pt_face_4, pt_face_7, pt_face_10, + # pt_face_2, pt_face_5, pt_face_8, pt_face_11, + # pt_face_3, pt_face_6, pt_face_9, pt_face_12, b0] + #part = geompy.MakePartition([s0], part_tools) p1 = geompy.MakeVertex(50, 0, 0) p2 = geompy.MakeVertex(-50, 0, 0) @@ -371,10 +388,6 @@ def TestOtherOperations (geompy, math): p5 = geompy.MakeVertex(0, 0, 50) p6 = geompy.MakeVertex(0, 0, -50) - vx = geompy.MakeVectorDXDYDZ( 1, 0, 0) - vy = geompy.MakeVectorDXDYDZ( 0, 1, 0) - vz = geompy.MakeVectorDXDYDZ( 0, 0, 1) - plnX1 = geompy.MakePlane(p1, vx, 300) plnX2 = geompy.MakePlane(p2, vx, 300) plnY1 = geompy.MakePlane(p3, vy, 300) @@ -403,7 +416,8 @@ def TestOtherOperations (geompy, math): geompy.addToStudy(freeFacesWithoutExtra, "freeFacesWithoutExtra") # GetSharedShapes - sharedFaces = geompy.GetSharedShapes(part, freeFacesWithoutExtra, geompy.ShapeType["FACE"]) + sharedFaces = geompy.GetSharedShapes(part, freeFacesWithoutExtra, + geompy.ShapeType["FACE"]) for shFace in sharedFaces: geompy.addToStudy(shFace, "sharedFace") @@ -465,12 +479,13 @@ def TestOtherOperations (geompy, math): geompy.addToStudy(edge_i, "Edge on Plane (N = (0, -1, 0) & Location = (0, -50, 0)") # GetShapesOnPlaneWithLocationIDs - edges_on_pln_ids = geompy.GetShapesOnPlaneWithLocationIDs(blocksComp, geompy.ShapeType["EDGE"], - v_0n0, Loc, geompy.GEOM.ST_ON) + edges_on_pln_ids = geompy.GetShapesOnPlaneWithLocationIDs( + blocksComp, geompy.ShapeType["EDGE"], v_0n0, Loc, geompy.GEOM.ST_ON) group_edges_on_pln = geompy.CreateGroup(blocksComp, geompy.ShapeType["EDGE"]) geompy.UnionIDs(group_edges_on_pln, edges_on_pln_ids) - geompy.addToStudy(group_edges_on_pln, "Group of edges on Plane (N = (0, -1, 0) & Location = (0, -50, 0))") - + grname = "Group of edges on Plane (N = (0, -1, 0) & Location = (0, -50, 0))" + geompy.addToStudy(group_edges_on_pln, grname) + # GetShapesOnCylinder edges_out_cyl = geompy.GetShapesOnCylinder(blocksComp, geompy.ShapeType["EDGE"], vy, 55, geompy.GEOM.ST_OUT) @@ -489,7 +504,6 @@ def TestOtherOperations (geompy, math): p0, 100, geompy.GEOM.ST_ON) for vertex_i in vertices_on_sph: geompy.addToStudy(vertex_i, "Vertex on Sphere (center = (0, 0, 0), r = 100)") - pass # GetShapesOnSphereIDs vertices_on_sph_ids = geompy.GetShapesOnSphereIDs(blocksComp, geompy.ShapeType["VERTEX"], @@ -513,13 +527,12 @@ def TestOtherOperations (geompy, math): quadrangle = geompy.MakeWire([qe1, qe2, qe3, qe4]) geompy.addToStudy(quadrangle, "Quadrangle") - edges_onin_quad = geompy.GetShapesOnQuadrangle( f12, geompy.ShapeType["EDGE"], - tl, tr, bl, br, geompy.GEOM.ST_ONIN) + edges_onin_quad = geompy.GetShapesOnQuadrangle(f12, geompy.ShapeType["EDGE"], + tl, tr, bl, br, geompy.GEOM.ST_ONIN) comp = geompy.MakeCompound(edges_onin_quad) geompy.addToStudy(comp, "Edges of F12 ONIN Quadrangle") if len( edges_onin_quad ) != 4: print "Error in GetShapesOnQuadrangle()" - pass # GetShapesOnQuadrangleIDs vertices_on_quad_ids = geompy.GetShapesOnQuadrangleIDs(f12, geompy.ShapeType["VERTEX"], @@ -528,6 +541,55 @@ def TestOtherOperations (geompy, math): geompy.UnionIDs(vertices_on_quad, vertices_on_quad_ids) geompy.addToStudy(vertices_on_quad, "Group of vertices on Quadrangle F12") + # GetShapesOnBox + edges_on_box = geompy.GetShapesOnBox(b0, part, geompy.ShapeType["EDGE"], + geompy.GEOM.ST_ON) + comp = geompy.MakeCompound(edges_on_box) + geompy.addToStudy(comp, "Edges of part ON box b0") + if len( edges_on_box ) != 12: + print "Error in GetShapesOnBox()" + + # GetShapesOnBoxIDs + faces_on_box_ids = geompy.GetShapesOnBoxIDs(b0, part, geompy.ShapeType["FACE"], + geompy.GEOM.ST_ON) + faces_on_box = geompy.CreateGroup(part, geompy.ShapeType["FACE"]) + geompy.UnionIDs(faces_on_box, faces_on_box_ids) + geompy.addToStudyInFather(part, faces_on_box, "Group of faces on box b0") + + # Prepare arguments for GetShapesOnShape + sph1 = geompy.MakeSphere(50, 50, 50, 40) + sph2 = geompy.MakeSphere(50, 50, -50, 40) + pcyl = geompy.MakeVertex(50, 50, -50) + cyli = geompy.MakeCylinder(pcyl, vz, 40, 100) + fuse = geompy.MakeFuse(sph1, cyli) + fuse = geompy.MakeFuse(fuse, sph2) + # As after Fuse we have a compound, we need to obtain a solid from it + shsh = geompy.SubShapeAll(fuse, geompy.ShapeType["SOLID"]) + sh_1 = shsh[0] + geompy.addToStudy(sh_1, "sh_1") + + # GetShapesOnShape + faces_in_sh = geompy.GetShapesOnShape(sh_1, part, geompy.ShapeType["FACE"], + geompy.GEOM.ST_IN) + comp = geompy.MakeCompound(faces_in_sh) + geompy.addToStudy(comp, "Faces of part IN shape sh_1") + if len(faces_in_sh) != 11: + print "Error in GetShapesOnShape()" + + # GetShapesOnShapeAsCompound + faces_in_sh_c = geompy.GetShapesOnShapeAsCompound(sh_1, part, geompy.ShapeType["FACE"], + geompy.GEOM.ST_IN) + geompy.addToStudy(faces_in_sh_c, "Faces of part IN shape sh_1 (as compound)") + + # GetShapesOnShapeIDs + edges_in_sh_ids = geompy.GetShapesOnShapeIDs(sh_1, part, geompy.ShapeType["EDGE"], + geompy.GEOM.ST_IN) + edges_in_sh = geompy.CreateGroup(part, geompy.ShapeType["EDGE"]) + geompy.UnionIDs(edges_in_sh, edges_in_sh_ids) + geompy.addToStudyInFather(part, edges_in_sh, "Group of edges in shape sh_1") + if len(edges_in_sh_ids) != 15: + print "Error in GetShapesOnShapeIDs()" + # Prepare arguments for GetInPlace and GetInPlaceByHistory box5 = geompy.MakeBoxDXDYDZ(100, 100, 100) box6 = geompy.MakeTranslation(box5, 50, 50, 0) @@ -541,15 +603,9 @@ def TestOtherOperations (geompy, math): box5_faces = geompy.SubShapeAll(box5, geompy.ShapeType["FACE"]) box6_faces = geompy.SubShapeAll(box6, geompy.ShapeType["FACE"]) - ifa = 1 - for aface in box5_faces: - geompy.addToStudyInFather(box5, aface, "Face" + `ifa`) - ifa = ifa + 1 - - ifa = 1 - for aface in box6_faces: - geompy.addToStudyInFather(box6, aface, "Face" + `ifa`) - ifa = ifa + 1 + for ifa in range(6): + geompy.addToStudyInFather(box5, box5_faces[ifa], "Face" + `ifa + 1`) + geompy.addToStudyInFather(box6, box6_faces[ifa], "Face" + `ifa + 1`) # GetInPlace(theShapeWhere, theShapeWhat) ibb = 5 @@ -557,19 +613,17 @@ def TestOtherOperations (geompy, math): for afaces in faces_list: ifa = 1 for aface in afaces: + refl_box_face = geompy.GetInPlace(part, aface) if ibb == 6 and (ifa == 2 or ifa == 4): - # use IDL interface directly to avoid error message appearence in Python console - refl_box_face = geompy.ShapesOp.GetInPlace(part, aface) + # For two faces of the tool box + # there is no reflection in the result. if refl_box_face is not None: - geompy.addToStudyInFather(part, refl_box_face, - "Reflection of face " + `ifa` + " of box " + `ibb`) - error = "Result of GetInPlace must be NULL for face " + `ifa` + " of box " + `ibb` + error = "Result of GetInPlace must be NULL for face " + error += `ifa` + " of box " + `ibb` raise RuntimeError, error else: - # use geompy interface - refl_box_face = geompy.GetInPlace(part, aface) - geompy.addToStudyInFather(part, refl_box_face, - "Reflection of face " + `ifa` + " of box " + `ibb`) + ssname = "Reflection of face " + `ifa` + " of box " + `ibb` + geompy.addToStudyInFather(part, refl_box_face, ssname) ifa = ifa + 1 ibb = ibb + 1 @@ -582,18 +636,20 @@ def TestOtherOperations (geompy, math): for afaces in faces_list: ifa = 1 for aface in afaces: + ssname = "Reflection of face " + `ifa` + " of box " + `ibb` + " (by history)" if ibb == 6 and (ifa == 2 or ifa == 4): # use IDL interface directly to avoid error message appearence in Python console refl_box_face = geompy.ShapesOp.GetInPlaceByHistory(part, aface) if refl_box_face is not None: - geompy.addToStudyInFather(part, refl_box_face, - "Reflection of face " + `ifa` + " of box " + `ibb` + " (by history)") - error = "Result of GetInPlaceByHistory must be NULL for face " + `ifa` + " of box " + `ibb` + geompy.addToStudyInFather(part, refl_box_face, ssname) + error = "Result of GetInPlaceByHistory must be NULL for face " + error += `ifa` + " of box " + `ibb` raise RuntimeError, error else: # use geompy interface refl_box_face = geompy.GetInPlaceByHistory(part, aface) - geompy.addToStudyInFather(part, refl_box_face, - "Reflection of face " + `ifa` + " of box " + `ibb` + " (by history)") + geompy.addToStudyInFather(part, refl_box_face, ssname) ifa = ifa + 1 ibb = ibb + 1 + +#END diff --git a/src/GEOM_SWIG/GEOM_blocks.py b/src/GEOM_SWIG/GEOM_blocks.py index 6155e2971..99be53789 100644 --- a/src/GEOM_SWIG/GEOM_blocks.py +++ b/src/GEOM_SWIG/GEOM_blocks.py @@ -1,6 +1,7 @@ -# GEOM GEOM_SWIG : binding of C++ implementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 CEA +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -16,15 +17,14 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# GEOM GEOM_SWIG : binding of C++ implementaion with Python # File : GEOM_blocks.py # Author : Julia DOROVSKIKH # Module : GEOM # $Header$ - +# import salome import geompy import math diff --git a/src/GEOM_SWIG/GEOM_cyl2complementary.py b/src/GEOM_SWIG/GEOM_cyl2complementary.py index fd979913d..7a28cfe4b 100755 --- a/src/GEOM_SWIG/GEOM_cyl2complementary.py +++ b/src/GEOM_SWIG/GEOM_cyl2complementary.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,7 +17,7 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #============================================================================== # Info. @@ -24,10 +26,9 @@ # Author : Kovaltchuk Alexey # Project : PAL/SALOME #============================================================================== - # Import # ------ - +# import salome import geompy geomgui = salome.ImportComponentGUI("GEOM") diff --git a/src/GEOM_SWIG/GEOM_example.py b/src/GEOM_SWIG/GEOM_example.py index 121419496..d5f2463a2 100644 --- a/src/GEOM_SWIG/GEOM_example.py +++ b/src/GEOM_SWIG/GEOM_example.py @@ -1,31 +1,30 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : GEOM_example.py # Author : Paul RASCLE, EDF # Module : GEOM # $Header$ - +# import salome import geompy diff --git a/src/GEOM_SWIG/GEOM_example2.py b/src/GEOM_SWIG/GEOM_example2.py index 5b57a7078..000623295 100644 --- a/src/GEOM_SWIG/GEOM_example2.py +++ b/src/GEOM_SWIG/GEOM_example2.py @@ -1,31 +1,30 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : GEOM_example2.py # Author : Paul RASCLE, EDF # Module : GEOM # $Header$ - +# import salome import geompy import math diff --git a/src/GEOM_SWIG/GEOM_example3.py b/src/GEOM_SWIG/GEOM_example3.py index 4e0dbd1bc..3c5bd0498 100644 --- a/src/GEOM_SWIG/GEOM_example3.py +++ b/src/GEOM_SWIG/GEOM_example3.py @@ -1,31 +1,30 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : GEOM_example3.py # Author : Paul RASCLE, EDF # Module : GEOM # $Header$ - +# import salome import geompy import math diff --git a/src/GEOM_SWIG/GEOM_example4.py b/src/GEOM_SWIG/GEOM_example4.py index cc8d82941..4406bd81d 100755 --- a/src/GEOM_SWIG/GEOM_example4.py +++ b/src/GEOM_SWIG/GEOM_example4.py @@ -1,31 +1,30 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : GEOM_example4.py # Module : GEOM - #import SMESH #import smeshpy +# import salome from salome import sg import math diff --git a/src/GEOM_SWIG/GEOM_example5.py b/src/GEOM_SWIG/GEOM_example5.py index 035d9a956..9edda83e1 100644 --- a/src/GEOM_SWIG/GEOM_example5.py +++ b/src/GEOM_SWIG/GEOM_example5.py @@ -1,31 +1,30 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : GEOM_example5.py # Author : Damien COQUERET, Open CASCADE # Module : GEOM # $Header$ - +# import salome import geompy diff --git a/src/GEOM_SWIG/GEOM_example6.py b/src/GEOM_SWIG/GEOM_example6.py index 91c373981..904d4b897 100755 --- a/src/GEOM_SWIG/GEOM_example6.py +++ b/src/GEOM_SWIG/GEOM_example6.py @@ -1,30 +1,30 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM GEOM_SWIG : binding of C++ omplementaion with Python -# -# Copyright (C) 2003 CEA -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# # File : GEOM_example6.py # Author : Dmitry MATVEITCHEV # Module : GEOM # $Header$ - - +# import salome import geompy diff --git a/src/GEOM_SWIG/GEOM_moteur.py b/src/GEOM_SWIG/GEOM_moteur.py index 23ad1aeda..22a6bd88c 100644 --- a/src/GEOM_SWIG/GEOM_moteur.py +++ b/src/GEOM_SWIG/GEOM_moteur.py @@ -1,6 +1,6 @@ -# GEOM GEOM_SWIG : binding of C++ omplementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -17,15 +17,14 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# GEOM GEOM_SWIG : binding of C++ omplementaion with Python # File : GEOM_moteur.py # Author : Damien COQUERET, Open CASCADE # Module : GEOM # $Header$ - +# import salome import geompy import math diff --git a/src/GEOM_SWIG/GEOM_shared_modules.py b/src/GEOM_SWIG/GEOM_shared_modules.py index 1c05517c4..2bd68bcb2 100644 --- a/src/GEOM_SWIG/GEOM_shared_modules.py +++ b/src/GEOM_SWIG/GEOM_shared_modules.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,7 +17,7 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ diff --git a/src/GEOM_SWIG/GEOM_shellSolid.py b/src/GEOM_SWIG/GEOM_shellSolid.py index b3c1daffd..5ea176206 100755 --- a/src/GEOM_SWIG/GEOM_shellSolid.py +++ b/src/GEOM_SWIG/GEOM_shellSolid.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,7 +17,7 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #============================================================================== # Info. @@ -24,10 +26,9 @@ # Author : Kovaltchuk Alexey # Project : PAL/SALOME #============================================================================== - # Imports # ------- - +# import salome import SALOMEDS diff --git a/src/GEOM_SWIG/GEOM_tube_geom.py b/src/GEOM_SWIG/GEOM_tube_geom.py index c3034ffaf..1e2d91689 100755 --- a/src/GEOM_SWIG/GEOM_tube_geom.py +++ b/src/GEOM_SWIG/GEOM_tube_geom.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,7 +17,7 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #============================================================================== # Info. @@ -24,7 +26,6 @@ # Author : Kovaltchuk Alexey # Project : PAL/SALOME #============================================================================== -# # Geometrie du cas test # import salome diff --git a/src/GEOM_SWIG/GEOM_tube_geom_gg2.py b/src/GEOM_SWIG/GEOM_tube_geom_gg2.py index 9c1f2ce01..6cc90f3c0 100755 --- a/src/GEOM_SWIG/GEOM_tube_geom_gg2.py +++ b/src/GEOM_SWIG/GEOM_tube_geom_gg2.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,7 +17,7 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #============================================================================== # Info. @@ -24,10 +26,8 @@ # Author : Kovaltchuk Alexey # Project : PAL/SALOME #============================================================================== -# # Geometrie du cas test # - from geompy import * import salome # diff --git a/src/GEOM_SWIG/GEOM_usinggeom.py b/src/GEOM_SWIG/GEOM_usinggeom.py index b49d22d11..14d98ed37 100644 --- a/src/GEOM_SWIG/GEOM_usinggeom.py +++ b/src/GEOM_SWIG/GEOM_usinggeom.py @@ -1,6 +1,6 @@ -# GEOM GEOM_SWIG : binding of C++ omplementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -17,15 +17,14 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# GEOM GEOM_SWIG : binding of C++ omplementaion with Python # File : GEOM_usinggeom.py # Author : Damien COQUERET, Open CASCADE # Module : GEOM # $Header$ - +# import geompy import math diff --git a/src/GEOM_SWIG/Makefile.am b/src/GEOM_SWIG/Makefile.am index 040d500ce..3b7c921fb 100644 --- a/src/GEOM_SWIG/Makefile.am +++ b/src/GEOM_SWIG/Makefile.am @@ -1,6 +1,6 @@ -# GEOM GEOM_SWIG : binding of C++ omplementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -19,64 +19,58 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# -# +# GEOM GEOM_SWIG : binding of C++ omplementaion with Python # File : Makefile.in # Author : Nicolas REJNERI, Paul RASCLE # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM -# $Header$ # Libraries targets - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am - -EXPORT_SHAREDPYSCRIPTS=\ - GEOM_shared_modules.py - -# # =============================================================== # Files to be installed # =============================================================== # # Scripts to be installed. -dist_salomescript_DATA= \ - geompy.py \ - geompyDC.py \ - batchmode_geompy.py \ - GEOM_Spanner.py \ - GEOM_blocks.py \ - GEOM_example.py \ - GEOM_example2.py \ - GEOM_example3.py \ - GEOM_example4.py \ - GEOM_example5.py \ - GEOM_example6.py \ - GEOM_moteur.py \ - GEOM_TestAll.py \ - GEOM_TestOthers.py \ - GEOM_TestHealing.py \ - GEOM_TestMeasures.py \ - GEOM_usinggeom.py \ - GEOM_Partition1.py \ - GEOM_Partition2.py \ - GEOM_Partition3.py \ - GEOM_Partition4.py \ - GEOM_Partition5.py \ - GEOM_cyl2complementary.py \ - GEOM_shellSolid.py \ - GEOM_tube_geom.py \ - GEOM_tube_geom_gg2.py \ - GEOM_Nut.py \ - GEOM_Sketcher.py \ - PAL_MESH_019_020_geometry.py \ - PAL_MESH_028_geometry.py \ - PAL_MESH_030_geometry.py \ - PAL_MESH_033_geometry.py \ +dist_salomescript_DATA = \ + geompy.py \ + geompyDC.py \ + batchmode_geompy.py \ + GEOM_Spanner.py \ + GEOM_blocks.py \ + GEOM_example.py \ + GEOM_example2.py \ + GEOM_example3.py \ + GEOM_example4.py \ + GEOM_example5.py \ + GEOM_example6.py \ + GEOM_moteur.py \ + GEOM_TestAll.py \ + GEOM_TestOthers.py \ + GEOM_TestHealing.py \ + GEOM_TestMeasures.py \ + GEOM_usinggeom.py \ + GEOM_Partition1.py \ + GEOM_Partition2.py \ + GEOM_Partition3.py \ + GEOM_Partition4.py \ + GEOM_Partition5.py \ + GEOM_cyl2complementary.py \ + GEOM_shellSolid.py \ + GEOM_tube_geom.py \ + GEOM_tube_geom_gg2.py \ + GEOM_Nut.py \ + GEOM_Sketcher.py \ + GEOM_ObjectInfo.py \ + PAL_MESH_019_020_geometry.py \ + PAL_MESH_028_geometry.py \ + PAL_MESH_030_geometry.py \ + PAL_MESH_033_geometry.py \ PAL_MESH_035_geometry.py -sharedpkgpython_PYTHON = \ +sharedpkgpython_PYTHON = \ GEOM_shared_modules.py diff --git a/src/GEOM_SWIG/PAL_MESH_019_020_geometry.py b/src/GEOM_SWIG/PAL_MESH_019_020_geometry.py index 46b7ecabf..e2e5667d4 100755 --- a/src/GEOM_SWIG/PAL_MESH_019_020_geometry.py +++ b/src/GEOM_SWIG/PAL_MESH_019_020_geometry.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,14 +17,14 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ##################################################################################### #Created :17/02/2005 #Auhtor :KOVALTCHUK Alexey #GUI test scenario :PAL-MESH-019 (geometry part), PAL-MESH-020 (geometry part) ##################################################################################### - +# import geompy import salome diff --git a/src/GEOM_SWIG/PAL_MESH_028_geometry.py b/src/GEOM_SWIG/PAL_MESH_028_geometry.py index 6063695c3..0c52a7e94 100755 --- a/src/GEOM_SWIG/PAL_MESH_028_geometry.py +++ b/src/GEOM_SWIG/PAL_MESH_028_geometry.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,14 +17,14 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ##################################################################### #Created :17/02/2005 #Auhtor :KOVALTCHUK Alexey #GUI test scenario :PAL-MESH-028 (geometry part) ##################################################################### - +# import geompy import salome import os diff --git a/src/GEOM_SWIG/PAL_MESH_030_geometry.py b/src/GEOM_SWIG/PAL_MESH_030_geometry.py index de0c447fe..e8503a489 100755 --- a/src/GEOM_SWIG/PAL_MESH_030_geometry.py +++ b/src/GEOM_SWIG/PAL_MESH_030_geometry.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,14 +17,14 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # #============================================================================== # Created : 17/02/2005 # Author : Alexander KOVALEV # GUI test scenario : PAL-MESH-030_geometry #============================================================================== - +# import salome import geompy diff --git a/src/GEOM_SWIG/PAL_MESH_033_geometry.py b/src/GEOM_SWIG/PAL_MESH_033_geometry.py index e4c4e3541..06f3dfeb5 100755 --- a/src/GEOM_SWIG/PAL_MESH_033_geometry.py +++ b/src/GEOM_SWIG/PAL_MESH_033_geometry.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,14 +17,14 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ##################################################################### #Created :17/02/2005 #Auhtor :KOVALTCHUK Alexey #GUI test scenario :PAL-MESH-033 (geometry part) ##################################################################### - +# import geompy import salome diff --git a/src/GEOM_SWIG/PAL_MESH_035_geometry.py b/src/GEOM_SWIG/PAL_MESH_035_geometry.py index d79f21c9a..615d41bad 100755 --- a/src/GEOM_SWIG/PAL_MESH_035_geometry.py +++ b/src/GEOM_SWIG/PAL_MESH_035_geometry.py @@ -1,4 +1,6 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -15,14 +17,14 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # ##################################################################### #Created :15/02/2005 #Auhtor :KOVALTCHUK Alexey #GUI test scenario :PAL-MESH-035 (geometry part) ##################################################################### - +# import geompy import salome diff --git a/src/GEOM_SWIG/batchmode_geompy.py b/src/GEOM_SWIG/batchmode_geompy.py index 3ca8d022f..181f5f34f 100644 --- a/src/GEOM_SWIG/batchmode_geompy.py +++ b/src/GEOM_SWIG/batchmode_geompy.py @@ -1,6 +1,6 @@ -# GEOM GEOM_SWIG : binding of C++ omplementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -17,1277 +17,13 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# -# -# File : geompy.py +# GEOM GEOM_SWIG : binding of C++ omplementaion with Python +# File : batchmode_geompy.py # Author : Paul RASCLE, EDF # Module : GEOM # $Header$ - -from batchmode_salome import * -import GEOM - -g=None -step = 0 -sleeping_time = 0.01 -sleeping_time_max = 1.0 -while 1: - g = lcc.FindOrLoadComponent("FactoryServer", "GEOM") - if g is not None: break - step = step + 1 - if step > 100: break - time.sleep(sleeping_time) - sleeping_time = max(sleeping_time_max, 2*sleeping_time) - pass -geom = g._narrow( GEOM.GEOM_Gen ) - -myBuilder = None -myStudyId = 0 -father = None - -BasicOp = None -CurvesOp = None -PrimOp = None -ShapesOp = None -HealOp = None -InsertOp = None -BoolOp = None -TrsfOp = None -LocalOp = None -MeasuOp = None -BlocksOp = None -GroupOp = None - -def init_geom(theStudy): - - global myStudy, myBuilder, myStudyId, BasicOp, CurvesOp, PrimOp, ShapesOp, HealOp - global InsertOp, BoolOp, TrsfOp, LocalOp, MeasuOp, BlocksOp, GroupOp, father - - myStudy = theStudy - myStudyId = myStudy._get_StudyId() - myBuilder = myStudy.NewBuilder() - father = myStudy.FindComponent("GEOM") - if father is None: - father = myBuilder.NewComponent("GEOM") - A1 = myBuilder.FindOrCreateAttribute(father, "AttributeName") - FName = A1._narrow(SALOMEDS.AttributeName) - FName.SetValue("Geometry") - A2 = myBuilder.FindOrCreateAttribute(father, "AttributePixMap") - aPixmap = A2._narrow(SALOMEDS.AttributePixMap) - aPixmap.SetPixMap("ICON_OBJBROWSER_Geometry") - myBuilder.DefineComponentInstance(father,geom) - pass - - # ----------------------------------------------------------------------------- - # Assign Operations Interfaces - # ----------------------------------------------------------------------------- - - BasicOp = geom.GetIBasicOperations (myStudyId) - CurvesOp = geom.GetICurvesOperations (myStudyId) - PrimOp = geom.GetI3DPrimOperations (myStudyId) - ShapesOp = geom.GetIShapesOperations (myStudyId) - HealOp = geom.GetIHealingOperations (myStudyId) - InsertOp = geom.GetIInsertOperations (myStudyId) - BoolOp = geom.GetIBooleanOperations (myStudyId) - TrsfOp = geom.GetITransformOperations(myStudyId) - LocalOp = geom.GetILocalOperations (myStudyId) - MeasuOp = geom.GetIMeasureOperations (myStudyId) - BlocksOp = geom.GetIBlocksOperations (myStudyId) - GroupOp = geom.GetIGroupOperations (myStudyId) - pass - -init_geom(myStudy) - -# * Get name for sub-shape aSubObj of shape aMainObj +# From Salome version 3.2.0 geompy package suits for work in batch mode # -def SubShapeName(aSubObj, aMainObj): - name = "SubShape" - print name - return name - -# * Publish in study aShape with name aName -# -def addToStudy(aShape, aName): - try: - aSObject = geom.AddInStudy(myStudy, aShape, aName, None) - except: - print "addToStudy() failed" - return "" - return aShape.GetStudyEntry() - -# * Publish in study aShape with name aName as sub-object of previously published aFather -# -def addToStudyInFather(aFather, aShape, aName): - try: - aSObject = geom.AddInStudy(myStudy, aShape, aName, aFather) - except: - print "addToStudyInFather() failed" - return "" - return aShape.GetStudyEntry() - -# ----------------------------------------------------------------------------- -# enumeration ShapeType as a dictionary -# ----------------------------------------------------------------------------- - -ShapeType = {"COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8} - -# ----------------------------------------------------------------------------- -# Basic primitives -# ----------------------------------------------------------------------------- - -def MakeVertex(theX, theY, theZ): - anObj = BasicOp.MakePointXYZ(theX, theY, theZ) - if BasicOp.IsDone() == 0: - print "MakePointXYZ : ", BasicOp.GetErrorCode() - return anObj - -def MakeVertexWithRef(vertex,x,y,z): - anObj = BasicOp.MakePointWithReference(vertex,x,y,z) - if BasicOp.IsDone() == 0: - print "MakePointWithReference : ", BasicOp.GetErrorCode() - return anObj - -def MakeVertexOnCurve(curve,par): - anObj = BasicOp.MakePointOnCurve(curve,par) - if BasicOp.IsDone() == 0: - print "MakePointOnCurve : ", BasicOp.GetErrorCode() - return anObj - -def MakeVertexOnLinesIntersection(line1,line2): - anObj = BasicOp.MakePointOnLinesIntersection(line1,line2) - if BasicOp.IsDone() == 0: - print "MakePointOnLinesIntersection : ", BasicOp.GetErrorCode() - return anObj - -def MakeVectorDXDYDZ(dx,dy,dz): - anObj = BasicOp.MakeVectorDXDYDZ(dx,dy,dz) - if BasicOp.IsDone() == 0: - print "MakeVectorDXDYDZ : ", BasicOp.GetErrorCode() - return anObj - -def MakeVector(p1,p2): - anObj = BasicOp.MakeVectorTwoPnt(p1, p2) - if BasicOp.IsDone() == 0: - print "MakeVectorTwoPnt : ", BasicOp.GetErrorCode() - return anObj - -def MakeLine(p1, d1): - anObj = BasicOp.MakeLine(p1,d1) - if BasicOp.IsDone() == 0: - print "MakeLine : ", BasicOp.GetErrorCode() - return anObj - -def MakeLineTwoPnt(p1, p2): - anObj = BasicOp.MakeLineTwoPnt(p1,p2) - if BasicOp.IsDone() == 0: - print "MakeLineTwoPnt : ", BasicOp.GetErrorCode() - return anObj - -def MakeLineTwoFaces(f1, f2): - anObj = BasicOp.MakeLineTwoFaces(f1,f2) - if BasicOp.IsDone() == 0: - print "MakeLineTwoFaces : ", BasicOp.GetErrorCode() - return anObj - -def MakePlane(p1,v1,trimsize): - anObj = BasicOp.MakePlanePntVec(p1,v1,trimsize) - if BasicOp.IsDone() == 0: - print "MakePlanePntVec : ", BasicOp.GetErrorCode() - return anObj - -def MakePlaneThreePnt(p1,p2,p3,trimsize): - anObj = BasicOp.MakePlaneThreePnt(p1,p2,p3,trimsize) - if BasicOp.IsDone() == 0: - print "MakePlaneThreePnt : ", BasicOp.GetErrorCode() - return anObj - -def MakePlaneFace(face,trimsize): - anObj = BasicOp.MakePlaneFace(face,trimsize) - if BasicOp.IsDone() == 0: - print "MakePlaneFace : ", BasicOp.GetErrorCode() - return anObj - -def MakeMarker(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ): - anObj = BasicOp.MakeMarker(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ) - if BasicOp.IsDone() == 0: - print "MakeMarker : ", BasicOp.GetErrorCode() - return anObj - -def MakeMarkerPntTwoVec(theOrigin, theXVec, theYVec): - """ - * Create a local coordinate system. - * \param theOrigin Point of coordinate system origin. - * \param theXVec Vector of X direction - * \param theYVec Vector of Y direction - * \return New GEOM_Object, containing the created coordinate system. - """ - O = PointCoordinates( theOrigin ) - OXOY = [] - for vec in [ theXVec, theYVec ]: - v1, v2 = SubShapeAll( vec, ShapeType["VERTEX"] ) - p1 = PointCoordinates( v1 ) - p2 = PointCoordinates( v2 ) - for i in range( 0, 3 ): - OXOY.append( p2[i] - p1[i] ) - # - anObj = BasicOp.MakeMarker( O[0], O[1], O[2], - OXOY[0], OXOY[1], OXOY[2], - OXOY[3], OXOY[4], OXOY[5], ) - if BasicOp.IsDone() == 0: - print "MakeMarker : ", BasicOp.GetErrorCode() - return anObj - -# ----------------------------------------------------------------------------- -# Curves -# ----------------------------------------------------------------------------- - -def MakeArc(p1,p2,p3): - anObj = CurvesOp.MakeArc(p1,p2,p3) - if CurvesOp.IsDone() == 0: - print "MakeArc : ", CurvesOp.GetErrorCode() - return anObj - -def MakeCircle(p1,v1,radius): - anObj = CurvesOp.MakeCirclePntVecR(p1,v1,radius) - if CurvesOp.IsDone() == 0: - print "MakeCirclePntVecR : ", CurvesOp.GetErrorCode() - return anObj - -def MakeCircleThreePnt(p1,p2,p3): - anObj = CurvesOp.MakeCircleThreePnt(p1,p2,p3) - if CurvesOp.IsDone() == 0: - print "MakeCircleThreePnt : ", CurvesOp.GetErrorCode() - return anObj - -def MakeCircleCenter2Pnt(p1,p2,p3): - anObj = CurvesOp.MakeCircleCenter2Pnt(p1,p2,p3) - if CurvesOp.IsDone() == 0: - print "MakeCircleCenter2Pnt : ", CurvesOp.GetErrorCode() - return anObj - -def MakeEllipse(p1,v1,radiusMaj,radiusMin): - anObj = CurvesOp.MakeEllipse(p1,v1,radiusMaj, radiusMin) - if CurvesOp.IsDone() == 0: - print "MakeEllipse : ", CurvesOp.GetErrorCode() - return anObj - -def MakePolyline(ListShape): - anObj = CurvesOp.MakePolyline(ListShape) - if CurvesOp.IsDone() == 0: - print "MakePolyline : ", CurvesOp.GetErrorCode() - return anObj - -def MakeBezier(ListShape): - anObj = CurvesOp.MakeSplineBezier(ListShape) - if CurvesOp.IsDone() == 0: - print "MakeSplineBezier : ", CurvesOp.GetErrorCode() - return anObj - -def MakeInterpol(ListShape): - anObj = CurvesOp.MakeSplineInterpolation(ListShape) - if CurvesOp.IsDone() == 0: - print "MakeSplineInterpolation : ", CurvesOp.GetErrorCode() - return anObj - -# : Nine double values, defining origin, -# OZ and OX directions of the working plane. -def MakeSketcher(Cmd, WPL = [0,0,0, 0,0,1, 1,0,0]): - anObj = CurvesOp.MakeSketcher(Cmd, WPL) - if CurvesOp.IsDone() == 0: - print "MakeSketcher : ", CurvesOp.GetErrorCode() - return anObj - -def MakeSketcherOnPlane(theCommand, theWorkingPlane): - """ - * Create a sketcher (wire or face), following the textual description, - * passed through \a theCommand argument. \n - * For format of the description string see the previous method.\n - * \param theCommand String, defining the sketcher in local - * coordinates of the working plane. - * \param theWorkingPlane Planar Face of the working plane. - * \return New GEOM_Object, containing the created wire. - """ - anObj = CurvesOp.MakeSketcherOnPlane(theCommand, theWorkingPlane) - if CurvesOp.IsDone() == 0: - print "MakeSketcher : ", CurvesOp.GetErrorCode() - return anObj - -# ----------------------------------------------------------------------------- -# Create 3D Primitives -# ----------------------------------------------------------------------------- - -def MakeBox(x1,y1,z1,x2,y2,z2): - pnt1 = MakeVertex(x1,y1,z1) - pnt2 = MakeVertex(x2,y2,z2) - return MakeBoxTwoPnt(pnt1,pnt2) - -def MakeBoxDXDYDZ(dx,dy,dz): - anObj = PrimOp.MakeBoxDXDYDZ(dx,dy,dz) - if PrimOp.IsDone() == 0: - print "MakeBoxDXDYDZ : ", PrimOp.GetErrorCode() - return anObj - -def MakeBoxTwoPnt(point1, point2): - anObj = PrimOp.MakeBoxTwoPnt(point1, point2) - if PrimOp.IsDone() == 0: - print "MakeBoxTwoPnt : ", PrimOp.GetErrorCode() - return anObj - -def MakeCylinder(p1,v1,radius,height): - anObj = PrimOp.MakeCylinderPntVecRH(p1,v1,radius,height) - if PrimOp.IsDone() == 0: - print "MakeCylinderPntVecRH : ", PrimOp.GetErrorCode() - return anObj - -def MakeCylinderRH(radius,height): - anObj = PrimOp.MakeCylinderRH(radius,height) - if PrimOp.IsDone() == 0: - print "MakeCylinderRH : ", PrimOp.GetErrorCode() - return anObj - -def MakeSpherePntR(point,radius): - anObj = PrimOp.MakeSpherePntR(point,radius) - if PrimOp.IsDone() == 0: - print "MakeSpherePntR : ", PrimOp.GetErrorCode() - return anObj - -def MakeSphere(x,y,z,radius): - point = MakeVertex(x,y,z) - anObj = MakeSpherePntR(point,radius) - return anObj - -def MakeSphereR(radius): - anObj = PrimOp.MakeSphereR(radius) - if PrimOp.IsDone() == 0: - print "MakeSphereR : ", PrimOp.GetErrorCode() - return anObj - -def MakeCone(p1,v1,radius1,radius2,height): - anObj = PrimOp.MakeConePntVecR1R2H(p1,v1,radius1,radius2,height) - if PrimOp.IsDone() == 0: - print "MakeConePntVecR1R2H : ", PrimOp.GetErrorCode() - return anObj - -def MakeConeR1R2H(radius1,radius2,height): - anObj = PrimOp.MakeConeR1R2H(radius1,radius2,height) - if PrimOp.IsDone() == 0: - print "MakeConeR1R2H : ", PrimOp.GetErrorCode() - return anObj - -def MakeTorus(p1,v1,major_radius,minor_radius): - anObj = PrimOp.MakeTorusPntVecRR(p1,v1,major_radius,minor_radius) - if PrimOp.IsDone() == 0: - print "MakeTorusPntVecRR : ", PrimOp.GetErrorCode() - return anObj - -def MakeTorusRR(major_radius,minor_radius): - anObj = PrimOp.MakeTorusRR(major_radius,minor_radius) - if PrimOp.IsDone() == 0: - print "MakeTorusRR : ", PrimOp.GetErrorCode() - return anObj - -def MakePrism(baseShape,point1,point2): - anObj = PrimOp.MakePrismTwoPnt(baseShape,point1,point2) - if PrimOp.IsDone() == 0: - print "MakePrismTwoPnt : ", PrimOp.GetErrorCode() - return anObj - -def MakePrism2Ways(baseShape,point1,point2): - anObj = PrimOp.MakePrismTwoPnt2Ways(baseShape,point1,point2) - if PrimOp.IsDone() == 0: - print "MakePrismTwoPnt2Ways : ", PrimOp.GetErrorCode() - return anObj - -def MakePrismVecH(baseShape,vector,height): - anObj = PrimOp.MakePrismVecH(baseShape,vector,height) - if PrimOp.IsDone() == 0: - print "MakePrismVecH : ", PrimOp.GetErrorCode() - return anObj - -def MakePrismVecH2Ways(baseShape,vector,height): - anObj = PrimOp.MakePrismVecH2Ways(baseShape,vector,height) - if PrimOp.IsDone() == 0: - print "MakePrismVecH2Ways : ", PrimOp.GetErrorCode() - return anObj - -def MakePipe(baseShape,pathShape): - anObj = PrimOp.MakePipe(baseShape,pathShape) - if PrimOp.IsDone() == 0: - print "MakePipe : ", PrimOp.GetErrorCode() - return anObj - -def MakeRevolution(aShape,axis,angle): - anObj = PrimOp.MakeRevolutionAxisAngle(aShape,axis,angle) - if PrimOp.IsDone() == 0: - print "MakeRevolutionAxisAngle : ", PrimOp.GetErrorCode() - return anObj - -def MakeRevolution2Ways(aShape,axis,angle): - anObj = PrimOp.MakeRevolutionAxisAngle2Ways(aShape,axis,angle) - if PrimOp.IsDone() == 0: - print "MakeRevolutionAxisAngle2Ways : ", PrimOp.GetErrorCode() - return anObj - -# ----------------------------------------------------------------------------- -# Create base shapes -# ----------------------------------------------------------------------------- - -def MakeEdge(p1,p2): - anObj = ShapesOp.MakeEdge(p1,p2) - if ShapesOp.IsDone() == 0: - print "MakeEdge : ", ShapesOp.GetErrorCode() - return anObj - -def MakeWire(ListShape): - anObj = ShapesOp.MakeWire(ListShape) - if ShapesOp.IsDone() == 0: - print "MakeWire : ", ShapesOp.GetErrorCode() - return anObj - -def MakeFace(aShapeWire,WantPlanarFace): - anObj = ShapesOp.MakeFace(aShapeWire,WantPlanarFace) - if ShapesOp.IsDone() == 0: - print "MakeFace : ", ShapesOp.GetErrorCode() - return anObj - -def MakeFaceWires(ListWires,WantPlanarFace): - anObj = ShapesOp.MakeFaceWires(ListWires,WantPlanarFace) - if ShapesOp.IsDone() == 0: - print "MakeFaceWires : ", ShapesOp.GetErrorCode() - return anObj - -def MakeFaces(ListWires,WantPlanarFace): - anObj = MakeFaceWires(ListWires,WantPlanarFace) - return anObj - -def MakeShell(ListOfShapes): - anObj = ShapesOp.MakeShell(ListOfShapes) - if ShapesOp.IsDone() == 0: - print "MakeShell : ", ShapesOp.GetErrorCode() - return anObj - -def MakeSolid(ListOfShells): - anObj = ShapesOp.MakeSolidShells(ListOfShells) - if ShapesOp.IsDone() == 0: - print "MakeSolid : ", ShapesOp.GetErrorCode() - return anObj - -def MakeCompound(ListShape): - anObj = ShapesOp.MakeCompound(ListShape) - if ShapesOp.IsDone() == 0: - print "MakeCompound : ", ShapesOp.GetErrorCode() - return anObj - -def NumberOfFaces(theShape): - nb_faces = ShapesOp.NumberOfFaces(theShape) - if ShapesOp.IsDone() == 0: - print "NumberOfFaces : ", ShapesOp.GetErrorCode() - return nb_faces - -def NumberOfEdges(theShape): - nb_edges = ShapesOp.NumberOfEdges(theShape) - if ShapesOp.IsDone() == 0: - print "NumberOfEdges : ", ShapesOp.GetErrorCode() - return nb_edges - -def ChangeOrientation(Shape): - anObj = ShapesOp.ChangeOrientation(Shape) - if ShapesOp.IsDone() == 0: - print "ChangeOrientation : ", ShapesOp.GetErrorCode() - return anObj - -def OrientationChange(Shape): - anObj = ChangeOrientation(Shape) - return anObj - -def GetFreeFacesIDs(theShape): - anIDs = ShapesOp.GetFreeFacesIDs(theShape) - if ShapesOp.IsDone() == 0: - print "GetFreeFacesIDs : ", ShapesOp.GetErrorCode() - return anIDs - -def GetSharedShapes(theShape1, theShape2, theShapeType): - aList = ShapesOp.GetSharedShapes(theShape1, theShape2, theShapeType) - if ShapesOp.IsDone() == 0: - print "GetSharedShapes : ", ShapesOp.GetErrorCode() - return aList - -def GetShapesOnPlane(theShape, theShapeType, theAx1, theState): - aList = ShapesOp.GetShapesOnPlane(theShape, theShapeType, theAx1, theState) - if ShapesOp.IsDone() == 0: - print "GetShapesOnPlane : ", ShapesOp.GetErrorCode() - return aList - -def GetShapesOnPlaneIDs(theShape, theShapeType, theAx1, theState): - aList = ShapesOp.GetShapesOnPlaneIDs(theShape, theShapeType, theAx1, theState) - if ShapesOp.IsDone() == 0: - print "GetShapesOnPlaneIDs : ", ShapesOp.GetErrorCode() - return aList - -def GetShapesOnCylinder(theShape, theShapeType, theAxis, theRadius, theState): - aList = ShapesOp.GetShapesOnCylinder(theShape, theShapeType, theAxis, theRadius, theState) - if ShapesOp.IsDone() == 0: - print "GetShapesOnCylinder : ", ShapesOp.GetErrorCode() - return aList - -def GetShapesOnCylinderIDs(theShape, theShapeType, theAxis, theRadius, theState): - aList = ShapesOp.GetShapesOnCylinderIDs(theShape, theShapeType, theAxis, theRadius, theState) - if ShapesOp.IsDone() == 0: - print "GetShapesOnCylinderIDs : ", ShapesOp.GetErrorCode() - return aList - -def GetShapesOnSphere(theShape, theShapeType, theCenter, theRadius, theState): - aList = ShapesOp.GetShapesOnSphere(theShape, theShapeType, theCenter, theRadius, theState) - if ShapesOp.IsDone() == 0: - print "GetShapesOnSphere : ", ShapesOp.GetErrorCode() - return aList - -def GetShapesOnSphereIDs(theShape, theShapeType, theCenter, theRadius, theState): - aList = ShapesOp.GetShapesOnSphereIDs(theShape, theShapeType, theCenter, theRadius, theState) - if ShapesOp.IsDone() == 0: - print "GetShapesOnSphereIDs : ", ShapesOp.GetErrorCode() - return aList - -def GetShapesOnQuadrangle(theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState): - aList = ShapesOp.GetShapesOnQuadrangle(theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState) - if ShapesOp.IsDone() == 0: - print "GetShapesOnQuadrangle : ", ShapesOp.GetErrorCode() - return aList - -def GetShapesOnQuadrangleIDs(theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState): - aList = ShapesOp.GetShapesOnQuadrangleIDs(theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState) - if ShapesOp.IsDone() == 0: - print "GetShapesOnQuadrangleIDs : ", ShapesOp.GetErrorCode() - return aList - -def GetInPlace(theShapeWhere, theShapeWhat): - anObj = ShapesOp.GetInPlace(theShapeWhere, theShapeWhat) - if ShapesOp.IsDone() == 0: - print "GetInPlace : ", ShapesOp.GetErrorCode() - return anObj - -# ----------------------------------------------------------------------------- -# Access to sub-shapes by their unique IDs inside the main shape. -# ----------------------------------------------------------------------------- - -# Obtain a composite sub-shape of , composed from sub-shapes -# of , selected by their unique IDs inside -def GetSubShape(aShape, ListOfID): - anObj = geom.AddSubShape(aShape,ListOfID) - return anObj - -# Obtain unique ID of sub-shape inside -def GetSubShapeID(aShape, aSubShape): - anID = LocalOp.GetSubShapeIndex(aShape, aSubShape) - if LocalOp.IsDone() == 0: - print "GetSubShapeIndex : ", LocalOp.GetErrorCode() - return anID - -# ----------------------------------------------------------------------------- -# Decompose objects -# ----------------------------------------------------------------------------- - -def SubShapeAll(aShape, aType): - ListObj = ShapesOp.MakeExplode(aShape,aType,0) - if ShapesOp.IsDone() == 0: - print "MakeExplode : ", ShapesOp.GetErrorCode() - return ListObj - -def SubShapeAllIDs(aShape, aType): - ListObj = ShapesOp.SubShapeAllIDs(aShape,aType,0) - if ShapesOp.IsDone() == 0: - print "SubShapeAllIDs : ", ShapesOp.GetErrorCode() - return ListObj - -def SubShapeAllSorted(aShape, aType): - ListObj = ShapesOp.MakeExplode(aShape,aType,1) - if ShapesOp.IsDone() == 0: - print "MakeExplode : ", ShapesOp.GetErrorCode() - return ListObj - -def SubShapeAllSortedIDs(aShape, aType): - ListIDs = ShapesOp.SubShapeAllIDs(aShape,aType,1) - if ShapesOp.IsDone() == 0: - print "SubShapeAllSortedIDs : ", ShapesOp.GetErrorCode() - return ListObj - -# Obtain a compound of sub-shapes of , -# selected by they indices in list of all sub-shapes of type -def SubShape(aShape, aType, ListOfInd): - ListOfIDs = [] - AllShapeList = SubShapeAll(aShape, aType) - for ind in ListOfInd: - ListOfIDs.append(GetSubShapeID(aShape, AllShapeList[ind - 1])) - anObj = GetSubShape(aShape, ListOfIDs) - return anObj - -# Obtain a compound of sub-shapes of , -# selected by they indices in sorted list of all sub-shapes of type -def SubShapeSorted(aShape, aType, ListOfInd): - ListOfIDs = [] - AllShapeList = SubShapeAllSorted(aShape, aType) - for ind in ListOfInd: - ListOfIDs.append(GetSubShapeID(aShape, AllShapeList[ind - 1])) - anObj = GetSubShape(aShape, ListOfIDs) - return anObj - -# ----------------------------------------------------------------------------- -# Healing operations -# ----------------------------------------------------------------------------- - -def ProcessShape(Shape, Operators, Parameters, Values): - anObj = HealOp.ProcessShape(Shape, Operators, Parameters, Values) - if HealOp.IsDone() == 0: - print "ProcessShape : ", HealOp.GetErrorCode() - return anObj - -def SuppressFaces(aShape,ListOfId): - anObj = HealOp.SuppressFaces(aShape,ListOfId) - if HealOp.IsDone() == 0: - print "SuppressFaces : ", HealOp.GetErrorCode() - return anObj - -def MakeSewing(ListShape,precision): - comp = MakeCompound(ListShape) - anObj = Sew(comp,precision) - return anObj - -def Sew(aShape,precision): - anObj = HealOp.Sew(aShape,precision) - if HealOp.IsDone() == 0: - print "Sew : ", HealOp.GetErrorCode() - return anObj - -def SuppressInternalWires(aShape, Wires): - anObj = HealOp.RemoveIntWires(aShape, Wires) - if HealOp.IsDone() == 0: - print "SuppressInternalWires : ", HealOp.GetErrorCode() - return anObj - -def SuppressHoles(aShape, ListOfId): - anObj = HealOp.FillHoles(aShape,ListOfId) - if HealOp.IsDone() == 0: - print "SuppressHoles : ", HealOp.GetErrorCode() - return anObj - -def CloseContour(aShape, Wires, IsCommonVertex): - anObj = HealOp.CloseContour(aShape, Wires, IsCommonVertex) - if HealOp.IsDone() == 0: - print "CloseContour : ", HealOp.GetErrorCode() - return anObj - -def DivideEdge(aShape, EdgeID, Value, IsByParameter): - anObj = HealOp.DivideEdge(aShape, EdgeID, Value, IsByParameter) - if HealOp.IsDone() == 0: - print "DivideEdge : ", HealOp.GetErrorCode() - return anObj - -def GetFreeBoundary(Shape): - anObj = HealOp.GetFreeBoundary(Shape) - if HealOp.IsDone() == 0: - print "GetFreeBoundaries : ", HealOp.GetErrorCode() - return anObj - -# ----------------------------------------------------------------------------- -# Create advanced objects -# ----------------------------------------------------------------------------- - -def MakeCopy(aShape): - anObj = InsertOp.MakeCopy(aShape) - if InsertOp.IsDone() == 0: - print "MakeCopy : ", InsertOp.GetErrorCode() - return anObj - -def MakeFilling(aShape,mindeg,maxdeg,tol2d,tol3d,nbiter,isApprox=0): - anObj = PrimOp.MakeFilling(aShape,mindeg,maxdeg,tol2d,tol3d,nbiter,isApprox) - if PrimOp.IsDone() == 0: - print "MakeFilling : ", PrimOp.GetErrorCode() - return anObj - -def MakeGlueFaces(aShape,aTolerance): - anObj = ShapesOp.MakeGlueFaces(aShape,aTolerance) - if ShapesOp.IsDone() == 0: - print "MakeGlueFaces : ", ShapesOp.GetErrorCode() - return anObj - -# ----------------------------------------------------------------------------- -# Boolean (Common, Cut, Fuse, Section) -# ----------------------------------------------------------------------------- - -def MakeBoolean(shape1,shape2,operation): - anObj = BoolOp.MakeBoolean(shape1,shape2,operation) - if BoolOp.IsDone() == 0: - print "MakeBoolean : ", BoolOp.GetErrorCode() - return anObj - -def MakeCommon(s1, s2): - return MakeBoolean(s1, s2, 1) - -def MakeCut(s1, s2): - return MakeBoolean(s1, s2, 2) - -def MakeFuse(s1, s2): - return MakeBoolean(s1, s2, 3) - -def MakeSection(s1, s2): - return MakeBoolean(s1, s2, 4) - -def MakePartition(ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[], - Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[], - KeepNonlimitShapes=0): - anObj = BoolOp.MakePartition(ListShapes, ListTools, - ListKeepInside, ListRemoveInside, - Limit, RemoveWebs, ListMaterials, - KeepNonlimitShapes); - if BoolOp.IsDone() == 0: - print "MakePartition : ", BoolOp.GetErrorCode() - return anObj - -def Partition(ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[], - Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[], - KeepNonlimitShapes=0): - anObj = MakePartition(ListShapes, ListTools, - ListKeepInside, ListRemoveInside, - Limit, RemoveWebs, ListMaterials, - KeepNonlimitShapes); - return anObj - -def MakeHalfPartition(theShape, thePlane): - anObj = BoolOp.MakeHalfPartition(theShape, thePlane) - if BoolOp.IsDone() == 0: - print "MakeHalfPartition : ", BoolOp.GetErrorCode() - return anObj - -# ----------------------------------------------------------------------------- -# Transform objects -# ----------------------------------------------------------------------------- - -def MakeTranslationTwoPoints(aShape,point1,point2): - anObj = TrsfOp.TranslateTwoPointsCopy(aShape,point1,point2) - if TrsfOp.IsDone() == 0: - print "TranslateTwoPointsCopy : ", TrsfOp.GetErrorCode() - return anObj - -def MakeTranslation(aShape,dx,dy,dz): - anObj = TrsfOp.TranslateDXDYDZCopy(aShape,dx,dy,dz) - if TrsfOp.IsDone() == 0: - print "TranslateDXDYDZCopy : ", TrsfOp.GetErrorCode() - return anObj - -def MakeTranslationVector(theObject, theVector): - anObj = TrsfOp.TranslateVectorCopy(theObject, theVector) - if TrsfOp.IsDone() == 0: - print "TranslateVectorCopy : ", TrsfOp.GetErrorCode() - return anObj - -def MakeRotation(aShape,axis,angle): - anObj = TrsfOp.RotateCopy(aShape,axis,angle) - if TrsfOp.IsDone() == 0: - print "RotateCopy : ", TrsfOp.GetErrorCode() - return anObj - -def MakeRotationThreePoints(aShape, centpoint, point1, point2): - anObj = TrsfOp.RotateThreePointsCopy(aShape, centpoint, point1, point2) - if TrsfOp.IsDone() == 0: - print "RotateThreePointsCopy : ", TrsfOp.GetErrorCode() - return anObj - -def MakeScaleTransform(aShape,theCenterofScale,factor): - anObj = TrsfOp.ScaleShapeCopy(aShape,theCenterofScale,factor) - if TrsfOp.IsDone() == 0: - print "ScaleShapeCopy : ", TrsfOp.GetErrorCode() - return anObj - -def MakeMirrorByPlane(aShape,aPlane): - anObj = TrsfOp.MirrorPlaneCopy(aShape,aPlane) - if TrsfOp.IsDone() == 0: - print "MirrorPlaneCopy : ", TrsfOp.GetErrorCode() - return anObj - -def MakeMirrorByAxis(theObject, theAxis): - anObj = TrsfOp.MirrorAxisCopy(theObject, theAxis) - if TrsfOp.IsDone() == 0: - print "MirrorAxisCopy : ", TrsfOp.GetErrorCode() - return anObj - -def MakeMirrorByPoint(theObject, thePoint): - anObj = TrsfOp.MirrorPointCopy(theObject, thePoint) - if TrsfOp.IsDone() == 0: - print "MirrorPointCopy : ", TrsfOp.GetErrorCode() - return anObj - -def MakePosition(aShape,theStartLCS,theEndLCS): - anObj = TrsfOp.PositionShapeCopy(aShape,theStartLCS,theEndLCS) - if TrsfOp.IsDone() == 0: - print "PositionShapeCopy : ", TrsfOp.GetErrorCode() - return anObj - -def MakeOffset(aShape, anOffset): - anObj = TrsfOp.OffsetShapeCopy(aShape, anOffset) - if TrsfOp.IsDone() == 0: - print "OffsetShapeCopy : ", TrsfOp.GetErrorCode() - return anObj - -# ----------------------------------------------------------------------------- -# Patterns -# ----------------------------------------------------------------------------- - -def MakeMultiTranslation1D(aShape,aDir,aStep,aNbTimes): - anObj = TrsfOp.MultiTranslate1D(aShape,aDir,aStep,aNbTimes) - if TrsfOp.IsDone() == 0: - print "MultiTranslate1D : ", TrsfOp.GetErrorCode() - return anObj - -def MakeMultiTranslation2D(aShape,d1,step1,nbtimes1,d2,step2,nbtimes2): - anObj = TrsfOp.MultiTranslate2D(aShape,d1,step1,nbtimes1,d2,step2,nbtimes2) - if TrsfOp.IsDone() == 0: - print "MultiTranslate2D : ", TrsfOp.GetErrorCode() - return anObj - -def MultiRotate1D(aShape,aVec,aNbTimes): - anObj = TrsfOp.MultiRotate1D(aShape,aVec,aNbTimes) - if TrsfOp.IsDone() == 0: - print "MultiRotate1D : ", TrsfOp.GetErrorCode() - return anObj - -def MultiRotate2D(aShape,aVec,anAngle,nbtimes1,aStep,nbtimes2): - anObj = TrsfOp.MultiRotate2D(aShape,aVec,anAngle,nbtimes1,aStep,nbtimes2) - if TrsfOp.IsDone() == 0: - print "MultiRotate2D : ", TrsfOp.GetErrorCode() - return anObj - -def MakeMultiRotation1D(aShape,aDir,aPoint,aNbTimes): - aVec = MakeLine(aPoint,aDir) - anObj = MultiRotate1D(aShape,aVec,aNbTimes) - return anObj - -def MakeMultiRotation2D(aShape,aDir,aPoint,anAngle,nbtimes1,aStep,nbtimes2): - aVec = MakeLine(aPoint,aDir) - anObj = MultiRotate2D(aShape,aVec,anAngle,nbtimes1,aStep,nbtimes2) - return anObj - -# ----------------------------------------------------------------------------- -# Local operations -# ----------------------------------------------------------------------------- - -def MakeFilletAll(aShape,radius): - anObj = LocalOp.MakeFilletAll(aShape,radius) - if LocalOp.IsDone() == 0: - print "MakeFilletAll : ", LocalOp.GetErrorCode() - return anObj - -def MakeFillet(aShape,radius,aShapeType,ListShape): - anObj = None - if aShapeType == ShapeType["EDGE"]: - anObj = LocalOp.MakeFilletEdges(aShape,radius,ListShape) - else: - anObj = LocalOp.MakeFilletFaces(aShape,radius,ListShape) - if LocalOp.IsDone() == 0: - print "MakeFillet : ", LocalOp.GetErrorCode() - return anObj - -def MakeFilletR1R2(aShape,radius1,radius2,aShapeType,ListShape): - anObj = None - if aShapeType == ShapeType["EDGE"]: - anObj = LocalOp.MakeFilletEdgesR1R2(aShape,radius1,radius2,ListShape) - else: - anObj = LocalOp.MakeFilletFacesR1R2(aShape,radius1,radius2,ListShape) - if LocalOp.IsDone() == 0: - print "MakeFilletR1R2 : ", LocalOp.GetErrorCode() - return anObj - -def MakeChamferAll(aShape,d): - anObj = LocalOp.MakeChamferAll(aShape,d) - if LocalOp.IsDone() == 0: - print "MakeChamferAll : ", LocalOp.GetErrorCode() - return anObj - -def MakeChamferEdge(aShape,d1,d2,face1,face2): - anObj = LocalOp.MakeChamferEdge(aShape,d1,d2,face1,face2) - if LocalOp.IsDone() == 0: - print "MakeChamferEdge : ", LocalOp.GetErrorCode() - return anObj - -def MakeChamferEdgeAD(aShape,d,angle,face1,face2): - anObj = LocalOp.MakeChamferEdgeAD(aShape,d,angle,face1,face2) - if LocalOp.IsDone() == 0: - print "MakeChamferEdgeAD : ", LocalOp.GetErrorCode() - return anObj - -def MakeChamferFaces(aShape,d1,d2,ListShape): - anObj = LocalOp.MakeChamferFaces(aShape,d1,d2,ListShape) - if LocalOp.IsDone() == 0: - print "MakeChamferFaces : ", LocalOp.GetErrorCode() - return anObj - -def MakeChamferFacesAD(aShape,d,angle,ListShape): - anObj = LocalOp.MakeChamferFacesAD(aShape,d,angle,ListShape) - if LocalOp.IsDone() == 0: - print "MakeChamferFacesAD : ", LocalOp.GetErrorCode() - return anObj - -def MakeChamferEdges(aShape,d1,d2,ListShape): - anObj = LocalOp.MakeChamferEdges(aShape,d1,d2,ListShape) - if LocalOp.IsDone() == 0: - print "MakeChamferEdges : ", LocalOp.GetErrorCode() - return anObj - -def MakeChamferEdgesAD(aShape,d,angle,ListShape): - anObj = LocalOp.MakeChamferEdgesAD(aShape,d,angle,ListShape) - if LocalOp.IsDone() == 0: - print "MakeChamferEdgesAD : ", LocalOp.GetErrorCode() - return anObj - -def MakeChamfer(aShape,d1,d2,aShapeType,ListShape): - anObj = None - if aShapeType == ShapeType["EDGE"]: - anObj = MakeChamferEdge(aShape,d1,d2,ListShape[0],ListShape[1]) - else: - anObj = MakeChamferFaces(aShape,d1,d2,ListShape) - return anObj - -def Archimede(aShape,weight,WaterDensity,MeshingDeflection): - anObj = LocalOp.MakeArchimede(aShape,weight,WaterDensity,MeshingDeflection) - if LocalOp.IsDone() == 0: - print "MakeArchimede : ", LocalOp.GetErrorCode() - return anObj - -# ----------------------------------------------------------------------------- -# Information objects -# ----------------------------------------------------------------------------- - -def PointCoordinates(Point): - aTuple = MeasuOp.PointCoordinates(Point) - if MeasuOp.IsDone() == 0: - print "PointCoordinates : ", MeasuOp.GetErrorCode() - return aTuple - -def BasicProperties(Shape): - aTuple = MeasuOp.GetBasicProperties(Shape) - if MeasuOp.IsDone() == 0: - print "BasicProperties : ", MeasuOp.GetErrorCode() - return aTuple - -def BoundingBox(Shape): - aTuple = MeasuOp.GetBoundingBox(Shape) - if MeasuOp.IsDone() == 0: - print "BoundingBox : ", MeasuOp.GetErrorCode() - return aTuple - -def Inertia(Shape): - aTuple = MeasuOp.GetInertia(Shape) - if MeasuOp.IsDone() == 0: - print "Inertia : ", MeasuOp.GetErrorCode() - return aTuple - -def MinDistance(Shape1, Shape2): - aTuple = MeasuOp.GetMinDistance(Shape1, Shape2) - if MeasuOp.IsDone() == 0: - print "MinDistance : ", MeasuOp.GetErrorCode() - return aTuple[0] - -def Tolerance(Shape): - aTuple = MeasuOp.GetTolerance(Shape) - if MeasuOp.IsDone() == 0: - print "Tolerance : ", MeasuOp.GetErrorCode() - return aTuple - -def WhatIs(Shape): - aDescr = MeasuOp.WhatIs(Shape) - if MeasuOp.IsDone() == 0: - print "WhatIs : ", MeasuOp.GetErrorCode() - return aDescr - -def MakeCDG(aShape): - anObj = MeasuOp.GetCentreOfMass(aShape) - if MeasuOp.IsDone() == 0: - print "GetCentreOfMass : ", MeasuOp.GetErrorCode() - return anObj - -def CheckShape(theShape, theIsCheckGeom = 0): - if theIsCheckGeom: - (IsValid, Status) = MeasuOp.CheckShapeWithGeometry(theShape) - else: - (IsValid, Status) = MeasuOp.CheckShape(theShape) - - if MeasuOp.IsDone() == 0: - print "CheckShape : ", MeasuOp.GetErrorCode() - else: - if IsValid == 0: - print Status - return IsValid - -# ----------------------------------------------------------------------------- -# Import/Export objects -# ----------------------------------------------------------------------------- - -def Import(filename, formatname): - anObj = InsertOp.Import(filename, formatname) - if InsertOp.IsDone() == 0: - print "Import : ", InsertOp.GetErrorCode() - return anObj - -def ImportBREP(theFileName): - return Import(theFileName, "BREP") - -def ImportIGES(theFileName): - return Import(theFileName, "IGES") - -def ImportSTEP(theFileName): - return Import(theFileName, "STEP") - -def Export(aShape, filename, formatname): - InsertOp.Export(aShape, filename, formatname) - if InsertOp.IsDone() == 0: - print "Export : ", InsertOp.GetErrorCode() - -def ExportBREP(theObject, theFileName): - return Export(theObject, theFileName, "BREP") - -def ExportIGES(theObject, theFileName): - return Export(theObject, theFileName, "IGES") - -def ExportSTEP(theObject, theFileName): - return Export(theObject, theFileName, "STEP") - -# ----------------------------------------------------------------------------- -# Block operations -# ----------------------------------------------------------------------------- - -def MakeQuad(E1, E2, E3, E4): - anObj = BlocksOp.MakeQuad(E1, E2, E3, E4) - if BlocksOp.IsDone() == 0: - print "MakeQuad : ", BlocksOp.GetErrorCode() - return anObj - -def MakeQuad2Edges(E1, E2): - anObj = BlocksOp.MakeQuad2Edges(E1, E2) - if BlocksOp.IsDone() == 0: - print "MakeQuad2Edges : ", BlocksOp.GetErrorCode() - return anObj - -def MakeQuad4Vertices(V1, V2, V3, V4): - anObj = BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4) - if BlocksOp.IsDone() == 0: - print "MakeQuad4Vertices : ", BlocksOp.GetErrorCode() - return anObj - -def MakeHexa(F1, F2, F3, F4, F5, F6): - anObj = BlocksOp.MakeHexa(F1, F2, F3, F4, F5, F6) - if BlocksOp.IsDone() == 0: - print "MakeHexa : ", BlocksOp.GetErrorCode() - return anObj - -def MakeHexa2Faces(F1, F2): - anObj = BlocksOp.MakeHexa2Faces(F1, F2) - if BlocksOp.IsDone() == 0: - print "MakeHexa2Faces : ", BlocksOp.GetErrorCode() - return anObj - -def GetPoint(theShape, theX, theY, theZ, theEpsilon): - anObj = BlocksOp.GetPoint(theShape, theX, theY, theZ, theEpsilon) - if BlocksOp.IsDone() == 0: - print "GetPoint : ", BlocksOp.GetErrorCode() - return anObj - -def GetEdge(theShape, thePoint1, thePoint2): - anObj = BlocksOp.GetEdge(theShape, thePoint1, thePoint2) - if BlocksOp.IsDone() == 0: - print "GetEdge : ", BlocksOp.GetErrorCode() - return anObj - -def GetEdgeNearPoint(theShape, thePoint): - anObj = BlocksOp.GetEdgeNearPoint(theShape, thePoint) - if BlocksOp.IsDone() == 0: - print "GetEdgeNearPoint : ", BlocksOp.GetErrorCode() - return anObj - -def GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4): - anObj = BlocksOp.GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4) - if BlocksOp.IsDone() == 0: - print "GetFaceByPoints : ", BlocksOp.GetErrorCode() - return anObj - -def GetFaceByEdges(theShape, theEdge1, theEdge2): - anObj = BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2) - if BlocksOp.IsDone() == 0: - print "GetFaceByEdges : ", BlocksOp.GetErrorCode() - return anObj - -def GetOppositeFace(theBlock, theFace): - anObj = BlocksOp.GetOppositeFace(theBlock, theFace) - if BlocksOp.IsDone() == 0: - print "GetOppositeFace : ", BlocksOp.GetErrorCode() - return anObj - -def GetFaceNearPoint(theShape, thePoint): - anObj = BlocksOp.GetFaceNearPoint(theShape, thePoint) - if BlocksOp.IsDone() == 0: - print "GetFaceNearPoint : ", BlocksOp.GetErrorCode() - return anObj - -def GetFaceByNormale(theBlock, theVector): - anObj = BlocksOp.GetFaceByNormale(theBlock, theVector) - if BlocksOp.IsDone() == 0: - print "GetFaceByNormale : ", BlocksOp.GetErrorCode() - return anObj - -def CheckCompoundOfBlocks(theCompound): - (IsValid, BCErrors) = BlocksOp.CheckCompoundOfBlocks(theCompound) - if BlocksOp.IsDone() == 0: - print "CheckCompoundOfBlocks : ", BlocksOp.GetErrorCode() - else: - if IsValid == 0: - Descr = BlocksOp.PrintBCErrors(theCompound, BCErrors) - print Descr - return IsValid - -def RemoveExtraEdges(theShape): - anObj = BlocksOp.RemoveExtraEdges(theShape) - if BlocksOp.IsDone() == 0: - print "RemoveExtraEdges : ", BlocksOp.GetErrorCode() - return anObj - -def CheckAndImprove(theShape): - anObj = BlocksOp.CheckAndImprove(theShape) - if BlocksOp.IsDone() == 0: - print "CheckAndImprove : ", BlocksOp.GetErrorCode() - return anObj - -def MakeBlockExplode(theCompound, theMinNbFaces, theMaxNbFaces): - aList = BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces) - if BlocksOp.IsDone() == 0: - print "MakeBlockExplode : ", BlocksOp.GetErrorCode() - return aList - -def GetBlockNearPoint(theCompound, thePoint): - anObj = BlocksOp.GetBlockNearPoint(theCompound, thePoint) - if BlocksOp.IsDone() == 0: - print "GetBlockNearPoint : ", BlocksOp.GetErrorCode() - return anObj - -def GetBlockByParts(theCompound, theParts): - anObj = BlocksOp.GetBlockByParts(theCompound, theParts) - if BlocksOp.IsDone() == 0: - print "GetBlockByParts : ", BlocksOp.GetErrorCode() - return anObj - -def GetBlocksByParts(theCompound, theParts): - aList = BlocksOp.GetBlocksByParts(theCompound, theParts) - if BlocksOp.IsDone() == 0: - print "GetBlocksByParts : ", BlocksOp.GetErrorCode() - return aList - -def MakeMultiTransformation1D(Block, DirFaceID1, DirFaceID2, NbTimes): - anObj = BlocksOp.MakeMultiTransformation1D(Block, DirFaceID1, DirFaceID2, NbTimes) - if BlocksOp.IsDone() == 0: - print "MakeMultiTransformation1D : ", BlocksOp.GetErrorCode() - return anObj - -def MakeMultiTransformation2D(Block, DirFaceID1U, DirFaceID2U, NbTimesU, - DirFaceID1V, DirFaceID2V, NbTimesV): - anObj = BlocksOp.MakeMultiTransformation2D(Block, DirFaceID1U, DirFaceID2U, NbTimesU, - DirFaceID1V, DirFaceID2V, NbTimesV) - if BlocksOp.IsDone() == 0: - print "MakeMultiTransformation2D : ", BlocksOp.GetErrorCode() - return anObj - -def Propagate(theShape): - listChains = BlocksOp.Propagate(theShape) - if BlocksOp.IsDone() == 0: - print "Propagate : ", BlocksOp.GetErrorCode() - return listChains - -# ----------------------------------------------------------------------------- -# Group operations -# ----------------------------------------------------------------------------- - -def CreateGroup(MainShape, ShapeType): - anObj = GroupOp.CreateGroup(MainShape, ShapeType) - if GroupOp.IsDone() == 0: - print "CreateGroup : ", GroupOp.GetErrorCode() - return anObj - -def AddObject(Group, SubShapeID): - GroupOp.AddObject(Group, SubShapeID) - if GroupOp.IsDone() == 0: - print "AddObject : ", GroupOp.GetErrorCode() - -def RemoveObject(Group, SubShapeID): - GroupOp.RemoveObject(Group, SubShapeID) - if GroupOp.IsDone() == 0: - print "RemoveObject : ", GroupOp.GetErrorCode() - -def UnionList (theGroup, theSubShapes): - GroupOp.UnionList(theGroup, theSubShapes) - if GroupOp.IsDone() == 0: - print "UnionList : ", GroupOp.GetErrorCode() - -def UnionIDs(theGroup, theSubShapes): - GroupOp.UnionIDs(theGroup, theSubShapes) - if GroupOp.IsDone() == 0: - print "UnionIDs : ", GroupOp.GetErrorCode() - -def DifferenceList (theGroup, theSubShapes): - GroupOp.DifferenceList(theGroup, theSubShapes) - if GroupOp.IsDone() == 0: - print "DifferenceList : ", GroupOp.GetErrorCode() - -def DifferenceIDs(theGroup, theSubShapes): - GroupOp.DifferenceIDs(theGroup, theSubShapes) - if GroupOp.IsDone() == 0: - print "DifferenceIDs : ", GroupOp.GetErrorCode() - -def GetObjectIDs(Group): - ListIDs = GroupOp.GetObjects(Group) - if GroupOp.IsDone() == 0: - print "GetObjectIDs : ", GroupOp.GetErrorCode() - return ListIDs - -def GetType(theGroup): - aType = GroupOp.GetType(theGroup) - if GroupOp.IsDone() == 0: - print "GetType : ", GroupOp.GetErrorCode() - return aType - -def GetMainShape(theGroup): - anObj = GroupOp.GetMainShape(theGroup) - if GroupOp.IsDone() == 0: - print "GetMainShape : ", GroupOp.GetErrorCode() - return anObj - -def GetEdgesByLength (theShape, min_length, max_length, include_min = 1, include_max = 1): - """ - Create group of edges of theShape, whose length is in range [min_length, max_length]. - If include_min/max == 0, edges with length == min/max_length will not be included in result. - """ - - edges = SubShapeAll(theShape, ShapeType["EDGE"]) - edges_in_range = [] - for edge in edges: - Props = BasicProperties(edge) - if min_length <= Props[0] and Props[0] <= max_length: - if (not include_min) and (min_length == Props[0]): - skip = 1 - else: - if (not include_max) and (Props[0] == max_length): - skip = 1 - else: - edges_in_range.append(edge) - - if len(edges_in_range) <= 0: - print "No edges found by given criteria" - return 0 - - group_edges = CreateGroup(theShape, ShapeType["EDGE"]) - UnionList(group_edges, edges_in_range) - - return group_edges - -# Add Path to the system path -# -def addPath(Path): - if (sys.path.count(Path) < 1): - sys.path.append(Path) +from geompy import * diff --git a/src/GEOM_SWIG/geompy.py b/src/GEOM_SWIG/geompy.py index 7a997f564..83b9fa7dd 100644 --- a/src/GEOM_SWIG/geompy.py +++ b/src/GEOM_SWIG/geompy.py @@ -1,6 +1,6 @@ -# GEOM GEOM_SWIG : binding of C++ omplementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -17,15 +17,14 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# GEOM GEOM_SWIG : binding of C++ omplementaion with Python # File : geompy.py # Author : Paul RASCLE, EDF # Module : GEOM # $Header$ - +# import salome import geompyDC from salome import * diff --git a/src/GEOM_SWIG/geompyDC.py b/src/GEOM_SWIG/geompyDC.py index 5853af966..849095d4e 100644 --- a/src/GEOM_SWIG/geompyDC.py +++ b/src/GEOM_SWIG/geompyDC.py @@ -1,6 +1,6 @@ -# GEOM GEOM_SWIG : binding of C++ omplementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -17,45 +17,162 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# GEOM GEOM_SWIG : binding of C++ omplementaion with Python # File : geompy.py # Author : Paul RASCLE, EDF # Module : GEOM -# $Header$ + """ \namespace geompy \brief Module geompy """ +## @defgroup l1_geompy_auxiliary Auxiliary data structures and methods + +## @defgroup l1_geompy_purpose All package methods, grouped by their purpose +## @{ +## @defgroup l2_import_export Importing/exporting geometrical objects +## @defgroup l2_creating Creating geometrical objects +## @{ +## @defgroup l3_basic_go Creating Basic Geometric Objects +## @{ +## @defgroup l4_curves Creating Curves + +## @} +## @defgroup l3_3d_primitives Creating 3D Primitives +## @defgroup l3_complex Creating Complex Objects +## @defgroup l3_groups Working with groups +## @defgroup l3_blocks Building by blocks +## @{ +## @defgroup l4_blocks_measure Check and Improve + +## @} +## @defgroup l3_sketcher Sketcher +## @defgroup l3_advanced Creating Advanced Geometrical Objects +## @{ +## @defgroup l4_decompose Decompose objects +## @defgroup l4_access Access to sub-shapes by their unique IDs inside the main shape +## @defgroup l4_obtain Access to subshapes by a criteria + +## @} + +## @} +## @defgroup l2_transforming Transforming geometrical objects +## @{ +## @defgroup l3_basic_op Basic Operations +## @defgroup l3_boolean Boolean Operations +## @defgroup l3_transform Transformation Operations +## @defgroup l3_local Local Operations (Fillet and Chamfer) +## @defgroup l3_blocks_op Blocks Operations +## @defgroup l3_healing Repairing Operations +## @defgroup l3_restore_ss Restore presentation parameters and a tree of subshapes + +## @} +## @defgroup l2_measure Using measurement tools + +## @} + import salome salome.salome_init() from salome import * +from salome_notebook import * + import GEOM +import math -# ----------------------------------------------------------------------------- -# enumeration ShapeType as a dictionary -# ----------------------------------------------------------------------------- - +## Enumeration ShapeType as a dictionary +# @ingroup l1_geompy_auxiliary ShapeType = {"COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8} -# ----------------------------------------------------------------------------- -# Raise an Error Function if Operation is Failed -# ----------------------------------------------------------------------------- +## Raise an Error, containing the Method_name, if Operation is Failed +## @ingroup l1_geompy_auxiliary def RaiseIfFailed (Method_name, Operation): - #NPAL18017#if Operation.IsDone() == 0: if Operation.IsDone() == 0 and Operation.GetErrorCode() != "NOT_FOUND_ANY": raise RuntimeError, Method_name + " : " + Operation.GetErrorCode() + +## Return list of variables value from salome notebook +## @ingroup l1_geompy_auxiliary +def ParseParameters(*parameters): + Result = [] + StringResult = "" + for parameter in parameters: + if isinstance(parameter,str): + if notebook.isVariable(parameter): + Result.append(notebook.get(parameter)) + else: + raise RuntimeError, "Variable with name '" + parameter + "' doesn't exist!!!" + else: + Result.append(parameter) + pass + + StringResult = StringResult + str(parameter) + StringResult = StringResult + ":" + pass + StringResult = StringResult[:len(StringResult)-1] + Result.append(StringResult) + return Result + +## Return list of variables value from salome notebook +## @ingroup l1_geompy_auxiliary +def ParseList(list): + Result = [] + StringResult = "" + for parameter in list: + if isinstance(parameter,str) and notebook.isVariable(parameter): + Result.append(str(notebook.get(parameter))) + pass + else: + Result.append(str(parameter)) + pass + + StringResult = StringResult + str(parameter) + StringResult = StringResult + ":" + pass + StringResult = StringResult[:len(StringResult)-1] + return Result, StringResult + +## Return list of variables value from salome notebook +## @ingroup l1_geompy_auxiliary +def ParseSketcherCommand(command): + Result = "" + StringResult = "" + sections = command.split(":") + for section in sections: + parameters = section.split(" ") + paramIndex = 1 + for parameter in parameters: + if paramIndex > 1 and parameter.find("'") != -1: + parameter = parameter.replace("'","") + if notebook.isVariable(parameter): + Result = Result + str(notebook.get(parameter)) + " " + pass + else: + raise RuntimeError, "Variable with name '" + parameter + "' doesn't exist!!!" + pass + pass + else: + Result = Result + str(parameter) + " " + pass + if paramIndex > 1: + StringResult = StringResult + parameter + StringResult = StringResult + ":" + pass + paramIndex = paramIndex + 1 + pass + Result = Result[:len(Result)-1] + ":" + pass + Result = Result[:len(Result)-1] + return Result, StringResult -# ----------------------------------------------------------------------------- -# enumeration shape_kind -# ----------------------------------------------------------------------------- - +## Kinds of shape enumeration +# @ingroup l1_geompy_auxiliary kind = GEOM.GEOM_IKindOfShape +## Information about closed/unclosed state of shell or wire +# @ingroup l1_geompy_auxiliary class info: UNKNOWN = 0 CLOSED = 1 @@ -63,12 +180,13 @@ class info: class geompyDC(GEOM._objref_GEOM_Gen): + def __init__(self): GEOM._objref_GEOM_Gen.__init__(self) self.myBuilder = None self.myStudyId = 0 self.father = None - + self.BasicOp = None self.CurvesOp = None self.PrimOp = None @@ -83,6 +201,8 @@ class geompyDC(GEOM._objref_GEOM_Gen): self.GroupOp = None pass + ## @addtogroup l1_geompy_auxiliary + ## @{ def init_geom(self,theStudy): self.myStudy = theStudy self.myStudyId = self.myStudy._get_StudyId() @@ -111,11 +231,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): self.BlocksOp = self.GetIBlocksOperations (self.myStudyId) self.GroupOp = self.GetIGroupOperations (self.myStudyId) pass - + ## Get name for sub-shape aSubObj of shape aMainObj # - # Example: see GEOM_TestAll.py + # @ref swig_SubShapeAllSorted "Example" def SubShapeName(self,aSubObj, aMainObj): + # Example: see GEOM_TestAll.py + #aSubId = orb.object_to_string(aSubObj) #aMainId = orb.object_to_string(aMainObj) #index = gg.getIndexTopology(aSubId, aMainId) @@ -123,45 +245,96 @@ class geompyDC(GEOM._objref_GEOM_Gen): index = self.ShapesOp.GetTopologyIndex(aMainObj, aSubObj) name = self.ShapesOp.GetShapeTypeString(aSubObj) + "_%d"%(index) return name - + ## Publish in study aShape with name aName # - # Example: see GEOM_TestAll.py - def addToStudy(self,aShape, aName): + # \param aShape the shape to be published + # \param aName the name for the shape + # \param doRestoreSubShapes if True, finds and publishes also + # sub-shapes of aShape, corresponding to its arguments + # and published sub-shapes of arguments + # \param theArgs,theFindMethod,theInheritFirstArg see geompy.RestoreSubShapes for + # these arguments description + # \return study entry of the published shape in form of string + # + # @ref swig_MakeQuad4Vertices "Example" + def addToStudy(self, aShape, aName, doRestoreSubShapes=False, + theArgs=[], theFindMethod=GEOM.FSM_GetInPlace, theInheritFirstArg=False): + # Example: see GEOM_TestAll.py try: aSObject = self.AddInStudy(self.myStudy, aShape, aName, None) + if doRestoreSubShapes: + self.RestoreSubShapesSO(self.myStudy, aSObject, theArgs, + theFindMethod, theInheritFirstArg) except: print "addToStudy() failed" return "" return aShape.GetStudyEntry() - + ## Publish in study aShape with name aName as sub-object of previously published aFather # - # Example: see GEOM_TestAll.py - def addToStudyInFather(self,aFather, aShape, aName): + # @ref swig_SubShapeAllSorted "Example" + def addToStudyInFather(self, aFather, aShape, aName): + # Example: see GEOM_TestAll.py try: aSObject = self.AddInStudy(myStudy, aShape, aName, aFather) except: print "addToStudyInFather() failed" return "" return aShape.GetStudyEntry() - - # ----------------------------------------------------------------------------- - # Basic primitives - # ----------------------------------------------------------------------------- - + + # end of l1_geompy_auxiliary + ## @} + + ## @addtogroup l3_restore_ss + ## @{ + + ## Publish sub-shapes, standing for arguments and sub-shapes of arguments + # To be used from python scripts out of geompy.addToStudy (non-default usage) + # \param theObject published GEOM object, arguments of which will be published + # \param theArgs list of GEOM_Object, operation arguments to be published. + # If this list is empty, all operation arguments will be published + # \param theFindMethod method to search subshapes, corresponding to arguments and + # their subshapes. Value from enumeration GEOM::find_shape_method. + # \param theInheritFirstArg set properties of the first argument for theObject. + # Do not publish subshapes in place of arguments, but only + # in place of subshapes of the first argument, + # because the whole shape corresponds to the first argument. + # Mainly to be used after transformations, but it also can be + # usefull after partition with one object shape, and some other + # operations, where only the first argument has to be considered. + # If theObject has only one argument shape, this flag is automatically + # considered as True, not regarding really passed value. + # \return True in case of success, False otherwise. + # + # @ref tui_restore_prs_params "Example" + def RestoreSubShapes (self, theObject, theArgs=[], + theFindMethod=GEOM.FSM_GetInPlace, theInheritFirstArg=False): + # Example: see GEOM_TestAll.py + return self.RestoreSubShapesO(self.myStudy, theObject, theArgs, + theFindMethod, theInheritFirstArg) + + # end of l3_restore_ss + ## @} + + ## @addtogroup l3_basic_go + ## @{ + ## Create point by three coordinates. # @param theX The X coordinate of the point. # @param theY The Y coordinate of the point. # @param theZ The Z coordinate of the point. # @return New GEOM_Object, containing the created point. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_point "Example" def MakeVertex(self,theX, theY, theZ): + # Example: see GEOM_TestAll.py + theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ) anObj = self.BasicOp.MakePointXYZ(theX, theY, theZ) RaiseIfFailed("MakePointXYZ", self.BasicOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a point, distant from the referenced point # on the given distances along the coordinate axes. # @param theReference The referenced point. @@ -170,99 +343,131 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theZ Displacement from the referenced point along OZ axis. # @return New GEOM_Object, containing the created point. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_point "Example" def MakeVertexWithRef(self,theReference, theX, theY, theZ): + # Example: see GEOM_TestAll.py + theX,theY,theZ,Parameters = ParseParameters(theX, theY, theZ) anObj = self.BasicOp.MakePointWithReference(theReference, theX, theY, theZ) RaiseIfFailed("MakePointWithReference", self.BasicOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a point, corresponding to the given parameter on the given curve. # @param theRefCurve The referenced curve. # @param theParameter Value of parameter on the referenced curve. # @return New GEOM_Object, containing the created point. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_point "Example" def MakeVertexOnCurve(self,theRefCurve, theParameter): + # Example: see GEOM_TestAll.py + theParameter, Parameters = ParseParameters(theParameter) anObj = self.BasicOp.MakePointOnCurve(theRefCurve, theParameter) RaiseIfFailed("MakePointOnCurve", self.BasicOp) + anObj.SetParameters(Parameters) + return anObj + + ## Create a point, corresponding to the given parameters on the + # given surface. + # @param theRefSurf The referenced surface. + # @param theUParameter Value of U-parameter on the referenced surface. + # @param theVParameter Value of V-parameter on the referenced surface. + # @return New GEOM_Object, containing the created point. + # + # @ref swig_MakeVertexOnSurface "Example" + def MakeVertexOnSurface(self, theRefSurf, theUParameter, theVParameter): + theUParameter, theVParameter, Parameters = ParseParameters(theUParameter, theVParameter) + # Example: see GEOM_TestAll.py + anObj = self.BasicOp.MakePointOnSurface(theRefSurf, theUParameter, theVParameter) + RaiseIfFailed("MakePointOnSurface", self.BasicOp) + anObj.SetParameters(Parameters); return anObj ## Create a point on intersection of two lines. # @param theRefLine1, theRefLine2 The referenced lines. # @return New GEOM_Object, containing the created point. # - # Example: see GEOM_TestAll.py + # @ref swig_MakeVertexOnLinesIntersection "Example" def MakeVertexOnLinesIntersection(self, theRefLine1, theRefLine2): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakePointOnLinesIntersection(theRefLine1, theRefLine2) RaiseIfFailed("MakePointOnLinesIntersection", self.BasicOp) return anObj - + ## Create a tangent, corresponding to the given parameter on the given curve. # @param theRefCurve The referenced curve. # @param theParameter Value of parameter on the referenced curve. # @return New GEOM_Object, containing the created tangent. - def MakeTangentOnCurve(self,theRefCurve, theParameter): + # + # @ref swig_MakeTangentOnCurve "Example" + def MakeTangentOnCurve(self, theRefCurve, theParameter): anObj = self.BasicOp.MakeTangentOnCurve(theRefCurve, theParameter) RaiseIfFailed("MakeTangentOnCurve", self.BasicOp) return anObj - + ## Create a vector with the given components. # @param theDX X component of the vector. # @param theDY Y component of the vector. # @param theDZ Z component of the vector. # @return New GEOM_Object, containing the created vector. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_vector "Example" def MakeVectorDXDYDZ(self,theDX, theDY, theDZ): + # Example: see GEOM_TestAll.py + theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ) anObj = self.BasicOp.MakeVectorDXDYDZ(theDX, theDY, theDZ) RaiseIfFailed("MakeVectorDXDYDZ", self.BasicOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a vector between two points. # @param thePnt1 Start point for the vector. # @param thePnt2 End point for the vector. # @return New GEOM_Object, containing the created vector. - - # Example: see GEOM_TestAll.py + # + # @ref tui_creation_vector "Example" def MakeVector(self,thePnt1, thePnt2): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakeVectorTwoPnt(thePnt1, thePnt2) RaiseIfFailed("MakeVectorTwoPnt", self.BasicOp) return anObj - + ## Create a line, passing through the given point # and parrallel to the given direction # @param thePnt Point. The resulting line will pass through it. # @param theDir Direction. The resulting line will be parallel to it. # @return New GEOM_Object, containing the created line. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_line "Example" def MakeLine(self,thePnt, theDir): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakeLine(thePnt, theDir) RaiseIfFailed("MakeLine", self.BasicOp) return anObj - + ## Create a line, passing through the given points # @param thePnt1 First of two points, defining the line. # @param thePnt2 Second of two points, defining the line. # @return New GEOM_Object, containing the created line. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_line "Example" def MakeLineTwoPnt(self,thePnt1, thePnt2): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakeLineTwoPnt(thePnt1, thePnt2) RaiseIfFailed("MakeLineTwoPnt", self.BasicOp) return anObj - ## Create a line on two faces intersection. + ## Create a line on two faces intersection. # @param theFace1 First of two faces, defining the line. # @param theFace2 Second of two faces, defining the line. # @return New GEOM_Object, containing the created line. # - # Example: see GEOM_TestAll.py + # @ref swig_MakeLineTwoFaces "Example" def MakeLineTwoFaces(self, theFace1, theFace2): + # Example: see GEOM_TestAll.py anObj = self.BasicOp.MakeLineTwoFaces(theFace1, theFace2) RaiseIfFailed("MakeLineTwoFaces", self.BasicOp) return anObj - + ## Create a plane, passing through the given point # and normal to the given vector. # @param thePnt Point, the plane has to pass through. @@ -270,12 +475,15 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theTrimSize Half size of a side of quadrangle face, representing the plane. # @return New GEOM_Object, containing the created plane. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_plane "Example" def MakePlane(self,thePnt, theVec, theTrimSize): + # Example: see GEOM_TestAll.py + theTrimSize, Parameters = ParseParameters(theTrimSize); anObj = self.BasicOp.MakePlanePntVec(thePnt, theVec, theTrimSize) RaiseIfFailed("MakePlanePntVec", self.BasicOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a plane, passing through the three given points # @param thePnt1 First of three points, defining the plane. # @param thePnt2 Second of three points, defining the plane. @@ -283,41 +491,52 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theTrimSize Half size of a side of quadrangle face, representing the plane. # @return New GEOM_Object, containing the created plane. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_plane "Example" def MakePlaneThreePnt(self,thePnt1, thePnt2, thePnt3, theTrimSize): + # Example: see GEOM_TestAll.py + theTrimSize, Parameters = ParseParameters(theTrimSize); anObj = self.BasicOp.MakePlaneThreePnt(thePnt1, thePnt2, thePnt3, theTrimSize) RaiseIfFailed("MakePlaneThreePnt", self.BasicOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a plane, similar to the existing one, but with another size of representing face. # @param theFace Referenced plane or LCS(Marker). # @param theTrimSize New half size of a side of quadrangle face, representing the plane. # @return New GEOM_Object, containing the created plane. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_plane "Example" def MakePlaneFace(self,theFace, theTrimSize): + # Example: see GEOM_TestAll.py + theTrimSize, Parameters = ParseParameters(theTrimSize); anObj = self.BasicOp.MakePlaneFace(theFace, theTrimSize) RaiseIfFailed("MakePlaneFace", self.BasicOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a local coordinate system. # @param OX,OY,OZ Three coordinates of coordinate system origin. # @param XDX,XDY,XDZ Three components of OX direction # @param YDX,YDY,YDZ Three components of OY direction # @return New GEOM_Object, containing the created coordinate system. # - # Example: see GEOM_TestAll.py - def MakeMarker(self,OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ): + # @ref swig_MakeMarker "Example" + def MakeMarker(self, OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ): + # Example: see GEOM_TestAll.py + OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ, Parameters = ParseParameters(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ); anObj = self.BasicOp.MakeMarker(OX,OY,OZ, XDX,XDY,XDZ, YDX,YDY,YDZ) RaiseIfFailed("MakeMarker", self.BasicOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a local coordinate system. # @param theOrigin Point of coordinate system origin. # @param theXVec Vector of X direction # @param theYVec Vector of Y direction # @return New GEOM_Object, containing the created coordinate system. - def MakeMarkerPntTwoVec(self,theOrigin, theXVec, theYVec): + # + # @ref swig_MakeMarker "Example" + def MakeMarkerPntTwoVec(self, theOrigin, theXVec, theYVec): O = self.PointCoordinates( theOrigin ) OXOY = [] for vec in [ theXVec, theYVec ]: @@ -332,53 +551,85 @@ class geompyDC(GEOM._objref_GEOM_Gen): OXOY[3], OXOY[4], OXOY[5], ) RaiseIfFailed("MakeMarker", self.BasicOp) return anObj - - # ----------------------------------------------------------------------------- - # Curves - # ----------------------------------------------------------------------------- - + + # end of l3_basic_go + ## @} + + ## @addtogroup l4_curves + ## @{ + ## Create an arc of circle, passing through three given points. # @param thePnt1 Start point of the arc. # @param thePnt2 Middle point of the arc. # @param thePnt3 End point of the arc. # @return New GEOM_Object, containing the created arc. # - # Example: see GEOM_TestAll.py + # @ref swig_MakeArc "Example" def MakeArc(self,thePnt1, thePnt2, thePnt3): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakeArc(thePnt1, thePnt2, thePnt3) RaiseIfFailed("MakeArc", self.CurvesOp) return anObj - + ## Create an arc of circle from a center and 2 points. # @param thePnt1 Center of the arc # @param thePnt2 Start point of the arc. (Gives also the radius of the arc) # @param thePnt3 End point of the arc (Gives also a direction) + # @param theSense Orientation of the arc # @return New GEOM_Object, containing the created arc. # - # Example: see GEOM_TestAll.py - def MakeArcCenter(self,thePnt1, thePnt2, thePnt3,theSense): - anObj = self.CurvesOp.MakeArcCenter(thePnt1, thePnt2, thePnt3,theSense) + # @ref swig_MakeArc "Example" + def MakeArcCenter(self, thePnt1, thePnt2, thePnt3, theSense=False): + # Example: see GEOM_TestAll.py + anObj = self.CurvesOp.MakeArcCenter(thePnt1, thePnt2, thePnt3, theSense) RaiseIfFailed("MakeArcCenter", self.CurvesOp) return anObj - + + ## Create an arc of ellipse, of center and two points. + # @param theCenter Center of the arc. + # @param thePnt1 defines major radius of the arc by distance from Pnt1 to Pnt2. + # @param thePnt2 defines plane of ellipse and minor radius as distance from Pnt3 to line from Pnt1 to Pnt2. + # @return New GEOM_Object, containing the created arc. + # + # @ref swig_MakeArc "Example" + def MakeArcOfEllipse(self,theCenter, thePnt1, thePnt2): + # Example: see GEOM_TestAll.py + anObj = self.CurvesOp.MakeArcOfEllipse(theCenter, thePnt1, thePnt2) + RaiseIfFailed("MakeArcOfEllipse", self.CurvesOp) + return anObj + ## Create a circle with given center, normal vector and radius. # @param thePnt Circle center. # @param theVec Vector, normal to the plane of the circle. # @param theR Circle radius. # @return New GEOM_Object, containing the created circle. # - # Example: see GEOM_TestAll.py - def MakeCircle(self,thePnt, theVec, theR): + # @ref tui_creation_circle "Example" + def MakeCircle(self, thePnt, theVec, theR): + # Example: see GEOM_TestAll.py + theR, Parameters = ParseParameters(theR) anObj = self.CurvesOp.MakeCirclePntVecR(thePnt, theVec, theR) RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp) + anObj.SetParameters(Parameters) return anObj - + + ## Create a circle with given radius. + # Center of the circle will be in the origin of global + # coordinate system and normal vector will be codirected with Z axis + # @param theR Circle radius. + # @return New GEOM_Object, containing the created circle. + def MakeCircleR(self, theR): + anObj = self.CurvesOp.MakeCirclePntVecR(None, None, theR) + RaiseIfFailed("MakeCirclePntVecR", self.CurvesOp) + return anObj + ## Create a circle, passing through three given points # @param thePnt1,thePnt2,thePnt3 Points, defining the circle. # @return New GEOM_Object, containing the created circle. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_circle "Example" def MakeCircleThreePnt(self,thePnt1, thePnt2, thePnt3): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakeCircleThreePnt(thePnt1, thePnt2, thePnt3) RaiseIfFailed("MakeCircleThreePnt", self.CurvesOp) return anObj @@ -389,12 +640,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param thePnt1,thePnt2,thePnt3 Points, defining the circle. # @return New GEOM_Object, containing the created circle. # - # Example: see GEOM_example6.py + # @ref swig_MakeCircle "Example" def MakeCircleCenter2Pnt(self,thePnt1, thePnt2, thePnt3): + # Example: see GEOM_example6.py anObj = self.CurvesOp.MakeCircleCenter2Pnt(thePnt1, thePnt2, thePnt3) RaiseIfFailed("MakeCircleCenter2Pnt", self.CurvesOp) return anObj - + ## Create an ellipse with given center, normal vector and radiuses. # @param thePnt Ellipse center. # @param theVec Vector, normal to the plane of the ellipse. @@ -402,44 +654,67 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theRMinor Minor ellipse radius. # @return New GEOM_Object, containing the created ellipse. # - # Example: see GEOM_TestAll.py - def MakeEllipse(self,thePnt, theVec, theRMajor, theRMinor): + # @ref tui_creation_ellipse "Example" + def MakeEllipse(self, thePnt, theVec, theRMajor, theRMinor): + # Example: see GEOM_TestAll.py + theRMajor, theRMinor, Parameters = ParseParameters(theRMajor, theRMinor) anObj = self.CurvesOp.MakeEllipse(thePnt, theVec, theRMajor, theRMinor) RaiseIfFailed("MakeEllipse", self.CurvesOp) + anObj.SetParameters(Parameters) return anObj - + + ## Create an ellipse with given radiuses. + # Center of the ellipse will be in the origin of global + # coordinate system and normal vector will be codirected with Z axis + # @param theRMajor Major ellipse radius. + # @param theRMinor Minor ellipse radius. + # @return New GEOM_Object, containing the created ellipse. + def MakeEllipseRR(self, theRMajor, theRMinor): + anObj = self.CurvesOp.MakeEllipse(None, None, theRMajor, theRMinor) + RaiseIfFailed("MakeEllipse", self.CurvesOp) + return anObj + ## Create a polyline on the set of points. # @param thePoints Sequence of points for the polyline. # @return New GEOM_Object, containing the created polyline. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_curve "Example" def MakePolyline(self,thePoints): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakePolyline(thePoints) RaiseIfFailed("MakePolyline", self.CurvesOp) return anObj - + ## Create bezier curve on the set of points. # @param thePoints Sequence of points for the bezier curve. # @return New GEOM_Object, containing the created bezier curve. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_curve "Example" def MakeBezier(self,thePoints): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakeSplineBezier(thePoints) RaiseIfFailed("MakeSplineBezier", self.CurvesOp) return anObj - + ## Create B-Spline curve on the set of points. # @param thePoints Sequence of points for the B-Spline curve. # @return New GEOM_Object, containing the created B-Spline curve. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_curve "Example" def MakeInterpol(self,thePoints): + # Example: see GEOM_TestAll.py anObj = self.CurvesOp.MakeSplineInterpolation(thePoints) RaiseIfFailed("MakeSplineInterpolation", self.CurvesOp) return anObj - + + # end of l4_curves + ## @} + + ## @addtogroup l3_sketcher + ## @{ + ## Create a sketcher (wire or face), following the textual description, - # passed through \a theCommand argument. \n + # passed through theCommand argument. \n # Edges of the resulting wire or face will be arcs of circles and/or linear segments. \n # Format of the description string have to be the following: # @@ -471,36 +746,56 @@ class geompyDC(GEOM._objref_GEOM_Gen): # OZ and OX directions of the working plane. # @return New GEOM_Object, containing the created wire. # - # Example: see GEOM_TestAll.py - def MakeSketcher(self,theCommand, theWorkingPlane = [0,0,0, 0,0,1, 1,0,0]): + # @ref tui_sketcher_page "Example" + def MakeSketcher(self, theCommand, theWorkingPlane = [0,0,0, 0,0,1, 1,0,0]): + # Example: see GEOM_TestAll.py + theCommand,Parameters = ParseSketcherCommand(theCommand) anObj = self.CurvesOp.MakeSketcher(theCommand, theWorkingPlane) RaiseIfFailed("MakeSketcher", self.CurvesOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a sketcher (wire or face), following the textual description, - # passed through \a theCommand argument. \n + # passed through theCommand argument. \n # For format of the description string see the previous method.\n # @param theCommand String, defining the sketcher in local # coordinates of the working plane. # @param theWorkingPlane Planar Face or LCS(Marker) of the working plane. # @return New GEOM_Object, containing the created wire. - def MakeSketcherOnPlane(self,theCommand, theWorkingPlane): + # + # @ref tui_sketcher_page "Example" + def MakeSketcherOnPlane(self, theCommand, theWorkingPlane): anObj = self.CurvesOp.MakeSketcherOnPlane(theCommand, theWorkingPlane) RaiseIfFailed("MakeSketcherOnPlane", self.CurvesOp) return anObj - - # ----------------------------------------------------------------------------- - # Create 3D Primitives - # ----------------------------------------------------------------------------- - + + ## Create a sketcher wire, following the numerical description, + # passed through theCoordinates argument. \n + # @param theCoordinates double values, defining points to create a wire, + # passing from it. + # @return New GEOM_Object, containing the created wire. + # + # @ref tui_sketcher_page "Example" + def Make3DSketcher(self, theCoordinates): + anObj = self.CurvesOp.Make3DSketcher(theCoordinates) + RaiseIfFailed("Make3DSketcher", self.CurvesOp) + return anObj + + # end of l3_sketcher + ## @} + + ## @addtogroup l3_3d_primitives + ## @{ + ## Create a box by coordinates of two opposite vertices. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_box "Example" def MakeBox(self,x1,y1,z1,x2,y2,z2): + # Example: see GEOM_TestAll.py pnt1 = self.MakeVertex(x1,y1,z1) pnt2 = self.MakeVertex(x2,y2,z2) return self.MakeBoxTwoPnt(pnt1,pnt2) - + ## Create a box with specified dimensions along the coordinate axes # and with edges, parallel to the coordinate axes. # Center of the box will be at point (DX/2, DY/2, DZ/2). @@ -509,24 +804,101 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theDZ Length of Box edges, parallel to OZ axis. # @return New GEOM_Object, containing the created box. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_box "Example" def MakeBoxDXDYDZ(self,theDX, theDY, theDZ): + # Example: see GEOM_TestAll.py + theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ) anObj = self.PrimOp.MakeBoxDXDYDZ(theDX, theDY, theDZ) RaiseIfFailed("MakeBoxDXDYDZ", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a box with two specified opposite vertices, # and with edges, parallel to the coordinate axes # @param thePnt1 First of two opposite vertices. # @param thePnt2 Second of two opposite vertices. # @return New GEOM_Object, containing the created box. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_box "Example" def MakeBoxTwoPnt(self,thePnt1, thePnt2): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeBoxTwoPnt(thePnt1, thePnt2) RaiseIfFailed("MakeBoxTwoPnt", self.PrimOp) return anObj - + + ## Create a face with specified dimensions along OX-OY coordinate axes, + # with edges, parallel to this coordinate axes. + # @param theH height of Face. + # @param theW width of Face. + # @param theOrientation orientation belong axis OXY OYZ OZX + # @return New GEOM_Object, containing the created face. + # + # @ref tui_creation_face "Example" + def MakeFaceHW(self,theH, theW, theOrientation): + # Example: see GEOM_TestAll.py + theH,theW,Parameters = ParseParameters(theH, theW) + anObj = self.PrimOp.MakeFaceHW(theH, theW, theOrientation) + RaiseIfFailed("MakeFaceHW", self.PrimOp) + anObj.SetParameters(Parameters) + return anObj + + ## Create a face from another plane and two sizes, + # vertical size and horisontal size. + # @param theObj Normale vector to the creating face or + # the face object. + # @param theH Height (vertical size). + # @param theW Width (horisontal size). + # @return New GEOM_Object, containing the created face. + # + # @ref tui_creation_face "Example" + def MakeFaceObjHW(self, theObj, theH, theW): + # Example: see GEOM_TestAll.py + theH,theW,Parameters = ParseParameters(theH, theW) + anObj = self.PrimOp.MakeFaceObjHW(theObj, theH, theW) + RaiseIfFailed("MakeFaceObjHW", self.PrimOp) + anObj.SetParameters(Parameters) + return anObj + + ## Create a disk with given center, normal vector and radius. + # @param thePnt Disk center. + # @param theVec Vector, normal to the plane of the disk. + # @param theR Disk radius. + # @return New GEOM_Object, containing the created disk. + # + # @ref tui_creation_disk "Example" + def MakeDiskPntVecR(self,thePnt, theVec, theR): + # Example: see GEOM_TestAll.py + theR,Parameters = ParseParameters(theR) + anObj = self.PrimOp.MakeDiskPntVecR(thePnt, theVec, theR) + RaiseIfFailed("MakeDiskPntVecR", self.PrimOp) + anObj.SetParameters(Parameters) + return anObj + + ## Create a disk, passing through three given points + # @param thePnt1,thePnt2,thePnt3 Points, defining the disk. + # @return New GEOM_Object, containing the created disk. + # + # @ref tui_creation_disk "Example" + def MakeDiskThreePnt(self,thePnt1, thePnt2, thePnt3): + # Example: see GEOM_TestAll.py + anObj = self.PrimOp.MakeDiskThreePnt(thePnt1, thePnt2, thePnt3) + RaiseIfFailed("MakeDiskThreePnt", self.PrimOp) + return anObj + + ## Create a disk with specified dimensions along OX-OY coordinate axes. + # @param theR Radius of Face. + # @param theOrientation set the orientation belong axis OXY or OYZ or OZX + # @return New GEOM_Object, containing the created disk. + # + # @ref tui_creation_face "Example" + def MakeDiskR(self,theR, theOrientation): + # Example: see GEOM_TestAll.py + theR,Parameters = ParseParameters(theR) + anObj = self.PrimOp.MakeDiskR(theR, theOrientation) + RaiseIfFailed("MakeDiskR", self.PrimOp) + anObj.SetParameters(Parameters) + return anObj + ## Create a cylinder with given base point, axis, radius and height. # @param thePnt Central point of cylinder base. # @param theAxis Cylinder axis. @@ -534,12 +906,15 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Cylinder height. # @return New GEOM_Object, containing the created cylinder. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_cylinder "Example" def MakeCylinder(self,thePnt, theAxis, theR, theH): + # Example: see GEOM_TestAll.py + theR,theH,Parameters = ParseParameters(theR, theH) anObj = self.PrimOp.MakeCylinderPntVecRH(thePnt, theAxis, theR, theH) RaiseIfFailed("MakeCylinderPntVecRH", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a cylinder with given radius and height at # the origin of coordinate system. Axis of the cylinder # will be collinear to the OZ axis of the coordinate system. @@ -547,30 +922,37 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Cylinder height. # @return New GEOM_Object, containing the created cylinder. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_cylinder "Example" def MakeCylinderRH(self,theR, theH): + # Example: see GEOM_TestAll.py + theR,theH,Parameters = ParseParameters(theR, theH) anObj = self.PrimOp.MakeCylinderRH(theR, theH) RaiseIfFailed("MakeCylinderRH", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a sphere with given center and radius. # @param thePnt Sphere center. # @param theR Sphere radius. # @return New GEOM_Object, containing the created sphere. # - # Example: see GEOM_TestAll.py - def MakeSpherePntR(self,thePnt, theR): + # @ref tui_creation_sphere "Example" + def MakeSpherePntR(self, thePnt, theR): + # Example: see GEOM_TestAll.py + theR,Parameters = ParseParameters(theR) anObj = self.PrimOp.MakeSpherePntR(thePnt, theR) RaiseIfFailed("MakeSpherePntR", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a sphere with given center and radius. # @param x,y,z Coordinates of sphere center. # @param theR Sphere radius. # @return New GEOM_Object, containing the created sphere. # - # Example: see GEOM_TestAll.py - def MakeSphere(self,x, y, z, theR): + # @ref tui_creation_sphere "Example" + def MakeSphere(self, x, y, z, theR): + # Example: see GEOM_TestAll.py point = self.MakeVertex(x, y, z) anObj = self.MakeSpherePntR(point, theR) return anObj @@ -579,12 +961,15 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theR Sphere radius. # @return New GEOM_Object, containing the created sphere. # - # Example: see GEOM_TestAll.py - def MakeSphereR(self,theR): + # @ref tui_creation_sphere "Example" + def MakeSphereR(self, theR): + # Example: see GEOM_TestAll.py + theR,Parameters = ParseParameters(theR) anObj = self.PrimOp.MakeSphereR(theR) RaiseIfFailed("MakeSphereR", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a cone with given base point, axis, height and radiuses. # @param thePnt Central point of the first cone base. # @param theAxis Cone axis. @@ -595,12 +980,15 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Cone height. # @return New GEOM_Object, containing the created cone. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_cone "Example" def MakeCone(self,thePnt, theAxis, theR1, theR2, theH): + # Example: see GEOM_TestAll.py + theR1,theR2,theH,Parameters = ParseParameters(theR1,theR2,theH) anObj = self.PrimOp.MakeConePntVecR1R2H(thePnt, theAxis, theR1, theR2, theH) RaiseIfFailed("MakeConePntVecR1R2H", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a cone with given height and radiuses at # the origin of coordinate system. Axis of the cone will # be collinear to the OZ axis of the coordinate system. @@ -611,12 +999,15 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Cone height. # @return New GEOM_Object, containing the created cone. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_cone "Example" def MakeConeR1R2H(self,theR1, theR2, theH): + # Example: see GEOM_TestAll.py + theR1,theR2,theH,Parameters = ParseParameters(theR1,theR2,theH) anObj = self.PrimOp.MakeConeR1R2H(theR1, theR2, theH) RaiseIfFailed("MakeConeR1R2H", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a torus with given center, normal vector and radiuses. # @param thePnt Torus central point. # @param theVec Torus axis of symmetry. @@ -624,35 +1015,48 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theRMinor Torus minor radius. # @return New GEOM_Object, containing the created torus. # - # Example: see GEOM_TestAll.py - def MakeTorus(self,thePnt, theVec, theRMajor, theRMinor): + # @ref tui_creation_torus "Example" + def MakeTorus(self, thePnt, theVec, theRMajor, theRMinor): + # Example: see GEOM_TestAll.py + theRMajor,theRMinor,Parameters = ParseParameters(theRMajor,theRMinor) anObj = self.PrimOp.MakeTorusPntVecRR(thePnt, theVec, theRMajor, theRMinor) RaiseIfFailed("MakeTorusPntVecRR", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - + ## Create a torus with given radiuses at the origin of coordinate system. # @param theRMajor Torus major radius. # @param theRMinor Torus minor radius. # @return New GEOM_Object, containing the created torus. # - # Example: see GEOM_TestAll.py - def MakeTorusRR(self,theRMajor, theRMinor): + # @ref tui_creation_torus "Example" + def MakeTorusRR(self, theRMajor, theRMinor): + # Example: see GEOM_TestAll.py + theRMajor,theRMinor,Parameters = ParseParameters(theRMajor,theRMinor) anObj = self.PrimOp.MakeTorusRR(theRMajor, theRMinor) RaiseIfFailed("MakeTorusRR", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - + + # end of l3_3d_primitives + ## @} + + ## @addtogroup l3_complex + ## @{ + ## Create a shape by extrusion of the base shape along a vector, defined by two points. # @param theBase Base shape to be extruded. # @param thePoint1 First end of extrusion vector. # @param thePoint2 Second end of extrusion vector. # @return New GEOM_Object, containing the created prism. # - # Example: see GEOM_TestAll.py - def MakePrism(self,theBase, thePoint1, thePoint2): + # @ref tui_creation_prism "Example" + def MakePrism(self, theBase, thePoint1, thePoint2): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakePrismTwoPnt(theBase, thePoint1, thePoint2) RaiseIfFailed("MakePrismTwoPnt", self.PrimOp) return anObj - + ## Create a shape by extrusion of the base shape along the vector, # i.e. all the space, transfixed by the base shape during its translation # along the vector on the given distance. @@ -661,10 +1065,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Prism dimension along theVec. # @return New GEOM_Object, containing the created prism. # - # Example: see GEOM_TestAll.py - def MakePrismVecH(self,theBase, theVec, theH): + # @ref tui_creation_prism "Example" + def MakePrismVecH(self, theBase, theVec, theH): + # Example: see GEOM_TestAll.py + theH,Parameters = ParseParameters(theH) anObj = self.PrimOp.MakePrismVecH(theBase, theVec, theH) RaiseIfFailed("MakePrismVecH", self.PrimOp) + anObj.SetParameters(Parameters) return anObj ## Create a shape by extrusion of the base shape along the vector, @@ -675,24 +1082,45 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theH Prism dimension along theVec in forward direction. # @return New GEOM_Object, containing the created prism. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_prism "Example" def MakePrismVecH2Ways(self, theBase, theVec, theH): + # Example: see GEOM_TestAll.py + theH,Parameters = ParseParameters(theH) anObj = self.PrimOp.MakePrismVecH2Ways(theBase, theVec, theH) RaiseIfFailed("MakePrismVecH2Ways", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - - ## Create a shape by extrusion of the base shape along - # the path shape. The path shape can be a wire or an edge. + + ## Create a shape by extrusion of the base shape along the dx, dy, dz direction # @param theBase Base shape to be extruded. - # @param thePath Path shape to extrude the base shape along it. - # @return New GEOM_Object, containing the created pipe. + # @param theDX, theDY, theDZ Directions of extrusion. + # @return New GEOM_Object, containing the created prism. # - # Example: see GEOM_TestAll.py - def MakePipe(self,theBase, thePath): - anObj = self.PrimOp.MakePipe(theBase, thePath) - RaiseIfFailed("MakePipe", self.PrimOp) + # @ref tui_creation_prism "Example" + def MakePrismDXDYDZ(self, theBase, theDX, theDY, theDZ): + # Example: see GEOM_TestAll.py + theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ) + anObj = self.PrimOp.MakePrismDXDYDZ(theBase, theDX, theDY, theDZ) + RaiseIfFailed("MakePrismDXDYDZ", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - + + ## Create a shape by extrusion of the base shape along the dx, dy, dz direction + # i.e. all the space, transfixed by the base shape during its translation + # along the vector on the given distance in 2 Ways (forward/backward) . + # @param theBase Base shape to be extruded. + # @param theDX, theDY, theDZ Directions of extrusion. + # @return New GEOM_Object, containing the created prism. + # + # @ref tui_creation_prism "Example" + def MakePrismDXDYDZ2Ways(self, theBase, theDX, theDY, theDZ): + # Example: see GEOM_TestAll.py + theDX,theDY,theDZ,Parameters = ParseParameters(theDX, theDY, theDZ) + anObj = self.PrimOp.MakePrismDXDYDZ2Ways(theBase, theDX, theDY, theDZ) + RaiseIfFailed("MakePrismDXDYDZ2Ways", self.PrimOp) + anObj.SetParameters(Parameters) + return anObj + ## Create a shape by revolution of the base shape around the axis # on the given angle, i.e. all the space, transfixed by the base # shape during its rotation around the axis on the given angle. @@ -701,17 +1129,48 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theAngle Rotation angle in radians. # @return New GEOM_Object, containing the created revolution. # - # Example: see GEOM_TestAll.py - def MakeRevolution(self,theBase, theAxis, theAngle): + # @ref tui_creation_revolution "Example" + def MakeRevolution(self, theBase, theAxis, theAngle): + # Example: see GEOM_TestAll.py + theAngle,Parameters = ParseParameters(theAngle) anObj = self.PrimOp.MakeRevolutionAxisAngle(theBase, theAxis, theAngle) RaiseIfFailed("MakeRevolutionAxisAngle", self.PrimOp) + anObj.SetParameters(Parameters) return anObj + ## The Same Revolution but in both ways forward&backward. def MakeRevolution2Ways(self, theBase, theAxis, theAngle): + theAngle,Parameters = ParseParameters(theAngle) anObj = self.PrimOp.MakeRevolutionAxisAngle2Ways(theBase, theAxis, theAngle) RaiseIfFailed("MakeRevolutionAxisAngle2Ways", self.PrimOp) + anObj.SetParameters(Parameters) return anObj - + + ## Create a filling from the given compound of contours. + # @param theShape the compound of contours + # @param theMinDeg a minimal degree of BSpline surface to create + # @param theMaxDeg a maximal degree of BSpline surface to create + # @param theTol2D a 2d tolerance to be reached + # @param theTol3D a 3d tolerance to be reached + # @param theNbIter a number of iteration of approximation algorithm + # @param isApprox if True, BSpline curves are generated in the process + # of surface construction. By default it is False, that means + # the surface is created using Besier curves. The usage of + # Approximation makes the algorithm work slower, but allows + # building the surface for rather complex cases + # @return New GEOM_Object, containing the created filling surface. + # + # @ref tui_creation_filling "Example" + def MakeFilling(self, theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter, isApprox=0): + # Example: see GEOM_TestAll.py + theMinDeg,theMaxDeg,theTol2D,theTol3D,theNbIter,Parameters = ParseParameters(theMinDeg, theMaxDeg, + theTol2D, theTol3D, theNbIter) + anObj = self.PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg, + theTol2D, theTol3D, theNbIter, isApprox) + RaiseIfFailed("MakeFilling", self.PrimOp) + anObj.SetParameters(Parameters) + return anObj + ## Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices. # @param theSeqSections - set of specified sections. # @param theModeSolid - mode defining building solid or shell @@ -719,12 +1178,26 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theRuled - mode defining type of the result surfaces (ruled or smoothed). # @return New GEOM_Object, containing the created shell or solid. # - # Example: see GEOM_TestAll.py + # @ref swig_todo "Example" def MakeThruSections(self,theSeqSections,theModeSolid,thePreci,theRuled): + # Example: see GEOM_TestAll.py anObj = self.PrimOp.MakeThruSections(theSeqSections,theModeSolid,thePreci,theRuled) RaiseIfFailed("MakeThruSections", self.PrimOp) return anObj - + + ## Create a shape by extrusion of the base shape along + # the path shape. The path shape can be a wire or an edge. + # @param theBase Base shape to be extruded. + # @param thePath Path shape to extrude the base shape along it. + # @return New GEOM_Object, containing the created pipe. + # + # @ref tui_creation_pipe "Example" + def MakePipe(self,theBase, thePath): + # Example: see GEOM_TestAll.py + anObj = self.PrimOp.MakePipe(theBase, thePath) + RaiseIfFailed("MakePipe", self.PrimOp) + return anObj + ## Create a shape by extrusion of the profile shape along # the path shape. The path shape can be a wire or an edge. # the several profiles can be specified in the several locations of path. @@ -735,10 +1208,11 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param thePath - Path shape to extrude the base shape along it. # @param theWithContact - the mode defining that the section is translated to be in # contact with the spine. - # @param - WithCorrection - defining that the section is rotated to be - # orthogonal to the spine tangent in the correspondent point + # @param theWithCorrection - defining that the section is rotated to be + # orthogonal to the spine tangent in the correspondent point # @return New GEOM_Object, containing the created pipe. # + # @ref tui_creation_pipe_with_diff_sec "Example" def MakePipeWithDifferentSections(self, theSeqBases, theLocations, thePath, theWithContact, theWithCorrection): @@ -747,12 +1221,18 @@ class geompyDC(GEOM._objref_GEOM_Gen): theWithContact, theWithCorrection) RaiseIfFailed("MakePipeWithDifferentSections", self.PrimOp) return anObj - + ## Create a shape by extrusion of the profile shape along - # the path shape. The path shape can be a shell or a face. + # the path shape. The path shape can be a wire or a edge. # the several profiles can be specified in the several locations of path. - # @param theSeqBases - list of Bases shape to be extruded. + # @param theSeqBases - list of Bases shape to be extruded. Base shape must be + # shell or face. If number of faces in neighbour sections + # aren't coincided result solid between such sections will + # be created using external boundaries of this shells. # @param theSeqSubBases - list of corresponding subshapes of section shapes. + # This list is used for searching correspondences between + # faces in the sections. Size of this list must be equal + # to size of list of base shapes. # @param theLocations - list of locations on the path corresponding # specified list of the Bases shapes. Number of locations # should be equal to number of bases. First and last @@ -761,10 +1241,11 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param thePath - Path shape to extrude the base shape along it. # @param theWithContact - the mode defining that the section is translated to be in # contact with the spine. - # @param - WithCorrection - defining that the section is rotated to be - # orthogonal to the spine tangent in the correspondent point + # @param theWithCorrection - defining that the section is rotated to be + # orthogonal to the spine tangent in the correspondent point # @return New GEOM_Object, containing the created solids. # + # @ref tui_creation_pipe_with_shell_sec "Example" def MakePipeWithShellSections(self,theSeqBases, theSeqSubBases, theLocations, thePath, theWithContact, theWithCorrection): @@ -774,6 +1255,12 @@ class geompyDC(GEOM._objref_GEOM_Gen): RaiseIfFailed("MakePipeWithShellSections", self.PrimOp) return anObj + ## Create a shape by extrusion of the profile shape along + # the path shape. This function is used only for debug pipe + # functionality - it is a version of previous function + # (MakePipeWithShellSections(...)) which give a possibility to + # recieve information about creating pipe between each pair of + # sections step by step. def MakePipeWithShellSectionsBySteps(self, theSeqBases, theSeqSubBases, theLocations, thePath, theWithContact, theWithCorrection): @@ -799,115 +1286,150 @@ class geompyDC(GEOM._objref_GEOM_Gen): res.append(anObj) pass pass - + resc = self.MakeCompound(res) #resc = self.MakeSewing(res, 0.001) #print "resc: ",resc return resc - + ## Create solids between given sections # @param theSeqBases - list of sections (shell or face). # @param theLocations - list of corresponding vertexes # @return New GEOM_Object, containing the created solids. # + # @ref tui_creation_pipe_without_path "Example" def MakePipeShellsWithoutPath(self, theSeqBases, theLocations): anObj = self.PrimOp.MakePipeShellsWithoutPath(theSeqBases, theLocations) RaiseIfFailed("MakePipeShellsWithoutPath", self.PrimOp) return anObj - - - # ----------------------------------------------------------------------------- - # Create base shapes - # ----------------------------------------------------------------------------- - + + ## Create a shape by extrusion of the base shape along + # the path shape with constant bi-normal direction along the given vector. + # The path shape can be a wire or an edge. + # @param theBase Base shape to be extruded. + # @param thePath Path shape to extrude the base shape along it. + # @param theVec Vector defines a constant binormal direction to keep the + # same angle beetween the direction and the sections + # along the sweep surface. + # @return New GEOM_Object, containing the created pipe. + # + # @ref tui_creation_pipe "Example" + def MakePipeBiNormalAlongVector(self,theBase, thePath, theVec): + # Example: see GEOM_TestAll.py + anObj = self.PrimOp.MakePipeBiNormalAlongVector(theBase, thePath, theVec) + RaiseIfFailed("MakePipeBiNormalAlongVector", self.PrimOp) + return anObj + + # end of l3_complex + ## @} + + ## @addtogroup l3_advanced + ## @{ + ## Create a linear edge with specified ends. # @param thePnt1 Point for the first end of edge. # @param thePnt2 Point for the second end of edge. # @return New GEOM_Object, containing the created edge. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_edge "Example" def MakeEdge(self,thePnt1, thePnt2): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeEdge(thePnt1, thePnt2) RaiseIfFailed("MakeEdge", self.ShapesOp) return anObj - + ## Create a wire from the set of edges and wires. # @param theEdgesAndWires List of edges and/or wires. # @return New GEOM_Object, containing the created wire. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_wire "Example" def MakeWire(self,theEdgesAndWires): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeWire(theEdgesAndWires) RaiseIfFailed("MakeWire", self.ShapesOp) return anObj - + ## Create a face on the given wire. # @param theWire closed Wire or Edge to build the face on. # @param isPlanarWanted If TRUE, only planar face will be built. # If impossible, NULL object will be returned. # @return New GEOM_Object, containing the created face. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_face "Example" def MakeFace(self,theWire, isPlanarWanted): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeFace(theWire, isPlanarWanted) RaiseIfFailed("MakeFace", self.ShapesOp) return anObj - + ## Create a face on the given wires set. # @param theWires List of closed wires or edges to build the face on. # @param isPlanarWanted If TRUE, only planar face will be built. # If impossible, NULL object will be returned. # @return New GEOM_Object, containing the created face. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_face "Example" def MakeFaceWires(self,theWires, isPlanarWanted): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeFaceWires(theWires, isPlanarWanted) RaiseIfFailed("MakeFaceWires", self.ShapesOp) return anObj - + ## Shortcut to MakeFaceWires() # - # Example: see GEOM_TestOthers.py + # @ref tui_creation_face "Example 1" + # \n @ref swig_MakeFaces "Example 2" def MakeFaces(self,theWires, isPlanarWanted): + # Example: see GEOM_TestOthers.py anObj = self.MakeFaceWires(theWires, isPlanarWanted) return anObj - + ## Create a shell from the set of faces and shells. # @param theFacesAndShells List of faces and/or shells. # @return New GEOM_Object, containing the created shell. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_shell "Example" def MakeShell(self,theFacesAndShells): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeShell(theFacesAndShells) RaiseIfFailed("MakeShell", self.ShapesOp) return anObj - + ## Create a solid, bounded by the given shells. # @param theShells Sequence of bounding shells. # @return New GEOM_Object, containing the created solid. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_solid "Example" def MakeSolid(self,theShells): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeSolidShells(theShells) RaiseIfFailed("MakeSolidShells", self.ShapesOp) return anObj - + ## Create a compound of the given shapes. # @param theShapes List of shapes to put in compound. # @return New GEOM_Object, containing the created compound. # - # Example: see GEOM_TestAll.py + # @ref tui_creation_compound "Example" def MakeCompound(self,theShapes): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.MakeCompound(theShapes) RaiseIfFailed("MakeCompound", self.ShapesOp) return anObj - + + # end of l3_advanced + ## @} + + ## @addtogroup l2_measure + ## @{ + ## Gives quantity of faces in the given shape. # @param theShape Shape to count faces of. # @return Quantity of faces. # - # Example: see GEOM_TestOthers.py + # @ref swig_NumberOfFaces "Example" def NumberOfFaces(self,theShape): + # Example: see GEOM_TestOthers.py nb_faces = self.ShapesOp.NumberOfFaces(theShape) RaiseIfFailed("NumberOfFaces", self.ShapesOp) return nb_faces @@ -916,54 +1438,72 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShape Shape to count edges of. # @return Quantity of edges. # - # Example: see GEOM_TestOthers.py + # @ref swig_NumberOfEdges "Example" def NumberOfEdges(self,theShape): + # Example: see GEOM_TestOthers.py nb_edges = self.ShapesOp.NumberOfEdges(theShape) RaiseIfFailed("NumberOfEdges", self.ShapesOp) return nb_edges - + + # end of l2_measure + ## @} + + ## @addtogroup l3_healing + ## @{ + ## Reverses an orientation the given shape. # @param theShape Shape to be reversed. # @return The reversed copy of theShape. # - # Example: see GEOM_TestAll.py + # @ref swig_ChangeOrientation "Example" def ChangeOrientation(self,theShape): + # Example: see GEOM_TestAll.py anObj = self.ShapesOp.ChangeOrientation(theShape) RaiseIfFailed("ChangeOrientation", self.ShapesOp) return anObj - + ## Shortcut to ChangeOrientation() # - # Example: see GEOM_TestOthers.py + # @ref swig_OrientationChange "Example" def OrientationChange(self,theShape): + # Example: see GEOM_TestOthers.py anObj = self.ChangeOrientation(theShape) return anObj - + + # end of l3_healing + ## @} + + ## @addtogroup l4_obtain + ## @{ + ## Retrieve all free faces from the given shape. # Free face is a face, which is not shared between two shells of the shape. # @param theShape Shape to find free faces in. # @return List of IDs of all free faces, contained in theShape. # - # Example: see GEOM_TestOthers.py + # @ref tui_measurement_tools_page "Example" def GetFreeFacesIDs(self,theShape): + # Example: see GEOM_TestOthers.py anIDs = self.ShapesOp.GetFreeFacesIDs(theShape) RaiseIfFailed("GetFreeFacesIDs", self.ShapesOp) return anIDs - + ## Get all sub-shapes of theShape1 of the given type, shared with theShape2. # @param theShape1 Shape to find sub-shapes in. # @param theShape2 Shape to find shared sub-shapes with. # @param theShapeType Type of sub-shapes to be retrieved. # @return List of sub-shapes of theShape1, shared with theShape2. # - # Example: see GEOM_TestOthers.py + # @ref swig_GetSharedShapes "Example" def GetSharedShapes(self,theShape1, theShape2, theShapeType): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetSharedShapes(theShape1, theShape2, theShapeType) RaiseIfFailed("GetSharedShapes", self.ShapesOp) return aList - - ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively - # the specified plane by the certain way, defined through \a theState parameter. + + ## Find in theShape all sub-shapes of type theShapeType, + # situated relatively the specified plane by the certain way, + # defined through theState parameter. # @param theShape Shape to find sub-shapes of. # @param theShapeType Type of sub-shapes to be retrieved. # @param theAx1 Vector (or line, or linear edge), specifying normal @@ -972,45 +1512,52 @@ class geompyDC(GEOM._objref_GEOM_Gen): # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # - # Example: see GEOM_TestOthers.py + # @ref swig_GetShapesOnPlane "Example" def GetShapesOnPlane(self,theShape, theShapeType, theAx1, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnPlane(theShape, theShapeType, theAx1, theState) RaiseIfFailed("GetShapesOnPlane", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # - # Example: see GEOM_TestOthers.py + # @ref swig_GetShapesOnPlaneIDs "Example" def GetShapesOnPlaneIDs(self,theShape, theShapeType, theAx1, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnPlaneIDs(theShape, theShapeType, theAx1, theState) RaiseIfFailed("GetShapesOnPlaneIDs", self.ShapesOp) return aList - - ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively - # the specified plane by the certain way, defined through \a theState parameter. + + ## Find in theShape all sub-shapes of type theShapeType, + # situated relatively the specified plane by the certain way, + # defined through theState parameter. # @param theShape Shape to find sub-shapes of. # @param theShapeType Type of sub-shapes to be retrieved. # @param theAx1 Vector (or line, or linear edge), specifying normal # direction of the plane to find shapes on. # @param thePnt Point specifying location of the plane to find shapes on. # @param theState The state of the subshapes to find. It can be one of - # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. + # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # - # Example: see GEOM_TestOthers.py - def GetShapesOnPlaneWithLocation(self,theShape, theShapeType, theAx1, thePnt, theState): - aList = self.ShapesOp.GetShapesOnPlaneWithLocation(theShape, theShapeType, theAx1, thePnt, theState) + # @ref swig_GetShapesOnPlaneWithLocation "Example" + def GetShapesOnPlaneWithLocation(self, theShape, theShapeType, theAx1, thePnt, theState): + # Example: see GEOM_TestOthers.py + aList = self.ShapesOp.GetShapesOnPlaneWithLocation(theShape, theShapeType, + theAx1, thePnt, theState) RaiseIfFailed("GetShapesOnPlaneWithLocation", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # - # Example: see GEOM_TestOthers.py - def GetShapesOnPlaneWithLocationIDs(self,theShape, theShapeType, theAx1, thePnt, theState): - aList = self.ShapesOp.GetShapesOnPlaneWithLocationIDs(theShape, theShapeType, theAx1, thePnt, theState) + # @ref swig_GetShapesOnPlaneWithLocationIDs "Example" + def GetShapesOnPlaneWithLocationIDs(self, theShape, theShapeType, theAx1, thePnt, theState): + # Example: see GEOM_TestOthers.py + aList = self.ShapesOp.GetShapesOnPlaneWithLocationIDs(theShape, theShapeType, + theAx1, thePnt, theState) RaiseIfFailed("GetShapesOnPlaneWithLocationIDs", self.ShapesOp) return aList - + ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively # the specified cylinder by the certain way, defined through \a theState parameter. # @param theShape Shape to find sub-shapes of. @@ -1022,20 +1569,22 @@ class geompyDC(GEOM._objref_GEOM_Gen): # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # - # Example: see GEOM_TestOthers.py - def GetShapesOnCylinder(self,theShape, theShapeType, theAxis, theRadius, theState): + # @ref swig_GetShapesOnCylinder "Example" + def GetShapesOnCylinder(self, theShape, theShapeType, theAxis, theRadius, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnCylinder(theShape, theShapeType, theAxis, theRadius, theState) RaiseIfFailed("GetShapesOnCylinder", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # - # Example: see GEOM_TestOthers.py - def GetShapesOnCylinderIDs(self,theShape, theShapeType, theAxis, theRadius, theState): + # @ref swig_GetShapesOnCylinderIDs "Example" + def GetShapesOnCylinderIDs(self, theShape, theShapeType, theAxis, theRadius, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnCylinderIDs(theShape, theShapeType, theAxis, theRadius, theState) RaiseIfFailed("GetShapesOnCylinderIDs", self.ShapesOp) return aList - + ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively # the specified sphere by the certain way, defined through \a theState parameter. # @param theShape Shape to find sub-shapes of. @@ -1046,20 +1595,22 @@ class geompyDC(GEOM._objref_GEOM_Gen): # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # - # Example: see GEOM_TestOthers.py + # @ref swig_GetShapesOnSphere "Example" def GetShapesOnSphere(self,theShape, theShapeType, theCenter, theRadius, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnSphere(theShape, theShapeType, theCenter, theRadius, theState) RaiseIfFailed("GetShapesOnSphere", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # - # Example: see GEOM_TestOthers.py + # @ref swig_GetShapesOnSphereIDs "Example" def GetShapesOnSphereIDs(self,theShape, theShapeType, theCenter, theRadius, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnSphereIDs(theShape, theShapeType, theCenter, theRadius, theState) RaiseIfFailed("GetShapesOnSphereIDs", self.ShapesOp) return aList - + ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively # the specified quadrangle by the certain way, defined through \a theState parameter. # @param theShape Shape to find sub-shapes of. @@ -1069,56 +1620,109 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theBottomLeftPoint Point, specifying bottom left corner of a quadrangle # @param theBottomRigthPoint Point, specifying bottom right corner of a quadrangle # @param theState The state of the subshapes to find. It can be one of - # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. + # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # - # Example: see GEOM_TestOthers.py - def GetShapesOnQuadrangle(self,theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState): - aList = self.ShapesOp.GetShapesOnQuadrangle(theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState) + # @ref swig_GetShapesOnQuadrangle "Example" + def GetShapesOnQuadrangle(self, theShape, theShapeType, + theTopLeftPoint, theTopRigthPoint, + theBottomLeftPoint, theBottomRigthPoint, theState): + # Example: see GEOM_TestOthers.py + aList = self.ShapesOp.GetShapesOnQuadrangle(theShape, theShapeType, + theTopLeftPoint, theTopRigthPoint, + theBottomLeftPoint, theBottomRigthPoint, theState) RaiseIfFailed("GetShapesOnQuadrangle", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # - # Example: see GEOM_TestOthers.py - def GetShapesOnQuadrangleIDs(self,theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState): - aList = self.ShapesOp.GetShapesOnQuadrangleIDs(theShape, theShapeType, theTopLeftPoint, theTopRigthPoint, theBottomLeftPoint, theBottomRigthPoint, theState) + # @ref swig_GetShapesOnQuadrangleIDs "Example" + def GetShapesOnQuadrangleIDs(self, theShape, theShapeType, + theTopLeftPoint, theTopRigthPoint, + theBottomLeftPoint, theBottomRigthPoint, theState): + # Example: see GEOM_TestOthers.py + aList = self.ShapesOp.GetShapesOnQuadrangleIDs(theShape, theShapeType, + theTopLeftPoint, theTopRigthPoint, + theBottomLeftPoint, theBottomRigthPoint, theState) RaiseIfFailed("GetShapesOnQuadrangleIDs", self.ShapesOp) return aList - + ## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively # the specified \a theBox by the certain way, defined through \a theState parameter. # @param theBox Shape for relative comparing. # @param theShape Shape to find sub-shapes of. # @param theShapeType Type of sub-shapes to be retrieved. # @param theState The state of the subshapes to find. It can be one of - # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. + # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. # @return List of all found sub-shapes. # - def GetShapesOnBox(self,theBox, theShape, theShapeType, theState): + # @ref swig_GetShapesOnBox "Example" + def GetShapesOnBox(self, theBox, theShape, theShapeType, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnBox(theBox, theShape, theShapeType, theState) RaiseIfFailed("GetShapesOnBox", self.ShapesOp) return aList - + ## Works like the above method, but returns list of sub-shapes indices # - def GetShapesOnBoxIDs(self,theBox, theShape, theShapeType, theState): + # @ref swig_GetShapesOnBoxIDs "Example" + def GetShapesOnBoxIDs(self, theBox, theShape, theShapeType, theState): + # Example: see GEOM_TestOthers.py aList = self.ShapesOp.GetShapesOnBoxIDs(theBox, theShape, theShapeType, theState) RaiseIfFailed("GetShapesOnBoxIDs", self.ShapesOp) return aList - + + ## Find in \a theShape all sub-shapes of type \a theShapeType, + # situated relatively the specified \a theCheckShape by the + # certain way, defined through \a theState parameter. + # @param theCheckShape Shape for relative comparing. + # @param theShape Shape to find sub-shapes of. + # @param theShapeType Type of sub-shapes to be retrieved. + # @param theState The state of the subshapes to find. It can be one of + # ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN. + # @return List of all found sub-shapes. + # + # @ref swig_GetShapesOnShape "Example" + def GetShapesOnShape(self, theCheckShape, theShape, theShapeType, theState): + # Example: see GEOM_TestOthers.py + aList = self.ShapesOp.GetShapesOnShape(theCheckShape, theShape, + theShapeType, theState) + RaiseIfFailed("GetShapesOnShape", self.ShapesOp) + return aList + + ## Works like the above method, but returns result as compound + # + # @ref swig_GetShapesOnShapeAsCompound "Example" + def GetShapesOnShapeAsCompound(self, theCheckShape, theShape, theShapeType, theState): + # Example: see GEOM_TestOthers.py + anObj = self.ShapesOp.GetShapesOnShapeAsCompound(theCheckShape, theShape, + theShapeType, theState) + RaiseIfFailed("GetShapesOnShapeAsCompound", self.ShapesOp) + return anObj + + ## Works like the above method, but returns list of sub-shapes indices + # + # @ref swig_GetShapesOnShapeIDs "Example" + def GetShapesOnShapeIDs(self, theCheckShape, theShape, theShapeType, theState): + # Example: see GEOM_TestOthers.py + aList = self.ShapesOp.GetShapesOnShapeIDs(theCheckShape, theShape, + theShapeType, theState) + RaiseIfFailed("GetShapesOnShapeIDs", self.ShapesOp) + return aList + ## Get sub-shape(s) of theShapeWhere, which are # coincident with \a theShapeWhat or could be a part of it. # @param theShapeWhere Shape to find sub-shapes of. # @param theShapeWhat Shape, specifying what to find. # @return Group of all found sub-shapes or a single found sub-shape. # - # Example: see GEOM_TestOthers.py + # @ref swig_GetInPlace "Example" def GetInPlace(self,theShapeWhere, theShapeWhat): + # Example: see GEOM_TestOthers.py anObj = self.ShapesOp.GetInPlace(theShapeWhere, theShapeWhat) RaiseIfFailed("GetInPlace", self.ShapesOp) return anObj - + ## Get sub-shape(s) of \a theShapeWhere, which are # coincident with \a theShapeWhat or could be a part of it. # @@ -1133,8 +1737,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): # building history of the ShapeWhere). # @return Group of all found sub-shapes or a single found sub-shape. # - # Example: see GEOM_TestOthers.py + # @ref swig_GetInPlace "Example" def GetInPlaceByHistory(self, theShapeWhere, theShapeWhat): + # Example: see GEOM_TestOthers.py anObj = self.ShapesOp.GetInPlaceByHistory(theShapeWhere, theShapeWhat) RaiseIfFailed("GetInPlaceByHistory", self.ShapesOp) return anObj @@ -1145,83 +1750,97 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShapeWhat Shape, specifying what to find. # @return New GEOM_Object for found sub-shape. # + # @ref swig_GetSame "Example" def GetSame(self,theShapeWhere, theShapeWhat): anObj = self.ShapesOp.GetSame(theShapeWhere, theShapeWhat) RaiseIfFailed("GetSame", self.ShapesOp) return anObj - - # ----------------------------------------------------------------------------- - # Access to sub-shapes by their unique IDs inside the main shape. - # ----------------------------------------------------------------------------- - - ## Obtain a composite sub-shape of , composed from sub-shapes - # of , selected by their unique IDs inside + + # end of l4_obtain + ## @} + + ## @addtogroup l4_access + ## @{ + + ## Obtain a composite sub-shape of aShape, composed from sub-shapes + # of aShape, selected by their unique IDs inside aShape # - # Example: see GEOM_TestAll.py - def GetSubShape(self,aShape, ListOfID): + # @ref swig_all_decompose "Example" + def GetSubShape(self, aShape, ListOfID): + # Example: see GEOM_TestAll.py anObj = self.AddSubShape(aShape,ListOfID) return anObj - - ## Obtain unique ID of sub-shape inside + + ## Obtain unique ID of sub-shape aSubShape inside aShape # - # Example: see GEOM_TestAll.py - def GetSubShapeID(self,aShape, aSubShape): + # @ref swig_all_decompose "Example" + def GetSubShapeID(self, aShape, aSubShape): + # Example: see GEOM_TestAll.py anID = self.LocalOp.GetSubShapeIndex(aShape, aSubShape) RaiseIfFailed("GetSubShapeIndex", self.LocalOp) return anID - - # ----------------------------------------------------------------------------- - # Decompose objects - # ----------------------------------------------------------------------------- - + + # end of l4_access + ## @} + + ## @addtogroup l4_decompose + ## @{ + ## Explode a shape on subshapes of a given type. - # @param theShape Shape to be exploded. - # @param theShapeType Type of sub-shapes to be retrieved. + # @param aShape Shape to be exploded. + # @param aType Type of sub-shapes to be retrieved. # @return List of sub-shapes of type theShapeType, contained in theShape. # - # Example: see GEOM_TestAll.py - def SubShapeAll(self,aShape, aType): + # @ref swig_all_decompose "Example" + def SubShapeAll(self, aShape, aType): + # Example: see GEOM_TestAll.py ListObj = self.ShapesOp.MakeExplode(aShape,aType,0) RaiseIfFailed("MakeExplode", self.ShapesOp) return ListObj - + ## Explode a shape on subshapes of a given type. - # @param theShape Shape to be exploded. - # @param theShapeType Type of sub-shapes to be retrieved. + # @param aShape Shape to be exploded. + # @param aType Type of sub-shapes to be retrieved. # @return List of IDs of sub-shapes. - def SubShapeAllIDs(self,aShape, aType): + # + # @ref swig_all_decompose "Example" + def SubShapeAllIDs(self, aShape, aType): ListObj = self.ShapesOp.SubShapeAllIDs(aShape,aType,0) RaiseIfFailed("SubShapeAllIDs", self.ShapesOp) return ListObj - + ## Explode a shape on subshapes of a given type. # Sub-shapes will be sorted by coordinates of their gravity centers. - # @param theShape Shape to be exploded. - # @param theShapeType Type of sub-shapes to be retrieved. + # @param aShape Shape to be exploded. + # @param aType Type of sub-shapes to be retrieved. # @return List of sub-shapes of type theShapeType, contained in theShape. # - # Example: see GEOM_TestAll.py - def SubShapeAllSorted(self,aShape, aType): + # @ref swig_SubShapeAllSorted "Example" + def SubShapeAllSorted(self, aShape, aType): + # Example: see GEOM_TestAll.py ListObj = self.ShapesOp.MakeExplode(aShape,aType,1) RaiseIfFailed("MakeExplode", self.ShapesOp) return ListObj - + ## Explode a shape on subshapes of a given type. # Sub-shapes will be sorted by coordinates of their gravity centers. - # @param theShape Shape to be exploded. - # @param theShapeType Type of sub-shapes to be retrieved. + # @param aShape Shape to be exploded. + # @param aType Type of sub-shapes to be retrieved. # @return List of IDs of sub-shapes. - def SubShapeAllSortedIDs(self,aShape, aType): + # + # @ref swig_all_decompose "Example" + def SubShapeAllSortedIDs(self, aShape, aType): ListIDs = self.ShapesOp.SubShapeAllIDs(aShape,aType,1) RaiseIfFailed("SubShapeAllIDs", self.ShapesOp) return ListIDs - - ## Obtain a compound of sub-shapes of , - # selected by they indices in list of all sub-shapes of type . + + ## Obtain a compound of sub-shapes of aShape, + # selected by they indices in list of all sub-shapes of type aType. # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type] # - # Example: see GEOM_TestAll.py - def SubShape(self,aShape, aType, ListOfInd): + # @ref swig_all_decompose "Example" + def SubShape(self, aShape, aType, ListOfInd): + # Example: see GEOM_TestAll.py ListOfIDs = [] AllShapeList = self.SubShapeAll(aShape, aType) for ind in ListOfInd: @@ -1229,54 +1848,65 @@ class geompyDC(GEOM._objref_GEOM_Gen): anObj = self.GetSubShape(aShape, ListOfIDs) return anObj - ## Obtain a compound of sub-shapes of , - # selected by they indices in sorted list of all sub-shapes of type . + ## Obtain a compound of sub-shapes of aShape, + # selected by they indices in sorted list of all sub-shapes of type aType. # Each index is in range [1, Nb_Sub-Shapes_Of_Given_Type] # - # Example: see GEOM_TestAll.py + # @ref swig_all_decompose "Example" def SubShapeSorted(self,aShape, aType, ListOfInd): + # Example: see GEOM_TestAll.py ListOfIDs = [] AllShapeList = self.SubShapeAllSorted(aShape, aType) for ind in ListOfInd: ListOfIDs.append(self.GetSubShapeID(aShape, AllShapeList[ind - 1])) anObj = self.GetSubShape(aShape, ListOfIDs) return anObj - - # ----------------------------------------------------------------------------- - # Healing operations - # ----------------------------------------------------------------------------- - + + # end of l4_decompose + ## @} + + ## @addtogroup l3_healing + ## @{ + ## Apply a sequence of Shape Healing operators to the given object. # @param theShape Shape to be processed. # @param theOperators List of names of operators ("FixShape", "SplitClosedFaces", etc.). # @param theParameters List of names of parameters # ("FixShape.Tolerance3d", "SplitClosedFaces.NbSplitPoints", etc.). # @param theValues List of values of parameters, in the same order - # as parameters are listed in \a theParameters list. + # as parameters are listed in theParameters list. # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_shape_processing "Example" def ProcessShape(self,theShape, theOperators, theParameters, theValues): + # Example: see GEOM_TestHealing.py + theValues,Parameters = ParseList(theValues) anObj = self.HealOp.ProcessShape(theShape, theOperators, theParameters, theValues) RaiseIfFailed("ProcessShape", self.HealOp) + for string in (theOperators + theParameters): + Parameters = ":" + Parameters + pass + anObj.SetParameters(Parameters) return anObj - + ## Remove faces from the given object (shape). # @param theObject Shape to be processed. # @param theFaces Indices of faces to be removed, if EMPTY then the method # removes ALL faces of the given object. # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_suppress_faces "Example" def SuppressFaces(self,theObject, theFaces): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.SuppressFaces(theObject, theFaces) RaiseIfFailed("SuppressFaces", self.HealOp) return anObj ## Sewing of some shapes into single shape. # - # Example: see GEOM_TestHealing.py - def MakeSewing(self,ListShape, theTolerance): + # @ref tui_sewing "Example" + def MakeSewing(self, ListShape, theTolerance): + # Example: see GEOM_TestHealing.py comp = self.MakeCompound(ListShape) anObj = self.Sew(comp, theTolerance) return anObj @@ -1285,51 +1915,55 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theObject Shape to be processed. # @param theTolerance Required tolerance value. # @return New GEOM_Object, containing processed shape. - # - # Example: see MakeSewing() above - def Sew(self,theObject, theTolerance): + def Sew(self, theObject, theTolerance): + # Example: see MakeSewing() above + theTolerance,Parameters = ParseParameters(theTolerance) anObj = self.HealOp.Sew(theObject, theTolerance) RaiseIfFailed("Sew", self.HealOp) + anObj.SetParameters(Parameters) return anObj - + ## Remove internal wires and edges from the given object (face). # @param theObject Shape to be processed. # @param theWires Indices of wires to be removed, if EMPTY then the method # removes ALL internal wires of the given object. # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_suppress_internal_wires "Example" def SuppressInternalWires(self,theObject, theWires): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.RemoveIntWires(theObject, theWires) RaiseIfFailed("RemoveIntWires", self.HealOp) return anObj - + ## Remove internal closed contours (holes) from the given object. # @param theObject Shape to be processed. # @param theWires Indices of wires to be removed, if EMPTY then the method # removes ALL internal holes of the given object # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_suppress_holes "Example" def SuppressHoles(self,theObject, theWires): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.FillHoles(theObject, theWires) RaiseIfFailed("FillHoles", self.HealOp) return anObj - + ## Close an open wire. # @param theObject Shape to be processed. # @param theWires Indexes of edge(s) and wire(s) to be closed within theObject's shape, - # if -1, then theObject itself is a wire. + # if -1, then theObject itself is a wire. # @param isCommonVertex If TRUE : closure by creation of a common vertex, # If FALS : closure by creation of an edge between ends. # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_close_contour "Example" def CloseContour(self,theObject, theWires, isCommonVertex): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.CloseContour(theObject, theWires, isCommonVertex) RaiseIfFailed("CloseContour", self.HealOp) return anObj - + ## Addition of a point to a given edge object. # @param theObject Shape to be processed. # @param theEdgeIndex Index of edge to be divided within theObject's shape, @@ -1340,28 +1974,34 @@ class geompyDC(GEOM._objref_GEOM_Gen): # if FALSE : \a theValue is treated as a length parameter [0..1] # @return New GEOM_Object, containing processed shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_add_point_on_edge "Example" def DivideEdge(self,theObject, theEdgeIndex, theValue, isByParameter): + # Example: see GEOM_TestHealing.py + theEdgeIndex,theValue,isByParameter,Parameters = ParseParameters(theEdgeIndex,theValue,isByParameter) anObj = self.HealOp.DivideEdge(theObject, theEdgeIndex, theValue, isByParameter) RaiseIfFailed("DivideEdge", self.HealOp) + anObj.SetParameters(Parameters) return anObj - - ## Change orientation of the given object. + + ## Change orientation of the given object. Updates given shape. # @param theObject Shape to be processed. - # @update given shape + # + # @ref swig_todo "Example" def ChangeOrientationShell(self,theObject): theObject = self.HealOp.ChangeOrientation(theObject) RaiseIfFailed("ChangeOrientation", self.HealOp) pass - + ## Change orientation of the given object. # @param theObject Shape to be processed. # @return New GEOM_Object, containing processed shape. + # + # @ref swig_todo "Example" def ChangeOrientationShellCopy(self,theObject): anObj = self.HealOp.ChangeOrientationCopy(theObject) RaiseIfFailed("ChangeOrientationCopy", self.HealOp) return anObj - + ## Get a list of wires (wrapped in GEOM_Object-s), # that constitute a free boundary of the given shape. # @param theObject Shape to get free boundary of. @@ -1370,39 +2010,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # theClosedWires: Closed wires on the free boundary of the given shape. # theOpenWires: Open wires on the free boundary of the given shape. # - # Example: see GEOM_TestHealing.py + # @ref tui_measurement_tools_page "Example" def GetFreeBoundary(self,theObject): + # Example: see GEOM_TestHealing.py anObj = self.HealOp.GetFreeBoundary(theObject) RaiseIfFailed("GetFreeBoundary", self.HealOp) return anObj - - # ----------------------------------------------------------------------------- - # Create advanced objects - # ----------------------------------------------------------------------------- - - ## Create a copy of the given object - # - # Example: see GEOM_TestAll.py - def MakeCopy(self,theOriginal): - anObj = self.InsertOp.MakeCopy(theOriginal) - RaiseIfFailed("MakeCopy", self.InsertOp) - return anObj - - ## Create a filling from the given compound of contours. - # @param theShape the compound of contours - # @param theMinDeg a minimal degree of BSpline surface to create - # @param theMaxDeg a maximal degree of BSpline surface to create - # @param theTol2D a 2d tolerance to be reached - # @param theTol3D a 3d tolerance to be reached - # @param theNbIter a number of iteration of approximation algorithm - # @return New GEOM_Object, containing the created filling surface. - # - # Example: see GEOM_TestAll.py - def MakeFilling(self,theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter, isApprox=0): - anObj = self.PrimOp.MakeFilling(theShape, theMinDeg, theMaxDeg, theTol2D, theTol3D, theNbIter, isApprox) - RaiseIfFailed("MakeFilling", self.PrimOp) - return anObj - + ## Replace coincident faces in theShape by one face. # @param theShape Initial shape. # @param theTolerance Maximum distance between faces, which can be considered as coincident. @@ -1410,27 +2024,29 @@ class geompyDC(GEOM._objref_GEOM_Gen): # otherwise all initial shapes. # @return New GEOM_Object, containing a copy of theShape without coincident faces. # - # Example: see GEOM_Spanner.py + # @ref tui_glue_faces "Example" def MakeGlueFaces(self, theShape, theTolerance, doKeepNonSolids=True): + # Example: see GEOM_Spanner.py + theTolerance,Parameters = ParseParameters(theTolerance) anObj = self.ShapesOp.MakeGlueFaces(theShape, theTolerance, doKeepNonSolids) if anObj is None: raise RuntimeError, "MakeGlueFaces : " + self.ShapesOp.GetErrorCode() + anObj.SetParameters(Parameters) return anObj - - + ## Find coincident faces in theShape for possible gluing. # @param theShape Initial shape. # @param theTolerance Maximum distance between faces, # which can be considered as coincident. # @return ListOfGO. # - # Example: see GEOM_Spanner.py + # @ref swig_todo "Example" def GetGlueFaces(self, theShape, theTolerance): + # Example: see GEOM_Spanner.py anObj = self.ShapesOp.GetGlueFaces(theShape, theTolerance) RaiseIfFailed("GetGlueFaces", self.ShapesOp) return anObj - - + ## Replace coincident faces in theShape by one face # in compliance with given list of faces # @param theShape Initial shape. @@ -1442,18 +2058,24 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing a copy of theShape # without some faces. # - # Example: see GEOM_Spanner.py + # @ref swig_todo "Example" def MakeGlueFacesByList(self, theShape, theTolerance, theFaces, doKeepNonSolids=True): + # Example: see GEOM_Spanner.py anObj = self.ShapesOp.MakeGlueFacesByList(theShape, theTolerance, theFaces, doKeepNonSolids) if anObj is None: raise RuntimeError, "MakeGlueFacesByList : " + self.ShapesOp.GetErrorCode() return anObj - - + + # end of l3_healing + ## @} + + ## @addtogroup l3_boolean Boolean Operations + ## @{ + # ----------------------------------------------------------------------------- # Boolean (Common, Cut, Fuse, Section) # ----------------------------------------------------------------------------- - + ## Perform one of boolean operations on two given shapes. # @param theShape1 First argument for boolean operation. # @param theShape2 Second argument for boolean operation. @@ -1461,36 +2083,51 @@ class geompyDC(GEOM._objref_GEOM_Gen): # 1 - Common, 2 - Cut, 3 - Fuse, 4 - Section. # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestAll.py + # @ref tui_fuse "Example" def MakeBoolean(self,theShape1, theShape2, theOperation): + # Example: see GEOM_TestAll.py anObj = self.BoolOp.MakeBoolean(theShape1, theShape2, theOperation) RaiseIfFailed("MakeBoolean", self.BoolOp) return anObj - + ## Shortcut to MakeBoolean(s1, s2, 1) # - # Example: see GEOM_TestOthers.py + # @ref tui_common "Example 1" + # \n @ref swig_MakeCommon "Example 2" def MakeCommon(self, s1, s2): + # Example: see GEOM_TestOthers.py return self.MakeBoolean(s1, s2, 1) ## Shortcut to MakeBoolean(s1, s2, 2) # - # Example: see GEOM_TestOthers.py + # @ref tui_cut "Example 1" + # \n @ref swig_MakeCommon "Example 2" def MakeCut(self, s1, s2): + # Example: see GEOM_TestOthers.py return self.MakeBoolean(s1, s2, 2) - + ## Shortcut to MakeBoolean(s1, s2, 3) # - # Example: see GEOM_TestOthers.py + # @ref tui_fuse "Example 1" + # \n @ref swig_MakeCommon "Example 2" def MakeFuse(self, s1, s2): + # Example: see GEOM_TestOthers.py return self.MakeBoolean(s1, s2, 3) - + ## Shortcut to MakeBoolean(s1, s2, 4) # - # Example: see GEOM_TestOthers.py + # @ref tui_section "Example 1" + # \n @ref swig_MakeCommon "Example 2" def MakeSection(self, s1, s2): + # Example: see GEOM_TestOthers.py return self.MakeBoolean(s1, s2, 4) - + + # end of l3_boolean + ## @} + + ## @addtogroup l3_basic_op + ## @{ + ## Perform partition operation. # @param ListShapes Shapes to be intersected. # @param ListTools Shapes to intersect theShapes. @@ -1517,17 +2154,18 @@ class geompyDC(GEOM._objref_GEOM_Gen): # # @return New GEOM_Object, containing the result shapes. # - # Example: see GEOM_TestAll.py + # @ref tui_partition "Example" def MakePartition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[], Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[], KeepNonlimitShapes=0): + # Example: see GEOM_TestAll.py anObj = self.BoolOp.MakePartition(ListShapes, ListTools, ListKeepInside, ListRemoveInside, Limit, RemoveWebs, ListMaterials, KeepNonlimitShapes); RaiseIfFailed("MakePartition", self.BoolOp) return anObj - + ## Perform partition operation. # This method may be useful if it is needed to make a partition for # compound contains nonintersected shapes. Performance will be better @@ -1540,6 +2178,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): # # @return New GEOM_Object, containing the result shapes. # + # @ref swig_todo "Example" def MakePartitionNonSelfIntersectedShape(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[], Limit=ShapeType["SHAPE"], RemoveWebs=0, @@ -1550,34 +2189,39 @@ class geompyDC(GEOM._objref_GEOM_Gen): KeepNonlimitShapes); RaiseIfFailed("MakePartitionNonSelfIntersectedShape", self.BoolOp) return anObj - + ## Shortcut to MakePartition() # - # Example: see GEOM_TestOthers.py + # @ref tui_partition "Example 1" + # \n @ref swig_Partition "Example 2" def Partition(self, ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[], Limit=ShapeType["SHAPE"], RemoveWebs=0, ListMaterials=[], KeepNonlimitShapes=0): + # Example: see GEOM_TestOthers.py anObj = self.MakePartition(ListShapes, ListTools, ListKeepInside, ListRemoveInside, Limit, RemoveWebs, ListMaterials, KeepNonlimitShapes); return anObj - + ## Perform partition of the Shape with the Plane # @param theShape Shape to be intersected. # @param thePlane Tool shape, to intersect theShape. # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestAll.py + # @ref tui_partition "Example" def MakeHalfPartition(self,theShape, thePlane): + # Example: see GEOM_TestAll.py anObj = self.BoolOp.MakeHalfPartition(theShape, thePlane) RaiseIfFailed("MakeHalfPartition", self.BoolOp) return anObj - - # ----------------------------------------------------------------------------- - # Transform objects - # ----------------------------------------------------------------------------- - + + # end of l3_basic_op + ## @} + + ## @addtogroup l3_transform + ## @{ + ## Translate the given object along the vector, specified # by its end points, creating its copy before the translation. # @param theObject The object to be translated. @@ -1585,36 +2229,108 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param thePoint2 End point of translation vector. # @return New GEOM_Object, containing the translated object. # - # Example: see GEOM_TestAll.py + # @ref tui_translation "Example 1" + # \n @ref swig_MakeTranslationTwoPoints "Example 2" def MakeTranslationTwoPoints(self,theObject, thePoint1, thePoint2): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.TranslateTwoPointsCopy(theObject, thePoint1, thePoint2) RaiseIfFailed("TranslateTwoPointsCopy", self.TrsfOp) return anObj - + + ## Translate the given object along the vector, specified by its components. + # @param theObject The object to be translated. + # @param theDX,theDY,theDZ Components of translation vector. + # @return Translated GEOM_Object. + # + # @ref tui_translation "Example" + def TranslateDXDYDZ(self,theObject, theDX, theDY, theDZ): + # Example: see GEOM_TestAll.py + theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ) + anObj = self.TrsfOp.TranslateDXDYDZ(theObject, theDX, theDY, theDZ) + anObj.SetParameters(Parameters) + RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp) + return anObj + ## Translate the given object along the vector, specified # by its components, creating its copy before the translation. # @param theObject The object to be translated. # @param theDX,theDY,theDZ Components of translation vector. # @return New GEOM_Object, containing the translated object. # - # Example: see GEOM_TestAll.py + # @ref tui_translation "Example" def MakeTranslation(self,theObject, theDX, theDY, theDZ): + # Example: see GEOM_TestAll.py + theDX, theDY, theDZ, Parameters = ParseParameters(theDX, theDY, theDZ) anObj = self.TrsfOp.TranslateDXDYDZCopy(theObject, theDX, theDY, theDZ) + anObj.SetParameters(Parameters) RaiseIfFailed("TranslateDXDYDZ", self.TrsfOp) return anObj - + ## Translate the given object along the given vector, # creating its copy before the translation. # @param theObject The object to be translated. # @param theVector The translation vector. # @return New GEOM_Object, containing the translated object. # - # Example: see GEOM_TestAll.py + # @ref tui_translation "Example" def MakeTranslationVector(self,theObject, theVector): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.TranslateVectorCopy(theObject, theVector) RaiseIfFailed("TranslateVectorCopy", self.TrsfOp) return anObj + ## Translate the given object along the given vector on given distance. + # @param theObject The object to be translated. + # @param theVector The translation vector. + # @param theDistance The translation distance. + # @param theCopy Flag used to translate object itself or create a copy. + # @return Translated GEOM_Object. + # + # @ref tui_translation "Example" + def TranslateVectorDistance(self, theObject, theVector, theDistance, theCopy): + # Example: see GEOM_TestAll.py + theDistance,Parameters = ParseParameters(theDistance) + anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, theCopy) + RaiseIfFailed("TranslateVectorDistance", self.TrsfOp) + anObj.SetParameters(Parameters) + return anObj + + ## Translate the given object along the given vector on given distance, + # creating its copy before the translation. + # @param theObject The object to be translated. + # @param theVector The translation vector. + # @param theDistance The translation distance. + # @return New GEOM_Object, containing the translated object. + # + # @ref tui_translation "Example" + def MakeTranslationVectorDistance(self, theObject, theVector, theDistance): + # Example: see GEOM_TestAll.py + theDistance,Parameters = ParseParameters(theDistance) + anObj = self.TrsfOp.TranslateVectorDistance(theObject, theVector, theDistance, 1) + RaiseIfFailed("TranslateVectorDistance", self.TrsfOp) + anObj.SetParameters(Parameters) + return anObj + + ## Rotate the given object around the given axis on the given angle. + # @param theObject The object to be rotated. + # @param theAxis Rotation axis. + # @param theAngle Rotation angle in radians. + # @return Rotated GEOM_Object. + # + # @ref tui_rotation "Example" + def Rotate(self,theObject, theAxis, theAngle): + # Example: see GEOM_TestAll.py + flag = False + if isinstance(theAngle,str): + flag = True + theAngle, Parameters = ParseParameters(theAngle) + if flag: + theAngle = theAngle*math.pi/180.0 + anObj = self.TrsfOp.Rotate(theObject, theAxis, theAngle) + RaiseIfFailed("RotateCopy", self.TrsfOp) + anObj.SetParameters(Parameters) + return anObj + ## Rotate the given object around the given axis # on the given angle, creating its copy before the rotatation. # @param theObject The object to be rotated. @@ -1622,74 +2338,108 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theAngle Rotation angle in radians. # @return New GEOM_Object, containing the rotated object. # - # Example: see GEOM_TestAll.py + # @ref tui_rotation "Example" def MakeRotation(self,theObject, theAxis, theAngle): + # Example: see GEOM_TestAll.py + flag = False + if isinstance(theAngle,str): + flag = True + theAngle, Parameters = ParseParameters(theAngle) + if flag: + theAngle = theAngle*math.pi/180.0 anObj = self.TrsfOp.RotateCopy(theObject, theAxis, theAngle) RaiseIfFailed("RotateCopy", self.TrsfOp) + anObj.SetParameters(Parameters) return anObj - + ## Rotate given object around vector perpendicular to plane # containing three points, creating its copy before the rotatation. # @param theObject The object to be rotated. # @param theCentPoint central point - the axis is the vector perpendicular to the plane # containing the three points. - # @param thePoint1 and thePoint2 - in a perpendicular plan of the axis. + # @param thePoint1,thePoint2 - in a perpendicular plane of the axis. # @return New GEOM_Object, containing the rotated object. # - # Example: see GEOM_TestAll.py + # @ref tui_rotation "Example" def MakeRotationThreePoints(self,theObject, theCentPoint, thePoint1, thePoint2): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.RotateThreePointsCopy(theObject, theCentPoint, thePoint1, thePoint2) RaiseIfFailed("RotateThreePointsCopy", self.TrsfOp) return anObj - + ## Scale the given object by the factor, creating its copy before the scaling. # @param theObject The object to be scaled. # @param thePoint Center point for scaling. + # Passing None for it means scaling relatively the origin of global CS. # @param theFactor Scaling factor value. # @return New GEOM_Object, containing the scaled shape. # - # Example: see GEOM_TestAll.py - def MakeScaleTransform(self,theObject, thePoint, theFactor): + # @ref tui_scale "Example" + def MakeScaleTransform(self, theObject, thePoint, theFactor): + # Example: see GEOM_TestAll.py + theFactor, Parameters = ParseParameters(theFactor) anObj = self.TrsfOp.ScaleShapeCopy(theObject, thePoint, theFactor) RaiseIfFailed("ScaleShapeCopy", self.TrsfOp) + anObj.SetParameters(Parameters) return anObj - + + ## Scale the given object by different factors along coordinate axes, + # creating its copy before the scaling. + # @param theObject The object to be scaled. + # @param thePoint Center point for scaling. + # Passing None for it means scaling relatively the origin of global CS. + # @param theFactorX,theFactorY,theFactorZ Scaling factors along each axis. + # @return New GEOM_Object, containing the scaled shape. + # + # @ref swig_scale "Example" + def MakeScaleAlongAxes(self, theObject, thePoint, theFactorX, theFactorY, theFactorZ): + # Example: see GEOM_TestAll.py + theFactorX, theFactorY, theFactorZ, Parameters = ParseParameters(theFactorX, theFactorY, theFactorZ) + anObj = self.TrsfOp.ScaleShapeAlongAxesCopy(theObject, thePoint, + theFactorX, theFactorY, theFactorZ) + RaiseIfFailed("MakeScaleAlongAxes", self.TrsfOp) + anObj.SetParameters(Parameters) + return anObj + ## Create an object, symmetrical # to the given one relatively the given plane. # @param theObject The object to be mirrored. # @param thePlane Plane of symmetry. # @return New GEOM_Object, containing the mirrored shape. # - # Example: see GEOM_TestAll.py + # @ref tui_mirror "Example" def MakeMirrorByPlane(self,theObject, thePlane): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.MirrorPlaneCopy(theObject, thePlane) RaiseIfFailed("MirrorPlaneCopy", self.TrsfOp) return anObj - + ## Create an object, symmetrical # to the given one relatively the given axis. # @param theObject The object to be mirrored. # @param theAxis Axis of symmetry. # @return New GEOM_Object, containing the mirrored shape. # - # Example: see GEOM_TestAll.py + # @ref tui_mirror "Example" def MakeMirrorByAxis(self,theObject, theAxis): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.MirrorAxisCopy(theObject, theAxis) RaiseIfFailed("MirrorAxisCopy", self.TrsfOp) return anObj - + ## Create an object, symmetrical # to the given one relatively the given point. # @param theObject The object to be mirrored. # @param thePoint Point of symmetry. # @return New GEOM_Object, containing the mirrored shape. # - # Example: see GEOM_TestAll.py + # @ref tui_mirror "Example" def MakeMirrorByPoint(self,theObject, thePoint): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.MirrorPointCopy(theObject, thePoint) RaiseIfFailed("MirrorPointCopy", self.TrsfOp) return anObj - + ## Modify the Location of the given object by LCS, # creating its copy before the setting. # @param theObject The object to be displaced. @@ -1701,27 +2451,46 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theEndLCS Coordinate system to perform displacement to it. # @return New GEOM_Object, containing the displaced shape. # - # Example: see GEOM_TestAll.py + # @ref tui_modify_location "Example" def MakePosition(self,theObject, theStartLCS, theEndLCS): + # Example: see GEOM_TestAll.py anObj = self.TrsfOp.PositionShapeCopy(theObject, theStartLCS, theEndLCS) RaiseIfFailed("PositionShapeCopy", self.TrsfOp) return anObj - + + ## Modify the Location of the given object by Path, + # @param theObject The object to be displaced. + # @param thePath Wire or Edge along that the object will be translated. + # @param theDistance progress of Path (0 = start location, 1 = end of path location). + # @param theCopy is to create a copy objects if true. + # @param theReverse - 0 for usual direction, 1 to reverse path direction. + # @return New GEOM_Object, containing the displaced shape. + # + # @ref tui_modify_location "Example" + def PositionAlongPath(self,theObject, thePath, theDistance, theCopy, theReverse): + # Example: see GEOM_TestAll.py + anObj = self.TrsfOp.PositionAlongPath(theObject, thePath, theDistance, theCopy, theReverse) + RaiseIfFailed("PositionAlongPath", self.TrsfOp) + return anObj + ## Create new object as offset of the given one. # @param theObject The base object for the offset. # @param theOffset Offset value. # @return New GEOM_Object, containing the offset object. # - # Example: see GEOM_TestAll.py + # @ref tui_offset "Example" def MakeOffset(self,theObject, theOffset): + # Example: see GEOM_TestAll.py + theOffset, Parameters = ParseParameters(theOffset) anObj = self.TrsfOp.OffsetShapeCopy(theObject, theOffset) RaiseIfFailed("OffsetShapeCopy", self.TrsfOp) + anObj.SetParameters(Parameters) return anObj - + # ----------------------------------------------------------------------------- # Patterns # ----------------------------------------------------------------------------- - + ## Translate the given object along the given vector a given number times # @param theObject The object to be translated. # @param theVector Direction of the translation. @@ -1730,12 +2499,15 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing compound of all # the shapes, obtained after each translation. # - # Example: see GEOM_TestAll.py + # @ref tui_multi_translation "Example" def MakeMultiTranslation1D(self,theObject, theVector, theStep, theNbTimes): + # Example: see GEOM_TestAll.py + theStep, theNbTimes, Parameters = ParseParameters(theStep, theNbTimes) anObj = self.TrsfOp.MultiTranslate1D(theObject, theVector, theStep, theNbTimes) RaiseIfFailed("MultiTranslate1D", self.TrsfOp) + anObj.SetParameters(Parameters) return anObj - + ## Conseqently apply two specified translations to theObject specified number of times. # @param theObject The object to be translated. # @param theVector1 Direction of the first translation. @@ -1747,14 +2519,17 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing compound of all # the shapes, obtained after each translation. # - # Example: see GEOM_TestAll.py + # @ref tui_multi_translation "Example" def MakeMultiTranslation2D(self,theObject, theVector1, theStep1, theNbTimes1, theVector2, theStep2, theNbTimes2): + # Example: see GEOM_TestAll.py + theStep1,theNbTimes1,theStep2,theNbTimes2, Parameters = ParseParameters(theStep1,theNbTimes1,theStep2,theNbTimes2) anObj = self.TrsfOp.MultiTranslate2D(theObject, theVector1, theStep1, theNbTimes1, theVector2, theStep2, theNbTimes2) RaiseIfFailed("MultiTranslate2D", self.TrsfOp) + anObj.SetParameters(Parameters) return anObj - + ## Rotate the given object around the given axis a given number times. # Rotation angle will be 2*PI/theNbTimes. # @param theObject The object to be rotated. @@ -1763,12 +2538,15 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing compound of all the # shapes, obtained after each rotation. # - # Example: see GEOM_TestAll.py + # @ref tui_multi_rotation "Example" def MultiRotate1D(self,theObject, theAxis, theNbTimes): + # Example: see GEOM_TestAll.py + theAxis, theNbTimes, Parameters = ParseParameters(theAxis, theNbTimes) anObj = self.TrsfOp.MultiRotate1D(theObject, theAxis, theNbTimes) RaiseIfFailed("MultiRotate1D", self.TrsfOp) + anObj.SetParameters(Parameters) return anObj - + ## Rotate the given object around the # given axis on the given angle a given number # times and multi-translate each rotation result. @@ -1783,53 +2561,64 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing compound of all the # shapes, obtained after each transformation. # - # Example: see GEOM_TestAll.py + # @ref tui_multi_rotation "Example" def MultiRotate2D(self,theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2): + # Example: see GEOM_TestAll.py + theAngle, theNbTimes1, theStep, theNbTimes2, Parameters = ParseParameters(theAngle, theNbTimes1, theStep, theNbTimes2) anObj = self.TrsfOp.MultiRotate2D(theObject, theAxis, theAngle, theNbTimes1, theStep, theNbTimes2) RaiseIfFailed("MultiRotate2D", self.TrsfOp) + anObj.SetParameters(Parameters) return anObj - + ## The same, as MultiRotate1D(), but axis is given by direction and point - # - # Example: see GEOM_TestOthers.py + # @ref swig_MakeMultiRotation "Example" def MakeMultiRotation1D(self,aShape,aDir,aPoint,aNbTimes): + # Example: see GEOM_TestOthers.py aVec = self.MakeLine(aPoint,aDir) anObj = self.MultiRotate1D(aShape,aVec,aNbTimes) return anObj - + ## The same, as MultiRotate2D(), but axis is given by direction and point - # - # Example: see GEOM_TestOthers.py + # @ref swig_MakeMultiRotation "Example" def MakeMultiRotation2D(self,aShape,aDir,aPoint,anAngle,nbtimes1,aStep,nbtimes2): + # Example: see GEOM_TestOthers.py aVec = self.MakeLine(aPoint,aDir) anObj = self.MultiRotate2D(aShape,aVec,anAngle,nbtimes1,aStep,nbtimes2) return anObj - - # ----------------------------------------------------------------------------- - # Local operations - # ----------------------------------------------------------------------------- - + + # end of l3_transform + ## @} + + ## @addtogroup l3_local + ## @{ + ## Perform a fillet on all edges of the given shape. # @param theShape Shape, to perform fillet on. # @param theR Fillet radius. # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestOthers.py + # @ref tui_fillet "Example 1" + # \n @ref swig_MakeFilletAll "Example 2" def MakeFilletAll(self,theShape, theR): + # Example: see GEOM_TestOthers.py + theR,Parameters = ParseParameters(theR) anObj = self.LocalOp.MakeFilletAll(theShape, theR) RaiseIfFailed("MakeFilletAll", self.LocalOp) + anObj.SetParameters(Parameters) return anObj - + ## Perform a fillet on the specified edges/faces of the given shape # @param theShape Shape, to perform fillet on. # @param theR Fillet radius. - # @param theShapeType Type of shapes in . + # @param theShapeType Type of shapes in theListShapes. # @param theListShapes Global indices of edges/faces to perform fillet on. # \note Global index of sub-shape can be obtained, using method geompy.GetSubShapeID(). # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestAll.py + # @ref tui_fillet "Example" def MakeFillet(self,theShape, theR, theShapeType, theListShapes): + # Example: see GEOM_TestAll.py + theR,Parameters = ParseParameters(theR) anObj = None if theShapeType == ShapeType["EDGE"]: anObj = self.LocalOp.MakeFilletEdges(theShape, theR, theListShapes) @@ -1837,10 +2626,12 @@ class geompyDC(GEOM._objref_GEOM_Gen): else: anObj = self.LocalOp.MakeFilletFaces(theShape, theR, theListShapes) RaiseIfFailed("MakeFilletFaces", self.LocalOp) + anObj.SetParameters(Parameters) return anObj - + ## The same that MakeFillet but with two Fillet Radius R1 and R2 def MakeFilletR1R2(self, theShape, theR1, theR2, theShapeType, theListShapes): + theR1,theR2,Parameters = ParseParameters(theR1,theR2) anObj = None if theShapeType == ShapeType["EDGE"]: anObj = self.LocalOp.MakeFilletEdgesR1R2(theShape, theR1, theR2, theListShapes) @@ -1848,19 +2639,38 @@ class geompyDC(GEOM._objref_GEOM_Gen): else: anObj = self.LocalOp.MakeFilletFacesR1R2(theShape, theR1, theR2, theListShapes) RaiseIfFailed("MakeFilletFacesR1R2", self.LocalOp) + anObj.SetParameters(Parameters) return anObj - + + ## Perform a fillet on the specified edges/faces of the given shape + # @param theShape - Face Shape to perform fillet on. + # @param theR - Fillet radius. + # @param theListOfVertexes Global indices of vertexes to perform fillet on. + # \note Global index of sub-shape can be obtained, using method geompy.GetSubShapeID(). + # @return New GEOM_Object, containing the result shape. + # + # @ref tui_fillet2d "Example" + def MakeFillet2D(self,theShape, theR, theListOfVertexes): + # Example: see GEOM_TestAll.py + anObj = self.LocalOp.MakeFillet2D(theShape, theR, theListOfVertexes) + RaiseIfFailed("MakeFillet2D", self.LocalOp) + return anObj + ## Perform a symmetric chamfer on all edges of the given shape. # @param theShape Shape, to perform chamfer on. # @param theD Chamfer size along each face. # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestOthers.py + # @ref tui_chamfer "Example 1" + # \n @ref swig_MakeChamferAll "Example 2" def MakeChamferAll(self,theShape, theD): + # Example: see GEOM_TestOthers.py + theD,Parameters = ParseParameters(theD) anObj = self.LocalOp.MakeChamferAll(theShape, theD) RaiseIfFailed("MakeChamferAll", self.LocalOp) + anObj.SetParameters(Parameters) return anObj - + ## Perform a chamfer on edges, common to the specified faces, # with distance D1 on the Face1 # @param theShape Shape, to perform chamfer on. @@ -1870,19 +2680,29 @@ class geompyDC(GEOM._objref_GEOM_Gen): # \note Global index of sub-shape can be obtained, using method geompy.GetSubShapeID(). # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestAll.py + # @ref tui_chamfer "Example" def MakeChamferEdge(self,theShape, theD1, theD2, theFace1, theFace2): + # Example: see GEOM_TestAll.py + theD1,theD2,Parameters = ParseParameters(theD1,theD2) anObj = self.LocalOp.MakeChamferEdge(theShape, theD1, theD2, theFace1, theFace2) RaiseIfFailed("MakeChamferEdge", self.LocalOp) + anObj.SetParameters(Parameters) return anObj - - ## The Same that MakeChamferEdge but with params theD is chamfer lenght and - # theAngle is Angle of chamfer (angle in radians) + + ## The Same that MakeChamferEdge but with params theD is chamfer length and + # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees) def MakeChamferEdgeAD(self, theShape, theD, theAngle, theFace1, theFace2): + flag = False + if isinstance(theAngle,str): + flag = True + theD,theAngle,Parameters = ParseParameters(theD,theAngle) + if flag: + theAngle = theAngle*math.pi/180.0 anObj = self.LocalOp.MakeChamferEdgeAD(theShape, theD, theAngle, theFace1, theFace2) RaiseIfFailed("MakeChamferEdgeAD", self.LocalOp) + anObj.SetParameters(Parameters) return anObj - + ## Perform a chamfer on all edges of the specified faces, # with distance D1 on the first specified face (if several for one edge) # @param theShape Shape, to perform chamfer on. @@ -1894,50 +2714,78 @@ class geompyDC(GEOM._objref_GEOM_Gen): # \note Global index of sub-shape can be obtained, using method geompy.GetSubShapeID(). # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_TestAll.py + # @ref tui_chamfer "Example" def MakeChamferFaces(self,theShape, theD1, theD2, theFaces): + # Example: see GEOM_TestAll.py + theD1,theD2,Parameters = ParseParameters(theD1,theD2) anObj = self.LocalOp.MakeChamferFaces(theShape, theD1, theD2, theFaces) RaiseIfFailed("MakeChamferFaces", self.LocalOp) + anObj.SetParameters(Parameters) return anObj - + ## The Same that MakeChamferFaces but with params theD is chamfer lenght and - # theAngle is Angle of chamfer (angle in radians) + # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees) + # + # @ref swig_FilletChamfer "Example" def MakeChamferFacesAD(self, theShape, theD, theAngle, theFaces): + flag = False + if isinstance(theAngle,str): + flag = True + theD,theAngle,Parameters = ParseParameters(theD,theAngle) + if flag: + theAngle = theAngle*math.pi/180.0 anObj = self.LocalOp.MakeChamferFacesAD(theShape, theD, theAngle, theFaces) RaiseIfFailed("MakeChamferFacesAD", self.LocalOp) + anObj.SetParameters(Parameters) return anObj - + ## Perform a chamfer on edges, # with distance D1 on the first specified face (if several for one edge) # @param theShape Shape, to perform chamfer on. - # @param theD1 and theD2 Chamfer size + # @param theD1,theD2 Chamfer size # @param theEdges Sequence of edges of \a theShape. # @return New GEOM_Object, containing the result shape. # - # Example: + # @ref swig_FilletChamfer "Example" def MakeChamferEdges(self, theShape, theD1, theD2, theEdges): + theD1,theD2,Parameters = ParseParameters(theD1,theD2) anObj = self.LocalOp.MakeChamferEdges(theShape, theD1, theD2, theEdges) RaiseIfFailed("MakeChamferEdges", self.LocalOp) + anObj.SetParameters(Parameters) return anObj - + ## The Same that MakeChamferEdges but with params theD is chamfer lenght and - # theAngle is Angle of chamfer (angle in radians) + # theAngle is Angle of chamfer (angle in radians or a name of variable which defines angle in degrees) def MakeChamferEdgesAD(self, theShape, theD, theAngle, theEdges): + flag = False + if isinstance(theAngle,str): + flag = True + theD,theAngle,Parameters = ParseParameters(theD,theAngle) + if flag: + theAngle = theAngle*math.pi/180.0 anObj = self.LocalOp.MakeChamferEdgesAD(theShape, theD, theAngle, theEdges) RaiseIfFailed("MakeChamferEdgesAD", self.LocalOp) + anObj.SetParameters(Parameters) return anObj - + ## Shortcut to MakeChamferEdge() and MakeChamferFaces() # - # Example: see GEOM_TestOthers.py + # @ref swig_MakeChamfer "Example" def MakeChamfer(self,aShape,d1,d2,aShapeType,ListShape): + # Example: see GEOM_TestOthers.py anObj = None if aShapeType == ShapeType["EDGE"]: anObj = self.MakeChamferEdge(aShape,d1,d2,ListShape[0],ListShape[1]) else: anObj = self.MakeChamferFaces(aShape,d1,d2,ListShape) return anObj - + + # end of l3_local + ## @} + + ## @addtogroup l3_basic_op + ## @{ + ## Perform an Archimde operation on the given shape with given parameters. # The object presenting the resulting face is returned. # @param theShape Shape to be put in water. @@ -1947,25 +2795,32 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return New GEOM_Object, containing a section of \a theShape # by a plane, corresponding to water level. # - # Example: see GEOM_TestAll.py + # @ref tui_archimede "Example" def Archimede(self,theShape, theWeight, theWaterDensity, theMeshDeflection): + # Example: see GEOM_TestAll.py + theWeight,theWaterDensity,theMeshDeflection,Parameters = ParseParameters( + theWeight,theWaterDensity,theMeshDeflection) anObj = self.LocalOp.MakeArchimede(theShape, theWeight, theWaterDensity, theMeshDeflection) RaiseIfFailed("MakeArchimede", self.LocalOp) + anObj.SetParameters(Parameters) return anObj - - # ----------------------------------------------------------------------------- - # Information objects - # ----------------------------------------------------------------------------- - + + # end of l3_basic_op + ## @} + + ## @addtogroup l2_measure + ## @{ + ## Get point coordinates # @return [x, y, z] # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def PointCoordinates(self,Point): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.PointCoordinates(Point) RaiseIfFailed("PointCoordinates", self.MeasuOp) return aTuple - + ## Get summarized length of all wires, # area of surface and volume of the given shape. # @param theShape Shape to define properties of. @@ -1974,12 +2829,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # theSurfArea: Area of surface of the given shape. # theVolume: Volume of the given shape. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def BasicProperties(self,theShape): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetBasicProperties(theShape) RaiseIfFailed("GetBasicProperties", self.MeasuOp) return aTuple - + ## Get parameters of bounding box of the given shape # @param theShape Shape to obtain bounding box of. # @return [Xmin,Xmax, Ymin,Ymax, Zmin,Zmax] @@ -1987,30 +2843,33 @@ class geompyDC(GEOM._objref_GEOM_Gen): # Ymin,Ymax: Limits of shape along OY axis. # Zmin,Zmax: Limits of shape along OZ axis. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def BoundingBox(self,theShape): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetBoundingBox(theShape) RaiseIfFailed("GetBoundingBox", self.MeasuOp) return aTuple - + ## Get inertia matrix and moments of inertia of theShape. # @param theShape Shape to calculate inertia of. # @return [I11,I12,I13, I21,I22,I23, I31,I32,I33, Ix,Iy,Iz] # I(1-3)(1-3): Components of the inertia matrix of the given shape. # Ix,Iy,Iz: Moments of inertia of the given shape. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def Inertia(self,theShape): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetInertia(theShape) RaiseIfFailed("GetInertia", self.MeasuOp) return aTuple - + ## Get minimal distance between the given shapes. # @param theShape1,theShape2 Shapes to find minimal distance between. # @return Value of the minimal distance between the given shapes. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def MinDistance(self, theShape1, theShape2): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2) RaiseIfFailed("GetMinDistance", self.MeasuOp) return aTuple[0] @@ -2019,22 +2878,90 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShape1,theShape2 Shapes to find minimal distance between. # @return Value of the minimal distance between the given shapes. # - # Example: see GEOM_TestMeasures.py + # @ref swig_all_measure "Example" def MinDistanceComponents(self, theShape1, theShape2): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetMinDistance(theShape1, theShape2) RaiseIfFailed("GetMinDistance", self.MeasuOp) aRes = [aTuple[0], aTuple[4] - aTuple[1], aTuple[5] - aTuple[2], aTuple[6] - aTuple[3]] return aRes - ## Get angle between the given shapes. + ## Get angle between the given shapes in degrees. # @param theShape1,theShape2 Lines or linear edges to find angle between. - # @return Value of the angle between the given shapes. + # @return Value of the angle between the given shapes in degrees. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def GetAngle(self, theShape1, theShape2): + # Example: see GEOM_TestMeasures.py anAngle = self.MeasuOp.GetAngle(theShape1, theShape2) RaiseIfFailed("GetAngle", self.MeasuOp) return anAngle + ## Get angle between the given shapes in radians. + # @param theShape1,theShape2 Lines or linear edges to find angle between. + # @return Value of the angle between the given shapes in radians. + # + # @ref tui_measurement_tools_page "Example" + def GetAngleRadians(self, theShape1, theShape2): + # Example: see GEOM_TestMeasures.py + anAngle = self.MeasuOp.GetAngle(theShape1, theShape2)*math.pi/180. + RaiseIfFailed("GetAngle", self.MeasuOp) + return anAngle + + ## @name Curve Curvature Measurement + # Methods for receiving radius of curvature of curves + # in the given point + ## @{ + + ## Measure curvature of a curve at a point, set by parameter. + # @ref swig_todo "Example" + def CurveCurvatureByParam(self, theCurve, theParam): + # Example: see GEOM_TestMeasures.py + aCurv = self.MeasuOp.CurveCurvatureByParam(theCurve,theParam) + RaiseIfFailed("CurveCurvatureByParam", self.MeasuOp) + return aCurv + + ## @details + # @ref swig_todo "Example" + def CurveCurvatureByPoint(self, theCurve, thePoint): + aCurv = self.MeasuOp.CurveCurvatureByPoint(theCurve,thePoint) + RaiseIfFailed("CurveCurvatureByPoint", self.MeasuOp) + return aCurv + ## @} + + ## @name Surface Curvature Measurement + # Methods for receiving max and min radius of curvature of surfaces + # in the given point + ## @{ + + ## @details + ## @ref swig_todo "Example" + def MaxSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam): + # Example: see GEOM_TestMeasures.py + aSurf = self.MeasuOp.MaxSurfaceCurvatureByParam(theSurf,theUParam,theVParam) + RaiseIfFailed("MaxSurfaceCurvatureByParam", self.MeasuOp) + return aSurf + + ## @details + ## @ref swig_todo "Example" + def MaxSurfaceCurvatureByPoint(self, theSurf, thePoint): + aSurf = self.MeasuOp.MaxSurfaceCurvatureByPoint(theSurf,thePoint) + RaiseIfFailed("MaxSurfaceCurvatureByPoint", self.MeasuOp) + return aSurf + + ## @details + ## @ref swig_todo "Example" + def MinSurfaceCurvatureByParam(self, theSurf, theUParam, theVParam): + aSurf = self.MeasuOp.MinSurfaceCurvatureByParam(theSurf,theUParam,theVParam) + RaiseIfFailed("MinSurfaceCurvatureByParam", self.MeasuOp) + return aSurf + + ## @details + ## @ref swig_todo "Example" + def MinSurfaceCurvatureByPoint(self, theSurf, thePoint): + aSurf = self.MeasuOp.MinSurfaceCurvatureByPoint(theSurf,thePoint) + RaiseIfFailed("MinSurfaceCurvatureByPoint", self.MeasuOp) + return aSurf + ## @} ## Get min and max tolerances of sub-shapes of theShape # @param theShape Shape, to get tolerances of. @@ -2043,8 +2970,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): # EdgeMin,EdgeMax: Min and max tolerances of the edges. # VertMin,VertMax: Min and max tolerances of the vertices. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def Tolerance(self,theShape): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetTolerance(theShape) RaiseIfFailed("GetTolerance", self.MeasuOp) return aTuple @@ -2053,34 +2981,37 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShape Shape to be described. # @return Description of the given shape. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def WhatIs(self,theShape): + # Example: see GEOM_TestMeasures.py aDescr = self.MeasuOp.WhatIs(theShape) RaiseIfFailed("WhatIs", self.MeasuOp) return aDescr - + ## Get a point, situated at the centre of mass of theShape. # @param theShape Shape to define centre of mass of. # @return New GEOM_Object, containing the created point. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def MakeCDG(self,theShape): + # Example: see GEOM_TestMeasures.py anObj = self.MeasuOp.GetCentreOfMass(theShape) RaiseIfFailed("GetCentreOfMass", self.MeasuOp) return anObj - + ## Get a normale to the given face. If the point is not given, # the normale is calculated at the center of mass. # @param theFace Face to define normale of. # @param theOptionalPoint Point to compute the normale at. # @return New GEOM_Object, containing the created vector. # - # Example: see GEOM_TestMeasures.py + # @ref swig_todo "Example" def GetNormal(self, theFace, theOptionalPoint = None): + # Example: see GEOM_TestMeasures.py anObj = self.MeasuOp.GetNormal(theFace, theOptionalPoint) RaiseIfFailed("GetNormal", self.MeasuOp) return anObj - + ## Check a topology of the given shape. # @param theShape Shape to check validity of. # @param theIsCheckGeom If FALSE, only the shape's topology will be checked, @@ -2088,8 +3019,9 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return TRUE, if the shape "seems to be valid". # If theShape is invalid, prints a description of problem. # - # Example: see GEOM_TestMeasures.py + # @ref tui_measurement_tools_page "Example" def CheckShape(self,theShape, theIsCheckGeom = 0): + # Example: see GEOM_TestMeasures.py if theIsCheckGeom: (IsValid, Status) = self.MeasuOp.CheckShapeWithGeometry(theShape) RaiseIfFailed("CheckShapeWithGeometry", self.MeasuOp) @@ -2099,7 +3031,7 @@ class geompyDC(GEOM._objref_GEOM_Gen): if IsValid == 0: print Status return IsValid - + ## Get position (LCS) of theShape. # # Origin of the LCS is situated at the shape's center of mass. @@ -2112,12 +3044,13 @@ class geompyDC(GEOM._objref_GEOM_Gen): # Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction. # Xx,Xy,Xz: Coordinates of shape's LCS X direction. # - # Example: see GEOM_TestMeasures.py + # @ref swig_todo "Example" def GetPosition(self,theShape): + # Example: see GEOM_TestMeasures.py aTuple = self.MeasuOp.GetPosition(theShape) RaiseIfFailed("GetPosition", self.MeasuOp) return aTuple - + ## Get kind of theShape. # # @param theShape Shape to get a kind of. @@ -2127,69 +3060,72 @@ class geompyDC(GEOM._objref_GEOM_Gen): # or \a theDoubles list depends on the kind of the shape. # The full list of possible outputs is: # - # geompy.kind.COMPOUND nb_solids nb_faces nb_edges nb_vertices - # geompy.kind.COMPSOLID nb_solids nb_faces nb_edges nb_vertices + # - geompy.kind.COMPOUND nb_solids nb_faces nb_edges nb_vertices + # - geompy.kind.COMPSOLID nb_solids nb_faces nb_edges nb_vertices # - # geompy.kind.SHELL geompy.info.CLOSED nb_faces nb_edges nb_vertices - # geompy.kind.SHELL geompy.info.UNCLOSED nb_faces nb_edges nb_vertices + # - geompy.kind.SHELL geompy.info.CLOSED nb_faces nb_edges nb_vertices + # - geompy.kind.SHELL geompy.info.UNCLOSED nb_faces nb_edges nb_vertices # - # geompy.kind.WIRE geompy.info.CLOSED nb_edges nb_vertices - # geompy.kind.WIRE geompy.info.UNCLOSED nb_edges nb_vertices + # - geompy.kind.WIRE geompy.info.CLOSED nb_edges nb_vertices + # - geompy.kind.WIRE geompy.info.UNCLOSED nb_edges nb_vertices # - # geompy.kind.SPHERE xc yc zc R - # geompy.kind.CYLINDER xb yb zb dx dy dz R H - # geompy.kind.BOX xc yc zc ax ay az - # geompy.kind.ROTATED_BOX xc yc zc zx zy zz xx xy xz ax ay az - # geompy.kind.TORUS xc yc zc dx dy dz R_1 R_2 - # geompy.kind.CONE xb yb zb dx dy dz R_1 R_2 H - # geompy.kind.POLYHEDRON nb_faces nb_edges nb_vertices - # geompy.kind.SOLID nb_faces nb_edges nb_vertices + # - geompy.kind.SPHERE xc yc zc R + # - geompy.kind.CYLINDER xb yb zb dx dy dz R H + # - geompy.kind.BOX xc yc zc ax ay az + # - geompy.kind.ROTATED_BOX xc yc zc zx zy zz xx xy xz ax ay az + # - geompy.kind.TORUS xc yc zc dx dy dz R_1 R_2 + # - geompy.kind.CONE xb yb zb dx dy dz R_1 R_2 H + # - geompy.kind.POLYHEDRON nb_faces nb_edges nb_vertices + # - geompy.kind.SOLID nb_faces nb_edges nb_vertices # - # geompy.kind.SPHERE2D xc yc zc R - # geompy.kind.CYLINDER2D xb yb zb dx dy dz R H - # geompy.kind.TORUS2D xc yc zc dx dy dz R_1 R_2 - # geompy.kind.CONE2D xc yc zc dx dy dz R_1 R_2 H - # geompy.kind.DISK_CIRCLE xc yc zc dx dy dz R - # geompy.kind.DISK_ELLIPSE xc yc zc dx dy dz R_1 R_2 - # geompy.kind.POLYGON xo yo zo dx dy dz nb_edges nb_vertices - # geompy.kind.PLANE xo yo zo dx dy dz - # geompy.kind.PLANAR xo yo zo dx dy dz nb_edges nb_vertices - # geompy.kind.FACE nb_edges nb_vertices + # - geompy.kind.SPHERE2D xc yc zc R + # - geompy.kind.CYLINDER2D xb yb zb dx dy dz R H + # - geompy.kind.TORUS2D xc yc zc dx dy dz R_1 R_2 + # - geompy.kind.CONE2D xc yc zc dx dy dz R_1 R_2 H + # - geompy.kind.DISK_CIRCLE xc yc zc dx dy dz R + # - geompy.kind.DISK_ELLIPSE xc yc zc dx dy dz R_1 R_2 + # - geompy.kind.POLYGON xo yo zo dx dy dz nb_edges nb_vertices + # - geompy.kind.PLANE xo yo zo dx dy dz + # - geompy.kind.PLANAR xo yo zo dx dy dz nb_edges nb_vertices + # - geompy.kind.FACE nb_edges nb_vertices # - # geompy.kind.CIRCLE xc yc zc dx dy dz R - # geompy.kind.ARC_CIRCLE xc yc zc dx dy dz R x1 y1 z1 x2 y2 z2 - # geompy.kind.ELLIPSE xc yc zc dx dy dz R_1 R_2 - # geompy.kind.ARC_ELLIPSE xc yc zc dx dy dz R_1 R_2 x1 y1 z1 x2 y2 z2 - # geompy.kind.LINE xo yo zo dx dy dz - # geompy.kind.SEGMENT x1 y1 z1 x2 y2 z2 - # geompy.kind.EDGE nb_vertices + # - geompy.kind.CIRCLE xc yc zc dx dy dz R + # - geompy.kind.ARC_CIRCLE xc yc zc dx dy dz R x1 y1 z1 x2 y2 z2 + # - geompy.kind.ELLIPSE xc yc zc dx dy dz R_1 R_2 + # - geompy.kind.ARC_ELLIPSE xc yc zc dx dy dz R_1 R_2 x1 y1 z1 x2 y2 z2 + # - geompy.kind.LINE xo yo zo dx dy dz + # - geompy.kind.SEGMENT x1 y1 z1 x2 y2 z2 + # - geompy.kind.EDGE nb_vertices # - # geompy.kind.VERTEX x y z + # - geompy.kind.VERTEX x y z # - # Example: see GEOM_TestMeasures.py + # @ref swig_todo "Example" def KindOfShape(self,theShape): + # Example: see GEOM_TestMeasures.py aRoughTuple = self.MeasuOp.KindOfShape(theShape) RaiseIfFailed("KindOfShape", self.MeasuOp) - + aKind = aRoughTuple[0] anInts = aRoughTuple[1] aDbls = aRoughTuple[2] - + # Now there is no exception from this rule: aKindTuple = [aKind] + aDbls + anInts - + # If they are we will regroup parameters for such kind of shape. # For example: #if aKind == kind.SOME_KIND: # # SOME_KIND int int double int double double # aKindTuple = [aKind, anInts[0], anInts[1], aDbls[0], anInts[2], aDbls[1], aDbls[2]] - + return aKindTuple - - # ----------------------------------------------------------------------------- - # Import/Export objects - # ----------------------------------------------------------------------------- - + + # end of l2_measure + ## @} + + ## @addtogroup l2_import_export + ## @{ + ## Import a shape from the BREP or IGES or STEP file # (depends on given format) with given name. # @param theFileName The file, containing the shape. @@ -2197,121 +3133,145 @@ class geompyDC(GEOM._objref_GEOM_Gen): # Available formats can be obtained with InsertOp.ImportTranslators() method. # @return New GEOM_Object, containing the imported shape. # - # Example: see GEOM_TestOthers.py + # @ref swig_Import_Export "Example" def Import(self,theFileName, theFormatName): + # Example: see GEOM_TestOthers.py anObj = self.InsertOp.Import(theFileName, theFormatName) RaiseIfFailed("Import", self.InsertOp) return anObj - + ## Shortcut to Import() for BREP format # - # Example: see GEOM_TestOthers.py + # @ref swig_Import_Export "Example" def ImportBREP(self,theFileName): + # Example: see GEOM_TestOthers.py return self.Import(theFileName, "BREP") - + ## Shortcut to Import() for IGES format # - # Example: see GEOM_TestOthers.py + # @ref swig_Import_Export "Example" def ImportIGES(self,theFileName): + # Example: see GEOM_TestOthers.py return self.Import(theFileName, "IGES") - + ## Shortcut to Import() for STEP format # - # Example: see GEOM_TestOthers.py + # @ref swig_Import_Export "Example" def ImportSTEP(self,theFileName): + # Example: see GEOM_TestOthers.py return self.Import(theFileName, "STEP") - + ## Export the given shape into a file with given name. # @param theObject Shape to be stored in the file. # @param theFileName Name of the file to store the given shape in. # @param theFormatName Specify format for the shape storage. # Available formats can be obtained with InsertOp.ImportTranslators() method. # - # Example: see GEOM_TestOthers.py + # @ref swig_Import_Export "Example" def Export(self,theObject, theFileName, theFormatName): + # Example: see GEOM_TestOthers.py self.InsertOp.Export(theObject, theFileName, theFormatName) if self.InsertOp.IsDone() == 0: raise RuntimeError, "Export : " + self.InsertOp.GetErrorCode() pass pass - + ## Shortcut to Export() for BREP format # - # Example: see GEOM_TestOthers.py + # @ref swig_Import_Export "Example" def ExportBREP(self,theObject, theFileName): + # Example: see GEOM_TestOthers.py return self.Export(theObject, theFileName, "BREP") - + ## Shortcut to Export() for IGES format # - # Example: see GEOM_TestOthers.py + # @ref swig_Import_Export "Example" def ExportIGES(self,theObject, theFileName): + # Example: see GEOM_TestOthers.py return self.Export(theObject, theFileName, "IGES") - + ## Shortcut to Export() for STEP format # - # Example: see GEOM_TestOthers.py + # @ref swig_Import_Export "Example" def ExportSTEP(self,theObject, theFileName): + # Example: see GEOM_TestOthers.py return self.Export(theObject, theFileName, "STEP") - - # ----------------------------------------------------------------------------- - # Block operations - # ----------------------------------------------------------------------------- - + + # end of l2_import_export + ## @} + + ## @addtogroup l3_blocks + ## @{ + ## Create a quadrangle face from four edges. Order of Edges is not # important. It is not necessary that edges share the same vertex. # @param E1,E2,E3,E4 Edges for the face bound. # @return New GEOM_Object, containing the created face. # - # Example: see GEOM_Spanner.py + # @ref tui_building_by_blocks_page "Example" def MakeQuad(self,E1, E2, E3, E4): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeQuad(E1, E2, E3, E4) RaiseIfFailed("MakeQuad", self.BlocksOp) return anObj - + ## Create a quadrangle face on two edges. # The missing edges will be built by creating the shortest ones. # @param E1,E2 Two opposite edges for the face. # @return New GEOM_Object, containing the created face. # - # Example: see GEOM_Spanner.py + # @ref tui_building_by_blocks_page "Example" def MakeQuad2Edges(self,E1, E2): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeQuad2Edges(E1, E2) RaiseIfFailed("MakeQuad2Edges", self.BlocksOp) return anObj - + ## Create a quadrangle face with specified corners. # The missing edges will be built by creating the shortest ones. # @param V1,V2,V3,V4 Corner vertices for the face. # @return New GEOM_Object, containing the created face. # - # Example: see GEOM_Spanner.py + # @ref tui_building_by_blocks_page "Example 1" + # \n @ref swig_MakeQuad4Vertices "Example 2" def MakeQuad4Vertices(self,V1, V2, V3, V4): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeQuad4Vertices(V1, V2, V3, V4) RaiseIfFailed("MakeQuad4Vertices", self.BlocksOp) return anObj - + ## Create a hexahedral solid, bounded by the six given faces. Order of # faces is not important. It is not necessary that Faces share the same edge. # @param F1,F2,F3,F4,F5,F6 Faces for the hexahedral solid. # @return New GEOM_Object, containing the created solid. # - # Example: see GEOM_Spanner.py + # @ref tui_building_by_blocks_page "Example 1" + # \n @ref swig_MakeHexa "Example 2" def MakeHexa(self,F1, F2, F3, F4, F5, F6): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeHexa(F1, F2, F3, F4, F5, F6) RaiseIfFailed("MakeHexa", self.BlocksOp) return anObj - + ## Create a hexahedral solid between two given faces. # The missing faces will be built by creating the smallest ones. # @param F1,F2 Two opposite faces for the hexahedral solid. # @return New GEOM_Object, containing the created solid. # - # Example: see GEOM_Spanner.py + # @ref tui_building_by_blocks_page "Example 1" + # \n @ref swig_MakeHexa2Faces "Example 2" def MakeHexa2Faces(self,F1, F2): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.MakeHexa2Faces(F1, F2) RaiseIfFailed("MakeHexa2Faces", self.BlocksOp) return anObj - + + # end of l3_blocks + ## @} + + ## @addtogroup l3_blocks_op + ## @{ + ## Get a vertex, found in the given shape by its coordinates. # @param theShape Block or a compound of blocks. # @param theX,theY,theZ Coordinates of the sought vertex. @@ -2319,89 +3279,103 @@ class geompyDC(GEOM._objref_GEOM_Gen): # vertex and point with the given coordinates. # @return New GEOM_Object, containing the found vertex. # - # Example: see GEOM_TestOthers.py + # @ref swig_GetPoint "Example" def GetPoint(self,theShape, theX, theY, theZ, theEpsilon): + # Example: see GEOM_TestOthers.py anObj = self.BlocksOp.GetPoint(theShape, theX, theY, theZ, theEpsilon) RaiseIfFailed("GetPoint", self.BlocksOp) return anObj - + ## Get an edge, found in the given shape by two given vertices. # @param theShape Block or a compound of blocks. # @param thePoint1,thePoint2 Points, close to the ends of the desired edge. # @return New GEOM_Object, containing the found edge. # - # Example: see GEOM_Spanner.py + # @ref swig_todo "Example" def GetEdge(self,theShape, thePoint1, thePoint2): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetEdge(theShape, thePoint1, thePoint2) RaiseIfFailed("GetEdge", self.BlocksOp) return anObj - + ## Find an edge of the given shape, which has minimal distance to the given point. # @param theShape Block or a compound of blocks. # @param thePoint Point, close to the desired edge. # @return New GEOM_Object, containing the found edge. # - # Example: see GEOM_TestOthers.py + # @ref swig_GetEdgeNearPoint "Example" def GetEdgeNearPoint(self,theShape, thePoint): + # Example: see GEOM_TestOthers.py anObj = self.BlocksOp.GetEdgeNearPoint(theShape, thePoint) RaiseIfFailed("GetEdgeNearPoint", self.BlocksOp) return anObj - + ## Returns a face, found in the given shape by four given corner vertices. # @param theShape Block or a compound of blocks. - # @param thePoint1-thePoint4 Points, close to the corners of the desired face. + # @param thePoint1,thePoint2,thePoint3,thePoint4 Points, close to the corners of the desired face. # @return New GEOM_Object, containing the found face. # - # Example: see GEOM_Spanner.py + # @ref swig_todo "Example" def GetFaceByPoints(self,theShape, thePoint1, thePoint2, thePoint3, thePoint4): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetFaceByPoints(theShape, thePoint1, thePoint2, thePoint3, thePoint4) RaiseIfFailed("GetFaceByPoints", self.BlocksOp) return anObj - + ## Get a face of block, found in the given shape by two given edges. # @param theShape Block or a compound of blocks. # @param theEdge1,theEdge2 Edges, close to the edges of the desired face. # @return New GEOM_Object, containing the found face. # - # Example: see GEOM_Spanner.py + # @ref swig_todo "Example" def GetFaceByEdges(self,theShape, theEdge1, theEdge2): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetFaceByEdges(theShape, theEdge1, theEdge2) RaiseIfFailed("GetFaceByEdges", self.BlocksOp) return anObj - + ## Find a face, opposite to the given one in the given block. # @param theBlock Must be a hexahedral solid. # @param theFace Face of \a theBlock, opposite to the desired face. # @return New GEOM_Object, containing the found face. # - # Example: see GEOM_Spanner.py + # @ref swig_GetOppositeFace "Example" def GetOppositeFace(self,theBlock, theFace): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetOppositeFace(theBlock, theFace) RaiseIfFailed("GetOppositeFace", self.BlocksOp) return anObj - + ## Find a face of the given shape, which has minimal distance to the given point. # @param theShape Block or a compound of blocks. # @param thePoint Point, close to the desired face. # @return New GEOM_Object, containing the found face. # - # Example: see GEOM_Spanner.py + # @ref swig_GetFaceNearPoint "Example" def GetFaceNearPoint(self,theShape, thePoint): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetFaceNearPoint(theShape, thePoint) RaiseIfFailed("GetFaceNearPoint", self.BlocksOp) return anObj - + ## Find a face of block, whose outside normale has minimal angle with the given vector. - # @param theShape Block or a compound of blocks. + # @param theBlock Block or a compound of blocks. # @param theVector Vector, close to the normale of the desired face. # @return New GEOM_Object, containing the found face. # - # Example: see GEOM_Spanner.py - def GetFaceByNormale(self,theBlock, theVector): + # @ref swig_todo "Example" + def GetFaceByNormale(self, theBlock, theVector): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetFaceByNormale(theBlock, theVector) RaiseIfFailed("GetFaceByNormale", self.BlocksOp) return anObj - + + # end of l3_blocks_op + ## @} + + ## @addtogroup l4_blocks_measure + ## @{ + ## Check, if the compound of blocks is given. # To be considered as a compound of blocks, the # given shape must satisfy the following conditions: @@ -2413,39 +3387,49 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @return TRUE, if the given shape is a compound of blocks. # If theCompound is not valid, prints all discovered errors. # - # Example: see GEOM_Spanner.py + # @ref tui_measurement_tools_page "Example 1" + # \n @ref swig_CheckCompoundOfBlocks "Example 2" def CheckCompoundOfBlocks(self,theCompound): + # Example: see GEOM_Spanner.py (IsValid, BCErrors) = self.BlocksOp.CheckCompoundOfBlocks(theCompound) RaiseIfFailed("CheckCompoundOfBlocks", self.BlocksOp) if IsValid == 0: Descr = self.BlocksOp.PrintBCErrors(theCompound, BCErrors) print Descr return IsValid - + ## Remove all seam and degenerated edges from \a theShape. # Unite faces and edges, sharing one surface. It means that # this faces must have references to one C++ surface object (handle). # @param theShape The compound or single solid to remove irregular edges from. # @return Improved shape. # - # Example: see GEOM_TestOthers.py + # @ref swig_RemoveExtraEdges "Example" def RemoveExtraEdges(self,theShape): + # Example: see GEOM_TestOthers.py anObj = self.BlocksOp.RemoveExtraEdges(theShape) RaiseIfFailed("RemoveExtraEdges", self.BlocksOp) return anObj - + ## Check, if the given shape is a blocks compound. # Fix all detected errors. # \note Single block can be also fixed by this method. - # @param theCompound The compound to check and improve. + # @param theShape The compound to check and improve. # @return Improved compound. # - # Example: see GEOM_TestOthers.py + # @ref swig_CheckAndImprove "Example" def CheckAndImprove(self,theShape): + # Example: see GEOM_TestOthers.py anObj = self.BlocksOp.CheckAndImprove(theShape) RaiseIfFailed("CheckAndImprove", self.BlocksOp) return anObj - + + # end of l4_blocks_measure + ## @} + + ## @addtogroup l3_blocks_op + ## @{ + ## Get all the blocks, contained in the given compound. # @param theCompound The compound to explode. # @param theMinNbFaces If solid has lower number of faces, it is not a block. @@ -2453,42 +3437,51 @@ class geompyDC(GEOM._objref_GEOM_Gen): # \note If theMaxNbFaces = 0, the maximum number of faces is not restricted. # @return List of GEOM_Objects, containing the retrieved blocks. # - # Example: see GEOM_TestOthers.py + # @ref tui_explode_on_blocks "Example 1" + # \n @ref swig_MakeBlockExplode "Example 2" def MakeBlockExplode(self,theCompound, theMinNbFaces, theMaxNbFaces): + # Example: see GEOM_TestOthers.py + theMinNbFaces,theMaxNbFaces,Parameters = ParseParameters(theMinNbFaces,theMaxNbFaces) aList = self.BlocksOp.ExplodeCompoundOfBlocks(theCompound, theMinNbFaces, theMaxNbFaces) RaiseIfFailed("ExplodeCompoundOfBlocks", self.BlocksOp) + for anObj in aList: + anObj.SetParameters(Parameters) + pass return aList - + ## Find block, containing the given point inside its volume or on boundary. # @param theCompound Compound, to find block in. # @param thePoint Point, close to the desired block. If the point lays on # boundary between some blocks, we return block with nearest center. # @return New GEOM_Object, containing the found block. # - # Example: see GEOM_Spanner.py + # @ref swig_todo "Example" def GetBlockNearPoint(self,theCompound, thePoint): + # Example: see GEOM_Spanner.py anObj = self.BlocksOp.GetBlockNearPoint(theCompound, thePoint) RaiseIfFailed("GetBlockNearPoint", self.BlocksOp) return anObj - + ## Find block, containing all the elements, passed as the parts, or maximum quantity of them. # @param theCompound Compound, to find block in. # @param theParts List of faces and/or edges and/or vertices to be parts of the found block. # @return New GEOM_Object, containing the found block. # - # Example: see GEOM_TestOthers.py + # @ref swig_GetBlockByParts "Example" def GetBlockByParts(self,theCompound, theParts): + # Example: see GEOM_TestOthers.py anObj = self.BlocksOp.GetBlockByParts(theCompound, theParts) RaiseIfFailed("GetBlockByParts", self.BlocksOp) return anObj - + ## Return all blocks, containing all the elements, passed as the parts. # @param theCompound Compound, to find blocks in. # @param theParts List of faces and/or edges and/or vertices to be parts of the found blocks. # @return List of GEOM_Objects, containing the found blocks. # - # Example: see GEOM_Spanner.py + # @ref swig_todo "Example" def GetBlocksByParts(self,theCompound, theParts): + # Example: see GEOM_Spanner.py aList = self.BlocksOp.GetBlocksByParts(theCompound, theParts) RaiseIfFailed("GetBlocksByParts", self.BlocksOp) return aList @@ -2502,12 +3495,15 @@ class geompyDC(GEOM._objref_GEOM_Gen): # \note Unique ID of sub-shape can be obtained, using method GetSubShapeID(). # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_Spanner.py + # @ref tui_multi_transformation "Example" def MakeMultiTransformation1D(self,Block, DirFace1, DirFace2, NbTimes): + # Example: see GEOM_Spanner.py + DirFace1,DirFace2,NbTimes,Parameters = ParseParameters(DirFace1,DirFace2,NbTimes) anObj = self.BlocksOp.MakeMultiTransformation1D(Block, DirFace1, DirFace2, NbTimes) RaiseIfFailed("MakeMultiTransformation1D", self.BlocksOp) + anObj.SetParameters(Parameters) return anObj - + ## Multi-transformate block and glue the result. # @param Block Hexahedral solid to be multi-transformed. # @param DirFace1U,DirFace2U IDs of Direction faces for the first transformation. @@ -2515,14 +3511,18 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param NbTimesU,NbTimesV Quantity of transformations to be done. # @return New GEOM_Object, containing the result shape. # - # Example: see GEOM_Spanner.py + # @ref tui_multi_transformation "Example" def MakeMultiTransformation2D(self,Block, DirFace1U, DirFace2U, NbTimesU, DirFace1V, DirFace2V, NbTimesV): + # Example: see GEOM_Spanner.py + DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV,Parameters = ParseParameters( + DirFace1U,DirFace2U,NbTimesU,DirFace1V,DirFace2V,NbTimesV) anObj = self.BlocksOp.MakeMultiTransformation2D(Block, DirFace1U, DirFace2U, NbTimesU, DirFace1V, DirFace2V, NbTimesV) RaiseIfFailed("MakeMultiTransformation2D", self.BlocksOp) + anObj.SetParameters(Parameters) return anObj - + ## Build all possible propagation groups. # Propagation group is a set of all edges, opposite to one (main) # edge of this group directly or through other opposite edges. @@ -2530,74 +3530,84 @@ class geompyDC(GEOM._objref_GEOM_Gen): # @param theShape Shape to build propagation groups on. # @return List of GEOM_Objects, each of them is a propagation group. # - # Example: see GEOM_TestOthers.py + # @ref swig_Propagate "Example" def Propagate(self,theShape): + # Example: see GEOM_TestOthers.py listChains = self.BlocksOp.Propagate(theShape) RaiseIfFailed("Propagate", self.BlocksOp) return listChains - - # ----------------------------------------------------------------------------- - # Group operations - # ----------------------------------------------------------------------------- - + + # end of l3_blocks_op + ## @} + + ## @addtogroup l3_groups + ## @{ + ## Creates a new group which will store sub shapes of theMainShape # @param theMainShape is a GEOM object on which the group is selected # @param theShapeType defines a shape type of the group # @return a newly created GEOM group # - # Example: see GEOM_TestOthers.py + # @ref tui_working_with_groups_page "Example 1" + # \n @ref swig_CreateGroup "Example 2" def CreateGroup(self,theMainShape, theShapeType): + # Example: see GEOM_TestOthers.py anObj = self.GroupOp.CreateGroup(theMainShape, theShapeType) RaiseIfFailed("CreateGroup", self.GroupOp) return anObj - + ## Adds a sub object with ID theSubShapeId to the group # @param theGroup is a GEOM group to which the new sub shape is added # @param theSubShapeID is a sub shape ID in the main object. # \note Use method GetSubShapeID() to get an unique ID of the sub shape # - # Example: see GEOM_TestOthers.py + # @ref tui_working_with_groups_page "Example" def AddObject(self,theGroup, theSubShapeID): + # Example: see GEOM_TestOthers.py self.GroupOp.AddObject(theGroup, theSubShapeID) RaiseIfFailed("AddObject", self.GroupOp) pass - + ## Removes a sub object with ID \a theSubShapeId from the group # @param theGroup is a GEOM group from which the new sub shape is removed # @param theSubShapeID is a sub shape ID in the main object. # \note Use method GetSubShapeID() to get an unique ID of the sub shape # - # Example: see GEOM_TestOthers.py + # @ref tui_working_with_groups_page "Example" def RemoveObject(self,theGroup, theSubShapeID): + # Example: see GEOM_TestOthers.py self.GroupOp.RemoveObject(theGroup, theSubShapeID) RaiseIfFailed("RemoveObject", self.GroupOp) pass - + ## Adds to the group all the given shapes. No errors, if some shapes are alredy included. # @param theGroup is a GEOM group to which the new sub shapes are added. # @param theSubShapes is a list of sub shapes to be added. # - # Example: see GEOM_TestOthers.py + # @ref tui_working_with_groups_page "Example" def UnionList (self,theGroup, theSubShapes): + # Example: see GEOM_TestOthers.py self.GroupOp.UnionList(theGroup, theSubShapes) RaiseIfFailed("UnionList", self.GroupOp) pass - + ## Works like the above method, but argument # theSubShapes here is a list of sub-shapes indices # - # Example: see GEOM_TestOthers.py + # @ref swig_UnionIDs "Example" def UnionIDs(self,theGroup, theSubShapes): + # Example: see GEOM_TestOthers.py self.GroupOp.UnionIDs(theGroup, theSubShapes) RaiseIfFailed("UnionIDs", self.GroupOp) pass - + ## Removes from the group all the given shapes. No errors, if some shapes are not included. # @param theGroup is a GEOM group from which the sub-shapes are removed. # @param theSubShapes is a list of sub-shapes to be removed. # - # Example: see GEOM_TestOthers.py + # @ref tui_working_with_groups_page "Example" def DifferenceList (self,theGroup, theSubShapes): + # Example: see GEOM_TestOthers.py self.GroupOp.DifferenceList(theGroup, theSubShapes) RaiseIfFailed("DifferenceList", self.GroupOp) pass @@ -2605,43 +3615,49 @@ class geompyDC(GEOM._objref_GEOM_Gen): ## Works like the above method, but argument # theSubShapes here is a list of sub-shapes indices # - # Example: see GEOM_TestOthers.py + # @ref swig_DifferenceIDs "Example" def DifferenceIDs(self,theGroup, theSubShapes): + # Example: see GEOM_TestOthers.py self.GroupOp.DifferenceIDs(theGroup, theSubShapes) RaiseIfFailed("DifferenceIDs", self.GroupOp) pass - + ## Returns a list of sub objects ID stored in the group # @param theGroup is a GEOM group for which a list of IDs is requested # - # Example: see GEOM_TestOthers.py + # @ref swig_GetObjectIDs "Example" def GetObjectIDs(self,theGroup): + # Example: see GEOM_TestOthers.py ListIDs = self.GroupOp.GetObjects(theGroup) RaiseIfFailed("GetObjects", self.GroupOp) return ListIDs - + ## Returns a type of sub objects stored in the group # @param theGroup is a GEOM group which type is returned. # - # Example: see GEOM_TestOthers.py + # @ref swig_GetType "Example" def GetType(self,theGroup): + # Example: see GEOM_TestOthers.py aType = self.GroupOp.GetType(theGroup) RaiseIfFailed("GetType", self.GroupOp) return aType - + ## Returns a main shape associated with the group # @param theGroup is a GEOM group for which a main shape object is requested # @return a GEOM object which is a main shape for theGroup # - # Example: see GEOM_TestOthers.py + # @ref swig_GetMainShape "Example" def GetMainShape(self,theGroup): + # Example: see GEOM_TestOthers.py anObj = self.GroupOp.GetMainShape(theGroup) RaiseIfFailed("GetMainShape", self.GroupOp) return anObj - + ## Create group of edges of theShape, whose length is in range [min_length, max_length]. # If include_min/max == 0, edges with length == min/max_length will not be included in result. - def GetEdgesByLength (self,theShape, min_length, max_length, include_min = 1, include_max = 1): + # + # @ref swig_todo "Example" + def GetEdgesByLength (self, theShape, min_length, max_length, include_min = 1, include_max = 1): edges = self.SubShapeAll(theShape, ShapeType["EDGE"]) edges_in_range = [] for edge in edges: @@ -2654,19 +3670,21 @@ class geompyDC(GEOM._objref_GEOM_Gen): skip = 1 else: edges_in_range.append(edge) - + if len(edges_in_range) <= 0: print "No edges found by given criteria" return 0 - + group_edges = self.CreateGroup(theShape, ShapeType["EDGE"]) self.UnionList(group_edges, edges_in_range) - + return group_edges - + ## Create group of edges of selected shape, whose length is in range [min_length, max_length]. # If include_min/max == 0, edges with length == min/max_length will not be included in result. - def SelectEdges (self,min_length, max_length, include_min = 1, include_max = 1): + # + # @ref swig_todo "Example" + def SelectEdges (self, min_length, max_length, include_min = 1, include_max = 1): nb_selected = sg.SelectedCount() if nb_selected < 1: print "Select a shape before calling this function, please." @@ -2674,25 +3692,39 @@ class geompyDC(GEOM._objref_GEOM_Gen): if nb_selected > 1: print "Only one shape must be selected" return 0 - + id_shape = sg.getSelected(0) shape = IDToObject( id_shape ) - + group_edges = self.GetEdgesByLength(shape, min_length, max_length, include_min, include_max) - + left_str = " < " right_str = " < " if include_min: left_str = " <= " if include_max: right_str = " <= " - + self.addToStudyInFather(shape, group_edges, "Group of edges with " + `min_length` + left_str + "length" + right_str + `max_length`) - + sg.updateObjBrowser(1) - + return group_edges - + + # end of l3_groups + ## @} + + ## Create a copy of the given object + # @ingroup l1_geompy_auxiliary + # + # @ref swig_all_advanced "Example" + def MakeCopy(self,theOriginal): + # Example: see GEOM_TestAll.py + anObj = self.InsertOp.MakeCopy(theOriginal) + RaiseIfFailed("MakeCopy", self.InsertOp) + return anObj + ## Add Path to load python scripts from + # @ingroup l1_geompy_auxiliary def addPath(self,Path): if (sys.path.count(Path) < 1): sys.path.append(Path) diff --git a/src/GEOM_SWIG_WITHIHM/Makefile.am b/src/GEOM_SWIG_WITHIHM/Makefile.am index e71593115..1fcd94b42 100644 --- a/src/GEOM_SWIG_WITHIHM/Makefile.am +++ b/src/GEOM_SWIG_WITHIHM/Makefile.am @@ -1,6 +1,6 @@ -# GEOM GEOM_SWIG : binding of C++ omplementaion with Python +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or @@ -17,19 +17,16 @@ # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# GEOM GEOM_SWIG : binding of C++ omplementaion with Python # File : Makefile.in # Author : Nicolas REJNERI, Paul RASCLE # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - - # Libraries targets - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # =============================================================== @@ -49,66 +46,46 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am # + | # dependant libs | # -# The file libSALOME_Swigcmodule.py will be installed in -# /lib/python/site-package/salome. -# The library will be installed in the same place. +# The file libGEOM_Swig.py will be installed to the +# /bin/salome directory. +# The library _libGEOM_Swig.so will be installed to the +# /lib/python/site-package/salome directory. # -# this option puts it to dist -#BUILT_SOURCES = swig_wrap.cpp - -SWIG_FLAGS = \ - @SWIG_FLAGS@ \ - -I$(srcdir) \ - -I$(srcdir)/../GEOMGUI - +SWIG_FLAGS = @SWIG_FLAGS@ -I$(srcdir) -I$(srcdir)/../GEOMGUI SWIG_SOURCES = libGEOM_Swig.i -# Libraries targets -lib_LTLIBRARIES = libGEOM_Swigcmodule.la - -nodist_pkgpython_DATA = libGEOM_Swig.py libGEOM_Swig.py: swig_wrap.cpp -libGEOM_Swigcmodule_la_SOURCES = \ - $(BUILT_SOURCES) \ - $(SWIG_SOURCES) +# Libraries targets +lib_LTLIBRARIES = _libGEOM_Swig.la +_libGEOM_Swig_la_SOURCES = $(SWIG_SOURCES) +nodist__libGEOM_Swig_la_SOURCES = swig_wrap.cpp +salomeinclude_HEADERS = $(SWIG_SOURCES) -nodist_libGEOM_Swigcmodule_la_SOURCES = swig_wrap.cpp - -#LIB_CLIENT_IDL = SALOMEDS.idl \ -# SALOMEDS_Attributes.idl \ -# SALOME_Exception.idl \ -# GEOM_Gen.idl \ -# SALOME_Component.idl \ -# SALOME_GenericObj.idl - -libGEOM_Swigcmodule_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(PYTHON_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(VTK_INCLUDES) \ - $(OGL_INCLUDES) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(top_builddir)/idl \ +_libGEOM_Swig_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(PYTHON_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(VTK_INCLUDES) \ + $(OGL_INCLUDES) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libGEOM_Swigcmodule_la_LDFLAGS = \ - ../GEOMGUI/libGEOM.la - - -libGEOM_Swigcmodule_la_LIBADD = \ +_libGEOM_Swig_la_LDFLAGS = -module +_libGEOM_Swig_la_LIBADD = \ + ../GEOMGUI/libGEOM.la \ $(PYTHON_LIBS) swig_wrap.cpp : $(SWIG_SOURCES) $(SWIG) $(SWIG_FLAGS) -o $@ $< -CLEANFILES = \ - swig_wrap.cpp +CLEANFILES = swig_wrap.cpp libGEOM_Swig.py # # =============================================================== @@ -116,12 +93,8 @@ CLEANFILES = \ # =============================================================== # -# Scripts to be installed. -dist_salomescript_DATA= \ - libGEOM_Swig.py +# Scripts to be installed (distributed) +dist_salomescript_DATA = -install-exec-hook:\ - $(libdir)/_libGEOM_Swig.so - -$(libdir)/_libGEOM_Swig.so: - ( cd $(libdir); ln -sf libGEOM_Swigcmodule.so _libGEOM_Swig.so; ) +# Scripts to be installed (non-distributed) +nodist_salomescript_DATA = libGEOM_Swig.py diff --git a/src/GEOM_SWIG_WITHIHM/libGEOM_Swig.i b/src/GEOM_SWIG_WITHIHM/libGEOM_Swig.i index b1c76a904..2ca52598a 100644 --- a/src/GEOM_SWIG_WITHIHM/libGEOM_Swig.i +++ b/src/GEOM_SWIG_WITHIHM/libGEOM_Swig.i @@ -1,30 +1,31 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : libGeometry_Swig.i // Created : Tue Mar 26 15:04:48 2002 // Author : Nicolas REJNERI, Paul RASCLE // Project : SALOME // Module : GEOM -// Copyright : Open CASCADE, EDF 2002 // $Header$ - +// %module libGEOM_Swig %include "GeometryGUI_Swig.i" diff --git a/src/GenerationGUI/GenerationGUI.cxx b/src/GenerationGUI/GenerationGUI.cxx index 85832ed84..0b16254ac 100644 --- a/src/GenerationGUI/GenerationGUI.cxx +++ b/src/GenerationGUI/GenerationGUI.cxx @@ -1,50 +1,46 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GenerationGUI.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : GenerationGUI.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "GenerationGUI.h" -#include "SUIT_Session.h" -#include "SUIT_Desktop.h" +#include -#include "SalomeApp_Application.h" +#include +#include #include "GenerationGUI_PrismDlg.h" // Method PRISM #include "GenerationGUI_RevolDlg.h" // Method REVOL #include "GenerationGUI_FillingDlg.h" // Method FILLING #include "GenerationGUI_PipeDlg.h" // Method PIPE -using namespace std; - //======================================================================= // function : GenerationGUI() // purpose : Constructor //======================================================================= -GenerationGUI::GenerationGUI(GeometryGUI* parent) : GEOMGUI(parent) +GenerationGUI::GenerationGUI( GeometryGUI* parent ) + : GEOMGUI( parent ) { } @@ -70,17 +66,16 @@ bool GenerationGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) QDialog* aDlg = NULL; - switch (theCommandID) - { - case 4031: aDlg = new GenerationGUI_PrismDlg ( getGeometryGUI(), parent, ""); break; - case 4032: aDlg = new GenerationGUI_RevolDlg ( getGeometryGUI(), parent, ""); break; - case 4033: aDlg = new GenerationGUI_FillingDlg ( getGeometryGUI(), parent, ""); break; - case 4034: aDlg = new GenerationGUI_PipeDlg ( getGeometryGUI(), parent, ""); break; + switch ( theCommandID ) { + case 4031: aDlg = new GenerationGUI_PrismDlg ( getGeometryGUI(), parent ); break; + case 4032: aDlg = new GenerationGUI_RevolDlg ( getGeometryGUI(), parent ); break; + case 4033: aDlg = new GenerationGUI_FillingDlg ( getGeometryGUI(), parent ); break; + case 4034: aDlg = new GenerationGUI_PipeDlg ( getGeometryGUI(), parent ); break; - default: app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); break; + default: app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); break; } - if (aDlg != NULL) + if (aDlg != NULL ) aDlg->show(); return true; @@ -92,9 +87,11 @@ bool GenerationGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) //===================================================================================== extern "C" { -GENERATIONGUI_EXPORT - GEOMGUI* GetLibGUI(GeometryGUI* parent) +#ifdef WIN32 + __declspec( dllexport ) +#endif + GEOMGUI* GetLibGUI( GeometryGUI* parent ) { - return new GenerationGUI(parent); + return new GenerationGUI( parent ); } } diff --git a/src/GenerationGUI/GenerationGUI.h b/src/GenerationGUI/GenerationGUI.h index a809bdcf7..17a28b815 100644 --- a/src/GenerationGUI/GenerationGUI.h +++ b/src/GenerationGUI/GenerationGUI.h @@ -1,56 +1,44 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GenerationGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : GenerationGUI.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef GENERATIONGUI_H #define GENERATIONGUI_H -#ifdef WNT -# if defined GENERATIONGUI_EXPORTS -# define GENERATIONGUI_EXPORT __declspec( dllexport ) -# else -# define GENERATIONGUI_EXPORT __declspec( dllimport ) -# endif -#else -# define GENERATIONGUI_EXPORT -#endif - -#include "GEOMGUI.h" +#include //================================================================================= // class : GenerationGUI // purpose : //================================================================================= -class GENERATIONGUI_EXPORT GenerationGUI : public GEOMGUI +class GenerationGUI : public GEOMGUI { public: - GenerationGUI(GeometryGUI* parent); + GenerationGUI( GeometryGUI* ); ~GenerationGUI(); - bool OnGUIEvent( int theCommandID, SUIT_Desktop* parent ); + bool OnGUIEvent( int, SUIT_Desktop* ); }; #endif diff --git a/src/GenerationGUI/GenerationGUI.pro b/src/GenerationGUI/GenerationGUI.pro new file mode 100644 index 000000000..124ba1499 --- /dev/null +++ b/src/GenerationGUI/GenerationGUI.pro @@ -0,0 +1,66 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GenerationGUI +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +CAS_LDPATH = -L$${CASROOT}/Linux/lib + +INCLUDEPATH += $${QT_INCLUDES} $${VTK_INCLUDES} $${CAS_CPPFLAGS} $${PYTHON_INCLUDES} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} $${CORBA_INCLUDES} ../GEOMGUI ../DlgRef ../GEOMBase ../OBJECT ../GEOMClient ../GEOMImpl ../GEOMFiltersSelection $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lGEOMFiltersSelection -lGEOMBase $${CAS_LDPATH} -lTKOffset + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += GENERATIONGUI_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +SOURCES = GenerationGUI.cxx +SOURCES += GenerationGUI_PrismDlg.cxx +SOURCES += GenerationGUI_RevolDlg.cxx +SOURCES += GenerationGUI_FillingDlg.cxx +SOURCES += GenerationGUI_PipeDlg.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/GenerationGUI/GenerationGUI_FillingDlg.cxx b/src/GenerationGUI/GenerationGUI_FillingDlg.cxx index 9f6bc2c60..4f46e1962 100644 --- a/src/GenerationGUI/GenerationGUI_FillingDlg.cxx +++ b/src/GenerationGUI/GenerationGUI_FillingDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,38 +17,25 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GenerationGUI_FillingDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : GenerationGUI_FillingDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "GenerationGUI_FillingDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include + +#include +#include +#include +#include -#include -#include -#include -#include -#include -#include -#include #include -#include -#include -#include "GEOMImpl_Types.hxx" - -#include -#include - -#include "utilities.h" +#include //================================================================================= // class : GenerationGUI_FillingDlg() @@ -57,38 +44,41 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -GenerationGUI_FillingDlg::GenerationGUI_FillingDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +GenerationGUI_FillingDlg::GenerationGUI_FillingDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { - QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_FILLING"))); - QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_FILLING" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_FILLING_TITLE")); + setWindowTitle( tr( "GEOM_FILLING_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_FILLING")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr ( "GEOM_FILLING" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel5Spin1Check(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - GroupPoints->TextLabel1->setText(tr("GEOM_FILLING_COMPOUND")); - GroupPoints->TextLabel2->setText(tr("GEOM_FILLING_MIN_DEG")); - GroupPoints->TextLabel3->setText(tr("GEOM_FILLING_TOL_2D")); - GroupPoints->TextLabel4->setText(tr("GEOM_FILLING_NB_ITER")); - GroupPoints->TextLabel5->setText(tr("GEOM_FILLING_MAX_DEG")); - GroupPoints->TextLabel6->setText(tr("GEOM_FILLING_TOL_3D")); - GroupPoints->CheckBox1->setText(tr("GEOM_FILLING_APPROX")); - GroupPoints->PushButton1->setPixmap(image1); + GroupPoints = new DlgRef_1Sel5Spin1Check( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_FILLING_COMPOUND" ) ); + GroupPoints->TextLabel2->setText( tr( "GEOM_FILLING_MIN_DEG" ) ); + GroupPoints->TextLabel3->setText( tr( "GEOM_FILLING_TOL_2D" ) ); + GroupPoints->TextLabel4->setText( tr( "GEOM_FILLING_NB_ITER" ) ); + GroupPoints->TextLabel5->setText( tr( "GEOM_FILLING_MAX_DEG" ) ); + GroupPoints->TextLabel6->setText( tr( "GEOM_FILLING_TOL_3D" ) ); + GroupPoints->CheckBox1->setText( tr( "GEOM_FILLING_APPROX" ) ); + GroupPoints->PushButton1->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupPoints, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); /***************************************************************/ - setHelpFileName("create_filling_page.html"); + setHelpFileName( "create_filling_page.html" ); /* Initialisations */ Init(); @@ -117,7 +107,7 @@ void GenerationGUI_FillingDlg::Init() myMaxDeg = 5; myTol3D = 0.0001; myTol2D = 0.0001; - myNbIter = 5; + myNbIter = 0; myIsApprox = false; myOkCompound = false; @@ -126,42 +116,52 @@ void GenerationGUI_FillingDlg::Init() double SpecificStep1 = 1; double SpecificStep2 = 0.0001; /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_1->RangeStepAndValidator(2.0, MAX_NUMBER, SpecificStep1, 3); - GroupPoints->SpinBox_2->RangeStepAndValidator(0.00001, 10000.0, SpecificStep2, 5); - GroupPoints->SpinBox_3->RangeStepAndValidator(1.0, MAX_NUMBER, SpecificStep1, 3); - GroupPoints->SpinBox_4->RangeStepAndValidator(1.0, MAX_NUMBER, SpecificStep1, 3); - GroupPoints->SpinBox_5->RangeStepAndValidator(0.00001, 10000.0, SpecificStep2, 5); + initSpinBox( GroupPoints->SpinBox1, 2.0, MAX_NUMBER, SpecificStep1, 3 ); + initSpinBox( GroupPoints->SpinBox2, 0.00001, 10000.0, SpecificStep2, 5 ); + initSpinBox( GroupPoints->SpinBox3, 0.0, MAX_NUMBER, SpecificStep1, 3 ); + initSpinBox( GroupPoints->SpinBox4, 1.0, MAX_NUMBER, SpecificStep1, 3 ); + initSpinBox( GroupPoints->SpinBox5, 0.00001, 10000.0, SpecificStep2, 5 ); - GroupPoints->SpinBox_1->SetValue(myMinDeg); - GroupPoints->SpinBox_2->SetValue(myTol2D); - GroupPoints->SpinBox_3->SetValue(myNbIter); - GroupPoints->SpinBox_4->SetValue(myMaxDeg); - GroupPoints->SpinBox_5->SetValue(myTol3D); + GroupPoints->SpinBox1->setValue( myMinDeg ); + GroupPoints->SpinBox2->setValue( myTol2D ); + GroupPoints->SpinBox3->setValue( myNbIter ); + GroupPoints->SpinBox4->setValue( myMaxDeg ); + GroupPoints->SpinBox5->setValue( myTol3D ); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(GroupPoints->SpinBox_1, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupPoints->SpinBox_2, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupPoints->SpinBox_3, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupPoints->SpinBox_4, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupPoints->SpinBox_5, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupPoints->CheckBox1, SIGNAL(stateChanged(int)), this, SLOT(ApproxChanged())); + connect( GroupPoints->SpinBox1, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupPoints->SpinBox2, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupPoints->SpinBox3, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupPoints->SpinBox4, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupPoints->SpinBox5, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_1, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_2, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_3, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_4, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_5, SLOT(SetStep(double))); + connect( GroupPoints->CheckBox1, SIGNAL( stateChanged( int ) ), this, SLOT( ApproxChanged() ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); - initName(tr("GEOM_FILLING")); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); + + initName( tr( "GEOM_FILLING" ) ); +} + +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void GenerationGUI_FillingDlg::SetDoubleSpinBoxStep( double step ) +{ + GroupPoints->SpinBox1->setSingleStep(step); + GroupPoints->SpinBox2->setSingleStep(step); + GroupPoints->SpinBox3->setSingleStep(step); + GroupPoints->SpinBox4->setSingleStep(step); + GroupPoints->SpinBox5->setSingleStep(step); } @@ -199,40 +199,41 @@ void GenerationGUI_FillingDlg::SelectionIntoArgument() erasePreview(); myEditCurrentArgument->setText(""); - if(IObjectCount() != 1) { - if(myEditCurrentArgument == GroupPoints->LineEdit1) + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { + if (myEditCurrentArgument == GroupPoints->LineEdit1) myOkCompound = false; return; } // nbSel == 1 Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult ); + GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); if (!testResult) return; - if(myEditCurrentArgument == GroupPoints->LineEdit1) { + if (myEditCurrentArgument == GroupPoints->LineEdit1) { TopoDS_Shape S; myOkCompound = false; - if ( GEOMBase::GetShape(aSelectedObject, S) && - S.ShapeType() == TopAbs_COMPOUND) - { - // myCompound should be a compound of edges - for ( TopoDS_Iterator it( S ); it.More(); it.Next() ) - if ( it.Value().ShapeType() != TopAbs_EDGE ) - return; - myCompound = aSelectedObject; - myOkCompound = true; - } + if (GEOMBase::GetShape(aSelectedObject, S) && S.ShapeType() == TopAbs_COMPOUND) { + // myCompound should be a compound of edges + for (TopoDS_Iterator it (S); it.More(); it.Next()) + if (it.Value().ShapeType() != TopAbs_EDGE) + return; + myCompound = aSelectedObject; + myOkCompound = true; + } } - myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) ); + myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject)); displayPreview(); } - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -242,7 +243,7 @@ void GenerationGUI_FillingDlg::SetEditCurrentArgument() QPushButton* send = (QPushButton*)sender(); globalSelection( GEOM_ALLSHAPES ); - if(send == GroupPoints->PushButton1) { + if ( send == GroupPoints->PushButton1 ) { GroupPoints->LineEdit1->setFocus(); myEditCurrentArgument = GroupPoints->LineEdit1; globalSelection( GEOM_COMPOUND ); @@ -258,11 +259,10 @@ void GenerationGUI_FillingDlg::SetEditCurrentArgument() void GenerationGUI_FillingDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } + if ( send == GroupPoints->LineEdit1 ) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } } @@ -273,8 +273,8 @@ void GenerationGUI_FillingDlg::LineEditReturnPressed() void GenerationGUI_FillingDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); globalSelection( GEOM_COMPOUND ); displayPreview(); } @@ -284,9 +284,9 @@ void GenerationGUI_FillingDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void GenerationGUI_FillingDlg::enterEvent(QEvent* e) +void GenerationGUI_FillingDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -295,19 +295,19 @@ void GenerationGUI_FillingDlg::enterEvent(QEvent* e) // function : ValueChangedInSpinBox() // purpose : //================================================================================= -void GenerationGUI_FillingDlg::ValueChangedInSpinBox(double newValue) +void GenerationGUI_FillingDlg::ValueChangedInSpinBox( double newValue ) { QObject* send = (QObject*)sender(); - if(send == GroupPoints->SpinBox_1) - myMinDeg = int(newValue); - else if(send == GroupPoints->SpinBox_2) + if ( send == GroupPoints->SpinBox1 ) + myMinDeg = int( newValue ); + else if ( send == GroupPoints->SpinBox2 ) myTol2D = newValue; - else if(send == GroupPoints->SpinBox_3) + else if ( send == GroupPoints->SpinBox3 ) myNbIter = int(newValue); - else if(send == GroupPoints->SpinBox_4) + else if ( send == GroupPoints->SpinBox4 ) myMaxDeg = int(newValue); - else if(send == GroupPoints->SpinBox_5) + else if ( send == GroupPoints->SpinBox5 ) myTol3D = newValue; displayPreview(); @@ -336,9 +336,16 @@ GEOM::GEOM_IOperations_ptr GenerationGUI_FillingDlg::createOperation() // function : isValid // purpose : //================================================================================= -bool GenerationGUI_FillingDlg::isValid( QString& ) +bool GenerationGUI_FillingDlg::isValid( QString& msg ) { - return myOkCompound > 0; + bool ok = true; + ok = GroupPoints->SpinBox1->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox2->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox3->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox4->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox5->isValid( msg, !IsPreview() ) && ok; + + return myOkCompound > 0 && ok; } //================================================================================= @@ -350,10 +357,21 @@ bool GenerationGUI_FillingDlg::execute( ObjectList& objects ) GEOM::GEOM_Object_var anObj; anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation() )->MakeFilling( - myCompound, myMinDeg, myMaxDeg, myTol2D, myTol3D, myNbIter, myIsApprox ); - + myCompound, myMinDeg, myMaxDeg, myTol2D, myTol3D, myNbIter, myIsApprox ); if ( !anObj->_is_nil() ) + { + if ( !IsPreview() ) + { + QStringList aParameters; + aParameters << GroupPoints->SpinBox1->text(); + aParameters << GroupPoints->SpinBox2->text(); + aParameters << GroupPoints->SpinBox3->text(); + aParameters << GroupPoints->SpinBox4->text(); + aParameters << GroupPoints->SpinBox5->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } objects.push_back( anObj._retn() ); + } return true; } diff --git a/src/GenerationGUI/GenerationGUI_FillingDlg.h b/src/GenerationGUI/GenerationGUI_FillingDlg.h index 67d70b837..ed4de1d3d 100644 --- a/src/GenerationGUI/GenerationGUI_FillingDlg.h +++ b/src/GenerationGUI/GenerationGUI_FillingDlg.h @@ -1,81 +1,79 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : GenerationGUI_FillingDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GenerationGUI_FillingDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef GENERATIONGUI_FILLINGDLG_H +#define GENERATIONGUI_FILLINGDLG_H -#ifndef DIALOGBOX_FILLING_H -#define DIALOGBOX_FILLING_H +#include -#include "GenerationGUI.h" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel5Spin1Check.h" +class DlgRef_1Sel5Spin1Check; //================================================================================= // class : GenerationGUI_FillingDlg // purpose : //================================================================================= -class GENERATIONGUI_EXPORT GenerationGUI_FillingDlg : public GEOMBase_Skeleton +class GenerationGUI_FillingDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - GenerationGUI_FillingDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~GenerationGUI_FillingDlg(); + GenerationGUI_FillingDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~GenerationGUI_FillingDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); private: - void Init(); - void enterEvent(QEvent* e); + void Init(); + void enterEvent( QEvent* ); - GEOM::GEOM_Object_var myCompound; /* compound of curves */ - Standard_Integer myMinDeg; - Standard_Integer myMaxDeg; - Standard_Real myTol3D; - Standard_Real myTol2D; - Standard_Integer myNbIter; - bool myIsApprox; - bool myOkCompound; /* to check when curv. compound is defined */ - - DlgRef_1Sel5Spin1Check* GroupPoints; +private: + GEOM::GEOM_Object_var myCompound; /* compound of curves */ + Standard_Integer myMinDeg; + Standard_Integer myMaxDeg; + Standard_Real myTol3D; + Standard_Real myTol2D; + Standard_Integer myNbIter; + bool myIsApprox; + bool myOkCompound; /* to check when curv. compound is defined */ + DlgRef_1Sel5Spin1Check* GroupPoints; + private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ValueChangedInSpinBox(double newValue); - void ApproxChanged(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ValueChangedInSpinBox( double ); + void ApproxChanged(); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_FILLING_H +#endif // GENERATIONGUI_FILLINGDLG_H diff --git a/src/GenerationGUI/GenerationGUI_PipeDlg.cxx b/src/GenerationGUI/GenerationGUI_PipeDlg.cxx index 2d124940d..e560176dc 100644 --- a/src/GenerationGUI/GenerationGUI_PipeDlg.cxx +++ b/src/GenerationGUI/GenerationGUI_PipeDlg.cxx @@ -1,141 +1,200 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GenerationGUI_PipeDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : GenerationGUI_PipeDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "GenerationGUI_PipeDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include +#include +#include +#include +#include -#include #include #include #include #include #include -#include -#include -#if OCC_VERSION_MAJOR >= 5 -#include -#else -#include -#endif +#include +#include -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" +#include //================================================================================= // class : GenerationGUI_PipeDlg() -// purpose : Constructs a GenerationGUI_PipeDlg which is a child of 'parent', with the +// purpose : Constructs a GenerationGUI_PipeDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -GenerationGUI_PipeDlg::GenerationGUI_PipeDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +GenerationGUI_PipeDlg::GenerationGUI_PipeDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PIPE"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_PIPE"))); + QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image2 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_PIPE_BINORMAL"))); - setCaption(tr("GEOM_PIPE_TITLE")); + setWindowTitle(tr("GEOM_PIPE_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_PIPE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_PIPE")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image2); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); + + GroupPoints = new DlgRef_3Sel1Check(centralWidget()); - GroupPoints = new DlgRef_2Sel_QTD(this, "GroupPoints"); GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); GroupPoints->TextLabel1->setText(tr("GEOM_BASE_OBJECT")); GroupPoints->TextLabel2->setText(tr("GEOM_PATH_OBJECT")); - GroupPoints->PushButton1->setPixmap(image1); - GroupPoints->PushButton2->setPixmap(image1); - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); + GroupPoints->TextLabel3->setText(tr("GEOM_BINORMAL")); + GroupPoints->PushButton1->setIcon(image1); + GroupPoints->PushButton2->setIcon(image1); + GroupPoints->PushButton3->setIcon(image1); + GroupPoints->CheckButton1->setText(tr("GEOM_SELECT_UNPUBLISHED_EDGES")); - Layout1->addWidget(GroupPoints, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); /***************************************************************/ setHelpFileName("create_extrusion_alongpath_page.html"); - /* Initialisations */ + // Initialisation Init(); } - //================================================================================= // function : ~GenerationGUI_PipeDlg() // purpose : Destroys the object and frees any allocated resources //================================================================================= GenerationGUI_PipeDlg::~GenerationGUI_PipeDlg() { - /* no need to delete child widgets, Qt does it all for us */ + // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void GenerationGUI_PipeDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); + // init variables + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); + GroupPoints->LineEdit3->setReadOnly(true); - myOkBase = myOkPath = false; + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + GroupPoints->LineEdit3->setText(""); + myBase = myPath = myVec = GEOM::GEOM_Object::_nil(); + myOkBase = myOkPath = myOkVec = false; - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + GroupPoints->CheckButton1->setEnabled(false); + + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + + connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(SelectionTypeButtonClicked())); initName(tr("GEOM_PIPE")); - // globalSelection( GEOM_ALLSHAPES ); + GroupPoints->TextLabel3->hide(); + GroupPoints->PushButton3->hide(); + GroupPoints->LineEdit3->hide(); + ConstructorsClicked(0); + + GroupPoints->PushButton1->click(); + SelectionIntoArgument(); } +//================================================================================= +// function : ConstructorsClicked() +// purpose : Radio button management +//================================================================================= +void GenerationGUI_PipeDlg::ConstructorsClicked( int constructorId ) +{ + erasePreview(); + + switch (constructorId) + { + case 0: + { + GroupPoints->TextLabel3->hide(); + GroupPoints->PushButton3->hide(); + GroupPoints->LineEdit3->hide(); + break; + } + case 1: + { + GroupPoints->TextLabel3->show(); + GroupPoints->PushButton3->show(); + GroupPoints->LineEdit3->show(); + break; + } + } + + displayPreview(); +} + +//================================================================================= +// function : SelectionBittonClicked() +// purpose : Selection type Radio button management +//================================================================================= +void GenerationGUI_PipeDlg::SelectionTypeButtonClicked() +{ + globalSelection(); + if ( GroupPoints->CheckButton1->isChecked() ) { + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + } else { + TColStd_MapOfInteger aMap; + aMap.Add(GEOM_WIRE); + aMap.Add(GEOM_LINE); + globalSelection(aMap); + } + if(myEditCurrentArgument == GroupPoints->LineEdit2) { + myEditCurrentArgument->setText(""); + myOkPath = false; + } + displayPreview(); +} //================================================================================= // function : ClickOnOk() @@ -143,115 +202,153 @@ void GenerationGUI_PipeDlg::Init() //================================================================================= void GenerationGUI_PipeDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= -// function : ClickOnAply() +// function : ClickOnApply() // purpose : //================================================================================= bool GenerationGUI_PipeDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); + if ( getConstructorId() != 1 ) + ConstructorsClicked( getConstructorId() ); + // activate selection and connect selection manager + GroupPoints->PushButton1->click(); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection has changed +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void GenerationGUI_PipeDlg::SelectionIntoArgument() { erasePreview(); myEditCurrentArgument->setText(""); - - if(IObjectCount() != 1) { - if(myEditCurrentArgument == GroupPoints->LineEdit1) - myOkBase = false; - else if(myEditCurrentArgument == GroupPoints->LineEdit2) - myOkPath = false; + if (myEditCurrentArgument == GroupPoints->LineEdit1) myOkBase = false; + else if (myEditCurrentArgument == GroupPoints->LineEdit2) myOkPath = false; + else if (myEditCurrentArgument == GroupPoints->LineEdit3) myOkVec = false; + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) return; - } - + // nbSel == 1 Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult ); - - if (!testResult) + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + + if (!testResult || aSelectedObject->_is_nil()) return; - + TopoDS_Shape S; - - if(myEditCurrentArgument == GroupPoints->LineEdit1) { - myOkBase = false; - - if(!GEOMBase::GetShape(aSelectedObject, S) || - S.ShapeType() == TopAbs_COMPSOLID || - S.ShapeType() == TopAbs_COMPOUND || - S.ShapeType() == TopAbs_SOLID || - S.ShapeType() == TopAbs_SHAPE) + if (!GEOMBase::GetShape(aSelectedObject, S)) + return; + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + if (S.ShapeType() == TopAbs_COMPSOLID || + S.ShapeType() == TopAbs_COMPOUND || + S.ShapeType() == TopAbs_SOLID || + S.ShapeType() == TopAbs_SHAPE) return; - + if ( getConstructorId() == 1 && + (S.ShapeType() == TopAbs_SHELL || + S.ShapeType() == TopAbs_VERTEX)) + return; + myBase = aSelectedObject; - myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) ); + myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject)); myOkBase = true; + if (!myOkPath) + GroupPoints->PushButton2->click(); + else if (!myOkVec) + GroupPoints->PushButton3->click(); } - else if(myEditCurrentArgument == GroupPoints->LineEdit2) { - myOkPath = false; - - if( !GEOMBase::GetShape(aSelectedObject, S) ) - return; - - QString aName = GEOMBase::GetName( aSelectedObject ); - - if ( testResult && !aSelectedObject->_is_nil() && aSelectedObject != myBase) - { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - TColStd_IndexedMapOfInteger aMap; - - aSelMgr->GetIndexes( firstIObject(), aMap ); - if ( aMap.Extent() == 1 ) - { - int anIndex = aMap( 1 ); - aName.append( ":edge_" + QString::number( anIndex ) ); + else if (myEditCurrentArgument == GroupPoints->LineEdit2 || + myEditCurrentArgument == GroupPoints->LineEdit3) { + myEditCurrentArgument == GroupPoints->LineEdit2 ? myOkPath = false : myOkVec = false; + bool myOk = false; + QString aName = GEOMBase::GetName(aSelectedObject); + if (myEditCurrentArgument == GroupPoints->LineEdit2 && !GroupPoints->CheckButton1->isChecked() ){ + myPath = aSelectedObject; + myOkPath = true; + myEditCurrentArgument->setText(aName); + } + else + { + if (aSelectedObject != myBase) { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) { + int anIndex = aMap(1); + aName.append(":edge_" + QString::number(anIndex)); + //Find SubShape Object in Father GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations( getStudyId() ); - myPath = aShapesOp->GetSubShape(aSelectedObject, anIndex); - myOkPath = true; + getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + myOk = true; } - else { // get Object from study - myPath = aFindedObject; - myOkPath = true; + else { // get Object from study + aSelectedObject = aFindedObject; + myOk = true; } } - else { - myOkPath = true; - if (S.ShapeType() != TopAbs_EDGE) { - aSelectedObject = GEOM::GEOM_Object::_nil(); - aName = ""; - myOkPath = false; + else { + myOk = true; + if (S.ShapeType() != TopAbs_EDGE) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + myOk = false; + } } - myPath = aSelectedObject; + if (myEditCurrentArgument == GroupPoints->LineEdit2) { + myPath = aSelectedObject; + myOkPath = myOk; + } + else if (myEditCurrentArgument == GroupPoints->LineEdit3) { + myVec = aSelectedObject; + myOkVec = myOk; + } + } + myEditCurrentArgument->setText(aName); + + if (myOkPath) { + if (!myOkBase) + GroupPoints->PushButton1->click(); + else if (!myOkVec) + GroupPoints->PushButton3->click(); + } + else if (myOkVec) { + if (!myOkBase) + GroupPoints->PushButton1->click(); + else if (!myOkPath) + GroupPoints->PushButton2->click(); } } - myEditCurrentArgument->setText( aName ); } - + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + displayPreview(); } - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -259,22 +356,49 @@ void GenerationGUI_PipeDlg::SelectionIntoArgument() void GenerationGUI_PipeDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - globalSelection(); - if(send == GroupPoints->PushButton1) { - GroupPoints->LineEdit1->setFocus(); - globalSelection( GEOM_ALLSHAPES ); + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(GEOM_ALLSHAPES); + GroupPoints->PushButton1->setDown(false); + GroupPoints->PushButton2->setDown(false); + GroupPoints->PushButton3->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + GroupPoints->LineEdit2->setEnabled(false); + GroupPoints->LineEdit3->setEnabled(false); + if (send == GroupPoints->PushButton1) { myEditCurrentArgument = GroupPoints->LineEdit1; + GroupPoints->CheckButton1->setEnabled(false); } - else if(send == GroupPoints->PushButton2) { - GroupPoints->LineEdit2->setFocus(); + else if (send == GroupPoints->PushButton2) { myEditCurrentArgument = GroupPoints->LineEdit2; - globalSelection(); + + if ( GroupPoints->CheckButton1->isChecked() ) { + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + } else { + TColStd_MapOfInteger aMap; + aMap.Add(GEOM_WIRE); + aMap.Add(GEOM_LINE); + globalSelection(aMap); + } + GroupPoints->CheckButton1->setEnabled(true); + } + else if(send == GroupPoints->PushButton3) { + myEditCurrentArgument = GroupPoints->LineEdit3; + GroupPoints->CheckButton1->setEnabled(false); localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); } - SelectionIntoArgument(); -} + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); +} //================================================================================= // function : LineEditReturnPressed() @@ -283,26 +407,19 @@ void GenerationGUI_PipeDlg::SetEditCurrentArgument() void GenerationGUI_PipeDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || - send == GroupPoints->LineEdit2) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } + if (send == GroupPoints->LineEdit1 || + send == GroupPoints->LineEdit2 || + send == GroupPoints->LineEdit3) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } + + if (send == GroupPoints->LineEdit2) + GroupPoints->CheckButton1->setEnabled(true); + else + GroupPoints->CheckButton1->setEnabled(false); } - -//================================================================================= -// function : enterEvent() -// purpose : when mouse enter onto the QWidget -//================================================================================= -void GenerationGUI_PipeDlg::enterEvent(QEvent* e) -{ - if ( !GroupConstructors->isEnabled() ) - ActivateThisDialog(); -} - - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -310,12 +427,21 @@ void GenerationGUI_PipeDlg::enterEvent(QEvent* e) void GenerationGUI_PipeDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - globalSelection( GEOM_ALLSHAPES ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - displayPreview(); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + + ConstructorsClicked(getConstructorId()); } +//================================================================================= +// function : enterEvent() +// purpose : when mouse enter onto the QWidget +//================================================================================= +void GenerationGUI_PipeDlg::enterEvent (QEvent*) +{ + if (!mainFrame()->GroupConstructors->isEnabled()) + ActivateThisDialog(); +} //================================================================================= // function : createOperation @@ -323,31 +449,43 @@ void GenerationGUI_PipeDlg::ActivateThisDialog() //================================================================================= GEOM::GEOM_IOperations_ptr GenerationGUI_PipeDlg::createOperation() { - return getGeomEngine()->GetI3DPrimOperations( getStudyId() ); + return getGeomEngine()->GetI3DPrimOperations(getStudyId()); } //================================================================================= // function : isValid // purpose : //================================================================================= -bool GenerationGUI_PipeDlg::isValid( QString& ) +bool GenerationGUI_PipeDlg::isValid (QString&) { - return myOkBase && myOkPath; + switch ( getConstructorId() ) { + case 0 : + return myOkBase && myOkPath; + case 1 : + return myOkBase && myOkPath && myOkVec; + } } //================================================================================= // function : execute // purpose : //================================================================================= -bool GenerationGUI_PipeDlg::execute( ObjectList& objects ) +bool GenerationGUI_PipeDlg::execute (ObjectList& objects) { GEOM::GEOM_Object_var anObj; - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( - getOperation() )->MakePipe( myBase, myPath ); + switch ( getConstructorId() ) { + case 0 : + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())->MakePipe(myBase, myPath); + break; + case 1 : + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakePipeBiNormalAlongVector(myBase, myPath, myVec); + break; + } - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); return true; } @@ -362,6 +500,5 @@ void GenerationGUI_PipeDlg::addSubshapesToStudy() objMap[GroupPoints->LineEdit2->text()] = myPath; - addSubshapesToFather( objMap ); + addSubshapesToFather(objMap); } - diff --git a/src/GenerationGUI/GenerationGUI_PipeDlg.h b/src/GenerationGUI/GenerationGUI_PipeDlg.h index b926d6de7..ed0b92625 100644 --- a/src/GenerationGUI/GenerationGUI_PipeDlg.h +++ b/src/GenerationGUI/GenerationGUI_PipeDlg.h @@ -1,76 +1,77 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : GenerationGUI_PipeDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GenerationGUI_PipeDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef GENERATIONGUI_PIPEDLG_H +#define GENERATIONGUI_PIPEDLG_H -#ifndef DIALOGBOX_PIPE_H -#define DIALOGBOX_PIPE_H +#include -#include "GenerationGUI.h" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel_QTD.h" +class DlgRef_3Sel1Check; //================================================================================= // class : GenerationGUI_PipeDlg // purpose : //================================================================================= -class GENERATIONGUI_EXPORT GenerationGUI_PipeDlg : public GEOMBase_Skeleton +class GenerationGUI_PipeDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - GenerationGUI_PipeDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~GenerationGUI_PipeDlg(); - + GenerationGUI_PipeDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~GenerationGUI_PipeDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); private: - void Init(); - void enterEvent(QEvent* e); - - GEOM::GEOM_Object_var myBase; /* Base shape */ - GEOM::GEOM_Object_var myPath; /* Shape, defining the path */ - bool myOkBase; - bool myOkPath; /* to check when arguments are defined */ - - DlgRef_2Sel_QTD* GroupPoints; + void Init(); + void enterEvent( QEvent* ); + +private: + GEOM::GEOM_Object_var myBase; /* Base shape */ + GEOM::GEOM_Object_var myPath; /* Shape, defining the path */ + GEOM::GEOM_Object_var myVec; /* Vector, defining the constant binormal direction */ + bool myOkBase; + bool myOkPath; + bool myOkVec; /* to check when arguments are defined */ + + DlgRef_3Sel1Check* GroupPoints; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void SelectionTypeButtonClicked(); }; -#endif // DIALOGBOX_PIPE_H +#endif // GENERATIONGUI_PIPEDLG_H diff --git a/src/GenerationGUI/GenerationGUI_PrismDlg.cxx b/src/GenerationGUI/GenerationGUI_PrismDlg.cxx index 92fd0fb38..e4ff74ff3 100644 --- a/src/GenerationGUI/GenerationGUI_PrismDlg.cxx +++ b/src/GenerationGUI/GenerationGUI_PrismDlg.cxx @@ -1,38 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GenerationGUI_PrismDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : GenerationGUI_PrismDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "GenerationGUI_PrismDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include #include @@ -40,12 +42,7 @@ #include #include -#include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" +#include //================================================================================= // class : GenerationGUI_PrismDlg() @@ -54,53 +51,67 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -GenerationGUI_PrismDlg::GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - : GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +GenerationGUI_PrismDlg::GenerationGUI_PrismDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); - QPixmap image0(aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PRISM"))); - QPixmap image1(aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - QPixmap image2(aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PRISM_2P"))); + QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PRISM"))); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PRISM_2P"))); + QPixmap image3 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PRISM_DXDYDZ"))); - setCaption(tr("GEOM_EXTRUSION_TITLE")); + setWindowTitle(tr("GEOM_EXTRUSION_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_EXTRUSION")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image2); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_EXTRUSION")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image2); + mainFrame()->RadioButton3->setIcon(image3); - RadioButton1->setChecked(true); - myBothway = myBothway2 = false; + mainFrame()->RadioButton1->setChecked(true); + myBothway = myBothway2 = myBothway3 = false; - GroupPoints = new DlgRef_2Sel1Spin2Check(this, "GroupPoints"); + GroupPoints = new DlgRef_2Sel1Spin2Check(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_EXTRUSION_BSV")); GroupPoints->TextLabel1->setText(tr("GEOM_BASE")); GroupPoints->TextLabel2->setText(tr("GEOM_VECTOR")); GroupPoints->TextLabel3->setText(tr("GEOM_HEIGHT")); - GroupPoints->PushButton1->setPixmap(image1); - GroupPoints->PushButton2->setPixmap(image1); - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); + GroupPoints->PushButton1->setIcon(image1); + GroupPoints->PushButton2->setIcon(image1); + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); GroupPoints->CheckButton1->setText(tr("GEOM_BOTHWAY")); GroupPoints->CheckButton1->setChecked(myBothway); GroupPoints->CheckButton2->setText(tr("GEOM_REVERSE")); - GroupPoints2 = new DlgRef_3Sel1Check_QTD(this, "GroupPoints2"); + GroupPoints2 = new DlgRef_3Sel1Check(centralWidget()); GroupPoints2->GroupBox1->setTitle(tr("GEOM_EXTRUSION_BSV_2P")); GroupPoints2->TextLabel1->setText(tr("GEOM_BASE")); - GroupPoints2->TextLabel2->setText(tr("GEOM_POINT_I").arg("1")); - GroupPoints2->TextLabel3->setText(tr("GEOM_POINT_I").arg("2")); - GroupPoints2->PushButton1->setPixmap(image1); - GroupPoints2->PushButton2->setPixmap(image1); - GroupPoints2->PushButton3->setPixmap(image1); + GroupPoints2->TextLabel2->setText(tr("GEOM_POINT_I").arg(1)); + GroupPoints2->TextLabel3->setText(tr("GEOM_POINT_I").arg(2)); + GroupPoints2->PushButton1->setIcon(image1); + GroupPoints2->PushButton2->setIcon(image1); + GroupPoints2->PushButton3->setIcon(image1); GroupPoints2->CheckButton1->setText(tr("GEOM_BOTHWAY")); GroupPoints2->CheckButton1->setChecked(myBothway2); - Layout1->addWidget(GroupPoints, 2, 0); - Layout1->addWidget(GroupPoints2, 2, 0); + GroupPoints3 = new DlgRef_1Sel3Spin1Check(centralWidget()); + GroupPoints3->GroupBox1->setTitle(tr("GEOM_EXTRUSION_DXDYDZ")); + GroupPoints3->TextLabel1->setText(tr("GEOM_BASE")); + GroupPoints3->PushButton1->setIcon(image1); + GroupPoints3->TextLabel2->setText(tr("GEOM_DX")); + GroupPoints3->TextLabel3->setText(tr("GEOM_DY")); + GroupPoints3->TextLabel4->setText(tr("GEOM_DZ")); + GroupPoints3->CheckButton1->setText(tr("GEOM_BOTHWAY")); + GroupPoints3->CheckButton1->setChecked(myBothway3); + + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); + layout->addWidget(GroupPoints2); + layout->addWidget(GroupPoints3); /***************************************************************/ setHelpFileName("create_extrusion_page.html"); @@ -108,7 +119,6 @@ GenerationGUI_PrismDlg::GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWid Init(); } - //================================================================================= // function : ~GenerationGUI_PrismDlg() // purpose : Destroys the object and frees any allocated resources @@ -118,38 +128,55 @@ GenerationGUI_PrismDlg::~GenerationGUI_PrismDlg() // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void GenerationGUI_PrismDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); + // Get setting of step value from file configuration + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + double step = resMgr->doubleValue("Geometry", "SettingsGeomStep", 100); - GroupPoints2->LineEdit1->setReadOnly( true ); - GroupPoints2->LineEdit2->setReadOnly( true ); - GroupPoints2->LineEdit3->setReadOnly( true ); + // min, max, step and decimals for spin boxes & initial values + initSpinBox(GroupPoints3->SpinBox_DX, COORD_MIN, COORD_MAX, step, 6); // VSR:TODO : DBL_DIGITS_DISPLAY + initSpinBox(GroupPoints3->SpinBox_DY, COORD_MIN, COORD_MAX, step, 6); // VSR:TODO : DBL_DIGITS_DISPLAY + initSpinBox(GroupPoints3->SpinBox_DZ, COORD_MIN, COORD_MAX, step, 6); // VSR:TODO : DBL_DIGITS_DISPLAY + GroupPoints3->SpinBox_DX->setValue(0.0); + GroupPoints3->SpinBox_DY->setValue(0.0); + GroupPoints3->SpinBox_DZ->setValue(0.0); + + initSpinBox(GroupPoints->SpinBox_DX, 0.000001, COORD_MAX, step, 6); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupPoints->SpinBox_DX->setValue(100.0); + + // init variables + myEditCurrentArgument = GroupPoints->LineEdit1; + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); + + GroupPoints2->LineEdit1->setReadOnly(true); + GroupPoints2->LineEdit2->setReadOnly(true); + GroupPoints2->LineEdit3->setReadOnly(true); + + GroupPoints3->LineEdit1->setReadOnly(true); + + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + + GroupPoints2->LineEdit1->setText(""); + GroupPoints2->LineEdit2->setText(""); + GroupPoints2->LineEdit3->setText(""); + + GroupPoints3->LineEdit1->setText(""); myPoint1 = myPoint2 = myBase = myVec = GEOM::GEOM_Object::_nil(); myOkBase = myOkVec = myOkPnt1 = myOkPnt2 = false; - /* Get setting of step value from file configuration */ - SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); - /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DX->SetValue(100.0); - - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); @@ -158,122 +185,149 @@ void GenerationGUI_PrismDlg::Init() connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupPoints->SpinBox_DX, SLOT(SetStep(double))); + connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), this, SLOT(SetDoubleSpinBoxStep(double))); - connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(onBothway())); - connect(GroupPoints->CheckButton2, SIGNAL(toggled(bool)), this, SLOT(onReverse())); + connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(onBothway())); + connect(GroupPoints->CheckButton2, SIGNAL(toggled(bool)), this, SLOT(onReverse())); - connect(GroupPoints2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints2->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints2->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints2->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(onBothway2())); + connect(GroupPoints2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints2->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints2->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints2->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(onBothway())); - connect(GroupPoints2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints2->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints2->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints2->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints2->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect(GroupPoints3->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints3->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints3->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(GroupPoints3->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(GroupPoints3->SpinBox_DZ, SIGNAL(valueChanged (double)), this, SLOT(ValueChangedInSpinBox())); + connect(GroupPoints3->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(onBothway())); initName(tr("GEOM_EXTRUSION")); + ConstructorsClicked(0); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void GenerationGUI_PrismDlg::SetDoubleSpinBoxStep (double step) +{ + GroupPoints->SpinBox_DX->setSingleStep(step); + GroupPoints3->SpinBox_DX->setSingleStep(step); + GroupPoints3->SpinBox_DY->setSingleStep(step); + GroupPoints3->SpinBox_DZ->setSingleStep(step); +} //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void GenerationGUI_PrismDlg::ConstructorsClicked(int constructorId) +void GenerationGUI_PrismDlg::ConstructorsClicked (int constructorId) { - erasePreview(); disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - switch (constructorId) - { + switch (constructorId) { case 0: { - globalSelection( GEOM_ALLSHAPES ); - GroupPoints2->hide(); - resize(0, 0); + GroupPoints3->hide(); GroupPoints->show(); - myEditCurrentArgument = GroupPoints->LineEdit1; GroupPoints->LineEdit1->setText(GroupPoints2->LineEdit1->text()); // keep base GroupPoints->LineEdit2->setText(""); myVec = GEOM::GEOM_Object::_nil(); myOkVec = false; + GroupPoints->PushButton1->click(); break; } case 1: { - globalSelection( GEOM_ALLSHAPES ); - GroupPoints->hide(); - resize(0, 0); GroupPoints2->show(); + GroupPoints3->hide(); - myEditCurrentArgument = GroupPoints2->LineEdit1; GroupPoints2->LineEdit1->setText(GroupPoints->LineEdit1->text()); // keep base GroupPoints2->LineEdit2->setText(""); GroupPoints2->LineEdit3->setText(""); myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); myOkPnt1 = myOkPnt2 = false; + GroupPoints2->PushButton1->click(); + break; + } + case 2: + { + GroupPoints->hide(); + GroupPoints2->hide(); + GroupPoints3->show(); + + GroupPoints3->LineEdit1->setText(GroupPoints->LineEdit1->text()); // keep base + + GroupPoints3->PushButton1->click(); break; } } - myEditCurrentArgument->setFocus(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); - if (!myOkBase) + if (myInitial) { + myInitial = false; SelectionIntoArgument(); + } + else { + displayPreview(); + } } - //================================================================================= // function : ClickOnOk() // purpose : //================================================================================= void GenerationGUI_PrismDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool GenerationGUI_PrismDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection has changed +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void GenerationGUI_PrismDlg::SelectionIntoArgument() { erasePreview(); myEditCurrentArgument->setText(""); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + if (getConstructorId() == 0) { - if (IObjectCount() != 1) { + if (aSelList.Extent() != 1) { if (myEditCurrentArgument == GroupPoints->LineEdit1) myOkBase = false; else if (myEditCurrentArgument == GroupPoints->LineEdit2) @@ -284,65 +338,69 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument() // nbSel == 1 Standard_Boolean testResult = Standard_False; GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); - - if (!testResult) + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (!testResult || CORBA::is_nil(aSelectedObject)) return; + QString aName = GEOMBase::GetName(aSelectedObject); + + // Get Selected object if selected subshape bool myOk = true; TopoDS_Shape aShape; - QString aName = GEOMBase::GetName( aSelectedObject ); - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) - { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes( firstIObject(), aMap ); - if ( aMap.Extent() == 1 ) - { - int anIndex = aMap( 1 ); - aName.append( ":edge_" + QString::number( anIndex ) ); + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) + { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) { + int anIndex = aMap(1); + aName.append(":edge_" + QString::number(anIndex)); - //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations( getStudyId() ); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); - } - else - aSelectedObject = aFindedObject; // get Object from study - } - else { - if (aShape.ShapeType() != TopAbs_EDGE && myEditCurrentArgument == GroupPoints->LineEdit2) { - aSelectedObject = GEOM::GEOM_Object::_nil(); - aName = ""; - myOk = false; - } - } + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { + aSelectedObject = aFindedObject; // get Object from study + } } - + else { // Global Selection + if (aShape.ShapeType() != TopAbs_EDGE && myEditCurrentArgument == GroupPoints->LineEdit2) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + myOk = false; + } + } + } + + myEditCurrentArgument->setText(aName); + if (myEditCurrentArgument == GroupPoints->LineEdit1) { myBase = aSelectedObject; myOkBase = true; + if (!myOkVec) + GroupPoints->PushButton2->click(); } else if (myEditCurrentArgument == GroupPoints->LineEdit2 && myOk) { - myOkVec = true; + myOkVec = true; myVec = aSelectedObject; + if (!myOkBase) + GroupPoints->PushButton1->click(); } - myEditCurrentArgument->setText( aName ); } - else // getConstructorId()==1 - extrusion using 2 points - { - if (IObjectCount() != 1) { + else if (getConstructorId() == 1) { // getConstructorId()==1 - extrusion using 2 points + if (aSelList.Extent() != 1) { if (myEditCurrentArgument == GroupPoints2->LineEdit1) myOkBase = false; else if (myEditCurrentArgument == GroupPoints2->LineEdit2) { - myPoint1 = GEOM::GEOM_Object::_nil(); + myPoint1 = GEOM::GEOM_Object::_nil(); myOkPnt1 = false; } else if (myEditCurrentArgument == GroupPoints2->LineEdit3) { - myPoint2 = GEOM::GEOM_Object::_nil(); + myPoint2 = GEOM::GEOM_Object::_nil(); myOkPnt2 = false; } return; @@ -351,62 +409,143 @@ void GenerationGUI_PrismDlg::SelectionIntoArgument() // nbSel == 1 Standard_Boolean testResult = Standard_False; GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); - if (!testResult || CORBA::is_nil( aSelectedObject )) + if (!testResult || CORBA::is_nil(aSelectedObject)) return; - QString aName = GEOMBase::GetName( aSelectedObject ); + QString aName = GEOMBase::GetName(aSelectedObject); TopoDS_Shape aShape; bool myOk = true; - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) - { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes( firstIObject(), aMap ); - if (aMap.Extent() == 1) - { - int anIndex = aMap(1); - aName.append(":vertex_" + QString::number(anIndex)); + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) { + int anIndex = aMap(1); + aName.append(":vertex_" + QString::number(anIndex)); - //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); - - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); - } - else - aSelectedObject = aFindedObject; + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); + + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); } - else - { - if ((aShape.ShapeType() != TopAbs_VERTEX && myEditCurrentArgument == GroupPoints2->LineEdit2) || - (aShape.ShapeType() != TopAbs_VERTEX && myEditCurrentArgument == GroupPoints2->LineEdit3)) - { - aSelectedObject = GEOM::GEOM_Object::_nil(); - aName = ""; - myOk = false; - } - } + else { + aSelectedObject = aFindedObject; + } + } + else { + if ((aShape.ShapeType() != TopAbs_VERTEX && myEditCurrentArgument == GroupPoints2->LineEdit2) || + (aShape.ShapeType() != TopAbs_VERTEX && myEditCurrentArgument == GroupPoints2->LineEdit3)) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + myOk = false; + } + } } myEditCurrentArgument->setText(aName); if (myEditCurrentArgument == GroupPoints2->LineEdit1) { - myBase = aSelectedObject; myOkBase = true; + myBase = aSelectedObject; + if (!myOkPnt1) + GroupPoints2->PushButton2->click(); } else if (myEditCurrentArgument == GroupPoints2->LineEdit2 && myOk) { myOkPnt1 = true; myPoint1 = aSelectedObject; + if (!myOkPnt2) + GroupPoints2->PushButton3->click(); } else if (myEditCurrentArgument == GroupPoints2->LineEdit3 && myOk) { myOkPnt2 = true; myPoint2 = aSelectedObject; + if (!myOkBase) + GroupPoints2->PushButton1->click(); } } + else if (getConstructorId() == 2) { // extrusion using dx dy dz + Standard_Boolean testResult = Standard_False; + GEOM::GEOM_Object_var aSelectedObject = + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (!testResult || CORBA::is_nil(aSelectedObject)) + return; + + QString aName = GEOMBase::GetName(aSelectedObject); + myBase = aSelectedObject; + myOkBase = true; + myEditCurrentArgument->setText(aName); + } + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + displayPreview(); +} + +//================================================================================= +// function : SetEditCurrentArgument() +// purpose : +//================================================================================= +void GenerationGUI_PrismDlg::SetEditCurrentArgument() +{ + QPushButton* send = (QPushButton*)sender(); + + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(GEOM_ALLSHAPES); + if (send == GroupPoints->PushButton1) { + myEditCurrentArgument = GroupPoints->LineEdit1; + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + } + else if (send == GroupPoints->PushButton2) { + myEditCurrentArgument = GroupPoints->LineEdit2; + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + } + else if (send == GroupPoints2->PushButton1) { + myEditCurrentArgument = GroupPoints2->LineEdit1; + GroupPoints2->PushButton2->setDown(false); + GroupPoints2->PushButton3->setDown(false); + GroupPoints2->LineEdit2->setEnabled(false); + GroupPoints2->LineEdit3->setEnabled(false); + } + else if (send == GroupPoints2->PushButton2) { + myEditCurrentArgument = GroupPoints2->LineEdit2; + GroupPoints2->PushButton1->setDown(false); + GroupPoints2->PushButton3->setDown(false); + GroupPoints2->LineEdit1->setEnabled(false); + GroupPoints2->LineEdit3->setEnabled(false); + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + } + else if (send == GroupPoints2->PushButton3) { + myEditCurrentArgument = GroupPoints2->LineEdit3; + GroupPoints2->PushButton1->setDown(false); + GroupPoints2->PushButton2->setDown(false); + GroupPoints2->LineEdit1->setEnabled(false); + GroupPoints2->LineEdit2->setEnabled(false); + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + } + else if (send == GroupPoints3->PushButton1) { + myEditCurrentArgument = GroupPoints3->LineEdit1; + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change displayPreview(); } @@ -421,52 +560,13 @@ void GenerationGUI_PrismDlg::LineEditReturnPressed() send == GroupPoints->LineEdit2 || send == GroupPoints2->LineEdit1 || send == GroupPoints2->LineEdit2 || - send == GroupPoints2->LineEdit3 ) - { + send == GroupPoints2->LineEdit3 || + send == GroupPoints3->LineEdit1) { myEditCurrentArgument = send; GEOMBase_Skeleton::LineEditReturnPressed(); } } - -//================================================================================= -// function : SetEditCurrentArgument() -// purpose : -//================================================================================= -void GenerationGUI_PrismDlg::SetEditCurrentArgument() -{ - QPushButton* send = (QPushButton*)sender(); - globalSelection( GEOM_ALLSHAPES ); - - if (send == GroupPoints->PushButton1) { - GroupPoints->LineEdit1->setFocus(); - myEditCurrentArgument = GroupPoints->LineEdit1; - } - else if (send == GroupPoints->PushButton2) { - GroupPoints->LineEdit2->setFocus(); - myEditCurrentArgument = GroupPoints->LineEdit2; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); - } - else if (send == GroupPoints2->PushButton1) { - GroupPoints2->LineEdit1->setFocus(); - myEditCurrentArgument = GroupPoints2->LineEdit1; - } - else if (send == GroupPoints2->PushButton2) { - GroupPoints2->LineEdit2->setFocus(); - myEditCurrentArgument = GroupPoints2->LineEdit2; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - } - else if (send == GroupPoints2->PushButton3) { - GroupPoints2->LineEdit3->setFocus(); - myEditCurrentArgument = GroupPoints2->LineEdit3; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - } - - myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); -} - - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -475,24 +575,22 @@ void GenerationGUI_PrismDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); ConstructorsClicked( getConstructorId() ); } - //================================================================================= // function : enterEvent() // purpose : when mouse enter onto the QWidget //================================================================================= -void GenerationGUI_PrismDlg::enterEvent(QEvent * e) +void GenerationGUI_PrismDlg::enterEvent (QEvent*) { - if (!GroupConstructors->isEnabled()) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - //================================================================================= // function : ValueChangedInSpinBox() // purpose : @@ -502,14 +600,13 @@ void GenerationGUI_PrismDlg::ValueChangedInSpinBox() displayPreview(); } - //================================================================================= // function : getHeight() // purpose : //================================================================================= double GenerationGUI_PrismDlg::getHeight() const { - return GroupPoints->SpinBox_DX->GetValue(); + return GroupPoints->SpinBox_DX->value(); } //================================================================================= @@ -518,86 +615,138 @@ double GenerationGUI_PrismDlg::getHeight() const //================================================================================= GEOM::GEOM_IOperations_ptr GenerationGUI_PrismDlg::createOperation() { - return getGeomEngine()->GetI3DPrimOperations( getStudyId() ); + return getGeomEngine()->GetI3DPrimOperations(getStudyId()); } //================================================================================= // function : isValid // purpose : //================================================================================= -bool GenerationGUI_PrismDlg::isValid( QString& ) +bool GenerationGUI_PrismDlg::isValid (QString& msg) { + bool ok = true; + if( getConstructorId() == 0 ) + ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + else if( getConstructorId() == 2 ) + { + ok = GroupPoints3->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints3->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints3->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok; + } + if (getConstructorId() == 0) - return (myOkBase && myOkVec); // by vector and height - else + return (myOkBase && myOkVec) && ok; // by vector and height + else if (getConstructorId() == 1) return (myOkBase && myOkPnt1 && myOkPnt2); // by two points + else if (getConstructorId() == 2) + return myOkBase && ok; + + return false; } //================================================================================= // function : execute // purpose : //================================================================================= -bool GenerationGUI_PrismDlg::execute( ObjectList& objects ) +bool GenerationGUI_PrismDlg::execute (ObjectList& objects) { + QStringList aParameters; GEOM::GEOM_Object_var anObj; - switch ( getConstructorId() ) - { + switch (getConstructorId()) { case 0: - { - if (!myBothway) - anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> - MakePrismVecH(myBase, myVec, getHeight()); - else - anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> - MakePrismVecH2Ways(myBase, myVec, getHeight() ); - break; + if (!myBothway) { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakePrismVecH(myBase, myVec, getHeight()); } + else { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakePrismVecH2Ways(myBase, myVec, getHeight()); + } + + if (!anObj->_is_nil() && !IsPreview()) + { + aParameters << GroupPoints->SpinBox_DX->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + + break; case 1: - { - if (!myBothway2) - anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + if (!myBothway2) { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> MakePrismTwoPnt(myBase, myPoint1, myPoint2); - else - anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> - MakePrismTwoPnt2Ways(myBase, myPoint1, myPoint2); - break; } + else { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakePrismTwoPnt2Ways(myBase, myPoint1, myPoint2); + } + break; + case 2: + double dx = GroupPoints3->SpinBox_DX->value(); + double dy = GroupPoints3->SpinBox_DY->value(); + double dz = GroupPoints3->SpinBox_DZ->value(); + + if (!myBothway3) { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakePrismDXDYDZ(myBase, dx, dy, dz); + } + else { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakePrismDXDYDZ2Ways(myBase, dx, dy, dz); + } + + if (!anObj->_is_nil() && !IsPreview()) + { + aParameters << GroupPoints3->SpinBox_DX->text(); + aParameters << GroupPoints3->SpinBox_DY->text(); + aParameters << GroupPoints3->SpinBox_DZ->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + + break; } - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); return true; } - //================================================================================= -// function : onReverse() +// function : onReverse() // purpose : //================================================================================= void GenerationGUI_PrismDlg::onReverse() { - double anOldValue = GroupPoints->SpinBox_DX->GetValue(); - GroupPoints->SpinBox_DX->SetValue( -anOldValue ); + double anOldValue = GroupPoints->SpinBox_DX->value(); + GroupPoints->SpinBox_DX->setValue(-anOldValue); } //================================================================================= -// function : onBothway() -// purpose : +// function : onBothway() +// purpose : //================================================================================= void GenerationGUI_PrismDlg::onBothway() { - bool anOldValue = myBothway; - myBothway = !anOldValue; - GroupPoints->CheckButton2->setEnabled(!myBothway); - displayPreview(); -} - -void GenerationGUI_PrismDlg::onBothway2() -{ - bool anOldValue = myBothway2; - myBothway2 = !anOldValue; - displayPreview(); + bool anOldValue; + switch (getConstructorId()) { + case 0: + anOldValue = myBothway; + myBothway = !anOldValue; + GroupPoints->CheckButton2->setEnabled(!myBothway); + displayPreview(); + break; + case 1: + anOldValue = myBothway2; + myBothway2 = !anOldValue; + displayPreview(); + break; + case 2: + anOldValue = myBothway3; + myBothway3 = !anOldValue; + displayPreview(); + break; + } } //================================================================================= @@ -608,15 +757,14 @@ void GenerationGUI_PrismDlg::addSubshapesToStudy() { QMap objMap; - switch (getConstructorId()) - { - case 0: - objMap[GroupPoints->LineEdit2->text()] = myVec; - break; - case 1: - objMap[GroupPoints2->LineEdit2->text()] = myPoint1; - objMap[GroupPoints2->LineEdit3->text()] = myPoint2; - break; - } - addSubshapesToFather( objMap ); + switch (getConstructorId()) { + case 0: + objMap[GroupPoints->LineEdit2->text()] = myVec; + break; + case 1: + objMap[GroupPoints2->LineEdit2->text()] = myPoint1; + objMap[GroupPoints2->LineEdit3->text()] = myPoint2; + break; + } + addSubshapesToFather(objMap); } diff --git a/src/GenerationGUI/GenerationGUI_PrismDlg.h b/src/GenerationGUI/GenerationGUI_PrismDlg.h index 5f90c0fe1..1ccc7461b 100644 --- a/src/GenerationGUI/GenerationGUI_PrismDlg.h +++ b/src/GenerationGUI/GenerationGUI_PrismDlg.h @@ -1,91 +1,93 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GenerationGUI_PrismDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : GenerationGUI_PrismDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +#ifndef GENERATIONGUI_PRISMDLG_H +#define GENERATIONGUI_PRISMDLG_H -#ifndef DIALOGBOX_PRISM_H -#define DIALOGBOX_PRISM_H +#include -#include "GenerationGUI.h" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel1Spin2Check.h" -#include "DlgRef_3Sel1Check_QTD.h" +class DlgRef_2Sel1Spin2Check; +class DlgRef_3Sel1Check; +class DlgRef_1Sel3Spin1Check; //================================================================================= // class : GenerationGUI_PrismDlg // purpose : //================================================================================= -class GENERATIONGUI_EXPORT GenerationGUI_PrismDlg : public GEOMBase_Skeleton +class GenerationGUI_PrismDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - GenerationGUI_PrismDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~GenerationGUI_PrismDlg(); - + GenerationGUI_PrismDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~GenerationGUI_PrismDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); private: - void Init(); - void enterEvent(QEvent* e); - double getHeight() const; - - GEOM::GEOM_Object_var myBase; /* Base shape */ - GEOM::GEOM_Object_var myVec; /* Vector, defining the direction */ - GEOM::GEOM_Object_var myPoint1, myPoint2; /* Points for extrusion */ - - bool myOkBase; - bool myOkVec; - bool myOkPnt1; - bool myOkPnt2; - bool myBothway; - bool myBothway2; - - DlgRef_2Sel1Spin2Check* GroupPoints; - DlgRef_3Sel1Check_QTD* GroupPoints2; // for second layout for extrusion using 2 points - + void Init(); + void enterEvent( QEvent* ); + double getHeight() const; + +private: + GEOM::GEOM_Object_var myBase; /* Base shape */ + GEOM::GEOM_Object_var myVec; /* Vector, defining the direction */ + GEOM::GEOM_Object_var myPoint1, myPoint2; /* Points for extrusion */ + + bool myOkBase; + bool myOkVec; + bool myOkPnt1; + bool myOkPnt2; + bool myBothway; + bool myBothway2; + bool myBothway3; + + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_2Sel1Spin2Check* GroupPoints; + DlgRef_3Sel1Check* GroupPoints2; // for second layout for extrusion using 2 points + DlgRef_1Sel3Spin1Check* GroupPoints3; + private slots: - void ClickOnOk(); - bool ClickOnApply(); - - void ActivateThisDialog(); - void ConstructorsClicked(int); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ValueChangedInSpinBox(); - void onReverse(); - void onBothway(); - void onBothway2(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void ValueChangedInSpinBox(); + void SetDoubleSpinBoxStep( double ); + void onReverse(); + void onBothway(); }; -#endif // DIALOGBOX_PRISM_H +#endif // GENERATIONGUI_PRISMDLG_H diff --git a/src/GenerationGUI/GenerationGUI_RevolDlg.cxx b/src/GenerationGUI/GenerationGUI_RevolDlg.cxx index 928fd15f6..2a5d00b43 100644 --- a/src/GenerationGUI/GenerationGUI_RevolDlg.cxx +++ b/src/GenerationGUI/GenerationGUI_RevolDlg.cxx @@ -1,37 +1,38 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GenerationGUI_RevolDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : GenerationGUI_RevolDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "GenerationGUI_RevolDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include + +#include +#include +#include +#include #include #include @@ -39,64 +40,58 @@ #include #include #include - -#include -#include -#include #include -#include "GEOMImpl_Types.hxx" -#include -#include - -#include "utilities.h" +#include //================================================================================= // class : GenerationGUI_RevolDlg() -// purpose : Constructs a GenerationGUI_RevolDlg which is a child of 'parent', with the +// purpose : Constructs a GenerationGUI_RevolDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -GenerationGUI_RevolDlg::GenerationGUI_RevolDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +GenerationGUI_RevolDlg::GenerationGUI_RevolDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_REVOL"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_REVOL"))); + QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_REVOLUTION_TITLE")); + setWindowTitle(tr("GEOM_REVOLUTION_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_REVOLUTION")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_REVOLUTION")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); myBothway = false; - GroupPoints = new DlgRef_2Sel1Spin2Check(this, "GroupPoints"); + GroupPoints = new DlgRef_2Sel1Spin2Check(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); GroupPoints->TextLabel1->setText(tr("GEOM_OBJECT")); GroupPoints->TextLabel2->setText(tr("GEOM_AXIS")); GroupPoints->TextLabel3->setText(tr("GEOM_ANGLE")); - GroupPoints->PushButton1->setPixmap(image1); - GroupPoints->PushButton2->setPixmap(image1); - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); + GroupPoints->PushButton1->setIcon(image1); + GroupPoints->PushButton2->setIcon(image1); + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); GroupPoints->CheckButton1->setText(tr("GEOM_BOTHWAY")); GroupPoints->CheckButton2->setText(tr("GEOM_REVERSE")); - Layout1->addWidget(GroupPoints, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); /***************************************************************/ setHelpFileName("create_revolution_page.html"); - /* Initialisations */ + // Initialisation Init(); } - //================================================================================= // function : ~GenerationGUI_RevolDlg() // purpose : Destroys the object and frees any allocated resources @@ -106,49 +101,56 @@ GenerationGUI_RevolDlg::~GenerationGUI_RevolDlg() // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void GenerationGUI_RevolDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); + // min, max, step and decimals for spin boxes & initial values + double SpecificStep = 5; + initSpinBox(GroupPoints->SpinBox_DX, -360.0, 360.0, SpecificStep, 3); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupPoints->SpinBox_DX->setValue(45.0); + // init variables + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); + + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + myBase = myAxis = GEOM::GEOM_Object::_nil(); myOkBase = myOkAxis = false; - double SpecificStep = 5; - /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DX->SetValue(45.0); + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(onBothway())); connect(GroupPoints->CheckButton2, SIGNAL(toggled(bool)), this, SLOT(onReverse())); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double))); - - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), this, SLOT(SetDoubleSpinBoxStep(double))); initName(tr("GEOM_REVOLUTION")); - globalSelection( GEOM_ALLSHAPES ); + GroupPoints->PushButton1->click(); + SelectionIntoArgument(); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void GenerationGUI_RevolDlg::SetDoubleSpinBoxStep (double step) +{ + GroupPoints->SpinBox_DX->setSingleStep(step); +} //================================================================================= // function : ClickOnOk() @@ -156,21 +158,22 @@ void GenerationGUI_RevolDlg::Init() //================================================================================= void GenerationGUI_RevolDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool GenerationGUI_RevolDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); + // activate selection and connect selection manager + GroupPoints->PushButton1->click(); return true; } @@ -178,10 +181,9 @@ bool GenerationGUI_RevolDlg::ClickOnApply() //function : isAcceptableBase //purpose : return true if theBase can be used as algo argument //======================================================================= - -static bool isAcceptableBase(const TopoDS_Shape& theBase) +static bool isAcceptableBase (const TopoDS_Shape& theBase) { - switch ( theBase.ShapeType() ) { + switch (theBase.ShapeType()) { case TopAbs_VERTEX: case TopAbs_EDGE: case TopAbs_WIRE: @@ -192,7 +194,7 @@ static bool isAcceptableBase(const TopoDS_Shape& theBase) case TopAbs_COMPSOLID: return false; case TopAbs_COMPOUND: { - TopExp_Explorer exp( theBase, TopAbs_SOLID); + TopExp_Explorer exp(theBase, TopAbs_SOLID); return !exp.More(); } default: @@ -203,87 +205,89 @@ static bool isAcceptableBase(const TopoDS_Shape& theBase) //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void GenerationGUI_RevolDlg::SelectionIntoArgument() { erasePreview(); myEditCurrentArgument->setText(""); - - if(IObjectCount() != 1) { - if(myEditCurrentArgument == GroupPoints->LineEdit1) - myOkBase = false; - else if(myEditCurrentArgument == GroupPoints->LineEdit2) - myOkAxis = false; + if (myEditCurrentArgument == GroupPoints->LineEdit1) myOkBase = false; + else if (myEditCurrentArgument == GroupPoints->LineEdit2) myOkAxis = false; + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) return; - } - + // nbSel == 1 Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); - QString aName = GEOMBase::GetName( aSelectedObject ); - - if (!testResult) + GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + + if (!testResult || aSelectedObject->_is_nil()) return; - if(myEditCurrentArgument == GroupPoints->LineEdit1) { - TopoDS_Shape S; - myOkBase = false; - - if ( !GEOMBase::GetShape(aSelectedObject, S) || !isAcceptableBase( S ) ) + TopoDS_Shape S; + if (!GEOMBase::GetShape(aSelectedObject, S) || S.IsNull()) + return; + + QString aName = GEOMBase::GetName(aSelectedObject); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + if (!isAcceptableBase(S)) return; - + myBase = aSelectedObject; myOkBase = true; + myEditCurrentArgument->setText(aName); + if (!myOkAxis) + GroupPoints->PushButton2->click(); } - else if(myEditCurrentArgument == GroupPoints->LineEdit2) { - if ( testResult && !aSelectedObject->_is_nil() ) - { - TopoDS_Shape aShape; - - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) - { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes( firstIObject(), aMap ); - if ( aMap.Extent() == 1 ) - { + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) { + int anIndex = aMap(1); + aName.append(":edge_" + QString::number(anIndex)); - int anIndex = aMap( 1 ); - aName.append( ":edge_" + QString::number( anIndex ) ); + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); - //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); - - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations( getStudyId() ); - myAxis = aShapesOp->GetSubShape(aSelectedObject, anIndex); - myOkAxis = true; - } - else { - myAxis = aFindedObject; - myOkAxis = true; - } - } - else { - myOkAxis = true; - if (aShape.ShapeType() != TopAbs_EDGE) { - aSelectedObject = GEOM::GEOM_Object::_nil(); - aName = ""; - myOkAxis = false; - } - myAxis = aSelectedObject; - } - } + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + myAxis = aShapesOp->GetSubShape(aSelectedObject, anIndex); + myOkAxis = true; } + else { + myAxis = aFindedObject; + myOkAxis = true; + } + } + else { + myOkAxis = true; + if (S.ShapeType() != TopAbs_EDGE) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + myOkAxis = false; + } + myAxis = aSelectedObject; + } + myEditCurrentArgument->setText(aName); + if (myOkAxis && !myOkBase) + GroupPoints->PushButton1->click(); } - myEditCurrentArgument->setText( aName ); + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); displayPreview(); } - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -291,37 +295,47 @@ void GenerationGUI_RevolDlg::SelectionIntoArgument() void GenerationGUI_RevolDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - globalSelection( GEOM_ALLSHAPES ); - if(send == GroupPoints->PushButton1) { - GroupPoints->LineEdit1->setFocus(); + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(GEOM_ALLSHAPES); + if (send == GroupPoints->PushButton1) { myEditCurrentArgument = GroupPoints->LineEdit1; + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); } - else if(send == GroupPoints->PushButton2) { - GroupPoints->LineEdit2->setFocus(); + else if (send == GroupPoints->PushButton2) { myEditCurrentArgument = GroupPoints->LineEdit2; + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); } - SelectionIntoArgument(); -} + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); +} //================================================================================= // function : LineEditReturnPressed() // purpose : //================================================================================= void GenerationGUI_RevolDlg::LineEditReturnPressed() -{ +{ QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || - send == GroupPoints->LineEdit2) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } + if (send == GroupPoints->LineEdit1 || + send == GroupPoints->LineEdit2) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -329,25 +343,22 @@ void GenerationGUI_RevolDlg::LineEditReturnPressed() void GenerationGUI_RevolDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - globalSelection( GEOM_ALLSHAPES ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - GroupPoints->LineEdit1->setFocus(); - myEditCurrentArgument = GroupPoints->LineEdit1; + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + displayPreview(); } - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void GenerationGUI_RevolDlg::enterEvent(QEvent* e) +void GenerationGUI_RevolDlg::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - //================================================================================= // function : ValueChangedInSpinBox() // purpose : @@ -357,14 +368,13 @@ void GenerationGUI_RevolDlg::ValueChangedInSpinBox() displayPreview(); } - //================================================================================= // function : getAngle() // purpose : //================================================================================= double GenerationGUI_RevolDlg::getAngle() const { - return GroupPoints->SpinBox_DX->GetValue(); + return GroupPoints->SpinBox_DX->value(); } //================================================================================= @@ -373,48 +383,58 @@ double GenerationGUI_RevolDlg::getAngle() const //================================================================================= GEOM::GEOM_IOperations_ptr GenerationGUI_RevolDlg::createOperation() { - return getGeomEngine()->GetI3DPrimOperations( getStudyId() ); + return getGeomEngine()->GetI3DPrimOperations(getStudyId()); } //================================================================================= // function : isValid // purpose : //================================================================================= -bool GenerationGUI_RevolDlg::isValid( QString& ) +bool GenerationGUI_RevolDlg::isValid (QString& msg) { - return myOkBase && myOkAxis; + bool ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ); + return myOkBase && myOkAxis && ok; } //================================================================================= // function : execute // purpose : //================================================================================= -bool GenerationGUI_RevolDlg::execute( ObjectList& objects ) +bool GenerationGUI_RevolDlg::execute (ObjectList& objects) { GEOM::GEOM_Object_var anObj; - if (!myBothway) - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( - getOperation() )->MakeRevolutionAxisAngle( myBase, myAxis, getAngle() * PI180 ); - else - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( - getOperation() )->MakeRevolutionAxisAngle2Ways( myBase, myAxis, getAngle() * PI180 ); + if (!myBothway) { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeRevolutionAxisAngle(myBase, myAxis, getAngle() * PI180); + } + else { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeRevolutionAxisAngle2Ways(myBase, myAxis, getAngle() * PI180); + } - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + if (!anObj->_is_nil()) + { + if (!IsPreview()) + { + QStringList aParameters; + aParameters << GroupPoints->SpinBox_DX->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + objects.push_back(anObj._retn()); + } return true; } - //================================================================================= // function : onReverse() // purpose : //================================================================================= void GenerationGUI_RevolDlg::onReverse() { - double anOldValue = GroupPoints->SpinBox_DX->GetValue(); - GroupPoints->SpinBox_DX->SetValue( -anOldValue ); + double anOldValue = GroupPoints->SpinBox_DX->value(); + GroupPoints->SpinBox_DX->setValue(-anOldValue); } //================================================================================= @@ -425,7 +445,7 @@ void GenerationGUI_RevolDlg::onBothway() { bool anOldValue = myBothway; myBothway = !anOldValue; - GroupPoints->CheckButton2->setEnabled(!myBothway); + GroupPoints->CheckButton2->setEnabled(!myBothway); displayPreview(); } @@ -439,5 +459,5 @@ void GenerationGUI_RevolDlg::addSubshapesToStudy() objMap[GroupPoints->LineEdit2->text()] = myAxis; - addSubshapesToFather( objMap ); + addSubshapesToFather(objMap); } diff --git a/src/GenerationGUI/GenerationGUI_RevolDlg.h b/src/GenerationGUI/GenerationGUI_RevolDlg.h index c7004e51d..89318effc 100644 --- a/src/GenerationGUI/GenerationGUI_RevolDlg.h +++ b/src/GenerationGUI/GenerationGUI_RevolDlg.h @@ -1,83 +1,79 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : GenerationGUI_RevolDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GenerationGUI_RevolDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef GENERATIONGUI_REVOLUTIONDLG_H +#define GENERATIONGUI_REVOLUTIONDLG_H -#ifndef DIALOGBOX_REVOLUTION_H -#define DIALOGBOX_REVOLUTION_H +#include -#include "GenerationGUI.h" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel1Spin2Check.h" - -#include +class DlgRef_2Sel1Spin2Check; //================================================================================= // class : GenerationGUI_RevolDlg // purpose : //================================================================================= -class GENERATIONGUI_EXPORT GenerationGUI_RevolDlg : public GEOMBase_Skeleton +class GenerationGUI_RevolDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - GenerationGUI_RevolDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~GenerationGUI_RevolDlg(); + GenerationGUI_RevolDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~GenerationGUI_RevolDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - -private : - void Init(); - void enterEvent(QEvent* e); - double getAngle() const; - - GEOM::GEOM_Object_var myBase; /* Base shape */ - GEOM::GEOM_Object_var myAxis; /* Axis of the revolution */ - bool myOkBase; - bool myOkAxis; - bool myBothway; - - DlgRef_2Sel1Spin2Check* GroupPoints; + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); +private: + void Init(); + void enterEvent( QEvent* ); + double getAngle() const; + +private: + GEOM::GEOM_Object_var myBase; /* Base shape */ + GEOM::GEOM_Object_var myAxis; /* Axis of the revolution */ + bool myOkBase; + bool myOkAxis; + bool myBothway; + + DlgRef_2Sel1Spin2Check* GroupPoints; + private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ValueChangedInSpinBox(); - void onReverse(); - void onBothway(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ValueChangedInSpinBox(); + void SetDoubleSpinBoxStep( double ); + void onReverse(); + void onBothway(); }; -#endif // DIALOGBOX_REVOLUTION_H +#endif // GENERATIONGUI_REVOLUTIONDLG_H diff --git a/src/GenerationGUI/Makefile.am b/src/GenerationGUI/Makefile.am index d7885317f..8fd63002e 100644 --- a/src/GenerationGUI/Makefile.am +++ b/src/GenerationGUI/Makefile.am @@ -1,83 +1,88 @@ -# GEOM GENERATIONGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM GENERATIONGUI : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : GenerationGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libGenerationGUI.la # header files -salomeinclude_HEADERS = +salomeinclude_HEADERS = \ + GenerationGUI.h \ + GenerationGUI_PrismDlg.h \ + GenerationGUI_RevolDlg.h \ + GenerationGUI_FillingDlg.h \ + GenerationGUI_PipeDlg.h -dist_libGenerationGUI_la_SOURCES = \ - GenerationGUI.cxx \ - GenerationGUI_PrismDlg.cxx \ - GenerationGUI_RevolDlg.cxx \ - GenerationGUI_FillingDlg.cxx \ +dist_libGenerationGUI_la_SOURCES = \ + GenerationGUI.h \ + GenerationGUI_PrismDlg.h \ + GenerationGUI_RevolDlg.h \ + GenerationGUI_FillingDlg.h \ + GenerationGUI_PipeDlg.h \ + \ + GenerationGUI.cxx \ + GenerationGUI_PrismDlg.cxx \ + GenerationGUI_RevolDlg.cxx \ + GenerationGUI_FillingDlg.cxx \ GenerationGUI_PipeDlg.cxx -MOC_FILES = \ - GenerationGUI_PrismDlg_moc.cxx \ - GenerationGUI_RevolDlg_moc.cxx \ - GenerationGUI_FillingDlg_moc.cxx \ +MOC_FILES = \ + GenerationGUI_PrismDlg_moc.cxx \ + GenerationGUI_RevolDlg_moc.cxx \ + GenerationGUI_FillingDlg_moc.cxx \ GenerationGUI_PipeDlg_moc.cxx -nodist_libGenerationGUI_la_SOURCES= \ +nodist_libGenerationGUI_la_SOURCES = \ $(MOC_FILES) -#LIB_CLIENT_IDL = SALOME_GenericObj.idl SALOME_Component.idl SALOME_Exception.idl +# additional information to compile and link file -#LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libGenerationGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMFiltersSelection \ - -I$(top_builddir)/idl \ +libGenerationGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMFiltersSelection \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libGenerationGUI_la_LDFLAGS = \ - ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ - ../GEOMBase/libGEOMBase.la \ +libGenerationGUI_la_LDFLAGS = \ + ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ + ../GEOMBase/libGEOMBase.la \ $(CAS_LDPATH) -lTKOffset diff --git a/src/GroupGUI/GroupGUI.cxx b/src/GroupGUI/GroupGUI.cxx index e335605c6..89d84ebf2 100644 --- a/src/GroupGUI/GroupGUI.cxx +++ b/src/GroupGUI/GroupGUI.cxx @@ -1,49 +1,48 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GroupGUI.cxx +// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com) // -// -// File : GroupGUI.cxx -// Author : Sergey ANIKIN -// Module : GEOM -// $Header$ - #include "GroupGUI.h" #include "GroupGUI_GroupDlg.h" -#include "GEOMImpl_Types.hxx" +#include +#include +#include -#include "SUIT_Session.h" -#include "SUIT_Desktop.h" -#include "SUIT_MessageBox.h" -#include "SalomeApp_Application.h" -#include "SalomeApp_Study.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include //======================================================================= // function : GroupGUI() // purpose : Constructor //======================================================================= -GroupGUI::GroupGUI(GeometryGUI* parent) -: GEOMGUI(parent) +GroupGUI::GroupGUI( GeometryGUI* parent ) + : GEOMGUI( parent ) { } @@ -67,24 +66,23 @@ bool GroupGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) getGeometryGUI()->EmitSignalDeactivateDialog(); - QDialog* aDlg = NULL; + QDialog* aDlg = 0; - SalomeApp_Study* appStudy = dynamic_cast(app->activeStudy()); + SalomeApp_Study* appStudy = dynamic_cast( app->activeStudy() ); if ( !appStudy ) return false; _PTR(Study) aStudy = appStudy->studyDS(); if ( aStudy->GetProperties()->IsLocked() ) { - SUIT_MessageBox::warn1 ( parent, - QObject::tr("WRN_WARNING"), - QObject::tr("WRN_STUDY_LOCKED"), - QObject::tr("BUT_OK") ); + SUIT_MessageBox::warning( parent, + tr( "WRN_WARNING" ), + tr( "WRN_STUDY_LOCKED" ) ); return false; } switch ( theCommandID ) { case 800: case 8001: // CREATE GROUP - aDlg = new GroupGUI_GroupDlg (GroupGUI_GroupDlg::CreateGroup, getGeometryGUI(), parent); + aDlg = new GroupGUI_GroupDlg( GroupGUI_GroupDlg::CreateGroup, getGeometryGUI(), parent ); break; case 801: // EDIT GROUP { @@ -92,29 +90,32 @@ bool GroupGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) aList.Clear(); LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); - if (aSelMgr) - aSelMgr->selectedObjects(aList); + if ( aSelMgr ) + aSelMgr->selectedObjects( aList ); - if (aList.Extent() == 1) { + if ( aList.Extent() == 1 ) { Standard_Boolean aResult = Standard_False; GEOM::GEOM_Object_var anObj = GEOMBase::ConvertIOinGEOMObject( aList.First(), aResult ); - if (aResult && !CORBA::is_nil(anObj) && anObj->GetType() == GEOM_GROUP) { - aDlg = new GroupGUI_GroupDlg (GroupGUI_GroupDlg::EditGroup, getGeometryGUI(), parent); + if ( aResult && !CORBA::is_nil( anObj ) && anObj->GetType() == GEOM_GROUP ) { + aDlg = new GroupGUI_GroupDlg( GroupGUI_GroupDlg::EditGroup, getGeometryGUI(), parent ); break; } } - SUIT_MessageBox::warn1(parent, tr("WRN_WARNING"), tr("NO_GROUP"), tr("BUT_OK") ); + SUIT_MessageBox::warning( parent, tr( "WRN_WARNING" ), tr( "NO_GROUP" ) ); break; } default: - app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); + app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); break; } - if (aDlg != NULL) + if ( aDlg ) { + aDlg->updateGeometry(); + aDlg->resize( aDlg->minimumSizeHint() ); aDlg->show(); + } return true; } @@ -124,11 +125,11 @@ bool GroupGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) //===================================================================================== extern "C" { -#ifdef WNT - __declspec( dllexport ) +#ifdef WIN32 + __declspec( dllexport ) #endif - GEOMGUI* GetLibGUI(GeometryGUI* p) + GEOMGUI* GetLibGUI( GeometryGUI* p ) { - return new GroupGUI(p); + return new GroupGUI( p ); } } diff --git a/src/GroupGUI/GroupGUI.h b/src/GroupGUI/GroupGUI.h index 71bac9677..a0e97d948 100644 --- a/src/GroupGUI/GroupGUI.h +++ b/src/GroupGUI/GroupGUI.h @@ -1,34 +1,32 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GroupGUI.h +// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com) // -// -// File : GroupGUI.h -// Author : Sergey ANIKIN -// Module : GEOM - #ifndef GROUPGUI_H #define GROUPGUI_H -#include "GEOMGUI.h" +#include //================================================================================= // class : GroupGUI @@ -39,10 +37,10 @@ class GroupGUI : public GEOMGUI Q_OBJECT public: - GroupGUI(GeometryGUI* parent); + GroupGUI( GeometryGUI* ); ~GroupGUI(); - bool OnGUIEvent( int theCommandID, SUIT_Desktop* parent ); + bool OnGUIEvent( int, SUIT_Desktop* ); }; -#endif +#endif // GROUPGUI_H diff --git a/src/GroupGUI/GroupGUI_GroupDlg.cxx b/src/GroupGUI/GroupGUI_GroupDlg.cxx index 5aafaee7c..e17b859aa 100644 --- a/src/GroupGUI/GroupGUI_GroupDlg.cxx +++ b/src/GroupGUI/GroupGUI_GroupDlg.cxx @@ -1,117 +1,151 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : GroupGUI_GroupDlg.cxx +// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com) // -// -// File : GroupGUI_GroupDlg.cxx -// Author : Sergey ANIKIN -// Module : GEOM -// $Header$ - #include "GroupGUI_GroupDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "SalomeApp_Study.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include -#include "GEOMBase.h" +#include +#include +#include +#include +#include -#include "GEOMImpl_Types.hxx" - -#include -#include -#include -#include +#include +#include +#include +#include #include #include +#include +enum { ALL_SUBSHAPES = 0, GET_IN_PLACE, SUBSHAPES_OF_SHAPE2, SUBSHAPES_OF_INVISIBLE_SHAPE2 }; -GroupGUI_GroupDlg::GroupGUI_GroupDlg(Mode mode, GeometryGUI* theGeometryGUI, QWidget* parent) - :GEOMBase_Skeleton( theGeometryGUI, parent, "GroupGUI_GroupDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu), - myMode( mode ), - myBusy( false ) +GroupGUI_GroupDlg::GroupGUI_GroupDlg( Mode mode, GeometryGUI* theGeometryGUI, QWidget* parent ) + : GEOMBase_Skeleton( theGeometryGUI, parent, false ), + myMode( mode ), + myBusy( false ) { SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - QPixmap image0 (resMgr->loadPixmap("GEOM", tr("ICON_OBJBROWSER_VERTEX"))); - QPixmap image1 (resMgr->loadPixmap("GEOM", tr("ICON_OBJBROWSER_EDGE"))); - QPixmap image2 (resMgr->loadPixmap("GEOM", tr("ICON_OBJBROWSER_FACE"))); - QPixmap image3 (resMgr->loadPixmap("GEOM", tr("ICON_OBJBROWSER_SOLID"))); - QPixmap iconSelect (resMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image0 ( resMgr->loadPixmap( "GEOM", tr( "ICON_OBJBROWSER_VERTEX" ) ) ); + QPixmap image1 ( resMgr->loadPixmap( "GEOM", tr( "ICON_OBJBROWSER_EDGE" ) ) ); + QPixmap image2 ( resMgr->loadPixmap( "GEOM", tr( "ICON_OBJBROWSER_FACE" ) ) ); + QPixmap image3 ( resMgr->loadPixmap( "GEOM", tr( "ICON_OBJBROWSER_SOLID" ) ) ); + QPixmap iconSelect ( resMgr->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption( myMode == CreateGroup ? tr( "CREATE_GROUP_TITLE" ) : tr( "EDIT_GROUP_TITLE" ) ); + setWindowTitle( myMode == CreateGroup ? tr( "CREATE_GROUP_TITLE" ) : tr( "EDIT_GROUP_TITLE" ) ); // Shape type button group - GroupConstructors->setEnabled( myMode == CreateGroup ); - GroupConstructors->setTitle( tr( "SHAPE_TYPE" ) ); - RadioButton1->setPixmap( image0 ); - RadioButton2->setPixmap( image1 ); - RadioButton3->setPixmap( image2 ); - RadioButton4->setPixmap( image3 ); - RadioButton4->show(); + mainFrame()->GroupConstructors->setEnabled( myMode == CreateGroup ); + mainFrame()->GroupConstructors->setTitle( tr( "SHAPE_TYPE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setIcon( image1 ); + mainFrame()->RadioButton3->setIcon( image2 ); + mainFrame()->RadioButton4->setIcon( image3 ); + mainFrame()->RadioButton4->show(); // Group name - GroupBoxName->setTitle( tr( "GROUP_NAME" ) ); + mainFrame()->GroupBoxName->setTitle( tr( "GROUP_NAME" ) ); // Main shape and sub-shapes - GroupMedium = new QGroupBox( 1, Qt::Vertical, tr( "MAIN_SUB_SHAPES" ), this ); - GroupMedium->setInsideMargin( 10 ); - Layout1->addWidget( GroupMedium, 2, 0 ); + QGroupBox* GroupMedium = new QGroupBox( tr( "MAIN_SUB_SHAPES" ), centralWidget() ); + QGridLayout* aMedLayout = new QGridLayout( GroupMedium ); + aMedLayout->setMargin( 9 ); + aMedLayout->setSpacing( 6 ); + + QLabel* aMainLabel = new QLabel( tr( "MAIN_SHAPE" ), GroupMedium ); - QWidget* aFrame = new QWidget( GroupMedium ); - QGridLayout* aMedLayout = new QGridLayout( aFrame, 4, 4, 0, 6 ); - - QLabel* aMainLabel = new QLabel( tr( "MAIN_SHAPE" ), aFrame ); - - mySelBtn = new QPushButton( aFrame ); - mySelBtn->setPixmap( iconSelect ); + mySelBtn = new QPushButton( GroupMedium ); + mySelBtn->setIcon( iconSelect ); mySelBtn->setEnabled( myMode == CreateGroup ); - myMainName = new QLineEdit( aFrame ); + myMainName = new QLineEdit( GroupMedium ); myMainName->setReadOnly( true ); myMainName->setEnabled( myMode == CreateGroup ); - mySelSubBtn = new QRadioButton (tr( "SELECT_SUB_SHAPES" ), aFrame ); - mySelAllBtn = new QPushButton( tr( "SELECT_ALL" ), aFrame ); - myAddBtn = new QPushButton( tr( "ADD" ), aFrame ); - myRemBtn = new QPushButton( tr( "REMOVE" ), aFrame ); - myIdList = new QListBox( aFrame ); + QLabel* aSecondLabel = new QLabel( tr( "SECOND_SHAPE" ), GroupMedium ); - myIdList->setSelectionMode( QListBox::Extended ); - myIdList->setRowMode( QListBox::FitToWidth ); + mySelBtn2 = new QPushButton( GroupMedium ); + mySelBtn2->setIcon( iconSelect ); + mySelBtn2->setEnabled( false ); - aMedLayout->addWidget( aMainLabel, 0, 0 ); - aMedLayout->addWidget( mySelBtn, 0, 1 ); - aMedLayout->addMultiCellWidget( myMainName, 0, 0, 2, 3 ); - aMedLayout->addMultiCellWidget( mySelSubBtn, 1, 1, 0, 2 ); - aMedLayout->addWidget( mySelAllBtn, 1, 3 ); - aMedLayout->addMultiCellWidget( myIdList, 2, 3, 0, 2 ); - aMedLayout->addWidget( myAddBtn, 2, 3 ); - aMedLayout->addWidget( myRemBtn, 3, 3 ); + myShape2Name = new QLineEdit( GroupMedium ); + myShape2Name->setReadOnly( true ); + myShape2Name->setEnabled( false ); - setHelpFileName("work_with_groups_page.html"); + mySelectionWayGroupBox = new QGroupBox( tr("SHAPE_SEL_RESTR"), GroupMedium ); + mySelectionWayGroup = new QButtonGroup( mySelectionWayGroupBox ); + QRadioButton* allSubs = new QRadioButton( tr( "NO_RESTR" ) , mySelectionWayGroupBox ); + QRadioButton* inPlaceSubs = new QRadioButton( tr( "GEOM_PARTS_OF_SHAPE2" ), mySelectionWayGroupBox ); + QRadioButton* shape2Subs = new QRadioButton( tr( "SUBSHAPES_OF_SHAPE2" ) , mySelectionWayGroupBox ); + QVBoxLayout* mySelWayLayout = new QVBoxLayout( mySelectionWayGroupBox ); + mySelWayLayout->setMargin( 9 ); + mySelWayLayout->setSpacing( 6 ); + mySelWayLayout->addWidget( allSubs ); + mySelWayLayout->addWidget( inPlaceSubs ); + mySelWayLayout->addWidget( shape2Subs ); + mySelectionWayGroup->addButton( allSubs, ALL_SUBSHAPES ); + mySelectionWayGroup->addButton( inPlaceSubs, GET_IN_PLACE ); + mySelectionWayGroup->addButton( shape2Subs, SUBSHAPES_OF_SHAPE2 ); + allSubs->setChecked( true ); + + mySelAllBtn = new QPushButton( tr( "SELECT_ALL" ), GroupMedium ); + myAddBtn = new QPushButton( tr( "ADD" ), GroupMedium ); + myRemBtn = new QPushButton( tr( "REMOVE" ), GroupMedium ); + myIdList = new QListWidget( GroupMedium ); + + myIdList->setSelectionMode( QAbstractItemView::ExtendedSelection ); + myIdList->setFlow( QListView::TopToBottom ); + myIdList->setWrapping( true ); + + aMedLayout->addWidget( aMainLabel, 0, 0 ); + aMedLayout->addWidget( mySelBtn, 0, 1 ); + aMedLayout->addWidget( myMainName, 0, 2, 1, 2 ); + aMedLayout->addWidget( aSecondLabel, 1, 0 ); + aMedLayout->addWidget( mySelBtn2, 1, 1 ); + aMedLayout->addWidget( myShape2Name, 1, 2, 1, 2 ); + aMedLayout->addWidget( mySelectionWayGroupBox, 2, 0, 3, 3 ); + aMedLayout->addWidget( mySelAllBtn, 2, 3 ); + aMedLayout->addWidget( myAddBtn, 3, 3 ); + aMedLayout->addWidget( myRemBtn, 4, 3 ); + aMedLayout->addWidget( myIdList, 5, 0, 1, 4 ); + aMedLayout->setRowStretch( 5, 1 ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupMedium ); + + setHelpFileName( "work_with_groups_page.html" ); Init(); } @@ -120,7 +154,6 @@ GroupGUI_GroupDlg::~GroupGUI_GroupDlg() { } - //================================================================================= // function : Init() // purpose : @@ -128,65 +161,66 @@ GroupGUI_GroupDlg::~GroupGUI_GroupDlg() void GroupGUI_GroupDlg::Init() { // san -- TODO: clear selected sub-shapes... - mySelSubBtn->setChecked( true ); + //mySelSubBtn->setChecked( true ); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + if ( myMode == CreateGroup ) { initName( tr( "GROUP_PREFIX" ) ); // Get ready for main shape selection myEditCurrentArgument = myMainName; - connect( GroupConstructors, SIGNAL( clicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); connect( mySelBtn, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( mySelBtn2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); } - else if ( myMode == EditGroup && IObjectCount() ) { - Standard_Boolean aResult = Standard_False; - GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult ); + else if (myMode == EditGroup) { + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); - if ( aResult && !CORBA::is_nil( anObj ) && anObj->GetType() == GEOM_GROUP ) { - myGroup = anObj; + if (aSelList.Extent()) { + Standard_Boolean aResult = Standard_False; + GEOM::GEOM_Object_var anObj = + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); - ResultName->setText( GEOMBase::GetName( myGroup ) ); + if ( aResult && !CORBA::is_nil( anObj ) && anObj->GetType() == GEOM_GROUP ) { + myGroup = anObj; - GEOM::GEOM_IGroupOperations_var anOp = GEOM::GEOM_IGroupOperations::_narrow( getOperation() ); - myMainObj = anOp->GetMainShape( myGroup ); - if ( !CORBA::is_nil( myMainObj ) ) - myMainName->setText( GEOMBase::GetName( myMainObj ) ); + mainFrame()->ResultName->setText( GEOMBase::GetName( myGroup ) ); - setShapeType( (TopAbs_ShapeEnum)anOp->GetType( myGroup ) ); + GEOM::GEOM_IGroupOperations_var anOp = GEOM::GEOM_IGroupOperations::_narrow( getOperation() ); + myMainObj = anOp->GetMainShape( myGroup ); + if ( !CORBA::is_nil( myMainObj ) ) + myMainName->setText( GEOMBase::GetName( myMainObj ) ); - GEOM::ListOfLong_var aCurrList = anOp->GetObjects( myGroup ); - QListBoxItem* anItem; - for ( int i = 0, n = aCurrList->length(); i < n; i++ ) { - anItem = new QListBoxText( QString( "%1" ).arg(aCurrList[i] ) ); - myIdList->insertItem( anItem ); + setShapeType( (TopAbs_ShapeEnum)anOp->GetType( myGroup ) ); + + GEOM::ListOfLong_var aCurrList = anOp->GetObjects( myGroup ); + for ( int i = 0, n = aCurrList->length(); i < n; i++ ) + myIdList->addItem( new QListWidgetItem( QString( "%1" ).arg( aCurrList[i] ) ) ); + + myEditCurrentArgument = 0; } - - myEditCurrentArgument = 0; + connect( mySelBtn2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); } } - LightApp_SelectionMgr* aSelMgr = - ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(); + connect( aSelMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()) ); - connect( aSelMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect( buttonOk , SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); - connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( mySelectionWayGroup, SIGNAL( buttonClicked( int ) ), this, SLOT( SetEditCurrentArgument() ) ); + connect( mySelAllBtn, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( myAddBtn, SIGNAL( clicked() ), this, SLOT( add() ) ); + connect( myRemBtn, SIGNAL( clicked() ), this, SLOT( remove() ) ); + connect( myIdList, SIGNAL( selectionChanged() ), this, SLOT( selectionChanged() ) ); - connect( mySelSubBtn, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect( mySelAllBtn, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect( myAddBtn, SIGNAL( clicked() ), this, SLOT( add() ) ); - connect( myRemBtn, SIGNAL( clicked() ), this, SLOT( remove() ) ); - connect( myIdList, SIGNAL( selectionChanged() ), this, SLOT( selectionChanged() ) ); + setInPlaceObj(GEOM::GEOM_Object::_nil()); + myBusy = true; // just activate but do not select in the list activateSelection(); - // activate subshapes selection if Main Shape is Selected - if ( !CORBA::is_nil( myMainObj ) ) { - myEditCurrentArgument = 0; - activateSelection(); - updateState(); - } + myBusy = false; } //================================================================================= @@ -195,8 +229,20 @@ void GroupGUI_GroupDlg::Init() //================================================================================= void GroupGUI_GroupDlg::enterEvent( QEvent* e ) { - if ( !buttonCancel->isEnabled() ) - this->ActivateThisDialog(); + if ( !buttonCancel()->isEnabled() ) + ActivateThisDialog(); +} + +//======================================================================= +//function : closeEvent +//purpose : remove temporary geom object +//======================================================================= + +void GroupGUI_GroupDlg::closeEvent( QCloseEvent* e ) +{ + setInPlaceObj( GEOM::GEOM_Object::_nil() ); + + GEOMBase_Skeleton::closeEvent( e ); } //================================================================================= @@ -222,13 +268,13 @@ bool GroupGUI_GroupDlg::ClickOnApply() { initName(); myIdList->clear(); + ConstructorsClicked( getConstructorId() ); } else activateSelection(); return true; } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -261,7 +307,6 @@ void GroupGUI_GroupDlg::LineEditReturnPressed() updateState(); } - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -270,19 +315,137 @@ void GroupGUI_GroupDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if ( send == mySelBtn ) + if ( send == mySelBtn ) { myEditCurrentArgument = myMainName; - else if ( (QRadioButton*)sender() == mySelSubBtn || send == mySelAllBtn ) + myShape2Name->setText( "" ); + } + else if ( /*(QRadioButton*)sender() == mySelSubBtn ||*/ send == mySelAllBtn ) myEditCurrentArgument = 0; + else if ( send == mySelBtn2 || sender() == mySelectionWayGroup ) { + setInPlaceObj( GEOM::GEOM_Object::_nil() ); + //if ( myPlaceCheckBox->isChecked() ) + myShape2Name->setText( "" ); + if ( subSelectionWay() != ALL_SUBSHAPES ) + { + myEditCurrentArgument = myShape2Name; + } + else { + //myEditCurrentArgument = myMainName; + myEditCurrentArgument = 0; + } + } activateSelection(); - if ( send == mySelAllBtn ) + if ( send == mySelAllBtn ) { +// myShape2Name->setText( "" ); +// myPlaceCheckBox->setChecked( false ); +// mySelBtn2->setEnabled( false ); +// myShape2Name->setEnabled( false ); selectAllSubShapes(); + } else updateState(); } +//================================================================================= +// function : onGetInPlace() +// purpose : +//================================================================================= +void GroupGUI_GroupDlg::onGetInPlace() +{ + setInPlaceObj( GEOM::GEOM_Object::_nil() ); + myEditCurrentArgument->setText( "" ); + + bool isBlocked = myIdList->signalsBlocked(); + myIdList->blockSignals( true ); + myIdList->clearSelection(); + myIdList->blockSignals( isBlocked ); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) + return; + + Standard_Boolean aResult = Standard_False; + GEOM::GEOM_Object_var anObj = + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); + if (aResult && !anObj->_is_nil() && GEOMBase::IsShape(anObj)) { + if (!anObj->_is_equivalent(myMainObj) && !anObj->_is_equivalent(myGroup)) { + SUIT_OverrideCursor wc; + myEditCurrentArgument->setText(GEOMBase::GetName(anObj)); + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + if ( subSelectionWay() == GET_IN_PLACE ) { + GEOM::GEOM_Object_var aGetInPlaceObj = aShapesOp->GetInPlace(myMainObj, anObj); + setInPlaceObj( aGetInPlaceObj ); + } + else { + bool isVisible = true; + if ( SALOME_View* view = GEOM_Displayer::GetActiveView() ) + isVisible = view->isVisible( aSelList.First() ); + setInPlaceObj( anObj, isVisible ); + } + myEditCurrentArgument = 0; + //myBusy = true; // just activate but do not select in the list + activateSelection(); + //myBusy = false; + } + } +} + +//======================================================================= +//function : setInPlaceObj +//purpose : temporarily add an object to study and remove old InPlaceObj +//======================================================================= + +void GroupGUI_GroupDlg::setInPlaceObj( GEOM::GEOM_Object_var theObj, const bool isVisible ) +{ + if ( ! myInPlaceObj->_is_equivalent( theObj ) ) + { + const char* tmpName = "__InPlaceObj__"; + // remove old InPlaceObj + if ( !myInPlaceObj->_is_nil() ) { + if ( myInPlaceObjSelectState == GET_IN_PLACE || + myInPlaceObjSelectState == SUBSHAPES_OF_INVISIBLE_SHAPE2 ) { + // hide temporary object or initially invisible shape 2 (issue 0014047) + GEOM_Displayer aDisplayer(getStudy()); + aDisplayer.Erase( myInPlaceObj, true ); + } + if (_PTR(SObject) SO = getStudy()->studyDS()->FindObject( tmpName )) { + getStudy()->studyDS()->NewBuilder()->RemoveObjectWithChildren( SO ); + getGeomEngine()->RemoveObject(myInPlaceObj); + } + } + // publish InPlaceObj to enable localSelection(InPlaceObj) + if ( !theObj->_is_nil() && subSelectionWay() == GET_IN_PLACE ) { + SALOMEDS::Study_var aStudyDS = GeometryGUI::ClientStudyToStudy(getStudy()->studyDS()); + SALOMEDS::SObject_var aSO = + getGeomEngine()->AddInStudy(aStudyDS, theObj, tmpName, myMainObj); + } + myInPlaceObj = theObj; + } + // build map of indices + myMain2InPlaceIndices.Clear(); + if ( !myInPlaceObj->_is_nil() ) { + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); + GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations( getStudyId() ); + + GEOM::ListOfGO_var aSubObjects = aShapesOp->MakeExplode( myInPlaceObj, getShapeType(), false); + for (int i = 0; i < aSubObjects->length(); i++) + { + CORBA::Long aMainIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] ); + CORBA::Long aPlaceIndex = aLocOp->GetSubShapeIndex( myInPlaceObj, aSubObjects[i] ); + if ( aMainIndex >= 0 && aPlaceIndex > 0) + myMain2InPlaceIndices.Bind( aMainIndex, aPlaceIndex ); + } + } + myInPlaceObjSelectState = subSelectionWay(); + if ( myInPlaceObjSelectState == SUBSHAPES_OF_SHAPE2 && !isVisible ) + myInPlaceObjSelectState = SUBSHAPES_OF_INVISIBLE_SHAPE2; +} //================================================================================= // function : SelectionIntoArgument() @@ -290,31 +453,42 @@ void GroupGUI_GroupDlg::SetEditCurrentArgument() //================================================================================= void GroupGUI_GroupDlg::SelectionIntoArgument() { - if ( myEditCurrentArgument ) { // Selection of a main shape is active - myEditCurrentArgument->setText( "" ); +// if (myPlaceCheckBox->isChecked() && myEditCurrentArgument == myShape2Name ) + if (subSelectionWay() != ALL_SUBSHAPES && myEditCurrentArgument == myShape2Name) { + onGetInPlace(); + return; + } + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (myEditCurrentArgument == myMainName) { // Selection of a main shape is active + myEditCurrentArgument->setText(""); myIdList->clear(); - if ( IObjectCount() == 1 ) { + if (aSelList.Extent() == 1) { Standard_Boolean aResult = Standard_False; GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); if ( aResult && !anObj->_is_nil() && GEOMBase::IsShape( anObj ) ) { - myMainObj = anObj; - myEditCurrentArgument->setText( GEOMBase::GetName( anObj ) ); + myMainObj = anObj; + myEditCurrentArgument->setText( GEOMBase::GetName( anObj ) ); // activate subshapes selection by default myEditCurrentArgument = 0; activateSelection(); updateState(); - return; + return; } } myMainObj = GEOM::GEOM_Object::_nil(); } else { // an attempt to synchronize list box selection with 3d viewer - if ( myBusy ) + if ( myBusy ) { return; + } bool isBlocked = myIdList->signalsBlocked(); myIdList->blockSignals( true ); @@ -322,24 +496,34 @@ void GroupGUI_GroupDlg::SelectionIntoArgument() TColStd_IndexedMapOfInteger aMapIndex; - SALOME_ListIO aSelIOs; - SalomeApp_Application* app = myGeomGUI->getApp(); - if (app) { - LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); - if (aSelMgr) { - QMap aMap; - aSelMgr->selectedSubOwners(aMap); - if (aMap.size() == 1) - aMapIndex = aMap.begin().data(); + LightApp_SelectionMgr::MapEntryOfMapOfInteger aMap; + aSelMgr->selectedSubOwners( aMap ); + if ( aMap.Size() == 1 ) + aMapIndex = LightApp_SelectionMgr::MapEntryOfMapOfInteger::Iterator( aMap ).Value(); + bool subselected = aMapIndex.Extent(); + + // convert inPlace indices to main indices + //if ( subselected && myPlaceCheckBox->isChecked() ) + if ( subselected && subSelectionWay() != ALL_SUBSHAPES ) + { + TColStd_IndexedMapOfInteger aMapIndex2; + + TColStd_DataMapIteratorOfDataMapOfIntegerInteger m2ip( myMain2InPlaceIndices ); + for ( ; m2ip.More(); m2ip.Next() ) { + int inPlaceId = m2ip.Value(); + if ( aMapIndex.Contains( inPlaceId )) { + aMapIndex2.Add( m2ip.Key() ); + } } + aMapIndex = aMapIndex2; } // try to find out and process the object browser selection - if ( !aMapIndex.Extent() ) { + if ( !subselected ) { globalSelection( GEOM_ALLSHAPES ); GEOM::ListOfGO anObjects; - GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), anObjects); + GEOMBase::ConvertListOfIOInListOfGO(aSelList, anObjects); GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations( getStudyId() ); GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); @@ -364,15 +548,23 @@ void GroupGUI_GroupDlg::SelectionIntoArgument() TopoDS_Shape aShape; if ( GEOMBase::GetShape(aSubObjects[i], aShape, getShapeType()) ) { - CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] ); - if ( anIndex >= 0 ) + CORBA::Long anIndex; + anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] ); + if ( anIndex >= 0 ) { + //if ( myPlaceCheckBox->isChecked() && ! myMain2InPlaceIndices.IsBound( anIndex )) + if ( subSelectionWay() != ALL_SUBSHAPES && + ! myMain2InPlaceIndices.IsBound( anIndex )) + continue; aMapIndex.Add( anIndex ); + } } } } - - if ( !myMainObj->_is_nil() ) - localSelection( myMainObj, getShapeType() ); + if ( !myMainObj->_is_nil() /*&& mySelSubBtn->isChecked()*/) + if ( subSelectionWay() == ALL_SUBSHAPES ) + localSelection( myMainObj, getShapeType() ); + else if ( !myInPlaceObj->_is_nil() ) + localSelection( myInPlaceObj, getShapeType() ); } if (aMapIndex.Extent() >= 1) { @@ -382,7 +574,7 @@ void GroupGUI_GroupDlg::SelectionIntoArgument() for ( int ii = 1, nn = aMapIndex.Extent(); ii <= nn; ii++ ) { if ( aMap.contains( aMapIndex( ii ) ) ) - myIdList->setSelected( aMap[aMapIndex( ii )], true ); + myIdList->item( aMap[aMapIndex( ii )])->setSelected( true ); } } myIdList->blockSignals( isBlocked ); @@ -400,6 +592,7 @@ void GroupGUI_GroupDlg::ConstructorsClicked( int constructorId ) myIdList->clear(); activateSelection(); updateState(); + setInPlaceObj( myInPlaceObj ); // to rebuild myMain2InPlaceIndices } //================================================================================= @@ -411,30 +604,48 @@ void GroupGUI_GroupDlg::selectAllSubShapes() if ( CORBA::is_nil( myMainObj ) ) return; - GEOM::GEOM_IShapesOperations_var aShOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); - - GEOM::ListOfLong_var aSubShapes = aShOp->SubShapeAllIDs(myMainObj, getShapeType(), false); - if ( !aShOp->IsDone() ) - return; + GEOM::ListOfLong_var aSubShapes; +// if ( !myPlaceCheckBox->isChecked() ) + if ( subSelectionWay() == ALL_SUBSHAPES ) + { + myIdList->clear(); + GEOM::GEOM_IShapesOperations_var aShOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); + aSubShapes = aShOp->SubShapeAllIDs(myMainObj, getShapeType(), false); + if ( !aShOp->IsDone() ) + return; + } + else + { + aSubShapes = new GEOM::ListOfLong(); + aSubShapes->length( myMain2InPlaceIndices.Extent() ); + TColStd_DataMapIteratorOfDataMapOfIntegerInteger m2ip( myMain2InPlaceIndices ); + for ( int i = 0; m2ip.More(); i++, m2ip.Next() ) + aSubShapes[ i ] = m2ip.Key(); + } bool isBlocked = myIdList->signalsBlocked(); myIdList->blockSignals( true ); - myIdList->clear(); - QListBoxItem* anItem; for ( int i = 0, n = aSubShapes->length(); i < n; i++ ) { CORBA::Long anIndex = aSubShapes[i]; if ( anIndex < 0 ) continue; - anItem = new QListBoxText( QString( "%1" ).arg( anIndex ) ); - myIdList->insertItem( anItem ); - myIdList->setSelected( anItem, true ); + QListWidgetItem* anItem = 0; + QString text = QString( "%1" ).arg( anIndex ); + if ( !myInPlaceObj->_is_nil() ) { + QList found = myIdList->findItems( text, Qt::MatchExactly ); + if ( found.count() ) anItem = found[0]; + } + if ( !anItem ) { + anItem = new QListWidgetItem( text ); + myIdList->addItem( anItem ); + } + anItem->setSelected( true ); } myIdList->blockSignals( isBlocked ); highlightSubShapes(); - //updateState(); // already done in highlightSubShapes() } //================================================================================= @@ -451,20 +662,33 @@ void GroupGUI_GroupDlg::add() SALOME_ListIO aSelIOs; SalomeApp_Application* app = myGeomGUI->getApp(); - if (app) { + if ( app ) { LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); - if (aSelMgr) { - QMap aMap; - aSelMgr->selectedSubOwners(aMap); - if (aMap.size() == 1) - aMapIndex = aMap.begin().data(); + if ( aSelMgr ) { + LightApp_SelectionMgr::MapEntryOfMapOfInteger aMap; + aSelMgr->selectedSubOwners( aMap ); + if ( aMap.Size() == 1 ) + aMapIndex = LightApp_SelectionMgr::MapEntryOfMapOfInteger::Iterator( aMap ).Value(); } } + GEOM::ListOfGO anObjects; + // get selected sub-shapes of myInPlaceObj + if ( aMapIndex.Extent() > 0 && !myInPlaceObj->_is_nil() ) + { + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); - // try to find out and process the object browser selection - if ( !aMapIndex.Extent() ) { - GEOM::ListOfGO anObjects; - GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), anObjects); + anObjects.length( aMapIndex.Extent() ); + for ( int i = 1; i <= aMapIndex.Extent(); i++ ) + anObjects[ i-1 ] = aShapesOp->GetSubShape( myInPlaceObj, aMapIndex( i )); + + aMapIndex.Clear(); + } + + // try to find out and process the object browser selection or InPlace sub-shapes + if ( !aMapIndex.Extent() ) + { + if ( anObjects.length() == 0 ) + GEOMBase::ConvertListOfIOInListOfGO(aSelIOs, anObjects); GEOM::GEOM_ILocalOperations_var aLocOp = getGeomEngine()->GetILocalOperations( getStudyId() ); GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); @@ -489,7 +713,8 @@ void GroupGUI_GroupDlg::add() TopoDS_Shape aShape; if ( GEOMBase::GetShape(aSubObjects[i], aShape, getShapeType()) ) { - CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] ); + CORBA::Long anIndex; + anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] ); if ( anIndex >= 0 ) aMapIndex.Add( anIndex ); } @@ -498,7 +723,6 @@ void GroupGUI_GroupDlg::add() } if ( aMapIndex.Extent() >= 1 ) { - QListBoxItem* anItem; bool isBlocked = myIdList->signalsBlocked(); myIdList->blockSignals( true ); @@ -506,9 +730,9 @@ void GroupGUI_GroupDlg::add() if ( aMap.Contains( aMapIndex( i ) ) ) continue; - anItem = new QListBoxText( QString( "%1" ).arg( aMapIndex( i ) ) ); - myIdList->insertItem( anItem ); - myIdList->setSelected( anItem, true ); + QListWidgetItem* anItem = new QListWidgetItem( QString( "%1" ).arg( aMapIndex( i ) ) ); + myIdList->addItem( anItem ); + anItem->setSelected( true ); } myIdList->blockSignals( isBlocked ); @@ -526,24 +750,23 @@ void GroupGUI_GroupDlg::remove() bool isBlocked = myIdList->signalsBlocked(); myIdList->blockSignals( true ); - for ( int i = myIdList->count() - 1; i >= 0; i-- ) { - if ( myIdList->isSelected( i ) ) - myIdList->removeItem( i ); - } + QListIterator it( myIdList->selectedItems() ); + while ( it.hasNext() ) + delete it.next(); myIdList->blockSignals( isBlocked ); highlightSubShapes(); } +//======================================================================= +//function : subSelectionWay +//purpose : +//======================================================================= -//================================================================================= -// function : getConstructorId() -// purpose : -//================================================================================= -int GroupGUI_GroupDlg::getConstructorId() const +int GroupGUI_GroupDlg::subSelectionWay() const { - return GroupConstructors->id( GroupConstructors->selected() ); + return mySelectionWayGroup->checkedId(); } //================================================================================= @@ -574,7 +797,7 @@ void GroupGUI_GroupDlg::setShapeType( const TopAbs_ShapeEnum theType ) case TopAbs_FACE: anId = 2; break; case TopAbs_SOLID: anId = 3; break; } - GroupConstructors->setButton( anId ); + setConstructorId( anId ); } @@ -586,8 +809,13 @@ void GroupGUI_GroupDlg::activateSelection() { globalSelection( GEOM_ALLSHAPES ); - if ( !myMainObj->_is_nil() && !myEditCurrentArgument ) { - localSelection( myMainObj, getShapeType() ); + // local selection + if ( !myMainObj->_is_nil() && !myEditCurrentArgument/* && mySelSubBtn->isChecked()*/) { +// if ( !myPlaceCheckBox->isChecked() ) + if ( subSelectionWay() == ALL_SUBSHAPES ) + localSelection( myMainObj, getShapeType() ); + else if ( !myInPlaceObj->_is_nil() ) + localSelection( myInPlaceObj, getShapeType() ); } SelectionIntoArgument(); @@ -605,13 +833,13 @@ void GroupGUI_GroupDlg::updateState() SALOME_ListIO aSelIOs; SalomeApp_Application* app = myGeomGUI->getApp(); - if (app) { + if ( app ) { LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); - if (aSelMgr) { - QMap aMap; - aSelMgr->selectedSubOwners(aMap); - if (aMap.size() == 1) - aMapIndex = aMap.begin().data(); + if ( aSelMgr ) { + LightApp_SelectionMgr::MapEntryOfMapOfInteger aMap; + aSelMgr->selectedSubOwners( aMap ); + if ( aMap.Size() == 1 ) + aMapIndex = LightApp_SelectionMgr::MapEntryOfMapOfInteger::Iterator( aMap ).Value(); } } @@ -649,7 +877,8 @@ void GroupGUI_GroupDlg::updateState() aSubObjects[i]; if ( GEOMBase::GetShape(aSubObjects[i], aShape, getShapeType()) ) { - CORBA::Long anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] ); + CORBA::Long anIndex; + anIndex = aLocOp->GetSubShapeIndex( myMainObj, aSubObjects[i] ); if ( anIndex >= 0 ) aMapIndex.Add( anIndex ); else @@ -673,12 +902,19 @@ void GroupGUI_GroupDlg::updateState() isAdd = aMapIndex.Extent() > 0; myAddBtn->setEnabled( !myEditCurrentArgument && !CORBA::is_nil( myMainObj ) && isAdd ); - bool hasSel = false; - for ( int ii = 0, nn = myIdList->count(); !hasSel && ii < nn; ii++ ) - hasSel = myIdList->isSelected( ii ); + bool hasSel = myIdList->selectedItems().count() > 0; myRemBtn->setEnabled( hasSel ); - mySelSubBtn->setEnabled( !CORBA::is_nil( myMainObj ) ); + //mySelSubBtn->setEnabled( !CORBA::is_nil( myMainObj ) ); + //myPlaceCheckBox->setEnabled( !CORBA::is_nil( myMainObj ) ); + mySelectionWayGroupBox->setEnabled( !CORBA::is_nil( myMainObj ) ); mySelAllBtn->setEnabled( !CORBA::is_nil( myMainObj ) ); +// mySelBtn2->setEnabled( myPlaceCheckBox->isChecked() ); +// myShape2Name->setEnabled( myPlaceCheckBox->isChecked() ); + mySelBtn2->setEnabled( subSelectionWay() != ALL_SUBSHAPES ); + myShape2Name->setEnabled( subSelectionWay() != ALL_SUBSHAPES ); +// if ( !myPlaceCheckBox->isChecked() ) + if ( subSelectionWay() == ALL_SUBSHAPES ) + setInPlaceObj( GEOM::GEOM_Object::_nil() ); } //================================================================================= @@ -700,7 +936,13 @@ void GroupGUI_GroupDlg::highlightSubShapes() return; Standard_Boolean isOk; - char* objIOR = GEOMBase::GetIORFromObject( myMainObj ); + char* objIOR; + + if ( myInPlaceObj->_is_nil() ) + objIOR = GEOMBase::GetIORFromObject( myMainObj ); + else + objIOR = GEOMBase::GetIORFromObject( myInPlaceObj ); + Handle(GEOM_AISShape) aSh = GEOMBase::ConvertIORinGEOMAISShape( objIOR, isOk, true ); free( objIOR ); if ( !isOk || aSh.IsNull() ) @@ -712,21 +954,32 @@ void GroupGUI_GroupDlg::highlightSubShapes() int ii = 0, nn = myIdList->count(); for ( ; ii < nn; ii++ ) - if ( myIdList->isSelected( ii ) ) - anIds.Add( myIdList->item( ii )->text().toInt() ); - + { + if ( myIdList->item( ii )->isSelected() ) { + int id = myIdList->item( ii )->text().toInt(); + // if ( myPlaceCheckBox->isChecked() ) + if ( subSelectionWay() != ALL_SUBSHAPES ) + { + if ( myMain2InPlaceIndices.IsBound( id ) ) + id = myMain2InPlaceIndices( id ); + else { + myIdList->item( ii )->setSelected( false ); + continue; + } + } + anIds.Add( id ); + } + } SalomeApp_Application* app = myGeomGUI->getApp(); LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); aSelMgr->clearSelected(); - //if (nn < 3000) aSelMgr->AddOrRemoveIndex(aSh->getIO(), anIds, false); + aSelMgr->AddOrRemoveIndex(aSh->getIO(), anIds, false); myBusy = false; - //updateState(); - if (nn < 3000) { + if (nn < 3000) updateState(); - } else { myAddBtn->setEnabled( true ); myRemBtn->setEnabled( true ); @@ -766,7 +1019,7 @@ bool GroupGUI_GroupDlg::isValid( QString& theMessage ) } QString aName (getNewObjectName()); - RETURN_WITH_MSG ( !aName.stripWhiteSpace().isEmpty(), tr( "EMPTY_NAME" ) ) + RETURN_WITH_MSG ( !aName.trimmed().isEmpty(), tr( "EMPTY_NAME" ) ) RETURN_WITH_MSG ( myIdList->count(), tr( "EMPTY_LIST" ) ) return true; @@ -778,6 +1031,8 @@ bool GroupGUI_GroupDlg::isValid( QString& theMessage ) //================================================================================= bool GroupGUI_GroupDlg::execute( ObjectList& objects ) { + setInPlaceObj( GEOM::GEOM_Object::_nil() ); + GEOM::GEOM_IGroupOperations_var anOp = GEOM::GEOM_IGroupOperations::_narrow(getOperation()); GEOM::GEOM_Object_var aGroup; @@ -816,13 +1071,13 @@ bool GroupGUI_GroupDlg::execute( ObjectList& objects ) SalomeApp_Study* study = getStudy(); if ( study ) { char* objIOR = GEOMBase::GetIORFromObject( aGroup ); - string IOR( objIOR ); + std::string IOR( objIOR ); free( objIOR ); if ( IOR != "" ) { _PTR(SObject) SO ( study->studyDS()->FindObjectIOR( IOR ) ); if ( SO ) { _PTR(StudyBuilder) aBuilder (study->studyDS()->NewBuilder()); - aBuilder->SetName( SO, getNewObjectName() ); + aBuilder->SetName( SO, getNewObjectName().toLatin1().constData() ); } } } diff --git a/src/GroupGUI/GroupGUI_GroupDlg.h b/src/GroupGUI/GroupGUI_GroupDlg.h index 98c1e604d..5edccedcd 100644 --- a/src/GroupGUI/GroupGUI_GroupDlg.h +++ b/src/GroupGUI/GroupGUI_GroupDlg.h @@ -1,41 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2004 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : GroupGUI_GroupDlg.h +// Author : Sergey ANIKIN, Open CASCADE S.A.S. (sergey.anikin@opencascade.com) // -// File : GroupGUI_GroupDlg.h -// Author : Sergey ANIKIN -// Module : GEOM - #ifndef GROUPGUI_GROUPDLG_H #define GROUPGUI_GROUPDLG_H -#include "GEOMBase_Skeleton.h" +#include #include +#include class QGroupBox; class QLineEdit; -class QListBox; -class QRadioButton; +class QListWidget; +class QButtonGroup; //================================================================================= // class : GroupGUI_GroupDlg @@ -43,62 +42,71 @@ class QRadioButton; //================================================================================= class GroupGUI_GroupDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - typedef enum { - CreateGroup, - EditGroup - } Mode; + typedef enum { + CreateGroup, + EditGroup + } Mode; - GroupGUI_GroupDlg(Mode mode, GeometryGUI*, QWidget* parent = 0); - ~GroupGUI_GroupDlg(); + GroupGUI_GroupDlg( Mode mode, GeometryGUI*, QWidget* parent = 0 ); + ~GroupGUI_GroupDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); - virtual GEOM::GEOM_Object_ptr getFather( GEOM::GEOM_Object_ptr theObj ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual GEOM::GEOM_Object_ptr getFather( GEOM::GEOM_Object_ptr ); + + void closeEvent( QCloseEvent* ); private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ConstructorsClicked( int constructorId ); - - void selectAllSubShapes(); - void add(); - void remove(); - void selectionChanged(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + + void selectAllSubShapes(); + void add(); + void remove(); + void selectionChanged(); + +private: + void Init(); + void enterEvent( QEvent* ); + int subSelectionWay() const; + TopAbs_ShapeEnum getShapeType() const; + void setShapeType( const TopAbs_ShapeEnum ); + void activateSelection(); + void updateState(); + void highlightSubShapes(); + void onGetInPlace(); + void setInPlaceObj( GEOM::GEOM_Object_var, const bool isVisible=1); private: - void Init(); - void enterEvent( QEvent* e ); - int getConstructorId() const; - TopAbs_ShapeEnum getShapeType() const; - void setShapeType( const TopAbs_ShapeEnum ); - void activateSelection(); - void updateState(); - void highlightSubShapes(); + Mode myMode; + bool myBusy; + GEOM::GEOM_Object_var myMainObj; + GEOM::GEOM_Object_var myGroup; + GEOM::GEOM_Object_var myInPlaceObj; + int myInPlaceObjSelectState; + TColStd_DataMapOfIntegerInteger myMain2InPlaceIndices; -private: - Mode myMode; - bool myBusy; - GEOM::GEOM_Object_var myMainObj; - GEOM::GEOM_Object_var myGroup; - - QGroupBox* GroupMedium; - QPushButton* mySelBtn; - QLineEdit* myMainName; - QRadioButton* mySelSubBtn; - QPushButton* mySelAllBtn; - QPushButton* myAddBtn; - QPushButton* myRemBtn; - QListBox* myIdList; + QPushButton* mySelBtn; + QLineEdit* myMainName; + QPushButton* mySelBtn2; + QLineEdit* myShape2Name; + QGroupBox* mySelectionWayGroupBox; + QButtonGroup* mySelectionWayGroup; + QPushButton* mySelAllBtn; + QPushButton* myAddBtn; + QPushButton* myRemBtn; + QListWidget* myIdList; }; #endif diff --git a/src/GroupGUI/Makefile.am b/src/GroupGUI/Makefile.am index 101b660f7..0a93e2c4d 100755 --- a/src/GroupGUI/Makefile.am +++ b/src/GroupGUI/Makefile.am @@ -1,77 +1,75 @@ -# GEOM BUILDGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM GROUPGUI : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : GroupGUI # -# File : Makefile.in -# Author : Sergey ANIKIN (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libGroupGUI.la # header files -salomeinclude_HEADERS = +salomeinclude_HEADERS = \ + GroupGUI.h \ + GroupGUI_GroupDlg.h -dist_libGroupGUI_la_SOURCES = \ - GroupGUI.cxx \ - GroupGUI_GroupDlg.cxx +dist_libGroupGUI_la_SOURCES = \ + GroupGUI.h \ + GroupGUI_GroupDlg.h \ + GroupGUI.cxx \ + GroupGUI_GroupDlg.cxx -MOC_FILES = \ - GroupGUI_moc.cxx \ +MOC_FILES = \ + GroupGUI_moc.cxx \ GroupGUI_GroupDlg_moc.cxx -nodist_libGroupGUI_la_SOURCES= \ +nodist_libGroupGUI_la_SOURCES = \ $(MOC_FILES) -# LIB_CLIENT_IDL = SALOME_GenericObj.idl SALOME_Component.idl SALOME_Exception.idl +# additional information to compile and link file -# LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libGroupGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMFiltersSelection \ - -I$(top_builddir)/idl \ +libGroupGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMFiltersSelection \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libGroupGUI_la_LDFLAGS = \ - ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ +libGroupGUI_la_LDFLAGS = \ + ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ ../GEOMBase/libGEOMBase.la diff --git a/src/IGESExport/IGESExport.cxx b/src/IGESExport/IGESExport.cxx index e4a031650..475b41db2 100644 --- a/src/IGESExport/IGESExport.cxx +++ b/src/IGESExport/IGESExport.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: IGESExport.cxx // Created: Wed May 19 14:49:45 2004 // Author: Pavel TELKOV // - +// #include "utilities.h" #include diff --git a/src/IGESExport/IGESExport.pro b/src/IGESExport/IGESExport.pro new file mode 100644 index 000000000..9e0e6b303 --- /dev/null +++ b/src/IGESExport/IGESExport.pro @@ -0,0 +1,49 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = IGESExport +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} + +LIBS += $${STDLIB} $${CAS_LDPATH} -lTKIGES $${KERNEL_LDFLAGS} -lSALOMELocalTrace + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += IGESEXPORT_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +SOURCES = IGESExport.cxx diff --git a/src/IGESExport/Makefile.am b/src/IGESExport/Makefile.am index 8eb7a855d..317442f8a 100644 --- a/src/IGESExport/Makefile.am +++ b/src/IGESExport/Makefile.am @@ -1,43 +1,45 @@ -# Copyright (C) 2003 CEA -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.in # Author : Pavel TELKOV # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libIGESExport.la -dist_libIGESExport_la_SOURCES = \ +dist_libIGESExport_la_SOURCES = \ IGESExport.cxx -# additionnal information to compil and link file -libIGESExport_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ +# additional information to compile and link file + +libIGESExport_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ $(KERNEL_CXXFLAGS) -libIGESExport_la_LDFLAGS = \ - $(STDLIB) \ - $(CAS_LDPATH) -lTKIGES \ +libIGESExport_la_LDFLAGS = \ + $(STDLIB) \ + $(CAS_LDPATH) -lTKIGES \ $(KERNEL_LDFLAGS) -lSALOMELocalTrace diff --git a/src/IGESImport/IGESImport.cxx b/src/IGESImport/IGESImport.cxx index c5fe987ca..4830e7743 100644 --- a/src/IGESImport/IGESImport.cxx +++ b/src/IGESImport/IGESImport.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: IGESImport.cxx // Created: Wed May 19 14:36:35 2004 // Author: Pavel TELKOV // - +// #include "utilities.h" #include diff --git a/src/IGESImport/IGESImport.pro b/src/IGESImport/IGESImport.pro new file mode 100644 index 000000000..33db63680 --- /dev/null +++ b/src/IGESImport/IGESImport.pro @@ -0,0 +1,49 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = IGESImport +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} + +LIBS += $${STDLIB} $${CAS_LDPATH} -lTKIGES $${KERNEL_LDFLAGS} -lSALOMELocalTrace + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += IGESIMPORT_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +SOURCES = IGESImport.cxx diff --git a/src/IGESImport/Makefile.am b/src/IGESImport/Makefile.am index 9675012eb..0252162d6 100644 --- a/src/IGESImport/Makefile.am +++ b/src/IGESImport/Makefile.am @@ -1,43 +1,45 @@ -# Copyright (C) 2003 CEA -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.in # Author : Pavel TELKOV # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # Libraries targets lib_LTLIBRARIES = libIGESImport.la -dist_libIGESImport_la_SOURCES = \ +dist_libIGESImport_la_SOURCES = \ IGESImport.cxx -# additionnal information to compil and link file -libIGESImport_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ +# additional information to compile and link file + +libIGESImport_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ $(KERNEL_CXXFLAGS) -libIGESImport_la_LDFLAGS = \ - $(STDLIB) \ - $(CAS_LDPATH) -lTKIGES \ +libIGESImport_la_LDFLAGS = \ + $(STDLIB) \ + $(CAS_LDPATH) -lTKIGES \ $(KERNEL_LDFLAGS) -lSALOMELocalTrace diff --git a/src/Makefile.am b/src/Makefile.am index 5a9503b94..88531e27c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,32 +1,49 @@ -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# File : Makefile.am -# Author : Patrick GOLDBRONN (CEA) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header$ - -SUBDIRS = ARCHIMEDE NMTDS NMTTools GEOMAlgo SKETCHER GEOM BREPExport BREPImport IGESExport IGESImport STEPExport STEPImport STLExport ShHealOper GEOMImpl GEOM_I GEOMClient GEOM_I_Superv GEOM_SWIG +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : src (source files directory) +# +SUBDIRS = ARCHIMEDE NMTDS NMTTools GEOMAlgo SKETCHER GEOM BREPExport \ + BREPImport IGESExport IGESImport STEPExport STEPImport \ + STLExport ShHealOper GEOMImpl GEOM_I GEOMClient GEOM_I_Superv \ + GEOM_SWIG if GEOM_ENABLE_GUI - SUBDIRS+= OBJECT DlgRef GEOMFiltersSelection GEOMGUI GEOMBase GEOMToolsGUI DisplayGUI BasicGUI PrimitiveGUI GenerationGUI EntityGUI BuildGUI BooleanGUI TransformationGUI OperationGUI RepairGUI MeasureGUI GroupGUI BlocksGUI GEOM_SWIG_WITHIHM + SUBDIRS += OBJECT DlgRef GEOMFiltersSelection GEOMGUI GEOMBase GEOMToolsGUI \ + DisplayGUI BasicGUI PrimitiveGUI GenerationGUI EntityGUI BuildGUI \ + BooleanGUI TransformationGUI OperationGUI RepairGUI MeasureGUI \ + GroupGUI BlocksGUI GEOM_SWIG_WITHIHM endif + +DIST_SUBDIRS = ARCHIMEDE NMTDS NMTTools GEOMAlgo SKETCHER GEOM BREPExport \ + BREPImport IGESExport IGESImport STEPExport STEPImport STLExport \ + ShHealOper GEOMImpl GEOM_I GEOMClient GEOM_I_Superv GEOM_SWIG \ + OBJECT DlgRef GEOMFiltersSelection GEOMGUI GEOMBase GEOMToolsGUI \ + DisplayGUI BasicGUI PrimitiveGUI GenerationGUI EntityGUI \ + BuildGUI BooleanGUI TransformationGUI OperationGUI RepairGUI \ + MeasureGUI GroupGUI BlocksGUI GEOM_SWIG_WITHIHM + +####################################### +# Not used packages are listed below +####################################### +# GEOMDS NMTAlgo PARTITION diff --git a/src/MeasureGUI/GEOM_MeasureGUI.hxx b/src/MeasureGUI/GEOM_MeasureGUI.hxx deleted file mode 100755 index fd447a276..000000000 --- a/src/MeasureGUI/GEOM_MeasureGUI.hxx +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : GEOM_MeasureGUI.hxx -// Author : Alexander A. BORODIN -// Module : GEOM - -#ifndef _GEOM_MeasureGUI_HXX_ -#define _GEOM_MeasureGUI_HXX_ - -#ifdef WNT - #if defined MEASUREGUI_EXPORTS - #if defined WIN32 - #define GEOM_MEASUREGUI_EXPORT __declspec( dllexport ) - #else - #define GEOM_MEASUREGUI_EXPORT - #endif - #else - #if defined WIN32 - #define GEOM_MEASUREGUI_EXPORT __declspec( dllimport ) - #else - #define GEOM_MEASUREGUI_EXPORT - #endif - #endif -#else - #define GEOM_MEASUREGUI_EXPORT -#endif - -#endif diff --git a/src/MeasureGUI/Makefile.am b/src/MeasureGUI/Makefile.am index e2462292f..3e5229249 100644 --- a/src/MeasureGUI/Makefile.am +++ b/src/MeasureGUI/Makefile.am @@ -1,113 +1,124 @@ -# GEOM MEASUREGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM MEASUREGUI : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : MeasureGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = +salomeinclude_HEADERS = \ + MeasureGUI.h \ + MeasureGUI_Widgets.h \ + MeasureGUI_Skeleton.h \ + MeasureGUI_PropertiesDlg.h \ + MeasureGUI_CenterMassDlg.h \ + MeasureGUI_NormaleDlg.h \ + MeasureGUI_InertiaDlg.h \ + MeasureGUI_BndBoxDlg.h \ + MeasureGUI_DistanceDlg.h \ + MeasureGUI_AngleDlg.h \ + MeasureGUI_MaxToleranceDlg.h \ + MeasureGUI_WhatisDlg.h \ + MeasureGUI_CheckShapeDlg.h \ + MeasureGUI_CheckCompoundOfBlocksDlg.h \ + MeasureGUI_PointDlg.h # Libraries targets lib_LTLIBRARIES = libMeasureGUI.la -dist_libMeasureGUI_la_SOURCES = \ - MeasureGUI.cxx \ - MeasureGUI_Skeleton_QTD.cxx \ - MeasureGUI_1Sel3LineEdit_QTD.cxx \ - MeasureGUI_1Sel6LineEdit_QTD.cxx \ - MeasureGUI_1Sel12LineEdit_QTD.cxx \ - MeasureGUI_1Sel1TextView_QTD.cxx \ - MeasureGUI_2Sel1LineEdit_QTD.cxx \ - MeasureGUI_2Sel4LineEdit_QTD.cxx \ - MeasureGUI_Skeleton.cxx \ - MeasureGUI_PropertiesDlg.cxx \ - MeasureGUI_CenterMassDlg.cxx \ - MeasureGUI_NormaleDlg.cxx \ - MeasureGUI_InertiaDlg.cxx \ - MeasureGUI_BndBoxDlg.cxx \ - MeasureGUI_DistanceDlg.cxx \ - MeasureGUI_AngleDlg.cxx \ - MeasureGUI_MaxToleranceDlg.cxx \ - MeasureGUI_WhatisDlg.cxx \ - MeasureGUI_CheckShapeDlg.cxx \ +dist_libMeasureGUI_la_SOURCES = \ + MeasureGUI.cxx \ + MeasureGUI_Widgets.cxx \ + MeasureGUI_Skeleton.cxx \ + MeasureGUI_PropertiesDlg.cxx \ + MeasureGUI_CenterMassDlg.cxx \ + MeasureGUI_NormaleDlg.cxx \ + MeasureGUI_InertiaDlg.cxx \ + MeasureGUI_BndBoxDlg.cxx \ + MeasureGUI_DistanceDlg.cxx \ + MeasureGUI_AngleDlg.cxx \ + MeasureGUI_MaxToleranceDlg.cxx \ + MeasureGUI_WhatisDlg.cxx \ + MeasureGUI_CheckShapeDlg.cxx \ MeasureGUI_CheckCompoundOfBlocksDlg.cxx \ MeasureGUI_PointDlg.cxx -MOC_FILES = \ - MeasureGUI_Skeleton_QTD_moc.cxx \ - MeasureGUI_1Sel3LineEdit_QTD_moc.cxx \ - MeasureGUI_1Sel6LineEdit_QTD_moc.cxx \ - MeasureGUI_1Sel12LineEdit_QTD_moc.cxx \ - MeasureGUI_1Sel1TextView_QTD_moc.cxx \ - MeasureGUI_2Sel1LineEdit_QTD_moc.cxx \ - MeasureGUI_2Sel4LineEdit_QTD_moc.cxx \ - MeasureGUI_Skeleton_moc.cxx \ - MeasureGUI_PropertiesDlg_moc.cxx \ - MeasureGUI_CenterMassDlg_moc.cxx \ - MeasureGUI_NormaleDlg_moc.cxx \ - MeasureGUI_InertiaDlg_moc.cxx \ - MeasureGUI_BndBoxDlg_moc.cxx \ - MeasureGUI_DistanceDlg_moc.cxx \ - MeasureGUI_AngleDlg_moc.cxx \ - MeasureGUI_MaxToleranceDlg_moc.cxx \ - MeasureGUI_WhatisDlg_moc.cxx \ - MeasureGUI_CheckShapeDlg_moc.cxx \ - MeasureGUI_CheckCompoundOfBlocksDlg_moc.cxx \ - MeasureGUI_PointDlg_moc.cxx +MOC_FILES = \ + MeasureGUI_Widgets_moc.cxx \ + MeasureGUI_Skeleton_moc.cxx \ + MeasureGUI_PropertiesDlg_moc.cxx \ + MeasureGUI_CenterMassDlg_moc.cxx \ + MeasureGUI_NormaleDlg_moc.cxx \ + MeasureGUI_InertiaDlg_moc.cxx \ + MeasureGUI_BndBoxDlg_moc.cxx \ + MeasureGUI_DistanceDlg_moc.cxx \ + MeasureGUI_AngleDlg_moc.cxx \ + MeasureGUI_MaxToleranceDlg_moc.cxx \ + MeasureGUI_WhatisDlg_moc.cxx \ + MeasureGUI_CheckShapeDlg_moc.cxx \ + MeasureGUI_CheckCompoundOfBlocksDlg_moc.cxx \ + MeasureGUI_PointDlg_moc.cxx -nodist_libMeasureGUI_la_SOURCES= \ +nodist_libMeasureGUI_la_SOURCES = \ $(MOC_FILES) -#LIB_CLIENT_IDL = SALOME_Exception.idl SALOME_GenericObj.idl SALOME_Component.idl +UIC_FILES = \ + ui_MeasureGUI_1Sel12LineEdit_QTD.h \ + ui_MeasureGUI_1Sel1TextView1Check_QTD.h \ + ui_MeasureGUI_1Sel1TextView2ListBox_QTD.h \ + ui_MeasureGUI_1Sel1TextView_QTD.h \ + ui_MeasureGUI_1Sel3LineEdit_QTD.h \ + ui_MeasureGUI_1Sel6LineEdit_QTD.h \ + ui_MeasureGUI_2Sel1LineEdit_QTD.h \ + ui_MeasureGUI_2Sel4LineEdit_QTD.h \ + ui_MeasureGUI_SkeletonBox_QTD.h -#LIB_SERVER_IDL = +BUILT_SOURCES = $(UIC_FILES) -# additionnal information to compil and link file +# additional information to compile and link file -libMeasureGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(top_builddir)/idl \ +libMeasureGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOM \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libMeasureGUI_la_LDFLAGS = \ +libMeasureGUI_la_LDFLAGS = \ ../GEOMBase/libGEOMBase.la diff --git a/src/MeasureGUI/MeasureGUI.cxx b/src/MeasureGUI/MeasureGUI.cxx index 84571cf76..a240d7562 100644 --- a/src/MeasureGUI/MeasureGUI.cxx +++ b/src/MeasureGUI/MeasureGUI.cxx @@ -1,37 +1,33 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : MeasureGUI.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "MeasureGUI.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Tools.h" -#include "SalomeApp_Application.h" +#include +#include +#include #include "MeasureGUI_PropertiesDlg.h" // Method PROPERTIES #include "MeasureGUI_CenterMassDlg.h" // Method CENTER MASS @@ -46,6 +42,8 @@ #include "MeasureGUI_CheckCompoundOfBlocksDlg.h" // Method CHECKCOMPOUND #include "MeasureGUI_PointDlg.h" // Method POINTCOORDINATES +#include + //======================================================================= // function : MeasureGUI() // purpose : Constructor @@ -74,24 +72,52 @@ bool MeasureGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) getGeometryGUI()->EmitSignalDeactivateDialog(); - switch ( theCommandID ) - { - case 701 : new MeasureGUI_PropertiesDlg (getGeometryGUI(), parent); break; // LENGTH, AREA AND VOLUME - case 702 : new MeasureGUI_CenterMassDlg (getGeometryGUI(), parent); break; // CENTER MASS - case 703 : new MeasureGUI_InertiaDlg (getGeometryGUI(), parent); break; // INERTIA - case 704 : new MeasureGUI_NormaleDlg (getGeometryGUI(), parent); break; // NORMALE - case 7041: new MeasureGUI_BndBoxDlg (getGeometryGUI(), parent); break; // BOUNDING BOX - case 7042: new MeasureGUI_DistanceDlg (getGeometryGUI(), parent); break; // MIN DISTANCE - case 7043: new MeasureGUI_AngleDlg (getGeometryGUI(), parent); break; // ANGLE - case 705 : new MeasureGUI_MaxToleranceDlg(getGeometryGUI(), parent); break; // MAXTOLERANCE - case 706 : new MeasureGUI_WhatisDlg (getGeometryGUI(), parent); break; // WHATIS - case 707 : new MeasureGUI_CheckShapeDlg (getGeometryGUI(), parent); break; // CHECKSHAPE - case 7072: new MeasureGUI_CheckCompoundOfBlocksDlg (getGeometryGUI(), parent); break; // CHECKCOMPOUND - case 708 : new MeasureGUI_PointDlg (getGeometryGUI(), parent); break; // POINT COORDINATES - - default: - app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); - break; + QDialog* dlg = 0; + switch ( theCommandID ) { + case 701: + dlg = new MeasureGUI_PropertiesDlg( getGeometryGUI(), parent ); + break; // LENGTH, AREA AND VOLUME + case 702: + dlg = new MeasureGUI_CenterMassDlg( getGeometryGUI(), parent ); + break; // CENTER MASS + case 703: + dlg = new MeasureGUI_InertiaDlg( getGeometryGUI(), parent ); + break; // INERTIA + case 704 : + dlg = new MeasureGUI_NormaleDlg( getGeometryGUI(), parent ); + break; // NORMALE + case 7041: + dlg = new MeasureGUI_BndBoxDlg( getGeometryGUI(), parent ); + break; // BOUNDING BOX + case 7042: + dlg = new MeasureGUI_DistanceDlg( getGeometryGUI(), parent ); + break; // MIN DISTANCE + case 7043: + dlg = new MeasureGUI_AngleDlg( getGeometryGUI(), parent ); + break; // ANGLE + case 705: + dlg = new MeasureGUI_MaxToleranceDlg( getGeometryGUI(), parent ); + break; // MAXTOLERANCE + case 706: + dlg = new MeasureGUI_WhatisDlg( getGeometryGUI(), parent ); + break; // WHATIS + case 707: + dlg = new MeasureGUI_CheckShapeDlg( getGeometryGUI(), parent ); + break; // CHECKSHAPE + case 7072: + dlg = new MeasureGUI_CheckCompoundOfBlocksDlg( getGeometryGUI(), parent ); + break; // CHECKCOMPOUND + case 708: + dlg = new MeasureGUI_PointDlg( getGeometryGUI(), parent ); + break; // POINT COORDINATES + default: + app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); + break; + } + if ( dlg ) { + dlg->updateGeometry(); + dlg->resize( dlg->minimumSizeHint() ); + dlg->show(); } return true; } @@ -102,7 +128,9 @@ bool MeasureGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) //===================================================================================== extern "C" { -GEOM_MEASUREGUI_EXPORT +#ifdef WIN32 + __declspec( dllexport ) +#endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { return new MeasureGUI( parent ); diff --git a/src/MeasureGUI/MeasureGUI.h b/src/MeasureGUI/MeasureGUI.h index 295c3a742..71d34a71b 100644 --- a/src/MeasureGUI/MeasureGUI.h +++ b/src/MeasureGUI/MeasureGUI.h @@ -1,48 +1,44 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : MeasureGUI.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef MEASUREGUI_H #define MEASUREGUI_H -#include "GEOM_MeasureGUI.hxx" - -#include "GEOMGUI.h" +#include //================================================================================= // class : MeasureGUI // purpose : //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI : public GEOMGUI +class MeasureGUI : public GEOMGUI { public: - MeasureGUI( GeometryGUI* parent ); + MeasureGUI( GeometryGUI* ); ~MeasureGUI(); - bool OnGUIEvent( int , SUIT_Desktop* ); + bool OnGUIEvent( int, SUIT_Desktop* ); }; -#endif +#endif // MEASUREGUI_H diff --git a/src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.cxx b/src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.cxx deleted file mode 100644 index a8c11caf8..000000000 --- a/src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.cxx +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'MeasureGUI_1Sel12LineEdit_QTD.ui' -** -** Created: mar oct 28 16:11:14 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "MeasureGUI_1Sel12LineEdit_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a MeasureGUI_1Sel12LineEdit_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -MeasureGUI_1Sel12LineEdit_QTD::MeasureGUI_1Sel12LineEdit_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "MeasureGUI_1Sel12LineEdit_QTD" ); - resize( 131, 171 ); - setCaption( trUtf8( "MeasureGUI_1Sel12LineEdit_QTD" ) ); - MeasureGUI_1Sel12LineEdit_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "MeasureGUI_1Sel12LineEdit_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, GroupBox1->sizePolicy().hasHeightForWidth() ) ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - LineEdit12 = new QLineEdit( GroupBox1, "LineEdit12" ); - - Layout2->addWidget( LineEdit12, 0, 2 ); - - LineEdit11 = new QLineEdit( GroupBox1, "LineEdit11" ); - - Layout2->addWidget( LineEdit11, 0, 1 ); - - LineEdit42 = new QLineEdit( GroupBox1, "LineEdit42" ); - - Layout2->addWidget( LineEdit42, 3, 2 ); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - TextLabel5->setText( trUtf8( "TL5" ) ); - - Layout2->addWidget( TextLabel5, 3, 0 ); - - LineEdit31 = new QLineEdit( GroupBox1, "LineEdit31" ); - - Layout2->addWidget( LineEdit31, 2, 1 ); - - LineEdit41 = new QLineEdit( GroupBox1, "LineEdit41" ); - - Layout2->addWidget( LineEdit41, 3, 1 ); - - LineEdit23 = new QLineEdit( GroupBox1, "LineEdit23" ); - - Layout2->addWidget( LineEdit23, 1, 3 ); - - LineEdit33 = new QLineEdit( GroupBox1, "LineEdit33" ); - - Layout2->addWidget( LineEdit33, 2, 3 ); - - LineEdit43 = new QLineEdit( GroupBox1, "LineEdit43" ); - - Layout2->addWidget( LineEdit43, 3, 3 ); - - LineEdit22 = new QLineEdit( GroupBox1, "LineEdit22" ); - - Layout2->addWidget( LineEdit22, 1, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout2->addWidget( TextLabel2, 0, 0 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 2, 0 ); - - LineEdit13 = new QLineEdit( GroupBox1, "LineEdit13" ); - - Layout2->addWidget( LineEdit13, 0, 3 ); - - LineEdit32 = new QLineEdit( GroupBox1, "LineEdit32" ); - - Layout2->addWidget( LineEdit32, 2, 2 ); - - LineEdit21 = new QLineEdit( GroupBox1, "LineEdit21" ); - - Layout2->addWidget( LineEdit21, 1, 1 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 1, 0 ); - - Layout1->addMultiCellLayout( Layout2, 1, 1, 0, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 40, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 2, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - MeasureGUI_1Sel12LineEdit_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -MeasureGUI_1Sel12LineEdit_QTD::~MeasureGUI_1Sel12LineEdit_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.h b/src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.h deleted file mode 100644 index 92462c9bb..000000000 --- a/src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.h +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'MeasureGUI_1Sel12LineEdit_QTD.ui' -** -** Created: mar oct 28 16:11:14 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef MEASUREGUI_1SEL12LINEEDIT_QTD_H -#define MEASUREGUI_1SEL12LINEEDIT_QTD_H - -#include "GEOM_MeasureGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_MEASUREGUI_EXPORT MeasureGUI_1Sel12LineEdit_QTD : public QWidget -{ - Q_OBJECT - -public: - MeasureGUI_1Sel12LineEdit_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~MeasureGUI_1Sel12LineEdit_QTD(); - - QGroupBox* GroupBox1; - QLineEdit* LineEdit12; - QLineEdit* LineEdit11; - QLineEdit* LineEdit42; - QLabel* TextLabel5; - QLineEdit* LineEdit31; - QLineEdit* LineEdit41; - QLineEdit* LineEdit23; - QLineEdit* LineEdit33; - QLineEdit* LineEdit43; - QLineEdit* LineEdit22; - QLabel* TextLabel2; - QLabel* TextLabel4; - QLineEdit* LineEdit13; - QLineEdit* LineEdit32; - QLineEdit* LineEdit21; - QLabel* TextLabel3; - QLineEdit* LineEdit1; - QPushButton* PushButton1; - QLabel* TextLabel1; - - -protected: - QGridLayout* MeasureGUI_1Sel12LineEdit_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // MEASUREGUI_1SEL12LINEEDIT_QTD_H diff --git a/src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.ui b/src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.ui new file mode 100644 index 000000000..7ad9f5cda --- /dev/null +++ b/src/MeasureGUI/MeasureGUI_1Sel12LineEdit_QTD.ui @@ -0,0 +1,197 @@ + + MeasureGUI_1Sel12LineEdit_QTD + + + + 0 + 0 + 196 + 162 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + 250 + 0 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + + + TL2 + + + + + + + + + + TL4 + + + + + + + + + + + + + + + + + + + + + + + + + TL5 + + + + + + + + + + + + + + + + TL3 + + + + + + + + + TL1 + + + + + + + + 0 + 0 + + + + + + + + + + + + + + PushButton1 + LineEdit1 + LineEdit11 + LineEdit12 + LineEdit13 + LineEdit21 + LineEdit22 + LineEdit23 + LineEdit31 + LineEdit32 + LineEdit33 + LineEdit41 + LineEdit42 + LineEdit43 + + + + diff --git a/src/MeasureGUI/MeasureGUI_1Sel1TextView1Check_QTD.ui b/src/MeasureGUI/MeasureGUI_1Sel1TextView1Check_QTD.ui new file mode 100644 index 000000000..3070500a8 --- /dev/null +++ b/src/MeasureGUI/MeasureGUI_1Sel1TextView1Check_QTD.ui @@ -0,0 +1,92 @@ + + MeasureGUI_1Sel1TextView1Check_QTD + + + + 0 + 0 + 322 + 253 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + + + TL1 + + + + + + + + 0 + 0 + + + + + + + + + + + + + + + 300 + 0 + + + + + + + + Check also geometry + + + + + + + + + + PushButton1 + LineEdit1 + TextView1 + + + + diff --git a/src/MeasureGUI/MeasureGUI_1Sel1TextView2ListBox_QTD.ui b/src/MeasureGUI/MeasureGUI_1Sel1TextView2ListBox_QTD.ui new file mode 100644 index 000000000..eb01d0230 --- /dev/null +++ b/src/MeasureGUI/MeasureGUI_1Sel1TextView2ListBox_QTD.ui @@ -0,0 +1,123 @@ + + MeasureGUI_1Sel1TextView2ListBox_QTD + + + + 0 + 0 + 235 + 274 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + 100 + 0 + + + + + + + + + + + TL2 + + + + + + + TL3 + + + + + + + TL1 + + + + + + + + 0 + 0 + + + + + + + + + + + + + + PushButton1 + LineEdit1 + TextView1 + + + + diff --git a/src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.cxx b/src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.cxx deleted file mode 100644 index c812dad43..000000000 --- a/src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.cxx +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'MeasureGUI_1Sel1TextView_QTD.ui' -** -** Created: mar oct 28 14:01:15 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "MeasureGUI_1Sel1TextView_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a MeasureGUI_1Sel1TextView_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -MeasureGUI_1Sel1TextView_QTD::MeasureGUI_1Sel1TextView_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "MeasureGUI_1Sel1TextView_QTD" ); - resize( 130, 160 ); - setCaption( trUtf8( "MeasureGUI_1Sel1TextView_QTD" ) ); - MeasureGUI_1Sel1TextView_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "MeasureGUI_1Sel1TextView_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, GroupBox1->sizePolicy().hasHeightForWidth() ) ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - TextEdit1 = new QTextEdit( GroupBox1, "TextEdit1" ); - - Layout1->addMultiCellWidget( TextEdit1, 1, 1, 0, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - MeasureGUI_1Sel1TextView_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -MeasureGUI_1Sel1TextView_QTD::~MeasureGUI_1Sel1TextView_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.h b/src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.h deleted file mode 100644 index 749da70fb..000000000 --- a/src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'MeasureGUI_1Sel1TextView_QTD.ui' -** -** Created: mar oct 28 14:01:14 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef MEASUREGUI_1SEL1TEXTVIEW_QTD_H -#define MEASUREGUI_1SEL1TEXTVIEW_QTD_H - -#include "GEOM_MeasureGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; -class QTextEdit; - -class GEOM_MEASUREGUI_EXPORT MeasureGUI_1Sel1TextView_QTD : public QWidget -{ - Q_OBJECT - -public: - MeasureGUI_1Sel1TextView_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~MeasureGUI_1Sel1TextView_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel1; - QTextEdit* TextEdit1; - QLineEdit* LineEdit1; - QPushButton* PushButton1; - - -protected: - QGridLayout* MeasureGUI_1Sel1TextView_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; -}; - -#endif // MEASUREGUI_1SEL1TEXTVIEW_QTD_H diff --git a/src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.ui b/src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.ui new file mode 100644 index 000000000..a5849b6ce --- /dev/null +++ b/src/MeasureGUI/MeasureGUI_1Sel1TextView_QTD.ui @@ -0,0 +1,103 @@ + + MeasureGUI_1Sel1TextView_QTD + + + + 0 + 0 + 196 + 148 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + TL1 + + + + + + + + + + PushButton1 + LineEdit1 + TextView1 + + + + diff --git a/src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.cxx b/src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.cxx deleted file mode 100644 index fe73bf13e..000000000 --- a/src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.cxx +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'MeasureGUI_1Sel3LineEdit_QTD.ui' -** -** Created: mar oct 28 16:11:13 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "MeasureGUI_1Sel3LineEdit_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a MeasureGUI_1Sel3LineEdit_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -MeasureGUI_1Sel3LineEdit_QTD::MeasureGUI_1Sel3LineEdit_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "MeasureGUI_1Sel3LineEdit_QTD" ); - resize( 129, 141 ); - setCaption( trUtf8( "MeasureGUI_1Sel3LineEdit_QTD" ) ); - MeasureGUI_1Sel3LineEdit_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "MeasureGUI_1Sel3LineEdit_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, GroupBox1->sizePolicy().hasHeightForWidth() ) ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout2->addWidget( TextLabel1, 0, 0 ); - - LineEdit4 = new QLineEdit( GroupBox1, "LineEdit4" ); - - Layout2->addMultiCellWidget( LineEdit4, 3, 3, 1, 2 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 2, 0 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout2->addMultiCellWidget( LineEdit2, 1, 1, 1, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 80, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout2->addItem( spacer, 4, 2 ); - - LineEdit3 = new QLineEdit( GroupBox1, "LineEdit3" ); - - Layout2->addMultiCellWidget( LineEdit3, 2, 2, 1, 2 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout2->addWidget( LineEdit1, 0, 2 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 3, 0 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout2->addWidget( TextLabel2, 1, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout2->addWidget( PushButton1, 0, 1 ); - - GroupBox1Layout->addLayout( Layout2, 0, 0 ); - - MeasureGUI_1Sel3LineEdit_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -MeasureGUI_1Sel3LineEdit_QTD::~MeasureGUI_1Sel3LineEdit_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.h b/src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.h deleted file mode 100644 index 5bd97c8f9..000000000 --- a/src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.h +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'MeasureGUI_1Sel3LineEdit_QTD.ui' -** -** Created: mar oct 28 16:11:13 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef MEASUREGUI_1SEL3LINEEDIT_QTD_H -#define MEASUREGUI_1SEL3LINEEDIT_QTD_H - -#include "GEOM_MeasureGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_MEASUREGUI_EXPORT MeasureGUI_1Sel3LineEdit_QTD : public QWidget -{ - Q_OBJECT - -public: - MeasureGUI_1Sel3LineEdit_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~MeasureGUI_1Sel3LineEdit_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel1; - QLineEdit* LineEdit4; - QLabel* TextLabel3; - QLineEdit* LineEdit2; - QLineEdit* LineEdit3; - QLineEdit* LineEdit1; - QLabel* TextLabel4; - QLabel* TextLabel2; - QPushButton* PushButton1; - - -protected: - QGridLayout* MeasureGUI_1Sel3LineEdit_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout2; -}; - -#endif // MEASUREGUI_1SEL3LINEEDIT_QTD_H diff --git a/src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.ui b/src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.ui new file mode 100644 index 000000000..020dc0ae5 --- /dev/null +++ b/src/MeasureGUI/MeasureGUI_1Sel3LineEdit_QTD.ui @@ -0,0 +1,132 @@ + + MeasureGUI_1Sel3LineEdit_QTD + + + + 0 + 0 + 196 + 132 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + + + + + + TL3 + + + + + + + TL4 + + + + + + + TL2 + + + + + + + + 0 + 0 + + + + + + + + + + + TL1 + + + + + + + + 100 + 0 + + + + + + + + + + + PushButton1 + LineEdit1 + LineEdit2 + LineEdit3 + LineEdit4 + + + + diff --git a/src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.cxx b/src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.cxx deleted file mode 100644 index 88629b699..000000000 --- a/src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.cxx +++ /dev/null @@ -1,151 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'MeasureGUI_1Sel6LineEdit_QTD.ui' -** -** Created: mar oct 28 16:11:14 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#include "MeasureGUI_1Sel6LineEdit_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a MeasureGUI_1Sel6LineEdit_QTD which is a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -MeasureGUI_1Sel6LineEdit_QTD::MeasureGUI_1Sel6LineEdit_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "MeasureGUI_1Sel6LineEdit_QTD" ); - resize( 129, 163 ); - setCaption( trUtf8( "MeasureGUI_1Sel6LineEdit_QTD" ) ); - MeasureGUI_1Sel6LineEdit_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "MeasureGUI_1Sel6LineEdit_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, GroupBox1->sizePolicy().hasHeightForWidth() ) ); - GroupBox1->setTitle( trUtf8( "" ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - QSpacerItem* spacer = new QSpacerItem( 0, 50, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( spacer, 2, 2 ); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - TextLabel1->setText( trUtf8( "TL1" ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - - LineEdit22 = new QLineEdit( GroupBox1, "LineEdit22" ); - - Layout2->addWidget( LineEdit22, 2, 2 ); - - LineEdit32 = new QLineEdit( GroupBox1, "LineEdit32" ); - - Layout2->addWidget( LineEdit32, 3, 2 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - TextLabel4->setText( trUtf8( "TL4" ) ); - - Layout2->addWidget( TextLabel4, 1, 0 ); - - LineEdit31 = new QLineEdit( GroupBox1, "LineEdit31" ); - - Layout2->addWidget( LineEdit31, 3, 1 ); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - TextLabel5->setText( trUtf8( "TL5" ) ); - - Layout2->addWidget( TextLabel5, 2, 0 ); - - LineEdit11 = new QLineEdit( GroupBox1, "LineEdit11" ); - - Layout2->addWidget( LineEdit11, 1, 1 ); - - TextLabel6 = new QLabel( GroupBox1, "TextLabel6" ); - TextLabel6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel6->sizePolicy().hasHeightForWidth() ) ); - TextLabel6->setText( trUtf8( "TL6" ) ); - - Layout2->addWidget( TextLabel6, 3, 0 ); - - LineEdit12 = new QLineEdit( GroupBox1, "LineEdit12" ); - - Layout2->addWidget( LineEdit12, 1, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - TextLabel2->setText( trUtf8( "TL2" ) ); - - Layout2->addWidget( TextLabel2, 0, 1 ); - - LineEdit21 = new QLineEdit( GroupBox1, "LineEdit21" ); - - Layout2->addWidget( LineEdit21, 2, 1 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - TextLabel3->setText( trUtf8( "TL3" ) ); - - Layout2->addWidget( TextLabel3, 0, 2 ); - - Layout1->addMultiCellLayout( Layout2, 1, 1, 0, 2 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - PushButton1->setText( trUtf8( "" ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - MeasureGUI_1Sel6LineEdit_QTDLayout->addWidget( GroupBox1, 0, 0 ); -} - -/* - * Destroys the object and frees any allocated resources - */ -MeasureGUI_1Sel6LineEdit_QTD::~MeasureGUI_1Sel6LineEdit_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - diff --git a/src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.h b/src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.h deleted file mode 100644 index 6805664ea..000000000 --- a/src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.h +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'MeasureGUI_1Sel6LineEdit_QTD.ui' -** -** Created: mar oct 28 16:11:13 2003 -** by: The User Interface Compiler (uic) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ -#ifndef MEASUREGUI_1SEL6LINEEDIT_QTD_H -#define MEASUREGUI_1SEL6LINEEDIT_QTD_H - -#include "GEOM_MeasureGUI.hxx" - -#include -#include -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QGroupBox; -class QLabel; -class QLineEdit; -class QPushButton; - -class GEOM_MEASUREGUI_EXPORT MeasureGUI_1Sel6LineEdit_QTD : public QWidget -{ - Q_OBJECT - -public: - MeasureGUI_1Sel6LineEdit_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~MeasureGUI_1Sel6LineEdit_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel1; - QLineEdit* LineEdit22; - QLineEdit* LineEdit32; - QLabel* TextLabel4; - QLineEdit* LineEdit31; - QLabel* TextLabel5; - QLineEdit* LineEdit11; - QLabel* TextLabel6; - QLineEdit* LineEdit12; - QLabel* TextLabel2; - QLineEdit* LineEdit21; - QLabel* TextLabel3; - QPushButton* PushButton1; - QLineEdit* LineEdit1; - - -protected: - QGridLayout* MeasureGUI_1Sel6LineEdit_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QGridLayout* Layout2; -}; - -#endif // MEASUREGUI_1SEL6LINEEDIT_QTD_H diff --git a/src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.ui b/src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.ui new file mode 100644 index 000000000..8b05a517d --- /dev/null +++ b/src/MeasureGUI/MeasureGUI_1Sel6LineEdit_QTD.ui @@ -0,0 +1,180 @@ + + MeasureGUI_1Sel6LineEdit_QTD + + + + 0 + 0 + 196 + 160 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + + + TL2 + + + + + + + + + + + + + + + + TL4 + + + + + + + TL3 + + + + + + + TL6 + + + + + + + TL5 + + + + + + + + + + + + + 0 + 0 + + + + + + + + + + + TL1 + + + + + + + + 100 + 0 + + + + + + + + + + + PushButton1 + LineEdit1 + LineEdit11 + LineEdit12 + LineEdit21 + LineEdit22 + LineEdit31 + LineEdit32 + + + + diff --git a/src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.cxx b/src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.cxx deleted file mode 100644 index ad4fba90b..000000000 --- a/src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.cxx +++ /dev/null @@ -1,104 +0,0 @@ -/**************************************************************************** -** Form implementation generated from reading ui file 'MeasureGUI_2Sel1LineEdit_QTD.ui' -** -** Created: Tue Oct 9 14:45:59 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include "MeasureGUI_2Sel1LineEdit_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a MeasureGUI_2Sel1LineEdit_QTD as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -MeasureGUI_2Sel1LineEdit_QTD::MeasureGUI_2Sel1LineEdit_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "MeasureGUI_2Sel1LineEdit_QTD" ); - MeasureGUI_2Sel1LineEdit_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "MeasureGUI_2Sel1LineEdit_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, GroupBox1->sizePolicy().hasHeightForWidth() ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel3, 2, 0 ); - - LineEdit3 = new QLineEdit( GroupBox1, "LineEdit3" ); - - Layout1->addMultiCellWidget( LineEdit3, 2, 2, 1, 2 ); - Spacer8 = new QSpacerItem( 0, 60, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( Spacer8, 3, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - MeasureGUI_2Sel1LineEdit_QTDLayout->addWidget( GroupBox1, 0, 0 ); - languageChange(); - resize( QSize(129, 115).expandedTo(minimumSizeHint()) ); - clearWState( WState_Polished ); -} - -/* - * Destroys the object and frees any allocated resources - */ -MeasureGUI_2Sel1LineEdit_QTD::~MeasureGUI_2Sel1LineEdit_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void MeasureGUI_2Sel1LineEdit_QTD::languageChange() -{ -} - diff --git a/src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.h b/src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.h deleted file mode 100644 index d0adf8e7b..000000000 --- a/src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.h +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** Form interface generated from reading ui file 'MeasureGUI_2Sel1LineEdit_QTD.ui' -** -** Created: Tue Oct 9 14:45:55 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#ifndef MEASUREGUI_2SEL1LINEEDIT_QTD_H -#define MEASUREGUI_2SEL1LINEEDIT_QTD_H - -#include "GEOM_MeasureGUI.hxx" - -#include -#include - -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QSpacerItem; -class QGroupBox; -class QLabel; -class QPushButton; -class QLineEdit; - -class GEOM_MEASUREGUI_EXPORT MeasureGUI_2Sel1LineEdit_QTD : public QWidget -{ - Q_OBJECT - -public: - MeasureGUI_2Sel1LineEdit_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~MeasureGUI_2Sel1LineEdit_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel1; - QPushButton* PushButton1; - QLineEdit* LineEdit1; - QLabel* TextLabel2; - QPushButton* PushButton2; - QLineEdit* LineEdit2; - QLabel* TextLabel3; - QLineEdit* LineEdit3; - -protected: - QGridLayout* MeasureGUI_2Sel1LineEdit_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QSpacerItem* Spacer8; - -protected slots: - virtual void languageChange(); - -}; - -#endif // MEASUREGUI_2SEL1LINEEDIT_QTD_H diff --git a/src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.ui b/src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.ui new file mode 100644 index 000000000..b6187162d --- /dev/null +++ b/src/MeasureGUI/MeasureGUI_2Sel1LineEdit_QTD.ui @@ -0,0 +1,142 @@ + + MeasureGUI_2Sel1LineEdit_QTD + + + + 0 + 0 + 196 + 108 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + 6 + + + + + + + + + 9 + + + 9 + + + 9 + + + 9 + + + 6 + + + 6 + + + + + + + + + 100 + 0 + + + + + + + + + 0 + 0 + + + + + + + + + + + TL2 + + + + + + + TL3 + + + + + + + + 100 + 0 + + + + + + + + + 0 + 0 + + + + + + + + + + + TL1 + + + + + + + + + + PushButton1 + LineEdit1 + PushButton2 + LineEdit2 + LineEdit3 + + + + diff --git a/src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.cxx b/src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.cxx deleted file mode 100644 index 3c5563c72..000000000 --- a/src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.cxx +++ /dev/null @@ -1,131 +0,0 @@ -/**************************************************************************** -** Form implementation generated from reading ui file 'MeasureGUI_2Sel4LineEdit_QTD.ui' -** -** Created: Tue Oct 9 14:32:18 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include "MeasureGUI_2Sel4LineEdit_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a MeasureGUI_2Sel4LineEdit_QTD as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -MeasureGUI_2Sel4LineEdit_QTD::MeasureGUI_2Sel4LineEdit_QTD( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - if ( !name ) - setName( "MeasureGUI_2Sel4LineEdit_QTD" ); - MeasureGUI_2Sel4LineEdit_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "MeasureGUI_2Sel4LineEdit_QTDLayout"); - - GroupBox1 = new QGroupBox( this, "GroupBox1" ); - GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, GroupBox1->sizePolicy().hasHeightForWidth() ) ); - GroupBox1->setColumnLayout(0, Qt::Vertical ); - GroupBox1->layout()->setSpacing( 6 ); - GroupBox1->layout()->setMargin( 11 ); - GroupBox1Layout = new QGridLayout( GroupBox1->layout() ); - GroupBox1Layout->setAlignment( Qt::AlignTop ); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - TextLabel1 = new QLabel( GroupBox1, "TextLabel1" ); - TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel1, 0, 0 ); - - PushButton1 = new QPushButton( GroupBox1, "PushButton1" ); - PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( PushButton1, 0, 1 ); - - LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" ); - - Layout1->addWidget( LineEdit1, 0, 2 ); - - TextLabel2 = new QLabel( GroupBox1, "TextLabel2" ); - TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel2, 1, 0 ); - - PushButton2 = new QPushButton( GroupBox1, "PushButton2" ); - PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( PushButton2, 1, 1 ); - - LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" ); - - Layout1->addWidget( LineEdit2, 1, 2 ); - - TextLabel3 = new QLabel( GroupBox1, "TextLabel3" ); - TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel3, 2, 0 ); - - LineEdit3 = new QLineEdit( GroupBox1, "LineEdit3" ); - - Layout1->addMultiCellWidget( LineEdit3, 2, 2, 1, 2 ); - - TextLabel4 = new QLabel( GroupBox1, "TextLabel4" ); - TextLabel4->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel4->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel4, 3, 0 ); - - LineEdit4 = new QLineEdit( GroupBox1, "LineEdit4" ); - - Layout1->addMultiCellWidget( LineEdit4, 3, 3, 1, 2 ); - - TextLabel5 = new QLabel( GroupBox1, "TextLabel5" ); - TextLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel5->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel5, 4, 0 ); - - LineEdit5 = new QLineEdit( GroupBox1, "LineEdit5" ); - - Layout1->addMultiCellWidget( LineEdit5, 4, 4, 1, 2 ); - - TextLabel6 = new QLabel( GroupBox1, "TextLabel6" ); - TextLabel6->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel6->sizePolicy().hasHeightForWidth() ) ); - - Layout1->addWidget( TextLabel6, 5, 0 ); - - LineEdit6 = new QLineEdit( GroupBox1, "LineEdit6" ); - - Layout1->addMultiCellWidget( LineEdit6, 5, 5, 1, 2 ); - Spacer8 = new QSpacerItem( 0, 60, QSizePolicy::Minimum, QSizePolicy::Expanding ); - Layout1->addItem( Spacer8, 6, 2 ); - - GroupBox1Layout->addLayout( Layout1, 0, 0 ); - - MeasureGUI_2Sel4LineEdit_QTDLayout->addWidget( GroupBox1, 0, 0 ); - languageChange(); - resize( QSize(129, 163).expandedTo(minimumSizeHint()) ); - clearWState( WState_Polished ); -} - -/* - * Destroys the object and frees any allocated resources - */ -MeasureGUI_2Sel4LineEdit_QTD::~MeasureGUI_2Sel4LineEdit_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void MeasureGUI_2Sel4LineEdit_QTD::languageChange() -{ -} - diff --git a/src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.h b/src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.h deleted file mode 100644 index 0378ca3ce..000000000 --- a/src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.h +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** Form interface generated from reading ui file 'MeasureGUI_2Sel4LineEdit_QTD.ui' -** -** Created: Tue Oct 9 14:31:27 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#ifndef MEASUREGUI_2SEL4LINEEDIT_QTD_H -#define MEASUREGUI_2SEL4LINEEDIT_QTD_H - -#include "GEOM_MeasureGUI.hxx" - -#include -#include - -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QSpacerItem; -class QGroupBox; -class QLabel; -class QPushButton; -class QLineEdit; - -class GEOM_MEASUREGUI_EXPORT MeasureGUI_2Sel4LineEdit_QTD : public QWidget -{ - Q_OBJECT - -public: - MeasureGUI_2Sel4LineEdit_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~MeasureGUI_2Sel4LineEdit_QTD(); - - QGroupBox* GroupBox1; - QLabel* TextLabel1; - QPushButton* PushButton1; - QLineEdit* LineEdit1; - QLabel* TextLabel2; - QPushButton* PushButton2; - QLineEdit* LineEdit2; - QLabel* TextLabel3; - QLineEdit* LineEdit3; - QLabel* TextLabel4; - QLineEdit* LineEdit4; - QLabel* TextLabel5; - QLineEdit* LineEdit5; - QLabel* TextLabel6; - QLineEdit* LineEdit6; - -protected: - QGridLayout* MeasureGUI_2Sel4LineEdit_QTDLayout; - QGridLayout* GroupBox1Layout; - QGridLayout* Layout1; - QSpacerItem* Spacer8; - -protected slots: - virtual void languageChange(); - -}; - -#endif // MEASUREGUI_2SEL4LINEEDIT_QTD_H diff --git a/src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.ui b/src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.ui new file mode 100644 index 000000000..d63fb5ab9 --- /dev/null +++ b/src/MeasureGUI/MeasureGUI_2Sel4LineEdit_QTD.ui @@ -0,0 +1,189 @@ + + MeasureGUI_2Sel4LineEdit_QTD + + + + 0 + 0 + 198 + 197 + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + + + 0 + 0 + + + + TL1 + + + false + + + + + + + + 0 + 0 + + + + + + + + + 100 + 0 + + + + + + + + + 0 + 0 + + + + TL2 + + + false + + + + + + + + 0 + 0 + + + + + + + + + 100 + 0 + + + + + + + + + 0 + 0 + + + + TL3 + + + false + + + + + + + + + + + 0 + 0 + + + + TL4 + + + false + + + + + + + + + + + 0 + 0 + + + + TL5 + + + false + + + + + + + + + + + 0 + 0 + + + + TL6 + + + false + + + + + + + + + + + + + + diff --git a/src/MeasureGUI/MeasureGUI_AngleDlg.cxx b/src/MeasureGUI/MeasureGUI_AngleDlg.cxx index de13dd70b..6c6cff648 100644 --- a/src/MeasureGUI/MeasureGUI_AngleDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_AngleDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,29 +19,28 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// -// +// GEOM GEOMGUI : GUI for Geometry component // File : MeasureGUI_AngleDlg.cxx -// Author : Julia DOROVSKIKH -// Module : GEOM -// $Header$ - +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. +// #include "MeasureGUI_AngleDlg.h" +#include "MeasureGUI_Widgets.h" -#include "MeasureGUI_2Sel1LineEdit_QTD.h" +#include +#include +#include -#include "GEOMBase.h" -#include "GEOM_Displayer.h" -#include "DlgRef_SpinBox.h" -#include "GeometryGUI.h" - -#include "SUIT_Session.h" -#include "SUIT_ViewWindow.h" -#include "SUIT_MessageBox.h" -#include "SOCC_Prs.h" -#include "SOCC_ViewModel.h" -#include "SalomeApp_Tools.h" -#include "SalomeApp_Application.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // OCCT Includes #include @@ -55,6 +54,7 @@ #include #include #include +#include // QT Includes #include @@ -79,30 +79,33 @@ // TRUE to construct a modal dialog. //================================================================================= MeasureGUI_AngleDlg::MeasureGUI_AngleDlg (GeometryGUI* GUI, QWidget* parent) - : MeasureGUI_Skeleton(GUI, parent, "MeasureGUI_AngleDlg") + : MeasureGUI_Skeleton(GUI, parent) { - QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_ANGLE"))); - QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); + SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); + QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_ANGLE"))); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_MEASURE_ANGLE_TITLE")); + setWindowTitle(tr("GEOM_MEASURE_ANGLE_TITLE")); - // Widgets + /***************************************************************/ + mainFrame()->GroupConstructors->setTitle(tr("GEOM_MEASURE_ANGLE_ANGLE")); + mainFrame()->RadioButton1->setIcon(image0); - GroupConstructors->setTitle(tr("GEOM_MEASURE_ANGLE_ANGLE")); - RadioButton1->setPixmap(image0); - - myGrp = new MeasureGUI_2Sel1LineEdit_QTD(this, "myGrp"); + myGrp = new MeasureGUI_2Sel1LineEdit(centralWidget()); myGrp->GroupBox1->setTitle(tr("GEOM_MEASURE_ANGLE_OBJ")); myGrp->TextLabel1->setText(tr("GEOM_OBJECT_I").arg("1")); myGrp->TextLabel2->setText(tr("GEOM_OBJECT_I").arg("2")); myGrp->TextLabel3->setText(tr("GEOM_MEASURE_ANGLE_IS")); - myGrp->LineEdit3->setReadOnly(TRUE); - myGrp->PushButton1->setPixmap(image1); - myGrp->PushButton2->setPixmap(image1); + myGrp->LineEdit3->setReadOnly(true); + myGrp->PushButton1->setIcon(image1); + myGrp->PushButton2->setIcon(image1); myGrp->LineEdit1->setReadOnly(true); myGrp->LineEdit2->setReadOnly(true); - Layout1->addWidget(myGrp, 1, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(myGrp); + /***************************************************************/ // Help page reference myHelpFileName = "using_measurement_tools_page.html#angle_anchor"; @@ -125,6 +128,11 @@ MeasureGUI_AngleDlg::~MeasureGUI_AngleDlg() //================================================================================= void MeasureGUI_AngleDlg::Init() { + // init variables + myGrp->LineEdit1->setText(""); + myGrp->LineEdit2->setText(""); + myObj = myObj2 = GEOM::GEOM_Object::_nil(); + mySelBtn = myGrp->PushButton1; mySelEdit = myGrp->LineEdit1; mySelBtn2 = myGrp->PushButton2; @@ -132,31 +140,49 @@ void MeasureGUI_AngleDlg::Init() myEditCurrentArgument = mySelEdit; + // signals and slots connections connect(mySelEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(mySelBtn2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(mySelBtn2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); globalSelection(GEOM_LINE); MeasureGUI_Skeleton::Init(); } - //================================================================================= // function : SelectionIntoArgument() // purpose : Called when selection has changed //================================================================================= void MeasureGUI_AngleDlg::SelectionIntoArgument() { - Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); - if (!testResult) - aSelectedObject = GEOM::GEOM_Object::_nil(); + GEOM::GEOM_Object_var aSelectedObject = GEOM::GEOM_Object::_nil(); - if (myEditCurrentArgument == mySelEdit) + if (aSelList.Extent() > 0) { + Standard_Boolean testResult = Standard_False; + aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (!testResult) + aSelectedObject = GEOM::GEOM_Object::_nil(); + } + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (myEditCurrentArgument == mySelEdit) { myObj = aSelectedObject; - else + if (!myObj->_is_nil() && myObj2->_is_nil()) + myGrp->PushButton2->click(); + } + else { myObj2 = aSelectedObject; + if (!myObj2->_is_nil() && myObj->_is_nil()) + myGrp->PushButton1->click(); + } processObject(); } @@ -171,13 +197,11 @@ void MeasureGUI_AngleDlg::processObject() myGrp->LineEdit2->setText(!myObj2->_is_nil() ? GEOMBase::GetName(myObj2) : ""); double anAngle = 0.; - if (getParameters(anAngle)) - { - myGrp->LineEdit3->setText(DlgRef_SpinBox::PrintDoubleValue(anAngle)); + if (getParameters(anAngle)) { + myGrp->LineEdit3->setText(DlgRef::PrintDoubleValue(anAngle)); redisplayPreview(); } - else - { + else { myGrp->LineEdit3->setText(""); erasePreview(); } @@ -202,10 +226,9 @@ bool MeasureGUI_AngleDlg::getParameters (double& theAngle) bool isDone = getOperation()->IsDone(); if (!isDone) { CORBA::String_var aMsg = getOperation()->GetErrorCode(); - SUIT_MessageBox::warn1((QWidget*)myGeomGUI->getApp()->desktop(), - QObject::tr("WRN_WARNING"), - QObject::tr(aMsg.in()), - QObject::tr("BUT_OK")); + SUIT_MessageBox::warning(this, + QObject::tr("WRN_WARNING"), + QObject::tr(aMsg.in())); } return isDone; } @@ -221,17 +244,32 @@ void MeasureGUI_AngleDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if (send == mySelBtn) { - mySelEdit->setFocus(); - myEditCurrentArgument = mySelEdit; + if (send == myGrp->PushButton1) { + myEditCurrentArgument = myGrp->LineEdit1; + + myGrp->PushButton2->setDown(false); + myGrp->LineEdit2->setEnabled(false); } else { - mySelEdit2->setFocus(); - myEditCurrentArgument = mySelEdit2; + myEditCurrentArgument = myGrp->LineEdit2; + + myGrp->PushButton1->setDown(false); + myGrp->LineEdit1->setEnabled(false); } + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); globalSelection(GEOM_LINE); - SelectionIntoArgument(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + redisplayPreview(); } //================================================================================= @@ -247,7 +285,11 @@ void MeasureGUI_AngleDlg::LineEditReturnPressed() else myEditCurrentArgument = mySelEdit2; - if (GEOMBase::SelectionByNameInDialogs(this, mySelEdit->text(), selectedIO())) + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (GEOMBase::SelectionByNameInDialogs(this, mySelEdit->text(), aSelList)) mySelEdit->setText(mySelEdit->text()); } @@ -262,20 +304,17 @@ SALOME_Prs* MeasureGUI_AngleDlg::buildPrs() SUIT_ViewWindow* vw = SUIT_Session::session()->activeApplication()->desktop()->activeWindow(); if (myObj->_is_nil() || myObj2->_is_nil() || !getParameters(anAngle) || - vw->getViewManager()->getType() != OCCViewer_Viewer::Type()) + vw->getViewManager()->getType() != OCCViewer_Viewer::Type()) return 0; - if (anAngle > Precision::Angular()) - { - try - { + if (anAngle > Precision::Angular()) { + try { #if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 OCC_CATCH_SIGNALS; #endif TopoDS_Shape S1, S2; if (GEOMBase::GetShape(myObj , S1, TopAbs_EDGE) && - GEOMBase::GetShape(myObj2, S2, TopAbs_EDGE)) - { + GEOMBase::GetShape(myObj2, S2, TopAbs_EDGE)) { TopoDS_Edge anEdge1 = TopoDS::Edge(S1); TopoDS_Edge anEdge2 = TopoDS::Edge(S2); @@ -303,7 +342,7 @@ SALOME_Prs* MeasureGUI_AngleDlg::buildPrs() // *P21 gp_Pnt aP3 (aP22.XYZ() + aP11.XYZ() - aP21.XYZ()); - gce_MakePln gce_MP (aP11, aP12, aP3); + gce_MakePln gce_MP(aP11, aP12, aP3); Handle(Geom_Plane) aPlane = new Geom_Plane(gce_MP.Value()); // Build the angle dimension presentation @@ -312,7 +351,32 @@ SALOME_Prs* MeasureGUI_AngleDlg::buildPrs() Handle(AIS_AngleDimension) anIO = new AIS_AngleDimension (anEdge1, anEdge2, aPlane, anAngle * PI180, - TCollection_ExtendedString((Standard_CString)aLabel.latin1())); + TCollection_ExtendedString((Standard_CString)aLabel.toLatin1().data())); + Handle(Geom_Line) geom_lin1,geom_lin2; + gp_Pnt ptat11,ptat12,ptat21,ptat22; + Standard_Boolean isInfinite1,isInfinite2; + Handle(Geom_Curve) extCurv; + Standard_Integer extShape; + if (AIS::ComputeGeometry(anEdge1, + anEdge2, + extShape, + geom_lin1, + geom_lin2, + ptat11, + ptat12, + ptat21, + ptat22, + extCurv, + isInfinite1, + isInfinite2, + aPlane)) { + Standard_Real arrSize1 = anIO->ArrowSize(); + Standard_Real arrSize2 = anIO->ArrowSize(); + if (!isInfinite1) arrSize1 = ptat11.Distance(ptat12)/10.; + if (!isInfinite2) arrSize2 = ptat21.Distance(ptat22)/10.; + Standard_Real arrowSize = Max(arrSize1,arrSize2); + anIO->SetArrowSize(arrowSize); + } SOCC_Prs* aPrs = dynamic_cast(((SOCC_Viewer*)(vw->getViewManager()->getViewModel()))->CreatePrs(0)); @@ -323,8 +387,7 @@ SALOME_Prs* MeasureGUI_AngleDlg::buildPrs() return aPrs; } } - catch(Standard_Failure) - { + catch(Standard_Failure) { } } @@ -335,7 +398,7 @@ SALOME_Prs* MeasureGUI_AngleDlg::buildPrs() // function : isValid() // purpose : //================================================================================= -bool MeasureGUI_AngleDlg::isValid(QString& msg) +bool MeasureGUI_AngleDlg::isValid (QString& msg) { return MeasureGUI_Skeleton::isValid(msg) && !myObj2->_is_nil(); } diff --git a/src/MeasureGUI/MeasureGUI_AngleDlg.h b/src/MeasureGUI/MeasureGUI_AngleDlg.h index 0ef32abc4..ae9de088c 100644 --- a/src/MeasureGUI/MeasureGUI_AngleDlg.h +++ b/src/MeasureGUI/MeasureGUI_AngleDlg.h @@ -1,49 +1,45 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_AngleDlg.h +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. // -// -// File : MeasureGUI_AngleDlg.h -// Author : Julia DOROVSKIKH -// Module : GEOM - -#ifndef DIALOGBOX_ANGLE_H -#define DIALOGBOX_ANGLE_H - -#include "GEOM_MeasureGUI.hxx" +#ifndef MEASUREGUI_ANGLEDLG_H +#define MEASUREGUI_ANGLEDLG_H #include "MeasureGUI_Skeleton.h" -class MeasureGUI_2Sel1LineEdit_QTD; +class MeasureGUI_2Sel1LineEdit; //================================================================================= // class : MeasureGUI_AngleDlg // purpose : //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_AngleDlg : public MeasureGUI_Skeleton +class MeasureGUI_AngleDlg : public MeasureGUI_Skeleton { Q_OBJECT public: - MeasureGUI_AngleDlg (GeometryGUI* GUI, QWidget* parent); + MeasureGUI_AngleDlg( GeometryGUI*, QWidget* ); ~MeasureGUI_AngleDlg(); protected: @@ -53,19 +49,19 @@ protected: virtual void SelectionIntoArgument(); virtual void LineEditReturnPressed(); virtual void SetEditCurrentArgument(); - virtual bool isValid (QString& msg); + virtual bool isValid( QString& ); private: void Init(); - bool getParameters (double& theAngle); + bool getParameters( double& ); private: QLineEdit* myEditCurrentArgument; QLineEdit* mySelEdit2; QPushButton* mySelBtn2; - MeasureGUI_2Sel1LineEdit_QTD* myGrp; + MeasureGUI_2Sel1LineEdit* myGrp; GEOM::GEOM_Object_var myObj2; }; -#endif // DIALOGBOX_ANGLE_H +#endif // MEASUREGUI_ANGLEDLG_H diff --git a/src/MeasureGUI/MeasureGUI_BndBoxDlg.cxx b/src/MeasureGUI/MeasureGUI_BndBoxDlg.cxx index 7023827cd..a3d718caf 100644 --- a/src/MeasureGUI/MeasureGUI_BndBoxDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_BndBoxDlg.cxx @@ -1,73 +1,78 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_BndBoxDlg.cxx +// Author : Nicolas REJNERI, Open CASCADE S.A.S. // -// File : MeasureGUI_BndBoxDlg.cxx -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - #include "MeasureGUI_BndBoxDlg.h" -#include "MeasureGUI_1Sel6LineEdit_QTD.h" +#include "MeasureGUI_Widgets.h" -#include "GEOMBase.h" -#include "GEOM_Displayer.h" +#include + +#include +#include #include +#include +#include +#include +#include +#include +#include -#include "utilities.h" -#include "SUIT_Session.h" -#include "SalomeApp_Tools.h" +#include +#include +#include -#include -#include -#include -#include -#include -#include +// #include +// #include +// #include +// #include +// #include +// #include //================================================================================= // class : MeasureGUI_BndBoxDlg() // purpose : Constructs a MeasureGUI_BndBoxDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. +// true to construct a modal dialog. //================================================================================= MeasureGUI_BndBoxDlg::MeasureGUI_BndBoxDlg( GeometryGUI* GUI, QWidget* parent ) -: MeasureGUI_Skeleton( GUI, parent, "MeasureGUI_PropertiesDlg" ) + : MeasureGUI_Skeleton( GUI, parent ) { QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_DLG_BOUNDING_BOX" ) ) ); + "GEOM", tr( "ICON_DLG_BOUNDING_BOX" ) ) ); QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_SELECT" ) ) ); + "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption( tr( "GEOM_BNDBOX_TITLE" ) ); + setWindowTitle( tr( "GEOM_BNDBOX_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle( tr( "GEOM_BNDBOX" ) ); - RadioButton1->setPixmap( image0 ); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_BNDBOX" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); - myGrp = new MeasureGUI_1Sel6LineEdit_QTD( this, "myGrp" ); + myGrp = new MeasureGUI_1Sel6LineEdit( centralWidget() ); myGrp->GroupBox1->setTitle( tr( "GEOM_BNDBOX_OBJDIM" ) ); myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) ); myGrp->TextLabel2->setText( tr( "GEOM_MIN" ) ); @@ -75,16 +80,18 @@ MeasureGUI_BndBoxDlg::MeasureGUI_BndBoxDlg( GeometryGUI* GUI, QWidget* parent ) myGrp->TextLabel4->setText( tr( "GEOM_X" ) ); myGrp->TextLabel5->setText( tr( "GEOM_Y" ) ); myGrp->TextLabel6->setText( tr( "GEOM_Z" ) ); - myGrp->LineEdit11->setReadOnly( TRUE ); - myGrp->LineEdit12->setReadOnly( TRUE ); - myGrp->LineEdit21->setReadOnly( TRUE ); - myGrp->LineEdit22->setReadOnly( TRUE ); - myGrp->LineEdit31->setReadOnly( TRUE ); - myGrp->LineEdit32->setReadOnly( TRUE ); - myGrp->PushButton1->setPixmap( image1 ); + myGrp->LineEdit11->setReadOnly( true ); + myGrp->LineEdit12->setReadOnly( true ); + myGrp->LineEdit21->setReadOnly( true ); + myGrp->LineEdit22->setReadOnly( true ); + myGrp->LineEdit31->setReadOnly( true ); + myGrp->LineEdit32->setReadOnly( true ); + myGrp->PushButton1->setIcon( image1 ); myGrp->LineEdit1->setReadOnly( true ); - Layout1->addWidget( myGrp, 1, 0 ); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp ); /***************************************************************/ @@ -123,8 +130,7 @@ void MeasureGUI_BndBoxDlg::processObject() { double aXMin, aXMax, aYMin, aYMax, aZMin, aZMax; - if ( !getParameters( aXMin, aXMax, aYMin, aYMax, aZMin, aZMax ) ) - { + if ( !getParameters( aXMin, aXMax, aYMin, aYMax, aZMin, aZMax ) ) { mySelEdit->setText( "" ); myGrp->LineEdit11->setText( "" ); myGrp->LineEdit12->setText( "" ); @@ -133,9 +139,7 @@ void MeasureGUI_BndBoxDlg::processObject() myGrp->LineEdit31->setText( "" ); myGrp->LineEdit32->setText( "" ); } - else - { - + else { myGrp->LineEdit11->setText( tr( "%1" ).arg( aXMin, 12, 'f', 6 ) ); myGrp->LineEdit12->setText( tr( "%1" ).arg( aXMax, 12, 'f', 6 ) ); @@ -157,15 +161,68 @@ bool MeasureGUI_BndBoxDlg::getParameters( double& theXmin, double& theXmax, { if ( myObj->_is_nil() ) return false; - else - { - try - { + else { + try { + Handle(Poly_Triangulation) Trtn = 0; + + Handle(GEOM_Object) anObject = GEOM_Engine::GetEngine()->GetObject(myObj->GetStudyID(), myObj->GetEntry()); + if (!anObject.IsNull()) + { + Handle(GEOM_Function) aRefShape = anObject->GetLastFunction(); + if (!aRefShape.IsNull()) + { + TopoDS_Shape aShape = aRefShape->GetValue(); + if (!aShape.IsNull()) + { + TopLoc_Location l; + Handle(Poly_Triangulation) T; + TopExp_Explorer ex; + for (ex.Init(aShape,TopAbs_FACE); ex.More(); ex.Next()) { + const TopoDS_Face& F = TopoDS::Face(ex.Current()); + + BRepAdaptor_Surface surf(F); + if (surf.GetType() == GeomAbs_Sphere) + { + T = BRep_Tool::Triangulation(F, l); + if (!T.IsNull()) { + Handle(Poly_Triangulation) NullTrtn = 0; + (*((Handle(BRep_TFace)*)&F.TShape()))->Triangulation(NullTrtn); + Trtn = T; + break; + } + } + else + break; + } + } + } + } + GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->GetBoundingBox( myObj, theXmin, theXmax, theYmin, theYmax, theZmin, theZmax ); + + if (!Trtn.IsNull()) + { + Handle(GEOM_Function) aRefShape = anObject->GetLastFunction(); + if (!aRefShape.IsNull()) + { + TopoDS_Shape aShape = aRefShape->GetValue(); + if (!aShape.IsNull()) + { + TopLoc_Location l; + Handle(Poly_Triangulation) T; + TopExp_Explorer ex; + for (ex.Init(aShape,TopAbs_FACE); ex.More(); ex.Next()) { + const TopoDS_Face& F = TopoDS::Face(ex.Current()); + (*((Handle(BRep_TFace)*)&F.TShape()))->Triangulation(Trtn); + break; + } + } + } + } + } - catch( const SALOME::SALOME_Exception& e ) - { + catch( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); return false; } diff --git a/src/MeasureGUI/MeasureGUI_BndBoxDlg.h b/src/MeasureGUI/MeasureGUI_BndBoxDlg.h index cd563a115..9d12e3de6 100644 --- a/src/MeasureGUI/MeasureGUI_BndBoxDlg.h +++ b/src/MeasureGUI/MeasureGUI_BndBoxDlg.h @@ -1,65 +1,60 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : MeasureGUI_BndBoxDlg.h -// Author : Nicolas REJNERI -// Module : GEOM - -#ifndef DIALOGBOX_BNDBOX_H -#define DIALOGBOX_BNDBOX_H - -#include "GEOM_MeasureGUI.hxx" +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_BndBoxDlg.h +// Author : Nicolas REJNERI, Open CASCADE S.A.S. +// +#ifndef MEASUREGUI_BNDBOXDLG_H +#define MEASUREGUI_BNDBOXDLG_H #include "MeasureGUI_Skeleton.h" -class MeasureGUI_1Sel6LineEdit_QTD; +class MeasureGUI_1Sel6LineEdit; //================================================================================= // class : DialogBox_PROPERTIES // purpose : //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_BndBoxDlg : public MeasureGUI_Skeleton +class MeasureGUI_BndBoxDlg : public MeasureGUI_Skeleton { - Q_OBJECT + Q_OBJECT public: - MeasureGUI_BndBoxDlg(GeometryGUI* GUI, - QWidget* parent); - ~MeasureGUI_BndBoxDlg(); + MeasureGUI_BndBoxDlg( GeometryGUI*, QWidget* ); + ~MeasureGUI_BndBoxDlg(); protected: - // redefined from GEOMBase_Helper and MeasureGUI_Skeleton - virtual void processObject(); - virtual SALOME_Prs* buildPrs(); + // redefined from GEOMBase_Helper and MeasureGUI_Skeleton + virtual void processObject(); + virtual SALOME_Prs* buildPrs(); private: - void Init(); - bool getParameters( double& Xmin, double& Xmax, - double& Ymin, double& Ymax, - double& Zmin, double& Zmax ); + void Init(); + bool getParameters( double&, double&, + double&, double&, + double&, double& ); private: - MeasureGUI_1Sel6LineEdit_QTD* myGrp; + MeasureGUI_1Sel6LineEdit* myGrp; }; -#endif // DIALOGBOX_BNDBOX_H +#endif // MEASUREGUI_BNDBOXDLG_H diff --git a/src/MeasureGUI/MeasureGUI_CenterMassDlg.cxx b/src/MeasureGUI/MeasureGUI_CenterMassDlg.cxx index 77fa1e872..fe3a2c06f 100644 --- a/src/MeasureGUI/MeasureGUI_CenterMassDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_CenterMassDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,66 +19,68 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_CenterMassDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : MeasureGUI_CenterMassDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "MeasureGUI_CenterMassDlg.h" -#include "MeasureGUI_1Sel3LineEdit_QTD.h" +#include "MeasureGUI_Widgets.h" -#include "DlgRef_SpinBox.h" +#include +#include -#include "utilities.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SalomeApp_Tools.h" +#include + +#include +#include +#include +#include +#include #include #include #include #include -#include - //================================================================================= // class : MeasureGUI_CenterMassDlg() // purpose : Constructs a MeasureGUI_CenterMassDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. +// true to construct a modal dialog. //================================================================================= MeasureGUI_CenterMassDlg::MeasureGUI_CenterMassDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) - : GEOMBase_Skeleton(theGeometryGUI, parent, "MeasureGUI_CenterMassDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) + : GEOMBase_Skeleton( theGeometryGUI, parent, false ) { - QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_CENTERMASS"))); - QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_CENTERMASS" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption( tr( "GEOM_CMASS_TITLE" ) ); + setWindowTitle( tr( "GEOM_CMASS_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle( tr( "GEOM_CMASS" ) ); - RadioButton1->setPixmap( image0 ); - RadioButton2->close( TRUE ); - RadioButton3->close( TRUE ); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_CMASS" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - myGrp = new MeasureGUI_1Sel3LineEdit_QTD( this, "myGrp" ); + myGrp = new MeasureGUI_1Sel3LineEdit( centralWidget() ); myGrp->GroupBox1->setTitle( tr( "GEOM_CENTER" ) ); myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) ); myGrp->TextLabel2->setText( tr( "GEOM_X" ) ); myGrp->TextLabel3->setText( tr( "GEOM_Y" ) ); myGrp->TextLabel4->setText( tr( "GEOM_Z" ) ); - myGrp->LineEdit2->setReadOnly( TRUE ); - myGrp->LineEdit3->setReadOnly( TRUE ); - myGrp->LineEdit4->setReadOnly( TRUE ); - myGrp->PushButton1->setPixmap( image1 ); + myGrp->LineEdit2->setReadOnly( true ); + myGrp->LineEdit3->setReadOnly( true ); + myGrp->LineEdit4->setReadOnly( true ); + myGrp->PushButton1->setIcon( image1 ); myGrp->LineEdit1->setReadOnly( true ); - Layout1->addWidget( myGrp, 2, 0 ); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp ); + /***************************************************************/ myHelpFileName = "using_measurement_tools_page.html#center_mass_anchor"; @@ -107,22 +109,18 @@ void MeasureGUI_CenterMassDlg::Init() myEditCurrentArgument = myGrp->LineEdit1; /* signals and slots connections */ - connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); - connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect( myGrp->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect( myGrp->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( myGrp->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( myGrp->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_POINT") ); globalSelection(); SelectionIntoArgument(); - - /* displays Dialog */ - myGrp->show(); - this->show(); } @@ -162,18 +160,20 @@ void MeasureGUI_CenterMassDlg::SelectionIntoArgument() erasePreview(); myObj = GEOM::GEOM_Object::_nil(); - if ( IObjectCount() != 1 ) - { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { processObject(); return; } Standard_Boolean testResult = Standard_False; GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); - if ( !testResult || aSelectedObject->_is_nil() ) - { + if (!testResult || aSelectedObject->_is_nil()) { processObject(); return; } @@ -183,7 +183,6 @@ void MeasureGUI_CenterMassDlg::SelectionIntoArgument() displayPreview(); } - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -203,8 +202,7 @@ void MeasureGUI_CenterMassDlg::SetEditCurrentArgument() void MeasureGUI_CenterMassDlg::LineEditReturnPressed() { QLineEdit* send = ( QLineEdit* )sender(); - if ( send == myGrp->LineEdit1 ) - { + if ( send == myGrp->LineEdit1 ) { myEditCurrentArgument = myGrp->LineEdit1; GEOMBase_Skeleton::LineEditReturnPressed(); } @@ -219,8 +217,8 @@ void MeasureGUI_CenterMassDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL(currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); globalSelection(); displayPreview(); @@ -232,24 +230,22 @@ void MeasureGUI_CenterMassDlg::ActivateThisDialog() //================================================================================= void MeasureGUI_CenterMassDlg::processObject() { - if ( myObj->_is_nil() ) - { + if ( myObj->_is_nil() ) { myGrp->LineEdit1->setText( "" ); myGrp->LineEdit2->setText( "" ); myGrp->LineEdit3->setText( "" ); myGrp->LineEdit4->setText( "" ); erasePreview(); } - else - { + else { double x = 0, y = 0, z = 0; getParameters( x, y, z ); myGrp->LineEdit1->setText( GEOMBase::GetName( myObj ) ); - myGrp->LineEdit2->setText( DlgRef_SpinBox::PrintDoubleValue( x ) ); - myGrp->LineEdit3->setText( DlgRef_SpinBox::PrintDoubleValue( y ) ); - myGrp->LineEdit4->setText( DlgRef_SpinBox::PrintDoubleValue( z ) ); + myGrp->LineEdit2->setText( DlgRef::PrintDoubleValue( x ) ); + myGrp->LineEdit3->setText( DlgRef::PrintDoubleValue( y ) ); + myGrp->LineEdit4->setText( DlgRef::PrintDoubleValue( z ) ); displayPreview(); } @@ -260,9 +256,9 @@ void MeasureGUI_CenterMassDlg::processObject() // function : enterEvent() // purpose : //================================================================================= -void MeasureGUI_CenterMassDlg::enterEvent( QEvent* e ) +void MeasureGUI_CenterMassDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -292,10 +288,8 @@ bool MeasureGUI_CenterMassDlg::getParameters( double& theX, double& theY, double { if ( myObj->_is_nil() ) return false; - else - { - try - { + else { + try { GEOM::GEOM_Object_var anObj; anObj = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->GetCentreOfMass( myObj ); if ( !getOperation()->IsDone() ) @@ -317,8 +311,7 @@ bool MeasureGUI_CenterMassDlg::getParameters( double& theX, double& theY, double return true; } - catch( const SALOME::SALOME_Exception& e ) - { + catch( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); return false; } diff --git a/src/MeasureGUI/MeasureGUI_CenterMassDlg.h b/src/MeasureGUI/MeasureGUI_CenterMassDlg.h index 943aee4c3..4de61e99a 100644 --- a/src/MeasureGUI/MeasureGUI_CenterMassDlg.h +++ b/src/MeasureGUI/MeasureGUI_CenterMassDlg.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,59 +17,54 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_CenterMassDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : MeasureGUI_CenterMassDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +#ifndef MEASUREGUI_CENTERMASSDLG_H +#define MEASUREGUI_CENTERMASSDLG_H -#ifndef DIALOGBOX_CMASS_H -#define DIALOGBOX_CMASS_H +#include -#include "GEOM_MeasureGUI.hxx" - -#include "GEOMBase_Skeleton.h" - -class MeasureGUI_1Sel3LineEdit_QTD; +class MeasureGUI_1Sel3LineEdit; //================================================================================= // class : MeasureGUI_CenterMassDlg // purpose : //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_CenterMassDlg : public GEOMBase_Skeleton +class MeasureGUI_CenterMassDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - MeasureGUI_CenterMassDlg( GeometryGUI* GUI, - QWidget* parent ); - ~MeasureGUI_CenterMassDlg(); + MeasureGUI_CenterMassDlg( GeometryGUI*, QWidget* ); + ~MeasureGUI_CenterMassDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + private: - void Init( ); - void enterEvent( QEvent* e ); - void processObject(); - bool getParameters( double&, double&, double& ); - + void Init(); + void enterEvent( QEvent* ); + void processObject(); + bool getParameters( double&, double&, double& ); + private: - GEOM::GEOM_Object_var myObj; - MeasureGUI_1Sel3LineEdit_QTD* myGrp; + GEOM::GEOM_Object_var myObj; + MeasureGUI_1Sel3LineEdit* myGrp; }; -#endif // DIALOGBOX_CMASS_H +#endif // MEASUREGUI_CENTERMASSDLG_H diff --git a/src/MeasureGUI/MeasureGUI_CheckCompoundOfBlocksDlg.cxx b/src/MeasureGUI/MeasureGUI_CheckCompoundOfBlocksDlg.cxx index 4244affb1..90c6adf71 100644 --- a/src/MeasureGUI/MeasureGUI_CheckCompoundOfBlocksDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_CheckCompoundOfBlocksDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,46 +17,29 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_CheckCompoundOfBlocksDlg.cxx +// Author : Vladimir KLYACHIN, Open CASCADE S.A.S. (vladimir.klyachin@opencascade.com) // -// -// File : MeasureGUI_CheckCompoundOfBlocksDlg.cxx -// Author : VKN -// Module : GEOM -// $Header$ - #include "MeasureGUI_CheckCompoundOfBlocksDlg.h" -#include "MeasureGUI_1Sel1TextView_QTD.h" +#include "MeasureGUI_Widgets.h" -#include "utilities.h" -#include "SUIT_Session.h" -#include "LightApp_SelectionMgr.h" -#include "SalomeApp_Tools.h" -#include "SalomeApp_Application.h" +#include +#include +#include +#include +#include #include #include #include -#include "GEOMBase.h" -#include "GEOMImpl_Types.hxx" -#include -#include -#include -#include -#include -#include -// QT Includes -#include -#include -#include - -//VRV: porting on Qt 3.0.5 -#if QT_VERSION >= 0x030005 -#include -#endif -//VRV: porting on Qt 3.0.5 +#include +#include +#include +#include #define TEXTEDIT_FONT_FAMILY "Courier" #define TEXTEDIT_FONT_SIZE 11 @@ -66,61 +49,49 @@ // purpose : Constructs a MeasureGUI_CheckCompoundOfBlocksDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. +// true to construct a modal dialog. //================================================================================= MeasureGUI_CheckCompoundOfBlocksDlg::MeasureGUI_CheckCompoundOfBlocksDlg( GeometryGUI* GUI, QWidget* parent ) - : GEOMBase_Skeleton(GUI, parent, "MeasureGUI_CheckCompoundOfBlocksDlg", false, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose) + : GEOMBase_Skeleton( GUI, parent, false ) { SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); - QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_CHECK_COMPOUND_OF_BLOCKS"))); - QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image0( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_CHECK_COMPOUND_OF_BLOCKS" ) ) ); + QPixmap image1( aResMgr->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption( tr( "GEOM_CHECK_BLOCKS_COMPOUND" ) ); + setWindowTitle( tr( "GEOM_CHECK_BLOCKS_COMPOUND" ) ); /***************************************************************/ - GroupConstructors->setTitle( tr( "GEOM_CHECK_BLOCKS_COMPOUND" ) ); - RadioButton1->setPixmap( image0 ); - RadioButton2->close( TRUE ); - RadioButton3->close( TRUE ); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_CHECK_BLOCKS_COMPOUND" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - myGrp = new MeasureGUI_1Sel1TextView_QTD( this, "myGrp" ); + myGrp = new MeasureGUI_1Sel1TextView2ListBox( centralWidget() ); myGrp->GroupBox1->setTitle( tr( "GEOM_CHECK_INFOS" ) ); myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) ); - myGrp->TextEdit1->setReadOnly( TRUE ); + myGrp->TextView1->setReadOnly( true ); QFont aFont( TEXTEDIT_FONT_FAMILY, TEXTEDIT_FONT_SIZE ); aFont.setStyleHint( QFont::TypeWriter, QFont::PreferAntialias ); - myGrp->TextEdit1->setFont( aFont ); + myGrp->TextView1->setFont( aFont ); - myGrp->PushButton1->setPixmap( image1 ); + myGrp->PushButton1->setIcon( image1 ); myGrp->LineEdit1->setReadOnly( true ); - /***************************************************************/ - QGridLayout* aGBLayout = new QGridLayout( myGrp->GroupBox1->layout() ); - aGBLayout->setAlignment( Qt::AlignTop ); - QGridLayout* Layout2 = new QGridLayout( 0, 1, 1, 0, 6, "Layout2"); - myErrorsLbl = new QLabel( tr( "GEOM_CHECK_BLOCKS_COMPOUND_ERRORS" ), myGrp, "Errors" ); - Layout2->addWidget( myErrorsLbl, 0, 0 ); + myGrp->TextLabel2->setText( tr( "GEOM_CHECK_BLOCKS_COMPOUND_ERRORS" ) ); + myGrp->TextLabel3->setText( tr( "GEOM_CHECK_BLOCKS_COMPOUND_SUBSHAPES" ) ); - myErrorsLBox = new QListBox( myGrp, "ListBlockCompoundErrors" ); - myErrorsLBox->setMinimumSize( 100, 100 ); - Layout2->addWidget( myErrorsLBox, 1, 0 ); + myGrp->ListBox2->setSelectionMode( QAbstractItemView::ExtendedSelection ); - mySubShapesLbl = new QLabel( tr( "GEOM_CHECK_BLOCKS_COMPOUND_SUBSHAPES" ), - myGrp, "BlockCompoundSubShapes" ); - Layout2->addWidget( mySubShapesLbl, 0, 1 ); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp ); - mySubShapesLBox = new QListBox( myGrp, "ListSubShapes" ); - mySubShapesLBox->setMinimumSize( 100, 100 ); - mySubShapesLBox->setSelectionMode(QListBox::Extended); - Layout2->addWidget( mySubShapesLBox, 1, 1 ); - aGBLayout->addLayout( Layout2, 1, 0 ); + connect( myGrp->ListBox1, SIGNAL( itemSelectionChanged() ), SLOT( onErrorsListSelectionChanged() ) ); + connect( myGrp->ListBox2, SIGNAL( itemSelectionChanged() ), SLOT( onSubShapesListSelectionChanged() ) ); - Layout1->addWidget( myGrp, 2, 0 ); - - connect( myErrorsLBox, SIGNAL( selectionChanged() ), SLOT( onErrorsListSelectionChanged() ) ); - connect( mySubShapesLBox, SIGNAL( selectionChanged() ), SLOT( onSubShapesListSelectionChanged() ) ); /***************************************************************/ myHelpFileName = "using_measurement_tools_page.html#check_compound_anchor"; @@ -146,23 +117,20 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::Init() myEditCurrentArgument = myGrp->LineEdit1; // signals and slots connections - connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); - connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect( myGrp->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect( myGrp->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( myGrp->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( myGrp->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_BLOCKS_COMPOUND") ); - buttonOk->setEnabled(false); - buttonApply->setEnabled(false); + buttonOk()->setEnabled( false ); + buttonApply()->setEnabled( false ); activateSelection(); SelectionIntoArgument(); - - // displays Dialog - this->show(); } //================================================================================= @@ -171,7 +139,7 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::Init() //================================================================================= void MeasureGUI_CheckCompoundOfBlocksDlg::ClickOnOk() { - if (ClickOnApply()) + if ( ClickOnApply() ) ClickOnCancel(); } @@ -197,24 +165,28 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::SelectionIntoArgument() erasePreview(); myObj = GEOM::GEOM_Object::_nil(); - if (IObjectCount() != 1) { - myGrp->LineEdit1->setText(""); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { + myGrp->LineEdit1->setText( "" ); processObject(); return; } Standard_Boolean testResult = Standard_False; GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); - if (!testResult || aSelectedObject->_is_nil()) { - myGrp->LineEdit1->setText(""); + if ( !testResult || aSelectedObject->_is_nil() ) { + myGrp->LineEdit1->setText( "" ); processObject(); return; } myObj = aSelectedObject; - myGrp->LineEdit1->setText(GEOMBase::GetName(myObj)); + myGrp->LineEdit1->setText( GEOMBase::GetName( myObj ) ); processObject(); displayPreview(); } @@ -237,7 +209,7 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::SetEditCurrentArgument() void MeasureGUI_CheckCompoundOfBlocksDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if (send == myGrp->LineEdit1) { + if ( send == myGrp->LineEdit1 ) { myEditCurrentArgument = myGrp->LineEdit1; GEOMBase_Skeleton::LineEditReturnPressed(); } @@ -252,8 +224,8 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::ActivateThisDialog() GEOMBase_Skeleton::ActivateThisDialog(); LightApp_SelectionMgr* aSel = myGeomGUI->getApp()->selectionMgr(); - if (aSel) - connect(aSel, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + if ( aSel ) + connect( aSel, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); activateSelection(); displayPreview(); @@ -268,17 +240,14 @@ bool MeasureGUI_CheckCompoundOfBlocksDlg::getBCErrors( bool& theIsCompoundOfBloc { if ( myObj->_is_nil() ) return false; - else - { - try - { + else { + try { GEOM::GEOM_IBlocksOperations::BCErrors_var aErrs; theIsCompoundOfBlocks = GEOM::GEOM_IBlocksOperations::_narrow( getOperation() )->CheckCompoundOfBlocks( myObj, aErrs ); theErrors = aErrs; } - catch( const SALOME::SALOME_Exception& e ) - { + catch ( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); return false; } @@ -293,28 +262,28 @@ bool MeasureGUI_CheckCompoundOfBlocksDlg::getBCErrors( bool& theIsCompoundOfBloc //================================================================================= void MeasureGUI_CheckCompoundOfBlocksDlg::processObject() { - QString aMsg (""); + QString aMsg ( "" ); bool isCompoundOfBlocks; GEOM::GEOM_IBlocksOperations::BCErrors aErrs; - if ( !getBCErrors( isCompoundOfBlocks, aErrs ) ) - { - myGrp->TextEdit1->setText( aMsg ); - myErrorsLBox->clear(); - mySubShapesLBox->clear(); + if ( !getBCErrors( isCompoundOfBlocks, aErrs ) ) { + myGrp->TextView1->setText( aMsg ); + myGrp->ListBox1->clear(); + myGrp->ListBox2->clear(); erasePreview(); return; } - if (isCompoundOfBlocks) { + if ( isCompoundOfBlocks ) { aMsg += tr( "GEOM_CHECK_BLOCKS_COMPOUND_HAS_NO_ERRORS" ); - buttonOk->setEnabled(false); - buttonApply->setEnabled(false); - } else { + buttonOk()->setEnabled( false ); + buttonApply()->setEnabled( false ); + } + else { aMsg += tr( "GEOM_CHECK_BLOCKS_COMPOUND_HAS_ERRORS" ); - buttonOk->setEnabled(true); - buttonApply->setEnabled(true); + buttonOk()->setEnabled( true ); + buttonApply()->setEnabled( true ); } - myGrp->TextEdit1->setText(aMsg); + myGrp->TextView1->setText( aMsg ); QStringList aErrList; QString aErrStr( "" ); @@ -322,11 +291,9 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::processObject() QString aGluedSfx( " # " ); int aConNum = 1; int aGluedNum = 1; - for ( int i = 0, n = aErrs.length(); i < n; i++ ) - { + for ( int i = 0, n = aErrs.length(); i < n; i++ ) { aErrStr = ""; - switch ( aErrs[i].error ) - { + switch ( aErrs[i].error ) { case GEOM::GEOM_IBlocksOperations::NOT_BLOCK : aErrStr = "Not a Block"; break; @@ -336,7 +303,7 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::processObject() case GEOM::GEOM_IBlocksOperations::INVALID_CONNECTION : aErrStr = "Invalid Connection"; aErrStr += aConSfx; - aErrStr += QString::number(aConNum); + aErrStr += QString::number( aConNum ); aConNum++; break; case GEOM::GEOM_IBlocksOperations::NOT_CONNECTED : @@ -345,7 +312,7 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::processObject() case GEOM::GEOM_IBlocksOperations::NOT_GLUED : aErrStr = "Not Glued"; aErrStr += aGluedSfx; - aErrStr += QString::number(aGluedNum); + aErrStr += QString::number( aGluedNum ); aGluedNum++; break; default : @@ -353,12 +320,12 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::processObject() break; } if ( !aErrStr.isEmpty() ) - aErrList.append(aErrStr); + aErrList.append( aErrStr ); } - myErrorsLBox->clear(); - mySubShapesLBox->clear(); - myErrorsLBox->insertStringList(aErrList); + myGrp->ListBox1->clear(); + myGrp->ListBox2->clear(); + myGrp->ListBox1->addItems( aErrList ); } //================================================================================= @@ -367,7 +334,7 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::processObject() //================================================================================= GEOM::GEOM_IOperations_ptr MeasureGUI_CheckCompoundOfBlocksDlg::createOperation() { - return getGeomEngine()->GetIBlocksOperations(getStudyId()); + return getGeomEngine()->GetIBlocksOperations( getStudyId() ); } //================================================================================= @@ -377,16 +344,15 @@ GEOM::GEOM_IOperations_ptr MeasureGUI_CheckCompoundOfBlocksDlg::createOperation( void MeasureGUI_CheckCompoundOfBlocksDlg::onErrorsListSelectionChanged() { erasePreview(); - int aCurItem = myErrorsLBox->currentItem(); + int aCurItem = myGrp->ListBox1->currentRow(); if ( aCurItem < 0 ) return; bool isCompoundOfBlocks; GEOM::GEOM_IBlocksOperations::BCErrors aErrs; - if ( !getBCErrors( isCompoundOfBlocks, aErrs ) ) - { - myGrp->TextEdit1->setText( "" ); - myErrorsLBox->clear(); - mySubShapesLBox->clear(); + if ( !getBCErrors( isCompoundOfBlocks, aErrs ) ) { + myGrp->TextView1->setText( "" ); + myGrp->ListBox1->clear(); + myGrp->ListBox2->clear(); return; } @@ -396,23 +362,21 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::onErrorsListSelectionChanged() TopoDS_Shape aSubShape; TopTools_IndexedMapOfShape anIndices; QStringList aSubShapeList; - QString aSubShapeName(""); + QString aSubShapeName( "" ); Standard_CString aTypeString; - if ( !myObj->_is_nil() && GEOMBase::GetShape( myObj, aSelShape ) ) - { + if ( !myObj->_is_nil() && GEOMBase::GetShape( myObj, aSelShape ) ) { TopExp::MapShapes( aSelShape, anIndices); - for ( int i = 0, n = aObjLst.length(); i < n; i++ ) - { + for ( int i = 0, n = aObjLst.length(); i < n; i++ ) { aSubShapeName = ""; aSubShape = anIndices.FindKey(aObjLst[i]); if ( GEOMBase::GetShapeTypeString( aSubShape, aTypeString ) ) - aSubShapeName = QString(aTypeString) + QString("_") + QString::number(aObjLst[i]); + aSubShapeName = QString( aTypeString ) + QString( "_" ) + QString::number( aObjLst[i] ); if ( !aSubShapeName.isEmpty() ) - aSubShapeList.append(aSubShapeName); + aSubShapeList.append( aSubShapeName ); } } - mySubShapesLBox->clear(); - mySubShapesLBox->insertStringList(aSubShapeList); + myGrp->ListBox2->clear(); + myGrp->ListBox2->addItems( aSubShapeList ); } //================================================================================= @@ -422,24 +386,22 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::onErrorsListSelectionChanged() void MeasureGUI_CheckCompoundOfBlocksDlg::onSubShapesListSelectionChanged() { erasePreview(); - int aErrCurItem = myErrorsLBox->currentItem(); + int aErrCurItem = myGrp->ListBox1->currentRow(); if ( aErrCurItem < 0 ) return; - QValueList aIds; - for ( int i = 0, n = mySubShapesLBox->count(); i < n; i++ ) - { - if ( mySubShapesLBox->isSelected( i ) ) + QList aIds; + for ( int i = 0, n = myGrp->ListBox2->count(); i < n; i++ ) { + if ( myGrp->ListBox2->item( i )->isSelected() ) aIds.append( i ); } if ( aIds.count() < 1 ) return; bool isCompoundOfBlocks; GEOM::GEOM_IBlocksOperations::BCErrors aErrs; - if ( !getBCErrors( isCompoundOfBlocks, aErrs ) ) - { - myGrp->TextEdit1->setText( "" ); - myErrorsLBox->clear(); - mySubShapesLBox->clear(); + if ( !getBCErrors( isCompoundOfBlocks, aErrs ) ) { + myGrp->TextView1->setText( "" ); + myGrp->ListBox1->clear(); + myGrp->ListBox2->clear(); return; } @@ -448,21 +410,17 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::onSubShapesListSelectionChanged() TopoDS_Shape aSelShape; TopoDS_Shape aSubShape; TopTools_IndexedMapOfShape anIndices; - if ( !myObj->_is_nil() && GEOMBase::GetShape( myObj, aSelShape ) ) - { + if ( !myObj->_is_nil() && GEOMBase::GetShape( myObj, aSelShape ) ) { QString aMess; - if ( !isValid( aMess ) ) - { + if ( !isValid( aMess ) ) { return; } SALOME_Prs* aPrs = 0; TopExp::MapShapes( aSelShape, anIndices); - QValueList::iterator it; - for ( it = aIds.begin(); it != aIds.end(); ++it ) - { + QList::iterator it; + for ( it = aIds.begin(); it != aIds.end(); ++it ) { aSubShape = anIndices.FindKey(aObjLst[(*it)]); - try - { + try { getDisplayer()->SetColor( Quantity_NOC_RED ); getDisplayer()->SetWidth( 3 ); getDisplayer()->SetToActivate( false ); @@ -470,8 +428,7 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::onSubShapesListSelectionChanged() if ( aPrs ) displayPreview( aPrs, true ); } - catch( const SALOME::SALOME_Exception& e ) - { + catch ( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); } } @@ -494,9 +451,9 @@ void MeasureGUI_CheckCompoundOfBlocksDlg::activateSelection() // function : enterEvent() // purpose : //================================================================================= -void MeasureGUI_CheckCompoundOfBlocksDlg::enterEvent(QEvent* e) +void MeasureGUI_CheckCompoundOfBlocksDlg::enterEvent( QEvent* ) { - if (!GroupConstructors->isEnabled()) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -517,10 +474,10 @@ bool MeasureGUI_CheckCompoundOfBlocksDlg::execute( ObjectList& objects ) { GEOM::GEOM_Object_var anObj; - anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())->CheckAndImprove(myObj); + anObj = GEOM::GEOM_IBlocksOperations::_narrow( getOperation() )->CheckAndImprove( myObj ); - if (!anObj->_is_nil()) - objects.push_back(anObj._retn()); + if ( !anObj->_is_nil() ) + objects.push_back( anObj._retn() ); return true; } diff --git a/src/MeasureGUI/MeasureGUI_CheckCompoundOfBlocksDlg.h b/src/MeasureGUI/MeasureGUI_CheckCompoundOfBlocksDlg.h index 58c1b2749..4de051f6e 100644 --- a/src/MeasureGUI/MeasureGUI_CheckCompoundOfBlocksDlg.h +++ b/src/MeasureGUI/MeasureGUI_CheckCompoundOfBlocksDlg.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,70 +17,60 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_CheckCompoundOfBlocksDlg.h +// Author : Vladimir KLYACHIN, Open CASCADE S.A.S. (vladimir.klyachin@opencascade.com) // -// -// File : MeasureGUI_CheckCompoundOfBlocksDlg.h -// Author : VKN -// Module : GEOM +#ifndef MEASUREGUI_CHECKCOMPOUNDOFBLOCKSDLG_H +#define MEASUREGUI_CHECKCOMPOUNDOFBLOCKSDLG_H -#ifndef DIALOGBOX_CHECKCOMPOUNDOFBLOCKSDLG_H -#define DIALOGBOX_CHECKCOMPOUNDOFBLOCKSDLG_H +#include -#include "GEOM_MeasureGUI.hxx" - -#include "GEOMBase_Skeleton.h" - -class MeasureGUI_1Sel1TextView_QTD; -class QListBox; -class QLabel; +class MeasureGUI_1Sel1TextView2ListBox; //================================================================================= // class : MeasureGUI_CheckCompoundOfBlocksDlg // purpose : //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_CheckCompoundOfBlocksDlg : public GEOMBase_Skeleton + +class MeasureGUI_CheckCompoundOfBlocksDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - MeasureGUI_CheckCompoundOfBlocksDlg(GeometryGUI* GUI, QWidget* theParent); - ~MeasureGUI_CheckCompoundOfBlocksDlg(); - + MeasureGUI_CheckCompoundOfBlocksDlg( GeometryGUI*, QWidget* ); + ~MeasureGUI_CheckCompoundOfBlocksDlg(); + protected: - // redefined from GEOMBase_Helper and GEOMBase_Skeleton - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); - virtual void processObject(); + // redefined from GEOMBase_Helper and GEOMBase_Skeleton + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void processObject(); private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - - void onErrorsListSelectionChanged(); - void onSubShapesListSelectionChanged(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + + void onErrorsListSelectionChanged(); + void onSubShapesListSelectionChanged(); + +private: + void Init(); + void enterEvent( QEvent* ); + bool getBCErrors( bool&, + GEOM::GEOM_IBlocksOperations::BCErrors& ); + void activateSelection(); private: - void Init(); - void enterEvent( QEvent* e ); - bool getBCErrors( bool& theIsCompoundOfBlocks, - GEOM::GEOM_IBlocksOperations::BCErrors& theErrors); - void activateSelection(); - -private: - GEOM::GEOM_Object_var myObj; - MeasureGUI_1Sel1TextView_QTD* myGrp; - - QLabel* myErrorsLbl; - QListBox* myErrorsLBox; - QLabel* mySubShapesLbl; - QListBox* mySubShapesLBox; + GEOM::GEOM_Object_var myObj; + MeasureGUI_1Sel1TextView2ListBox* myGrp; }; -#endif // DIALOGBOX_CHECKCOMPOUNDOFBLOCKSDLG_H +#endif // MEASUREGUI_CHECKCOMPOUNDOFBLOCKSDLG_H diff --git a/src/MeasureGUI/MeasureGUI_CheckShapeDlg.cxx b/src/MeasureGUI/MeasureGUI_CheckShapeDlg.cxx index 8d78176f4..9fd3c2228 100644 --- a/src/MeasureGUI/MeasureGUI_CheckShapeDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_CheckShapeDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,81 +19,56 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_CheckShapeDlg.cxx +// Author : Nicolas REJNERI, Open CASCADE S.A.S. // -// -// File : MeasureGUI_CheckShapeDlg.cxx -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - #include "MeasureGUI_CheckShapeDlg.h" +#include "MeasureGUI_Widgets.h" -#include "utilities.h" -#include "SUIT_Session.h" -#include "SalomeApp_Tools.h" - -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include #define TEXTEDIT_FONT_FAMILY "Courier" #define TEXTEDIT_FONT_SIZE 11 -MeasureGUI_1Sel1TextView1Check_QTD::MeasureGUI_1Sel1TextView1Check_QTD(QWidget* parent, - const char* name, WFlags fl) - : MeasureGUI_1Sel1TextView_QTD(parent, name, fl) -{ - CheckBoxGeom = new QCheckBox(GroupBox1, "CheckBoxGeom"); - CheckBoxGeom->setText(tr("CHECK_SHAPE_GEOMETRY")); - Layout1->addMultiCellWidget(CheckBoxGeom, 2, 2, 0, 2); - - CheckBoxGeom->setChecked(false); -} - -MeasureGUI_1Sel1TextView1Check_QTD::~MeasureGUI_1Sel1TextView1Check_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - //================================================================================= // class : MeasureGUI_CheckShapeDlg() // purpose : Constructs a MeasureGUI_CheckShapeDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. +// true to construct a modal dialog. //================================================================================= MeasureGUI_CheckShapeDlg::MeasureGUI_CheckShapeDlg( GeometryGUI* GUI, QWidget* parent ) -: MeasureGUI_Skeleton( GUI, parent, "MeasureGUI_CheckShapeDlg" ) + : MeasureGUI_Skeleton( GUI, parent ) { QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_DLG_CHECKSHAPE" ) ) ); + "GEOM", tr( "ICON_DLG_CHECKSHAPE" ) ) ); QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_SELECT" ) ) ); + "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption( tr( "GEOM_CHECK_TITLE" ) ); + setWindowTitle( tr( "GEOM_CHECK_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle( tr( "GEOM_CHECK_SHAPE" ) ); - RadioButton1->setPixmap( image0 ); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_CHECK_SHAPE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); - myGrp = new MeasureGUI_1Sel1TextView1Check_QTD( this, "myGrp" ); + myGrp = new MeasureGUI_1Sel1TextView1Check( centralWidget() ); myGrp->GroupBox1->setTitle( tr( "GEOM_CHECK_INFOS" ) ); myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) ); - myGrp->TextEdit1->setReadOnly( TRUE ); + myGrp->TextView1->setReadOnly( true ); QFont aFont( TEXTEDIT_FONT_FAMILY, TEXTEDIT_FONT_SIZE ); aFont.setStyleHint( QFont::TypeWriter, QFont::PreferAntialias ); - myGrp->TextEdit1->setFont( aFont ); - myGrp->PushButton1->setPixmap( image1 ); + myGrp->TextView1->setFont( aFont ); + myGrp->PushButton1->setIcon( image1 ); myGrp->LineEdit1->setReadOnly( true ); - Layout1->addWidget( myGrp, 1, 0 ); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp ); /***************************************************************/ @@ -122,8 +97,8 @@ void MeasureGUI_CheckShapeDlg::Init() mySelEdit = myGrp->LineEdit1; MeasureGUI_Skeleton::Init(); - connect(myGrp->CheckBoxGeom, SIGNAL(toggled(bool)), - this, SLOT(SelectionIntoArgument())); + connect( myGrp->CheckBox1, SIGNAL( toggled( bool) ), + this, SLOT( SelectionIntoArgument() ) ); } //================================================================================= @@ -134,22 +109,19 @@ bool MeasureGUI_CheckShapeDlg::getParameters ( bool& theIsValid, QString& theMsg { if ( myObj->_is_nil() ) return false; - else - { - try - { + else { + try { char* aMsg; - bool isCheckGeometry = myGrp->CheckBoxGeom->isChecked(); + bool isCheckGeometry = myGrp->CheckBox1->isChecked(); GEOM::GEOM_IMeasureOperations_ptr aMeasureOp = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() ); - if (isCheckGeometry) - theIsValid = aMeasureOp->CheckShapeWithGeometry(myObj, aMsg); + if ( isCheckGeometry ) + theIsValid = aMeasureOp->CheckShapeWithGeometry( myObj, aMsg ); else - theIsValid = aMeasureOp->CheckShape(myObj, aMsg); + theIsValid = aMeasureOp->CheckShape( myObj, aMsg ); theMsg = aMsg; } - catch( const SALOME::SALOME_Exception& e ) - { + catch( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); return false; } @@ -167,18 +139,18 @@ void MeasureGUI_CheckShapeDlg::processObject() { bool isShapeValid; QString aMsg; - if ( !getParameters( isShapeValid, aMsg ) ) - { - myGrp->TextEdit1->setText( "" ); + if ( !getParameters( isShapeValid, aMsg ) ) { + myGrp->TextView1->setText( "" ); return; } - if (isShapeValid) { - myGrp->TextEdit1->setText("This Shape seems to be valid."); - } else { - QString aDescr ("This Shape is not valid.\n"); + if ( isShapeValid ) { + myGrp->TextView1->setText( "This Shape seems to be valid." ); + } + else { + QString aDescr ( "This Shape is not valid.\n" ); aDescr += aMsg; - myGrp->TextEdit1->setText(aDescr); -// myGrp->TextEdit1->setText("This Shape is not valid."); + myGrp->TextView1->setText( aDescr ); +// myGrp->TextView1->setText("This Shape is not valid."); } } diff --git a/src/MeasureGUI/MeasureGUI_CheckShapeDlg.h b/src/MeasureGUI/MeasureGUI_CheckShapeDlg.h index ba89aff2b..5a1619bd2 100644 --- a/src/MeasureGUI/MeasureGUI_CheckShapeDlg.h +++ b/src/MeasureGUI/MeasureGUI_CheckShapeDlg.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,59 +19,39 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_CheckShapeDlg.h +// Author : Nicolas REJNERI, Open CASCADE S.A.S. // -// -// File : MeasureGUI_CheckShapeDlg.h -// Author : Nicolas REJNERI -// Module : GEOM - -#ifndef DIALOGBOX_CHECKSHAPEDLG_H -#define DIALOGBOX_CHECKSHAPEDLG_H - -#include "GEOM_MeasureGUI.hxx" +#ifndef MEASUREGUI_CHECKSHAPEDLG_H +#define MEASUREGUI_CHECKSHAPEDLG_H #include "MeasureGUI_Skeleton.h" -#include "MeasureGUI_1Sel1TextView_QTD.h" -class QCheckBox; - -//================================================================================= -// class : MeasureGUI_1Sel1TextView1Check_QTD -// purpose : -//================================================================================= -class MeasureGUI_1Sel1TextView1Check_QTD : public MeasureGUI_1Sel1TextView_QTD -{ - Q_OBJECT - -public: - MeasureGUI_1Sel1TextView1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~MeasureGUI_1Sel1TextView1Check_QTD(); - - QCheckBox* CheckBoxGeom; -}; +class MeasureGUI_1Sel1TextView1Check; //================================================================================= // class : MeasureGUI_CheckShapeDlg // purpose : //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_CheckShapeDlg : public MeasureGUI_Skeleton +class MeasureGUI_CheckShapeDlg : public MeasureGUI_Skeleton { - Q_OBJECT + Q_OBJECT public: - MeasureGUI_CheckShapeDlg(GeometryGUI* GUI, QWidget* parent); - ~MeasureGUI_CheckShapeDlg(); + MeasureGUI_CheckShapeDlg( GeometryGUI*, QWidget* ); + ~MeasureGUI_CheckShapeDlg(); protected: - // redefined from GEOMBase_Helper and MeasureGUI_Skeleton - virtual void processObject(); + // redefined from GEOMBase_Helper and MeasureGUI_Skeleton + virtual void processObject(); private: - void Init(); - bool getParameters(bool& theIsValid, QString& theMsg); + void Init(); + bool getParameters( bool&, QString& ); private: - MeasureGUI_1Sel1TextView1Check_QTD* myGrp; + MeasureGUI_1Sel1TextView1Check* myGrp; }; -#endif // DIALOGBOX_CHECKSHAPEDLG_H +#endif // MEASUREGUI_CHECKSHAPEDLG_H diff --git a/src/MeasureGUI/MeasureGUI_DistanceDlg.cxx b/src/MeasureGUI/MeasureGUI_DistanceDlg.cxx index 2591b6981..a684ce804 100644 --- a/src/MeasureGUI/MeasureGUI_DistanceDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_DistanceDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,93 +19,84 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_DistanceDlg.cxx +// Author : Nicolas REJNERI, Open CASCADE S.A.S. // -// -// File : MeasureGUI_DistanceDlg.cxx -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - #include "MeasureGUI_DistanceDlg.h" -#include "MeasureGUI_2Sel4LineEdit_QTD.h" -#include "GEOMBase.h" -#include "GEOM_Displayer.h" -#include "DlgRef_SpinBox.h" +#include "MeasureGUI_Widgets.h" -#include "SUIT_Session.h" -#include "SUIT_ViewWindow.h" -#include "SOCC_Prs.h" -#include "SOCC_ViewModel.h" -#include "SalomeApp_Tools.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include -#include #include #include #include -#include #include #include -#include "utilities.h" - -#include -#include -#include -#include -#include -#include - //================================================================================= // class : MeasureGUI_DistanceDlg() // purpose : Constructs a MeasureGUI_DistanceDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. +// true to construct a modal dialog. //================================================================================= -MeasureGUI_DistanceDlg::MeasureGUI_DistanceDlg( GeometryGUI* GUI, QWidget* parent ) -: MeasureGUI_Skeleton( GUI, parent, "MeasureGUI_DistanceDlg" ) +MeasureGUI_DistanceDlg::MeasureGUI_DistanceDlg (GeometryGUI* GUI, QWidget* parent) + : MeasureGUI_Skeleton(GUI, parent) { - QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_DLG_MINDIST" ) ) ); - QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_SELECT" ) ) ); + SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); + QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_MINDIST"))); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption( tr( "GEOM_MINDIST_TITLE" ) ); + setWindowTitle(tr("GEOM_MINDIST_TITLE")); /***************************************************************/ - - GroupConstructors->setTitle( tr( "GEOM_DISTANCE" ) ); - RadioButton1->setPixmap( image0 ); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_DISTANCE")); + mainFrame()->RadioButton1->setIcon(image0); - myGrp = new MeasureGUI_2Sel4LineEdit_QTD( this, "myGrp" ); - myGrp->GroupBox1->setTitle( tr( "GEOM_MINDIST_OBJ" ) ); - myGrp->TextLabel1->setText( tr( "GEOM_OBJECT_I" ).arg( "1" ) ); - myGrp->TextLabel2->setText( tr( "GEOM_OBJECT_I" ).arg( "2" ) ); - myGrp->TextLabel3->setText( tr( "GEOM_LENGTH" ) ); - myGrp->TextLabel4->setText( tr( "GEOM_DX" ) ); - myGrp->TextLabel5->setText( tr( "GEOM_DY" ) ); - myGrp->TextLabel6->setText( tr( "GEOM_DZ" ) ); - myGrp->LineEdit3->setReadOnly( TRUE ); - myGrp->LineEdit4->setReadOnly( TRUE ); - myGrp->LineEdit5->setReadOnly( TRUE ); - myGrp->LineEdit6->setReadOnly( TRUE ); - myGrp->PushButton1->setPixmap( image1 ); - myGrp->PushButton2->setPixmap( image1 ); - myGrp->LineEdit1->setReadOnly( true ); - myGrp->LineEdit2->setReadOnly( true ); - - Layout1->addWidget( myGrp, 1, 0 ); + myGrp = new MeasureGUI_2Sel4LineEdit(centralWidget()); + myGrp->GroupBox1->setTitle(tr("GEOM_MINDIST_OBJ")); + myGrp->TextLabel1->setText(tr("GEOM_OBJECT_I").arg("1")); + myGrp->TextLabel2->setText(tr("GEOM_OBJECT_I").arg("2")); + myGrp->TextLabel3->setText(tr("GEOM_LENGTH")); + myGrp->TextLabel4->setText(tr("GEOM_DX")); + myGrp->TextLabel5->setText(tr("GEOM_DY")); + myGrp->TextLabel6->setText(tr("GEOM_DZ")); + myGrp->LineEdit3->setReadOnly(true); + myGrp->PushButton1->setIcon(image1); + myGrp->PushButton2->setIcon(image1); + myGrp->LineEdit1->setReadOnly(true); + myGrp->LineEdit2->setReadOnly(true); + myGrp->LineEdit4->setReadOnly(true); + myGrp->LineEdit5->setReadOnly(true); + myGrp->LineEdit6->setReadOnly(true); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(myGrp); /***************************************************************/ myHelpFileName = "using_measurement_tools_page.html#min_distance_anchor"; - /* Initialisation */ + // Initialisation Init(); } - //================================================================================= // function : ~MeasureGUI_DistanceDlg() // purpose : Destroys the object and frees any allocated resources @@ -114,44 +105,64 @@ MeasureGUI_DistanceDlg::~MeasureGUI_DistanceDlg() { } - //================================================================================= // function : Init() // purpose : //================================================================================= void MeasureGUI_DistanceDlg::Init() { + // init variables + myGrp->LineEdit1->setText(""); + myGrp->LineEdit2->setText(""); + myObj = myObj2 = GEOM::GEOM_Object::_nil(); + mySelBtn = myGrp->PushButton1; mySelEdit = myGrp->LineEdit1; - mySelBtn2 = myGrp->PushButton2; - mySelEdit2 = myGrp->LineEdit2; - myEditCurrentArgument = mySelEdit; + myEditCurrentArgument = myGrp->LineEdit1; - connect( mySelEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect( mySelBtn2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + // signals and slots connections + connect(myGrp->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(myGrp->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); MeasureGUI_Skeleton::Init(); } - //================================================================================= // function : SelectionIntoArgument() // purpose : Called when selection has changed //================================================================================= void MeasureGUI_DistanceDlg::SelectionIntoArgument() { - Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); - if ( !testResult ) - aSelectedObject = GEOM::GEOM_Object::_nil(); + GEOM::GEOM_Object_var aSelectedObject = GEOM::GEOM_Object::_nil(); - if ( myEditCurrentArgument == mySelEdit ) - myObj = aSelectedObject; - else - myObj2 = aSelectedObject; + if (aSelList.Extent() > 0) { + Standard_Boolean testResult = Standard_False; + aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (!testResult) + aSelectedObject = GEOM::GEOM_Object::_nil(); + } + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (myEditCurrentArgument == myGrp->LineEdit1) { + myObj = aSelectedObject; + if (!myObj->_is_nil() && myObj2->_is_nil()) + myGrp->PushButton2->click(); + } + else { + myObj2 = aSelectedObject; + if (!myObj2->_is_nil() && myObj->_is_nil()) + myGrp->PushButton1->click(); + } processObject(); } @@ -162,28 +173,26 @@ void MeasureGUI_DistanceDlg::SelectionIntoArgument() //================================================================================= void MeasureGUI_DistanceDlg::processObject() { - myGrp->LineEdit1->setText( !myObj->_is_nil() ? GEOMBase::GetName( myObj ) : "" ); - myGrp->LineEdit2->setText( !myObj2->_is_nil() ? GEOMBase::GetName( myObj2 ) : "" ); + myGrp->LineEdit1->setText(!myObj->_is_nil() ? GEOMBase::GetName(myObj ) : ""); + myGrp->LineEdit2->setText(!myObj2->_is_nil() ? GEOMBase::GetName(myObj2) : ""); gp_Pnt aPnt1, aPnt2; double aDist = 0.; - if (getParameters(aDist, aPnt1, aPnt2)) - { - myGrp->LineEdit3->setText( DlgRef_SpinBox::PrintDoubleValue( aDist ) ); + if (getParameters(aDist, aPnt1, aPnt2)) { + myGrp->LineEdit3->setText(DlgRef::PrintDoubleValue(aDist)); gp_XYZ aVec = aPnt2.XYZ() - aPnt1.XYZ(); - myGrp->LineEdit4->setText( DlgRef_SpinBox::PrintDoubleValue( aVec.X() ) ); - myGrp->LineEdit5->setText( DlgRef_SpinBox::PrintDoubleValue( aVec.Y() ) ); - myGrp->LineEdit6->setText( DlgRef_SpinBox::PrintDoubleValue( aVec.Z() ) ); + myGrp->LineEdit4->setText(DlgRef::PrintDoubleValue(aVec.X())); + myGrp->LineEdit5->setText(DlgRef::PrintDoubleValue(aVec.Y())); + myGrp->LineEdit6->setText(DlgRef::PrintDoubleValue(aVec.Z())); redisplayPreview(); } - else - { - myGrp->LineEdit3->setText( "" ); - myGrp->LineEdit4->setText( "" ); - myGrp->LineEdit5->setText( "" ); - myGrp->LineEdit6->setText( "" ); + else { + myGrp->LineEdit3->setText(""); + myGrp->LineEdit4->setText(""); + myGrp->LineEdit5->setText(""); + myGrp->LineEdit6->setText(""); erasePreview(); } } @@ -192,34 +201,30 @@ void MeasureGUI_DistanceDlg::processObject() // function : getParameters() // purpose : Get distance between objects //================================================================================= -bool MeasureGUI_DistanceDlg::getParameters( double& theDistance, +bool MeasureGUI_DistanceDlg::getParameters (double& theDistance, gp_Pnt& thePnt1, - gp_Pnt& thePnt2 ) + gp_Pnt& thePnt2) { QString msg; - if ( !isValid( msg ) ) - return false; - else - { - try - { + if (isValid(msg)) { + try { double x1, y1, z1, x2, y2, z2; - theDistance = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->GetMinDistance( - myObj, myObj2, x1, y1, z1, x2, y2, z2 ); + theDistance = GEOM::GEOM_IMeasureOperations::_narrow(getOperation())-> + GetMinDistance(myObj, myObj2, x1, y1, z1, x2, y2, z2); - thePnt1.SetCoord( x1, y1, z1 ); - thePnt2.SetCoord( x2, y2, z2 ); + thePnt1.SetCoord(x1, y1, z1); + thePnt2.SetCoord(x2, y2, z2); } - catch( const SALOME::SALOME_Exception& e ) - { - SalomeApp_Tools::QtCatchCorbaException( e ); + catch(const SALOME::SALOME_Exception& e) { + SalomeApp_Tools::QtCatchCorbaException(e); return false; } return getOperation()->IsDone(); } -} + return false; +} //================================================================================= // function : SetEditCurrentArgument() @@ -227,41 +232,51 @@ bool MeasureGUI_DistanceDlg::getParameters( double& theDistance, //================================================================================= void MeasureGUI_DistanceDlg::SetEditCurrentArgument() { - QPushButton* send = ( QPushButton* )sender(); + QPushButton* send = (QPushButton*)sender(); - if( send == mySelBtn ) - { - mySelEdit->setFocus(); - myEditCurrentArgument = mySelEdit; + if (send == myGrp->PushButton1) { + myEditCurrentArgument = myGrp->LineEdit1; + + myGrp->PushButton2->setDown(false); + myGrp->LineEdit2->setEnabled(false); } - else - { - mySelEdit2->setFocus(); - myEditCurrentArgument = mySelEdit2; + else { + myEditCurrentArgument = myGrp->LineEdit2; + + myGrp->PushButton1->setDown(false); + myGrp->LineEdit1->setEnabled(false); } - SelectionIntoArgument(); + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + redisplayPreview(); } - //================================================================================= // function : LineEditReturnPressed() // purpose : //================================================================================= void MeasureGUI_DistanceDlg::LineEditReturnPressed() { - QLineEdit* send = ( QLineEdit* )sender(); + QLineEdit* send = (QLineEdit*)sender(); - if( send == mySelEdit ) - myEditCurrentArgument = mySelEdit; - else - myEditCurrentArgument = mySelEdit2; + if (send == myGrp->LineEdit1 || send == myGrp->LineEdit2) { + myEditCurrentArgument = send; - if ( GEOMBase::SelectionByNameInDialogs( this, mySelEdit->text(), selectedIO() ) ) - mySelEdit->setText( mySelEdit->text() ); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (GEOMBase::SelectionByNameInDialogs(this, myGrp->LineEdit1->text(), aSelList)) + myGrp->LineEdit1->setText(myGrp->LineEdit1->text()); + } } - //================================================================================= // function : buildPrs() // purpose : @@ -269,61 +284,57 @@ void MeasureGUI_DistanceDlg::LineEditReturnPressed() SALOME_Prs* MeasureGUI_DistanceDlg::buildPrs() { double aDist = 0.; - gp_Pnt aPnt1( 0, 0, 0 ), aPnt2( 0, 0, 0 ); + gp_Pnt aPnt1(0, 0, 0), aPnt2(0, 0, 0); SUIT_ViewWindow* vw = SUIT_Session::session()->activeApplication()->desktop()->activeWindow(); - if ( myObj->_is_nil() || myObj2->_is_nil() || - !getParameters( aDist, aPnt1, aPnt2 ) || - vw->getViewManager()->getType() != OCCViewer_Viewer::Type() ) + if (myObj->_is_nil() || myObj2->_is_nil() || + !getParameters(aDist, aPnt1, aPnt2) || + vw->getViewManager()->getType() != OCCViewer_Viewer::Type()) return 0; try { - if( aDist <= 1.e-9 ) - { - BRepBuilderAPI_MakeVertex aMaker( aPnt1 ); - return getDisplayer()->BuildPrs( aMaker.Vertex() ); + if (aDist <= 1.e-9) { + BRepBuilderAPI_MakeVertex aMaker(aPnt1); + return getDisplayer()->BuildPrs(aMaker.Vertex()); } - else - { - BRepBuilderAPI_MakeEdge MakeEdge( aPnt1, aPnt2 ); - TopoDS_Vertex aVert1 = BRepBuilderAPI_MakeVertex( aPnt1 ); - TopoDS_Vertex aVert2 = BRepBuilderAPI_MakeVertex( aPnt2 ); + else { + BRepBuilderAPI_MakeEdge MakeEdge(aPnt1, aPnt2); + TopoDS_Vertex aVert1 = BRepBuilderAPI_MakeVertex(aPnt1); + TopoDS_Vertex aVert2 = BRepBuilderAPI_MakeVertex(aPnt2); QString aLabel; - aLabel.sprintf( "%.1f", aDist ); + aLabel.sprintf("%.1f", aDist); - gp_Pnt aPnt3( ( aPnt1.X() + aPnt2.X() ) / 2, - ( aPnt1.Y() + aPnt2.Y() ) / 2, - ( aPnt1.Z() + aPnt2.Z() ) / 2 + 100 ); + gp_Pnt aPnt3((aPnt1.X() + aPnt2.X()) / 2, + (aPnt1.Y() + aPnt2.Y()) / 2, + (aPnt1.Z() + aPnt2.Z()) / 2); - gp_Vec va( aPnt3, aPnt1 ); - gp_Vec vb( aPnt3, aPnt2 ); + gp_Vec va(aPnt3, aPnt1); + gp_Vec vb(aPnt3, aPnt2); - if ( va.IsParallel( vb, Precision::Angular() ) ) - { - aPnt3.SetY( ( aPnt1.Y() + aPnt2.Y() ) / 2 + 100 ); - aPnt3.SetZ( ( aPnt1.Z() + aPnt2.Z() ) / 2 ); + if (va.IsParallel(vb, Precision::Angular())) { + aPnt3.SetY((aPnt1.Y() + aPnt2.Y()) / 2 + 100); + aPnt3.SetZ((aPnt1.Z() + aPnt2.Z()) / 2); } - gce_MakePln gce_MP( aPnt1, aPnt2, aPnt3 ); - Handle( Geom_Plane ) P = new Geom_Plane( gce_MP.Value() ); + gce_MakePln gce_MP(aPnt1, aPnt2, aPnt3); + Handle(Geom_Plane) P = new Geom_Plane(gce_MP.Value()); - Handle( AIS_LengthDimension ) anIO = new AIS_LengthDimension - (aVert1, aVert2, P, aDist, TCollection_ExtendedString((Standard_CString)aLabel.latin1())); + Handle(AIS_LengthDimension) anIO = new AIS_LengthDimension( + aVert1, aVert2, P, aDist, TCollection_ExtendedString((Standard_CString)aLabel.toLatin1().constData())); + anIO->SetArrowSize(aDist/20); - SOCC_Prs* aPrs = - dynamic_cast( ((SOCC_Viewer*)(vw->getViewManager()->getViewModel()))->CreatePrs( 0 ) ); + SOCC_Prs* aPrs = dynamic_cast(((SOCC_Viewer*)(vw->getViewManager()->getViewModel()))->CreatePrs(0)); - if ( aPrs ) - aPrs->AddObject( anIO ); + if (aPrs) + aPrs->AddObject(anIO); return aPrs; } } - catch( Standard_Failure ) - { + catch(Standard_Failure) { return 0; } } @@ -332,7 +343,7 @@ SALOME_Prs* MeasureGUI_DistanceDlg::buildPrs() // function : isValid() // purpose : //================================================================================= -bool MeasureGUI_DistanceDlg::isValid( QString& msg ) +bool MeasureGUI_DistanceDlg::isValid (QString& msg) { - return MeasureGUI_Skeleton::isValid( msg ) && !myObj2->_is_nil(); + return MeasureGUI_Skeleton::isValid(msg) && !myObj2->_is_nil(); } diff --git a/src/MeasureGUI/MeasureGUI_DistanceDlg.h b/src/MeasureGUI/MeasureGUI_DistanceDlg.h index 43202a187..08f00cdbc 100644 --- a/src/MeasureGUI/MeasureGUI_DistanceDlg.h +++ b/src/MeasureGUI/MeasureGUI_DistanceDlg.h @@ -1,78 +1,70 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_DistanceDlg.h +// Author : Nicolas REJNERI, Open CASCADE S.A.S. // -// -// File : MeasureGUI_DistanceDlg.h -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - -#ifndef DIALOGBOX_DISTANCE_H -#define DIALOGBOX_DISTANCE_H - -#include "GEOM_MeasureGUI.hxx" +#ifndef MEASUREGUI_DISTANCEDLG_H +#define MEASUREGUI_DISTANCEDLG_H #include "MeasureGUI_Skeleton.h" -class MeasureGUI_2Sel4LineEdit_QTD; +class MeasureGUI_2Sel4LineEdit; class gp_Pnt; //================================================================================= // class : MeasureGUI_DistanceDlg // purpose : //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_DistanceDlg : public MeasureGUI_Skeleton + +class MeasureGUI_DistanceDlg : public MeasureGUI_Skeleton { - Q_OBJECT - + Q_OBJECT + public: - MeasureGUI_DistanceDlg( GeometryGUI* GUI, - QWidget* parent ); - ~MeasureGUI_DistanceDlg(); + MeasureGUI_DistanceDlg( GeometryGUI*, QWidget* ); + ~MeasureGUI_DistanceDlg(); + protected: - - // redefined from GEOMBase_Helper and MeasureGUI_Skeleton - virtual void processObject(); - virtual SALOME_Prs* buildPrs(); - virtual void SelectionIntoArgument(); - virtual void LineEditReturnPressed(); - virtual void SetEditCurrentArgument(); - virtual bool isValid( QString& msg ); + // redefined from GEOMBase_Helper and MeasureGUI_Skeleton + virtual void processObject(); + virtual SALOME_Prs* buildPrs(); + virtual void SelectionIntoArgument(); + virtual void LineEditReturnPressed(); + virtual void SetEditCurrentArgument(); + virtual bool isValid( QString& ); private: - - void Init(); - bool getParameters( double& theDistance, - gp_Pnt& thePnt1, - gp_Pnt& thePnt2 ); + void Init(); + bool getParameters( double&, + gp_Pnt&, + gp_Pnt& ); private: - - QLineEdit* myEditCurrentArgument; - QLineEdit* mySelEdit2; - QPushButton* mySelBtn2; - - MeasureGUI_2Sel4LineEdit_QTD* myGrp; - GEOM::GEOM_Object_var myObj2; - + QLineEdit* myEditCurrentArgument; + QLineEdit* mySelEdit2; + QPushButton* mySelBtn2; + + MeasureGUI_2Sel4LineEdit* myGrp; + GEOM::GEOM_Object_var myObj2; }; -#endif // DIALOGBOX_DISTANCE_H +#endif // MEASUREGUI_DISTANCEDLG_H diff --git a/src/MeasureGUI/MeasureGUI_InertiaDlg.cxx b/src/MeasureGUI/MeasureGUI_InertiaDlg.cxx index 8caa6f25a..2ff5495be 100644 --- a/src/MeasureGUI/MeasureGUI_InertiaDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_InertiaDlg.cxx @@ -1,98 +1,87 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_InertiaDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : MeasureGUI_InertiaDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM - #include "MeasureGUI_InertiaDlg.h" -#include "MeasureGUI_1Sel12LineEdit_QTD.h" +#include "MeasureGUI_Widgets.h" -#include "GEOMBase.h" +#include -#include -#include -#include #include -#include -#include "utilities.h" -#include "SUIT_Session.h" -#include "SalomeApp_Tools.h" - -#include -#include -#include -#include -#include -#include +#include +#include +#include //================================================================================= // class : MeasureGUI_InertiaDlg() // purpose : Constructs a MeasureGUI_InertiaDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. +// true to construct a modal dialog. //================================================================================= MeasureGUI_InertiaDlg::MeasureGUI_InertiaDlg( GeometryGUI* GUI, QWidget* parent ) -: MeasureGUI_Skeleton( GUI, parent, "MeasureGUI_InertiaDlg" ) + : MeasureGUI_Skeleton( GUI, parent ) { QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM",tr( "ICON_DLG_INERTIA" ) ) ); QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM",tr( "ICON_SELECT" ) ) ); - setCaption( tr( "GEOM_INERTIA_TITLE" ) ); + setWindowTitle( tr( "GEOM_INERTIA_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle( tr( "GEOM_INERTIA_CONSTR" ) ); - RadioButton1->setPixmap( image0 ); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_INERTIA_CONSTR" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); - myGrp = new MeasureGUI_1Sel12LineEdit_QTD( this, "myGrp" ); + myGrp = new MeasureGUI_1Sel12LineEdit( centralWidget() ); myGrp->GroupBox1->setTitle( tr( "GEOM_MATRIX" ) ); myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) ); myGrp->TextLabel2->setText( tr( "GEOM_INERTIA_I" ).arg( "1" ) ); myGrp->TextLabel3->setText( tr( "GEOM_INERTIA_I" ).arg( "2" ) ); myGrp->TextLabel4->setText( tr( "GEOM_INERTIA_I" ).arg( "3" ) ); myGrp->TextLabel5->setText( tr( "GEOM_INERTIA_IXYZ" ) ); - myGrp->LineEdit11->setReadOnly( TRUE ); - myGrp->LineEdit12->setReadOnly( TRUE ); - myGrp->LineEdit13->setReadOnly( TRUE ); - myGrp->LineEdit21->setReadOnly( TRUE ); - myGrp->LineEdit22->setReadOnly( TRUE ); - myGrp->LineEdit23->setReadOnly( TRUE ); - myGrp->LineEdit31->setReadOnly( TRUE ); - myGrp->LineEdit32->setReadOnly( TRUE ); - myGrp->LineEdit33->setReadOnly( TRUE ); - myGrp->LineEdit41->setReadOnly( TRUE ); - myGrp->LineEdit42->setReadOnly( TRUE ); - myGrp->LineEdit43->setReadOnly( TRUE ); - myGrp->PushButton1->setPixmap( image1 ); + myGrp->LineEdit11->setReadOnly( true ); + myGrp->LineEdit12->setReadOnly( true ); + myGrp->LineEdit13->setReadOnly( true ); + myGrp->LineEdit21->setReadOnly( true ); + myGrp->LineEdit22->setReadOnly( true ); + myGrp->LineEdit23->setReadOnly( true ); + myGrp->LineEdit31->setReadOnly( true ); + myGrp->LineEdit32->setReadOnly( true ); + myGrp->LineEdit33->setReadOnly( true ); + myGrp->LineEdit41->setReadOnly( true ); + myGrp->LineEdit42->setReadOnly( true ); + myGrp->LineEdit43->setReadOnly( true ); + myGrp->PushButton1->setIcon( image1 ); myGrp->LineEdit1->setReadOnly( true ); - Layout1->addWidget( myGrp, 1, 0 ); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp ); /***************************************************************/ @@ -132,8 +121,7 @@ void MeasureGUI_InertiaDlg::processObject() gp_XYZ anIXYZ; gp_Mat aMat; - if ( !getParameters( aMat, anIXYZ ) ) - { + if ( !getParameters( aMat, anIXYZ ) ) { mySelEdit->setText( "" ); myGrp->LineEdit11->setText( "" ); @@ -152,8 +140,7 @@ void MeasureGUI_InertiaDlg::processObject() myGrp->LineEdit42->setText( "" ); myGrp->LineEdit43->setText( "" ); } - else - { + else { myGrp->LineEdit11->setText( QString( "%1" ).arg( aMat( 1, 1 ), 12, 'e', 4 ) ); myGrp->LineEdit12->setText( QString( "%1" ).arg( aMat( 1, 2 ), 12, 'e', 4 ) ); myGrp->LineEdit13->setText( QString( "%1" ).arg( aMat( 1, 3 ), 12, 'e', 4 ) ); @@ -181,10 +168,8 @@ bool MeasureGUI_InertiaDlg::getParameters( gp_Mat& I, { if ( myObj->_is_nil() ) return false; - else - { - try - { + else { + try { double x, y, z; GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->GetInertia( myObj, I( 1, 1 ), I( 1, 2 ), I( 1, 3 ), @@ -194,8 +179,7 @@ bool MeasureGUI_InertiaDlg::getParameters( gp_Mat& I, theIXYZ.SetCoord( x, y, z ); } - catch( const SALOME::SALOME_Exception& e ) - { + catch ( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); return false; } diff --git a/src/MeasureGUI/MeasureGUI_InertiaDlg.h b/src/MeasureGUI/MeasureGUI_InertiaDlg.h index 0905d5219..1187fa569 100644 --- a/src/MeasureGUI/MeasureGUI_InertiaDlg.h +++ b/src/MeasureGUI/MeasureGUI_InertiaDlg.h @@ -1,39 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : MeasureGUI_InertiaDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - -#ifndef DIALOGBOX_INERTIA_H -#define DIALOGBOX_INERTIA_H - -#include "GEOM_MeasureGUI.hxx" +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_InertiaDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef MEASUREGUI_INERTIADLG_H +#define MEASUREGUI_INERTIADLG_H #include "MeasureGUI_Skeleton.h" -class MeasureGUI_1Sel12LineEdit_QTD; +class MeasureGUI_1Sel12LineEdit; class gp_XYZ; class gp_Mat; @@ -42,28 +37,24 @@ class gp_Mat; // purpose : Dialog for displaying moment of inertia //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_InertiaDlg : public MeasureGUI_Skeleton +class MeasureGUI_InertiaDlg : public MeasureGUI_Skeleton { - Q_OBJECT - -public: - MeasureGUI_InertiaDlg( GeometryGUI* GUI, - QWidget* parent ); - ~MeasureGUI_InertiaDlg(); -protected: - - // redefined from GEOMBase_Helper and MeasureGUI_Skeleton - virtual void processObject(); - -private: - - void Init(); - bool getParameters( gp_Mat& theMatrix, - gp_XYZ& theMoment ); - -private: + Q_OBJECT - MeasureGUI_1Sel12LineEdit_QTD* myGrp; +public: + MeasureGUI_InertiaDlg( GeometryGUI*, QWidget* ); + ~MeasureGUI_InertiaDlg(); + +protected: + // redefined from GEOMBase_Helper and MeasureGUI_Skeleton + virtual void processObject(); + +private: + void Init(); + bool getParameters( gp_Mat&, gp_XYZ& ); + +private: + MeasureGUI_1Sel12LineEdit* myGrp; }; -#endif // DIALOGBOX_INERTIA_H +#endif // MEASUREGUI_INERTIADLG_H diff --git a/src/MeasureGUI/MeasureGUI_MaxToleranceDlg.cxx b/src/MeasureGUI/MeasureGUI_MaxToleranceDlg.cxx index 5d364c386..59630ab7d 100644 --- a/src/MeasureGUI/MeasureGUI_MaxToleranceDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_MaxToleranceDlg.cxx @@ -1,68 +1,58 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_MaxToleranceDlg.cxx +// Author : Nicolas REJNERI, Open CASCADE S.A.S. // -// -// File : MeasureGUI_MaxToleranceDlg.cxx -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - #include "MeasureGUI_MaxToleranceDlg.h" -#include "MeasureGUI_1Sel6LineEdit_QTD.h" +#include "MeasureGUI_Widgets.h" -#include "utilities.h" -#include "SUIT_Session.h" -#include "SalomeApp_Tools.h" - -#include -#include -#include -#include -#include -#include +#include +#include +#include //================================================================================= // class : MeasureGUI_MaxToleranceDlg() // purpose : Constructs a MeasureGUI_MaxToleranceDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. +// true to construct a modal dialog. //================================================================================= MeasureGUI_MaxToleranceDlg::MeasureGUI_MaxToleranceDlg( GeometryGUI* GUI, QWidget* parent ) -: MeasureGUI_Skeleton( GUI, parent, "MeasureGUI_MaxToleranceDlg" ) + : MeasureGUI_Skeleton( GUI, parent ) { QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_DLG_TOLERANCE" ) ) ); + "GEOM", tr( "ICON_DLG_TOLERANCE" ) ) ); QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_SELECT" ) ) ); + "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption( tr( "GEOM_TOLERANCE_TITLE" ) ); + setWindowTitle( tr( "GEOM_TOLERANCE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle( tr( "GEOM_TOLERANCE" ) ); - RadioButton1->setPixmap( image0 ); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_TOLERANCE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); - myGrp = new MeasureGUI_1Sel6LineEdit_QTD( this, "myGrp" ); + myGrp = new MeasureGUI_1Sel6LineEdit( centralWidget() ); myGrp->GroupBox1->setTitle( tr( "GEOM_TOLERANCE_CONSTR" ) ); myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) ); myGrp->TextLabel2->setText( tr( "GEOM_MIN" ) ); @@ -70,16 +60,18 @@ MeasureGUI_MaxToleranceDlg::MeasureGUI_MaxToleranceDlg( GeometryGUI* GUI, QWidge myGrp->TextLabel4->setText( tr( "GEOM_TOLERANCE_FACE" ) ); myGrp->TextLabel5->setText( tr( "GEOM_TOLERANCE_EDGE" ) ); myGrp->TextLabel6->setText( tr( "GEOM_TOLERANCE_VERTEX" ) ); - myGrp->LineEdit11->setReadOnly( TRUE ); - myGrp->LineEdit12->setReadOnly( TRUE ); - myGrp->LineEdit21->setReadOnly( TRUE ); - myGrp->LineEdit22->setReadOnly( TRUE ); - myGrp->LineEdit31->setReadOnly( TRUE ); - myGrp->LineEdit32->setReadOnly( TRUE ); - myGrp->PushButton1->setPixmap( image1 ); + myGrp->LineEdit11->setReadOnly( true ); + myGrp->LineEdit12->setReadOnly( true ); + myGrp->LineEdit21->setReadOnly( true ); + myGrp->LineEdit22->setReadOnly( true ); + myGrp->LineEdit31->setReadOnly( true ); + myGrp->LineEdit32->setReadOnly( true ); + myGrp->PushButton1->setIcon( image1 ); myGrp->LineEdit1->setReadOnly( true ); - Layout1->addWidget( myGrp, 1, 0 ); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp ); /***************************************************************/ @@ -122,8 +114,7 @@ void MeasureGUI_MaxToleranceDlg::processObject() if ( !getParameters( aMinFaceToler, aMaxFaceToler, aMinEdgeToler, aMaxEdgeToler, - aMinVertexToler, aMaxVertexToler ) ) - { + aMinVertexToler, aMaxVertexToler ) ) { myGrp->LineEdit11->setText( "" ); myGrp->LineEdit12->setText( "" ); @@ -164,16 +155,13 @@ bool MeasureGUI_MaxToleranceDlg::getParameters( double& theMinFaceToler, { if ( myObj->_is_nil() ) return false; - else - { - try - { + else { + try { GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->GetTolerance( myObj, - theMinFaceToler, theMaxFaceToler, theMinEdgeToler, - theMaxEdgeToler, theMinVertexToler, theMaxVertexToler ); + theMinFaceToler, theMaxFaceToler, theMinEdgeToler, + theMaxEdgeToler, theMinVertexToler, theMaxVertexToler ); } - catch( const SALOME::SALOME_Exception& e ) - { + catch( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); return false; } diff --git a/src/MeasureGUI/MeasureGUI_MaxToleranceDlg.h b/src/MeasureGUI/MeasureGUI_MaxToleranceDlg.h index 1b36bca03..65ed53617 100644 --- a/src/MeasureGUI/MeasureGUI_MaxToleranceDlg.h +++ b/src/MeasureGUI/MeasureGUI_MaxToleranceDlg.h @@ -1,76 +1,61 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : MeasureGUI_MaxToleranceDlg.h -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - -#ifndef DIALOGBOX_MAXTOLERANCE_H -#define DIALOGBOX_MAXTOLERANCE_H - -#include "GEOM_MeasureGUI.hxx" +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_MaxToleranceDlg.h +// Author : Nicolas REJNERI, Open CASCADE S.A.S. +// +#ifndef MEASUREGUI_MAXTOLERANCEDLG_H +#define MEASUREGUI_MAXTOLERANCEDLG_H #include "MeasureGUI_Skeleton.h" -class MeasureGUI_1Sel6LineEdit_QTD; +class MeasureGUI_1Sel6LineEdit; //================================================================================= // class : DialogBox_PROPERTIES // purpose : //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_MaxToleranceDlg : public MeasureGUI_Skeleton +class MeasureGUI_MaxToleranceDlg : public MeasureGUI_Skeleton { - Q_OBJECT + Q_OBJECT public: - MeasureGUI_MaxToleranceDlg( GeometryGUI* GUI, - QWidget* parent ); - ~MeasureGUI_MaxToleranceDlg(); + MeasureGUI_MaxToleranceDlg( GeometryGUI*, QWidget* ); + ~MeasureGUI_MaxToleranceDlg(); protected: - - // redefined from GEOMBase_Helper and MeasureGUI_Skeleton - virtual void processObject(); + // redefined from GEOMBase_Helper and MeasureGUI_Skeleton + virtual void processObject(); private: - - void Init(); - bool getParameters( double& theMinFaceToler, - double& theMaxFaceToler, - double& theMinEdgeToler, - double& theMaxEdgeToler, - double& theMinVertexToler, - double& theMaxVertexToler ); - - - + void Init(); + bool getParameters( double&, double&, double&, + double&, double&, double& ); + private: - - MeasureGUI_1Sel6LineEdit_QTD* myGrp; + MeasureGUI_1Sel6LineEdit* myGrp; }; -#endif // DIALOGBOX_MAXTOLERANCE_H +#endif // MEASUREGUI_MAXTOLERANCEDLG_H diff --git a/src/MeasureGUI/MeasureGUI_NormaleDlg.cxx b/src/MeasureGUI/MeasureGUI_NormaleDlg.cxx index 6714e4fb1..b5207d790 100644 --- a/src/MeasureGUI/MeasureGUI_NormaleDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_NormaleDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,24 +19,29 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_NormaleDlg.cxx +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. // -// -// File : MeasureGUI_NormaleDlg.cxx -// Author : Julia DOROVSKIKH -// Module : GEOM -// $Header$ - #include "MeasureGUI_NormaleDlg.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include +#include +#include +#include +#include -#include "GEOMImpl_Types.hxx" +// OCCT Includes +#include +#include +#include +#include +#include -#include "utilities.h" +#include //================================================================================= // class : MeasureGUI_NormaleDlg() @@ -45,33 +50,35 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -MeasureGUI_NormaleDlg::MeasureGUI_NormaleDlg (GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +MeasureGUI_NormaleDlg::MeasureGUI_NormaleDlg (GeometryGUI* theGeometryGUI, QWidget* parent) + : GEOMBase_Skeleton(theGeometryGUI, parent, false) { SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_NORMALE"))); QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_NORMALE_TITLE")); + setWindowTitle(tr("GEOM_NORMALE_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_NORMALE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_NORMALE")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupArgs = new DlgRef_2Sel_QTD (this, "GroupArgs"); + GroupArgs = new DlgRef_2Sel (centralWidget()); GroupArgs->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); GroupArgs->TextLabel1->setText(tr("GEOM_FACE")); GroupArgs->TextLabel2->setText(tr("GEOM_POINT")); - GroupArgs->PushButton1->setPixmap(image1); - GroupArgs->PushButton2->setPixmap(image1); + GroupArgs->PushButton1->setIcon(image1); + GroupArgs->PushButton2->setIcon(image1); - Layout1->addWidget(GroupArgs, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupArgs); /***************************************************************/ setHelpFileName("using_measurement_tools_page.html#normale_anchor"); @@ -85,7 +92,6 @@ MeasureGUI_NormaleDlg::MeasureGUI_NormaleDlg (GeometryGUI* theGeometryGUI, QWidg //================================================================================= MeasureGUI_NormaleDlg::~MeasureGUI_NormaleDlg() { - // no need to delete child widgets, Qt does it all for us } //================================================================================= @@ -94,37 +100,28 @@ MeasureGUI_NormaleDlg::~MeasureGUI_NormaleDlg() //================================================================================= void MeasureGUI_NormaleDlg::Init() { - /* init variables */ + // init variables GroupArgs->LineEdit1->setReadOnly(true); GroupArgs->LineEdit2->setReadOnly(true); - myFace = GEOM::GEOM_Object::_nil(); - myPoint = GEOM::GEOM_Object::_nil(); + GroupArgs->LineEdit1->setText(""); + GroupArgs->LineEdit2->setText(""); + myFace = myPoint = GEOM::GEOM_Object::_nil(); - myEditCurrentArgument = GroupArgs->LineEdit1; - globalSelection(GEOM_FACE); - - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(GroupArgs->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupArgs->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupArgs->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupArgs->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect(GroupArgs->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupArgs->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); initName(tr("GEOM_VECTOR_NORMALE")); - //ConstructorsClicked(0); + GroupArgs->PushButton1->click(); SelectionIntoArgument(); - - /* displays Dialog */ - GroupArgs->show(); - this->show(); } //================================================================================= @@ -147,12 +144,14 @@ bool MeasureGUI_NormaleDlg::ClickOnApply() return false; initName(); + // activate first line edit + GroupArgs->PushButton1->click(); return true; } //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void MeasureGUI_NormaleDlg::SelectionIntoArgument() { @@ -166,26 +165,130 @@ void MeasureGUI_NormaleDlg::SelectionIntoArgument() myPoint = GEOM::GEOM_Object::_nil(); } - if (IObjectCount() != 1) + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) return; // nbSel == 1 Standard_Boolean testResult = Standard_False; GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); - if (!testResult) + if (!testResult || CORBA::is_nil(aSelectedObject)) return; + QString aName = GEOMBase::GetName(aSelectedObject); + if (myEditCurrentArgument == GroupArgs->LineEdit1) { + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) + { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) // Local Selection + { + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); + int anIndex = aMap(1); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + aName += QString(":face_%1").arg(anIndex); + } + else // Global Selection + { + if (aShape.ShapeType() != TopAbs_FACE) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } + } myFace = aSelectedObject; + myEditCurrentArgument->setText(aName); + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (!myFace->_is_nil() && myPoint->_is_nil()) + GroupArgs->PushButton2->click(); } else if (myEditCurrentArgument == GroupArgs->LineEdit2) { + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) + { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) // Local Selection + { + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); + int anIndex = aMap(1); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + aName += QString(":vertex_%1").arg(anIndex); + } + else // Global Selection + { + if (aShape.ShapeType() != TopAbs_VERTEX) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } + } myPoint = aSelectedObject; + myEditCurrentArgument->setText(aName); + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (!myPoint->_is_nil() && myFace->_is_nil()) + GroupArgs->PushButton1->click(); } - myEditCurrentArgument->setText(GEOMBase::GetName(aSelectedObject)); + displayPreview(); +} +//================================================================================= +// function : SetEditCurrentArgument() +// purpose : +//================================================================================= +void MeasureGUI_NormaleDlg::SetEditCurrentArgument() +{ + QPushButton* send = (QPushButton*)sender(); + + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(GEOM_FACE); + + if (send == GroupArgs->PushButton1) { + myEditCurrentArgument = GroupArgs->LineEdit1; + + GroupArgs->PushButton2->setDown(false); + GroupArgs->LineEdit2->setEnabled(false); + + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_FACE); + } + else if (send == GroupArgs->PushButton2) { + myEditCurrentArgument = GroupArgs->LineEdit2; + + GroupArgs->PushButton1->setDown(false); + GroupArgs->LineEdit1->setEnabled(false); + + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change displayPreview(); } @@ -197,34 +300,12 @@ void MeasureGUI_NormaleDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); if (send == GroupArgs->LineEdit1 || - send == GroupArgs->LineEdit2) - { + send == GroupArgs->LineEdit2) { myEditCurrentArgument = send; GEOMBase_Skeleton::LineEditReturnPressed(); } } -//================================================================================= -// function : SetEditCurrentArgument() -// purpose : -//================================================================================= -void MeasureGUI_NormaleDlg::SetEditCurrentArgument() -{ - QPushButton* send = (QPushButton*)sender(); - - if (send == GroupArgs->PushButton1) { - myEditCurrentArgument = GroupArgs->LineEdit1; - globalSelection(GEOM_FACE); - } - else if (send == GroupArgs->PushButton2) { - myEditCurrentArgument = GroupArgs->LineEdit2; - globalSelection(GEOM_POINT); - } - - myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); -} - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -232,17 +313,19 @@ void MeasureGUI_NormaleDlg::SetEditCurrentArgument() void MeasureGUI_NormaleDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); - SelectionIntoArgument(); + displayPreview(); } //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void MeasureGUI_NormaleDlg::enterEvent (QEvent* e) +void MeasureGUI_NormaleDlg::enterEvent (QEvent*) { - if (!GroupConstructors->isEnabled()) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } diff --git a/src/MeasureGUI/MeasureGUI_NormaleDlg.h b/src/MeasureGUI/MeasureGUI_NormaleDlg.h index 757c755d9..60eef7b17 100644 --- a/src/MeasureGUI/MeasureGUI_NormaleDlg.h +++ b/src/MeasureGUI/MeasureGUI_NormaleDlg.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,56 +19,53 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_NormaleDlg.h +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. // -// -// File : MeasureGUI_NormaleDlg.h -// Author : Julia DOROVSKIKH -// Module : GEOM +#ifndef MEASUREGUI_NORMALEDLG_H +#define MEASUREGUI_NORMALEDLG_H -#ifndef DIALOGBOX_NORMALE_H -#define DIALOGBOX_NORMALE_H +#include -#include "GEOM_MeasureGUI.hxx" - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel_QTD.h" +class DlgRef_2Sel; //================================================================================= // class : MeasureGUI_NormaleDlg // purpose : //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_NormaleDlg : public GEOMBase_Skeleton +class MeasureGUI_NormaleDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - MeasureGUI_NormaleDlg (GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~MeasureGUI_NormaleDlg(); + MeasureGUI_NormaleDlg( GeometryGUI*, QWidget* ); + ~MeasureGUI_NormaleDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid (QString& msg); - virtual bool execute (ObjectList& objects); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); private: - void Init(); - void enterEvent (QEvent* e); + void Init(); + void enterEvent( QEvent* ); - GEOM::GEOM_Object_var myFace; - GEOM::GEOM_Object_var myPoint; +private: + GEOM::GEOM_Object_var myFace; + GEOM::GEOM_Object_var myPoint; - DlgRef_2Sel_QTD* GroupArgs; + DlgRef_2Sel* GroupArgs; private slots: - void ClickOnOk(); - bool ClickOnApply(); + void ClickOnOk(); + bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_NORMALE_H +#endif // MEASUREGUI_NORMALEDLG_H diff --git a/src/MeasureGUI/MeasureGUI_PointDlg.cxx b/src/MeasureGUI/MeasureGUI_PointDlg.cxx index 415aca74d..bba75ea59 100644 --- a/src/MeasureGUI/MeasureGUI_PointDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_PointDlg.cxx @@ -1,105 +1,83 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_PointDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : MeasureGUI_PointDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "MeasureGUI_PointDlg.h" -#include "GEOMBase.h" +#include "MeasureGUI_Widgets.h" -#include "DlgRef_SpinBox.h" +#include +#include -#include "utilities.h" +#include -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include -#include -#include #include #include #include #include #include -#include #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include - //================================================================================= // class : MeasureGUI_PointDlg() // purpose : Constructs a MeasureGUI_PointDlg which is a child of 'parent' +// //================================================================================= MeasureGUI_PointDlg::MeasureGUI_PointDlg( GeometryGUI* GUI, QWidget* parent ) -: MeasureGUI_Skeleton( GUI, parent, "MeasureGUI_PointDlg" ) + : MeasureGUI_Skeleton( GUI, parent ) { QPixmap iconPnt( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_DLG_POINT" ) ) ); - + "GEOM", tr( "ICON_DLG_POINT" ) ) ); + QPixmap iconSelect( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_SELECT" ) ) ); + "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption( tr( "CAPTION" ) ); + setWindowTitle( tr( "CAPTION" ) ); - GroupConstructors->setTitle( tr( "CAPTION" ) ); - RadioButton1->setPixmap( iconPnt ); + mainFrame()->GroupConstructors->setTitle( tr( "CAPTION" ) ); + mainFrame()->RadioButton1->setIcon( iconPnt ); - QGroupBox* aGrp = new QGroupBox( 2, Qt::Horizontal, tr( "COORDINATES" ), this ); + myGrp = new MeasureGUI_1Sel3LineEdit( centralWidget() ); + myGrp->TextLabel1->setText( tr( "POINT" ) ); + myGrp->PushButton1->setIcon( iconSelect ); + myGrp->LineEdit1->setReadOnly( true ); + myGrp->TextLabel2->setText( tr( "X" ) ); + myGrp->TextLabel3->setText( tr( "Y" ) ); + myGrp->TextLabel4->setText( tr( "Z" ) ); + myGrp->LineEdit2->setReadOnly( true ); + myGrp->LineEdit3->setReadOnly( true ); + myGrp->LineEdit4->setReadOnly( true ); - new QLabel( tr( "POINT" ), aGrp ); - QFrame* aFrame = new QFrame( aGrp ); - mySelBtn = new QPushButton( aFrame ); - mySelBtn->setPixmap( iconSelect ); - mySelEdit = new QLineEdit( aFrame ); - QHBoxLayout* aLay = new QHBoxLayout( aFrame, 0, 10 ); - aLay->addWidget( mySelBtn ); - aLay->addWidget( mySelEdit ); - - new QLabel( tr( "X" ), aGrp ); - myX = new QLineEdit( aGrp ); - new QLabel( tr( "Y" ), aGrp ); - myY = new QLineEdit( aGrp ); - new QLabel( tr( "Z" ), aGrp ); - myZ = new QLineEdit( aGrp ); - - mySelEdit->setReadOnly( true ); - myX->setReadOnly( true ); - myY->setReadOnly( true ); - myZ->setReadOnly( true ); - - Layout1->addWidget( aGrp, 1, 0 ); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp ); myHelpFileName = "using_measurement_tools_page.html#point_coord_anchor"; @@ -110,7 +88,7 @@ MeasureGUI_PointDlg::MeasureGUI_PointDlg( GeometryGUI* GUI, QWidget* parent ) //================================================================================= // function : ~MeasureGUI_PointDlg() // purpose : Destroys the object and frees any allocated resources -//================================================================================= +//======================myGrp->LineEdit2->setReadOnly( true );=========================================================== MeasureGUI_PointDlg::~MeasureGUI_PointDlg() { } @@ -142,26 +120,31 @@ void MeasureGUI_PointDlg::activateSelection() //================================================================================= void MeasureGUI_PointDlg::SelectionIntoArgument() { - try - { + try { myObj = GEOM::GEOM_Object::_nil(); - mySelEdit->setText( "" ); - myX->setText( "" ); - myY->setText( "" ); - myZ->setText( "" ); + myGrp->LineEdit1->setText( "" ); + myGrp->LineEdit2->setText( "" ); + myGrp->LineEdit3->setText( "" ); + myGrp->LineEdit4->setText( "" ); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() < 1) + return; Standard_Boolean testResult = Standard_False; GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); - if( !testResult || aSelectedObject->_is_nil() ) + if (!testResult || aSelectedObject->_is_nil()) return; myObj = aSelectedObject; TColStd_IndexedMapOfInteger anIndexes; - ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))-> - selectionMgr()->GetIndexes( firstIObject(), anIndexes ); + aSelMgr->GetIndexes(aSelList.First(), anIndexes); TopoDS_Shape aShape; if ( anIndexes.Extent() > 1 || !GEOMBase::GetShape( myObj, aShape ) || aShape.IsNull() ) @@ -169,39 +152,36 @@ void MeasureGUI_PointDlg::SelectionIntoArgument() TopoDS_Vertex aPoint; QString aName = GEOMBase::GetName( myObj ); - if ( anIndexes.Extent() == 0 ) - { + if ( anIndexes.Extent() == 0 ) { if ( aShape.ShapeType() == TopAbs_VERTEX ) aPoint = TopoDS::Vertex( aShape ); } - else - { + else { int i = anIndexes( 1 ); TopTools_IndexedMapOfShape aShapes; TopExp::MapShapes( aShape, aShapes ); - + if ( aShape != aShapes( i ) ) aName += QString( ":%1" ).arg( i ); aPoint = TopoDS::Vertex( aShapes( i ) ); } - if ( !aPoint.IsNull() ) - { + if ( !aPoint.IsNull() ) { gp_Pnt aPnt = BRep_Tool::Pnt( aPoint ); - mySelEdit->setText( aName ); - myX->setText(DlgRef_SpinBox::PrintDoubleValue(aPnt.X())); - myY->setText(DlgRef_SpinBox::PrintDoubleValue(aPnt.Y())); - myZ->setText(DlgRef_SpinBox::PrintDoubleValue(aPnt.Z())); + myGrp->LineEdit1->setText( aName ); + myGrp->LineEdit2->setText( DlgRef::PrintDoubleValue( aPnt.X() ) ); + myGrp->LineEdit3->setText( DlgRef::PrintDoubleValue( aPnt.Y() ) ); + myGrp->LineEdit4->setText( DlgRef::PrintDoubleValue( aPnt.Z() ) ); } } catch( ... ) { myObj = GEOM::GEOM_Object::_nil(); - mySelEdit->setText( "" ); - myX->setText( "" ); - myY->setText( "" ); - myZ->setText( "" ); + myGrp->LineEdit1->setText( "" ); + myGrp->LineEdit2->setText( "" ); + myGrp->LineEdit3->setText( "" ); + myGrp->LineEdit4->setText( "" ); } } diff --git a/src/MeasureGUI/MeasureGUI_PointDlg.h b/src/MeasureGUI/MeasureGUI_PointDlg.h index ca2789816..09989c456 100644 --- a/src/MeasureGUI/MeasureGUI_PointDlg.h +++ b/src/MeasureGUI/MeasureGUI_PointDlg.h @@ -1,81 +1,58 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_PointDlg.h +// Author : Sergey LITONIN, Open CASCADE S.A.S. (sergey.litonin@opencascade.com) // -// File : MeasureGUI_PointDlg.h -// Author : Sergey LITONIN -// Module : GEOM - #ifndef MEASUREGUI_POINTDLG_H #define MEASUREGUI_POINTDLG_H -#include "GEOM_MeasureGUI.hxx" - #include "MeasureGUI_Skeleton.h" -class QLineEdit; +class MeasureGUI_1Sel3LineEdit; //================================================================================= // class : MeasureGUI_PointDlg // purpose : Dialog for displaying point coordinates //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_PointDlg : public MeasureGUI_Skeleton +class MeasureGUI_PointDlg : public MeasureGUI_Skeleton { Q_OBJECT public: - MeasureGUI_PointDlg( GeometryGUI* GUI, - QWidget* parent ); - ~MeasureGUI_PointDlg(); + MeasureGUI_PointDlg( GeometryGUI*, QWidget* ); + ~MeasureGUI_PointDlg(); protected: - // redefined from GEOMBase_Helper and MeasureGUI_Skeleton virtual void activateSelection(); virtual void SelectionIntoArgument(); - + private: - void Init(); -private: - QLineEdit* myX; - QLineEdit* myY; - QLineEdit* myZ; +private: + MeasureGUI_1Sel3LineEdit* myGrp; }; -#endif // DIALOGBOX_PROPERTIES_H - - - - - - - - - - - - - - +#endif // MEASUREGUI_POINTDLG_H diff --git a/src/MeasureGUI/MeasureGUI_PropertiesDlg.cxx b/src/MeasureGUI/MeasureGUI_PropertiesDlg.cxx index 80aed8c5d..7f45b5a80 100644 --- a/src/MeasureGUI/MeasureGUI_PropertiesDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_PropertiesDlg.cxx @@ -1,86 +1,78 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_PropertiesDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : MeasureGUI_PropertiesDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "MeasureGUI_PropertiesDlg.h" -#include "MeasureGUI_1Sel3LineEdit_QTD.h" -#include "GEOM_Displayer.h" -#include "GEOMImpl_Types.hxx" -#include "GEOMBase.h" -#include "DlgRef_SpinBox.h" +#include "MeasureGUI_Widgets.h" -#include "SalomeApp_Tools.h" -#include "utilities.h" -#include "SUIT_Session.h" +#include +#include +#include + +#include +#include +#include #include -#include -#include -#include -#include -#include -#include - //================================================================================= // class : MeasureGUI_PropertiesDlg() // purpose : Constructs a MeasureGUI_PropertiesDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. +// true to construct a modal dialog. //================================================================================= MeasureGUI_PropertiesDlg::MeasureGUI_PropertiesDlg( GeometryGUI* GUI, QWidget* parent ) -: MeasureGUI_Skeleton( GUI, parent, "MeasureGUI_PropertiesDlg" ) + : MeasureGUI_Skeleton( GUI, parent ) { QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_DLG_BASICPROPERTIES" ) ) ); + "GEOM", tr( "ICON_DLG_BASICPROPERTIES" ) ) ); QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_SELECT" ) ) ); + "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption( tr( "GEOM_PROPERTIES_TITLE" ) ); + setWindowTitle( tr( "GEOM_PROPERTIES_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle( tr( "GEOM_PROPERTIES" ) ); - RadioButton1->setPixmap( image0 ); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_PROPERTIES" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); - myGrp = new MeasureGUI_1Sel3LineEdit_QTD( this, "myGrp" ); + myGrp = new MeasureGUI_1Sel3LineEdit( centralWidget() ); myGrp->GroupBox1->setTitle( tr( "GEOM_PROPERTIES_CONSTR" ) ); myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) ); myGrp->TextLabel2->setText( tr( "GEOM_LENGTH" ) ); myGrp->TextLabel3->setText( tr( "GEOM_PROPERTIES_SURFACE" ) ); myGrp->TextLabel4->setText( tr( "GEOM_PROPERTIES_VOLUME" ) ); - myGrp->LineEdit2->setReadOnly( TRUE ); - myGrp->LineEdit3->setReadOnly( TRUE ); - myGrp->LineEdit4->setReadOnly( TRUE ); - myGrp->PushButton1->setPixmap( image1 ); myGrp->LineEdit1->setReadOnly( true ); + myGrp->PushButton1->setIcon( image1 ); + myGrp->LineEdit2->setReadOnly( true ); + myGrp->LineEdit3->setReadOnly( true ); + myGrp->LineEdit4->setReadOnly( true ); - Layout1->addWidget( myGrp, 1, 0 ); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp ); /***************************************************************/ @@ -118,10 +110,9 @@ void MeasureGUI_PropertiesDlg::Init() void MeasureGUI_PropertiesDlg::activateSelection() { static TColStd_MapOfInteger aTypes; - if ( aTypes.IsEmpty() ) - { + if ( aTypes.IsEmpty() ) { aTypes.Add( GEOM_COMPOUND ); -// aTypes.Add( TopAbs_COMPSOLID ); + // aTypes.Add( TopAbs_COMPSOLID ); aTypes.Add( GEOM_SOLID ); aTypes.Add( GEOM_SHELL ); aTypes.Add( GEOM_FACE ); @@ -140,18 +131,16 @@ void MeasureGUI_PropertiesDlg::processObject() { double aLength, anArea, aVolume; - if ( !getParameters( aLength, anArea, aVolume ) ) - { + if ( !getParameters( aLength, anArea, aVolume ) ) { mySelEdit->setText( "" ); myGrp->LineEdit2->setText( "" ); myGrp->LineEdit3->setText( "" ); myGrp->LineEdit4->setText( "" ); } - else - { - myGrp->LineEdit2->setText( DlgRef_SpinBox::PrintDoubleValue( aLength ) ); - myGrp->LineEdit3->setText( DlgRef_SpinBox::PrintDoubleValue( anArea ) ); - myGrp->LineEdit4->setText( DlgRef_SpinBox::PrintDoubleValue( aVolume ) ); + else { + myGrp->LineEdit2->setText( DlgRef::PrintDoubleValue( aLength ) ); + myGrp->LineEdit3->setText( DlgRef::PrintDoubleValue( anArea ) ); + myGrp->LineEdit4->setText( DlgRef::PrintDoubleValue( aVolume ) ); } } @@ -165,15 +154,12 @@ bool MeasureGUI_PropertiesDlg::getParameters( double& theLength, { if ( myObj->_is_nil() ) return false; - else - { - try - { + else { + try { GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->GetBasicProperties( myObj, theLength, theArea, theVolume ); } - catch( const SALOME::SALOME_Exception& e ) - { + catch( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); return false; } @@ -191,7 +177,7 @@ SALOME_Prs* MeasureGUI_PropertiesDlg::buildPrs() TopoDS_Shape aShape, aResult; if ( myObj->_is_nil() || - !GEOMBase::GetShape( myObj, aShape )|| + !GEOMBase::GetShape( myObj, aShape ) || aShape.IsNull() || aShape.ShapeType() != TopAbs_EDGE || !GEOMBase::CreateArrowForLinearEdge( aShape, aResult ) || diff --git a/src/MeasureGUI/MeasureGUI_PropertiesDlg.h b/src/MeasureGUI/MeasureGUI_PropertiesDlg.h index 0689c5806..20eaac748 100644 --- a/src/MeasureGUI/MeasureGUI_PropertiesDlg.h +++ b/src/MeasureGUI/MeasureGUI_PropertiesDlg.h @@ -1,83 +1,62 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : MeasureGUI_PropertiesDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM - -#ifndef DIALOGBOX_PROPERTIES_H -#define DIALOGBOX_PROPERTIES_H - -#include "GEOM_MeasureGUI.hxx" +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_PropertiesDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef MEASUREGUI_PROPERTIESDLG_H +#define MEASUREGUI_PROPERTIESDLG_H #include "MeasureGUI_Skeleton.h" -class MeasureGUI_1Sel3LineEdit_QTD; + +class MeasureGUI_1Sel3LineEdit; //================================================================================= // class : MeasureGUI_PropertiesDlg // purpose : Dialog for displaying length, area and volume //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_PropertiesDlg : public MeasureGUI_Skeleton +class MeasureGUI_PropertiesDlg : public MeasureGUI_Skeleton { - Q_OBJECT + Q_OBJECT public: - MeasureGUI_PropertiesDlg( GeometryGUI* GUI, - QWidget* parent ); - ~MeasureGUI_PropertiesDlg(); - + MeasureGUI_PropertiesDlg( GeometryGUI*, QWidget* ); + ~MeasureGUI_PropertiesDlg(); + protected: - - // redefined from GEOMBase_Helper and MeasureGUI_Skeleton - virtual void processObject(); - virtual void activateSelection(); - virtual SALOME_Prs* buildPrs(); + // redefined from GEOMBase_Helper and MeasureGUI_Skeleton + virtual void processObject(); + virtual void activateSelection(); + virtual SALOME_Prs* buildPrs(); private: - - void Init(); - bool getParameters( double& theLength, - double& theArea, - double& theVolume ); + void Init(); + bool getParameters( double&, + double&, + double& ); private: - - MeasureGUI_1Sel3LineEdit_QTD* myGrp; + MeasureGUI_1Sel3LineEdit* myGrp; }; -#endif // DIALOGBOX_PROPERTIES_H - - - - - - - - - - - - - - +#endif // MEASUREGUI_PROPERTIESDLG_H diff --git a/src/MeasureGUI/MeasureGUI_Skeleton.cxx b/src/MeasureGUI/MeasureGUI_Skeleton.cxx index def236c38..96cb3b82a 100644 --- a/src/MeasureGUI/MeasureGUI_Skeleton.cxx +++ b/src/MeasureGUI/MeasureGUI_Skeleton.cxx @@ -1,50 +1,45 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_Skeleton.cxx +// Author : Damine COQUERET, Open CASCADE S.A.S. // -// File : MeasureGUI_Skeleton.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "MeasureGUI_Skeleton.h" -#include "GEOMBase.h" -#include "GEOM_Displayer.h" -#include "GeometryGUI.h" +#include "MeasureGUI_Widgets.h" -#include "LightApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SalomeApp_Application.h" -#include "SalomeApp_Tools.h" -#include "SUIT_MessageBox.h" -#include "SUIT_Session.h" -#include "SUIT_OverrideCursor.h" +#include +#include +#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include //================================================================================= // class : MeasureGUI_Skeleton() @@ -53,28 +48,26 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -MeasureGUI_Skeleton::MeasureGUI_Skeleton( GeometryGUI* GUI, - QWidget* parent, - const char* name ) -: MeasureGUI_Skeleton_QTD( parent, name, false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose ), - GEOMBase_Helper( dynamic_cast( parent ) ), - myGeomGUI( GUI ) +MeasureGUI_Skeleton::MeasureGUI_Skeleton( GeometryGUI* GUI, QWidget* parent, + bool modal, Qt::WindowFlags f ) + : QDialog( parent, f ), + GEOMBase_Helper( dynamic_cast( parent ) ), + myGeomGUI( GUI ) { + myMainFrame = new MeasureGUI_SkeletonBox( this ); + QVBoxLayout* topLayout = new QVBoxLayout( this ); + topLayout->setMargin( 9 ); topLayout->setSpacing( 0 ); + topLayout->addWidget( myMainFrame ); + + setAttribute( Qt::WA_DeleteOnClose ); + setModal( modal ); mySelBtn = 0; mySelEdit = 0; myDisplayer = 0; myHelpFileName = ""; - - if ( !name ) - setName( "MeasureGUI_Skeleton" ); - - buttonClose->setText( tr( "GEOM_BUT_CLOSE" ) ); - buttonHelp->setText(tr("GEOM_BUT_HELP")); - - buttonClose->setAutoDefault( false ); - - resize( 350, 0 ); + + buttonClose()->setText( tr( "GEOM_BUT_CLOSE" ) ); + buttonHelp()->setText( tr( "GEOM_BUT_HELP" ) ); } @@ -84,7 +77,8 @@ MeasureGUI_Skeleton::MeasureGUI_Skeleton( GeometryGUI* GUI, //================================================================================= MeasureGUI_Skeleton::~MeasureGUI_Skeleton() { - myGeomGUI->SetActiveDialogBox( 0 ); + if ( myGeomGUI ) + myGeomGUI->SetActiveDialogBox( 0 ); delete myDisplayer; } @@ -96,39 +90,46 @@ MeasureGUI_Skeleton::~MeasureGUI_Skeleton() void MeasureGUI_Skeleton::Init() { /* init variables */ - myGeomGUI->SetActiveDialogBox((QDialog*)this); + if ( myGeomGUI ) + myGeomGUI->SetActiveDialogBox( (QDialog*)this ); /* signals and slots connections */ - connect( buttonClose, SIGNAL( clicked() ), - this, SLOT( ClickOnCancel() ) ); + connect( buttonClose(), SIGNAL( clicked() ), + this, SLOT( ClickOnCancel() ) ); - connect( buttonHelp, SIGNAL( clicked() ), - this, SLOT( ClickOnHelp() ) ); + connect( buttonHelp(), SIGNAL( clicked() ), + this, SLOT( ClickOnHelp() ) ); - connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), - this, SLOT ( DeactivateActiveDialog() ) ); - - connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), - this, SLOT ( ClickOnCancel() ) ); + if ( myGeomGUI ) { + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), + this, SLOT ( DeactivateActiveDialog() ) ); + + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), + this, SLOT ( ClickOnCancel() ) ); + } + + if ( mySelEdit ) { + connect( mySelEdit, SIGNAL( returnPressed() ), + this, SLOT( LineEditReturnPressed() ) ); + } + + if ( mySelBtn ) { + connect( mySelBtn, SIGNAL( clicked() ), + this, SLOT ( SetEditCurrentArgument() ) ); + } - connect( mySelEdit, SIGNAL( returnPressed() ), - this, SLOT( LineEditReturnPressed() ) ); - - connect( mySelBtn, SIGNAL( clicked() ), - this, SLOT ( SetEditCurrentArgument() ) ); - - LightApp_SelectionMgr* aSel = ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(); - if ( aSel ) + LightApp_SelectionMgr* aSel = ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(); + if ( aSel ) { connect( aSel, SIGNAL( currentSelectionChanged() ), this, SLOT ( SelectionIntoArgument() ) ) ; + } /* displays Dialog */ - RadioButton1->setChecked( TRUE ); + mainFrame()->RadioButton1->setChecked( true ); activateSelection(); SelectionIntoArgument(); - show(); } @@ -147,20 +148,20 @@ void MeasureGUI_Skeleton::ClickOnCancel() //================================================================================= void MeasureGUI_Skeleton::ClickOnHelp() { - LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication()); - if (app) - app->onHelpContextModule(myGeomGUI ? app->moduleName(myGeomGUI->moduleName()) : QString(""), myHelpFileName); + LightApp_Application* app = (LightApp_Application*)( SUIT_Session::session()->activeApplication() ); + if ( app ) { + app->onHelpContextModule( myGeomGUI ? app->moduleName( myGeomGUI->moduleName() ) : QString( "" ), myHelpFileName ); + } else { - QString platform; + QString platform; #ifdef WIN32 - platform = "winapplication"; + platform = "winapplication"; #else - platform = "application"; + platform = "application"; #endif - SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"), - QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). - arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName), - QObject::tr("BUT_OK")); + SUIT_MessageBox::warning( this, tr( "WRN_WARNING" ), + tr( "EXTERNAL_BROWSER_CANNOT_SHOW_PAGE" ). + arg( app->resourceMgr()->stringValue( "ExternalBrowser", platform ) ).arg( myHelpFileName ) ); } } @@ -174,11 +175,17 @@ void MeasureGUI_Skeleton::LineEditReturnPressed() /* If successfull the selection is changed and signal emitted... */ /* so SelectionIntoArgument() is automatically called. */ - const QString objectUserName = mySelEdit->text(); - QWidget* thisWidget = ( QWidget* )this; - - if ( GEOMBase::SelectionByNameInDialogs( thisWidget, objectUserName, selectedIO() ) ) - mySelEdit->setText( objectUserName ); + if ( mySelEdit ) { + const QString objectUserName = mySelEdit->text(); + QWidget* thisWidget = ( QWidget* )this; + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (GEOMBase::SelectionByNameInDialogs(thisWidget, objectUserName, aSelList)) + mySelEdit->setText(objectUserName); + } } @@ -190,7 +197,7 @@ void MeasureGUI_Skeleton::DeactivateActiveDialog() { setEnabled( false ); - LightApp_SelectionMgr* aSel = ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(); + LightApp_SelectionMgr* aSel = ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(); if ( aSel ) disconnect( aSel, 0, this, 0 ); @@ -212,7 +219,7 @@ void MeasureGUI_Skeleton::ActivateThisDialog() myGeomGUI->SetActiveDialogBox( ( QDialog* )this ); - LightApp_SelectionMgr* aSel = ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(); + LightApp_SelectionMgr* aSel = ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(); if ( aSel ) connect( aSel, SIGNAL( currentSelectionChanged() ), this, SLOT ( SelectionIntoArgument() ) ) ; @@ -238,21 +245,29 @@ void MeasureGUI_Skeleton::SetEditCurrentArgument() void MeasureGUI_Skeleton::SelectionIntoArgument() { myObj = GEOM::GEOM_Object::_nil(); - - Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); - - if( !testResult || aSelectedObject->_is_nil() ) - { - mySelEdit->setText( "" ); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + GEOM::GEOM_Object_var aSelectedObject = GEOM::GEOM_Object::_nil(); + + if (aSelList.Extent() > 0) { + Standard_Boolean testResult = Standard_False; + aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (!testResult) + aSelectedObject = GEOM::GEOM_Object::_nil(); + } + + if (aSelectedObject->_is_nil()) { + mySelEdit->setText(""); processObject(); erasePreview(); return; } myObj = aSelectedObject; - mySelEdit->setText( GEOMBase::GetName( myObj ) ); + mySelEdit->setText(GEOMBase::GetName(myObj)); processObject(); redisplayPreview(); } @@ -272,7 +287,7 @@ void MeasureGUI_Skeleton::processObject() //================================================================================= void MeasureGUI_Skeleton::closeEvent( QCloseEvent* e ) { - LightApp_SelectionMgr* aSel = ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(); + LightApp_SelectionMgr* aSel = ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(); if ( aSel ) disconnect( aSel, 0, this, 0 ); QDialog::closeEvent( e ); @@ -282,9 +297,9 @@ void MeasureGUI_Skeleton::closeEvent( QCloseEvent* e ) // function : enterEvent() // purpose : //================================================================================= -void MeasureGUI_Skeleton::enterEvent(QEvent* e) +void MeasureGUI_Skeleton::enterEvent( QEvent* ) { - if ( GroupConstructors->isEnabled() ) + if ( mainFrame()->GroupConstructors->isEnabled() ) return; ActivateThisDialog(); @@ -306,16 +321,14 @@ SALOME_Prs* MeasureGUI_Skeleton::buildPrs() void MeasureGUI_Skeleton::redisplayPreview() { QString aMess; - if ( !isValid( aMess ) ) - { + if ( !isValid( aMess ) ) { erasePreview( true ); return; } erasePreview( false ); - try - { + try { SUIT_OverrideCursor(); getDisplayer()->SetColor( Quantity_NOC_VIOLET ); @@ -324,8 +337,7 @@ void MeasureGUI_Skeleton::redisplayPreview() if ( SALOME_Prs* aPrs = buildPrs() ) displayPreview( aPrs ); } - catch( const SALOME::SALOME_Exception& e ) - { + catch ( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); } @@ -379,9 +391,28 @@ void MeasureGUI_Skeleton::keyPressEvent( QKeyEvent* e ) if ( e->isAccepted() ) return; - if ( e->key() == Key_F1 ) - { - e->accept(); - ClickOnHelp(); - } + if ( e->key() == Qt::Key_F1 ) { + e->accept(); + ClickOnHelp(); + } +} + +MeasureGUI_SkeletonBox* MeasureGUI_Skeleton::mainFrame() const +{ + return myMainFrame; +} + +QWidget* MeasureGUI_Skeleton::centralWidget() const +{ + return mainFrame()->GroupMedium; +} + +QPushButton* MeasureGUI_Skeleton::buttonClose() const +{ + return mainFrame()->buttonClose; +} + +QPushButton* MeasureGUI_Skeleton::buttonHelp() const +{ + return mainFrame()->buttonHelp; } diff --git a/src/MeasureGUI/MeasureGUI_Skeleton.h b/src/MeasureGUI/MeasureGUI_Skeleton.h index 79d5ade21..01633884f 100644 --- a/src/MeasureGUI/MeasureGUI_Skeleton.h +++ b/src/MeasureGUI/MeasureGUI_Skeleton.h @@ -1,105 +1,88 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_Skeleton.h +// Author : Damine COQUERET, Open CASCADE S.A.S. // -// File : MeasureGUI_Skeleton.h -// Author : Damine COQUERET -// Module : GEOM -// $Header: - #ifndef MEASUREGUI_SKELETON_H #define MEASUREGUI_SKELETON_H -#include "GEOM_MeasureGUI.hxx" - -#include "MeasureGUI_Skeleton_QTD.h" -#include "GEOMBase_Helper.h" +#include +#include class GeometryGUI; -class QWidget; +class MeasureGUI_SkeletonBox; class QLineEdit; class QPushButton; class GEOM_Displayer; -class GEOM_MEASUREGUI_EXPORT - MeasureGUI_Skeleton : public MeasureGUI_Skeleton_QTD, - public GEOMBase_Helper +class MeasureGUI_Skeleton : public QDialog, public GEOMBase_Helper { - Q_OBJECT + Q_OBJECT public: - MeasureGUI_Skeleton( GeometryGUI* GUI, - QWidget* parent, - const char* name ); - ~MeasureGUI_Skeleton(); - + MeasureGUI_Skeleton( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~MeasureGUI_Skeleton(); + protected slots: - - virtual void ClickOnCancel(); - virtual void ClickOnHelp(); - virtual void DeactivateActiveDialog(); - virtual void ActivateThisDialog(); - virtual void SelectionIntoArgument(); - virtual void LineEditReturnPressed(); - virtual void SetEditCurrentArgument(); + virtual void ClickOnCancel(); + virtual void ClickOnHelp(); + virtual void DeactivateActiveDialog(); + virtual void ActivateThisDialog(); + virtual void SelectionIntoArgument(); + virtual void LineEditReturnPressed(); + virtual void SetEditCurrentArgument(); protected: + void Init(); + + void enterEvent( QEvent* ); + void closeEvent( QCloseEvent* ); + void keyPressEvent( QKeyEvent* ); + void redisplayPreview(); + GEOM_Displayer* getDisplayer(); + + virtual bool isValid( QString& ); + virtual SALOME_Prs* buildPrs(); + virtual void processObject(); + virtual void activateSelection(); + + virtual GEOM::GEOM_IOperations_ptr createOperation(); - void Init(); - - void enterEvent( QEvent* e ); - void closeEvent( QCloseEvent* e ); - void keyPressEvent( QKeyEvent* e ); - void redisplayPreview(); - GEOM_Displayer* getDisplayer(); - - virtual bool isValid( QString& msg ); - virtual SALOME_Prs* buildPrs(); - virtual void processObject(); - virtual void activateSelection(); - - virtual GEOM::GEOM_IOperations_ptr createOperation(); + MeasureGUI_SkeletonBox* mainFrame() const; + QWidget* centralWidget() const; + QPushButton* buttonClose() const; + QPushButton* buttonHelp() const; protected: - - QPushButton* mySelBtn; - QLineEdit* mySelEdit; - GEOM::GEOM_Object_var myObj; - - GeometryGUI* myGeomGUI; - GEOM_Displayer* myDisplayer; - - QString myHelpFileName; + QPushButton* mySelBtn; + QLineEdit* mySelEdit; + GEOM::GEOM_Object_var myObj; + + GeometryGUI* myGeomGUI; + GEOM_Displayer* myDisplayer; + + QString myHelpFileName; + MeasureGUI_SkeletonBox* myMainFrame; }; - + #endif // MEASUREGUI_SKELETON_H - - - - - - - - - - - diff --git a/src/MeasureGUI/MeasureGUI_SkeletonBox_QTD.ui b/src/MeasureGUI/MeasureGUI_SkeletonBox_QTD.ui new file mode 100644 index 000000000..f723ac838 --- /dev/null +++ b/src/MeasureGUI/MeasureGUI_SkeletonBox_QTD.ui @@ -0,0 +1,93 @@ + + MeasureGUI_SkeletonBox_QTD + + + + 0 + 0 + 200 + 92 + + + + + + + + 0 + + + 6 + + + + + + + + + 9 + + + 6 + + + + + &Close + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + &Help + + + + + + + + + + + + + + + + + 9 + + + 6 + + + + + + + + + + + + + + + + diff --git a/src/MeasureGUI/MeasureGUI_Skeleton_QTD.cxx b/src/MeasureGUI/MeasureGUI_Skeleton_QTD.cxx deleted file mode 100644 index 5a01f5818..000000000 --- a/src/MeasureGUI/MeasureGUI_Skeleton_QTD.cxx +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form implementation generated from reading ui file 'MeasureGUI_Skeleton_QTD.ui' -** -** Created: Tue Mar 13 14:20:24 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include "MeasureGUI_Skeleton_QTD.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Constructs a MeasureGUI_Skeleton_QTD as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - * - * The dialog will by default be modeless, unless you set 'modal' to - * TRUE to construct a modal dialog. - */ -MeasureGUI_Skeleton_QTD::MeasureGUI_Skeleton_QTD( QWidget* parent, const char* name, bool modal, WFlags fl ) - : QDialog( parent, name, modal, fl ) -{ - if ( !name ) - setName( "MeasureGUI_Skeleton_QTD" ); - setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)7, 0, 0, sizePolicy().hasHeightForWidth() ) ); - setSizeGripEnabled( TRUE ); - MeasureGUI_Skeleton_QTDLayout = new QGridLayout( this, 1, 1, 11, 6, "MeasureGUI_Skeleton_QTDLayout"); - - Layout1 = new QGridLayout( 0, 1, 1, 0, 6, "Layout1"); - - GroupButtons = new QGroupBox( this, "GroupButtons" ); - GroupButtons->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, GroupButtons->sizePolicy().hasHeightForWidth() ) ); - GroupButtons->setColumnLayout(0, Qt::Vertical ); - GroupButtons->layout()->setSpacing( 6 ); - GroupButtons->layout()->setMargin( 11 ); - GroupButtonsLayout = new QGridLayout( GroupButtons->layout() ); - GroupButtonsLayout->setAlignment( Qt::AlignTop ); - - Layout3 = new QGridLayout( 0, 1, 1, 0, 6, "Layout3"); - Spacer1 = new QSpacerItem( 120, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); - Layout3->addItem( Spacer1, 0, 1 ); - - buttonClose = new QPushButton( GroupButtons, "buttonClose" ); - - Layout3->addWidget( buttonClose, 0, 0 ); - - buttonHelp = new QPushButton( GroupButtons, "buttonHelp" ); - - Layout3->addWidget( buttonHelp, 0, 2 ); - - GroupButtonsLayout->addLayout( Layout3, 0, 0 ); - - Layout1->addWidget( GroupButtons, 2, 0 ); - - GroupConstructors = new QButtonGroup( this, "GroupConstructors" ); - GroupConstructors->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)0, 0, 0, GroupConstructors->sizePolicy().hasHeightForWidth() ) ); - GroupConstructors->setColumnLayout(0, Qt::Vertical ); - GroupConstructors->layout()->setSpacing( 6 ); - GroupConstructors->layout()->setMargin( 11 ); - GroupConstructorsLayout = new QGridLayout( GroupConstructors->layout() ); - GroupConstructorsLayout->setAlignment( Qt::AlignTop ); - - Layout2 = new QHBoxLayout( 0, 0, 6, "Layout2"); - - RadioButton1 = new QRadioButton( GroupConstructors, "RadioButton1" ); - Layout2->addWidget( RadioButton1 ); - - GroupConstructorsLayout->addLayout( Layout2, 0, 0 ); - - Layout1->addWidget( GroupConstructors, 0, 0 ); - - MeasureGUI_Skeleton_QTDLayout->addLayout( Layout1, 0, 0 ); - languageChange(); - resize( QSize(228, 266).expandedTo(minimumSizeHint()) ); - clearWState( WState_Polished ); -} - -/* - * Destroys the object and frees any allocated resources - */ -MeasureGUI_Skeleton_QTD::~MeasureGUI_Skeleton_QTD() -{ - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void MeasureGUI_Skeleton_QTD::languageChange() -{ -} - diff --git a/src/MeasureGUI/MeasureGUI_Skeleton_QTD.h b/src/MeasureGUI/MeasureGUI_Skeleton_QTD.h deleted file mode 100644 index 990f0a63e..000000000 --- a/src/MeasureGUI/MeasureGUI_Skeleton_QTD.h +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -/**************************************************************************** -** Form interface generated from reading ui file 'MeasureGUI_Skeleton_QTD.ui' -** -** Created: Tue Mar 13 14:20:20 2007 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#ifndef MEASUREGUI_SKELETON_QTD_H -#define MEASUREGUI_SKELETON_QTD_H - -#include "GEOM_MeasureGUI.hxx" - -#include -#include - -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QSpacerItem; -class QGroupBox; -class QPushButton; -class QButtonGroup; -class QRadioButton; - -class GEOM_MEASUREGUI_EXPORT MeasureGUI_Skeleton_QTD : public QDialog -{ - Q_OBJECT - -public: - MeasureGUI_Skeleton_QTD( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); - ~MeasureGUI_Skeleton_QTD(); - - QGroupBox* GroupButtons; - QPushButton* buttonClose; - QPushButton* buttonHelp; - QButtonGroup* GroupConstructors; - QRadioButton* RadioButton1; - -protected: - QGridLayout* MeasureGUI_Skeleton_QTDLayout; - QGridLayout* Layout1; - QGridLayout* GroupButtonsLayout; - QGridLayout* Layout3; - QSpacerItem* Spacer1; - QGridLayout* GroupConstructorsLayout; - QHBoxLayout* Layout2; - -protected slots: - virtual void languageChange(); - -}; - -#endif // MEASUREGUI_SKELETON_QTD_H diff --git a/src/MeasureGUI/MeasureGUI_WhatisDlg.cxx b/src/MeasureGUI/MeasureGUI_WhatisDlg.cxx index 8820931dd..202b3faf3 100644 --- a/src/MeasureGUI/MeasureGUI_WhatisDlg.cxx +++ b/src/MeasureGUI/MeasureGUI_WhatisDlg.cxx @@ -1,95 +1,146 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_WhatisDlg.cxx +// Author : Nicolas REJNERI, Open CASCADE S.A.S. // -// -// File : MeasureGUI_WhatisDlg.cxx -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - #include "MeasureGUI_WhatisDlg.h" -#include "MeasureGUI_1Sel1TextView_QTD.h" -#include "GEOMBase.h" +#include "MeasureGUI_Widgets.h" -#include -#include -#include -#include -#include -#include +#include +#include -#include +#include +#include +#include -#include "utilities.h" -#include "SUIT_Session.h" -#include "SalomeApp_Tools.h" +#include +#include +#include -#include -#include -#include -#include -#include -#include -#include +class MeasureGUI_WhatisDlg::Whatis : public QGroupBox +{ +public: + Whatis( QWidget* parent ); + ~Whatis(); + + QLabel* TextLabel1; + QPushButton* PushButton1; + QLineEdit* LineEdit1; + + QTextEdit* TextEdit1; + + QLabel* TextLabel2; + QLineEdit* LineEdit2; + QPushButton* PushButton2; +}; + +//================================================================================= +// Constructs a MeasureGUI_Whatis_QTD which is a child of 'parent', with the +// name 'name' and widget flags set to 'f' +//================================================================================= +MeasureGUI_WhatisDlg::Whatis::Whatis( QWidget* parent ) + : QGroupBox( parent ) +{ + QGridLayout* topLayout = new QGridLayout( this ); + topLayout->setMargin( 11 ); + topLayout->setSpacing( 6 ); + + TextLabel1 = new QLabel( this ); + PushButton1 = new QPushButton( this ); + LineEdit1 = new QLineEdit( this ); + TextEdit1 = new QTextEdit( this ); + TextLabel2 = new QLabel( this ); + LineEdit2 = new QLineEdit( this); + PushButton2 = new QPushButton( this ); + + topLayout->addWidget( TextLabel1, 0, 0 ); + topLayout->addWidget( PushButton1, 0, 1 ); + topLayout->addWidget( LineEdit1, 0, 2, 1, 2 ); + topLayout->addWidget( TextEdit1, 1, 0, 1, 4 ); + topLayout->addWidget( TextLabel2 , 2, 0 ); + topLayout->addWidget( LineEdit2 , 2, 1, 1, 2 ); + topLayout->addWidget( PushButton2, 2, 3 ); +} + +//================================================================================= +// Destroys the object and frees any allocated resources +//================================================================================= +MeasureGUI_WhatisDlg::Whatis::~Whatis() +{ +} //================================================================================= // class : MeasureGUI_WhatisDlg( ) // purpose : Constructs a MeasureGUI_WhatisDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to -// TRUE to construct a modal dialog. +// true to construct a modal dialog. //================================================================================= -MeasureGUI_WhatisDlg::MeasureGUI_WhatisDlg (GeometryGUI* GUI, QWidget* parent) - : MeasureGUI_Skeleton(GUI, parent, "MeasureGUI_WhatisDlg") +MeasureGUI_WhatisDlg::MeasureGUI_WhatisDlg( GeometryGUI* GUI, QWidget* parent ) + : MeasureGUI_Skeleton( GUI, parent ) { - QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_DLG_WHATIS" ) ) ); - QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( - "GEOM",tr( "ICON_SELECT" ) ) ); + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + QPixmap image0( resMgr->loadPixmap( "GEOM", tr( "ICON_DLG_WHATIS" ) ) ); + QPixmap image1( resMgr->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption( tr( "GEOM_WHATIS_TITLE" ) ); + setWindowTitle( tr( "GEOM_WHATIS_TITLE" ) ); /***************************************************************/ + + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_WHATIS" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); - GroupConstructors->setTitle( tr( "GEOM_WHATIS" ) ); - RadioButton1->setPixmap( image0 ); + myGrp = new Whatis( this ); + + myGrp->setTitle( tr( "GEOM_WHATIS_OBJECT" ) ); - myGrp = new MeasureGUI_1Sel1TextView_QTD( this, "myGrp" ); - myGrp->GroupBox1->setTitle( tr( "GEOM_WHATIS_OBJECT" ) ); myGrp->TextLabel1->setText( tr( "GEOM_OBJECT" ) ); - - myGrp->TextEdit1->setReadOnly( TRUE ); - // fix height to fit all text - myGrp->TextEdit1->setWordWrap(QTextEdit::NoWrap); - myGrp->TextEdit1->setTextFormat(Qt::PlainText); - QString allLines ("\n\n\n\n\n\n\n\n\n"); // 10 lines - myGrp->TextEdit1->setText(allLines); - int sbHeight = myGrp->TextEdit1->horizontalScrollBar()->height(); - myGrp->TextEdit1->setFixedHeight(myGrp->TextEdit1->contentsHeight() + sbHeight); - - myGrp->PushButton1->setPixmap( image1 ); + myGrp->PushButton1->setIcon( image1 ); + myGrp->PushButton1->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) ); myGrp->LineEdit1->setReadOnly( true ); - Layout1->addWidget( myGrp, 1, 0 ); + myGrp->TextEdit1->setReadOnly( true ); + // fix height to fit all text + myGrp->TextEdit1->setLineWrapMode( QTextEdit::NoWrap ); + // myGrp->TextEdit1->setTextFormat( Qt::PlainText ); // VSR : TODO + QString allLines ("\n\n\n\n\n\n\n\n\n"); // 10 lines + myGrp->TextEdit1->setText( allLines ); + int sbHeight = myGrp->TextEdit1->horizontalScrollBar()->height(); + myGrp->TextEdit1->setFixedHeight( myGrp->TextEdit1->document()->size().height() + sbHeight ); + + myGrp->TextLabel2->setText( tr( "GEOM_KIND_OF_SHAPE" ) ); + myGrp->LineEdit2->setReadOnly( true ); + myGrp->LineEdit2->setMinimumWidth( 150 ); + myGrp->PushButton2->setText( tr( "GEOM_PROPERTIES" ) ); + myGrp->PushButton2->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( myGrp ); + + // Properties dialog + myParamsDlg = new QMessageBox(QMessageBox::Information, "", "", QMessageBox::Ok, this); + myParamsDlg->setModal( false ); /***************************************************************/ @@ -99,7 +150,6 @@ MeasureGUI_WhatisDlg::MeasureGUI_WhatisDlg (GeometryGUI* GUI, QWidget* parent) Init(); } - //================================================================================= // function : ~MeasureGUI_WhatisDlg() // purpose : Destroys the object and frees any allocated resources @@ -108,7 +158,6 @@ MeasureGUI_WhatisDlg::~MeasureGUI_WhatisDlg() { } - //================================================================================= // function : Init() // purpose : @@ -117,10 +166,12 @@ void MeasureGUI_WhatisDlg::Init() { mySelBtn = myGrp->PushButton1; mySelEdit = myGrp->LineEdit1; + + connect( myGrp->PushButton2, SIGNAL( clicked() ), this, SLOT( ClickOnProperties() ) ); + MeasureGUI_Skeleton::Init(); } - //================================================================================= // function : processObject // purpose : @@ -128,9 +179,25 @@ void MeasureGUI_WhatisDlg::Init() void MeasureGUI_WhatisDlg::processObject() { QString aText; - myGrp->TextEdit1->setText( getParameters( aText ) ? aText : QString("") ); + myGrp->TextEdit1->setText( getParameters( aText ) ? aText : QString( "" ) ); + + QString aParameters; + QString aKind = getKindOfShape( aParameters ); + myGrp->LineEdit2->setText( aKind ); + myGrp->PushButton2->setEnabled( !aParameters.isEmpty()); + myParamsDlg->setWindowTitle(aKind + " " + tr("GEOM_PROPERTIES")); + myParamsDlg->setText(aParameters); + myParamsDlg->adjustSize(); } +//================================================================================= +// function : ClickOnProperties() +// purpose : +//================================================================================= +void MeasureGUI_WhatisDlg::ClickOnProperties() +{ + myParamsDlg->show(); +} //================================================================================= // function : getParameters @@ -140,18 +207,388 @@ bool MeasureGUI_WhatisDlg::getParameters( QString& theText ) { if ( myObj->_is_nil() ) return false; - else - { - try - { - theText = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->WhatIs( myObj ); - } - catch( const SALOME::SALOME_Exception& e ) - { - SalomeApp_Tools::QtCatchCorbaException( e ); - return false; - } - return getOperation()->IsDone(); + try + { + theText = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() )->WhatIs( myObj ); } + catch( const SALOME::SALOME_Exception& e ) + { + SalomeApp_Tools::QtCatchCorbaException( e ); + return false; + } + + return getOperation()->IsDone(); +} + +//================================================================================= +// function : getKindOfShape +// purpose : +//================================================================================= +QString MeasureGUI_WhatisDlg::getKindOfShape( QString& theParameters ) +{ + QString aKindStr(""); + theParameters = ""; + + if ( myObj->_is_nil() ) + return aKindStr; + + GEOM::GEOM_IKindOfShape::shape_kind aKind; + GEOM::ListOfLong_var anInts; + GEOM::ListOfDouble_var aDbls; + + GEOM::GEOM_IMeasureOperations_var anOp = GEOM::GEOM_IMeasureOperations::_narrow( getOperation() ); + + try + { + aKind = anOp->KindOfShape( myObj, anInts, aDbls ); + } + catch( const SALOME::SALOME_Exception& e ) { + SalomeApp_Tools::QtCatchCorbaException( e ); + return aKindStr; + } + + if ( !anOp->IsDone() ) + return aKindStr; + +#define PRINT_DOUBLE(val) QString(" %1").arg( DlgRef::PrintDoubleValue( val ) ) + switch ( aKind ) + { + case GEOM::GEOM_IKindOfShape::COMPOUND: + aKindStr = tr( "GEOM_COMPOUND" ); + break; + case GEOM::GEOM_IKindOfShape::COMPSOLID: + aKindStr = tr( "GEOM_COMPOUNDSOLID" ); + break; + case GEOM::GEOM_IKindOfShape::SHELL: + aKindStr = tr( "GEOM_SHELL" ); + if ( anInts[0] == 1 ) + theParameters = tr( "GEOM_CLOSED" ); + else if ( anInts[0] == 2 ) + theParameters = tr( "GEOM_UNCLOSED" ); + else + theParameters = tr( "GEOM_CLOSEDUNCLOSED" ); + break; + case GEOM::GEOM_IKindOfShape::WIRE: + aKindStr = tr( "GEOM_WIRE" ); + if ( anInts[0] == 1 ) + theParameters = tr( "GEOM_CLOSED" ); + else if ( anInts[0] == 2 ) + theParameters = tr( "GEOM_UNCLOSED" ); + else + theParameters = tr( "GEOM_CLOSEDUNCLOSED" ); + break; + // SOLIDs + case GEOM::GEOM_IKindOfShape::SPHERE: + aKindStr = tr( "GEOM_SPHERE" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS" ) + PRINT_DOUBLE( aDbls[3] ); + break; + case GEOM::GEOM_IKindOfShape::CYLINDER: + aKindStr = tr( "GEOM_CYLINDER" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_AXIS" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS" ) + PRINT_DOUBLE( aDbls[6] ) + + "\n" + tr( "GEOM_HEIGHT" ) + PRINT_DOUBLE( aDbls[7] ); + break; + case GEOM::GEOM_IKindOfShape::BOX: + aKindStr = tr( "GEOM_BOX" ); + theParameters = tr( "GEOM_CENTER") + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + "Ax :" + PRINT_DOUBLE( aDbls[3] ) + + "\n" + "Ay :" + PRINT_DOUBLE( aDbls[4] ) + + "\n" + "Az :" + PRINT_DOUBLE( aDbls[5] ); + break; + case GEOM::GEOM_IKindOfShape::ROTATED_BOX: + aKindStr = tr( "GEOM_BOX" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\nZ Axis:" + + "\n" + "Zx :" + PRINT_DOUBLE( aDbls[3] ) + + "\n" + "Zy :" + PRINT_DOUBLE( aDbls[4] ) + + "\n" + "Zz :" + PRINT_DOUBLE( aDbls[5] ) + + "\nX Axis:" + + "\n" + tr( "GEOM_X_I" ).arg( "x" ) + PRINT_DOUBLE( aDbls[6] ) + + "\n" + tr( "GEOM_X_I" ).arg( "y" ) + PRINT_DOUBLE( aDbls[7] ) + + "\n" + tr( "GEOM_X_I" ).arg( "z" ) + PRINT_DOUBLE( aDbls[8] ) + + "\nDimensions along local axes:" + + "\n" + "Ax :" + PRINT_DOUBLE( aDbls[9] ) + + "\n" + "Ay :" + PRINT_DOUBLE( aDbls[10] ) + + "\n" + "Az :" + PRINT_DOUBLE( aDbls[11] ); + break; + case GEOM::GEOM_IKindOfShape::TORUS: + aKindStr = tr( "GEOM_TORUS" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_AXIS" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[6] ) + + "\n" + tr( "GEOM_RADIUS_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[7] ); + break; + case GEOM::GEOM_IKindOfShape::CONE: + aKindStr = tr( "GEOM_CONE" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_AXIS" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[6] ) + + "\n" + tr( "GEOM_RADIUS_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[7] ) + + "\n" + tr( "GEOM_HEIGHT" ) + PRINT_DOUBLE( aDbls[8] ); + break; + case GEOM::GEOM_IKindOfShape::POLYHEDRON: + aKindStr = tr( "GEOM_POLYHEDRON" ); + break; + case GEOM::GEOM_IKindOfShape::SOLID: + aKindStr = tr( "GEOM_SOLID" ); + break; + // FACEs + case GEOM::GEOM_IKindOfShape::SPHERE2D: + aKindStr = tr( "GEOM_SURFSPHERE" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS" ) + PRINT_DOUBLE( aDbls[3] ); + break; + case GEOM::GEOM_IKindOfShape::CYLINDER2D: + aKindStr = tr( "GEOM_SURFCYLINDER" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_AXIS" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS" ) + PRINT_DOUBLE( aDbls[6] ) + + "\n" + tr( "GEOM_HEIGHT" ) + PRINT_DOUBLE( aDbls[7] ); + break; + case GEOM::GEOM_IKindOfShape::TORUS2D: + aKindStr = tr( "GEOM_SURFTORUS" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_AXIS" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[6] ) + + "\n" + tr( "GEOM_RADIUS_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[7] ); + break; + case GEOM::GEOM_IKindOfShape::CONE2D: + aKindStr = tr( "GEOM_SURFCONE" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_AXIS" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[6] ) + + "\n" + tr( "GEOM_RADIUS_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[7] ) + + "\n" + tr( "GEOM_HEIGHT" ) + PRINT_DOUBLE( aDbls[8] ); + break; + case GEOM::GEOM_IKindOfShape::DISK_CIRCLE: + aKindStr = tr( "GEOM_DISK_CIRCLE" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_NORMAL" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS" ) + PRINT_DOUBLE( aDbls[6] ); + break; + case GEOM::GEOM_IKindOfShape::DISK_ELLIPSE: + aKindStr = tr( "GEOM_DISK_ELLIPSE" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_NORMAL" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS_MAJOR" ) + PRINT_DOUBLE( aDbls[6] ) + + "\n" + tr( "GEOM_RADIUS_MINOR" ) + PRINT_DOUBLE( aDbls[7] ); + break; + case GEOM::GEOM_IKindOfShape::POLYGON: + aKindStr = tr( "GEOM_POLYGON" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_NORMAL" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ); + break; + case GEOM::GEOM_IKindOfShape::PLANE: + aKindStr = tr( "GEOM_PLANE" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_NORMAL" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ); + break; + case GEOM::GEOM_IKindOfShape::PLANAR: + aKindStr = tr( "GEOM_PLANAR_FACE" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_NORMAL" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ); + break; + case GEOM::GEOM_IKindOfShape::FACE: + aKindStr = tr( "GEOM_FACE" ); + break; + // EDGEs + case GEOM::GEOM_IKindOfShape::CIRCLE: + aKindStr = tr( "GEOM_CIRCLE" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_NORMAL" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS" ) + PRINT_DOUBLE( aDbls[6] ); + break; + case GEOM::GEOM_IKindOfShape::ARC_CIRCLE: + aKindStr = tr( "GEOM_ARC" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_NORMAL" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS" ) + PRINT_DOUBLE( aDbls[6] ) + + "\n" + tr( "GEOM_POINT_I" ).arg( 1 ) + + "\n" + tr( "GEOM_X_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[7] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[8] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[9] ) + + "\n" + tr( "GEOM_POINT_I" ).arg( 2 ) + + "\n" + tr( "GEOM_X_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[10] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[11] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[12] ); + break; + case GEOM::GEOM_IKindOfShape::ELLIPSE: + aKindStr = tr( "GEOM_ELLIPSE" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_NORMAL" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS_MAJOR" ) + PRINT_DOUBLE( aDbls[6] ) + + "\n" + tr( "GEOM_RADIUS_MINOR" ) + PRINT_DOUBLE( aDbls[7] ); + break; + case GEOM::GEOM_IKindOfShape::ARC_ELLIPSE: + aKindStr = tr( "GEOM_ARC_ELLIPSE" ); + theParameters = tr( "GEOM_CENTER" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_NORMAL" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ) + + "\n" + tr( "GEOM_DIMENSIONS" ) + + "\n" + tr( "GEOM_RADIUS_MAJOR" ) + PRINT_DOUBLE( aDbls[6] ) + + "\n" + tr( "GEOM_RADIUS_MINOR" ) + PRINT_DOUBLE( aDbls[7] ) + + "\n" + tr( "GEOM_POINT_I" ).arg( 1 ) + + "\n" + tr( "GEOM_X_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[8] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[9] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[10] ) + + "\n" + tr( "GEOM_POINT_I" ).arg( 2 ) + + "\n" + tr( "GEOM_X_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[11] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[12] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[13] ); + break; + case GEOM::GEOM_IKindOfShape::LINE: + aKindStr = tr( "GEOM_LINE" ); + theParameters = tr( "GEOM_POSITION" ) + + "\n" + tr( "GEOM_X_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 0 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_DIRECTION" ) + + "\n" + tr( "GEOM_DX" ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_DY" ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_DZ" ) + PRINT_DOUBLE( aDbls[5] ); + break; + case GEOM::GEOM_IKindOfShape::SEGMENT: + aKindStr = tr( "GEOM_SEGMENT" ); + theParameters = tr( "GEOM_POINT_I" ).arg( 1 ) + + "\n" + tr( "GEOM_X_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 1 ) + PRINT_DOUBLE( aDbls[2] ) + + "\n" + tr( "GEOM_POINT_I" ).arg( 2 ) + + "\n" + tr( "GEOM_X_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[3] ) + + "\n" + tr( "GEOM_Y_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[4] ) + + "\n" + tr( "GEOM_Z_I" ).arg( 2 ) + PRINT_DOUBLE( aDbls[5] ); + break; + case GEOM::GEOM_IKindOfShape::EDGE: + aKindStr = tr( "GEOM_EDGE" ); + break; + case GEOM::GEOM_IKindOfShape::VERTEX: + aKindStr = tr( "GEOM_VERTEX" ); + theParameters = tr( "GEOM_COORDINATES" ) + + "\n" + tr( "GEOM_X" ) + PRINT_DOUBLE( aDbls[0] ) + + "\n" + tr( "GEOM_Y" ) + PRINT_DOUBLE( aDbls[1] ) + + "\n" + tr( "GEOM_Z" ) + PRINT_DOUBLE( aDbls[2] ); + break; + default: + break; + } + + return aKindStr; } diff --git a/src/MeasureGUI/MeasureGUI_WhatisDlg.h b/src/MeasureGUI/MeasureGUI_WhatisDlg.h index 10f3ccf71..432cdd82d 100644 --- a/src/MeasureGUI/MeasureGUI_WhatisDlg.h +++ b/src/MeasureGUI/MeasureGUI_WhatisDlg.h @@ -1,67 +1,64 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : MeasureGUI_WhatisDlg.h -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - -#ifndef DIALOGBOX_WHATIS_H -#define DIALOGBOX_WHATIS_H - -#include "GEOM_MeasureGUI.hxx" +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : MeasureGUI_WhatisDlg.h +// Author : Nicolas REJNERI, Open CASCADE S.A.S. +// +#ifndef MEASUREGUI_WHATISDLG_H +#define MEASUREGUI_WHATISDLG_H #include "MeasureGUI_Skeleton.h" -class MeasureGUI_1Sel1TextView_QTD; +class QMessageBox; //================================================================================= -// class : DialogBox_PROPERTIES +// class : MeasureGUI_WhatisDlg // purpose : //================================================================================= -class GEOM_MEASUREGUI_EXPORT MeasureGUI_WhatisDlg : public MeasureGUI_Skeleton +class MeasureGUI_WhatisDlg : public MeasureGUI_Skeleton { - Q_OBJECT + Q_OBJECT + class Whatis; + public: - MeasureGUI_WhatisDlg( GeometryGUI* GUI, - QWidget* parent ); - ~MeasureGUI_WhatisDlg(); + MeasureGUI_WhatisDlg( GeometryGUI*, QWidget* ); + ~MeasureGUI_WhatisDlg(); protected: - - // redefined from GEOMBase_Helper and MeasureGUI_Skeleton - virtual void processObject(); + // redefined from GEOMBase_Helper and MeasureGUI_Skeleton + virtual void processObject(); + +protected slots: + virtual void ClickOnProperties(); private: - - void Init(); - bool getParameters( QString& ); - + void Init(); + bool getParameters( QString& ); + QString getKindOfShape( QString& ); + private: - - MeasureGUI_1Sel1TextView_QTD* myGrp; - + Whatis* myGrp; + QMessageBox* myParamsDlg; }; -#endif // DIALOGBOX_WHATIS_H +#endif // MEASUREGUI_WHATISDLG_H diff --git a/src/MeasureGUI/MeasureGUI_Widgets.cxx b/src/MeasureGUI/MeasureGUI_Widgets.cxx new file mode 100644 index 000000000..bac7f4a28 --- /dev/null +++ b/src/MeasureGUI/MeasureGUI_Widgets.cxx @@ -0,0 +1,152 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : MeasureGUI_Widgets.cxx +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +// +#include "MeasureGUI_Widgets.h" + +////////////////////////////////////////// +// MeasureGUI_1Sel12LineEdit +////////////////////////////////////////// + +MeasureGUI_1Sel12LineEdit::MeasureGUI_1Sel12LineEdit( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} +MeasureGUI_1Sel12LineEdit::~MeasureGUI_1Sel12LineEdit() +{ +} + +////////////////////////////////////////// +// MeasureGUI_1Sel1TextView1Check +////////////////////////////////////////// + +MeasureGUI_1Sel1TextView1Check::MeasureGUI_1Sel1TextView1Check( QWidget* parent, + Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +MeasureGUI_1Sel1TextView1Check::~MeasureGUI_1Sel1TextView1Check() +{ +} + +////////////////////////////////////////// +// MeasureGUI_1Sel1TextView2ListBox +////////////////////////////////////////// + +MeasureGUI_1Sel1TextView2ListBox::MeasureGUI_1Sel1TextView2ListBox( QWidget* parent, + Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +MeasureGUI_1Sel1TextView2ListBox::~MeasureGUI_1Sel1TextView2ListBox() +{ +} + +////////////////////////////////////////// +// MeasureGUI_1Sel1TextView +////////////////////////////////////////// + +MeasureGUI_1Sel1TextView::MeasureGUI_1Sel1TextView( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +MeasureGUI_1Sel1TextView::~MeasureGUI_1Sel1TextView() +{ +} + +////////////////////////////////////////// +// MeasureGUI_1Sel3LineEdit +////////////////////////////////////////// + +MeasureGUI_1Sel3LineEdit::MeasureGUI_1Sel3LineEdit( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +MeasureGUI_1Sel3LineEdit::~MeasureGUI_1Sel3LineEdit() +{ +} + +////////////////////////////////////////// +// MeasureGUI_1Sel6LineEdit +////////////////////////////////////////// + +MeasureGUI_1Sel6LineEdit::MeasureGUI_1Sel6LineEdit( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +MeasureGUI_1Sel6LineEdit::~MeasureGUI_1Sel6LineEdit() +{ +} + +////////////////////////////////////////// +// MeasureGUI_2Sel1LineEdit +////////////////////////////////////////// + +MeasureGUI_2Sel1LineEdit::MeasureGUI_2Sel1LineEdit( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +MeasureGUI_2Sel1LineEdit::~MeasureGUI_2Sel1LineEdit() +{ +} + +////////////////////////////////////////// +// MeasureGUI_2Sel4LineEdit +////////////////////////////////////////// + +MeasureGUI_2Sel4LineEdit::MeasureGUI_2Sel4LineEdit( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +MeasureGUI_2Sel4LineEdit::~MeasureGUI_2Sel4LineEdit() +{ +} + +////////////////////////////////////////// +// MeasureGUI_SkeletonBox +////////////////////////////////////////// + +MeasureGUI_SkeletonBox::MeasureGUI_SkeletonBox( QWidget* parent, Qt::WindowFlags f ) +: QWidget( parent, f ) +{ + setupUi( this ); +} + +MeasureGUI_SkeletonBox::~MeasureGUI_SkeletonBox() +{ +} diff --git a/src/MeasureGUI/MeasureGUI_Widgets.h b/src/MeasureGUI/MeasureGUI_Widgets.h new file mode 100644 index 000000000..8ef4837a2 --- /dev/null +++ b/src/MeasureGUI/MeasureGUI_Widgets.h @@ -0,0 +1,172 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : MeasureGUI_Widgets.h +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +// +#ifndef MEASUREGUI_WIDGETS_H +#define MEASUREGUI_WIDGETS_H + +////////////////////////////////////////// +// MeasureGUI_1Sel12LineEdit +////////////////////////////////////////// + +#include "ui_MeasureGUI_1Sel12LineEdit_QTD.h" + +class MeasureGUI_1Sel12LineEdit : public QWidget, + public Ui::MeasureGUI_1Sel12LineEdit_QTD +{ + Q_OBJECT + +public: + MeasureGUI_1Sel12LineEdit( QWidget* = 0, Qt::WindowFlags = 0 ); + ~MeasureGUI_1Sel12LineEdit(); +}; + +////////////////////////////////////////// +// MeasureGUI_1Sel1TextView1Check +////////////////////////////////////////// + +#include "ui_MeasureGUI_1Sel1TextView1Check_QTD.h" + +class MeasureGUI_1Sel1TextView1Check : public QWidget, + public Ui::MeasureGUI_1Sel1TextView1Check_QTD +{ + Q_OBJECT + +public: + MeasureGUI_1Sel1TextView1Check( QWidget* = 0, Qt::WindowFlags = 0 ); + ~MeasureGUI_1Sel1TextView1Check(); +}; + +////////////////////////////////////////// +// MeasureGUI_1Sel1TextView2ListBox +////////////////////////////////////////// + +#include "ui_MeasureGUI_1Sel1TextView2ListBox_QTD.h" + +class MeasureGUI_1Sel1TextView2ListBox : public QWidget, + public Ui::MeasureGUI_1Sel1TextView2ListBox_QTD +{ + Q_OBJECT + +public: + MeasureGUI_1Sel1TextView2ListBox( QWidget* = 0, Qt::WindowFlags = 0 ); + ~MeasureGUI_1Sel1TextView2ListBox(); +}; + +////////////////////////////////////////// +// MeasureGUI_1Sel1TextView +////////////////////////////////////////// + +#include "ui_MeasureGUI_1Sel1TextView_QTD.h" + +class MeasureGUI_1Sel1TextView : public QWidget, + public Ui::MeasureGUI_1Sel1TextView_QTD +{ + Q_OBJECT + +public: + MeasureGUI_1Sel1TextView( QWidget* = 0, Qt::WindowFlags = 0 ); + ~MeasureGUI_1Sel1TextView(); +}; + +////////////////////////////////////////// +// MeasureGUI_1Sel3LineEdit +////////////////////////////////////////// + +#include "ui_MeasureGUI_1Sel3LineEdit_QTD.h" + +class MeasureGUI_1Sel3LineEdit : public QWidget, + public Ui::MeasureGUI_1Sel3LineEdit_QTD +{ + Q_OBJECT + +public: + MeasureGUI_1Sel3LineEdit( QWidget* = 0, Qt::WindowFlags = 0 ); + ~MeasureGUI_1Sel3LineEdit(); +}; + +////////////////////////////////////////// +// MeasureGUI_1Sel6LineEdit +////////////////////////////////////////// + +#include "ui_MeasureGUI_1Sel6LineEdit_QTD.h" + +class MeasureGUI_1Sel6LineEdit : public QWidget, + public Ui::MeasureGUI_1Sel6LineEdit_QTD +{ + Q_OBJECT + +public: + MeasureGUI_1Sel6LineEdit( QWidget* = 0, Qt::WindowFlags = 0 ); + ~MeasureGUI_1Sel6LineEdit(); +}; + +////////////////////////////////////////// +// MeasureGUI_2Sel1LineEdit +////////////////////////////////////////// + +#include "ui_MeasureGUI_2Sel1LineEdit_QTD.h" + +class MeasureGUI_2Sel1LineEdit : public QWidget, + public Ui::MeasureGUI_2Sel1LineEdit_QTD +{ + Q_OBJECT + +public: + MeasureGUI_2Sel1LineEdit( QWidget* = 0, Qt::WindowFlags = 0 ); + ~MeasureGUI_2Sel1LineEdit(); +}; + +////////////////////////////////////////// +// MeasureGUI_2Sel4LineEdit +////////////////////////////////////////// + +#include "ui_MeasureGUI_2Sel4LineEdit_QTD.h" + +class MeasureGUI_2Sel4LineEdit : public QWidget, + public Ui::MeasureGUI_2Sel4LineEdit_QTD +{ + Q_OBJECT + +public: + MeasureGUI_2Sel4LineEdit( QWidget* = 0, Qt::WindowFlags = 0 ); + ~MeasureGUI_2Sel4LineEdit(); +}; + +////////////////////////////////////////// +// MeasureGUI_SkeletonBox +////////////////////////////////////////// + +#include "ui_MeasureGUI_SkeletonBox_QTD.h" + +class MeasureGUI_SkeletonBox : public QWidget, + public Ui::MeasureGUI_SkeletonBox_QTD +{ + Q_OBJECT + +public: + MeasureGUI_SkeletonBox( QWidget* = 0, Qt::WindowFlags = 0 ); + ~MeasureGUI_SkeletonBox(); +}; + +#endif // MEASUREGUI_WIDGETS_H diff --git a/src/MeasureGUI/UIFiles/MeasureGUI_1Sel12LineEdit_QTD.ui b/src/MeasureGUI/UIFiles/MeasureGUI_1Sel12LineEdit_QTD.ui deleted file mode 100644 index 505b87b68..000000000 --- a/src/MeasureGUI/UIFiles/MeasureGUI_1Sel12LineEdit_QTD.ui +++ /dev/null @@ -1,268 +0,0 @@ - -MeasureGUI_1Sel12LineEdit_QTD - - - MeasureGUI_1Sel12LineEdit_QTD - - - - 0 - 0 - 131 - 171 - - - - MeasureGUI_1Sel12LineEdit_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - 7 - 7 - 0 - 0 - - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - LineEdit12 - - - - - LineEdit11 - - - - - LineEdit42 - - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - LineEdit31 - - - - - LineEdit41 - - - - - LineEdit23 - - - - - LineEdit33 - - - - - LineEdit43 - - - - - LineEdit22 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - LineEdit13 - - - - - LineEdit32 - - - - - LineEdit21 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - - - LineEdit1 - - - - - Spacer8 - - - Vertical - - - Expanding - - - - 0 - 40 - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - - - - - - diff --git a/src/MeasureGUI/UIFiles/MeasureGUI_1Sel1TextView_QTD.ui b/src/MeasureGUI/UIFiles/MeasureGUI_1Sel1TextView_QTD.ui deleted file mode 100644 index d8e24583e..000000000 --- a/src/MeasureGUI/UIFiles/MeasureGUI_1Sel1TextView_QTD.ui +++ /dev/null @@ -1,116 +0,0 @@ - -MeasureGUI_1Sel1TextView_QTD - - - MeasureGUI_1Sel1TextView_QTD - - - - 0 - 0 - 130 - 160 - - - - MeasureGUI_1Sel1TextView_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - 7 - 7 - 0 - 0 - - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - TextEdit1 - - - - - LineEdit1 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - diff --git a/src/MeasureGUI/UIFiles/MeasureGUI_1Sel3LineEdit_QTD.ui b/src/MeasureGUI/UIFiles/MeasureGUI_1Sel3LineEdit_QTD.ui deleted file mode 100644 index 07db7bfb0..000000000 --- a/src/MeasureGUI/UIFiles/MeasureGUI_1Sel3LineEdit_QTD.ui +++ /dev/null @@ -1,191 +0,0 @@ - -MeasureGUI_1Sel3LineEdit_QTD - - - MeasureGUI_1Sel3LineEdit_QTD - - - - 0 - 0 - 129 - 141 - - - - MeasureGUI_1Sel3LineEdit_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - 7 - 7 - 0 - 0 - - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - LineEdit4 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - LineEdit2 - - - - - Spacer8 - - - Vertical - - - Expanding - - - - 0 - 80 - - - - - - LineEdit3 - - - - - LineEdit1 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - diff --git a/src/MeasureGUI/UIFiles/MeasureGUI_1Sel6LineEdit_QTD.ui b/src/MeasureGUI/UIFiles/MeasureGUI_1Sel6LineEdit_QTD.ui deleted file mode 100644 index b439a76de..000000000 --- a/src/MeasureGUI/UIFiles/MeasureGUI_1Sel6LineEdit_QTD.ui +++ /dev/null @@ -1,254 +0,0 @@ - -MeasureGUI_1Sel6LineEdit_QTD - - - MeasureGUI_1Sel6LineEdit_QTD - - - - 0 - 0 - 129 - 163 - - - - MeasureGUI_1Sel6LineEdit_QTD - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - 7 - 7 - 0 - 0 - - - - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - Spacer8 - - - Vertical - - - Expanding - - - - 0 - 50 - - - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - TL1 - - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - LineEdit22 - - - - - LineEdit32 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - TL4 - - - - - LineEdit31 - - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - TL5 - - - - - LineEdit11 - - - - - TextLabel6 - - - - 0 - 0 - 0 - 0 - - - - TL6 - - - - - LineEdit12 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - TL2 - - - - - LineEdit21 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - TL3 - - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - - - - LineEdit1 - - - - - - - - - - diff --git a/src/MeasureGUI/UIFiles/MeasureGUI_2Sel1LineEdit_QTD.ui b/src/MeasureGUI/UIFiles/MeasureGUI_2Sel1LineEdit_QTD.ui deleted file mode 100644 index 0cb627406..000000000 --- a/src/MeasureGUI/UIFiles/MeasureGUI_2Sel1LineEdit_QTD.ui +++ /dev/null @@ -1,165 +0,0 @@ - -MeasureGUI_2Sel1LineEdit_QTD - - - MeasureGUI_2Sel1LineEdit_QTD - - - - 0 - 0 - 129 - 115 - - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - 7 - 7 - 0 - 0 - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - LineEdit1 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - LineEdit2 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - - - LineEdit3 - - - - - Spacer8 - - - Vertical - - - Expanding - - - - 0 - 60 - - - - - - - - - - - diff --git a/src/MeasureGUI/UIFiles/MeasureGUI_2Sel4LineEdit_QTD.ui b/src/MeasureGUI/UIFiles/MeasureGUI_2Sel4LineEdit_QTD.ui deleted file mode 100644 index 8fb9b3184..000000000 --- a/src/MeasureGUI/UIFiles/MeasureGUI_2Sel4LineEdit_QTD.ui +++ /dev/null @@ -1,219 +0,0 @@ - -MeasureGUI_2Sel4LineEdit_QTD - - - MeasureGUI_2Sel4LineEdit_QTD - - - - 0 - 0 - 129 - 163 - - - - - unnamed - - - 0 - - - 6 - - - - GroupBox1 - - - - 7 - 7 - 0 - 0 - - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - TextLabel1 - - - - 0 - 0 - 0 - 0 - - - - - - PushButton1 - - - - 0 - 0 - 0 - 0 - - - - - - LineEdit1 - - - - - TextLabel2 - - - - 0 - 0 - 0 - 0 - - - - - - PushButton2 - - - - 0 - 0 - 0 - 0 - - - - - - LineEdit2 - - - - - TextLabel3 - - - - 0 - 0 - 0 - 0 - - - - - - LineEdit3 - - - - - TextLabel4 - - - - 0 - 0 - 0 - 0 - - - - - - LineEdit4 - - - - - TextLabel5 - - - - 0 - 0 - 0 - 0 - - - - - - LineEdit5 - - - - - TextLabel6 - - - - 0 - 0 - 0 - 0 - - - - - - LineEdit6 - - - - - Spacer8 - - - Vertical - - - Expanding - - - - 0 - 60 - - - - - - - - - - - diff --git a/src/MeasureGUI/UIFiles/MeasureGUI_Skeleton_QTD.ui b/src/MeasureGUI/UIFiles/MeasureGUI_Skeleton_QTD.ui deleted file mode 100644 index fa012c203..000000000 --- a/src/MeasureGUI/UIFiles/MeasureGUI_Skeleton_QTD.ui +++ /dev/null @@ -1,167 +0,0 @@ - -MeasureGUI_Skeleton_QTD - - - MeasureGUI_Skeleton_QTD - - - - 0 - 0 - 228 - 266 - - - - - 5 - 7 - 0 - 0 - - - - true - - - - unnamed - - - 11 - - - 6 - - - - Layout1 - - - - unnamed - - - 0 - - - 6 - - - - GroupButtons - - - - 7 - 0 - 0 - 0 - - - - - unnamed - - - 11 - - - 6 - - - - Layout3 - - - - unnamed - - - 0 - - - 6 - - - - Spacer1 - - - Horizontal - - - Expanding - - - - 120 - 0 - - - - - - buttonClose - - - - - buttonHelp - - - - - - - - - GroupConstructors - - - - 5 - 0 - 0 - 0 - - - - - unnamed - - - 11 - - - 6 - - - - Layout2 - - - - unnamed - - - 0 - - - 6 - - - - RadioButton1 - - - - - - - - - - - - diff --git a/src/MeasureGUI/UIFiles/ui_to_cxx b/src/MeasureGUI/UIFiles/ui_to_cxx deleted file mode 100755 index eea9301e5..000000000 --- a/src/MeasureGUI/UIFiles/ui_to_cxx +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -#!/bin/sh - -#uic -o MeasureGUI_Skeleton_QTD.h MeasureGUI_Skeleton_QTD.ui -#uic -o MeasureGUI_Skeleton_QTD.cxx -impl MeasureGUI_Skeleton_QTD.h MeasureGUI_Skeleton_QTD.ui - -uic -o MeasureGUI_1Sel3LineEdit_QTD.h MeasureGUI_1Sel3LineEdit_QTD.ui -uic -o MeasureGUI_1Sel3LineEdit_QTD.cxx -impl MeasureGUI_1Sel3LineEdit_QTD.h MeasureGUI_1Sel3LineEdit_QTD.ui - -uic -o MeasureGUI_1Sel6LineEdit_QTD.h MeasureGUI_1Sel6LineEdit_QTD.ui -uic -o MeasureGUI_1Sel6LineEdit_QTD.cxx -impl MeasureGUI_1Sel6LineEdit_QTD.h MeasureGUI_1Sel6LineEdit_QTD.ui - -uic -o MeasureGUI_1Sel12LineEdit_QTD.h MeasureGUI_1Sel12LineEdit_QTD.ui -uic -o MeasureGUI_1Sel12LineEdit_QTD.cxx -impl MeasureGUI_1Sel12LineEdit_QTD.h MeasureGUI_1Sel12LineEdit_QTD.ui - -uic -o MeasureGUI_2Sel1LineEdit_QTD.h MeasureGUI_2Sel1LineEdit_QTD.ui -uic -o MeasureGUI_2Sel1LineEdit_QTD.cxx -impl MeasureGUI_2Sel1LineEdit_QTD.h MeasureGUI_2Sel1LineEdit_QTD.ui - -uic -o MeasureGUI_2Sel4LineEdit_QTD.h MeasureGUI_2Sel4LineEdit_QTD.ui -uic -o MeasureGUI_2Sel4LineEdit_QTD.cxx -impl MeasureGUI_2Sel4LineEdit_QTD.h MeasureGUI_2Sel4LineEdit_QTD.ui - -#uic -o MeasureGUI_1Sel1TextView_QTD.h MeasureGUI_1Sel1TextView_QTD.ui -#uic -o MeasureGUI_1Sel1TextView_QTD.cxx -impl MeasureGUI_1Sel1TextView_QTD.h MeasureGUI_1Sel1TextView_QTD.ui diff --git a/src/NMTAlgo/Makefile.am b/src/NMTAlgo/Makefile.am index 9968f3522..407b7510b 100644 --- a/src/NMTAlgo/Makefile.am +++ b/src/NMTAlgo/Makefile.am @@ -1,63 +1,77 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM NMTAlgo : partition algorithm -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.in # Author : Julia DOROVSKIKH # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = \ - NMTAlgo_Splitter1.hxx \ - NMTAlgo_Splitter.hxx \ - NMTAlgo_Builder.hxx \ - NMTAlgo_Algo.hxx +salomeinclude_HEADERS = \ + NMTAlgo_Splitter1.hxx \ + NMTAlgo_Splitter1.ixx \ + NMTAlgo_Splitter1.jxx \ + NMTAlgo_Splitter.hxx \ + NMTAlgo_Splitter.ixx \ + NMTAlgo_Splitter.jxx \ + NMTAlgo_Builder.hxx \ + NMTAlgo_Builder.ixx \ + NMTAlgo_Builder.jxx \ + NMTAlgo_Algo.hxx \ + NMTAlgo_Algo.ixx \ + NMTAlgo_Algo.jxx \ + NMTAlgo_Loop3d.hxx \ + NMTAlgo_Loop3d.ixx \ + NMTAlgo_Loop3d.jxx \ + NMTAlgo_Tools.hxx \ + NMTAlgo_Tools.ixx \ + NMTAlgo_Tools.jxx # Libraries targets lib_LTLIBRARIES = libNMTAlgo.la -dist_libNMTAlgo_la_SOURCES = \ - NMTAlgo_Algo.cxx \ - NMTAlgo_Builder.cxx \ - NMTAlgo_Loop3d.cxx \ - NMTAlgo_Splitter.cxx \ - NMTAlgo_Splitter1.cxx \ - NMTAlgo_Splitter_1.cxx \ - NMTAlgo_Splitter_2.cxx \ +dist_libNMTAlgo_la_SOURCES = \ + NMTAlgo_Algo.cxx \ + NMTAlgo_Builder.cxx \ + NMTAlgo_Loop3d.cxx \ + NMTAlgo_Splitter.cxx \ + NMTAlgo_Splitter1.cxx \ + NMTAlgo_Splitter_1.cxx \ + NMTAlgo_Splitter_2.cxx \ NMTAlgo_Tools.cxx -# additionnal information to compil and link file -libNMTAlgo_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - -I$(srcdir)/../NMTDS \ +# additional information to compile and link file + +libNMTAlgo_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + -I$(srcdir)/../NMTDS \ -I$(srcdir)/../NMTTools -libNMTAlgo_la_LDFLAGS = \ - $(STDLIB) \ - $(CAS_LDPATH) -lTKBool -lTKBO \ - $(KERNEL_LDFLAGS) \ +libNMTAlgo_la_LDFLAGS = \ + $(STDLIB) \ + $(CAS_LDPATH) -lTKBool -lTKBO \ + $(KERNEL_LDFLAGS) \ ../NMTTools/libNMTTools.la diff --git a/src/NMTAlgo/NMTAlgo.cdl b/src/NMTAlgo/NMTAlgo.cdl index 46ae4c50b..1af7ea7e2 100644 --- a/src/NMTAlgo/NMTAlgo.cdl +++ b/src/NMTAlgo/NMTAlgo.cdl @@ -1,27 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: NMTAlgo.cdl --- Created: Tue Jan 27 14:39:05 2004 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2004 +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTAlgo.cdl +-- Created: Tue Jan 27 14:39:05 2004 +-- Author: Peter KURNEV package NMTAlgo diff --git a/src/NMTAlgo/NMTAlgo.pro b/src/NMTAlgo/NMTAlgo.pro new file mode 100644 index 000000000..213e5be2b --- /dev/null +++ b/src/NMTAlgo/NMTAlgo.pro @@ -0,0 +1,66 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = NMTAlgo +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} ../NMTDS ../NMTTools + +LIBS += $${STDLIB} $${CAS_LDPATH} -lTKBool -lTKBO $${KERNEL_LDFLAGS} -L$$(GEOM_ROOT_DIR)/lib -lNMTTools + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +HEADERS = NMTAlgo_Splitter1.hxx +HEADERS += NMTAlgo_Splitter.hxx +HEADERS += NMTAlgo_Builder.hxx +HEADERS += NMTAlgo_Algo.hxx + +SOURCES = NMTAlgo_Algo.cxx +SOURCES += NMTAlgo_Builder.cxx +SOURCES += NMTAlgo_Loop3d.cxx +SOURCES += NMTAlgo_Splitter.cxx +SOURCES += NMTAlgo_Splitter1.cxx +SOURCES += NMTAlgo_Splitter_1.cxx +SOURCES += NMTAlgo_Splitter_2.cxx +SOURCES += NMTAlgo_Tools.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/NMTAlgo/NMTAlgo_Algo.cdl b/src/NMTAlgo/NMTAlgo_Algo.cdl index e7d031398..546ab20e8 100644 --- a/src/NMTAlgo/NMTAlgo_Algo.cdl +++ b/src/NMTAlgo/NMTAlgo_Algo.cdl @@ -1,27 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: NMTAlgo_Algo.cdl --- Created: Tue Jan 27 14:41:04 2004 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2004 +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTAlgo_Algo.cdl +-- Created: Tue Jan 27 14:41:04 2004 +-- Author: Peter KURNEV deferred class Algo from NMTAlgo diff --git a/src/NMTAlgo/NMTAlgo_Algo.cxx b/src/NMTAlgo/NMTAlgo_Algo.cxx index 7e21d48c9..3beffd3db 100644 --- a/src/NMTAlgo/NMTAlgo_Algo.cxx +++ b/src/NMTAlgo/NMTAlgo_Algo.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTAlgo_Algo.cxx // Created: Tue Jan 27 14:58:21 2004 // Author: Peter KURNEV // - - +// #include #include //======================================================================= diff --git a/src/NMTAlgo/NMTAlgo_Algo.hxx b/src/NMTAlgo/NMTAlgo_Algo.hxx index b7012d17a..dc73c1088 100644 --- a/src/NMTAlgo/NMTAlgo_Algo.hxx +++ b/src/NMTAlgo/NMTAlgo_Algo.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTAlgo_Algo_HeaderFile #define _NMTAlgo_Algo_HeaderFile diff --git a/src/NMTAlgo/NMTAlgo_Algo.ixx b/src/NMTAlgo/NMTAlgo_Algo.ixx index d27ea6328..cb4c135df 100644 --- a/src/NMTAlgo/NMTAlgo_Algo.ixx +++ b/src/NMTAlgo/NMTAlgo_Algo.ixx @@ -1,20 +1,22 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTAlgo/NMTAlgo_Algo.jxx b/src/NMTAlgo/NMTAlgo_Algo.jxx index 9704d760e..fc8787025 100644 --- a/src/NMTAlgo/NMTAlgo_Algo.jxx +++ b/src/NMTAlgo/NMTAlgo_Algo.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _NMTTools_DSFiller_HeaderFile #include diff --git a/src/NMTAlgo/NMTAlgo_Builder.cdl b/src/NMTAlgo/NMTAlgo_Builder.cdl index 8a0982428..9527e0a21 100644 --- a/src/NMTAlgo/NMTAlgo_Builder.cdl +++ b/src/NMTAlgo/NMTAlgo_Builder.cdl @@ -1,27 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: NMTAlgo_Builder.cdl --- Created: Tue Jan 27 15:09:45 2004 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2004 +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTAlgo_Builder.cdl +-- Created: Tue Jan 27 15:09:45 2004 +-- Author: Peter KURNEV class Builder from NMTAlgo diff --git a/src/NMTAlgo/NMTAlgo_Builder.cxx b/src/NMTAlgo/NMTAlgo_Builder.cxx index cd422a419..b5a1fceb9 100644 --- a/src/NMTAlgo/NMTAlgo_Builder.cxx +++ b/src/NMTAlgo/NMTAlgo_Builder.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTAlgo_Inter3d.cxx // Created: Tue Jan 27 15:14:13 2004 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTAlgo/NMTAlgo_Builder.hxx b/src/NMTAlgo/NMTAlgo_Builder.hxx index e4ac3fc35..a5df73c8e 100644 --- a/src/NMTAlgo/NMTAlgo_Builder.hxx +++ b/src/NMTAlgo/NMTAlgo_Builder.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTAlgo_Builder_HeaderFile #define _NMTAlgo_Builder_HeaderFile diff --git a/src/NMTAlgo/NMTAlgo_Builder.ixx b/src/NMTAlgo/NMTAlgo_Builder.ixx index 8b48a26b7..283ec7648 100644 --- a/src/NMTAlgo/NMTAlgo_Builder.ixx +++ b/src/NMTAlgo/NMTAlgo_Builder.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTAlgo/NMTAlgo_Builder.jxx b/src/NMTAlgo/NMTAlgo_Builder.jxx index 874fa7fc2..f3e4dbe5a 100644 --- a/src/NMTAlgo/NMTAlgo_Builder.jxx +++ b/src/NMTAlgo/NMTAlgo_Builder.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _NMTTools_DSFiller_HeaderFile #include diff --git a/src/NMTAlgo/NMTAlgo_Loop3d.cdl b/src/NMTAlgo/NMTAlgo_Loop3d.cdl index 0ed4be963..190825523 100644 --- a/src/NMTAlgo/NMTAlgo_Loop3d.cdl +++ b/src/NMTAlgo/NMTAlgo_Loop3d.cdl @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- class Loop3d from NMTAlgo diff --git a/src/NMTAlgo/NMTAlgo_Loop3d.cxx b/src/NMTAlgo/NMTAlgo_Loop3d.cxx index bdf053b2a..5517e95c7 100644 --- a/src/NMTAlgo/NMTAlgo_Loop3d.cxx +++ b/src/NMTAlgo/NMTAlgo_Loop3d.cxx @@ -1,25 +1,26 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - //using namespace std; - +// #include #include diff --git a/src/NMTAlgo/NMTAlgo_Loop3d.hxx b/src/NMTAlgo/NMTAlgo_Loop3d.hxx index 8285773d1..b0dfb5adb 100644 --- a/src/NMTAlgo/NMTAlgo_Loop3d.hxx +++ b/src/NMTAlgo/NMTAlgo_Loop3d.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTAlgo_Loop3d_HeaderFile #define _NMTAlgo_Loop3d_HeaderFile diff --git a/src/NMTAlgo/NMTAlgo_Loop3d.ixx b/src/NMTAlgo/NMTAlgo_Loop3d.ixx index 98aaa0570..97c229d65 100644 --- a/src/NMTAlgo/NMTAlgo_Loop3d.ixx +++ b/src/NMTAlgo/NMTAlgo_Loop3d.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTAlgo/NMTAlgo_Loop3d.jxx b/src/NMTAlgo/NMTAlgo_Loop3d.jxx index 0c62ad933..02c10b8dd 100644 --- a/src/NMTAlgo/NMTAlgo_Loop3d.jxx +++ b/src/NMTAlgo/NMTAlgo_Loop3d.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _TopoDS_Shape_HeaderFile #include diff --git a/src/NMTAlgo/NMTAlgo_Splitter.cdl b/src/NMTAlgo/NMTAlgo_Splitter.cdl index 7d0f5ac85..48f5dbd6e 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter.cdl +++ b/src/NMTAlgo/NMTAlgo_Splitter.cdl @@ -1,27 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- -- File: NMTAlgo_Splitter.cdl -- Created: Tue Jan 27 15:09:45 2004 -- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2004 class Splitter from NMTAlgo diff --git a/src/NMTAlgo/NMTAlgo_Splitter.cxx b/src/NMTAlgo/NMTAlgo_Splitter.cxx index a92245346..56a5de310 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter.cxx +++ b/src/NMTAlgo/NMTAlgo_Splitter.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTAlgo_Splitter.cxx // Created: Thu Jan 29 17:13:03 2004 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTAlgo/NMTAlgo_Splitter.hxx b/src/NMTAlgo/NMTAlgo_Splitter.hxx index cad4113f6..64aa244e4 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter.hxx +++ b/src/NMTAlgo/NMTAlgo_Splitter.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTAlgo_Splitter_HeaderFile #define _NMTAlgo_Splitter_HeaderFile diff --git a/src/NMTAlgo/NMTAlgo_Splitter.ixx b/src/NMTAlgo/NMTAlgo_Splitter.ixx index 7631ad17c..53377eb6e 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter.ixx +++ b/src/NMTAlgo/NMTAlgo_Splitter.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTAlgo/NMTAlgo_Splitter.jxx b/src/NMTAlgo/NMTAlgo_Splitter.jxx index ec30120cd..f76213b04 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter.jxx +++ b/src/NMTAlgo/NMTAlgo_Splitter.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _TopoDS_Shape_HeaderFile #include diff --git a/src/NMTAlgo/NMTAlgo_Splitter1.cdl b/src/NMTAlgo/NMTAlgo_Splitter1.cdl index 0bbdc6484..8449ca340 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter1.cdl +++ b/src/NMTAlgo/NMTAlgo_Splitter1.cdl @@ -1,27 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: NMTAlgo_Splitter1.cdl --- Created: Wed Feb 11 14:23:25 2004 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2004 +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTAlgo_Splitter1.cdl +-- Created: Wed Feb 11 14:23:25 2004 +-- Author: Peter KURNEV class Splitter1 from NMTAlgo diff --git a/src/NMTAlgo/NMTAlgo_Splitter1.cxx b/src/NMTAlgo/NMTAlgo_Splitter1.cxx index b4f21b09d..911e7a8f9 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter1.cxx +++ b/src/NMTAlgo/NMTAlgo_Splitter1.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTAlgo_Splitter1.cxx // Created: Wed Feb 11 14:26:27 2004 // Author: Peter KURNEV // - - +// #include #include #include diff --git a/src/NMTAlgo/NMTAlgo_Splitter1.hxx b/src/NMTAlgo/NMTAlgo_Splitter1.hxx index d0c25b76d..c9e733d3e 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter1.hxx +++ b/src/NMTAlgo/NMTAlgo_Splitter1.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTAlgo_Splitter1_HeaderFile #define _NMTAlgo_Splitter1_HeaderFile diff --git a/src/NMTAlgo/NMTAlgo_Splitter1.ixx b/src/NMTAlgo/NMTAlgo_Splitter1.ixx index 99a4b81d3..479cf4180 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter1.ixx +++ b/src/NMTAlgo/NMTAlgo_Splitter1.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTAlgo/NMTAlgo_Splitter1.jxx b/src/NMTAlgo/NMTAlgo_Splitter1.jxx index 4505b535f..c804ba376 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter1.jxx +++ b/src/NMTAlgo/NMTAlgo_Splitter1.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _TopoDS_Shape_HeaderFile #include diff --git a/src/NMTAlgo/NMTAlgo_Splitter_1.cxx b/src/NMTAlgo/NMTAlgo_Splitter_1.cxx index 4b0c771db..b2135883f 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter_1.cxx +++ b/src/NMTAlgo/NMTAlgo_Splitter_1.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTAlgo_Splitter_1.cxx // Created: Mon Feb 2 14:58:54 2004 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTAlgo/NMTAlgo_Splitter_2.cxx b/src/NMTAlgo/NMTAlgo_Splitter_2.cxx index 0748d0d91..3262ee8ba 100644 --- a/src/NMTAlgo/NMTAlgo_Splitter_2.cxx +++ b/src/NMTAlgo/NMTAlgo_Splitter_2.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTAlgo_Splitter_2.cxx // Created: Mon Feb 9 15:07:51 2004 // Author: Igor FEOKTISTOV // - - +// #include #include diff --git a/src/NMTAlgo/NMTAlgo_Tools.cdl b/src/NMTAlgo/NMTAlgo_Tools.cdl index 3ce389525..b27b601a1 100644 --- a/src/NMTAlgo/NMTAlgo_Tools.cdl +++ b/src/NMTAlgo/NMTAlgo_Tools.cdl @@ -1,27 +1,27 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- File: NMTAlgo_Tools.cdl --- Created: Fri Jan 30 16:29:14 2004 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2004 +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +-- +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTAlgo_Tools.cdl +-- Created: Fri Jan 30 16:29:14 2004 +-- Author: Peter KURNEV class Tools from NMTAlgo diff --git a/src/NMTAlgo/NMTAlgo_Tools.cxx b/src/NMTAlgo/NMTAlgo_Tools.cxx index 290f5e0b1..35ea5e2f5 100644 --- a/src/NMTAlgo/NMTAlgo_Tools.cxx +++ b/src/NMTAlgo/NMTAlgo_Tools.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTAlgo_Tools.cxx // Created: Fri Jan 30 16:30:45 2004 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTAlgo/NMTAlgo_Tools.hxx b/src/NMTAlgo/NMTAlgo_Tools.hxx index f4c836906..d804a886e 100644 --- a/src/NMTAlgo/NMTAlgo_Tools.hxx +++ b/src/NMTAlgo/NMTAlgo_Tools.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTAlgo_Tools_HeaderFile #define _NMTAlgo_Tools_HeaderFile diff --git a/src/NMTAlgo/NMTAlgo_Tools.ixx b/src/NMTAlgo/NMTAlgo_Tools.ixx index 849811e1f..90f39ea0d 100644 --- a/src/NMTAlgo/NMTAlgo_Tools.ixx +++ b/src/NMTAlgo/NMTAlgo_Tools.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTAlgo/NMTAlgo_Tools.jxx b/src/NMTAlgo/NMTAlgo_Tools.jxx index fc418d607..080737905 100644 --- a/src/NMTAlgo/NMTAlgo_Tools.jxx +++ b/src/NMTAlgo/NMTAlgo_Tools.jxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef _TopoDS_Shell_HeaderFile #include diff --git a/src/NMTDS/Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx b/src/NMTDS/Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx index a48a632d0..f3b700b7c 100644 --- a/src/NMTDS/Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx +++ b/src/NMTDS/Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile #define _Handle_NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile diff --git a/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx b/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx index 3499864cc..ae1c3f807 100644 --- a/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx +++ b/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_HeaderFile #define _Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_HeaderFile diff --git a/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx b/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx index 50dd456cb..947e3c130 100644 --- a/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx +++ b/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_HeaderFile #define _Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_HeaderFile diff --git a/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx b/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx index a1bb5bc11..de064dc6f 100644 --- a/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx +++ b/src/NMTDS/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_HeaderFile #define _Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_HeaderFile diff --git a/src/NMTDS/Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx b/src/NMTDS/Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx index 48ce73f8a..0e68f8ec1 100644 --- a/src/NMTDS/Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx +++ b/src/NMTDS/Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors_HeaderFile #define _Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors_HeaderFile diff --git a/src/NMTDS/Handle_NMTDS_ListNodeOfListOfPassKey.hxx b/src/NMTDS/Handle_NMTDS_ListNodeOfListOfPassKey.hxx index eca4f179e..6a3d44c1b 100644 --- a/src/NMTDS/Handle_NMTDS_ListNodeOfListOfPassKey.hxx +++ b/src/NMTDS/Handle_NMTDS_ListNodeOfListOfPassKey.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTDS_ListNodeOfListOfPassKey_HeaderFile #define _Handle_NMTDS_ListNodeOfListOfPassKey_HeaderFile diff --git a/src/NMTDS/Handle_NMTDS_ListNodeOfListOfPassKeyBoolean.hxx b/src/NMTDS/Handle_NMTDS_ListNodeOfListOfPassKeyBoolean.hxx index 202965e9d..39679e002 100644 --- a/src/NMTDS/Handle_NMTDS_ListNodeOfListOfPassKeyBoolean.hxx +++ b/src/NMTDS/Handle_NMTDS_ListNodeOfListOfPassKeyBoolean.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTDS_ListNodeOfListOfPassKeyBoolean_HeaderFile #define _Handle_NMTDS_ListNodeOfListOfPassKeyBoolean_HeaderFile diff --git a/src/NMTDS/Handle_NMTDS_StdMapNodeOfMapOfPassKey.hxx b/src/NMTDS/Handle_NMTDS_StdMapNodeOfMapOfPassKey.hxx index fbea2a6fe..0aa36f7e2 100644 --- a/src/NMTDS/Handle_NMTDS_StdMapNodeOfMapOfPassKey.hxx +++ b/src/NMTDS/Handle_NMTDS_StdMapNodeOfMapOfPassKey.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTDS_StdMapNodeOfMapOfPassKey_HeaderFile #define _Handle_NMTDS_StdMapNodeOfMapOfPassKey_HeaderFile diff --git a/src/NMTDS/Handle_NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx b/src/NMTDS/Handle_NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx index 4cf323559..05e4c0912 100644 --- a/src/NMTDS/Handle_NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx +++ b/src/NMTDS/Handle_NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTDS_StdMapNodeOfMapOfPassKeyBoolean_HeaderFile #define _Handle_NMTDS_StdMapNodeOfMapOfPassKeyBoolean_HeaderFile diff --git a/src/NMTDS/Makefile.am b/src/NMTDS/Makefile.am index edc19fc65..f2dcd7560 100644 --- a/src/NMTDS/Makefile.am +++ b/src/NMTDS/Makefile.am @@ -1,32 +1,31 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM NMTAlgo : partition algorithm -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.in # Author : Julia DOROVSKIKH # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files @@ -51,10 +50,18 @@ salomeinclude_HEADERS = \ NMTDS_IndexedDataMapOfIntegerShape.hxx \ NMTDS_IndexedDataMapOfShapeBox.hxx \ NMTDS_IndexRange.hxx \ + NMTDS_IndexRange.ixx \ + NMTDS_IndexRange.jxx \ NMTDS_InterfPool.hxx \ + NMTDS_InterfPool.ixx \ + NMTDS_InterfPool.jxx \ NMTDS_InterfType.hxx \ NMTDS_Iterator.hxx \ + NMTDS_Iterator.ixx \ + NMTDS_Iterator.jxx \ NMTDS_IteratorCheckerSI.hxx \ + NMTDS_IteratorCheckerSI.ixx \ + NMTDS_IteratorCheckerSI.jxx \ NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx \ NMTDS_ListIteratorOfListOfPassKeyBoolean.hxx \ NMTDS_ListIteratorOfListOfPassKey.hxx \ @@ -69,17 +76,31 @@ salomeinclude_HEADERS = \ NMTDS_MapOfPassKeyBoolean.hxx \ NMTDS_MapOfPassKey.hxx \ NMTDS_PassKeyBoolean.hxx \ + NMTDS_PassKeyBoolean.ixx \ + NMTDS_PassKeyBoolean.jxx \ NMTDS_PInterfPool.hxx \ NMTDS_PIterator.hxx \ NMTDS_PassKey.hxx \ + NMTDS_PassKey.ixx \ + NMTDS_PassKey.jxx \ NMTDS_PassKeyMapHasher.hxx \ + NMTDS_PassKeyMapHasher.ixx \ + NMTDS_PassKeyMapHasher.jxx \ NMTDS_PassKeyShape.hxx \ + NMTDS_PassKeyShape.ixx \ + NMTDS_PassKeyShape.jxx \ NMTDS_PassKeyShapeMapHasher.hxx \ + NMTDS_PassKeyShapeMapHasher.ixx \ + NMTDS_PassKeyShapeMapHasher.jxx \ NMTDS_PShapesDataStructure.hxx \ NMTDS_ShapesDataStructure.hxx \ + NMTDS_ShapesDataStructure.ixx \ + NMTDS_ShapesDataStructure.jxx \ NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx \ NMTDS_StdMapNodeOfMapOfPassKey.hxx \ NMTDS_Tools.hxx \ + NMTDS_Tools.ixx \ + NMTDS_Tools.jxx \ NMTDS_BoxBndTree.hxx # Libraries targets @@ -124,12 +145,29 @@ dist_libNMTDS_la_SOURCES = \ NMTDS_Tools.cxx \ NMTDS_BoxBndTree.cxx -# additionnal information to compil and link file +# additional information to compile and link file -libNMTDS_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ +libNMTDS_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ $(KERNEL_CXXFLAGS) -libNMTDS_la_LDFLAGS = \ - $(STDLIB) \ +libNMTDS_la_LDFLAGS = \ + $(STDLIB) \ $(CAS_LDPATH) -lTKBool -lTKBO + +# extra dist files +CDL_FILES = \ + NMTDS.cdl \ + NMTDS_IndexRange.cdl \ + NMTDS_InterfPool.cdl \ + NMTDS_Iterator.cdl \ + NMTDS_IteratorCheckerSI.cdl \ + NMTDS_PassKey.cdl \ + NMTDS_PassKeyBoolean.cdl \ + NMTDS_PassKeyMapHasher.cdl \ + NMTDS_PassKeyShape.cdl \ + NMTDS_PassKeyShapeMapHasher.cdl \ + NMTDS_ShapesDataStructure.cdl \ + NMTDS_Tools.cdl + +EXTRA_DIST += $(CDL_FILES) diff --git a/src/NMTDS/NMTDS.cdl b/src/NMTDS/NMTDS.cdl index cabb10f4b..bcee78278 100644 --- a/src/NMTDS/NMTDS.cdl +++ b/src/NMTDS/NMTDS.cdl @@ -1,28 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS.cdl +-- Created: Fri Nov 28 10:13:19 2003 +-- Author: Peter KURNEV -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- --- File: NMTDS.cdl --- Created: Fri Nov 28 10:13:19 2003 --- Author: Peter KURNEV --- - - package NMTDS ---Purpose: diff --git a/src/NMTDS/NMTDS.pro b/src/NMTDS/NMTDS.pro new file mode 100644 index 000000000..7b489ee01 --- /dev/null +++ b/src/NMTDS/NMTDS.pro @@ -0,0 +1,119 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = NMTDS +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} + +LIBS += $${STDLIB} $${CAS_LDPATH} -lTKBool -lTKBO + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +HEADERS = Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx +HEADERS += Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx +HEADERS += Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx +HEADERS += Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx +HEADERS += Handle_NMTDS_ListNodeOfListOfPassKeyBoolean.hxx +HEADERS += Handle_NMTDS_ListNodeOfListOfPassKey.hxx +HEADERS += Handle_NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx +HEADERS += Handle_NMTDS_StdMapNodeOfMapOfPassKey.hxx +HEADERS += NMTDS_CArray1OfIndexRange.hxx +HEADERS += NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx +HEADERS += NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx +HEADERS += NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx +HEADERS += NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx +HEADERS += NMTDS_IndexedDataMapOfIntegerShape.hxx +HEADERS += NMTDS_IndexedDataMapOfShapeBox.hxx +HEADERS += NMTDS_IndexRange.hxx +HEADERS += NMTDS_Iterator.hxx +HEADERS += NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx +HEADERS += NMTDS_ListIteratorOfListOfPassKeyBoolean.hxx +HEADERS += NMTDS_ListIteratorOfListOfPassKey.hxx +HEADERS += NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx +HEADERS += NMTDS_ListNodeOfListOfPassKeyBoolean.hxx +HEADERS += NMTDS_ListNodeOfListOfPassKey.hxx +HEADERS += NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx +HEADERS += NMTDS_ListOfPassKeyBoolean.hxx +HEADERS += NMTDS_ListOfPassKey.hxx +HEADERS += NMTDS_MapIteratorOfMapOfPassKeyBoolean.hxx +HEADERS += NMTDS_MapIteratorOfMapOfPassKey.hxx +HEADERS += NMTDS_MapOfPassKeyBoolean.hxx +HEADERS += NMTDS_MapOfPassKey.hxx +HEADERS += NMTDS_PassKeyBoolean.hxx +HEADERS += NMTDS_PassKey.hxx +HEADERS += NMTDS_PassKeyMapHasher.hxx +HEADERS += NMTDS_PShapesDataStructure.hxx +HEADERS += NMTDS_ShapesDataStructure.hxx +HEADERS += NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx +HEADERS += NMTDS_StdMapNodeOfMapOfPassKey.hxx +HEADERS += NMTDS_BoxBndTree.hxx + +SOURCES = NMTDS_CArray1OfIndexRange_0.cxx +SOURCES += NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_0.cxx +SOURCES += NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx +SOURCES += NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx +SOURCES += NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_0.cxx +SOURCES += NMTDS_IndexedDataMapOfIntegerShape_0.cxx +SOURCES += NMTDS_IndexedDataMapOfShapeBox_0.cxx +SOURCES += NMTDS_IndexRange.cxx +SOURCES += NMTDS_Iterator.cxx +SOURCES += NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx +SOURCES += NMTDS_ListIteratorOfListOfPassKey_0.cxx +SOURCES += NMTDS_ListIteratorOfListOfPassKeyBoolean_0.cxx +SOURCES += NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx +SOURCES += NMTDS_ListNodeOfListOfPassKey_0.cxx +SOURCES += NMTDS_ListNodeOfListOfPassKeyBoolean_0.cxx +SOURCES += NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx +SOURCES += NMTDS_ListOfPassKey_0.cxx +SOURCES += NMTDS_ListOfPassKeyBoolean_0.cxx +SOURCES += NMTDS_MapIteratorOfMapOfPassKey_0.cxx +SOURCES += NMTDS_MapIteratorOfMapOfPassKeyBoolean_0.cxx +SOURCES += NMTDS_MapOfPassKey_0.cxx +SOURCES += NMTDS_MapOfPassKeyBoolean_0.cxx +SOURCES += NMTDS_PassKeyBoolean.cxx +SOURCES += NMTDS_PassKey.cxx +SOURCES += NMTDS_PassKeyMapHasher.cxx +SOURCES += NMTDS_ShapesDataStructure.cxx +SOURCES += NMTDS_StdMapNodeOfMapOfPassKey_0.cxx +SOURCES += NMTDS_StdMapNodeOfMapOfPassKeyBoolean_0.cxx +SOURCES += NMTDS_BoxBndTree.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/NMTDS/NMTDS_BoxBndTree.cxx b/src/NMTDS/NMTDS_BoxBndTree.cxx index 79bc0b5e1..88c4e31eb 100644 --- a/src/NMTDS/NMTDS_BoxBndTree.cxx +++ b/src/NMTDS/NMTDS_BoxBndTree.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_BoxBndTree.cxx // Created: Tue Oct 17 13:04:11 2006 // Author: Peter KURNEV // - - +// #include //======================================================================= //function : diff --git a/src/NMTDS/NMTDS_BoxBndTree.hxx b/src/NMTDS/NMTDS_BoxBndTree.hxx index 9aeb58d41..5ff1fe74e 100755 --- a/src/NMTDS/NMTDS_BoxBndTree.hxx +++ b/src/NMTDS/NMTDS_BoxBndTree.hxx @@ -1,26 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_BoxBndTree.hxx // Created: Tue Oct 17 12:50:31 2006 // Author: Peter KURNEV // - - +// #ifndef NMTDS_BoxBndTree_HeaderFile #define NMTDS_BoxBndTree_HeaderFile diff --git a/src/NMTDS/NMTDS_CArray1OfIndexRange.hxx b/src/NMTDS/NMTDS_CArray1OfIndexRange.hxx index 120e3030c..27d922022 100644 --- a/src/NMTDS/NMTDS_CArray1OfIndexRange.hxx +++ b/src/NMTDS/NMTDS_CArray1OfIndexRange.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_CArray1OfIndexRange_HeaderFile #define _NMTDS_CArray1OfIndexRange_HeaderFile diff --git a/src/NMTDS/NMTDS_CArray1OfIndexRange_0.cxx b/src/NMTDS/NMTDS_CArray1OfIndexRange_0.cxx index 6bd7e3df2..ec98e7475 100644 --- a/src/NMTDS/NMTDS_CArray1OfIndexRange_0.cxx +++ b/src/NMTDS/NMTDS_CArray1OfIndexRange_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_OutOfRange_HeaderFile diff --git a/src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx b/src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx index 5c782f2d4..7456aa64c 100644 --- a/src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx +++ b/src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_HeaderFile #define _NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_HeaderFile diff --git a/src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_0.cxx b/src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_0.cxx index 52c8d5334..b6d62d957 100644 --- a/src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_0.cxx +++ b/src/NMTDS/NMTDS_DataMapIteratorOfDataMapOfIntegerMapOfInteger_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx b/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx index 89989c7a3..0bfd4cdf3 100644 --- a/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx +++ b/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile #define _NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_HeaderFile diff --git a/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_0.cxx b/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_0.cxx index 81d4ca5ad..8c8b273b7 100644 --- a/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_0.cxx +++ b/src/NMTDS/NMTDS_DataMapNodeOfDataMapOfIntegerMapOfInteger_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger.hxx b/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger.hxx index 2e7c5b402..09e17e834 100644 --- a/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger.hxx +++ b/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_DataMapOfIntegerMapOfInteger_HeaderFile #define _NMTDS_DataMapOfIntegerMapOfInteger_HeaderFile diff --git a/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger_0.cxx b/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger_0.cxx index ca6e0ffea..f2bfe7c1c 100644 --- a/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger_0.cxx +++ b/src/NMTDS/NMTDS_DataMapOfIntegerMapOfInteger_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexRange.cdl b/src/NMTDS/NMTDS_IndexRange.cdl index 70458ed5d..7591eb00f 100644 --- a/src/NMTDS/NMTDS_IndexRange.cdl +++ b/src/NMTDS/NMTDS_IndexRange.cdl @@ -1,27 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS_IndexRange.cdl +-- Created: Fri Nov 28 10:31:05 2003 +-- Author: Peter KURNEV -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- --- File: NMTDS_IndexRange.cdl --- Created: Fri Nov 28 10:31:05 2003 --- Author: Peter KURNEV --- - class IndexRange from NMTDS ---Purpose: diff --git a/src/NMTDS/NMTDS_IndexRange.cxx b/src/NMTDS/NMTDS_IndexRange.cxx index 138d77f8f..55c488ae4 100644 --- a/src/NMTDS/NMTDS_IndexRange.cxx +++ b/src/NMTDS/NMTDS_IndexRange.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_IndexRange.cxx // Created: Fri Nov 28 10:34:59 2003 // Author: Peter KURNEV // - - +// #include //======================================================================= //function :NMTDS_IndexRange::NMTDS_IndexRange diff --git a/src/NMTDS/NMTDS_IndexRange.hxx b/src/NMTDS/NMTDS_IndexRange.hxx index 1e9f76065..4dad2f6ae 100644 --- a/src/NMTDS/NMTDS_IndexRange.hxx +++ b/src/NMTDS/NMTDS_IndexRange.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_IndexRange_HeaderFile #define _NMTDS_IndexRange_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexRange.ixx b/src/NMTDS/NMTDS_IndexRange.ixx index 44ea38a5a..5c9a8d46f 100644 --- a/src/NMTDS/NMTDS_IndexRange.ixx +++ b/src/NMTDS/NMTDS_IndexRange.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTDS/NMTDS_IndexRange.jxx b/src/NMTDS/NMTDS_IndexRange.jxx index 936832bdc..a93688411 100644 --- a/src/NMTDS/NMTDS_IndexRange.jxx +++ b/src/NMTDS/NMTDS_IndexRange.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_IndexRange_HeaderFile #include #endif diff --git a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx index 179895110..189c2495d 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx +++ b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_HeaderFile #define _NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_0.cxx b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_0.cxx index 4467ed2db..14ba8e595 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_0.cxx +++ b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx index 6cc5bacc1..4b10b9e87 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx +++ b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_HeaderFile #define _NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx index 3293ddec1..15a8485f4 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx +++ b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx index 698204818..04ee903da 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx +++ b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_HeaderFile #define _NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx index 75117613b..a63d890cf 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx +++ b/src/NMTDS/NMTDS_IndexedDataMapNodeOfIndexedDataMapOfShapeBox_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx b/src/NMTDS/NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx index 0b1fef8e9..7bfc49cca 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx +++ b/src/NMTDS/NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_HeaderFile #define _NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_0.cxx b/src/NMTDS/NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_0.cxx index 95760dc49..887e0a2f2 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_0.cxx +++ b/src/NMTDS/NMTDS_IndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexedDataMapOfIntegerShape.hxx b/src/NMTDS/NMTDS_IndexedDataMapOfIntegerShape.hxx index e9b04d0e5..a97123c77 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapOfIntegerShape.hxx +++ b/src/NMTDS/NMTDS_IndexedDataMapOfIntegerShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_IndexedDataMapOfIntegerShape_HeaderFile #define _NMTDS_IndexedDataMapOfIntegerShape_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexedDataMapOfIntegerShape_0.cxx b/src/NMTDS/NMTDS_IndexedDataMapOfIntegerShape_0.cxx index 144b6a844..a1bf5c5be 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapOfIntegerShape_0.cxx +++ b/src/NMTDS/NMTDS_IndexedDataMapOfIntegerShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexedDataMapOfShapeBox.hxx b/src/NMTDS/NMTDS_IndexedDataMapOfShapeBox.hxx index 98752296f..1be992921 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapOfShapeBox.hxx +++ b/src/NMTDS/NMTDS_IndexedDataMapOfShapeBox.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_IndexedDataMapOfShapeBox_HeaderFile #define _NMTDS_IndexedDataMapOfShapeBox_HeaderFile diff --git a/src/NMTDS/NMTDS_IndexedDataMapOfShapeBox_0.cxx b/src/NMTDS/NMTDS_IndexedDataMapOfShapeBox_0.cxx index 53b8ed306..1d753c44d 100644 --- a/src/NMTDS/NMTDS_IndexedDataMapOfShapeBox_0.cxx +++ b/src/NMTDS/NMTDS_IndexedDataMapOfShapeBox_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/NMTDS/NMTDS_InterfPool.cdl b/src/NMTDS/NMTDS_InterfPool.cdl index 8b74d08c4..9b763286a 100644 --- a/src/NMTDS/NMTDS_InterfPool.cdl +++ b/src/NMTDS/NMTDS_InterfPool.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS_InterfPool.cdl +-- Created: Wed Feb 21 10:10:58 2007 +-- Author: Peter KURNEV -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- --- File: NMTDS_InterfPool.cdl --- Created: Wed Feb 21 10:10:58 2007 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2007 - - class InterfPool from NMTDS ---Purpose: diff --git a/src/NMTDS/NMTDS_InterfPool.cxx b/src/NMTDS/NMTDS_InterfPool.cxx index 95774e9f7..d601d5cd8 100644 --- a/src/NMTDS/NMTDS_InterfPool.cxx +++ b/src/NMTDS/NMTDS_InterfPool.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_.InterfPoolcxx // Created: Wed Feb 21 10:35:35 2007 // Author: Peter KURNEV // - - +// #include #include #include diff --git a/src/NMTDS/NMTDS_InterfPool.hxx b/src/NMTDS/NMTDS_InterfPool.hxx index f0bfd2111..3722c0046 100644 --- a/src/NMTDS/NMTDS_InterfPool.hxx +++ b/src/NMTDS/NMTDS_InterfPool.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_InterfPool_HeaderFile #define _NMTDS_InterfPool_HeaderFile diff --git a/src/NMTDS/NMTDS_InterfPool.ixx b/src/NMTDS/NMTDS_InterfPool.ixx index c608b6885..a26acd90d 100644 --- a/src/NMTDS/NMTDS_InterfPool.ixx +++ b/src/NMTDS/NMTDS_InterfPool.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTDS/NMTDS_InterfPool.jxx b/src/NMTDS/NMTDS_InterfPool.jxx index f12d52951..5ec012a71 100644 --- a/src/NMTDS/NMTDS_InterfPool.jxx +++ b/src/NMTDS/NMTDS_InterfPool.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PassKeyBoolean_HeaderFile #include #endif diff --git a/src/NMTDS/NMTDS_InterfType.hxx b/src/NMTDS/NMTDS_InterfType.hxx index d32f9835b..166313341 100644 --- a/src/NMTDS/NMTDS_InterfType.hxx +++ b/src/NMTDS/NMTDS_InterfType.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_InterfType_HeaderFile #define _NMTDS_InterfType_HeaderFile diff --git a/src/NMTDS/NMTDS_Iterator.cdl b/src/NMTDS/NMTDS_Iterator.cdl index d73a1d5d3..0bb5a13a1 100755 --- a/src/NMTDS/NMTDS_Iterator.cdl +++ b/src/NMTDS/NMTDS_Iterator.cdl @@ -1,28 +1,28 @@ --- Copyright (C) 2006 SAMTECH --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS_Iterator.cdl +-- Created: Sun May 07 14:58:16 2006 +-- Author: Peter KURNEV -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- --- File: NMTDS_Iterator.cdl --- Created: Sun May 07 14:58:16 2006 --- Author: Peter KURNEV --- - - - class Iterator from NMTDS ---Purpose: diff --git a/src/NMTDS/NMTDS_Iterator.cxx b/src/NMTDS/NMTDS_Iterator.cxx index 8e894d6d4..a4069a595 100755 --- a/src/NMTDS/NMTDS_Iterator.cxx +++ b/src/NMTDS/NMTDS_Iterator.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2006 SAMTECH -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_Iterator.cxx // Created: Sun May 07 15:04:41 2006 // Author: Peter KURNEV -// - - +// #include // #include diff --git a/src/NMTDS/NMTDS_Iterator.hxx b/src/NMTDS/NMTDS_Iterator.hxx index 25ae15ec0..095eb283c 100644 --- a/src/NMTDS/NMTDS_Iterator.hxx +++ b/src/NMTDS/NMTDS_Iterator.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_Iterator_HeaderFile #define _NMTDS_Iterator_HeaderFile diff --git a/src/NMTDS/NMTDS_Iterator.ixx b/src/NMTDS/NMTDS_Iterator.ixx index adb6c909f..641e32522 100644 --- a/src/NMTDS/NMTDS_Iterator.ixx +++ b/src/NMTDS/NMTDS_Iterator.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTDS/NMTDS_Iterator.jxx b/src/NMTDS/NMTDS_Iterator.jxx index 4a0e4fb7c..ead7afaf6 100644 --- a/src/NMTDS/NMTDS_Iterator.jxx +++ b/src/NMTDS/NMTDS_Iterator.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_ShapesDataStructure_HeaderFile #include #endif diff --git a/src/NMTDS/NMTDS_IteratorCheckerSI.cdl b/src/NMTDS/NMTDS_IteratorCheckerSI.cdl index c7f765003..1c15c39c6 100644 --- a/src/NMTDS/NMTDS_IteratorCheckerSI.cdl +++ b/src/NMTDS/NMTDS_IteratorCheckerSI.cdl @@ -1,26 +1,28 @@ --- Copyright (C) 2007 SAMTECH --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS_IteratorCheckerSI.cdl +-- Created: Tue Feb 6 10:18:27 2007 +-- Author: Peter KURNEV -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- --- File: NMTDS_IteratorCheckerSI.cdl --- Created: Tue Feb 6 10:18:27 2007 --- Author: Peter KURNEV - - class IteratorCheckerSI from NMTDS inherits Iterator from NMTDS diff --git a/src/NMTDS/NMTDS_IteratorCheckerSI.cxx b/src/NMTDS/NMTDS_IteratorCheckerSI.cxx index da2290b93..310827edd 100644 --- a/src/NMTDS/NMTDS_IteratorCheckerSI.cxx +++ b/src/NMTDS/NMTDS_IteratorCheckerSI.cxx @@ -1,26 +1,28 @@ -// Copyright (C) 2007 SAMTECH -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_IteratorChecker.cxx // Created: Tue Feb 6 10:37:59 2007 // Author: Peter KURNEV - - +// #include #include diff --git a/src/NMTDS/NMTDS_IteratorCheckerSI.hxx b/src/NMTDS/NMTDS_IteratorCheckerSI.hxx index f11a9c1c2..e083f88e4 100644 --- a/src/NMTDS/NMTDS_IteratorCheckerSI.hxx +++ b/src/NMTDS/NMTDS_IteratorCheckerSI.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_IteratorCheckerSI_HeaderFile #define _NMTDS_IteratorCheckerSI_HeaderFile diff --git a/src/NMTDS/NMTDS_IteratorCheckerSI.ixx b/src/NMTDS/NMTDS_IteratorCheckerSI.ixx index 6346ab519..b9fc4a7d9 100644 --- a/src/NMTDS/NMTDS_IteratorCheckerSI.ixx +++ b/src/NMTDS/NMTDS_IteratorCheckerSI.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTDS/NMTDS_IteratorCheckerSI.jxx b/src/NMTDS/NMTDS_IteratorCheckerSI.jxx index dc6afc1b7..569dce04a 100644 --- a/src/NMTDS/NMTDS_IteratorCheckerSI.jxx +++ b/src/NMTDS/NMTDS_IteratorCheckerSI.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_IteratorCheckerSI_HeaderFile #include #endif diff --git a/src/NMTDS/NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx b/src/NMTDS/NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx index 3316ee82c..dd32df2ab 100644 --- a/src/NMTDS/NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx +++ b/src/NMTDS/NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors_HeaderFile #define _NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors_HeaderFile diff --git a/src/NMTDS/NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx b/src/NMTDS/NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx index e3884deaa..b2866f1e1 100644 --- a/src/NMTDS/NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx +++ b/src/NMTDS/NMTDS_ListIteratorOfListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoMoreObject_HeaderFile diff --git a/src/NMTDS/NMTDS_ListIteratorOfListOfPassKey.hxx b/src/NMTDS/NMTDS_ListIteratorOfListOfPassKey.hxx index bf3646a40..ae3b3990e 100644 --- a/src/NMTDS/NMTDS_ListIteratorOfListOfPassKey.hxx +++ b/src/NMTDS/NMTDS_ListIteratorOfListOfPassKey.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_ListIteratorOfListOfPassKey_HeaderFile #define _NMTDS_ListIteratorOfListOfPassKey_HeaderFile diff --git a/src/NMTDS/NMTDS_ListIteratorOfListOfPassKeyBoolean.hxx b/src/NMTDS/NMTDS_ListIteratorOfListOfPassKeyBoolean.hxx index bd2e0e03b..efb4d8be9 100644 --- a/src/NMTDS/NMTDS_ListIteratorOfListOfPassKeyBoolean.hxx +++ b/src/NMTDS/NMTDS_ListIteratorOfListOfPassKeyBoolean.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_ListIteratorOfListOfPassKeyBoolean_HeaderFile #define _NMTDS_ListIteratorOfListOfPassKeyBoolean_HeaderFile diff --git a/src/NMTDS/NMTDS_ListIteratorOfListOfPassKeyBoolean_0.cxx b/src/NMTDS/NMTDS_ListIteratorOfListOfPassKeyBoolean_0.cxx index a0daa155d..161054c20 100644 --- a/src/NMTDS/NMTDS_ListIteratorOfListOfPassKeyBoolean_0.cxx +++ b/src/NMTDS/NMTDS_ListIteratorOfListOfPassKeyBoolean_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoMoreObject_HeaderFile diff --git a/src/NMTDS/NMTDS_ListIteratorOfListOfPassKey_0.cxx b/src/NMTDS/NMTDS_ListIteratorOfListOfPassKey_0.cxx index de084cc19..017140d0f 100644 --- a/src/NMTDS/NMTDS_ListIteratorOfListOfPassKey_0.cxx +++ b/src/NMTDS/NMTDS_ListIteratorOfListOfPassKey_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoMoreObject_HeaderFile diff --git a/src/NMTDS/NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx b/src/NMTDS/NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx index 05fe687bb..24a28af7e 100644 --- a/src/NMTDS/NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx +++ b/src/NMTDS/NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors_HeaderFile #define _NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors_HeaderFile diff --git a/src/NMTDS/NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx b/src/NMTDS/NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx index f354af531..875b786e4 100644 --- a/src/NMTDS/NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx +++ b/src/NMTDS/NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTDS/NMTDS_ListNodeOfListOfPassKey.hxx b/src/NMTDS/NMTDS_ListNodeOfListOfPassKey.hxx index 160d2fbd3..c67b7845d 100644 --- a/src/NMTDS/NMTDS_ListNodeOfListOfPassKey.hxx +++ b/src/NMTDS/NMTDS_ListNodeOfListOfPassKey.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_ListNodeOfListOfPassKey_HeaderFile #define _NMTDS_ListNodeOfListOfPassKey_HeaderFile diff --git a/src/NMTDS/NMTDS_ListNodeOfListOfPassKeyBoolean.hxx b/src/NMTDS/NMTDS_ListNodeOfListOfPassKeyBoolean.hxx index a6e96e655..c2f743118 100644 --- a/src/NMTDS/NMTDS_ListNodeOfListOfPassKeyBoolean.hxx +++ b/src/NMTDS/NMTDS_ListNodeOfListOfPassKeyBoolean.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_ListNodeOfListOfPassKeyBoolean_HeaderFile #define _NMTDS_ListNodeOfListOfPassKeyBoolean_HeaderFile diff --git a/src/NMTDS/NMTDS_ListNodeOfListOfPassKeyBoolean_0.cxx b/src/NMTDS/NMTDS_ListNodeOfListOfPassKeyBoolean_0.cxx index e84d51f5b..7145c1532 100644 --- a/src/NMTDS/NMTDS_ListNodeOfListOfPassKeyBoolean_0.cxx +++ b/src/NMTDS/NMTDS_ListNodeOfListOfPassKeyBoolean_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTDS/NMTDS_ListNodeOfListOfPassKey_0.cxx b/src/NMTDS/NMTDS_ListNodeOfListOfPassKey_0.cxx index a85b03bc1..dcca753f7 100644 --- a/src/NMTDS/NMTDS_ListNodeOfListOfPassKey_0.cxx +++ b/src/NMTDS/NMTDS_ListNodeOfListOfPassKey_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTDS/NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx b/src/NMTDS/NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx index 7664fc4ea..bc3715363 100644 --- a/src/NMTDS/NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx +++ b/src/NMTDS/NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors_HeaderFile #define _NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors_HeaderFile diff --git a/src/NMTDS/NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx b/src/NMTDS/NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx index f85f6d9d5..66eede0c1 100644 --- a/src/NMTDS/NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx +++ b/src/NMTDS/NMTDS_ListOfIndexedDataMapOfShapeAncestorsSuccessors_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/NMTDS/NMTDS_ListOfPassKey.hxx b/src/NMTDS/NMTDS_ListOfPassKey.hxx index 207251094..390a3a5d1 100644 --- a/src/NMTDS/NMTDS_ListOfPassKey.hxx +++ b/src/NMTDS/NMTDS_ListOfPassKey.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_ListOfPassKey_HeaderFile #define _NMTDS_ListOfPassKey_HeaderFile diff --git a/src/NMTDS/NMTDS_ListOfPassKeyBoolean.hxx b/src/NMTDS/NMTDS_ListOfPassKeyBoolean.hxx index 3ca9a39ab..d4dec7ded 100644 --- a/src/NMTDS/NMTDS_ListOfPassKeyBoolean.hxx +++ b/src/NMTDS/NMTDS_ListOfPassKeyBoolean.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_ListOfPassKeyBoolean_HeaderFile #define _NMTDS_ListOfPassKeyBoolean_HeaderFile diff --git a/src/NMTDS/NMTDS_ListOfPassKeyBoolean_0.cxx b/src/NMTDS/NMTDS_ListOfPassKeyBoolean_0.cxx index 846661e5f..5b289b553 100644 --- a/src/NMTDS/NMTDS_ListOfPassKeyBoolean_0.cxx +++ b/src/NMTDS/NMTDS_ListOfPassKeyBoolean_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/NMTDS/NMTDS_ListOfPassKey_0.cxx b/src/NMTDS/NMTDS_ListOfPassKey_0.cxx index f87d96c3b..a68d4c892 100644 --- a/src/NMTDS/NMTDS_ListOfPassKey_0.cxx +++ b/src/NMTDS/NMTDS_ListOfPassKey_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKey.hxx b/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKey.hxx index 71b372604..bdb843bfe 100644 --- a/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKey.hxx +++ b/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKey.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_MapIteratorOfMapOfPassKey_HeaderFile #define _NMTDS_MapIteratorOfMapOfPassKey_HeaderFile diff --git a/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKeyBoolean.hxx b/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKeyBoolean.hxx index dbff06524..52f2bc1df 100644 --- a/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKeyBoolean.hxx +++ b/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKeyBoolean.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_MapIteratorOfMapOfPassKeyBoolean_HeaderFile #define _NMTDS_MapIteratorOfMapOfPassKeyBoolean_HeaderFile diff --git a/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKeyBoolean_0.cxx b/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKeyBoolean_0.cxx index 68c88970e..e601bd0a3 100644 --- a/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKeyBoolean_0.cxx +++ b/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKeyBoolean_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKey_0.cxx b/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKey_0.cxx index c96965f87..611ca7092 100644 --- a/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKey_0.cxx +++ b/src/NMTDS/NMTDS_MapIteratorOfMapOfPassKey_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/NMTDS/NMTDS_MapOfPassKey.hxx b/src/NMTDS/NMTDS_MapOfPassKey.hxx index b9360dd20..e20be33a2 100644 --- a/src/NMTDS/NMTDS_MapOfPassKey.hxx +++ b/src/NMTDS/NMTDS_MapOfPassKey.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_MapOfPassKey_HeaderFile #define _NMTDS_MapOfPassKey_HeaderFile diff --git a/src/NMTDS/NMTDS_MapOfPassKeyBoolean.hxx b/src/NMTDS/NMTDS_MapOfPassKeyBoolean.hxx index 8f0312b63..d3fcfd8ed 100644 --- a/src/NMTDS/NMTDS_MapOfPassKeyBoolean.hxx +++ b/src/NMTDS/NMTDS_MapOfPassKeyBoolean.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_MapOfPassKeyBoolean_HeaderFile #define _NMTDS_MapOfPassKeyBoolean_HeaderFile diff --git a/src/NMTDS/NMTDS_MapOfPassKeyBoolean_0.cxx b/src/NMTDS/NMTDS_MapOfPassKeyBoolean_0.cxx index 4c9ac2a3f..4eb82501e 100644 --- a/src/NMTDS/NMTDS_MapOfPassKeyBoolean_0.cxx +++ b/src/NMTDS/NMTDS_MapOfPassKeyBoolean_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/NMTDS/NMTDS_MapOfPassKey_0.cxx b/src/NMTDS/NMTDS_MapOfPassKey_0.cxx index 12f3a2289..2a2a23e96 100644 --- a/src/NMTDS/NMTDS_MapOfPassKey_0.cxx +++ b/src/NMTDS/NMTDS_MapOfPassKey_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/NMTDS/NMTDS_PInterfPool.hxx b/src/NMTDS/NMTDS_PInterfPool.hxx index 7084ba333..0e7f04d8f 100644 --- a/src/NMTDS/NMTDS_PInterfPool.hxx +++ b/src/NMTDS/NMTDS_PInterfPool.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PInterfPool_HeaderFile #define _NMTDS_PInterfPool_HeaderFile diff --git a/src/NMTDS/NMTDS_PIterator.hxx b/src/NMTDS/NMTDS_PIterator.hxx index 8cefa5bb5..0cc2973f4 100644 --- a/src/NMTDS/NMTDS_PIterator.hxx +++ b/src/NMTDS/NMTDS_PIterator.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PIterator_HeaderFile #define _NMTDS_PIterator_HeaderFile diff --git a/src/NMTDS/NMTDS_PShapesDataStructure.hxx b/src/NMTDS/NMTDS_PShapesDataStructure.hxx index 128b45862..0bebcb823 100644 --- a/src/NMTDS/NMTDS_PShapesDataStructure.hxx +++ b/src/NMTDS/NMTDS_PShapesDataStructure.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PShapesDataStructure_HeaderFile #define _NMTDS_PShapesDataStructure_HeaderFile diff --git a/src/NMTDS/NMTDS_PassKey.cdl b/src/NMTDS/NMTDS_PassKey.cdl index 905a8d62a..62284b520 100755 --- a/src/NMTDS/NMTDS_PassKey.cdl +++ b/src/NMTDS/NMTDS_PassKey.cdl @@ -1,28 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS_PassKey.cdl +-- Created: Mon Nov 20 12:16:13 2006 +-- Author: Peter KURNEV -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- --- File: NMTDS_PassKey.cdl --- Created: Mon Nov 20 12:16:13 2006 --- Author: Peter KURNEV --- - - class PassKey from NMTDS ---Purpose: diff --git a/src/NMTDS/NMTDS_PassKey.cxx b/src/NMTDS/NMTDS_PassKey.cxx index 2d2d52ea0..91e1da956 100755 --- a/src/NMTDS/NMTDS_PassKey.cxx +++ b/src/NMTDS/NMTDS_PassKey.cxx @@ -1,29 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_Algo.cxx // Created: Sat Dec 04 12:39:47 2004 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTDS/NMTDS_PassKey.hxx b/src/NMTDS/NMTDS_PassKey.hxx index 379b72f79..b75f63029 100644 --- a/src/NMTDS/NMTDS_PassKey.hxx +++ b/src/NMTDS/NMTDS_PassKey.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PassKey_HeaderFile #define _NMTDS_PassKey_HeaderFile diff --git a/src/NMTDS/NMTDS_PassKey.ixx b/src/NMTDS/NMTDS_PassKey.ixx index 906d159d0..fee442621 100644 --- a/src/NMTDS/NMTDS_PassKey.ixx +++ b/src/NMTDS/NMTDS_PassKey.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTDS/NMTDS_PassKey.jxx b/src/NMTDS/NMTDS_PassKey.jxx index ba0d04dd1..65bb207de 100644 --- a/src/NMTDS/NMTDS_PassKey.jxx +++ b/src/NMTDS/NMTDS_PassKey.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TColStd_ListOfInteger_HeaderFile #include #endif diff --git a/src/NMTDS/NMTDS_PassKeyBoolean.cdl b/src/NMTDS/NMTDS_PassKeyBoolean.cdl index c34a3244a..73b93b234 100755 --- a/src/NMTDS/NMTDS_PassKeyBoolean.cdl +++ b/src/NMTDS/NMTDS_PassKeyBoolean.cdl @@ -1,27 +1,28 @@ --- Copyright (C) 2006 SAMTECH --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS_PassKeyBoolean.cdl +-- Created: +-- Author: Peter KURNEV -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- --- File: NMTDS_PassKeyBoolean.cdl --- Created: --- Author: Peter KURNEV --- - - class PassKeyBoolean from NMTDS inherits PassKey from NMTDS diff --git a/src/NMTDS/NMTDS_PassKeyBoolean.cxx b/src/NMTDS/NMTDS_PassKeyBoolean.cxx index 059751fe2..d2636052c 100755 --- a/src/NMTDS/NMTDS_PassKeyBoolean.cxx +++ b/src/NMTDS/NMTDS_PassKeyBoolean.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2006 SAMTECH -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_PassKeyBoolean.cxx // Created: Mon May 15 14:31:05 2006 // Author: Peter KURNEV // - - +// #include //======================================================================= diff --git a/src/NMTDS/NMTDS_PassKeyBoolean.hxx b/src/NMTDS/NMTDS_PassKeyBoolean.hxx index 604cfa30b..aa0cc5b50 100644 --- a/src/NMTDS/NMTDS_PassKeyBoolean.hxx +++ b/src/NMTDS/NMTDS_PassKeyBoolean.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PassKeyBoolean_HeaderFile #define _NMTDS_PassKeyBoolean_HeaderFile diff --git a/src/NMTDS/NMTDS_PassKeyBoolean.ixx b/src/NMTDS/NMTDS_PassKeyBoolean.ixx index 88cae8df2..f879f4ff7 100644 --- a/src/NMTDS/NMTDS_PassKeyBoolean.ixx +++ b/src/NMTDS/NMTDS_PassKeyBoolean.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTDS/NMTDS_PassKeyBoolean.jxx b/src/NMTDS/NMTDS_PassKeyBoolean.jxx index 4291273e9..b4559ce9b 100644 --- a/src/NMTDS/NMTDS_PassKeyBoolean.jxx +++ b/src/NMTDS/NMTDS_PassKeyBoolean.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PassKeyBoolean_HeaderFile #include #endif diff --git a/src/NMTDS/NMTDS_PassKeyMapHasher.cdl b/src/NMTDS/NMTDS_PassKeyMapHasher.cdl index de75ce8f9..052e9aa97 100755 --- a/src/NMTDS/NMTDS_PassKeyMapHasher.cdl +++ b/src/NMTDS/NMTDS_PassKeyMapHasher.cdl @@ -1,28 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS_PassKeyMapHasher.cdl +-- Created: +-- Author: Peter KURNEV -- --- File: NMTDS_PassKeyMapHasher.cdl --- Created: --- Author: Peter KURNEV --- - - class PassKeyMapHasher from NMTDS ---Purpose: diff --git a/src/NMTDS/NMTDS_PassKeyMapHasher.cxx b/src/NMTDS/NMTDS_PassKeyMapHasher.cxx index ac7910947..2afd292d0 100755 --- a/src/NMTDS/NMTDS_PassKeyMapHasher.cxx +++ b/src/NMTDS/NMTDS_PassKeyMapHasher.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_PassKeyMapHasher.cxx // Created: // Author: Peter KURNEV // - - +// #include //======================================================================= diff --git a/src/NMTDS/NMTDS_PassKeyMapHasher.hxx b/src/NMTDS/NMTDS_PassKeyMapHasher.hxx index b22d6e8f7..372e21411 100644 --- a/src/NMTDS/NMTDS_PassKeyMapHasher.hxx +++ b/src/NMTDS/NMTDS_PassKeyMapHasher.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PassKeyMapHasher_HeaderFile #define _NMTDS_PassKeyMapHasher_HeaderFile diff --git a/src/NMTDS/NMTDS_PassKeyMapHasher.ixx b/src/NMTDS/NMTDS_PassKeyMapHasher.ixx index 177c4e352..8c37b4e0c 100644 --- a/src/NMTDS/NMTDS_PassKeyMapHasher.ixx +++ b/src/NMTDS/NMTDS_PassKeyMapHasher.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTDS/NMTDS_PassKeyMapHasher.jxx b/src/NMTDS/NMTDS_PassKeyMapHasher.jxx index ab0e61052..7487e5b18 100644 --- a/src/NMTDS/NMTDS_PassKeyMapHasher.jxx +++ b/src/NMTDS/NMTDS_PassKeyMapHasher.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PassKey_HeaderFile #include #endif diff --git a/src/NMTDS/NMTDS_PassKeyShape.cdl b/src/NMTDS/NMTDS_PassKeyShape.cdl index 081226594..8721823be 100644 --- a/src/NMTDS/NMTDS_PassKeyShape.cdl +++ b/src/NMTDS/NMTDS_PassKeyShape.cdl @@ -1,28 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS_PassKeyShape.cdl +-- Created: +-- Author: Peter KURNEV -- --- File: NMTDS_PassKeyShape.cdl --- Created: --- Author: Peter KURNEV --- - - class PassKeyShape from NMTDS ---Purpose: diff --git a/src/NMTDS/NMTDS_PassKeyShape.cxx b/src/NMTDS/NMTDS_PassKeyShape.cxx index c4af3a480..804acd5c5 100644 --- a/src/NMTDS/NMTDS_PassKeyShape.cxx +++ b/src/NMTDS/NMTDS_PassKeyShape.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_PassKeyShape.cxx // Created: // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTDS/NMTDS_PassKeyShape.hxx b/src/NMTDS/NMTDS_PassKeyShape.hxx index 81eaa8096..4f9583ecf 100644 --- a/src/NMTDS/NMTDS_PassKeyShape.hxx +++ b/src/NMTDS/NMTDS_PassKeyShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PassKeyShape_HeaderFile #define _NMTDS_PassKeyShape_HeaderFile diff --git a/src/NMTDS/NMTDS_PassKeyShape.ixx b/src/NMTDS/NMTDS_PassKeyShape.ixx index 90c37bd34..c98d33542 100644 --- a/src/NMTDS/NMTDS_PassKeyShape.ixx +++ b/src/NMTDS/NMTDS_PassKeyShape.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTDS/NMTDS_PassKeyShape.jxx b/src/NMTDS/NMTDS_PassKeyShape.jxx index 9d79955e4..7b7553bcf 100644 --- a/src/NMTDS/NMTDS_PassKeyShape.jxx +++ b/src/NMTDS/NMTDS_PassKeyShape.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cdl b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cdl index 77c066755..6fc92b1e5 100644 --- a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cdl +++ b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cdl @@ -1,28 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS_PassKeyMapHasher.cdl +-- Created: +-- Author: Peter KURNEV -- --- File: NMTDS_PassKeyMapHasher.cdl --- Created: --- Author: Peter KURNEV --- - - class PassKeyShapeMapHasher from NMTDS ---Purpose: diff --git a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cxx b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cxx index e637e3380..b8fa38230 100644 --- a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cxx +++ b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_PassKeyMapHasher.cxx // Created: // Author: Peter KURNEV // - - +// #include //======================================================================= diff --git a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.hxx b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.hxx index e48436737..909ebb5cd 100644 --- a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.hxx +++ b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PassKeyShapeMapHasher_HeaderFile #define _NMTDS_PassKeyShapeMapHasher_HeaderFile diff --git a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.ixx b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.ixx index c7148fd5d..32be52eaf 100644 --- a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.ixx +++ b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.jxx b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.jxx index f0e81fc33..34fa8cc5e 100644 --- a/src/NMTDS/NMTDS_PassKeyShapeMapHasher.jxx +++ b/src/NMTDS/NMTDS_PassKeyShapeMapHasher.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_PassKeyShape_HeaderFile #include #endif diff --git a/src/NMTDS/NMTDS_ShapesDataStructure.cdl b/src/NMTDS/NMTDS_ShapesDataStructure.cdl index 5a2f93f72..ba1f59f48 100644 --- a/src/NMTDS/NMTDS_ShapesDataStructure.cdl +++ b/src/NMTDS/NMTDS_ShapesDataStructure.cdl @@ -1,27 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS_ShapesDataStructure.cdl +-- Created: Mon Dec 1 10:17:05 2003 +-- Author: Peter KURNEV -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- --- File: NMTDS_ShapesDataStructure.cdl --- Created: Mon Dec 1 10:17:05 2003 --- Author: Peter KURNEV --- - class ShapesDataStructure from NMTDS inherits ShapesDataStructure from BooleanOperations diff --git a/src/NMTDS/NMTDS_ShapesDataStructure.cxx b/src/NMTDS/NMTDS_ShapesDataStructure.cxx index a9a0e7370..c10daf236 100644 --- a/src/NMTDS/NMTDS_ShapesDataStructure.cxx +++ b/src/NMTDS/NMTDS_ShapesDataStructure.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_ShapesDataStructure.cxx // Created: Mon Dec 1 10:21:04 2003 // Author: Peter KURNEV // - - +// #include #include #include diff --git a/src/NMTDS/NMTDS_ShapesDataStructure.hxx b/src/NMTDS/NMTDS_ShapesDataStructure.hxx index 9d149f5a7..2dede1f65 100644 --- a/src/NMTDS/NMTDS_ShapesDataStructure.hxx +++ b/src/NMTDS/NMTDS_ShapesDataStructure.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_ShapesDataStructure_HeaderFile #define _NMTDS_ShapesDataStructure_HeaderFile diff --git a/src/NMTDS/NMTDS_ShapesDataStructure.ixx b/src/NMTDS/NMTDS_ShapesDataStructure.ixx index 587761e25..2eb57d133 100644 --- a/src/NMTDS/NMTDS_ShapesDataStructure.ixx +++ b/src/NMTDS/NMTDS_ShapesDataStructure.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTDS/NMTDS_ShapesDataStructure.jxx b/src/NMTDS/NMTDS_ShapesDataStructure.jxx index 41897c615..f14232fd4 100644 --- a/src/NMTDS/NMTDS_ShapesDataStructure.jxx +++ b/src/NMTDS/NMTDS_ShapesDataStructure.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKey.hxx b/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKey.hxx index 002862385..196074ff4 100644 --- a/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKey.hxx +++ b/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKey.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_StdMapNodeOfMapOfPassKey_HeaderFile #define _NMTDS_StdMapNodeOfMapOfPassKey_HeaderFile diff --git a/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx b/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx index 0392838d1..61cba228b 100644 --- a/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx +++ b/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKeyBoolean.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_StdMapNodeOfMapOfPassKeyBoolean_HeaderFile #define _NMTDS_StdMapNodeOfMapOfPassKeyBoolean_HeaderFile diff --git a/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKeyBoolean_0.cxx b/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKeyBoolean_0.cxx index 9728d1014..154519c8e 100644 --- a/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKeyBoolean_0.cxx +++ b/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKeyBoolean_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKey_0.cxx b/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKey_0.cxx index 08659bb9b..27fa652b3 100644 --- a/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKey_0.cxx +++ b/src/NMTDS/NMTDS_StdMapNodeOfMapOfPassKey_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTDS/NMTDS_Tools.cdl b/src/NMTDS/NMTDS_Tools.cdl index 1465d4d16..1506fa7b6 100644 --- a/src/NMTDS/NMTDS_Tools.cdl +++ b/src/NMTDS/NMTDS_Tools.cdl @@ -1,29 +1,28 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTDS_Tools.cdl +-- Created: Tue Feb 20 14:56:14 2007 +-- Author: Peter KURNEV -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- --- File: NMTDS_Tools.cdl --- Created: Tue Feb 20 14:56:14 2007 --- Author: Peter KURNEV --- ----Copyright: Matra Datavision 2007 - - class Tools from NMTDS ---Purpose: diff --git a/src/NMTDS/NMTDS_Tools.cxx b/src/NMTDS/NMTDS_Tools.cxx index 8944fe501..b49af9da3 100644 --- a/src/NMTDS/NMTDS_Tools.cxx +++ b/src/NMTDS/NMTDS_Tools.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTDS_Tools.cxx // Created: Tue Feb 20 14:57:28 2007 // Author: Peter KURNEV // - - +// #include #include #include diff --git a/src/NMTDS/NMTDS_Tools.hxx b/src/NMTDS/NMTDS_Tools.hxx index c7eb8fdc9..ca5f8984f 100644 --- a/src/NMTDS/NMTDS_Tools.hxx +++ b/src/NMTDS/NMTDS_Tools.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTDS_Tools_HeaderFile #define _NMTDS_Tools_HeaderFile diff --git a/src/NMTDS/NMTDS_Tools.ixx b/src/NMTDS/NMTDS_Tools.ixx index 8e5877b34..da643aa19 100644 --- a/src/NMTDS/NMTDS_Tools.ixx +++ b/src/NMTDS/NMTDS_Tools.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTDS/NMTDS_Tools.jxx b/src/NMTDS/NMTDS_Tools.jxx index 4359a18a7..5fdfd4c5d 100644 --- a/src/NMTDS/NMTDS_Tools.jxx +++ b/src/NMTDS/NMTDS_Tools.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Vertex_HeaderFile #include #endif diff --git a/src/NMTTools/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx b/src/NMTTools/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx index 3499864cc..ae1c3f807 100644 --- a/src/NMTTools/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx +++ b/src/NMTTools/Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_HeaderFile #define _Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger_HeaderFile diff --git a/src/NMTTools/Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx b/src/NMTTools/Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx index 48ce73f8a..0e68f8ec1 100644 --- a/src/NMTTools/Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx +++ b/src/NMTTools/Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors_HeaderFile #define _Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors_HeaderFile diff --git a/src/NMTTools/Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx b/src/NMTTools/Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx index a1d7b3076..37052ceed 100644 --- a/src/NMTTools/Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx +++ b/src/NMTTools/Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_HeaderFile #define _Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_HeaderFile diff --git a/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx b/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx index ddf434f3f..9be2a7b53 100644 --- a/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx +++ b/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_HeaderFile #define _Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_HeaderFile diff --git a/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx b/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx index 2ae11665b..4bde10714 100644 --- a/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx +++ b/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_HeaderFile #define _Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_HeaderFile diff --git a/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx b/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx index bd78cab85..26f899d6a 100644 --- a/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx +++ b/src/NMTTools/Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_HeaderFile #define _Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_HeaderFile diff --git a/src/NMTTools/Handle_NMTTools_ListNodeOfListOfCommonBlock.hxx b/src/NMTTools/Handle_NMTTools_ListNodeOfListOfCommonBlock.hxx index 68c12bec0..fb7fd9bbc 100644 --- a/src/NMTTools/Handle_NMTTools_ListNodeOfListOfCommonBlock.hxx +++ b/src/NMTTools/Handle_NMTTools_ListNodeOfListOfCommonBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTTools_ListNodeOfListOfCommonBlock_HeaderFile #define _Handle_NMTTools_ListNodeOfListOfCommonBlock_HeaderFile diff --git a/src/NMTTools/Handle_NMTTools_ListNodeOfListOfCoupleOfShape.hxx b/src/NMTTools/Handle_NMTTools_ListNodeOfListOfCoupleOfShape.hxx index 10c82d040..646478105 100644 --- a/src/NMTTools/Handle_NMTTools_ListNodeOfListOfCoupleOfShape.hxx +++ b/src/NMTTools/Handle_NMTTools_ListNodeOfListOfCoupleOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTTools_ListNodeOfListOfCoupleOfShape_HeaderFile #define _Handle_NMTTools_ListNodeOfListOfCoupleOfShape_HeaderFile diff --git a/src/NMTTools/Handle_NMTTools_StdMapNodeOfMapOfPaveBlock.hxx b/src/NMTTools/Handle_NMTTools_StdMapNodeOfMapOfPaveBlock.hxx index 93a4a7634..47559616e 100644 --- a/src/NMTTools/Handle_NMTTools_StdMapNodeOfMapOfPaveBlock.hxx +++ b/src/NMTTools/Handle_NMTTools_StdMapNodeOfMapOfPaveBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Handle_NMTTools_StdMapNodeOfMapOfPaveBlock_HeaderFile #define _Handle_NMTTools_StdMapNodeOfMapOfPaveBlock_HeaderFile diff --git a/src/NMTTools/Makefile.am b/src/NMTTools/Makefile.am index ecd125530..59c6b1f8d 100644 --- a/src/NMTTools/Makefile.am +++ b/src/NMTTools/Makefile.am @@ -1,32 +1,31 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM NMTTools : partition algorithm -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.in # Author : Julia DOROVSKIKH # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files @@ -39,11 +38,21 @@ salomeinclude_HEADERS = \ Handle_NMTTools_ListNodeOfListOfCommonBlock.hxx \ Handle_NMTTools_ListNodeOfListOfCoupleOfShape.hxx \ NMTTools_CheckerSI.hxx \ + NMTTools_CheckerSI.ixx \ + NMTTools_CheckerSI.jxx \ NMTTools_CommonBlockAPI.hxx \ + NMTTools_CommonBlockAPI.ixx \ + NMTTools_CommonBlockAPI.jxx \ NMTTools_CommonBlock.hxx \ + NMTTools_CommonBlock.ixx \ + NMTTools_CommonBlock.jxx \ NMTTools_CommonBlockPool.hxx \ NMTTools_CoupleOfShape.hxx \ + NMTTools_CoupleOfShape.ixx \ + NMTTools_CoupleOfShape.jxx \ NMTTools_DEProcessor.hxx \ + NMTTools_DEProcessor.ixx \ + NMTTools_DEProcessor.jxx \ NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx \ NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx \ NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx \ @@ -51,6 +60,8 @@ salomeinclude_HEADERS = \ NMTTools_IndexedDataMapOfShapeIndexedMapOfShape.hxx \ NMTTools_IndexedDataMapOfShapePaveBlock.hxx \ NMTTools_IteratorOfCoupleOfShape.hxx \ + NMTTools_IteratorOfCoupleOfShape.ixx \ + NMTTools_IteratorOfCoupleOfShape.jxx \ NMTTools_ListIteratorOfListOfCommonBlock.hxx \ NMTTools_ListIteratorOfListOfCoupleOfShape.hxx \ NMTTools_ListNodeOfListOfCommonBlock.hxx \ @@ -58,8 +69,12 @@ salomeinclude_HEADERS = \ NMTTools_ListOfCommonBlock.hxx \ NMTTools_ListOfCoupleOfShape.hxx \ NMTTools_PaveFiller.hxx \ + NMTTools_PaveFiller.ixx \ + NMTTools_PaveFiller.jxx \ NMTTools_PPaveFiller.hxx \ NMTTools_Tools.hxx \ + NMTTools_Tools.ixx \ + NMTTools_Tools.jxx \ Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx \ Handle_NMTTools_StdMapNodeOfMapOfPaveBlock.hxx \ NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx \ @@ -112,15 +127,43 @@ dist_libNMTTools_la_SOURCES = \ NMTTools_MapOfPaveBlock_0.cxx \ NMTTools_StdMapNodeOfMapOfPaveBlock_0.cxx -# additionnal information to compil and link file +# additional information to compile and link file -libNMTTools_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ +libNMTTools_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ -I$(srcdir)/../NMTDS -libNMTTools_la_LDFLAGS = \ - ../NMTDS/libNMTDS.la \ - $(STDLIB) \ - $(CAS_LDPATH) -lTKBool -lTKBO \ +libNMTTools_la_LDFLAGS = \ + ../NMTDS/libNMTDS.la \ + $(STDLIB) \ + $(CAS_LDPATH) -lTKBool -lTKBO \ $(KERNEL_LDFLAGS) + +CDL_FILES = \ + NMTTools.cdl \ + NMTTools_CheckerSI.cdl \ + NMTTools_CommonBlock.cdl \ + NMTTools_CommonBlockAPI.cdl \ + NMTTools_CoupleOfShape.cdl \ + NMTTools_DEProcessor.cdl \ + NMTTools_IteratorOfCoupleOfShape.cdl \ + NMTTools_PaveFiller.cdl \ + NMTTools_Tools.cdl + +EXTRA_DIST += $(CDL_FILES) + +######################################## +# Non-used (obsolete?) files +######################################## +# NMTTools_PCurveMaker.cdl +# NMTTools_PCurveMaker.cxx +# NMTTools_PCurveMaker.hxx +# NMTTools_PCurveMaker.ixx +# NMTTools_PCurveMaker.jxx +# NMTTools_PDSFiller.hxx +# NMTTools_DSFiller.cdl +# NMTTools_DSFiller.cxx +# NMTTools_DSFiller.hxx +# NMTTools_DSFiller.ixx +# NMTTools_DSFiller.jxx diff --git a/src/NMTTools/NMTTools.cdl b/src/NMTTools/NMTTools.cdl index 14ce83e18..727b8331e 100644 --- a/src/NMTTools/NMTTools.cdl +++ b/src/NMTTools/NMTTools.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: NMTTools.cdl -- Created: Thu Dec 4 16:55:49 2003 -- Author: Peter KURNEV -- - - +-- package NMTTools ---Purpose: diff --git a/src/NMTTools/NMTTools.pro b/src/NMTTools/NMTTools.pro new file mode 100644 index 000000000..109a94959 --- /dev/null +++ b/src/NMTTools/NMTTools.pro @@ -0,0 +1,131 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = NMTTools +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} ../NMTDS + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lNMTDS $${STDLIB} $${CAS_LDPATH} -lTKBool -lTKBO $${KERNEL_LDFLAGS} + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +HEADERS = Handle_NMTDS_IndexedDataMapNodeOfIndexedDataMapOfIntegerIndexedDataMapOfShapeInteger.hxx +HEADERS += Handle_NMTDS_ListNodeOfListOfIndexedDataMapOfShapeAncestorsSuccessors.hxx +HEADERS += Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx +HEADERS += Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx +HEADERS += Handle_NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx +HEADERS += Handle_NMTTools_ListNodeOfListOfCommonBlock.hxx +HEADERS += Handle_NMTTools_ListNodeOfListOfCoupleOfShape.hxx +HEADERS += NMTTools_CommonBlockAPI.hxx +HEADERS += NMTTools_CommonBlock.hxx +HEADERS += NMTTools_CommonBlockPool.hxx +HEADERS += NMTTools_CoupleOfShape.hxx +HEADERS += NMTTools_DEProcessor.hxx +HEADERS += NMTTools_DSFiller.hxx +HEADERS += NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx +HEADERS += NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx +HEADERS += NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx +HEADERS += NMTTools_IndexedDataMapOfIndexedMapOfInteger.hxx +HEADERS += NMTTools_IndexedDataMapOfShapeIndexedMapOfShape.hxx +HEADERS += NMTTools_IndexedDataMapOfShapePaveBlock.hxx +HEADERS += NMTTools_IteratorOfCoupleOfShape.hxx +HEADERS += NMTTools_ListIteratorOfListOfCommonBlock.hxx +HEADERS += NMTTools_ListIteratorOfListOfCoupleOfShape.hxx +HEADERS += NMTTools_ListNodeOfListOfCommonBlock.hxx +HEADERS += NMTTools_ListNodeOfListOfCoupleOfShape.hxx +HEADERS += NMTTools_ListOfCommonBlock.hxx +HEADERS += NMTTools_ListOfCoupleOfShape.hxx +HEADERS += NMTTools_PaveFiller.hxx +HEADERS += NMTTools_PCurveMaker.hxx +HEADERS += NMTTools_PDSFiller.hxx +HEADERS += NMTTools_PPaveFiller.hxx +HEADERS += NMTTools_Tools.hxx +HEADERS += Handle_NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx +HEADERS += Handle_NMTTools_StdMapNodeOfMapOfPaveBlock.hxx +HEADERS += NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx +HEADERS += NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx +HEADERS += NMTTools_DataMapOfIntegerListOfPaveBlock.hxx +HEADERS += NMTTools_MapIteratorOfMapOfPaveBlock.hxx +HEADERS += NMTTools_MapOfPaveBlock.hxx +HEADERS += NMTTools_StdMapNodeOfMapOfPaveBlock.hxx + +SOURCES = NMTTools_CommonBlockAPI.cxx +SOURCES += NMTTools_CommonBlock.cxx +SOURCES += NMTTools_CommonBlockPool_0.cxx +SOURCES += NMTTools_CoupleOfShape.cxx +SOURCES += NMTTools_DEProcessor.cxx +SOURCES += NMTTools_DSFiller.cxx +SOURCES += NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_0.cxx +SOURCES += NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_0.cxx +SOURCES += NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_0.cxx +SOURCES += NMTTools_IndexedDataMapOfIndexedMapOfInteger_0.cxx +SOURCES += NMTTools_IndexedDataMapOfShapeIndexedMapOfShape_0.cxx +SOURCES += NMTTools_IndexedDataMapOfShapePaveBlock_0.cxx +SOURCES += NMTTools_IteratorOfCoupleOfShape.cxx +SOURCES += NMTTools_ListIteratorOfListOfCommonBlock_0.cxx +SOURCES += NMTTools_ListIteratorOfListOfCoupleOfShape_0.cxx +SOURCES += NMTTools_ListNodeOfListOfCommonBlock_0.cxx +SOURCES += NMTTools_ListNodeOfListOfCoupleOfShape_0.cxx +SOURCES += NMTTools_ListOfCommonBlock_0.cxx +SOURCES += NMTTools_ListOfCoupleOfShape_0.cxx +SOURCES += NMTTools_PaveFiller_0.cxx +SOURCES += NMTTools_PaveFiller_1.cxx +SOURCES += NMTTools_PaveFiller_2.cxx +SOURCES += NMTTools_PaveFiller_3.cxx +SOURCES += NMTTools_PaveFiller_4.cxx +SOURCES += NMTTools_PaveFiller_5.cxx +SOURCES += NMTTools_PaveFiller_6.cxx +SOURCES += NMTTools_PaveFiller_7.cxx +SOURCES += NMTTools_PaveFiller_8.cxx +SOURCES += NMTTools_PaveFiller_9.cxx +SOURCES += NMTTools_PaveFiller.cxx +SOURCES += NMTTools_PCurveMaker.cxx +SOURCES += NMTTools_Tools.cxx +SOURCES += NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock_0.cxx +SOURCES += NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_0.cxx +SOURCES += NMTTools_DataMapOfIntegerListOfPaveBlock_0.cxx +SOURCES += NMTTools_MapIteratorOfMapOfPaveBlock_0.cxx +SOURCES += NMTTools_MapOfPaveBlock_0.cxx +SOURCES += NMTTools_StdMapNodeOfMapOfPaveBlock_0.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/NMTTools/NMTTools_CheckerSI.cdl b/src/NMTTools/NMTTools_CheckerSI.cdl index 50518ecd0..9267d8272 100644 --- a/src/NMTTools/NMTTools_CheckerSI.cdl +++ b/src/NMTTools/NMTTools_CheckerSI.cdl @@ -1,26 +1,28 @@ --- Copyright (C) 2006 SAMTECH --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- +-- File: NMTTools_CheckerSI.cdl +-- Created: Mon Feb 19 11:23:55 2007 +-- Author: Peter KURNEV -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- --- File: NMTTools_CheckerSI.cdl --- Created: Mon Feb 19 11:23:55 2007 --- Author: Peter KURNEV - - class CheckerSI from NMTTools inherits PaveFiller from NMTTools ---Purpose: diff --git a/src/NMTTools/NMTTools_CheckerSI.cxx b/src/NMTTools/NMTTools_CheckerSI.cxx index f3158795f..fd7cd2c2b 100644 --- a/src/NMTTools/NMTTools_CheckerSI.cxx +++ b/src/NMTTools/NMTTools_CheckerSI.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2006 SAMTECH -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File: NMTTools_CheckerSI.cxx +// Created: Mon Feb 19 11:32:08 2007 +// Author: Peter KURNEV // -// File: NMTTools_CheckerSI.cxx -// Created: Mon Feb 19 11:32:08 2007 -// Author: Peter KURNEV -// - - #include #include diff --git a/src/NMTTools/NMTTools_CheckerSI.hxx b/src/NMTTools/NMTTools_CheckerSI.hxx index 4aacb49d2..2bd804de4 100644 --- a/src/NMTTools/NMTTools_CheckerSI.hxx +++ b/src/NMTTools/NMTTools_CheckerSI.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_CheckerSI_HeaderFile #define _NMTTools_CheckerSI_HeaderFile diff --git a/src/NMTTools/NMTTools_CheckerSI.ixx b/src/NMTTools/NMTTools_CheckerSI.ixx index 5d3e0201d..ebd56f247 100644 --- a/src/NMTTools/NMTTools_CheckerSI.ixx +++ b/src/NMTTools/NMTTools_CheckerSI.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTTools/NMTTools_CheckerSI.jxx b/src/NMTTools/NMTTools_CheckerSI.jxx index 68bdc3096..774127cac 100644 --- a/src/NMTTools/NMTTools_CheckerSI.jxx +++ b/src/NMTTools/NMTTools_CheckerSI.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_CheckerSI_HeaderFile #include #endif diff --git a/src/NMTTools/NMTTools_CheckerSI_1.cxx b/src/NMTTools/NMTTools_CheckerSI_1.cxx index 36ab867df..a0c9f978b 100755 --- a/src/NMTTools/NMTTools_CheckerSI_1.cxx +++ b/src/NMTTools/NMTTools_CheckerSI_1.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2006 SAMTECH -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_CheckerSI.cxx // Created: Mon Feb 19 11:32:08 2007 // Author: Peter KURNEV -// - - +// #include #include #include diff --git a/src/NMTTools/NMTTools_CommonBlock.cdl b/src/NMTTools/NMTTools_CommonBlock.cdl index 7c4fd7409..406208a05 100644 --- a/src/NMTTools/NMTTools_CommonBlock.cdl +++ b/src/NMTTools/NMTTools_CommonBlock.cdl @@ -1,29 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: NMTTools_CommonBlock.cdl -- Created: Tue Dec 9 12:11:48 2003 -- Author: Peter KURNEV -- - - - +-- class CommonBlock from NMTTools ---Purpose: diff --git a/src/NMTTools/NMTTools_CommonBlock.cxx b/src/NMTTools/NMTTools_CommonBlock.cxx index 5924d0e16..94ff2e98c 100644 --- a/src/NMTTools/NMTTools_CommonBlock.cxx +++ b/src/NMTTools/NMTTools_CommonBlock.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_CommonBlock.cxx // Created: Tue Dec 9 12:23:29 2003 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTTools/NMTTools_CommonBlock.hxx b/src/NMTTools/NMTTools_CommonBlock.hxx index 38d036f8d..d13b2c496 100644 --- a/src/NMTTools/NMTTools_CommonBlock.hxx +++ b/src/NMTTools/NMTTools_CommonBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_CommonBlock_HeaderFile #define _NMTTools_CommonBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_CommonBlock.ixx b/src/NMTTools/NMTTools_CommonBlock.ixx index 91d08c8c8..f335f8981 100644 --- a/src/NMTTools/NMTTools_CommonBlock.ixx +++ b/src/NMTTools/NMTTools_CommonBlock.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTTools/NMTTools_CommonBlock.jxx b/src/NMTTools/NMTTools_CommonBlock.jxx index 1373207f3..be3140a9c 100644 --- a/src/NMTTools/NMTTools_CommonBlock.jxx +++ b/src/NMTTools/NMTTools_CommonBlock.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _BOPTools_PaveBlock_HeaderFile #include #endif diff --git a/src/NMTTools/NMTTools_CommonBlockAPI.cdl b/src/NMTTools/NMTTools_CommonBlockAPI.cdl index 8743ee8ee..601f6535f 100644 --- a/src/NMTTools/NMTTools_CommonBlockAPI.cdl +++ b/src/NMTTools/NMTTools_CommonBlockAPI.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: NMTTools_CommonBlockAPI.cdl -- Created: Mon Dec 15 11:35:46 2003 -- Author: Peter KURNEV -- - - +-- class CommonBlockAPI from NMTTools ---Purpose: diff --git a/src/NMTTools/NMTTools_CommonBlockAPI.cxx b/src/NMTTools/NMTTools_CommonBlockAPI.cxx index b92e98307..817f328cb 100644 --- a/src/NMTTools/NMTTools_CommonBlockAPI.cxx +++ b/src/NMTTools/NMTTools_CommonBlockAPI.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_CommonBlockAPI.cxx // Created: Mon Dec 15 11:38:04 2003 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTTools/NMTTools_CommonBlockAPI.hxx b/src/NMTTools/NMTTools_CommonBlockAPI.hxx index a3c437330..7b717d706 100644 --- a/src/NMTTools/NMTTools_CommonBlockAPI.hxx +++ b/src/NMTTools/NMTTools_CommonBlockAPI.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_CommonBlockAPI_HeaderFile #define _NMTTools_CommonBlockAPI_HeaderFile diff --git a/src/NMTTools/NMTTools_CommonBlockAPI.ixx b/src/NMTTools/NMTTools_CommonBlockAPI.ixx index 49edac894..fdca4ca4a 100644 --- a/src/NMTTools/NMTTools_CommonBlockAPI.ixx +++ b/src/NMTTools/NMTTools_CommonBlockAPI.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTTools/NMTTools_CommonBlockAPI.jxx b/src/NMTTools/NMTTools_CommonBlockAPI.jxx index f6599af59..68ffe0ae9 100644 --- a/src/NMTTools/NMTTools_CommonBlockAPI.jxx +++ b/src/NMTTools/NMTTools_CommonBlockAPI.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_ListOfCommonBlock_HeaderFile #include #endif diff --git a/src/NMTTools/NMTTools_CommonBlockPool.hxx b/src/NMTTools/NMTTools_CommonBlockPool.hxx index 92f849c57..4c131de93 100644 --- a/src/NMTTools/NMTTools_CommonBlockPool.hxx +++ b/src/NMTTools/NMTTools_CommonBlockPool.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_CommonBlockPool_HeaderFile #define _NMTTools_CommonBlockPool_HeaderFile diff --git a/src/NMTTools/NMTTools_CommonBlockPool_0.cxx b/src/NMTTools/NMTTools_CommonBlockPool_0.cxx index 09fe06543..72b005821 100644 --- a/src/NMTTools/NMTTools_CommonBlockPool_0.cxx +++ b/src/NMTTools/NMTTools_CommonBlockPool_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_OutOfRange_HeaderFile diff --git a/src/NMTTools/NMTTools_CoupleOfShape.cdl b/src/NMTTools/NMTTools_CoupleOfShape.cdl index 7e8d2ed63..e9cc2d30e 100644 --- a/src/NMTTools/NMTTools_CoupleOfShape.cdl +++ b/src/NMTTools/NMTTools_CoupleOfShape.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: NMTTools_CoupleOfShape.cdl -- Created: Wed Jan 28 15:03:39 2004 -- Author: Peter KURNEV -- - - +-- class CoupleOfShape from NMTTools ---Purpose: diff --git a/src/NMTTools/NMTTools_CoupleOfShape.cxx b/src/NMTTools/NMTTools_CoupleOfShape.cxx index cbb721df1..5736b977c 100644 --- a/src/NMTTools/NMTTools_CoupleOfShape.cxx +++ b/src/NMTTools/NMTTools_CoupleOfShape.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_CoupleOfShape.cxx // Created: Wed Jan 28 15:06:11 2004 // Author: Peter KURNEV // - +// #include //======================================================================= diff --git a/src/NMTTools/NMTTools_CoupleOfShape.hxx b/src/NMTTools/NMTTools_CoupleOfShape.hxx index 17ccbd0af..870b5261d 100644 --- a/src/NMTTools/NMTTools_CoupleOfShape.hxx +++ b/src/NMTTools/NMTTools_CoupleOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_CoupleOfShape_HeaderFile #define _NMTTools_CoupleOfShape_HeaderFile diff --git a/src/NMTTools/NMTTools_CoupleOfShape.ixx b/src/NMTTools/NMTTools_CoupleOfShape.ixx index 9711b73ad..65ba2898a 100644 --- a/src/NMTTools/NMTTools_CoupleOfShape.ixx +++ b/src/NMTTools/NMTTools_CoupleOfShape.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTTools/NMTTools_CoupleOfShape.jxx b/src/NMTTools/NMTTools_CoupleOfShape.jxx index fe94c8849..64230757c 100644 --- a/src/NMTTools/NMTTools_CoupleOfShape.jxx +++ b/src/NMTTools/NMTTools_CoupleOfShape.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/NMTTools/NMTTools_DEProcessor.cdl b/src/NMTTools/NMTTools_DEProcessor.cdl index d58f06dbf..d4e279c42 100644 --- a/src/NMTTools/NMTTools_DEProcessor.cdl +++ b/src/NMTTools/NMTTools_DEProcessor.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File: NMTTools_DEProcessor.cdl -- Created: Wed Sep 12 12:08:37 2001 -- Author: Peter KURNEV -- - - +-- class DEProcessor from NMTTools ---Purpose: diff --git a/src/NMTTools/NMTTools_DEProcessor.cxx b/src/NMTTools/NMTTools_DEProcessor.cxx index 0933b0104..538c998b4 100644 --- a/src/NMTTools/NMTTools_DEProcessor.cxx +++ b/src/NMTTools/NMTTools_DEProcessor.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_DEProcessor.cxx // Created: Wed Sep 12 12:10:52 2001 // Author: Peter KURNEV // - +// #include #include @@ -31,10 +33,13 @@ #include #include -#include +#include + +#include #include #include +#include #include #include @@ -74,26 +79,18 @@ #include #include #include - +#include +#include #include #include #include - -#include -// -#include -#include -// -#include - -#include -#include - #include +#include + //======================================================================= -// function: NMTTools_DEProcessor::NMTTools_DEProcessor +// function: // purpose: //======================================================================= NMTTools_DEProcessor::NMTTools_DEProcessor(NMTTools_PaveFiller& aPaveFiller) @@ -118,15 +115,17 @@ void NMTTools_DEProcessor::Do() { Standard_Integer aNbE; + // myIsDone=Standard_False; - + // FindDegeneratedEdges(); + // aNbE=myDEMap.Extent(); - if (!aNbE) { - myIsDone=Standard_True; + myIsDone=!myIsDone; return; } + // DoPaves(); } //======================================================================= @@ -136,27 +135,25 @@ void NMTTools_DEProcessor::FindDegeneratedEdges() { Standard_Integer i, aNb, nV, nF, nVx, ip, iRankE; + TopoDS_Vertex aV; TopTools_IndexedDataMapOfShapeListOfShape aMEF; // aNb=myDS->NumberOfShapesOfTheObject(); - // - for (i=1; i<=aNb; i++) { - const TopoDS_Shape aF=myDS->Shape(i);//mpv + for (i=1; i<=aNb; ++i) { + const TopoDS_Shape aF=myDS->Shape(i); if (aF.ShapeType()==TopAbs_FACE) { TopExp::MapShapesAndAncestors (aF, TopAbs_EDGE, TopAbs_FACE, aMEF); } } // - for (i=1; i<=aNb; i++) { - const TopoDS_Shape aS=myDS->Shape(i);//mpv + for (i=1; i<=aNb; ++i) { + const TopoDS_Shape aS=myDS->Shape(i); if (aS.ShapeType()==TopAbs_EDGE) { const TopoDS_Edge& aE=TopoDS::Edge(aS); if (BRep_Tool::Degenerated(aE)) { iRankE=myDS->Rank(i); - - TopoDS_Vertex aV=TopExp::FirstVertex(aE); - + aV=TopExp::FirstVertex(aE); nVx=myDS->ShapeIndex(aV, iRankE); // nV=nVx; @@ -193,11 +190,12 @@ // nFD=0; aNbE=myDEMap.Extent(); - for (i=1; i<=aNbE; i++) { + for (i=1; i<=aNbE; ++i) { nED=myDEMap.FindKey(i); - + // const BOPTools_DEInfo& aDEInfo=myDEMap(i); nVD=aDEInfo.Vertex(); + // // Fill PaveSet for the edge nED const TColStd_ListOfInteger& nLF=aDEInfo.Faces(); TColStd_ListIteratorOfListOfInteger anIt(nLF); @@ -206,12 +204,12 @@ BOPTools_ListOfPaveBlock aLPB; FindPaveBlocks(nED, nVD, nFD, aLPB); - // xxf + // aNbLPB=aLPB.Extent(); if (!aNbLPB) { continue; } - //xxt + // FillPaveSet (nED, nVD, nFD, aLPB); } // @@ -235,7 +233,6 @@ BOPTools_ListIteratorOfListOfPaveBlock anIt; Standard_Integer i, aNb, nF2, nV; // - //BOPTools_CArray1OfSSInterference& aFFs=(myFiller->InterfPool())->SSInterferences(); BOPTools_CArray1OfSSInterference& aFFs=(myFiller->IP())->SSInterferences(); // aNb=aFFs.Extent(); @@ -270,24 +267,24 @@ // // Section Parts Standard_Integer j, aNbCurves; + // BOPTools_SequenceOfCurves& aSC=aFF.Curves(); aNbCurves=aSC.Length(); - - for (j=1; j<=aNbCurves; j++) { + for (j=1; j<=aNbCurves; ++j) { const BOPTools_Curve& aBC=aSC(j); const BOPTools_ListOfPaveBlock& aLPBSe=aBC.NewPaveBlocks(); - + // anIt.Initialize(aLPBSe); for (; anIt.More(); anIt.Next()) { const BOPTools_PaveBlock& aPBSe=anIt.Value(); - + // const BOPTools_Pave& aPv1=aPBSe.Pave1(); nV=aPv1.Index(); if (nV==nVD) { aLPBOut.Append(aPBSe); continue; } - + // const BOPTools_Pave& aPv2=aPBSe.Pave2(); nV=aPv2.Index(); if (nV==nVD) { @@ -309,28 +306,26 @@ { Standard_Boolean bIsDone, bXDir, bRejectFlag; Standard_Integer nE, aNbPoints, j; - Standard_Real aTD1, aTD2, aT1, aT2, aTolInter, aX, aDT; + Standard_Real aTD1, aTD2, aT1, aT2, aTolInter, aX, aDT, aXx; + gp_Pnt2d aP2d1, aP2d2, aP2D; + gp_Lin2d aLDE; // aDT=Precision::PConfusion(); // - BOPTools_PaveSet& aPaveSet= (myFiller->ChangePavePool()).ChangeValue(myDS->RefEdge(nED)); + BOPTools_PaveSet& aPaveSet= + (myFiller->ChangePavePool()).ChangeValue(myDS->RefEdge(nED)); // // Clear aPaveSet, aSplitEdges aPaveSet.ChangeSet().Clear(); // - const TopoDS_Edge aDE=TopoDS::Edge(myDS->Shape(nED));//mpv - const TopoDS_Face aDF=TopoDS::Face(myDS->Shape(nFD));//mpv + const TopoDS_Edge aDE=TopoDS::Edge(myDS->Shape(nED)); + const TopoDS_Face aDF=TopoDS::Face(myDS->Shape(nFD)); // // 2D Curve of degenerated edge on the face aDF - // Modified Thu Sep 14 14:35:18 2006 - // Contribution of Samtech www.samcef.com BEGIN - //Handle(Geom2d_Curve) aC2DDE=BRep_Tool::CurveOnSurface(aDE, aDF, aTD1, aTD2); Handle(Geom2d_Curve) aC2DDE1=BRep_Tool::CurveOnSurface(aDE, aDF, aTD1, aTD2); Handle(Geom2d_TrimmedCurve)aC2DDE=new Geom2d_TrimmedCurve(aC2DDE1, aTD1, aTD2); - // Contribution of Samtech www.samcef.com END // - // Choose direction for Degenerated Edge - gp_Pnt2d aP2d1, aP2d2; + // Choose direction for degenerated edge aC2DDE->D0(aTD1, aP2d1); aC2DDE->D0(aTD2, aP2d2); @@ -350,15 +345,13 @@ for (; anIt.More(); anIt.Next()) { const BOPTools_PaveBlock& aPB=anIt.Value(); nE=aPB.Edge(); - const TopoDS_Edge aE=TopoDS::Edge(myDS->Shape(nE));//mpv + const TopoDS_Edge aE=TopoDS::Edge(myDS->Shape(nE)); Handle(Geom2d_Curve) aC2D=BRep_Tool::CurveOnSurface(aE, aDF, aT1, aT2); // // Intersection - aTolInter=0.001; - Geom2dAdaptor_Curve aGAC1, aGAC2; - + // aGAC1.Load(aC2DDE, aTD1, aTD2); Handle(Geom2d_Line) aL2D= Handle(Geom2d_Line)::DownCast(aC2D); if (!aL2D.IsNull()) { @@ -367,28 +360,37 @@ else { aGAC2.Load(aC2D, aT1, aT2); } - + // + aTolInter=0.001; Geom2dInt_GInter aGInter(aGAC1, aGAC2, aTolInter, aTolInter); - bIsDone=aGInter.IsDone(); if(bIsDone) { aNbPoints=aGInter.NbPoints(); if (aNbPoints) { for (j=1; j<=aNbPoints; ++j) { - gp_Pnt2d aP2D=aGInter.Point(j).Value(); + aP2D=aGInter.Point(j).Value(); + Handle(Geom2d_Line) aCLDE; // - // Modified to obtain exact parameter Thu Sep 14 14:35:18 2006 - // Contribution of Samtech www.samcef.com BEGIN - Handle(Geom2d_Line) aCLDE=Handle(Geom2d_Line)::DownCast(aC2DDE1); + //modified by NIZNHY-PKV Thu Mar 20 17:37:32 2008f + Handle(Geom2d_TrimmedCurve) aCLDET1= + Handle(Geom2d_TrimmedCurve)::DownCast(aC2DDE1); + if (aCLDET1.IsNull()) { + aCLDE=Handle(Geom2d_Line)::DownCast(aC2DDE1); + } + else { + Handle(Geom2d_Curve) aBasisCurve=aCLDET1->BasisCurve(); + aCLDE=Handle(Geom2d_Line)::DownCast(aBasisCurve); + } + //aCLDE=Handle(Geom2d_Line)::DownCast(aC2DDE1); + //modified by NIZNHY-PKV Thu Mar 20 17:37:37 2008t + if (aCLDE.IsNull()) { continue; } - gp_Lin2d aLDE=aCLDE->Lin2d(); + + aLDE=aCLDE->Lin2d(); aX=ElCLib::Parameter(aLDE, aP2D); // - //aX=(bXDir) ? aP2D.X(): aP2D.Y(); - // Contribution of Samtech www.samcef.com END - // if (fabs (aX-aTD1) < aDT || fabs (aX-aTD2) < aDT) { continue; } @@ -401,7 +403,7 @@ BOPTools_ListIteratorOfListOfPave aPaveIt(aListOfPave); for (; aPaveIt.More(); aPaveIt.Next()) { const BOPTools_Pave& aPavex=aPaveIt.Value(); - Standard_Real aXx=aPavex.Param(); + aXx=aPavex.Param(); if (fabs (aX-aXx) < aDT) { bRejectFlag=Standard_True; break; @@ -424,8 +426,10 @@ //======================================================================= void NMTTools_DEProcessor::FillSplitEdgesPool (const Standard_Integer nED) { - BOPTools_SplitShapesPool& aSplitShapesPool=myFiller->ChangeSplitShapesPool(); - BOPTools_ListOfPaveBlock& aSplitEdges=aSplitShapesPool.ChangeValue(myDS->RefEdge(nED)); + BOPTools_SplitShapesPool& aSplitShapesPool= + myFiller->ChangeSplitShapesPool(); + BOPTools_ListOfPaveBlock& aSplitEdges= + aSplitShapesPool.ChangeValue(myDS->RefEdge(nED)); // aSplitEdges.Clear(); // @@ -454,8 +458,8 @@ TopoDS_Edge aE, aESplit; TopoDS_Vertex aV1, aV2; - const TopoDS_Edge aDE=TopoDS::Edge(myDS->Shape(nED));//mpv - const TopoDS_Face aDF=TopoDS::Face(myDS->Shape(nFD));//mpv + const TopoDS_Edge aDE=TopoDS::Edge(myDS->Shape(nED)); + const TopoDS_Face aDF=TopoDS::Face(myDS->Shape(nFD)); BOPTools_ListIteratorOfListOfPaveBlock aPBIt(aSplitEdges); @@ -522,17 +526,4 @@ BB.UpdateEdge(E, aTol); aNewEdge=E; } -/* -//======================================================================= -// function: NMTTools_DEProcessor::NMTTools_DEProcessor -// purpose: -//======================================================================= - NMTTools_DEProcessor::NMTTools_DEProcessor(NMTTools_PDSFiller& pDSFiller) -: - myIsDone(Standard_False) -{ - myDSFiller=pDSFiller; - myFiller=(NMTTools_PaveFiller*) &(myDSFiller->PaveFiller()); - myDS=myFiller->DS(); -} -*/ + diff --git a/src/NMTTools/NMTTools_DEProcessor.hxx b/src/NMTTools/NMTTools_DEProcessor.hxx index dfd149335..c3587312f 100644 --- a/src/NMTTools/NMTTools_DEProcessor.hxx +++ b/src/NMTTools/NMTTools_DEProcessor.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_DEProcessor_HeaderFile #define _NMTTools_DEProcessor_HeaderFile diff --git a/src/NMTTools/NMTTools_DEProcessor.ixx b/src/NMTTools/NMTTools_DEProcessor.ixx index 941caff8c..e7f2e54f8 100644 --- a/src/NMTTools/NMTTools_DEProcessor.ixx +++ b/src/NMTTools/NMTTools_DEProcessor.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTTools/NMTTools_DEProcessor.jxx b/src/NMTTools/NMTTools_DEProcessor.jxx index b039537bc..9b5931f0e 100644 --- a/src/NMTTools/NMTTools_DEProcessor.jxx +++ b/src/NMTTools/NMTTools_DEProcessor.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_PaveFiller_HeaderFile #include #endif diff --git a/src/NMTTools/NMTTools_DSFiller.cdl b/src/NMTTools/NMTTools_DSFiller.cdl index 1876b25fe..bf9522076 100644 --- a/src/NMTTools/NMTTools_DSFiller.cdl +++ b/src/NMTTools/NMTTools_DSFiller.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: NMTTools_DSFiller.cdl -- Created: Fri Dec 5 13:57:03 2003 -- Author: Peter KURNEV -- - - +-- class DSFiller from NMTTools ---Purpose: diff --git a/src/NMTTools/NMTTools_DSFiller.cxx b/src/NMTTools/NMTTools_DSFiller.cxx index b46b41c9c..861a72c82 100644 --- a/src/NMTTools/NMTTools_DSFiller.cxx +++ b/src/NMTTools/NMTTools_DSFiller.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_DSFiller.cxx // Created: Fri Dec 5 14:06:34 2003 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTTools/NMTTools_DSFiller.hxx b/src/NMTTools/NMTTools_DSFiller.hxx index 82c9b40c4..2f0064412 100644 --- a/src/NMTTools/NMTTools_DSFiller.hxx +++ b/src/NMTTools/NMTTools_DSFiller.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_DSFiller_HeaderFile #define _NMTTools_DSFiller_HeaderFile diff --git a/src/NMTTools/NMTTools_DSFiller.ixx b/src/NMTTools/NMTTools_DSFiller.ixx index c9b80740a..798cc4a14 100644 --- a/src/NMTTools/NMTTools_DSFiller.ixx +++ b/src/NMTTools/NMTTools_DSFiller.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTTools/NMTTools_DSFiller.jxx b/src/NMTTools/NMTTools_DSFiller.jxx index 3ff0ae84f..b9e272ee0 100644 --- a/src/NMTTools/NMTTools_DSFiller.jxx +++ b/src/NMTTools/NMTTools_DSFiller.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/NMTTools/NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx b/src/NMTTools/NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx index df15c1128..cafca05ea 100644 --- a/src/NMTTools/NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx +++ b/src/NMTTools/NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock_HeaderFile #define _NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock_0.cxx b/src/NMTTools/NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock_0.cxx index 58c33e1b7..dddb91544 100644 --- a/src/NMTTools/NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock_0.cxx +++ b/src/NMTTools/NMTTools_DataMapIteratorOfDataMapOfIntegerListOfPaveBlock_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/NMTTools/NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx b/src/NMTTools/NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx index 4c4104183..bd3a90005 100644 --- a/src/NMTTools/NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx +++ b/src/NMTTools/NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_HeaderFile #define _NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_0.cxx b/src/NMTTools/NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_0.cxx index c863a91b7..3b091cdfc 100644 --- a/src/NMTTools/NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_0.cxx +++ b/src/NMTTools/NMTTools_DataMapNodeOfDataMapOfIntegerListOfPaveBlock_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTTools/NMTTools_DataMapOfIntegerListOfPaveBlock.hxx b/src/NMTTools/NMTTools_DataMapOfIntegerListOfPaveBlock.hxx index 39dddc5be..4ee635d04 100644 --- a/src/NMTTools/NMTTools_DataMapOfIntegerListOfPaveBlock.hxx +++ b/src/NMTTools/NMTTools_DataMapOfIntegerListOfPaveBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_DataMapOfIntegerListOfPaveBlock_HeaderFile #define _NMTTools_DataMapOfIntegerListOfPaveBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_DataMapOfIntegerListOfPaveBlock_0.cxx b/src/NMTTools/NMTTools_DataMapOfIntegerListOfPaveBlock_0.cxx index a785ad2ee..ba1f46649 100644 --- a/src/NMTTools/NMTTools_DataMapOfIntegerListOfPaveBlock_0.cxx +++ b/src/NMTTools/NMTTools_DataMapOfIntegerListOfPaveBlock_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx index 3823f0edf..3774d3411 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx +++ b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_HeaderFile #define _NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_0.cxx b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_0.cxx index bddc64d48..7989209e2 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_0.cxx +++ b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfIndexedMapOfInteger_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx index 0caba086b..9b24aa885 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx +++ b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_HeaderFile #define _NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_0.cxx b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_0.cxx index 40833f09d..628f0b740 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_0.cxx +++ b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapeIndexedMapOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx index 7a0a361ee..b89241660 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx +++ b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_HeaderFile #define _NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_0.cxx b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_0.cxx index f16382ff4..311306e41 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_0.cxx +++ b/src/NMTTools/NMTTools_IndexedDataMapNodeOfIndexedDataMapOfShapePaveBlock_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapOfIndexedMapOfInteger.hxx b/src/NMTTools/NMTTools_IndexedDataMapOfIndexedMapOfInteger.hxx index b9f696fe2..98cf95b4a 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapOfIndexedMapOfInteger.hxx +++ b/src/NMTTools/NMTTools_IndexedDataMapOfIndexedMapOfInteger.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_IndexedDataMapOfIndexedMapOfInteger_HeaderFile #define _NMTTools_IndexedDataMapOfIndexedMapOfInteger_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapOfIndexedMapOfInteger_0.cxx b/src/NMTTools/NMTTools_IndexedDataMapOfIndexedMapOfInteger_0.cxx index 38e7ef10b..4b7aaac90 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapOfIndexedMapOfInteger_0.cxx +++ b/src/NMTTools/NMTTools_IndexedDataMapOfIndexedMapOfInteger_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapOfShapeIndexedMapOfShape.hxx b/src/NMTTools/NMTTools_IndexedDataMapOfShapeIndexedMapOfShape.hxx index 2c55162c3..02fbc923c 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapOfShapeIndexedMapOfShape.hxx +++ b/src/NMTTools/NMTTools_IndexedDataMapOfShapeIndexedMapOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_IndexedDataMapOfShapeIndexedMapOfShape_HeaderFile #define _NMTTools_IndexedDataMapOfShapeIndexedMapOfShape_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapOfShapeIndexedMapOfShape_0.cxx b/src/NMTTools/NMTTools_IndexedDataMapOfShapeIndexedMapOfShape_0.cxx index c41bc1e2a..f349c91a7 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapOfShapeIndexedMapOfShape_0.cxx +++ b/src/NMTTools/NMTTools_IndexedDataMapOfShapeIndexedMapOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapOfShapePaveBlock.hxx b/src/NMTTools/NMTTools_IndexedDataMapOfShapePaveBlock.hxx index a13f75903..78ad92772 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapOfShapePaveBlock.hxx +++ b/src/NMTTools/NMTTools_IndexedDataMapOfShapePaveBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_IndexedDataMapOfShapePaveBlock_HeaderFile #define _NMTTools_IndexedDataMapOfShapePaveBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_IndexedDataMapOfShapePaveBlock_0.cxx b/src/NMTTools/NMTTools_IndexedDataMapOfShapePaveBlock_0.cxx index 8e25be569..7266c017e 100644 --- a/src/NMTTools/NMTTools_IndexedDataMapOfShapePaveBlock_0.cxx +++ b/src/NMTTools/NMTTools_IndexedDataMapOfShapePaveBlock_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.cdl b/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.cdl index cc8e02bfe..9be78d98b 100644 --- a/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.cdl +++ b/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: NMTTools_IteratorOfCoupleOfShape.cdl -- Created: Thu Dec 4 16:57:48 2003 -- Author: Peter KURNEV -- - - +-- class IteratorOfCoupleOfShape from NMTTools inherits IteratorOfCoupleOfShape from BOPTools diff --git a/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.cxx b/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.cxx index 181703608..8cf489a9b 100644 --- a/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.cxx +++ b/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_IteratorOfCoupleOfShape.cxx // Created: Thu Dec 4 17:00:03 2003 // Author: Peter KURNEV // - - +// #include #include #include diff --git a/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.hxx b/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.hxx index 81dabc054..67128fb0c 100644 --- a/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.hxx +++ b/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_IteratorOfCoupleOfShape_HeaderFile #define _NMTTools_IteratorOfCoupleOfShape_HeaderFile diff --git a/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.ixx b/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.ixx index 5a5cd42bd..35f563b13 100644 --- a/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.ixx +++ b/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.jxx b/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.jxx index e09e5e92e..b2c3333a3 100644 --- a/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.jxx +++ b/src/NMTTools/NMTTools_IteratorOfCoupleOfShape.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _Standard_NoSuchObject_HeaderFile #include #endif diff --git a/src/NMTTools/NMTTools_ListIteratorOfListOfCommonBlock.hxx b/src/NMTTools/NMTTools_ListIteratorOfListOfCommonBlock.hxx index 25a3784c0..e4d4eb1fd 100644 --- a/src/NMTTools/NMTTools_ListIteratorOfListOfCommonBlock.hxx +++ b/src/NMTTools/NMTTools_ListIteratorOfListOfCommonBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_ListIteratorOfListOfCommonBlock_HeaderFile #define _NMTTools_ListIteratorOfListOfCommonBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_ListIteratorOfListOfCommonBlock_0.cxx b/src/NMTTools/NMTTools_ListIteratorOfListOfCommonBlock_0.cxx index 82d54ddd8..8c92815c1 100644 --- a/src/NMTTools/NMTTools_ListIteratorOfListOfCommonBlock_0.cxx +++ b/src/NMTTools/NMTTools_ListIteratorOfListOfCommonBlock_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoMoreObject_HeaderFile diff --git a/src/NMTTools/NMTTools_ListIteratorOfListOfCoupleOfShape.hxx b/src/NMTTools/NMTTools_ListIteratorOfListOfCoupleOfShape.hxx index 7e6224c4f..dad1e219b 100644 --- a/src/NMTTools/NMTTools_ListIteratorOfListOfCoupleOfShape.hxx +++ b/src/NMTTools/NMTTools_ListIteratorOfListOfCoupleOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_ListIteratorOfListOfCoupleOfShape_HeaderFile #define _NMTTools_ListIteratorOfListOfCoupleOfShape_HeaderFile diff --git a/src/NMTTools/NMTTools_ListIteratorOfListOfCoupleOfShape_0.cxx b/src/NMTTools/NMTTools_ListIteratorOfListOfCoupleOfShape_0.cxx index 6e5da2628..246c8f0e1 100644 --- a/src/NMTTools/NMTTools_ListIteratorOfListOfCoupleOfShape_0.cxx +++ b/src/NMTTools/NMTTools_ListIteratorOfListOfCoupleOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoMoreObject_HeaderFile diff --git a/src/NMTTools/NMTTools_ListNodeOfListOfCommonBlock.hxx b/src/NMTTools/NMTTools_ListNodeOfListOfCommonBlock.hxx index 8dbc0e685..ce0b0608e 100644 --- a/src/NMTTools/NMTTools_ListNodeOfListOfCommonBlock.hxx +++ b/src/NMTTools/NMTTools_ListNodeOfListOfCommonBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_ListNodeOfListOfCommonBlock_HeaderFile #define _NMTTools_ListNodeOfListOfCommonBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_ListNodeOfListOfCommonBlock_0.cxx b/src/NMTTools/NMTTools_ListNodeOfListOfCommonBlock_0.cxx index ab8a57f3b..793bcf9ed 100644 --- a/src/NMTTools/NMTTools_ListNodeOfListOfCommonBlock_0.cxx +++ b/src/NMTTools/NMTTools_ListNodeOfListOfCommonBlock_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTTools/NMTTools_ListNodeOfListOfCoupleOfShape.hxx b/src/NMTTools/NMTTools_ListNodeOfListOfCoupleOfShape.hxx index 9aa25f86d..6b54795d2 100644 --- a/src/NMTTools/NMTTools_ListNodeOfListOfCoupleOfShape.hxx +++ b/src/NMTTools/NMTTools_ListNodeOfListOfCoupleOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_ListNodeOfListOfCoupleOfShape_HeaderFile #define _NMTTools_ListNodeOfListOfCoupleOfShape_HeaderFile diff --git a/src/NMTTools/NMTTools_ListNodeOfListOfCoupleOfShape_0.cxx b/src/NMTTools/NMTTools_ListNodeOfListOfCoupleOfShape_0.cxx index 430f82c5f..912f0a39c 100644 --- a/src/NMTTools/NMTTools_ListNodeOfListOfCoupleOfShape_0.cxx +++ b/src/NMTTools/NMTTools_ListNodeOfListOfCoupleOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTTools/NMTTools_ListOfCommonBlock.hxx b/src/NMTTools/NMTTools_ListOfCommonBlock.hxx index a3c33aaaa..7e664fd9a 100644 --- a/src/NMTTools/NMTTools_ListOfCommonBlock.hxx +++ b/src/NMTTools/NMTTools_ListOfCommonBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_ListOfCommonBlock_HeaderFile #define _NMTTools_ListOfCommonBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_ListOfCommonBlock_0.cxx b/src/NMTTools/NMTTools_ListOfCommonBlock_0.cxx index 68839bedd..160550ecb 100644 --- a/src/NMTTools/NMTTools_ListOfCommonBlock_0.cxx +++ b/src/NMTTools/NMTTools_ListOfCommonBlock_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/NMTTools/NMTTools_ListOfCoupleOfShape.hxx b/src/NMTTools/NMTTools_ListOfCoupleOfShape.hxx index 2ba0b324c..27a971107 100644 --- a/src/NMTTools/NMTTools_ListOfCoupleOfShape.hxx +++ b/src/NMTTools/NMTTools_ListOfCoupleOfShape.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_ListOfCoupleOfShape_HeaderFile #define _NMTTools_ListOfCoupleOfShape_HeaderFile diff --git a/src/NMTTools/NMTTools_ListOfCoupleOfShape_0.cxx b/src/NMTTools/NMTTools_ListOfCoupleOfShape_0.cxx index 3251491ef..3861f4069 100644 --- a/src/NMTTools/NMTTools_ListOfCoupleOfShape_0.cxx +++ b/src/NMTTools/NMTTools_ListOfCoupleOfShape_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/NMTTools/NMTTools_MapIteratorOfMapOfPaveBlock.hxx b/src/NMTTools/NMTTools_MapIteratorOfMapOfPaveBlock.hxx index d53253da9..c00274562 100644 --- a/src/NMTTools/NMTTools_MapIteratorOfMapOfPaveBlock.hxx +++ b/src/NMTTools/NMTTools_MapIteratorOfMapOfPaveBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_MapIteratorOfMapOfPaveBlock_HeaderFile #define _NMTTools_MapIteratorOfMapOfPaveBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_MapIteratorOfMapOfPaveBlock_0.cxx b/src/NMTTools/NMTTools_MapIteratorOfMapOfPaveBlock_0.cxx index c3dd9b330..d22f3ace7 100644 --- a/src/NMTTools/NMTTools_MapIteratorOfMapOfPaveBlock_0.cxx +++ b/src/NMTTools/NMTTools_MapIteratorOfMapOfPaveBlock_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_NoSuchObject_HeaderFile diff --git a/src/NMTTools/NMTTools_MapOfPaveBlock.hxx b/src/NMTTools/NMTTools_MapOfPaveBlock.hxx index f7db910f2..6dc17138f 100644 --- a/src/NMTTools/NMTTools_MapOfPaveBlock.hxx +++ b/src/NMTTools/NMTTools_MapOfPaveBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_MapOfPaveBlock_HeaderFile #define _NMTTools_MapOfPaveBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_MapOfPaveBlock_0.cxx b/src/NMTTools/NMTTools_MapOfPaveBlock_0.cxx index 5b8574f39..c2efd4b3b 100644 --- a/src/NMTTools/NMTTools_MapOfPaveBlock_0.cxx +++ b/src/NMTTools/NMTTools_MapOfPaveBlock_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_DomainError_HeaderFile diff --git a/src/NMTTools/NMTTools_PCurveMaker.cdl b/src/NMTTools/NMTTools_PCurveMaker.cdl index b4babb82f..a32211778 100644 --- a/src/NMTTools/NMTTools_PCurveMaker.cdl +++ b/src/NMTTools/NMTTools_PCurveMaker.cdl @@ -1,27 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: NMTTools_PCurveMaker.cdl -- Created: -- Author: Peter KURNEV -- - +-- class PCurveMaker from NMTTools ---Purpose: diff --git a/src/NMTTools/NMTTools_PCurveMaker.cxx b/src/NMTTools/NMTTools_PCurveMaker.cxx index e39b05bf6..91a8bc14c 100644 --- a/src/NMTTools/NMTTools_PCurveMaker.cxx +++ b/src/NMTTools/NMTTools_PCurveMaker.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_PCurveMaker.cxx // Created: // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTTools/NMTTools_PCurveMaker.hxx b/src/NMTTools/NMTTools_PCurveMaker.hxx index ca0b3f248..25e94667a 100644 --- a/src/NMTTools/NMTTools_PCurveMaker.hxx +++ b/src/NMTTools/NMTTools_PCurveMaker.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_PCurveMaker_HeaderFile #define _NMTTools_PCurveMaker_HeaderFile diff --git a/src/NMTTools/NMTTools_PCurveMaker.ixx b/src/NMTTools/NMTTools_PCurveMaker.ixx index 3a2ac54d6..2b0b74625 100644 --- a/src/NMTTools/NMTTools_PCurveMaker.ixx +++ b/src/NMTTools/NMTTools_PCurveMaker.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTTools/NMTTools_PCurveMaker.jxx b/src/NMTTools/NMTTools_PCurveMaker.jxx index 46c9c270f..edf46c82d 100644 --- a/src/NMTTools/NMTTools_PCurveMaker.jxx +++ b/src/NMTTools/NMTTools_PCurveMaker.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_PCurveMaker_HeaderFile #include #endif diff --git a/src/NMTTools/NMTTools_PDSFiller.hxx b/src/NMTTools/NMTTools_PDSFiller.hxx index cfc95a0fa..abffc2acd 100644 --- a/src/NMTTools/NMTTools_PDSFiller.hxx +++ b/src/NMTTools/NMTTools_PDSFiller.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_PDSFiller_HeaderFile #define _NMTTools_PDSFiller_HeaderFile diff --git a/src/NMTTools/NMTTools_PPaveFiller.hxx b/src/NMTTools/NMTTools_PPaveFiller.hxx index 116c108ef..0d373a0a4 100644 --- a/src/NMTTools/NMTTools_PPaveFiller.hxx +++ b/src/NMTTools/NMTTools_PPaveFiller.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_PPaveFiller_HeaderFile #define _NMTTools_PPaveFiller_HeaderFile diff --git a/src/NMTTools/NMTTools_PaveFiller.cdl b/src/NMTTools/NMTTools_PaveFiller.cdl index ca5202204..0a79bf1df 100644 --- a/src/NMTTools/NMTTools_PaveFiller.cdl +++ b/src/NMTTools/NMTTools_PaveFiller.cdl @@ -1,28 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- -- File: NMTTools_PaveFiller.cdl -- Created: Fri Dec 5 14:35:00 2003 -- Author: Peter KURNEV -- - - +-- class PaveFiller from NMTTools ---Purpose: diff --git a/src/NMTTools/NMTTools_PaveFiller.cxx b/src/NMTTools/NMTTools_PaveFiller.cxx index 236a077dc..cbac88266 100644 --- a/src/NMTTools/NMTTools_PaveFiller.cxx +++ b/src/NMTTools/NMTTools_PaveFiller.cxx @@ -1,21 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_PaveFiller.cxx // Created: Fri Dec 5 14:58:54 2003 diff --git a/src/NMTTools/NMTTools_PaveFiller.hxx b/src/NMTTools/NMTTools_PaveFiller.hxx index 35b23a61d..6269aa77d 100644 --- a/src/NMTTools/NMTTools_PaveFiller.hxx +++ b/src/NMTTools/NMTTools_PaveFiller.hxx @@ -1,24 +1,24 @@ -// File generated by CPPExt (Value) +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 1991 - 2000 by -// Matra Datavision SA. All rights reserved. -// -// Copyright (C) 2001 - 2004 by -// Open CASCADE SA. All rights reserved. -// -// This file is part of the Open CASCADE Technology software. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// This software may be distributed and/or modified under the terms and -// conditions of the Open CASCADE Public License as defined by Open CASCADE SA -// and appearing in the file LICENSE included in the packaging of this file. -// -// This software is distributed on an "AS IS" basis, without warranty of any -// kind, and Open CASCADE SA hereby disclaims all such warranties, -// including without limitation, any warranties of merchantability, fitness -// for a particular purpose or non-infringement. Please see the License for -// the specific terms and conditions governing rights and limitations under the -// License. - #ifndef _NMTTools_PaveFiller_HeaderFile #define _NMTTools_PaveFiller_HeaderFile diff --git a/src/NMTTools/NMTTools_PaveFiller.ixx b/src/NMTTools/NMTTools_PaveFiller.ixx index a07e7b69a..210065e01 100644 --- a/src/NMTTools/NMTTools_PaveFiller.ixx +++ b/src/NMTTools/NMTTools_PaveFiller.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTTools/NMTTools_PaveFiller.jxx b/src/NMTTools/NMTTools_PaveFiller.jxx index 1c7e98a59..ec28fecac 100644 --- a/src/NMTTools/NMTTools_PaveFiller.jxx +++ b/src/NMTTools/NMTTools_PaveFiller.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/NMTTools/NMTTools_PaveFiller_0.cxx b/src/NMTTools/NMTTools_PaveFiller_0.cxx index 6a355d3df..7a787ebac 100644 --- a/src/NMTTools/NMTTools_PaveFiller_0.cxx +++ b/src/NMTTools/NMTTools_PaveFiller_0.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_PaveFiller_0.cxx // Created: Mon Dec 8 11:45:51 2003 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTTools/NMTTools_PaveFiller_1.cxx b/src/NMTTools/NMTTools_PaveFiller_1.cxx index d4cca964a..8685855c0 100644 --- a/src/NMTTools/NMTTools_PaveFiller_1.cxx +++ b/src/NMTTools/NMTTools_PaveFiller_1.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_PaveFiller_1.cxx // Created: Mon Dec 8 11:47:55 2003 // Author: Peter KURNEV // - +// #include #include diff --git a/src/NMTTools/NMTTools_PaveFiller_2.cxx b/src/NMTTools/NMTTools_PaveFiller_2.cxx index 4c3c9ed33..e400245ca 100644 --- a/src/NMTTools/NMTTools_PaveFiller_2.cxx +++ b/src/NMTTools/NMTTools_PaveFiller_2.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_PaveFiller_2.cxx // Created: Mon Dec 8 12:02:56 2003 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTTools/NMTTools_PaveFiller_3.cxx b/src/NMTTools/NMTTools_PaveFiller_3.cxx index ca458c329..039cbbc1b 100644 --- a/src/NMTTools/NMTTools_PaveFiller_3.cxx +++ b/src/NMTTools/NMTTools_PaveFiller_3.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_PaveFiller_3.cxx // Created: Mon Dec 8 16:06:56 2003 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTTools/NMTTools_PaveFiller_4.cxx b/src/NMTTools/NMTTools_PaveFiller_4.cxx index 2c1d50e26..f16ced3ab 100644 --- a/src/NMTTools/NMTTools_PaveFiller_4.cxx +++ b/src/NMTTools/NMTTools_PaveFiller_4.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_PaveFiller_4.cxx // Created: Mon Dec 8 17:08:58 2003 // Author: Peter KURNEV // - - +// #include // #include diff --git a/src/NMTTools/NMTTools_PaveFiller_5.cxx b/src/NMTTools/NMTTools_PaveFiller_5.cxx index 01ec5e0bb..abcace893 100644 --- a/src/NMTTools/NMTTools_PaveFiller_5.cxx +++ b/src/NMTTools/NMTTools_PaveFiller_5.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_PaveFiller_5.cxx // Created: Mon Dec 15 11:28:33 2003 // Author: Peter KURNEV // - - +// #include #include @@ -98,16 +99,18 @@ static //======================================================================= void NMTTools_PaveFiller::PerformEF() { - myIsDone=Standard_False; - - Standard_Integer n1, n2, anIndexIn=0, nE, nF, aNbEFs, aBlockLength; Standard_Boolean bJustAdd; - Standard_Real aTolE, aTolF, aDeflection=0.01; - Standard_Integer aDiscretize=35; + Standard_Integer n1, n2, anIndexIn, nE, nF, aNbEFs, aBlockLength; + Standard_Integer aDiscretize; + Standard_Real aTolE, aTolF, aDeflection; BooleanOperations_IndexedDataMapOfShapeInteger aMapVI; BOPTools_IDMapOfPaveBlockIMapOfInteger aMapCB; BOPTools_IMapOfPaveBlock aIMPBx; // + myIsDone=Standard_False; + aDeflection=0.01; + aDiscretize=35; + // BOPTools_CArray1OfESInterference& aEFs=myIP->ESInterferences(); // myDSIt->Initialize(TopAbs_EDGE, TopAbs_FACE); @@ -121,11 +124,12 @@ static // for (; myDSIt->More(); myDSIt->Next()) { myDSIt->Current(n1, n2, bJustAdd); - anIndexIn = 0; // - //if (myIntrPool->IsComputed(n1, n2)) { - // continue; - //} + if(bJustAdd) { + continue; + } + // + anIndexIn = 0; // nE=n1; nF=n2; @@ -133,44 +137,29 @@ static nE=n2; nF=n1; } - //SortTypes(nE, nF); // // all Common Blocks for face nF - //XXX NMTTools_ListOfCommonBlock aLCBF; CommonBlocksFace(nF, aLCBF); NMTTools_CommonBlockAPI aCBAPIF(aLCBF); - //XXX - if(bJustAdd) { - //myIntrPool->AddInterference (nE, nF, BooleanOperations_EdgeSurface, anIndexIn); - continue; - } + // // Edge - const TopoDS_Edge aE=TopoDS::Edge(myDS->GetShape(nE));//mpv + const TopoDS_Edge aE=TopoDS::Edge(myDS->Shape(nE)); if (BRep_Tool::Degenerated(aE)){ continue; } + // // Face - const TopoDS_Face aF=TopoDS::Face(myDS->GetShape(nF));//mpv + const TopoDS_Face aF=TopoDS::Face(myDS->Shape(nF)); // - // Modified - // to avoid intersection between face and edge from that face - // Thu Sep 14 14:35:18 2006 - // Contribution of Samtech www.samcef.com BEGIN TopTools_IndexedMapOfShape aME; - // TopExp::MapShapes(aF, TopAbs_EDGE, aME); if (aME.Contains(aE)) { continue; } - // Contribution of Samtech www.samcef.com END // aTolF=BRep_Tool::Tolerance(aF); - - // Modified Thu Sep 14 14:35:18 2006 - // Contribution of Samtech www.samcef.com BEGIN aTolE=BRep_Tool::Tolerance(aE); - // Contribution of Samtech www.samcef.com END const Bnd_Box& aBBF=myDS->GetBoundingBox(nF); // @@ -180,14 +169,13 @@ static BOPTools_ListIteratorOfListOfPaveBlock anIt(aLPB); for (; anIt.More(); anIt.Next()) { BOPTools_PaveBlock& aPB=anIt.Value(); - //XXX if (aCBAPIF.IsCommonBlock(aPB)) { continue; } - //XXX + // const IntTools_ShrunkRange& aShrunkRange=aPB.ShrunkRange(); const IntTools_Range& aSR =aShrunkRange.ShrunkRange(); - const Bnd_Box& aBBE=aShrunkRange.BndBox(); + const Bnd_Box& aBBE=aShrunkRange.BndBox(); // if (aBBF.IsOut (aBBE)) { continue; @@ -213,17 +201,21 @@ static aEF.Perform(); // if (aEF.IsDone()) { - const IntTools_SequenceOfCommonPrts& aCPrts=aEF.CommonParts(); + Standard_Boolean bCoinsideFlag; Standard_Integer i, aNbCPrts; + TopAbs_ShapeEnum aType; + // + const IntTools_SequenceOfCommonPrts& aCPrts=aEF.CommonParts(); + // aNbCPrts=aCPrts.Length(); - for (i=1; i<=aNbCPrts; i++) { - // + for (i=1; i<=aNbCPrts; ++i) { anIndexIn=0; // const IntTools_CommonPrt& aCPart=aCPrts(i); - TopAbs_ShapeEnum aType=aCPart.Type(); + aType=aCPart.Type(); + // switch (aType) { - + // case TopAbs_VERTEX: { Standard_Boolean bIsOnPave1, bIsOnPave2; Standard_Integer nVF; @@ -238,7 +230,6 @@ static // //decide to add pave or not aTolToDecide=5.e-8; - // bIsOnPave1=IsOnPave(anewSR.First(), aR, aTolToDecide); bIsOnPave2=IsOnPave(anewSR.Last() , aR, aTolToDecide); // @@ -253,24 +244,27 @@ static // aMapVI.Add(aNewVertex, anIndexIn); aIMPBx.Add(aPB); - // qqf - { - myIP->Add(nE, nF, Standard_True, NMTDS_TI_EF); - } - // qqt + // + myIP->Add(nE, nF, Standard_True, NMTDS_TI_EF); // }// if (!nVF) }// if (!bIsOnPave1 && !bIsOnPave2) - //myIntrPool->AddInterference (nE, nF, BooleanOperations_EdgeSurface, anIndexIn); + // + //modified by NIZNHY-PKV Fri Apr 18 10:55:38 2008f + else { + const BOPTools_Pave& aPave=(bIsOnPave1)? aPB.Pave1() : aPB.Pave2(); + nVF=aPave.Index(); + const TopoDS_Vertex& aVF=TopoDS::Vertex(myDS->Shape(nVF)); + BOPTools_Tools::UpdateVertex (aVF, aNewVertex); + } + //modified by NIZNHY-PKV Fri Apr 18 10:55:40 2008t + // }// case TopAbs_VERTEX: break; // case TopAbs_EDGE: { - Standard_Boolean aCoinsideFlag; - // - aCoinsideFlag=BOPTools_Tools::IsBlockInOnFace(aPB, aF, myContext); - if (!aCoinsideFlag) { - //myIntrPool->AddInterference (nE, nF, BooleanOperations_EdgeSurface, anIndexIn); + bCoinsideFlag=BOPTools_Tools::IsBlockInOnFace(aPB, aF, myContext); + if (!bCoinsideFlag) { break; } // @@ -284,12 +278,9 @@ static aMapF.Add(nF); aMapCB.Add(aPB, aMapF); } + // aIMPBx.Add(aPB); - // qqf - { - myIP->Add(nE, nF, Standard_True, NMTDS_TI_EF); - } - // qqt + myIP->Add(nE, nF, Standard_True, NMTDS_TI_EF); }// case TopAbs_EDGE: break; @@ -343,12 +334,12 @@ static // function:EFCommonBlocks // purpose: //======================================================================= - void NMTTools_PaveFiller::EFCommonBlocks(const BOPTools_IDMapOfPaveBlockIMapOfInteger& aMapCB) + void NMTTools_PaveFiller::EFCommonBlocks + (const BOPTools_IDMapOfPaveBlockIMapOfInteger& aMapCB) { Standard_Integer i, aNbPB, nE, j, aNbF, nF; // aNbPB=aMapCB.Extent(); - // for (i=1; i<=aNbPB; ++i) { const BOPTools_PaveBlock& aPB=aMapCB.FindKey(i); const TColStd_IndexedMapOfInteger& aMapF=aMapCB.FindFromIndex(i); @@ -382,7 +373,8 @@ static // function:EFNewVertices // purpose: //======================================================================= - void NMTTools_PaveFiller::EFNewVertices (const BooleanOperations_IndexedDataMapOfShapeInteger& aMapVI) + void NMTTools_PaveFiller::EFNewVertices + (const BooleanOperations_IndexedDataMapOfShapeInteger& aMapVI) { Standard_Integer i, j, aNb, aNewShape, aFlag, iX, aNbVV, aNbSimple; Standard_Integer aWhat, aWith, nE, nF, nV, aNbIEF, aNbEdges, iTmp; @@ -395,14 +387,13 @@ static BooleanOperations_AncestorsSeqAndSuccessorsSeq anASSeq; TopTools_IndexedMapOfShape aMNVComplex, aMNVSimple; // - BOPTools_CArray1OfESInterference& aEFs=myIP->ESInterferences(); - // aNb=aMapVI.Extent(); - // if (!aNb) { // no new vertices, no new problems return; } // + BOPTools_CArray1OfESInterference& aEFs=myIP->ESInterferences(); + // // 0. if (aNb==1) { aNewVertex=TopoDS::Vertex(aMapVI.FindKey(1)); @@ -425,12 +416,9 @@ static // tPF.Init(); tPF.PerformVV(); - //tPF.PerformNewVertices(); qq // NMTDS_ShapesDataStructure& tDS=*(tPF.DS()); - //const BOPTools_InterferencePool& tInterfPool=*(tPF.InterfPool()); NMTDS_InterfPool& tInterfPool=*(tPF.IP()); - //const BOPTools_CArray1OfVVInterference& aVVInterfs=tInterfPool.VVInterfs(); BOPTools_CArray1OfVVInterference& aVVInterfs=tInterfPool.VVInterferences(); // // 3. Separate Comlex and Simple new vertices @@ -486,7 +474,7 @@ static iX=aMapVI.FindFromKey(aV1); const BOPTools_ESInterference& aEF1=aEFs(iX); aEF1.Indices(nE, nF); - //SortTypes(nE, nF); + // if (myDS->GetShapeType(nF)==TopAbs_EDGE) { iTmp=nE; nE=nF; @@ -499,7 +487,7 @@ static iX=aMapVI.FindFromKey(aV2); const BOPTools_ESInterference& aEF2=aEFs(iX); aEF2.Indices(nE, nF); - //SortTypes(nE, nF); + // if (myDS->GetShapeType(nF)==TopAbs_EDGE) { iTmp=nE; nE=nF; @@ -507,7 +495,8 @@ static } aME.Add(nE); aMIEF.Add(iX); - } + }// for (i=1; i<=aNb; ++i) { + // // 4. Process new vertices aNb=aMNVE.Extent(); for (i=1; i<=aNb; ++i) { // xx @@ -555,8 +544,9 @@ static // function:EFNewVertices // purpose: //======================================================================= - void NMTTools_PaveFiller::EFNewVertices (const TopoDS_Vertex& aNewVertex, - const BooleanOperations_IndexedDataMapOfShapeInteger& aMapVI) + void NMTTools_PaveFiller::EFNewVertices + (const TopoDS_Vertex& aNewVertex, + const BooleanOperations_IndexedDataMapOfShapeInteger& aMapVI) { Standard_Integer i, aNewShape, nE, nF; Standard_Real aT; @@ -569,13 +559,13 @@ static myDS->InsertShapeAndAncestorsSuccessors(aNewVertex, anASSeq); aNewShape=myDS->NumberOfInsertedShapes(); myDS->SetState (aNewShape, BooleanOperations_ON); + // // Insert New Vertex in EFInterference i=aMapVI.FindFromKey(aNewVertex); BOPTools_ESInterference& aEFInterf= aEFs(i); aEFInterf.SetNewShape(aNewShape); // Extract interference info aEFInterf.Indices(nE, nF); - //SortTypes(nE, nF); if (myDS->GetShapeType(nF)==TopAbs_EDGE) { nE=nF; } @@ -596,15 +586,17 @@ static // function: CheckFacePaves // purpose: //======================================================================= - Standard_Integer NMTTools_PaveFiller::CheckFacePaves (const TopoDS_Vertex& aNewVertex, - const Standard_Integer nF) + Standard_Integer NMTTools_PaveFiller::CheckFacePaves + (const TopoDS_Vertex& aNewVertex, + const Standard_Integer nF) { - Standard_Integer nEF, nVF, iFlag, i, aNbV; + Standard_Integer nEF, nVF, iFlag, i, aNbV, iRet; BOPTools_ListIteratorOfListOfPave anIt; TColStd_IndexedMapOfInteger aMVF; - // - BooleanOperations_OnceExplorer aExp(*myDS); // + iRet=0; + // + BooleanOperations_OnceExplorer aExp(*myDS); aExp.Init(nF, TopAbs_EDGE); for (; aExp.More(); aExp.Next()) { nEF=aExp.Current(); @@ -621,15 +613,14 @@ static aNbV=aMVF.Extent(); for (i=1; i<=aNbV; ++i) { nVF=aMVF(i); - const TopoDS_Vertex aVF=TopoDS::Vertex(myDS->Shape(nVF));//mpv + const TopoDS_Vertex aVF=TopoDS::Vertex(myDS->Shape(nVF)); iFlag=IntTools_Tools::ComputeVV(aNewVertex, aVF); if (!iFlag) { return nVF; } } - return 0; + return iRet; } - // //======================================================================= // function: VertexParameter @@ -640,7 +631,6 @@ void VertexParameter(const IntTools_CommonPrt& aCPart, { const IntTools_Range& aR=aCPart.Range1(); aT=0.5*(aR.First()+aR.Last()); - // if((aCPart.VertexParameter1() >= aR.First()) && (aCPart.VertexParameter1() <= aR.Last())) { aT = aCPart.VertexParameter1(); @@ -663,6 +653,7 @@ Standard_Boolean IsOnPave(const Standard_Real& aTR, if (bIsOnPave) { return bIsOnPave; } + // dT1=Abs(aTR-aT1); dT2=Abs(aTR-aT2); bIsOnPave=(dT1<=aTolerance || dT2<=aTolerance); diff --git a/src/NMTTools/NMTTools_PaveFiller_6.cxx b/src/NMTTools/NMTTools_PaveFiller_6.cxx index 90b631205..e55e4dff4 100644 --- a/src/NMTTools/NMTTools_PaveFiller_6.cxx +++ b/src/NMTTools/NMTTools_PaveFiller_6.cxx @@ -1,30 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // IMPROVED by NIZNHY-PKV Thu Oct 12 16:03:33 2006 -// -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// // File: NMTTools_PaveFiller_6.cxx // Created: Fri Dec 19 10:27:31 2003 // Author: Peter KURNEV // - +// #include #include @@ -77,11 +77,6 @@ #include #include -//#include -//#include -//#include -//#include -//#include #include #include @@ -105,19 +100,13 @@ #include #include -// Modified Thu Sep 14 14:35:18 2006 -// Contribution of Samtech www.samcef.com BEGIN static void SharedEdges1(const TopoDS_Face& aF1, const TopoDS_Face& aF2, TopTools_ListOfShape& aLS); -// Contribution of Samtech www.samcef.com END - -//modified by NIZNHY-PKV Mon Dec 4 12:56:04 2006f static Standard_Boolean IsMicroEdge(const TopoDS_Edge& aE, IntTools_Context& aCtx); -//modified by NIZNHY-PKV Mon Dec 4 12:56:08 2006t //======================================================================= // function: PerformFF @@ -152,11 +141,6 @@ static for (; myDSIt->More(); myDSIt->Next()) { myDSIt->Current(n1, n2, bJustAdd); // - //bIsComputed=myIntrPool->IsComputed(n1, n2); - //if (bIsComputed) { - // continue; - //} - // nF1 = n2; nF2 = n1; if(n1 < n2) { @@ -167,21 +151,6 @@ static aPnts.Clear(); aCvs.Clear(); // - /* - bIsFound=IsPairFound(nF1, nF2, myIntrPool, aMapWhat, aMapWith); - if (bJustAdd) { - if (!bIsFound) { - myIntrPool->AddInterference (nF1, nF2, aTypeFF, anIndexIn); - } - else{ - BOPTools_SSInterference anInterf (nF1, nF2, 1.e-07, 1.e-07, aCvs, aPnts); - anIndexIn=aFFs.Append(anInterf); - myIntrPool->AddInterference (nF1, nF2, aTypeFF, anIndexIn); - } - continue; - } - */ - // const TopoDS_Face aF1=TopoDS::Face(myDS->Shape(nF1));//mpv const TopoDS_Face aF2=TopoDS::Face(myDS->Shape(nF2));//mpv // @@ -233,14 +202,12 @@ static if (!aNbCurves && !aNbPoints) { BOPTools_SSInterference anInterf (nF1, nF2, 1.e-07, 1.e-07, aCvs, aPnts); anIndexIn=aFFs.Append(anInterf); - //myIntrPool->AddInterference (nF1, nF2, aTypeFF, anIndexIn); continue; } // { BOPTools_SSInterference anInterf (nF1, nF2, aTolR3D, aTolR2D, aCvsX, aPntsX); anIndexIn=aFFs.Append(anInterf); - //myIntrPool->AddInterference (nF1, nF2, aTypeFF, anIndexIn); } // }// for (; myDSIt.More(); myDSIt.Next()) @@ -255,11 +222,7 @@ static { myIsDone=Standard_False; // - // Modified Thu Sep 14 14:35:18 2006 - // Contribution of Samtech www.samcef.com BEGIN Standard_Boolean bIsExistingPaveBlock, bIsValidIn2D, bIsCoincided; - // Contribution of Samtech www.samcef.com END - // Standard_Boolean bIsMicroEdge, bHasES; Standard_Integer i, aNbFFs, nF1, nF2, aBid=0; Standard_Integer nV1, nV2, j, aNbCurves; @@ -826,8 +789,6 @@ static BOPTools_Tools2D::BuildPCurveForEdgeOnFace(aE, aF2FWD); } } - // - //modified by NIZNHY-PKV Fri Mar 23 10:35:02 2007f // Check common blocks between edges and faces // Build P-Curves if they were not built in previos block. // @@ -878,7 +839,6 @@ static } // for (; aItCB.More(); aItCB.Next()) { }//if (aS.ShapeType()==TopAbs_EDGE) { } - //modified by NIZNHY-PKV Fri Mar 23 10:35:13 2007t } //======================================================================= // function: IsExistingPaveBlock @@ -921,6 +881,7 @@ static { Standard_Boolean bFlag; Standard_Integer aNbSE, iC; + Standard_Real aTolE, aTol; TopTools_ListIteratorOfListOfShape anIt; // bFlag=Standard_False; @@ -933,7 +894,15 @@ static anIt.Initialize(aLSE); for (; anIt.More(); anIt.Next()) { const TopoDS_Edge& aE=TopoDS::Edge(anIt.Value()); - iC=CheckIntermediatePoint(aPBNew, aE, aTolR3D); + //modified by NIZNHY-PKV Mon Nov 17 09:54:43 2008f //0019974 + aTolE=BRep_Tool::Tolerance(aE); + aTol=aTolR3D; + if (aTolE>aTol) { + aTol=aTolE; + } + iC=CheckIntermediatePoint(aPBNew, aE, aTol); + //iC=CheckIntermediatePoint(aPBNew, aE, aTolR3D); + //modified by NIZNHY-PKV Mon Nov 17 09:54:45 2008t if (!iC) { return !bFlag; } @@ -1189,8 +1158,6 @@ static ///////////// -// Modified Thu Sep 14 14:35:18 2006 -// Contribution of Samtech www.samcef.com BEGIN //======================================================================= //function : SharedEdges1 //purpose : @@ -1334,10 +1301,7 @@ void SharedEdges1(const TopoDS_Face& aF1, bRet=(Standard_Boolean)(iCount>iCountExt); return bRet; } -// -// Contribution of Samtech www.samcef.com END -//modified by NIZNHY-PKV Mon Dec 4 12:30:38 2006f use_01 //======================================================================= //function : IsMicroEdge //purpose : @@ -1376,139 +1340,3 @@ Standard_Boolean IsMicroEdge(const TopoDS_Edge& aE, // return bRet; } -//modified by NIZNHY-PKV Mon Dec 4 12:55:50 2006t -/* -static - Standard_Boolean IsPairFound(const Standard_Integer nF1, - const Standard_Integer nF2, - BOPTools_InterferencePool* myIntrPool, - BOPTColStd_IndexedDataMapOfIntegerIndexedMapOfInteger& aMapWhat, - BOPTColStd_IndexedDataMapOfIntegerIndexedMapOfInteger& aMapWith); - -static - void FMapWhat(const Standard_Integer nF, - BOPTools_InterferencePool* myIntrPool, - TColStd_IndexedMapOfInteger& aMapWhat); -static - void FMapWith(const Standard_Integer nF, - BOPTools_InterferencePool* myIntrPool, - TColStd_IndexedMapOfInteger& aMapWith); -static - Standard_Boolean IsFound(const TColStd_IndexedMapOfInteger& aMapWhat, - const TColStd_IndexedMapOfInteger& aMapWith); - -//======================================================================= -// function: IsPairFound -// purpose: -//======================================================================= -Standard_Boolean IsPairFound(const Standard_Integer nF1, - const Standard_Integer nF2, - BOPTools_InterferencePool* myIntrPool, - BOPTColStd_IndexedDataMapOfIntegerIndexedMapOfInteger& aMapWhat, - BOPTColStd_IndexedDataMapOfIntegerIndexedMapOfInteger& aMapWith) -{ - Standard_Boolean bIsFound; - // - if (!aMapWhat.Contains(nF1)) { - TColStd_IndexedMapOfInteger aMWhat; - FMapWhat(nF1, myIntrPool, aMWhat); - aMapWhat.Add(nF1, aMWhat); - } - // - if (!aMapWith.Contains(nF2)) { - TColStd_IndexedMapOfInteger aMWith; - FMapWith(nF2, myIntrPool, aMWith); - aMapWith.Add(nF2, aMWith); - } - // - const TColStd_IndexedMapOfInteger& aMWht=aMapWhat.FindFromKey(nF1); - const TColStd_IndexedMapOfInteger& aMWit=aMapWith.FindFromKey(nF2); - // - bIsFound=IsFound(aMWht, aMWit); - // - return bIsFound; -} -//======================================================================= -// function: FMapWhat -// purpose: -//======================================================================= -void FMapWhat(const Standard_Integer nF, - BOPTools_InterferencePool* myIntrPool, - TColStd_IndexedMapOfInteger& aMapWhat) - -{ - Standard_Integer nE, nV; - // - BooleanOperations_ShapesDataStructure* myDS=myIntrPool->DS(); - BooleanOperations_OnceExplorer aExp(*myDS); - // - // What - aMapWhat.Add(nF); - aExp.Init(nF, TopAbs_VERTEX); - for (; aExp.More(); aExp.Next()) { - nV=aExp.Current(); - aMapWhat.Add(nV); - } - // - aExp.Init(nF, TopAbs_EDGE); - for (; aExp.More(); aExp.Next()) { - nE=aExp.Current(); - aMapWhat.Add(nE); - } -} -//======================================================================= -// function: FMapWith -// purpose: -//======================================================================= -void FMapWith(const Standard_Integer nF, - BOPTools_InterferencePool* myIntrPool, - TColStd_IndexedMapOfInteger& aMapWith) -{ - TColStd_IndexedMapOfInteger aMapWhat; - - FMapWhat(nF, myIntrPool, aMapWhat); - // - // With - Standard_Integer i, aNb, anIndex, aWhat, aWith; - BOPTools_ListIteratorOfListOfInterference anIt; - - const BOPTools_CArray1OfInterferenceLine& anArrIL= myIntrPool->InterferenceTable(); - - aNb=aMapWhat.Extent(); - for (i=1; i<=aNb; i++) { - aWhat=aMapWhat(i); - - const BOPTools_InterferenceLine& aWithLine=anArrIL(aWhat); - - const BOPTools_ListOfInterference& aLI=aWithLine.List(); - anIt.Initialize(aLI); - for (; anIt.More(); anIt.Next()) { - const BOPTools_Interference& anIntf=anIt.Value(); - anIndex=anIntf.Index(); - if (anIndex) { - aWith=anIntf.With(); - aMapWith.Add(aWith); - } - } - } -} -//======================================================================= -// function: IsFound -// purpose: -//======================================================================= -Standard_Boolean IsFound(const TColStd_IndexedMapOfInteger& aMapWhat, - const TColStd_IndexedMapOfInteger& aMapWith) -{ - Standard_Boolean bFlag=Standard_False; - Standard_Integer i, aNb, aWhat; - - aNb=aMapWhat.Extent(); - for (i=1; i<=aNb; i++) { - aWhat=aMapWhat(i); - if (aMapWith.Contains(aWhat)) { - return !bFlag; - } - } - return bFlag; -} -*/ diff --git a/src/NMTTools/NMTTools_PaveFiller_7.cxx b/src/NMTTools/NMTTools_PaveFiller_7.cxx index ef23a7e29..86f232ad3 100644 --- a/src/NMTTools/NMTTools_PaveFiller_7.cxx +++ b/src/NMTTools/NMTTools_PaveFiller_7.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_PaveFiller_7.cxx // Created: Thu Dec 18 15:14:55 2003 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTTools/NMTTools_PaveFiller_8.cxx b/src/NMTTools/NMTTools_PaveFiller_8.cxx index 6d7a77c1b..734d415e5 100644 --- a/src/NMTTools/NMTTools_PaveFiller_8.cxx +++ b/src/NMTTools/NMTTools_PaveFiller_8.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_PaveFiller_8.cxx // Created: Fri Dec 19 11:15:53 2003 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTTools/NMTTools_PaveFiller_9.cxx b/src/NMTTools/NMTTools_PaveFiller_9.cxx index 090e6f2da..e0b2a3fc7 100644 --- a/src/NMTTools/NMTTools_PaveFiller_9.cxx +++ b/src/NMTTools/NMTTools_PaveFiller_9.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_PaveFiller_9.cxx // Created: Fri Dec 19 11:15:53 2003 // Author: Peter KURNEV // - +// #include #include diff --git a/src/NMTTools/NMTTools_StdMapNodeOfMapOfPaveBlock.hxx b/src/NMTTools/NMTTools_StdMapNodeOfMapOfPaveBlock.hxx index 12bf8f2f5..af49cafff 100644 --- a/src/NMTTools/NMTTools_StdMapNodeOfMapOfPaveBlock.hxx +++ b/src/NMTTools/NMTTools_StdMapNodeOfMapOfPaveBlock.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_StdMapNodeOfMapOfPaveBlock_HeaderFile #define _NMTTools_StdMapNodeOfMapOfPaveBlock_HeaderFile diff --git a/src/NMTTools/NMTTools_StdMapNodeOfMapOfPaveBlock_0.cxx b/src/NMTTools/NMTTools_StdMapNodeOfMapOfPaveBlock_0.cxx index 0b6dba8f4..6d479e813 100644 --- a/src/NMTTools/NMTTools_StdMapNodeOfMapOfPaveBlock_0.cxx +++ b/src/NMTTools/NMTTools_StdMapNodeOfMapOfPaveBlock_0.cxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/NMTTools/NMTTools_Tools.cdl b/src/NMTTools/NMTTools_Tools.cdl index cab93959a..9341d837b 100644 --- a/src/NMTTools/NMTTools_Tools.cdl +++ b/src/NMTTools/NMTTools_Tools.cdl @@ -1,29 +1,29 @@ --- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +-- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. +-- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com --- - -- File: NMTTools_Tools.cdl -- Created: Mon Dec 8 10:32:34 2003 -- Author: Peter KURNEV -- - - +-- class Tools from NMTTools ---Purpose: diff --git a/src/NMTTools/NMTTools_Tools.cxx b/src/NMTTools/NMTTools_Tools.cxx index 3f986765e..da3da38a5 100644 --- a/src/NMTTools/NMTTools_Tools.cxx +++ b/src/NMTTools/NMTTools_Tools.cxx @@ -1,28 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: NMTTools_Tools.cxx // Created: Mon Dec 8 10:35:15 2003 // Author: Peter KURNEV // - - +// #include #include diff --git a/src/NMTTools/NMTTools_Tools.hxx b/src/NMTTools/NMTTools_Tools.hxx index 96913473b..89b91404e 100644 --- a/src/NMTTools/NMTTools_Tools.hxx +++ b/src/NMTTools/NMTTools_Tools.hxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _NMTTools_Tools_HeaderFile #define _NMTTools_Tools_HeaderFile diff --git a/src/NMTTools/NMTTools_Tools.ixx b/src/NMTTools/NMTTools_Tools.ixx index 78e114729..5b825b3fc 100644 --- a/src/NMTTools/NMTTools_Tools.ixx +++ b/src/NMTTools/NMTTools_Tools.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include diff --git a/src/NMTTools/NMTTools_Tools.jxx b/src/NMTTools/NMTTools_Tools.jxx index 8f3817efa..7b6f648a2 100644 --- a/src/NMTTools/NMTTools_Tools.jxx +++ b/src/NMTTools/NMTTools_Tools.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopTools_ListOfShape_HeaderFile #include #endif diff --git a/src/OBJECT/GEOM_AISShape.cxx b/src/OBJECT/GEOM_AISShape.cxx index 4a3f6e0e9..a40b492e4 100644 --- a/src/OBJECT/GEOM_AISShape.cxx +++ b/src/OBJECT/GEOM_AISShape.cxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_AISShape.cxx // Author : Nicolas REJNERI // Module : GEOM // $Header$ - +// /*! \class GEOM_AISShape GEOM_AISShape.hxx \brief .... @@ -34,15 +33,10 @@ #include "GEOM_AISShape.ixx" #include "SALOME_InteractiveObject.hxx" -#include "utilities.h" - // Open CASCADE Includes #include #include #include -#include -#include -#include #include #include #include @@ -51,7 +45,6 @@ #include #include #include -#include #include #include #include diff --git a/src/OBJECT/GEOM_AISShape.hxx b/src/OBJECT/GEOM_AISShape.hxx index a90919622..643d51019 100644 --- a/src/OBJECT/GEOM_AISShape.hxx +++ b/src/OBJECT/GEOM_AISShape.hxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_AISShape.hxx // Module : GEOM - +// #ifndef _GEOM_AISShape_HeaderFile #define _GEOM_AISShape_HeaderFile diff --git a/src/OBJECT/GEOM_AISShape.ixx b/src/OBJECT/GEOM_AISShape.ixx index d50ba8db5..b72aa5a84 100644 --- a/src/OBJECT/GEOM_AISShape.ixx +++ b/src/OBJECT/GEOM_AISShape.ixx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_AISShape.ixx // Module : GEOM - +// #include "GEOM_AISShape.jxx" #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/OBJECT/GEOM_AISShape.jxx b/src/OBJECT/GEOM_AISShape.jxx index 9575226d7..b02bfe1e3 100644 --- a/src/OBJECT/GEOM_AISShape.jxx +++ b/src/OBJECT/GEOM_AISShape.jxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_AISShape.jxx // Module : GEOM - +// #ifndef _GEOM_InteractiveObject_HeaderFile #include "GEOM_InteractiveObject.hxx" #endif diff --git a/src/OBJECT/GEOM_AISTrihedron.cxx b/src/OBJECT/GEOM_AISTrihedron.cxx index acf93656d..661a1a84a 100755 --- a/src/OBJECT/GEOM_AISTrihedron.cxx +++ b/src/OBJECT/GEOM_AISTrihedron.cxx @@ -1,6 +1,6 @@ -// GEOM_AISTrihedron : Filter for VTK viewer +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,14 +17,13 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM_AISTrihedron : Filter for VTK viewer // File : GEOM_AISTrihedron.cxx // Author : Sergey LITONIN // Module : SALOME - +// #include "GEOM_AISTrihedron.hxx" #include diff --git a/src/OBJECT/GEOM_AISTrihedron.hxx b/src/OBJECT/GEOM_AISTrihedron.hxx index 60071c842..b70bea8b4 100755 --- a/src/OBJECT/GEOM_AISTrihedron.hxx +++ b/src/OBJECT/GEOM_AISTrihedron.hxx @@ -1,6 +1,6 @@ -// GEOM_AISTrihedron : Filter for VTK viewer +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,14 +17,13 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM_AISTrihedron : Filter for VTK viewer // File : GEOM_AISTrihedron.hxx // Author : Sergey LITONIN // Module : SALOME - +// #ifndef GEOM_AISTrihedron_HeaderFile #define GEOM_AISTrihedron_HeaderFile diff --git a/src/OBJECT/GEOM_AISVector.cxx b/src/OBJECT/GEOM_AISVector.cxx index 66e968da8..44262f149 100644 --- a/src/OBJECT/GEOM_AISVector.cxx +++ b/src/OBJECT/GEOM_AISVector.cxx @@ -1,31 +1,29 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_AISVector.cxx // Author : Julia DOROVSKIKH // $Header$ - - +// #include // OCCT Includes diff --git a/src/OBJECT/GEOM_AISVector.hxx b/src/OBJECT/GEOM_AISVector.hxx index 993e17c33..2ffbf3a4f 100644 --- a/src/OBJECT/GEOM_AISVector.hxx +++ b/src/OBJECT/GEOM_AISVector.hxx @@ -1,30 +1,29 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_AISVector.hxx // Author : Julia DOROVSKIKH // Module : GEOM - +// #ifndef GEOM_AISVector_HeaderFile #define GEOM_AISVector_HeaderFile diff --git a/src/OBJECT/GEOM_Actor.cxx b/src/OBJECT/GEOM_Actor.cxx index 6771efaa9..e9e047146 100644 --- a/src/OBJECT/GEOM_Actor.cxx +++ b/src/OBJECT/GEOM_Actor.cxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_Actor.cxx // Author : Christophe ATTANASIO // Module : GEOM // $Header$ - +// /*! \class GEOM_Actor GEOM_Actor.h \brief This class allows to display an OpenCASCADE CAD model in a VTK viewer. @@ -67,6 +66,8 @@ #include #include +#include "utilities.h" + //vtkStandardNewMacro(GEOM_Actor); #ifndef MYDEBUG @@ -105,7 +106,7 @@ GEOM_Actor::GEOM_Actor(): { #ifdef MYDEBUG - cout <SetInput(myAppendFilter->GetOutput()); @@ -180,7 +181,7 @@ GEOM_Actor::GEOM_Actor(): GEOM_Actor::~GEOM_Actor() { #ifdef MYDEBUG - cout <Delete(); myPreHighlightProp->Delete(); @@ -199,7 +200,7 @@ New() void Write(vtkPolyData* theDataSet, const char* theFileName){ vtkPolyDataWriter* aWriter = vtkPolyDataWriter::New(); - cout<<"Write - "<GetNumberOfPoints()<<"; "<GetNumberOfCells()<GetNumberOfPoints()<<"; "<GetNumberOfCells()); aWriter->SetInput(theDataSet); aWriter->SetFileName(theFileName); //aWriter->Write(); @@ -275,7 +276,7 @@ GEOM_Actor:: setDisplayMode(int theMode) { #ifdef MYDEBUG - cout << "GEOM_Actor::SetDisplayMode = "<myHighlightActor->GetProperty()->DeepCopy(Prop); @@ -488,7 +488,7 @@ void GEOM_Actor::SetHighlightProperty(vtkProperty* Prop) void GEOM_Actor::SetWireframeProperty(vtkProperty* Prop) { #ifdef MYDEBUG - cout << this << " GEOM_Actor::SetWireframeProperty"<SetProperty(Prop); @@ -497,7 +497,7 @@ void GEOM_Actor::SetWireframeProperty(vtkProperty* Prop) void GEOM_Actor::SetShadingProperty(vtkProperty* Prop) { #ifdef MYDEBUG - cout << "GEOM_Actor::SetShadingProperty"<DeepCopy(Prop); } @@ -506,7 +506,7 @@ void GEOM_Actor::SetShadingProperty(vtkProperty* Prop) void GEOM_Actor::Render(vtkRenderer *ren, vtkMapper *theMapper) { #ifdef MYDEBUG - cout << "GEOM_Actor::Render"<Delete(); } else this->Device->Render(ren, theMapper); - } void GEOM_Actor::ReleaseGraphicsResources(vtkWindow *) { #ifdef MYDEBUG - cout << "GEOM_Actor::ReleaseGraphicsResources"< #include - -#include "GEOM_SmartPtr.h" #include +class vtkCamera; + class GEOM_VertexSource; typedef GEOM_SmartPtr PVertexSource; @@ -124,7 +124,7 @@ public: void SetColor(vtkFloatingPointType r,vtkFloatingPointType g,vtkFloatingPointType b); void GetColor(vtkFloatingPointType& r,vtkFloatingPointType& g,vtkFloatingPointType& b); - virtual bool IsInfinite(); + virtual bool IsInfinitive(); // overloaded functions //! To map current selection to VTK representation diff --git a/src/OBJECT/GEOM_AssemblyBuilder.cxx b/src/OBJECT/GEOM_AssemblyBuilder.cxx index 5a0fa17a3..69d7fa9f5 100644 --- a/src/OBJECT/GEOM_AssemblyBuilder.cxx +++ b/src/OBJECT/GEOM_AssemblyBuilder.cxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_AssemblyBuilder.cxx // Author : Christophe ATTANASIO // Module : GEOM // $Header$ - +// /*! \class GEOM_AssemblyBuilder GEOM_AssemblyBuilder.h \brief .... @@ -35,8 +34,11 @@ #include "GEOM_Actor.h" #include +#include #include +#include +#include // Open CASCADE Includes #include @@ -50,6 +52,9 @@ #include #include +// Qt includes +#include + #include "utilities.h" using namespace std; diff --git a/src/OBJECT/GEOM_AssemblyBuilder.h b/src/OBJECT/GEOM_AssemblyBuilder.h index c74cc11d5..da50e5e92 100644 --- a/src/OBJECT/GEOM_AssemblyBuilder.h +++ b/src/OBJECT/GEOM_AssemblyBuilder.h @@ -1,36 +1,35 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_AssemblyBuilder.h // Author : Christophe ATTANASIO // Module : GEOM // $Header$ - +// #include "GEOM_OBJECT_defs.hxx" -#include -#include -#include +class vtkProperty; +class vtkAssembly; +class vtkActorCollection; // Open CASCADE Inlcudes #include diff --git a/src/OBJECT/GEOM_DeviceActor.cxx b/src/OBJECT/GEOM_DeviceActor.cxx index 167010b91..445ab1470 100755 --- a/src/OBJECT/GEOM_DeviceActor.cxx +++ b/src/OBJECT/GEOM_DeviceActor.cxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "GEOM_DeviceActor.h" #include @@ -80,4 +101,4 @@ GEOM_DeviceActor:: RemoveFromRender(vtkRenderer* theRenderer) { theRenderer->RemoveActor(myActor.GetPointer()); -} \ No newline at end of file +} diff --git a/src/OBJECT/GEOM_DeviceActor.h b/src/OBJECT/GEOM_DeviceActor.h index 85809daf5..84bbbe912 100755 --- a/src/OBJECT/GEOM_DeviceActor.h +++ b/src/OBJECT/GEOM_DeviceActor.h @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef GEOM_DEVICEACTOR_H #define GEOM_DEVICEACTOR_H diff --git a/src/OBJECT/GEOM_EdgeSource.cxx b/src/OBJECT/GEOM_EdgeSource.cxx index 23cb30dfa..12b467de9 100755 --- a/src/OBJECT/GEOM_EdgeSource.cxx +++ b/src/OBJECT/GEOM_EdgeSource.cxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "GEOM_EdgeSource.h" #include diff --git a/src/OBJECT/GEOM_EdgeSource.h b/src/OBJECT/GEOM_EdgeSource.h index 56813e0fb..8cb2e514d 100755 --- a/src/OBJECT/GEOM_EdgeSource.h +++ b/src/OBJECT/GEOM_EdgeSource.h @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef GEOM_EDGESOURCE_H #define GEOM_EDGESOURCE_H diff --git a/src/OBJECT/GEOM_FaceSource.cxx b/src/OBJECT/GEOM_FaceSource.cxx index 4f0d9145e..0600ee1d9 100755 --- a/src/OBJECT/GEOM_FaceSource.cxx +++ b/src/OBJECT/GEOM_FaceSource.cxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "GEOM_FaceSource.h" #include diff --git a/src/OBJECT/GEOM_FaceSource.h b/src/OBJECT/GEOM_FaceSource.h index 8c03167af..6378a8eda 100755 --- a/src/OBJECT/GEOM_FaceSource.h +++ b/src/OBJECT/GEOM_FaceSource.h @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef GEOM_FACESOURCE_H #define GEOM_FACESOURCE_H diff --git a/src/OBJECT/GEOM_InteractiveObject.cxx b/src/OBJECT/GEOM_InteractiveObject.cxx index 628df2d24..1f82d31bf 100644 --- a/src/OBJECT/GEOM_InteractiveObject.cxx +++ b/src/OBJECT/GEOM_InteractiveObject.cxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_InteractiveObject.cxx // Author : Christophe ATTANASIO // Module : GEOM // $Header$ - +// /*! \class GEOM_InteractiveObject GEOM_InteractiveObject.hxx \brief .... diff --git a/src/OBJECT/GEOM_InteractiveObject.hxx b/src/OBJECT/GEOM_InteractiveObject.hxx index cc405f407..1acd05421 100644 --- a/src/OBJECT/GEOM_InteractiveObject.hxx +++ b/src/OBJECT/GEOM_InteractiveObject.hxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_InteractiveObject.hxx // Module : GEOM - +// #ifndef _GEOM_InteractiveObject_HeaderFile #define _GEOM_InteractiveObject_HeaderFile @@ -46,8 +45,6 @@ #ifndef _Handle_SALOME_InteractiveObject_HeaderFile #include "Handle_SALOME_InteractiveObject.hxx" #endif -class SALOME_InteractiveObject; - class GEOM_InteractiveObject : public SALOME_InteractiveObject { diff --git a/src/OBJECT/GEOM_InteractiveObject.ixx b/src/OBJECT/GEOM_InteractiveObject.ixx index 20d58cbb2..56d8f268d 100644 --- a/src/OBJECT/GEOM_InteractiveObject.ixx +++ b/src/OBJECT/GEOM_InteractiveObject.ixx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_InteractiveObject.ixx // Module : GEOM - +// #include "GEOM_InteractiveObject.jxx" #ifndef _Standard_TypeMismatch_HeaderFile diff --git a/src/OBJECT/GEOM_InteractiveObject.jxx b/src/OBJECT/GEOM_InteractiveObject.jxx index 94666cbf4..7455669f9 100644 --- a/src/OBJECT/GEOM_InteractiveObject.jxx +++ b/src/OBJECT/GEOM_InteractiveObject.jxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_InteractiveObject.jxx // Module : GEOM - +// #ifndef _SALOME_InteractiveObject_HeaderFile #include "SALOME_InteractiveObject.hxx" #endif diff --git a/src/OBJECT/GEOM_OBJECT_defs.hxx b/src/OBJECT/GEOM_OBJECT_defs.hxx index 3377ce908..c7d239347 100755 --- a/src/OBJECT/GEOM_OBJECT_defs.hxx +++ b/src/OBJECT/GEOM_OBJECT_defs.hxx @@ -1,47 +1,39 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File : GEOM_OBJECT_defs.hxx // Author : Alexander A. BORODIN // Module : GEOM - +// #ifndef _GEOM_OBJECT_defs_HXX_ #define _GEOM_OBJECT_defs_HXX_ -#ifdef WNT - #if defined OBJECT_EXPORTS - #if defined WIN32 - #define GEOM_OBJECT_EXPORT __declspec( dllexport ) - #else - #define GEOM_OBJECT_EXPORT - #endif - #else - #if defined WIN32 - #define GEOM_OBJECT_EXPORT __declspec( dllimport ) - #else - #define GEOM_OBJECT_EXPORT - #endif - #endif +#ifdef WIN32 +# if defined GEOM_OBJECT_EXPORTS +# define GEOM_OBJECT_EXPORT __declspec( dllexport ) +# else +# define GEOM_OBJECT_EXPORT __declspec( dllimport ) +# endif #else - #define GEOM_OBJECT_EXPORT +# define GEOM_OBJECT_EXPORT #endif #endif diff --git a/src/OBJECT/GEOM_OCCReader.cxx b/src/OBJECT/GEOM_OCCReader.cxx index 01400b67f..95a4c33b7 100644 --- a/src/OBJECT/GEOM_OCCReader.cxx +++ b/src/OBJECT/GEOM_OCCReader.cxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_OCCReader.h // Author : Christophe ATTANASIO // Module : GEOM // $Header$ - +// #include "GEOM_OCCReader.h" // VTK Includes @@ -34,24 +33,14 @@ #include #include -#include -#include - -#include -#include // OpenCASCADE Includes -#include #include -#include #include #include -#include +#include #include #include -#include -#include -#include #include #include #include @@ -63,12 +52,7 @@ #include #include #include -#include -#include #include -#include -#include -#include #include #include #include @@ -485,7 +469,7 @@ void GEOM_OCCReader::DrawTo(gp_Pnt P, coord[0] = P.X(); coord[1] = P.Y(); coord[2] = P.Z(); Standard_Integer NewVTKpoint = Pts->InsertNextPoint(coord); - int pts[2]; + vtkIdType pts[2]; pts[0] = lastVTKpoint; pts[1] = NewVTKpoint; @@ -751,7 +735,7 @@ void GEOM_OCCReader::TransferEdgeWData(const TopoDS_Edge& aEdge, aP2 = theNodesP(nbnodes); float coord[3]; - int pts[2]; + vtkIdType pts[2]; for(int j=1;jNodes(); float coord[3]; - int pts[2]; + vtkIdType pts[2]; // PUSH NODES @@ -925,7 +909,7 @@ void GEOM_OCCReader::TransferEdgeWData(const TopoDS_Edge& aEdge, Standard_Integer id1 = Nodesidx(i); Standard_Integer id2 = Nodesidx(i+1); - int pts[2]; + vtkIdType pts[2]; pts[0] = id1-1; pts[1] = id2-1; // insert line (pt1,pt2) @@ -947,7 +931,7 @@ void GEOM_OCCReader::TransferVertexWData(const TopoDS_Vertex& aVertex, gp_Pnt P = BRep_Tool::Pnt( aVertex ); float delta = 1, coord[3]; - int pts[2]; + vtkIdType pts[2]; // insert pt ZERO_COORD; coord[0] = +delta; pts[0] = Pts->InsertNextPoint(coord); @@ -1026,7 +1010,7 @@ void GEOM_OCCReader::TransferFaceSData(const TopoDS_Face& aFace, Standard_Integer N1,N2,N3; Triangles(i).Get(N1,N2,N3); - int pts[3]; + vtkIdType pts[3]; pts[0] = N1-1; pts[1] = N2-1; pts[2] = N3-1; Cells->InsertNextCell(3,pts); diff --git a/src/OBJECT/GEOM_OCCReader.h b/src/OBJECT/GEOM_OCCReader.h index 5c0288a75..869ec4f29 100644 --- a/src/OBJECT/GEOM_OCCReader.h +++ b/src/OBJECT/GEOM_OCCReader.h @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_OCCReader.h // Author : Christophe ATTANASIO // Module : GEOM // $Header$ - +// /*! \class GEOM_OCCReader GEOM_OCCReader.h \brief This class allow to display a OpenCASCADE CAD model in a VTK viewer. @@ -44,8 +43,6 @@ class vtkCellArray; // OpenCASCADE #include #include -#include -#include #include #include diff --git a/src/OBJECT/GEOM_ShadingFace.cxx b/src/OBJECT/GEOM_ShadingFace.cxx index 1795bf0c2..755b32925 100755 --- a/src/OBJECT/GEOM_ShadingFace.cxx +++ b/src/OBJECT/GEOM_ShadingFace.cxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "GEOM_ShadingFace.h" #include @@ -81,4 +102,4 @@ OCC2VTK(const TopoDS_Face& theFace, thePolyData->InsertNextCell(VTK_TRIANGLE,3,anIds); } } -} \ No newline at end of file +} diff --git a/src/OBJECT/GEOM_ShadingFace.h b/src/OBJECT/GEOM_ShadingFace.h index 4414f9f29..097c1340c 100755 --- a/src/OBJECT/GEOM_ShadingFace.h +++ b/src/OBJECT/GEOM_ShadingFace.h @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef GEOM_SHADINGFACE_H #define GEOM_SHADINGFACE_H diff --git a/src/OBJECT/GEOM_SmartPtr.h b/src/OBJECT/GEOM_SmartPtr.h index 886a085b8..eedaf8200 100755 --- a/src/OBJECT/GEOM_SmartPtr.h +++ b/src/OBJECT/GEOM_SmartPtr.h @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef GEOM_SMARTPTR_H #define GEOM_SMARTPTR_H diff --git a/src/OBJECT/GEOM_VTKTrihedron.cxx b/src/OBJECT/GEOM_VTKTrihedron.cxx index 847077d55..113d7a931 100644 --- a/src/OBJECT/GEOM_VTKTrihedron.cxx +++ b/src/OBJECT/GEOM_VTKTrihedron.cxx @@ -1,56 +1,44 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // SALOME GEOM : -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_VTKTrihedron.cxx // Author : Sergey LITONIN // Module : SALOME // $Header: - +// #include "GEOM_VTKTrihedron.hxx" -#include "utilities.h" -#include "GEOM_OCCReader.h" #include #include #include #include -#include -#include -#include -#include -#include #include -#include #include -#include -#include #include -#include #include +#include #include #include -#include #include #include #include diff --git a/src/OBJECT/GEOM_VTKTrihedron.hxx b/src/OBJECT/GEOM_VTKTrihedron.hxx index 1d9e85347..9dde2edd4 100644 --- a/src/OBJECT/GEOM_VTKTrihedron.hxx +++ b/src/OBJECT/GEOM_VTKTrihedron.hxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // SALOME GEOM : -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : GEOM_VTKTrihedron.h // Author : Sergey LITONIN // Module : SALOME // $Header: - +// #ifndef GEOM_VTKTrihedron_H #define GEOM_VTKTrihedron_H @@ -35,7 +34,6 @@ #include "SALOME_Actor.h" #include "VTKViewer_Trihedron.h" -class vtkActorCollection; class vtkRenderer; class vtkPolyDataMapper; diff --git a/src/OBJECT/GEOM_VertexSource.cxx b/src/OBJECT/GEOM_VertexSource.cxx index 50277626b..4fdf79092 100755 --- a/src/OBJECT/GEOM_VertexSource.cxx +++ b/src/OBJECT/GEOM_VertexSource.cxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "GEOM_VertexSource.h" #include diff --git a/src/OBJECT/GEOM_VertexSource.h b/src/OBJECT/GEOM_VertexSource.h index 46a64f0de..00ac63f85 100755 --- a/src/OBJECT/GEOM_VertexSource.h +++ b/src/OBJECT/GEOM_VertexSource.h @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef GEOM_VERTEXSOURCE_H #define GEOM_VERTEXSOURCE_H diff --git a/src/OBJECT/GEOM_WireframeFace.cxx b/src/OBJECT/GEOM_WireframeFace.cxx index 8d49a177c..08430275f 100755 --- a/src/OBJECT/GEOM_WireframeFace.cxx +++ b/src/OBJECT/GEOM_WireframeFace.cxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "GEOM_WireframeFace.h" #include @@ -32,9 +53,10 @@ vtkStandardNewMacro(GEOM_WireframeFace); GEOM_WireframeFace::GEOM_WireframeFace(): - NbIso(1), - Discret(15) + Discret(15) { + NbIso[0] = 1; + NbIso[1] = 1; } GEOM_WireframeFace::~GEOM_WireframeFace() @@ -58,12 +80,29 @@ Execute() } } +void GEOM_WireframeFace::SetNbIso(const int theNb[2]) +{ + if ( theNb[0] == NbIso[0] && theNb[1] == NbIso[1]) + return; + + NbIso[0] = theNb[0]; + NbIso[1] = theNb[1]; + + Modified(); +} + +void GEOM_WireframeFace::GetNbIso(int &theNbU,int &theNbV) +{ + theNbU = NbIso[0]; + theNbV = NbIso[1]; +} + void GEOM_WireframeFace:: OCC2VTK(const TopoDS_Face& theFace, vtkPolyData* thePolyData, vtkPoints* thePts, - const int theNbIso, + const int theNbIso[2], const int theDiscret) { TopoDS_Face aFace = theFace; @@ -74,7 +113,7 @@ OCC2VTK(const TopoDS_Face& theFace, void GEOM_WireframeFace:: CreateIso(const TopoDS_Face& theFace, - const int theNbIso, + const int theNbIso[2], const int theDiscret, vtkPolyData* thePolyData, vtkPoints* thePts) @@ -95,8 +134,8 @@ CreateIso(const TopoDS_Face& theFace, Standard_False); Standard_Real anUMin, anUMax, aVMin, aVMax; - TColStd_Array1OfReal anUPrm(1, theNbIso), aVPrm(1, theNbIso); - TColStd_Array1OfInteger anUInd(1, theNbIso), aVInd(1, theNbIso); + TColStd_Array1OfReal anUPrm(1, theNbIso[0]), aVPrm(1, theNbIso[1]); + TColStd_Array1OfInteger anUInd(1, theNbIso[0]), aVInd(1, theNbIso[1]); anUInd.Init(0); aVInd.Init(0); @@ -185,11 +224,11 @@ CreateIso(const TopoDS_Face& theFace, Standard_Real confusion = Min(DeltaU, DeltaV) * HATHCER_CONFUSION_3D ; aHatcher.Confusion3d (confusion) ; - Standard_Real StepU = DeltaU / (Standard_Real)theNbIso; + Standard_Real StepU = DeltaU / (Standard_Real)theNbIso[0]; if(StepU > confusion){ Standard_Real UPrm = anUMin + StepU / 2.; gp_Dir2d Dir(0., 1.) ; - for(IIso = 1 ; IIso <= theNbIso ; IIso++) { + for(IIso = 1 ; IIso <= theNbIso[0] ; IIso++) { anUPrm(IIso) = UPrm ; gp_Pnt2d Ori (UPrm, 0.) ; Geom2dAdaptor_Curve HCur (new Geom2d_Line (Ori, Dir)) ; @@ -198,11 +237,11 @@ CreateIso(const TopoDS_Face& theFace, } } - Standard_Real StepV = DeltaV / (Standard_Real) theNbIso ; + Standard_Real StepV = DeltaV / (Standard_Real) theNbIso[1] ; if(StepV > confusion){ Standard_Real VPrm = aVMin + StepV / 2.; gp_Dir2d Dir(1., 0.); - for(IIso = 1 ; IIso <= theNbIso ; IIso++){ + for(IIso = 1 ; IIso <= theNbIso[1] ; IIso++){ aVPrm(IIso) = VPrm; gp_Pnt2d Ori (0., VPrm); Geom2dAdaptor_Curve HCur(new Geom2d_Line (Ori, Dir)); @@ -217,9 +256,9 @@ CreateIso(const TopoDS_Face& theFace, aHatcher.Trim() ; Standard_Integer aNbDom = 0 ; // for debug purpose - for(IIso = 1 ; IIso <= theNbIso ; IIso++){ - Standard_Integer Index ; + Standard_Integer Index ; + for(IIso = 1 ; IIso <= theNbIso[0] ; IIso++){ Index = anUInd(IIso) ; if(Index != 0){ if(aHatcher.TrimDone(Index) && !aHatcher.TrimFailed(Index)){ @@ -228,7 +267,9 @@ CreateIso(const TopoDS_Face& theFace, aNbDom = aHatcher.NbDomains (Index); } } + } + for(IIso = 1 ; IIso <= theNbIso[1] ; IIso++){ Index = aVInd(IIso); if(Index != 0){ if(aHatcher.TrimDone (Index) && !aHatcher.TrimFailed(Index)){ @@ -463,4 +504,4 @@ CreateIso__(const BRepAdaptor_Surface& theSurface, CreateIso__(theSurface, theIsoType, aLocalU , theV, theStep/2, thePolyData, thePts); } } -} \ No newline at end of file +} diff --git a/src/OBJECT/GEOM_WireframeFace.h b/src/OBJECT/GEOM_WireframeFace.h index cdbe122b3..2958694df 100755 --- a/src/OBJECT/GEOM_WireframeFace.h +++ b/src/OBJECT/GEOM_WireframeFace.h @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #ifndef GEOM_WIREFRAME_FACE_H #define GEOM_WIREFRAME_FACE_H @@ -15,8 +36,8 @@ public: vtkTypeMacro(GEOM_WireframeFace,GEOM_FaceSource); static GEOM_WireframeFace* New(); - vtkSetMacro(NbIso,int); - vtkGetMacro(NbIso,int); + /* vtkSetMacro(NbIso,int); + vtkGetMacro(NbIso,int);*/ vtkSetMacro(Discret,int); vtkGetMacro(Discret,int); @@ -25,16 +46,22 @@ public: void OCC2VTK(const TopoDS_Face& theFace, vtkPolyData* thePolyData, vtkPoints* thePts, - int theNbIso = 1, - int theDiscret = 15); - + const int theNbIso[2], + const int theDiscret = 15); + + //! IsoLines management + // theNb[0] - number of U lines + // theNb[1] - number of V lines + virtual void SetNbIso(const int theNb[2]); + virtual void GetNbIso(int &theNbU,int &theNbV); + protected: - int NbIso, Discret; + int NbIso[2], Discret; static void CreateIso(const TopoDS_Face& theFace, - const int theNbIso, + const int theNbIso[2], const int theDiscret, vtkPolyData* thePolyData, vtkPoints* thePts); diff --git a/src/OBJECT/Handle_GEOM_AISShape.hxx b/src/OBJECT/Handle_GEOM_AISShape.hxx index 4c7d4c7d1..4556c2712 100644 --- a/src/OBJECT/Handle_GEOM_AISShape.hxx +++ b/src/OBJECT/Handle_GEOM_AISShape.hxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Handle_GEOM_AISShape.hxx // Module : GEOM - +// #ifndef _Handle_GEOM_AISShape_HeaderFile #define _Handle_GEOM_AISShape_HeaderFile diff --git a/src/OBJECT/Handle_GEOM_InteractiveObject.hxx b/src/OBJECT/Handle_GEOM_InteractiveObject.hxx index 70c1c92c0..822359cb7 100644 --- a/src/OBJECT/Handle_GEOM_InteractiveObject.hxx +++ b/src/OBJECT/Handle_GEOM_InteractiveObject.hxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM OBJECT : interactive object for Geometry entities visualization -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Handle_GEOM_InteractiveObject.hxx // Module : GEOM - +// #ifndef _Handle_GEOM_InteractiveObject_HeaderFile #define _Handle_GEOM_InteractiveObject_HeaderFile diff --git a/src/OBJECT/Makefile.am b/src/OBJECT/Makefile.am index 638ff6ac4..671ab5c4c 100644 --- a/src/OBJECT/Makefile.am +++ b/src/OBJECT/Makefile.am @@ -1,86 +1,89 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM OBJECT : interactive object for Geometry entities visualization -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.in # Author : Damien COQUERET (OCC) # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = \ - GEOM_Actor.h \ - GEOM_AssemblyBuilder.h \ - GEOM_AISShape.hxx \ - Handle_GEOM_AISShape.hxx \ - GEOM_InteractiveObject.hxx \ - Handle_GEOM_InteractiveObject.hxx \ - GEOM_AISTrihedron.hxx \ - GEOM_VTKTrihedron.hxx \ - GEOM_AISVector.hxx \ - GEOM_OBJECT_defs.hxx \ - GEOM_SmartPtr.h \ - GEOM_DeviceActor.h \ - GEOM_EdgeSource.h \ - GEOM_FaceSource.h \ - GEOM_ShadingFace.h \ - GEOM_VertexSource.h \ +salomeinclude_HEADERS = \ + GEOM_Actor.h \ + GEOM_AssemblyBuilder.h \ + GEOM_AISShape.hxx \ + GEOM_AISShape.ixx \ + GEOM_AISShape.jxx \ + Handle_GEOM_AISShape.hxx \ + GEOM_InteractiveObject.hxx \ + GEOM_InteractiveObject.ixx \ + GEOM_InteractiveObject.jxx \ + Handle_GEOM_InteractiveObject.hxx \ + GEOM_AISTrihedron.hxx \ + GEOM_VTKTrihedron.hxx \ + GEOM_AISVector.hxx \ + GEOM_OBJECT_defs.hxx \ + GEOM_OCCReader.h \ + GEOM_SmartPtr.h \ + GEOM_DeviceActor.h \ + GEOM_EdgeSource.h \ + GEOM_FaceSource.h \ + GEOM_ShadingFace.h \ + GEOM_VertexSource.h \ GEOM_WireframeFace.h # Libraries targets lib_LTLIBRARIES = libGEOMObject.la -dist_libGEOMObject_la_SOURCES = \ - GEOM_Actor.cxx \ - GEOM_OCCReader.cxx \ - GEOM_AssemblyBuilder.cxx \ - GEOM_AISShape.cxx \ - GEOM_InteractiveObject.cxx \ - GEOM_AISTrihedron.cxx \ - GEOM_VTKTrihedron.cxx \ - GEOM_AISVector.cxx \ - GEOM_DeviceActor.cxx \ - GEOM_EdgeSource.cxx \ - GEOM_FaceSource.cxx \ - GEOM_ShadingFace.cxx \ - GEOM_VertexSource.cxx \ +dist_libGEOMObject_la_SOURCES = \ + GEOM_Actor.cxx \ + GEOM_OCCReader.cxx \ + GEOM_AssemblyBuilder.cxx \ + GEOM_AISShape.cxx \ + GEOM_InteractiveObject.cxx \ + GEOM_AISTrihedron.cxx \ + GEOM_VTKTrihedron.cxx \ + GEOM_AISVector.cxx \ + GEOM_DeviceActor.cxx \ + GEOM_EdgeSource.cxx \ + GEOM_FaceSource.cxx \ + GEOM_ShadingFace.cxx \ + GEOM_VertexSource.cxx \ GEOM_WireframeFace.cxx -libGEOMObject_la_CPPFLAGS = \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - $(QT_INCLUDES) \ - $(PYTHON_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(VTK_INCLUDES) \ - $(OGL_INCLUDES) \ - $(KERNEL_CXXFLAGS) \ +libGEOMObject_la_CPPFLAGS = \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + $(QT_INCLUDES) \ + $(PYTHON_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(VTK_INCLUDES) \ + $(KERNEL_CXXFLAGS) \ $(GUI_CXXFLAGS) -libGEOMObject_la_LDFLAGS = \ - $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ +libGEOMObject_la_LDFLAGS = \ + $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ $(GUI_LDFLAGS) -lqtx -lVTKViewer -lSVTK -lSalomeObject # $(CORBA_LIBS) \ # $(STDLIB) \ diff --git a/src/OBJECT/OBJECT.pro b/src/OBJECT/OBJECT.pro new file mode 100644 index 000000000..0c8330f26 --- /dev/null +++ b/src/OBJECT/OBJECT.pro @@ -0,0 +1,80 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GEOMObject +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +GUI_LDFLAGS = -L$$(GUI_ROOT_DIR)/lib/salome + +INCLUDEPATH += $${CORBA_INCLUDES} $${QT_INCLUDES} $${PYTHON_INCLUDES} $${CAS_CPPFLAGS} $${VTK_INCLUDES} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} + +LIBS += $${KERNEL_LDFLAGS} -lSALOMELocalTrace $${GUI_LDFLAGS} -lqtx -lVTKViewer -lSVTK -lSalomeObject + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OBJECT_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +HEADERS = GEOM_Actor.h +HEADERS += GEOM_AssemblyBuilder.h +HEADERS += GEOM_AISShape.hxx +HEADERS += Handle_GEOM_AISShape.hxx +HEADERS += GEOM_InteractiveObject.hxx +HEADERS += Handle_GEOM_InteractiveObject.hxx +HEADERS += GEOM_AISTrihedron.hxx +HEADERS += GEOM_VTKTrihedron.hxx +HEADERS += GEOM_AISVector.hxx +HEADERS += GEOM_OBJECT_defs.hxx + +SOURCES = GEOM_Actor.cxx +SOURCES += GEOM_OCCReader.cxx +SOURCES += GEOM_AssemblyBuilder.cxx +SOURCES += GEOM_AISShape.cxx +SOURCES += GEOM_InteractiveObject.cxx +SOURCES += GEOM_AISTrihedron.cxx +SOURCES += GEOM_VTKTrihedron.cxx +SOURCES += GEOM_AISVector.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/OperationGUI/Makefile.am b/src/OperationGUI/Makefile.am index e25d13348..3afc05013 100644 --- a/src/OperationGUI/Makefile.am +++ b/src/OperationGUI/Makefile.am @@ -1,83 +1,96 @@ -# GEOM OPERATIONGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM OPERATIONGUI : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : OperationGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = +salomeinclude_HEADERS = \ + OperationGUI.h \ + OperationGUI_ArchimedeDlg.h \ + OperationGUI_PartitionDlg.h \ + OperationGUI_FilletDlg.h \ + OperationGUI_Fillet2dDlg.h \ + OperationGUI_ChamferDlg.h \ + OperationGUI_GetShapesOnShapeDlg.h \ + OperationGUI_ClippingDlg.h # Libraries targets lib_LTLIBRARIES = libOperationGUI.la -dist_libOperationGUI_la_SOURCES = \ - OperationGUI.cxx \ - OperationGUI_ArchimedeDlg.cxx \ - OperationGUI_PartitionDlg.cxx \ - OperationGUI_FilletDlg.cxx \ - OperationGUI_ChamferDlg.cxx \ +dist_libOperationGUI_la_SOURCES = \ + OperationGUI.cxx \ + OperationGUI_ArchimedeDlg.cxx \ + OperationGUI_PartitionDlg.cxx \ + OperationGUI_GetShapesOnShapeDlg.cxx \ + OperationGUI_FilletDlg.cxx \ + OperationGUI_Fillet2dDlg.cxx \ + OperationGUI_ChamferDlg.cxx \ OperationGUI_ClippingDlg.cxx -MOC_FILES = \ - OperationGUI_ArchimedeDlg_moc.cxx \ - OperationGUI_PartitionDlg_moc.cxx \ - OperationGUI_FilletDlg_moc.cxx \ - OperationGUI_ChamferDlg_moc.cxx \ +MOC_FILES = \ + OperationGUI_ArchimedeDlg_moc.cxx \ + OperationGUI_PartitionDlg_moc.cxx \ + OperationGUI_GetShapesOnShapeDlg_moc.cxx\ + OperationGUI_FilletDlg_moc.cxx \ + OperationGUI_Fillet2dDlg_moc.cxx \ + OperationGUI_ChamferDlg_moc.cxx \ OperationGUI_ClippingDlg_moc.cxx -nodist_libOperationGUI_la_SOURCES= \ +nodist_libOperationGUI_la_SOURCES = \ $(MOC_FILES) -#LIB_CLIENT_IDL = SALOME_GenericObj.idl SALOME_Component.idl SALOME_Exception.idl +# additional information to compile and link file -#LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libOperationGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(top_builddir)/idl \ +libOperationGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMAlgo \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libOperationGUI_la_LDFLAGS = \ - ../GEOMBase/libGEOMBase.la \ +libOperationGUI_la_LDFLAGS = \ + ../GEOMBase/libGEOMBase.la \ $(CAS_LDPATH) -lTKFillet + +############################### +# Obsolete files ? +############################### +# OperationGUI_MaterialDlg.h +# OperationGUI_MaterialDlg.cxx diff --git a/src/OperationGUI/OperationGUI.cxx b/src/OperationGUI/OperationGUI.cxx index 1372e926d..ebc81748d 100644 --- a/src/OperationGUI/OperationGUI.cxx +++ b/src/OperationGUI/OperationGUI.cxx @@ -1,36 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : OperationGUI.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "OperationGUI.h" -#include "SUIT_Session.h" -#include "SUIT_Desktop.h" -#include "SalomeApp_Application.h" +#include + +#include +#include +#include #include #include @@ -39,17 +38,17 @@ #include "OperationGUI_PartitionDlg.h" // Method PARTITION #include "OperationGUI_ArchimedeDlg.h" // Method ARCHIMEDE #include "OperationGUI_FilletDlg.h" // Method FILLET +#include "OperationGUI_Fillet2dDlg.h" // Method FILLET 2D #include "OperationGUI_ChamferDlg.h" // Method CHAMFER - -#include "OperationGUI_ClippingDlg.h" - -using namespace std; +#include "OperationGUI_ClippingDlg.h" // Clipping dialog box +#include "OperationGUI_GetShapesOnShapeDlg.h" //======================================================================= // function : OperationGUI() // purpose : Constructor //======================================================================= -OperationGUI::OperationGUI(GeometryGUI* parent) : GEOMGUI(parent) +OperationGUI::OperationGUI( GeometryGUI* parent ) : + GEOMGUI( parent ) { } @@ -69,19 +68,20 @@ OperationGUI::~OperationGUI() bool OperationGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { SalomeApp_Application* app = getGeometryGUI()->getApp(); - if (!app) return false; + if ( !app ) return false; getGeometryGUI()->EmitSignalDeactivateDialog(); - switch (theCommandID) - { - case 503: (new OperationGUI_PartitionDlg(getGeometryGUI(), parent))->show(); break; - case 504: (new OperationGUI_ArchimedeDlg(getGeometryGUI(), parent))->show(); break; - case 505: (new OperationGUI_FilletDlg (getGeometryGUI(), parent))->show(); break; - case 506: (new OperationGUI_ChamferDlg (getGeometryGUI(), parent))->show(); break; - case 507: (new OperationGUI_ClippingDlg (getGeometryGUI(), parent))->show(); break; + switch ( theCommandID ) { + case 503: ( new OperationGUI_PartitionDlg ( getGeometryGUI(), parent ) )->show(); break; + case 504: ( new OperationGUI_ArchimedeDlg ( getGeometryGUI(), parent ) )->show(); break; + case 505: ( new OperationGUI_FilletDlg ( getGeometryGUI(), parent ) )->show(); break; + case 506: ( new OperationGUI_ChamferDlg ( getGeometryGUI(), parent ) )->show(); break; + case 507: ( new OperationGUI_ClippingDlg ( getGeometryGUI(), parent ) )->show(); break; + case 508: ( new OperationGUI_GetShapesOnShapeDlg( getGeometryGUI(), parent ) )->show(); break; + case 509: ( new OperationGUI_Fillet2dDlg ( getGeometryGUI(), parent ) )->show(); break; default: - app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); + app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); } return true; @@ -93,10 +93,10 @@ bool OperationGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) extern "C" { #ifdef WNT - __declspec( dllexport ) + __declspec( dllexport ) #endif - GEOMGUI* GetLibGUI(GeometryGUI* parent) + GEOMGUI* GetLibGUI( GeometryGUI* parent ) { - return new OperationGUI(parent); + return new OperationGUI( parent ); } } diff --git a/src/OperationGUI/OperationGUI.h b/src/OperationGUI/OperationGUI.h index d2bd5662b..760150bac 100644 --- a/src/OperationGUI/OperationGUI.h +++ b/src/OperationGUI/OperationGUI.h @@ -1,35 +1,32 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : OperationGUI.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef OPERATIONGUI_H #define OPERATIONGUI_H -#include "GEOMGUI.h" -#include "GEOMBase.h" +#include //================================================================================= // class : OperationGUI @@ -38,10 +35,10 @@ class OperationGUI : public GEOMGUI { public : - OperationGUI( GeometryGUI* parent ); + OperationGUI( GeometryGUI* ); ~OperationGUI(); - bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent); + bool OnGUIEvent( int, SUIT_Desktop* ); }; -#endif +#endif // OPERATIONGUI_H diff --git a/src/OperationGUI/OperationGUI_ArchimedeDlg.cxx b/src/OperationGUI/OperationGUI_ArchimedeDlg.cxx index 9102c5273..fdf1778e3 100644 --- a/src/OperationGUI/OperationGUI_ArchimedeDlg.cxx +++ b/src/OperationGUI/OperationGUI_ArchimedeDlg.cxx @@ -1,40 +1,39 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_ArchimedeDlg.cxx +// Author : Nicolas REJNERI, Open CASCADE S.A.S. // -// File : OperationGUI_ArchimedeDlg.cxx -// Author : Nicolas REJNERI -// Module : GEOM -// $Header$ - #include "OperationGUI_ArchimedeDlg.h" -#include "DlgRef_1Sel3Spin.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include +#include +#include +#include +#include +#include //================================================================================= // class : OperationGUI_ArchimedeDlg() @@ -44,33 +43,37 @@ // TRUE to construct a modal dialog. //================================================================================= OperationGUI_ArchimedeDlg::OperationGUI_ArchimedeDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) - : GEOMBase_Skeleton(theGeometryGUI, parent, "ArchimedeDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) + : GEOMBase_Skeleton( theGeometryGUI, parent, false ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_ARCHIMEDE"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_ARCHIMEDE" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_ARCHIMEDE_TITLE")); + setWindowTitle( tr( "GEOM_ARCHIMEDE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_ARCHIMEDE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_ARCHIMEDE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel3Spin(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - GroupPoints->TextLabel1->setText(tr("GEOM_OBJECTS")); - GroupPoints->TextLabel2->setText(tr("GEOM_WEIGHT")); - GroupPoints->TextLabel3->setText(tr("GEOM_WATER_DENSITY")); - GroupPoints->TextLabel4->setText(tr("GEOM_MESHING_DEFLECTION")); - GroupPoints->PushButton1->setPixmap(image1); + GroupPoints = new DlgRef_1Sel3Spin( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_OBJECTS" ) ); + GroupPoints->TextLabel2->setText( tr( "GEOM_WEIGHT" ) ); + GroupPoints->TextLabel3->setText( tr( "GEOM_WATER_DENSITY" ) ); + GroupPoints->TextLabel4->setText( tr( "GEOM_MESHING_DEFLECTION" ) ); + GroupPoints->PushButton1->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupPoints, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); + /***************************************************************/ - setHelpFileName("archimede_page.html"); + setHelpFileName( "archimede_page.html" ); /* Initialisations */ Init(); @@ -98,31 +101,29 @@ void OperationGUI_ArchimedeDlg::Init() /* Get setting of myStep value from file configuration */ SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double myStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + double myStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 ); double SpecificStep1 = 0.1; double SpecificStep2 = 0.01; /* min, max, myStep and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, myStep, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DY->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep1, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DZ->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep2, DBL_DIGITS_DISPLAY); + initSpinBox( GroupPoints->SpinBox_DX, 0.001, COORD_MAX, myStep, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( GroupPoints->SpinBox_DY, 0.001, COORD_MAX, SpecificStep1, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( GroupPoints->SpinBox_DZ, 0.001, COORD_MAX, SpecificStep2, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY - GroupPoints->SpinBox_DX->SetValue( 100.0 ); - GroupPoints->SpinBox_DY->SetValue( 1.0 ); - GroupPoints->SpinBox_DZ->SetValue( 0.01 ); + GroupPoints->SpinBox_DX->setValue( 100.0 ); + GroupPoints->SpinBox_DY->setValue( 1.0 ); + GroupPoints->SpinBox_DZ->setValue( 0.01 ); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DZ, SLOT(SetStep(double))); + connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_ARCHIMEDE" ) ); @@ -132,6 +133,17 @@ void OperationGUI_ArchimedeDlg::Init() } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void OperationGUI_ArchimedeDlg::SetDoubleSpinBoxStep( double step ) +{ + GroupPoints->SpinBox_DX->setSingleStep(step); + GroupPoints->SpinBox_DY->setSingleStep(step); + GroupPoints->SpinBox_DZ->setSingleStep(step); +} + //================================================================================= // function : ClickOnOk() // purpose : @@ -156,32 +168,33 @@ bool OperationGUI_ArchimedeDlg::ClickOnApply() return true; } - //================================================================================= // function : SelectionIntoArgument() // purpose : Called when selection as changed or other case //================================================================================= void OperationGUI_ArchimedeDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText( "" ); + myEditCurrentArgument->setText(""); myShape = GEOM::GEOM_Object::_nil(); - - if ( IObjectCount() != 1 ) + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) return; Standard_Boolean testResult = Standard_False; - myShape = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); + myShape = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); - if ( !testResult || myShape->_is_nil() || !GEOMBase::IsShape( myShape ) ) - { + if (!testResult || myShape->_is_nil() || !GEOMBase::IsShape(myShape)) { myShape = GEOM::GEOM_Object::_nil(); return; } - myEditCurrentArgument->setText( GEOMBase::GetName( myShape ) ); + myEditCurrentArgument->setText(GEOMBase::GetName(myShape)); } - //================================================================================= // function : LineEditReturnPressed() // purpose : @@ -189,13 +202,12 @@ void OperationGUI_ArchimedeDlg::SelectionIntoArgument() void OperationGUI_ArchimedeDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1) + if ( send == GroupPoints->LineEdit1 ) myEditCurrentArgument = GroupPoints->LineEdit1; else return; GEOMBase_Skeleton::LineEditReturnPressed(); - return; } //================================================================================= @@ -206,9 +218,8 @@ void OperationGUI_ArchimedeDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); globalSelection( GEOM_ALLSHAPES ); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - return; + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); } @@ -216,12 +227,11 @@ void OperationGUI_ArchimedeDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void OperationGUI_ArchimedeDlg::enterEvent(QEvent* e) +void OperationGUI_ArchimedeDlg::enterEvent( QEvent* ) { - if(GroupConstructors->isEnabled()) + if ( mainFrame()->GroupConstructors->isEnabled() ) return; this->ActivateThisDialog(); - return; } @@ -238,9 +248,13 @@ GEOM::GEOM_IOperations_ptr OperationGUI_ArchimedeDlg::createOperation() // function : isValid // purpose : //================================================================================= -bool OperationGUI_ArchimedeDlg::isValid( QString& ) +bool OperationGUI_ArchimedeDlg::isValid( QString& msg ) { - return !myShape->_is_nil(); + bool ok = true; + ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok; + return !myShape->_is_nil() && ok; } //================================================================================= @@ -251,15 +265,25 @@ bool OperationGUI_ArchimedeDlg::execute( ObjectList& objects ) { GEOM::GEOM_Object_var anObj; - double aWeight = GroupPoints->SpinBox_DX->GetValue(); - double aWaterDensity = GroupPoints->SpinBox_DY->GetValue(); - double aMeshDeflection = GroupPoints->SpinBox_DZ->GetValue(); + double aWeight = GroupPoints->SpinBox_DX->value(); + double aWaterDensity = GroupPoints->SpinBox_DY->value(); + double aMeshDeflection = GroupPoints->SpinBox_DZ->value(); anObj = GEOM::GEOM_ILocalOperations::_narrow( getOperation() )->MakeArchimede( myShape, aWeight, aWaterDensity, aMeshDeflection ); if ( !anObj->_is_nil() ) + { + if ( !IsPreview() ) + { + QStringList aParameters; + aParameters << GroupPoints->SpinBox_DX->text(); + aParameters << GroupPoints->SpinBox_DY->text(); + aParameters << GroupPoints->SpinBox_DZ->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } objects.push_back( anObj._retn() ); + } return true; } diff --git a/src/OperationGUI/OperationGUI_ArchimedeDlg.h b/src/OperationGUI/OperationGUI_ArchimedeDlg.h index f848d5e26..640e06f77 100644 --- a/src/OperationGUI/OperationGUI_ArchimedeDlg.h +++ b/src/OperationGUI/OperationGUI_ArchimedeDlg.h @@ -1,34 +1,32 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : OperationGUI_ArchimedeDlg.h -// Author : Nicolas REJNERI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_ArchimedeDlg.h +// Author : Nicolas REJNERI, Open CASCADE S.A.S. +// +#ifndef OPERATIONGUI_ARCHIMEDEDLG_H +#define OPERATIONGUI_ARCHIMEDEDLG_H -#ifndef DIALOGBOX_ARCHIMEDE_H -#define DIALOGBOX_ARCHIMEDE_H - -#include "GEOMBase_Skeleton.h" +#include class DlgRef_1Sel3Spin; @@ -38,33 +36,34 @@ class DlgRef_1Sel3Spin; //================================================================================= class OperationGUI_ArchimedeDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - OperationGUI_ArchimedeDlg(GeometryGUI* theGeometryGUI, QWidget* parent); - ~OperationGUI_ArchimedeDlg(); - + OperationGUI_ArchimedeDlg( GeometryGUI* , QWidget* ); + ~OperationGUI_ArchimedeDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); private: - void Init(); - void enterEvent(QEvent* e); + void Init(); + void enterEvent( QEvent* ); private: - GEOM::GEOM_Object_var myShape; - DlgRef_1Sel3Spin* GroupPoints; - double myStep; + GEOM::GEOM_Object_var myShape; + DlgRef_1Sel3Spin* GroupPoints; + double myStep; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_ARCHIMEDE_H +#endif // OPERATIONGUI_ARCHIMEDEDLG_H diff --git a/src/OperationGUI/OperationGUI_ChamferDlg.cxx b/src/OperationGUI/OperationGUI_ChamferDlg.cxx index e5914d23d..af89feddd 100644 --- a/src/OperationGUI/OperationGUI_ChamferDlg.cxx +++ b/src/OperationGUI/OperationGUI_ChamferDlg.cxx @@ -1,8 +1,8 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// +// // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either @@ -17,31 +17,32 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_ChamferDlg.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : OperationGUI_ChamferDlg.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "OperationGUI_ChamferDlg.h" -#include "DlgRef_SpinBox.h" +#include -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "OCCViewer_ViewModel.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include -#include -#include "qpixmap.h" -#include - -#include "GEOMImpl_Types.hxx" +#include //================================================================================= // class : OperationGUI_ChamferDlg() @@ -50,189 +51,116 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -OperationGUI_ChamferDlg::OperationGUI_ChamferDlg(GeometryGUI* theGeometryGUI, QWidget* parent) - : GEOMBase_Skeleton(theGeometryGUI, parent, "ChamferDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +OperationGUI_ChamferDlg::OperationGUI_ChamferDlg (GeometryGUI* theGeometryGUI, QWidget* parent) + : GEOMBase_Skeleton(theGeometryGUI, parent, false), + myInitial(true) { - myConstructorId = -1; + SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_CHAMFER_ALL"))); + QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_CHAMFER_EDGE_FROM_FACE"))); + QPixmap image3 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_CHAMFER_FACE"))); + QPixmap image4 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_CHAMFER_EDGE"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CHAMFER_ALL"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CHAMFER_EDGE_FROM_FACE"))); - QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CHAMFER_FACE"))); - QPixmap image4(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CHAMFER_EDGE"))); - QPixmap iconSelect(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap iconSelect (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption( tr( "GEOM_CHAMFER_TITLE" ) ); + setWindowTitle(tr("GEOM_CHAMFER_TITLE")); - GroupConstructors->setTitle( tr( "GEOM_CHAMFER" ) ); + /***************************************************************/ + mainFrame()->GroupConstructors->setTitle(tr("GEOM_CHAMFER")); - RadioButton1->setPixmap( image1 ); - RadioButton2->setPixmap( image2 ); - RadioButton3->setPixmap( image3 ); - RadioButton4->show(); - RadioButton4->setPixmap( image4 ); + mainFrame()->RadioButton1->setIcon(image1); + mainFrame()->RadioButton2->setIcon(image2); + mainFrame()->RadioButton3->setIcon(image3); + mainFrame()->RadioButton4->show(); + mainFrame()->RadioButton4->setIcon(image4); // Create first group - myGrp1 = new QGroupBox( 1, Qt::Horizontal, tr( "GEOM_CHAMFER_ALL" ), this ); + myGrp1 = new QGroupBox(tr("GEOM_CHAMFER_ALL"), centralWidget()); - QGroupBox* aSelGrp1 = new QGroupBox( 3, Qt::Horizontal, myGrp1 ); - aSelGrp1->setFrameStyle( QFrame::NoFrame ); - aSelGrp1->setInsideMargin( 0 ); + QGridLayout* aLayout = new QGridLayout(myGrp1); + aLayout->setMargin(9); aLayout->setSpacing(6); - createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, aSelGrp1, MainObj1 ); + createSelWg(tr("GEOM_MAIN_OBJECT"), iconSelect, myGrp1, aLayout, MainObj1); - QGroupBox* aSpinGrp = new QGroupBox( 1, Qt::Vertical, myGrp1 ); - aSpinGrp->setFrameStyle( QFrame::NoFrame ); - aSpinGrp->setInsideMargin( 0 ); - - new QLabel( tr( "D" ), aSpinGrp ); - mySpinBox[ SpinBox1 ] = new DlgRef_SpinBox( aSpinGrp ); - - ( new QFrame( myGrp1 ) )->setSizePolicy( - QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); + int row = aLayout->rowCount(); + aLayout->addWidget(new QLabel(tr("D"), myGrp1), row, 0); + aLayout->addWidget((mySpinBox[ SpinBox1 ] = new SalomeApp_DoubleSpinBox(myGrp1)), row++, 2); + aLayout->setRowStretch(row, 10); // Create second group - myGrp2 = new QGroupBox( 1, Qt::Horizontal, tr( "GEOM_CHAMFER_EDGES" ), this ); + myGrp2 = new QGroupBox(tr("GEOM_CHAMFER_EDGES"), centralWidget()); - QGroupBox* aSelGrp2 = new QGroupBox( 3, Qt::Horizontal, myGrp2 ); - aSelGrp2->setFrameStyle( QFrame::NoFrame ); - aSelGrp2->setInsideMargin( 0 ); + aLayout = new QGridLayout(myGrp2); + aLayout->setMargin(9); aLayout->setSpacing(6); - createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, aSelGrp2, MainObj2 ); - createSelWg( tr( "FACE_1" ), iconSelect, aSelGrp2, Face1 ); - createSelWg( tr( "FACE_2" ), iconSelect, aSelGrp2, Face2 ); + createSelWg(tr("GEOM_MAIN_OBJECT"), iconSelect, myGrp2, aLayout, MainObj2); + createSelWg(tr("FACE_1"), iconSelect, myGrp2, aLayout, Face1); + createSelWg(tr("FACE_2"), iconSelect, myGrp2, aLayout, Face2); - QGroupBox* aSpinGrp1 = new QGroupBox( 1, Qt::Vertical, myGrp2 ); - aSpinGrp1->setFrameStyle( QFrame::NoFrame ); - aSpinGrp1->setInsideMargin( 0 ); - - myRadioButton[ RadioButton21] = new QRadioButton( aSpinGrp1 ); + createRadioWg(tr("GEOM_D1"), tr("GEOM_D2"), myGrp2, aLayout, RadioButton21, SpinBox21, SpinBox22); + createRadioWg(tr("GEOM_D"), tr("GEOM_ANGLE"), myGrp2, aLayout, RadioButton22, SpinBox23, SpinBox24); - new QLabel( tr( "GEOM_D1" ), aSpinGrp1 ); - mySpinBox[ SpinBox21 ] = new DlgRef_SpinBox( aSpinGrp1 ); - - new QLabel( tr( "GEOM_D2" ), aSpinGrp1 ); - mySpinBox[ SpinBox22 ] = new DlgRef_SpinBox( aSpinGrp1 ); - - QGroupBox* aSpinGrp2 = new QGroupBox( 1, Qt::Vertical, myGrp2 ); - aSpinGrp2->setFrameStyle( QFrame::NoFrame ); - aSpinGrp2->setInsideMargin( 0 ); - - myRadioButton[ RadioButton22] = new QRadioButton( aSpinGrp2 ); - - new QLabel( tr( "GEOM_D" ), aSpinGrp2 ); - mySpinBox[ SpinBox23 ] = new DlgRef_SpinBox( aSpinGrp2 ); - - new QLabel( tr( "GEOM_ANGLE" ), aSpinGrp2 ); - mySpinBox[ SpinBox24 ] = new DlgRef_SpinBox( aSpinGrp2 ); - - ( new QLabel( myGrp2 ) )->setSizePolicy( - QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); + aLayout->setRowStretch(aLayout->rowCount(), 10); // Create third group - myGrp3 = new QGroupBox( 1, Qt::Horizontal, tr( "GEOM_CHAMFER_FACES" ), this ); + myGrp3 = new QGroupBox(tr("GEOM_CHAMFER_FACES"), centralWidget()); - QGroupBox* aSelGrp3 = new QGroupBox( 3, Qt::Horizontal, myGrp3 ); - aSelGrp3->setFrameStyle( QFrame::NoFrame ); - aSelGrp3->setInsideMargin( 0 ); + aLayout = new QGridLayout(myGrp3); + aLayout->setMargin(9); aLayout->setSpacing(6); - createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, aSelGrp3, MainObj3 ); - createSelWg( tr( "SELECTED_FACES" ), iconSelect, aSelGrp3, Faces ); + createSelWg(tr("GEOM_MAIN_OBJECT"), iconSelect, myGrp3, aLayout, MainObj3); + createSelWg(tr("SELECTED_FACES"), iconSelect, myGrp3, aLayout, Faces); - aSpinGrp1 = new QGroupBox( 1, Qt::Vertical, myGrp3 ); - aSpinGrp1->setFrameStyle( QFrame::NoFrame ); - aSpinGrp1->setInsideMargin( 0 ); + createRadioWg(tr("GEOM_D1"), tr("GEOM_D2"), myGrp3, aLayout, RadioButton31, SpinBox31, SpinBox32); + createRadioWg(tr("GEOM_D"), tr("GEOM_ANGLE"), myGrp3, aLayout, RadioButton32, SpinBox33, SpinBox34); - myRadioButton[ RadioButton31] = new QRadioButton( aSpinGrp1 ); - - new QLabel( tr( "GEOM_D1" ), aSpinGrp1 ); - mySpinBox[ SpinBox31 ] = new DlgRef_SpinBox( aSpinGrp1 ); - - new QLabel( tr( "GEOM_D2" ), aSpinGrp1 ); - mySpinBox[ SpinBox32 ] = new DlgRef_SpinBox( aSpinGrp1 ); - - aSpinGrp2 = new QGroupBox( 1, Qt::Vertical, myGrp3 ); - aSpinGrp2->setFrameStyle( QFrame::NoFrame ); - aSpinGrp2->setInsideMargin( 0 ); - - myRadioButton[ RadioButton32] = new QRadioButton( aSpinGrp2 ); - - new QLabel( tr( "GEOM_D" ), aSpinGrp2 ); - mySpinBox[ SpinBox33 ] = new DlgRef_SpinBox( aSpinGrp2 ); - - new QLabel( tr( "GEOM_ANGLE" ), aSpinGrp2 ); - mySpinBox[ SpinBox34 ] = new DlgRef_SpinBox( aSpinGrp2 ); - - ( new QLabel( myGrp3 ) )->setSizePolicy( - QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); + aLayout->setRowStretch(aLayout->rowCount(), 10); // Create fourth group - myGrp4 = new QGroupBox( 1, Qt::Horizontal, tr( "GEOM_CHAMFER_EDGE" ), this ); + myGrp4 = new QGroupBox(tr("GEOM_CHAMFER_EDGE"), centralWidget()); - QGroupBox* aSelGrp4 = new QGroupBox( 3, Qt::Horizontal, myGrp4 ); - aSelGrp4->setFrameStyle( QFrame::NoFrame ); - aSelGrp4->setInsideMargin( 0 ); + aLayout = new QGridLayout(myGrp4); + aLayout->setMargin(9); aLayout->setSpacing(6); - createSelWg( tr( "GEOM_MAIN_OBJECT" ), iconSelect, aSelGrp4, MainObj4 ); - createSelWg( tr( "SELECTED_EDGE" ), iconSelect, aSelGrp4, Edges ); + createSelWg(tr("GEOM_MAIN_OBJECT"), iconSelect, myGrp4, aLayout, MainObj4); + createSelWg(tr("SELECTED_EDGE"), iconSelect, myGrp4, aLayout, Edges); - aSpinGrp1 = new QGroupBox( 1, Qt::Vertical, myGrp4 ); - aSpinGrp1->setFrameStyle( QFrame::NoFrame ); - aSpinGrp1->setInsideMargin( 0 ); + createRadioWg(tr("GEOM_D1"), tr("GEOM_D2"), myGrp4, aLayout, RadioButton41, SpinBox41, SpinBox42); + createRadioWg(tr("GEOM_D"), tr("GEOM_ANGLE"), myGrp4, aLayout, RadioButton42, SpinBox43, SpinBox44); - myRadioButton[ RadioButton41] = new QRadioButton( aSpinGrp1 ); - - new QLabel( tr( "GEOM_D1" ), aSpinGrp1 ); - mySpinBox[ SpinBox41 ] = new DlgRef_SpinBox( aSpinGrp1 ); - - new QLabel( tr( "GEOM_D2" ), aSpinGrp1 ); - mySpinBox[ SpinBox42 ] = new DlgRef_SpinBox( aSpinGrp1 ); - - aSpinGrp2 = new QGroupBox( 1, Qt::Vertical, myGrp4 ); - aSpinGrp2->setFrameStyle( QFrame::NoFrame ); - aSpinGrp2->setInsideMargin( 0 ); - - myRadioButton[ RadioButton42] = new QRadioButton( aSpinGrp2 ); - - new QLabel( tr( "GEOM_D" ), aSpinGrp2 ); - mySpinBox[ SpinBox43 ] = new DlgRef_SpinBox( aSpinGrp2 ); - - new QLabel( tr( "GEOM_ANGLE" ), aSpinGrp2 ); - mySpinBox[ SpinBox44 ] = new DlgRef_SpinBox( aSpinGrp2 ); - - ( new QLabel( myGrp4 ) )->setSizePolicy( - QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); + aLayout->setRowStretch(aLayout->rowCount(), 10); // Add groups to layout - Layout1->addWidget( myGrp1, 2, 0 ); - Layout1->addWidget( myGrp2, 2, 0 ); - Layout1->addWidget( myGrp3, 2, 0 ); - Layout1->addWidget( myGrp4, 2, 0 ); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(myGrp1); + layout->addWidget(myGrp2); + layout->addWidget(myGrp3); + layout->addWidget(myGrp4); + /***************************************************************/ // Set range of spinboxes - double SpecificStep = 10.0; - QMap< int, DlgRef_SpinBox* >::iterator anIter; - for ( anIter = mySpinBox.begin(); anIter != mySpinBox.end(); ++anIter ) - { - anIter.data()->RangeStepAndValidator( 0.001, COORD_MAX, SpecificStep, 3 ); - if ( anIter.key() == SpinBox44 || anIter.key() == SpinBox34 || anIter.key() == SpinBox24 ) - anIter.data()->RangeStepAndValidator( 0.001, 89.999, 5, 0 ); - } + QMap< int, SalomeApp_DoubleSpinBox* >::iterator anIter; + for (anIter = mySpinBox.begin(); anIter != mySpinBox.end(); ++anIter) { + if (anIter.key() == SpinBox44 || anIter.key() == SpinBox34 || anIter.key() == SpinBox24) + initSpinBox(anIter.value(), 0.001, 89.999, 5, 0); + else + initSpinBox(anIter.value(), 0.001, COORD_MAX, SpecificStep, 3); + } setHelpFileName("chamfer_operation_page.html"); - /* Initialisations */ - RadioButtonPressed(); + // Initialisation Init(); + myRadioButton[ RadioButton21 ]->click(); } - //================================================================================= // function : ~OperationGUI_ChamferDlg() // purpose : Destroys the object and frees any allocated resources @@ -241,180 +169,205 @@ OperationGUI_ChamferDlg::~OperationGUI_ChamferDlg() { } - //================================================================================= // function : Init() // purpose : //================================================================================= void OperationGUI_ChamferDlg::Init() { - myConstructorId = -1; - reset(); - RadioButton1->setChecked( true ); - myEditCurrentArgument = mySelName[ MainObj1 ]; + // Set Initial values of spinboxes + QMap< int, SalomeApp_DoubleSpinBox* >::iterator anIter; + for (anIter = mySpinBox.begin(); anIter != mySpinBox.end(); ++anIter) + anIter.value()->setValue(5); - /* signals and slots connections */ + // Clear line edits + QMap< int, QLineEdit* >::iterator anIterLE; + for (anIterLE = mySelName.begin(); anIterLE != mySelName.end(); ++anIterLE) + anIterLE.value()->setText(""); + + myShape = GEOM::GEOM_Object::_nil(); + + myFaces.Clear(); + myEdges.Clear(); + myFace[ Face1 ] = -1; + myFace[ Face2 ] = -1; + + // signals and slots connections // main buttons - connect( buttonOk , SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); - connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk() )); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); // group box - connect( GroupConstructors, SIGNAL( clicked( int ) ), - this, SLOT( ConstructorsClicked( int ) ) ); + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); // push buttons QMap< int, QPushButton* >::iterator anIterBtn; - for ( anIterBtn = mySelBtn.begin(); anIterBtn != mySelBtn.end(); ++anIterBtn ) - connect( anIterBtn.data(), SIGNAL( clicked() ), - this, SLOT( SetEditCurrentArgument() ) ); + for (anIterBtn = mySelBtn.begin(); anIterBtn != mySelBtn.end(); ++anIterBtn) + connect(anIterBtn.value(), SIGNAL(clicked()), + this, SLOT(SetEditCurrentArgument())); // line edits QMap< int, QLineEdit* >::iterator anIterLE2; - for ( anIterLE2 = mySelName.begin(); anIterLE2 != mySelName.end(); ++anIterLE2 ) - connect( anIterLE2.data(), SIGNAL( returnPressed() ), - this, SLOT( LineEditReturnPressed() ) ); + for (anIterLE2 = mySelName.begin(); anIterLE2 != mySelName.end(); ++anIterLE2) + connect(anIterLE2.value(), SIGNAL(returnPressed()), + this, SLOT(LineEditReturnPressed())); // spin boxes - QMap< int, DlgRef_SpinBox* >::iterator anIterSpin; - for ( anIterSpin = mySpinBox.begin(); anIterSpin != mySpinBox.end(); ++anIterSpin ) - connect( anIterSpin.data(), SIGNAL( valueChanged( double ) ), - this, SLOT( ValueChangedInSpinBox( double ) ) ); + QMap< int, SalomeApp_DoubleSpinBox* >::iterator anIterSpin; + for (anIterSpin = mySpinBox.begin(); anIterSpin != mySpinBox.end(); ++anIterSpin) + connect(anIterSpin.value(), SIGNAL(valueChanged(double)), + this, SLOT(ValueChangedInSpinBox(double))); // radio buttons QMap< int, QRadioButton* >::iterator anIterRadio; - for ( anIterRadio = myRadioButton.begin(); anIterRadio != myRadioButton.end(); ++anIterRadio ) - connect( anIterRadio.data(), SIGNAL( clicked() ), - this, SLOT( RadioButtonPressed() ) ); + for (anIterRadio = myRadioButton.begin(); anIterRadio != myRadioButton.end(); ++anIterRadio) + connect(anIterRadio.value(), SIGNAL(clicked()), + this, SLOT(RadioButtonPressed())); - // selection - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + initName(tr("GEOM_CHAMFER")); - initName( tr( "GEOM_CHAMFER" ) ); - - myGrp4->hide(); - myGrp3->hide(); - myGrp2->hide(); - myGrp1->show(); + myConstructorId = -1; + ConstructorsClicked(0); } - //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void OperationGUI_ChamferDlg::ConstructorsClicked( int constructorId ) +void OperationGUI_ChamferDlg::ConstructorsClicked (int constructorId) { // Activate next widget - if (myGeomGUI->getApp()->desktop()->activeWindow()->getViewManager()->getType() - != OCCViewer_Viewer::Type()) - { - RadioButton1->setChecked( true ); + if (myGeomGUI->getApp()->desktop()->activeWindow()->getViewManager()->getType() + != OCCViewer_Viewer::Type()) { + mainFrame()->RadioButton1->setChecked(true); return; } if (myConstructorId == constructorId) return; + //disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + // Get values from previous widget - double D1 = 5, D2 = 5, D = 5, Angle = 5; - if ( myConstructorId == 0 ) - D1 = D2 = mySpinBox[ SpinBox1 ]->GetValue(); - else if ( myConstructorId == 1 ) - { - D1 = mySpinBox[ SpinBox21 ]->GetValue(); - D2 = mySpinBox[ SpinBox22 ]->GetValue(); - D = mySpinBox[ SpinBox23 ]->GetValue(); - Angle = mySpinBox[ SpinBox24 ]->GetValue(); + QString D1 = "5", D2 = "5", D = "5", Angle = "5"; + if (myConstructorId == 0) + D1 = D2 = mySpinBox[ SpinBox1 ]->text(); + else if (myConstructorId == 1) { + D1 = mySpinBox[ SpinBox21 ]->text(); + D2 = mySpinBox[ SpinBox22 ]->text(); + D = mySpinBox[ SpinBox23 ]->text(); + Angle = mySpinBox[ SpinBox24 ]->text(); } - else if ( myConstructorId == 2 ) - { - D1 = mySpinBox[ SpinBox31 ]->GetValue(); - D2 = mySpinBox[ SpinBox32 ]->GetValue(); - D = mySpinBox[ SpinBox33 ]->GetValue(); - Angle = mySpinBox[ SpinBox34 ]->GetValue(); + else if (myConstructorId == 2) { + D1 = mySpinBox[ SpinBox31 ]->text(); + D2 = mySpinBox[ SpinBox32 ]->text(); + D = mySpinBox[ SpinBox33 ]->text(); + Angle = mySpinBox[ SpinBox34 ]->text(); } - else if ( myConstructorId == 3 ) - { - D1 = mySpinBox[ SpinBox41 ]->GetValue(); - D2 = mySpinBox[ SpinBox42 ]->GetValue(); - D = mySpinBox[ SpinBox43 ]->GetValue(); - Angle = mySpinBox[ SpinBox44 ]->GetValue(); + else if (myConstructorId == 3) { + D1 = mySpinBox[ SpinBox41 ]->text(); + D2 = mySpinBox[ SpinBox42 ]->text(); + D = mySpinBox[ SpinBox43 ]->text(); + Angle = mySpinBox[ SpinBox44 ]->text(); } myConstructorId = constructorId; - switch ( constructorId ) - { - case 0: - myGrp1->show(); - myGrp2->hide(); - myGrp3->hide(); - myGrp4->hide(); - mySpinBox[ SpinBox1 ]->SetValue( D1 ); + switch (constructorId) { + case 0: + myGrp2->hide(); + myGrp3->hide(); + myGrp4->hide(); + myGrp1->show(); + mySpinBox[ SpinBox1 ]->setText(D1); break; - case 1: - myGrp1->hide(); - myGrp2->show(); - myGrp3->hide(); - myGrp4->hide(); - mySpinBox[ SpinBox21 ]->SetValue( D1 ); - mySpinBox[ SpinBox22 ]->SetValue( D2 ); - mySpinBox[ SpinBox23 ]->SetValue( D ); - mySpinBox[ SpinBox24 ]->SetValue( Angle ); + case 1: + myGrp1->hide(); + myGrp3->hide(); + myGrp4->hide(); + myGrp2->show(); + mySpinBox[ SpinBox21 ]->setText(D1); + mySpinBox[ SpinBox22 ]->setText(D2); + mySpinBox[ SpinBox23 ]->setText(D); + mySpinBox[ SpinBox24 ]->setText(Angle); break; - case 2: - myGrp1->hide(); - myGrp2->hide(); - myGrp3->show(); - myGrp4->hide(); - mySpinBox[ SpinBox31 ]->SetValue( D1 ); - mySpinBox[ SpinBox32 ]->SetValue( D2 ); - mySpinBox[ SpinBox33 ]->SetValue( D ); - mySpinBox[ SpinBox34 ]->SetValue( Angle ); + case 2: + myGrp1->hide(); + myGrp2->hide(); + myGrp4->hide(); + myGrp3->show(); + mySpinBox[ SpinBox31 ]->setText(D1); + mySpinBox[ SpinBox32 ]->setText(D2); + mySpinBox[ SpinBox32 ]->setText(D2); + mySpinBox[ SpinBox33 ]->setText(D); + mySpinBox[ SpinBox34 ]->setText(Angle); break; - case 3: - myGrp1->hide(); - myGrp2->hide(); - myGrp3->hide(); - myGrp4->show(); - mySpinBox[ SpinBox41 ]->SetValue( D1 ); - mySpinBox[ SpinBox42 ]->SetValue( D2 ); - mySpinBox[ SpinBox43 ]->SetValue( D ); - mySpinBox[ SpinBox44 ]->SetValue( Angle ); + case 3: + myGrp1->hide(); + myGrp2->hide(); + myGrp3->hide(); + myGrp4->show(); + mySpinBox[ SpinBox41 ]->setText(D1); + mySpinBox[ SpinBox42 ]->setText(D2); + mySpinBox[ SpinBox43 ]->setText(D); + mySpinBox[ SpinBox44 ]->setText(Angle); break; - default: + default: break; } - if ( constructorId == 0 ) myEditCurrentArgument = mySelName[ MainObj1 ]; - else if ( constructorId == 1 ) myEditCurrentArgument = mySelName[ MainObj2 ]; - else if ( constructorId == 2 ) myEditCurrentArgument = mySelName[ MainObj3 ]; - else myEditCurrentArgument = mySelName[ MainObj4 ]; + if (constructorId == 0) mySelBtn[ MainObj1 ]->click(); + else if (constructorId == 1) mySelBtn[ MainObj2 ]->click(); + else if (constructorId == 2) mySelBtn[ MainObj3 ]->click(); + else mySelBtn[ MainObj4 ]->click(); - activateSelection(); enableWidgets(); - - if ( !myShape->_is_nil() ) - { - myEditCurrentArgument->setText( GEOMBase::GetName( myShape ) ); - GEOMBase_Skeleton::LineEditReturnPressed(); + + if (myInitial) { + myInitial = false; + SelectionIntoArgument(); } - else - myEditCurrentArgument->setText( "" ); + else { + if (!myShape->_is_nil()) { + myEditCurrentArgument->setText(GEOMBase::GetName(myShape)); + GEOMBase_Skeleton::LineEditReturnPressed(); + switch (getConstructorId()) { + case 1: + if (myFace[ Face1 ] == -1) + mySelBtn[ Face1 ]->click(); + break; + case 2: + if (myFaces.Extent() == 0) + mySelBtn[ Faces ]->click(); + break; + case 3: + if (myEdges.Extent() == 0) + mySelBtn[ Edges ]->click(); + break; + default: + break; + } + } + else { + myEditCurrentArgument->setText(""); + } - displayPreview(); + displayPreview(); + } + + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); } - //================================================================================= // function : ClickOnOk() // purpose : //================================================================================= void OperationGUI_ChamferDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } @@ -424,194 +377,203 @@ void OperationGUI_ChamferDlg::ClickOnOk() //================================================================================= bool OperationGUI_ChamferDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection has changed +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void OperationGUI_ChamferDlg::SelectionIntoArgument() { erasePreview(); - myEditCurrentArgument->setText( "" ); + myEditCurrentArgument->setText(""); // Get index of current selection focus int aCurrFocus = -1; QMap< int, QLineEdit* >::iterator anIter; - for ( anIter = mySelName.begin(); anIter != mySelName.end(); ++anIter ) - if ( myEditCurrentArgument == anIter.data() ) - { + for (anIter = mySelName.begin(); anIter != mySelName.end(); ++anIter) { + if (myEditCurrentArgument == anIter.value()) { aCurrFocus = anIter.key(); break; } + } + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); // If selection of main object is activated - if ( aCurrFocus == MainObj1 || aCurrFocus == MainObj2 || aCurrFocus == MainObj3 || aCurrFocus == MainObj4) + if (aCurrFocus == MainObj1 || aCurrFocus == MainObj2 || aCurrFocus == MainObj3 || aCurrFocus == MainObj4) { - if ( IObjectCount() == 1 ) - { + myShape = GEOM::GEOM_Object::_nil(); + if (aSelList.Extent() == 1) { Standard_Boolean aResult = Standard_False; GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); - if ( aResult && !anObj->_is_nil() ) - { + if (aResult && !anObj->_is_nil()) { myShape = anObj; - mySelName[ aCurrFocus ]->setText( GEOMBase::GetName( anObj ) ); + myEditCurrentArgument->setText(GEOMBase::GetName(anObj)); displayPreview(); - enableWidgets(); - return; } } - myShape = GEOM::GEOM_Object::_nil(); enableWidgets(); } // If face selection of second tab is activated - else if ( aCurrFocus == Face1 || aCurrFocus == Face2 ) + else if (aCurrFocus == Face1 || aCurrFocus == Face2) { - if ( IObjectCount() == 1 ) - { + myFace[ aCurrFocus ] = -1; + if (aSelList.Extent() == 1) { Standard_Boolean aResult = Standard_False; GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); - if ( aResult && !anObj->_is_nil() ) - { + if (aResult && !anObj->_is_nil()) { TColStd_IndexedMapOfInteger anIndexes; - ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->GetIndexes( firstIObject(), anIndexes ); + aSelMgr->GetIndexes(aSelList.First(), anIndexes); - if ( anIndexes.Extent() == 1 ) - { - int anIndex = anIndexes( 1 ); - QString aFaceName = QString( GEOMBase::GetName( anObj ) ) + ":%1"; - myEditCurrentArgument->setText( aFaceName.arg( anIndex ) ); + if (anIndexes.Extent() == 1) { + int anIndex = anIndexes(1); + QString aFaceName = QString(GEOMBase::GetName(anObj)) + ":%1"; + myEditCurrentArgument->setText(aFaceName.arg(anIndex)); myFace[ aCurrFocus ] = anIndex; - displayPreview(); - return; + displayPreview(); } } } - - myFace[ aCurrFocus ] = -1; } // If face selection of third or fourth tab is activated - else if ( aCurrFocus == Faces || aCurrFocus == Edges ) - { - if ( IObjectCount() == 1 ) - { + else if (aCurrFocus == Faces || aCurrFocus == Edges) { + if (aCurrFocus == Faces) myFaces.Clear(); + else myEdges.Clear(); + if (aSelList.Extent() == 1) { Standard_Boolean aResult = Standard_False; GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); - if ( aResult && !anObj->_is_nil() ) - { - TColStd_IndexedMapOfInteger anIndexes; - ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->GetIndexes( firstIObject(), anIndexes ); + if (aResult && !anObj->_is_nil()) { + TColStd_IndexedMapOfInteger anIndexes; + aSelMgr->GetIndexes(aSelList.First(), anIndexes); - if ( anIndexes.Extent() > 0 ) - { - QString aName; - if ( anIndexes.Extent() == 1 ) - { - int anIndex = anIndexes( 1 ); + if (anIndexes.Extent() > 0) { + QString aName; + if (anIndexes.Extent() == 1) { + int anIndex = anIndexes(1); - aName = QString( GEOMBase::GetName( anObj ) ) + QString( ":%1" ).arg( anIndex ); - } - else - aName = tr( "GEOM_MEN_POPUP_NAME" ).arg( anIndexes.Extent() ); + aName = QString(GEOMBase::GetName(anObj)) + QString(":%1").arg(anIndex); + } + else { + aName = tr("GEOM_MEN_POPUP_NAME").arg(anIndexes.Extent()); + } - myEditCurrentArgument->setText( aName ); - int aConstructorId = getConstructorId(); - if ( aConstructorId == 2) - myFaces = anIndexes; - else if (aConstructorId == 3) - myEdges = anIndexes; - - displayPreview(); - return; - } + myEditCurrentArgument->setText(aName); + int aConstructorId = getConstructorId(); + if (aConstructorId == 2) + myFaces = anIndexes; + else if (aConstructorId == 3) + myEdges = anIndexes; + + displayPreview(); + } } } - myFaces.Clear(); - myEdges.Clear(); + } + + // clear selection + if (aCurrFocus != Faces && aCurrFocus != Edges) { + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + } + + switch (getConstructorId()) { + case 1: + if (aCurrFocus == MainObj2) { + if (!myShape->_is_nil() && myFace[ Face1 ] == -1) + mySelBtn[ Face1 ]->click(); + } + else if (aCurrFocus == Face1) { + if (myFace[ Face1 ] != -1 && myFace[ Face2 ] == -1) + mySelBtn[ Face2 ]->click(); + } + else if (aCurrFocus == Face2) { + if (myFace[ Face2 ] != -1 && myShape->_is_nil()) + mySelBtn[ MainObj2 ]->click(); + } + break; + case 2: + if (aCurrFocus == MainObj3) { + if (!myShape->_is_nil() && myFaces.Extent() == 0) + mySelBtn[ Faces ]->click(); + } + break; + case 3: + if (aCurrFocus == MainObj4) { + if (!myShape->_is_nil() && myEdges.Extent() == 0) + mySelBtn[ Edges ]->click(); + } + break; + default: + break; } } - -//================================================================================= -// function : LineEditReturnPressed() -// purpose : -//================================================================================= -void OperationGUI_ChamferDlg::LineEditReturnPressed() -{ - QLineEdit* aSender = ( QLineEdit* )sender(); - - QMap< int, QLineEdit* >::iterator anIterLE; - for ( anIterLE = mySelName.begin(); anIterLE != mySelName.end(); ++anIterLE ) - if ( anIterLE.data() == aSender ) - myEditCurrentArgument = anIterLE.data(); - - GEOMBase_Skeleton::LineEditReturnPressed(); -} - -//================================================================================= -// function : RadioButtonPressed() -// purpose : -//================================================================================= -void OperationGUI_ChamferDlg::RadioButtonPressed() -{ - bool flag; - flag = ( myRadioButton[ RadioButton21 ]->isChecked() && - myRadioButton[ RadioButton31 ]->isChecked() && - myRadioButton[ RadioButton41 ]->isChecked() ); - - myRadioButton[ RadioButton21 ]->setChecked(!flag); - myRadioButton[ RadioButton31 ]->setChecked(!flag); - myRadioButton[ RadioButton41 ]->setChecked(!flag); - myRadioButton[ RadioButton22 ]->setChecked(flag); - myRadioButton[ RadioButton32 ]->setChecked(flag); - myRadioButton[ RadioButton42 ]->setChecked(flag); - mySpinBox[ SpinBox21 ]->setDisabled(flag); - mySpinBox[ SpinBox22 ]->setDisabled(flag); - mySpinBox[ SpinBox31 ]->setDisabled(flag); - mySpinBox[ SpinBox32 ]->setDisabled(flag); - mySpinBox[ SpinBox41 ]->setDisabled(flag); - mySpinBox[ SpinBox42 ]->setDisabled(flag); - mySpinBox[ SpinBox23 ]->setDisabled(!flag); - mySpinBox[ SpinBox24 ]->setDisabled(!flag); - mySpinBox[ SpinBox33 ]->setDisabled(!flag); - mySpinBox[ SpinBox34 ]->setDisabled(!flag); - mySpinBox[ SpinBox43 ]->setDisabled(!flag); - mySpinBox[ SpinBox44 ]->setDisabled(!flag); - displayPreview(); -} - - //================================================================================= // function : SetEditCurrentArgument() // purpose : //================================================================================= void OperationGUI_ChamferDlg::SetEditCurrentArgument() { - QPushButton* aSender = ( QPushButton* )sender(); + QPushButton* send = (QPushButton*)sender(); QMap< int, QPushButton* >::iterator anIter; - for ( anIter = mySelBtn.begin(); anIter != mySelBtn.end(); ++anIter ) - if ( anIter.data() == aSender ) - { + for (anIter = mySelBtn.begin(); anIter != mySelBtn.end(); ++anIter) { + if (anIter.value() == send) { mySelName[ anIter.key() ]->setFocus(); myEditCurrentArgument = mySelName[ anIter.key() ]; } + else { + anIter.value()->setDown(false); + mySelName[ anIter.key() ]->setEnabled(false); + } + } + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); activateSelection(); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); } +//================================================================================= +// function : LineEditReturnPressed() +// purpose : +//================================================================================= +void OperationGUI_ChamferDlg::LineEditReturnPressed() +{ + QLineEdit* send = (QLineEdit*)sender(); + + QMap< int, QLineEdit* >::iterator anIterLE; + for (anIterLE = mySelName.begin(); anIterLE != mySelName.end(); ++anIterLE) + if (anIterLE.value() == send) + myEditCurrentArgument = anIterLE.value(); + + GEOMBase_Skeleton::LineEditReturnPressed(); +} //================================================================================= // function : ActivateThisDialog() @@ -620,97 +582,75 @@ void OperationGUI_ChamferDlg::SetEditCurrentArgument() void OperationGUI_ChamferDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); - connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT( SelectionIntoArgument() ) ); - - activateSelection(); - displayPreview(); + ConstructorsClicked( getConstructorId() ); } - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void OperationGUI_ChamferDlg::enterEvent(QEvent* e) +void OperationGUI_ChamferDlg::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) this->ActivateThisDialog(); } - //================================================================================= // function : ValueChangedInSpinBox() // purpose : //================================================================================= -void OperationGUI_ChamferDlg::ValueChangedInSpinBox( double newValue ) +void OperationGUI_ChamferDlg::ValueChangedInSpinBox (double) { displayPreview(); } - //================================================================================= // function : createSelWg() // purpose : //================================================================================= -void OperationGUI_ChamferDlg::createSelWg( const QString& theLbl, +void OperationGUI_ChamferDlg::createSelWg (const QString& theLbl, QPixmap& thePix, QWidget* theParent, - const int theId ) + QGridLayout* theLayout, + const int theId) { - new QLabel( theLbl, theParent ); - mySelBtn[ theId ] = new QPushButton( theParent ); - mySelBtn[ theId ]->setPixmap( thePix ); - mySelName[ theId ] = new QLineEdit( theParent ); - mySelName[ theId ]->setReadOnly( true ); + QLabel* lab = new QLabel(theLbl, theParent); + mySelBtn[ theId ] = new QPushButton(theParent); + mySelBtn[ theId ]->setIcon(thePix); + mySelName[ theId ] = new QLineEdit(theParent); + mySelName[ theId ]->setReadOnly(true); + int row = theLayout->rowCount(); + theLayout->addWidget(lab, row, 0); + theLayout->addWidget(mySelBtn[ theId ], row, 1); + theLayout->addWidget(mySelName[ theId ], row, 2, 1, 4); // take into account createRadioWg() } //================================================================================= -// function : reset() +// function : createRadioWg() // purpose : //================================================================================= -void OperationGUI_ChamferDlg::reset() +void OperationGUI_ChamferDlg::createRadioWg(const QString& theLbl1, + const QString& theLbl2, + QWidget* theParent, + QGridLayout* theLayout, + const int theRbId, + const int theSpin1Id, + const int theSpin2Id) { - // Set Initial values of spinboxes - QMap< int, DlgRef_SpinBox* >::iterator anIter; - for ( anIter = mySpinBox.begin(); anIter != mySpinBox.end(); ++anIter ) - anIter.data()->SetValue( 5 ); - - // clear line edits - QMap< int, QLineEdit* >::iterator anIterLE; - for ( anIterLE = mySelName.begin(); anIterLE != mySelName.end(); ++anIterLE ) - anIterLE.data()->setText( "" ); - - // constructor id - int aConstructorId = getConstructorId(); - - if ( aConstructorId == 0 ) myEditCurrentArgument = mySelName[ MainObj1 ]; - else if ( aConstructorId == 1 ) myEditCurrentArgument = mySelName[ MainObj2 ]; - else if ( aConstructorId == 2 ) myEditCurrentArgument = mySelName[ MainObj3 ]; - else myEditCurrentArgument = mySelName[ MainObj4 ]; - - myShape = GEOM::GEOM_Object::_nil(); - - myFaces.Clear(); - myEdges.Clear(); - myFace[ Face1 ] = -1; - myFace[ Face2 ] = -1; - - erasePreview( true ); - - activateSelection(); - - enableWidgets(); -} - -//================================================================================= -// function : getConstructorId() -// purpose : -//================================================================================= -int OperationGUI_ChamferDlg::getConstructorId() const -{ - return GroupConstructors->id( GroupConstructors->selected() ); + myRadioButton[ theRbId ] = new QRadioButton(theParent); + QLabel* lab1 = new QLabel(theLbl1, theParent); + QLabel* lab2 = new QLabel(theLbl2, theParent); + mySpinBox[ theSpin1Id ] = new SalomeApp_DoubleSpinBox(theParent); + mySpinBox[ theSpin2Id ] = new SalomeApp_DoubleSpinBox(theParent); + int row = theLayout->rowCount(); + theLayout->addWidget(myRadioButton[ theRbId ], row, 0); + theLayout->addWidget(lab1, row, 2); + theLayout->addWidget(mySpinBox[ theSpin1Id ], row, 3); + theLayout->addWidget(lab2, row, 4); + theLayout->addWidget(mySpinBox[ theSpin2Id ], row, 5); } //================================================================================= @@ -719,23 +659,27 @@ int OperationGUI_ChamferDlg::getConstructorId() const //================================================================================= void OperationGUI_ChamferDlg::activateSelection() { - if ( !myShape->_is_nil() && - ( myEditCurrentArgument == mySelName[ Face1 ] || - myEditCurrentArgument == mySelName[ Face2 ] || - myEditCurrentArgument == mySelName[ Faces ] ) ) - localSelection( myShape, TopAbs_FACE ); - else if (!myShape->_is_nil() && myEditCurrentArgument == mySelName[ Edges ] ) - localSelection( myShape, TopAbs_EDGE ); - else - { + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + + if (!myShape->_is_nil() && + (myEditCurrentArgument == mySelName[ Face1 ] || + myEditCurrentArgument == mySelName[ Face2 ] || + myEditCurrentArgument == mySelName[ Faces ])) { + localSelection(myShape, TopAbs_FACE); + } + else if (!myShape->_is_nil() && myEditCurrentArgument == mySelName[ Edges ]) { + localSelection(myShape, TopAbs_EDGE); + } + else { TColStd_MapOfInteger aMap; - aMap.Add( GEOM_SHELL ); - aMap.Add( GEOM_SOLID ); - aMap.Add( GEOM_COMPOUND ); - globalSelection( aMap ); + aMap.Add(GEOM_SHELL); + aMap.Add(GEOM_SOLID); + aMap.Add(GEOM_COMPOUND); + globalSelection(aMap); } - SelectionIntoArgument(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); } //================================================================================= @@ -747,40 +691,39 @@ void OperationGUI_ChamferDlg::enableWidgets() int anId = getConstructorId(); bool toEnable = !myShape->_is_nil(); - - if ( anId == 1 ) - { - mySelName[ Face1 ]->setEnabled( toEnable ); - mySelName[ Face2 ]->setEnabled( toEnable ); - mySelBtn[ Face1 ]->setEnabled( toEnable ); - mySelBtn[ Face2 ]->setEnabled( toEnable ); - if ( !toEnable ) + if (anId == 1) + { + //mySelName[ Face1 ]->setEnabled(toEnable); + //mySelName[ Face2 ]->setEnabled(toEnable); + mySelBtn[ Face1 ]->setEnabled(toEnable); + mySelBtn[ Face2 ]->setEnabled(toEnable); + + if (!toEnable) { - mySelName[ Face1 ]->setText( "" ); - mySelName[ Face2 ]->setText( "" ); + mySelName[ Face1 ]->setText(""); + mySelName[ Face2 ]->setText(""); myFace[ Face1 ] = -1; myFace[ Face2 ] = -1; } } - else if ( anId == 2 ) + else if (anId == 2) { - mySelName[ Faces ]->setEnabled( toEnable ); - if ( !toEnable ) - { - mySelName[ Faces ]->setText( "" ); - myFaces = -1; - } + //mySelName[ Faces ]->setEnabled(toEnable); + mySelBtn[ Faces ]->setEnabled(toEnable); + if (!toEnable) { + mySelName[ Faces ]->setText(""); + myFaces.Clear(); + } } - else if ( anId == 3 ) - { - mySelName[ Edges ]->setEnabled( toEnable ); + else if (anId == 3) { + //mySelName[ Edges ]->setEnabled(toEnable); + mySelBtn[ Edges ]->setEnabled(toEnable); - if ( !toEnable ) - { - mySelName[ Edges ]->setText( "" ); - myEdges = -1; - } + if (!toEnable) { + mySelName[ Edges ]->setText(""); + myEdges.Clear(); + } } } @@ -790,20 +733,57 @@ void OperationGUI_ChamferDlg::enableWidgets() //================================================================================= GEOM::GEOM_IOperations_ptr OperationGUI_ChamferDlg::createOperation() { - return getGeomEngine()->GetILocalOperations( getStudyId() ); + return getGeomEngine()->GetILocalOperations(getStudyId()); } + //================================================================================= -// function : ClickOnApply() +// function : isValid() // purpose : Verify validity of input data //================================================================================= -bool OperationGUI_ChamferDlg::isValid( QString& ) +bool OperationGUI_ChamferDlg::isValid (QString& msg) { - switch ( getConstructorId() ) + bool ok = true; + switch (getConstructorId()) { - case 0: return !myShape->_is_nil(); - case 1: return !myShape->_is_nil() && myFace[ Face1 ] > 0 && myFace[ Face2 ] > 0; - case 2: return !myShape->_is_nil() && myFaces.Extent() > 0; - case 3: return !myShape->_is_nil() && myEdges.Extent() > 0; + case 0: + ok = mySpinBox[ SpinBox1 ]->isValid( msg, !IsPreview() ); + return !myShape->_is_nil() && ok; + case 1: + if (myRadioButton[ RadioButton21 ]->isChecked()) + { + ok = mySpinBox[ SpinBox21 ]->isValid( msg, !IsPreview() ) && ok; + ok = mySpinBox[ SpinBox22 ]->isValid( msg, !IsPreview() ) && ok; + } + else + { + ok = mySpinBox[ SpinBox23 ]->isValid( msg, !IsPreview() ) && ok; + ok = mySpinBox[ SpinBox24 ]->isValid( msg, !IsPreview() ) && ok; + } + return !myShape->_is_nil() && myFace[ Face1 ] > 0 && myFace[ Face2 ] > 0 && ok; + case 2: + if (myRadioButton[ RadioButton31 ]->isChecked()) + { + ok = mySpinBox[ SpinBox31 ]->isValid( msg, !IsPreview() ) && ok; + ok = mySpinBox[ SpinBox32 ]->isValid( msg, !IsPreview() ) && ok; + } + else + { + ok = mySpinBox[ SpinBox33 ]->isValid( msg, !IsPreview() ) && ok; + ok = mySpinBox[ SpinBox34 ]->isValid( msg, !IsPreview() ) && ok; + } + return !myShape->_is_nil() && myFaces.Extent() > 0 && ok; + case 3: + if (myRadioButton[ RadioButton41 ]->isChecked()) + { + ok = mySpinBox[ SpinBox41 ]->isValid( msg, !IsPreview() ) && ok; + ok = mySpinBox[ SpinBox42 ]->isValid( msg, !IsPreview() ) && ok; + } + else + { + ok = mySpinBox[ SpinBox43 ]->isValid( msg, !IsPreview() ) && ok; + ok = mySpinBox[ SpinBox44 ]->isValid( msg, !IsPreview() ) && ok; + } + return !myShape->_is_nil() && myEdges.Extent() > 0 && ok; default: return false; } } @@ -812,72 +792,166 @@ bool OperationGUI_ChamferDlg::isValid( QString& ) // function : execute // purpose : //================================================================================= -bool OperationGUI_ChamferDlg::execute( ObjectList& objects ) +bool OperationGUI_ChamferDlg::execute (ObjectList& objects) { + QStringList aParameters; GEOM::GEOM_Object_var anObj; - bool flag = ( myRadioButton[ RadioButton21 ]->isChecked() && - myRadioButton[ RadioButton31 ]->isChecked() && - myRadioButton[ RadioButton41 ]->isChecked() ); + bool flag = (myRadioButton[ RadioButton21 ]->isChecked() && + myRadioButton[ RadioButton31 ]->isChecked() && + myRadioButton[ RadioButton41 ]->isChecked()); int anId = getConstructorId(); - if ( anId == 0 ) - anObj = GEOM::GEOM_ILocalOperations::_narrow( - getOperation() )->MakeChamferAll( myShape, - mySpinBox[ SpinBox1 ]->GetValue() ); - else if ( anId == 1 ) - { - if ( flag ) - anObj = GEOM::GEOM_ILocalOperations::_narrow( - getOperation() )->MakeChamferEdge( myShape, - mySpinBox[ SpinBox21 ]->GetValue(), - mySpinBox[ SpinBox22 ]->GetValue(), - myFace[ Face1 ], - myFace[ Face2 ] ); - else - anObj = GEOM::GEOM_ILocalOperations::_narrow( - getOperation() )->MakeChamferEdgeAD( myShape, - mySpinBox[ SpinBox23 ]->GetValue(), - mySpinBox[ SpinBox24 ]->GetValue() * PI180, - myFace[ Face1 ], - myFace[ Face2 ]); - } - else if ( anId == 2 ) - { - GEOM::ListOfLong_var anArray = new GEOM::ListOfLong; - anArray->length( myFaces.Extent() ); - for ( int i = 1, n = myFaces.Extent(); i <= n; i++ ) - anArray[ i - 1 ] = myFaces( i ); - if ( flag ) - anObj = GEOM::GEOM_ILocalOperations::_narrow( - getOperation() )->MakeChamferFaces( myShape, - mySpinBox[ SpinBox31 ]->GetValue(), - mySpinBox[ SpinBox32 ]->GetValue(), - anArray ); - else - anObj = GEOM::GEOM_ILocalOperations::_narrow( - getOperation() )->MakeChamferFacesAD( myShape, - mySpinBox[ SpinBox33 ]->GetValue(), - mySpinBox[ SpinBox34 ]->GetValue() * PI180, - anArray ); + if (anId == 0) { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeChamferAll(myShape, mySpinBox[ SpinBox1 ]->value()); + if (!anObj->_is_nil()) + aParameters << mySpinBox[ SpinBox1 ]->text(); } - else if ( anId == 3 ) + else if (anId == 1) { + if (flag) { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeChamferEdge(myShape, + mySpinBox[ SpinBox21 ]->value(), + mySpinBox[ SpinBox22 ]->value(), + myFace[ Face1 ], + myFace[ Face2 ]); + if (!anObj->_is_nil()) + { + aParameters << mySpinBox[ SpinBox21 ]->text(); + aParameters << mySpinBox[ SpinBox22 ]->text(); + } + } + else { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeChamferEdgeAD(myShape, + mySpinBox[ SpinBox23 ]->value(), + mySpinBox[ SpinBox24 ]->value() * PI180, + myFace[ Face1 ], + myFace[ Face2 ]); + if (!anObj->_is_nil()) + { + aParameters << mySpinBox[ SpinBox23 ]->text(); + aParameters << mySpinBox[ SpinBox24 ]->text(); + } + } + } + else if (anId == 2) { GEOM::ListOfLong_var anArray = new GEOM::ListOfLong; - anArray->length( myEdges.Extent() ); - for ( int i = 1, n = myEdges.Extent(); i <= n; i++ ) - anArray[ i - 1 ] = myEdges( i ); - if ( flag ) - anObj = GEOM::GEOM_ILocalOperations::_narrow( - getOperation() )->MakeChamferEdges( myShape, mySpinBox[ SpinBox41 ]->GetValue(), - mySpinBox[ SpinBox42 ]->GetValue(), anArray ); - else - anObj = GEOM::GEOM_ILocalOperations::_narrow( - getOperation() )->MakeChamferEdgesAD( myShape, mySpinBox[ SpinBox43 ]->GetValue(), - mySpinBox[ SpinBox44 ]->GetValue() * PI180, anArray ); + anArray->length(myFaces.Extent()); + + for (int i = 1, n = myFaces.Extent(); i <= n; i++) + anArray[ i - 1 ] = myFaces(i); + + if (flag) { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeChamferFaces(myShape, + mySpinBox[ SpinBox31 ]->value(), + mySpinBox[ SpinBox32 ]->value(), + anArray); + if (!anObj->_is_nil()) + { + aParameters << mySpinBox[ SpinBox31 ]->text(); + aParameters << mySpinBox[ SpinBox32 ]->text(); + } + } + else { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeChamferFacesAD(myShape, + mySpinBox[ SpinBox33 ]->value(), + mySpinBox[ SpinBox34 ]->value() * PI180, + anArray); + if (!anObj->_is_nil()) + { + aParameters << mySpinBox[ SpinBox33 ]->text(); + aParameters << mySpinBox[ SpinBox34 ]->text(); + } + } + } + else if (anId == 3) { + GEOM::ListOfLong_var anArray = new GEOM::ListOfLong; + anArray->length(myEdges.Extent()); + for (int i = 1, n = myEdges.Extent(); i <= n; i++) + anArray[ i - 1 ] = myEdges(i); + if (flag) { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeChamferEdges(myShape, + mySpinBox[ SpinBox41 ]->value(), + mySpinBox[ SpinBox42 ]->value(), + anArray); + if (!anObj->_is_nil()) + { + aParameters << mySpinBox[ SpinBox41 ]->text(); + aParameters << mySpinBox[ SpinBox42 ]->text(); + } + } + else { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeChamferEdgesAD(myShape, + mySpinBox[ SpinBox43 ]->value(), + mySpinBox[ SpinBox44 ]->value() * PI180, + anArray); + if (!anObj->_is_nil()) + { + aParameters << mySpinBox[ SpinBox43 ]->text(); + aParameters << mySpinBox[ SpinBox44 ]->text(); + } + } } - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + if (!anObj->_is_nil()) + { + if (!IsPreview()) + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + objects.push_back(anObj._retn()); + } return true; } + +//================================================================================= +// function : RadioButtonPressed() +// purpose : +//================================================================================= +void OperationGUI_ChamferDlg::RadioButtonPressed() +{ + const QObject* s = sender(); + bool flag = s == myRadioButton[ RadioButton21 ] || + s == myRadioButton[ RadioButton31 ] || + s == myRadioButton[ RadioButton41 ]; + + myRadioButton[ RadioButton21 ]->blockSignals(true); + myRadioButton[ RadioButton22 ]->blockSignals(true); + myRadioButton[ RadioButton31 ]->blockSignals(true); + myRadioButton[ RadioButton32 ]->blockSignals(true); + myRadioButton[ RadioButton41 ]->blockSignals(true); + myRadioButton[ RadioButton42 ]->blockSignals(true); + + myRadioButton[ RadioButton21 ]->setChecked(flag); + myRadioButton[ RadioButton31 ]->setChecked(flag); + myRadioButton[ RadioButton41 ]->setChecked(flag); + myRadioButton[ RadioButton22 ]->setChecked(!flag); + myRadioButton[ RadioButton32 ]->setChecked(!flag); + myRadioButton[ RadioButton42 ]->setChecked(!flag); + mySpinBox[ SpinBox21 ]->setEnabled(flag); + mySpinBox[ SpinBox22 ]->setEnabled(flag); + mySpinBox[ SpinBox31 ]->setEnabled(flag); + mySpinBox[ SpinBox32 ]->setEnabled(flag); + mySpinBox[ SpinBox41 ]->setEnabled(flag); + mySpinBox[ SpinBox42 ]->setEnabled(flag); + mySpinBox[ SpinBox23 ]->setEnabled(!flag); + mySpinBox[ SpinBox24 ]->setEnabled(!flag); + mySpinBox[ SpinBox33 ]->setEnabled(!flag); + mySpinBox[ SpinBox34 ]->setEnabled(!flag); + mySpinBox[ SpinBox43 ]->setEnabled(!flag); + mySpinBox[ SpinBox44 ]->setEnabled(!flag); + + myRadioButton[ RadioButton21 ]->blockSignals(false); + myRadioButton[ RadioButton22 ]->blockSignals(false); + myRadioButton[ RadioButton31 ]->blockSignals(false); + myRadioButton[ RadioButton32 ]->blockSignals(false); + myRadioButton[ RadioButton41 ]->blockSignals(false); + myRadioButton[ RadioButton42 ]->blockSignals(false); + + displayPreview(); +} diff --git a/src/OperationGUI/OperationGUI_ChamferDlg.h b/src/OperationGUI/OperationGUI_ChamferDlg.h index 41669752a..dfbe25d92 100644 --- a/src/OperationGUI/OperationGUI_ChamferDlg.h +++ b/src/OperationGUI/OperationGUI_ChamferDlg.h @@ -1,37 +1,43 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : OperationGUI_ChamferDlg.h -// Author : Damien COQUERET -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_ChamferDlg.h +// Author : Damien COQUERET, Open CASCADE S.A.S. +// +#ifndef OPERATIONGUI_CHAMFERDLG_H +#define OPERATIONGUI_CHAMFERDLG_H -#ifndef DIALOGBOX_CHAMFER_H -#define DIALOGBOX_CHAMFER_H +#include -#include "GEOMBase_Skeleton.h" #include -class DlgRef_SpinBox; +#include + +class SalomeApp_DoubleSpinBox; +class QGroupBox; +class QPushButton; +class QLineEdit; +class QGridLayout; +class QRadioButton; //================================================================================= // class : OperationGUI_ChamferDlg @@ -39,7 +45,7 @@ class DlgRef_SpinBox; //================================================================================= class OperationGUI_ChamferDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT enum { MainObj1, MainObj2, Face1, Face2, MainObj3, Faces, MainObj4, Edges}; enum { SpinBox1, @@ -49,53 +55,58 @@ class OperationGUI_ChamferDlg : public GEOMBase_Skeleton enum { RadioButton21, RadioButton22, RadioButton31, RadioButton32, RadioButton41, RadioButton42 }; + public: - OperationGUI_ChamferDlg(GeometryGUI* theGeometryGUI, QWidget* parent); + OperationGUI_ChamferDlg( GeometryGUI*, QWidget* ); virtual ~OperationGUI_ChamferDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void RadioButtonPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ValueChangedInSpinBox( double newValue ); - void ConstructorsClicked( int constructorId ); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void RadioButtonPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ValueChangedInSpinBox( double ); + void ConstructorsClicked( int ); private: - void Init(); - void enterEvent( QEvent* e ); - void reset(); - void createSelWg( const QString&, QPixmap&, QWidget*, const int ); - int getConstructorId() const; - void activateSelection(); - void enableWidgets(); - + void Init(); + void enterEvent( QEvent* ); + void createSelWg( const QString&, QPixmap&, QWidget*, + QGridLayout*, const int ); + void createRadioWg( const QString&, const QString&, QWidget*, + QGridLayout*, const int, const int, const int ); + void activateSelection(); + void enableWidgets(); + private: - int myConstructorId; + int myConstructorId; + + GEOM::GEOM_Object_var myShape; + QMap< int, int > myFace; // indexes of faces from second tab ( Face1,2 ) + TColStd_IndexedMapOfInteger myFaces; // indexes of faces from first tab ( Faces ) + TColStd_IndexedMapOfInteger myEdges; // indexes of edges from fourth tab (Edges) - GEOM::GEOM_Object_var myShape; - QMap< int, int > myFace; // indexes of faces from second tab ( Face1,2 ) - TColStd_IndexedMapOfInteger myFaces; // indexes of faces from first tab ( Faces ) - TColStd_IndexedMapOfInteger myEdges; // indexes of edges from fourth tab (Edges) - - QFrame* myGrp1; - QFrame* myGrp2; - QFrame* myGrp3; - QFrame* myGrp4; - - QMap< int, QPushButton* > mySelBtn; - QMap< int, QLineEdit* > mySelName; - QMap< int, DlgRef_SpinBox* > mySpinBox; - QMap< int, QRadioButton* > myRadioButton; + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + QGroupBox* myGrp1; + QGroupBox* myGrp2; + QGroupBox* myGrp3; + QGroupBox* myGrp4; + + QMap< int, QPushButton* > mySelBtn; + QMap< int, QLineEdit* > mySelName; + QMap< int, SalomeApp_DoubleSpinBox* > mySpinBox; + QMap< int, QRadioButton* > myRadioButton; }; -#endif // DIALOGBOX_CHAMFER_H +#endif // OPERATIONGUI_CHAMFERDLG_H diff --git a/src/OperationGUI/OperationGUI_ClippingDlg.cxx b/src/OperationGUI/OperationGUI_ClippingDlg.cxx index 7f4d49762..b24298447 100644 --- a/src/OperationGUI/OperationGUI_ClippingDlg.cxx +++ b/src/OperationGUI/OperationGUI_ClippingDlg.cxx @@ -1,122 +1,109 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_ClippingDlg.cxx +// Author : Michael Zorin, Open CASCADE S.A.S. (mikhail.zorin@opencascade.com) // -// File : OperationGUI_ClippingDlg.cxx -// Author : Michael Zorin -// Module : GEOM -// $Header$ - #include "OperationGUI_ClippingDlg.h" -#include "DlgRef_SpinBox.h" -#include "SUIT_Session.h" -#include "SUIT_ViewWindow.h" -#include "SVTK_ViewWindow.h" -#include "SVTK_ViewModel.h" +#include +#include +#include +#include -#include "OCCViewer_ViewWindow.h" -#include "OCCViewer_ViewPort3d.h" +#include +#include +#include +#include +#include -#include "utilities.h" +#include +#include +#include + +#include + +// OCC Includes #include #include -// QT Includes -#include -#include -#include -#include -#include - // VTK Includes -#include "VTKViewer.h" #include #include //================================================================================= // class : OperationGUI_ClippingDlg() -// purpose : +// purpose : //================================================================================= -OperationGUI_ClippingDlg::OperationGUI_ClippingDlg(GeometryGUI* theGeometryGUI, QWidget* parent) - : GEOMBase_Skeleton(theGeometryGUI, parent, "OperationGUI_ClippingDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +OperationGUI_ClippingDlg::OperationGUI_ClippingDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) + : GEOMBase_Skeleton( theGeometryGUI, parent, false ) { - setCaption( tr( "Change clipping range" ) ); + setWindowTitle( tr( "Change clipping range" ) ); - GroupConstructors->close(); - GroupBoxName->close(); + mainFrame()->GroupConstructors->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->GroupConstructors->close(); + mainFrame()->GroupBoxName->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->GroupBoxName->close(); /***************************************************************/ - GroupArguments = new QGroupBox( this, "GroupArguments" ); - GroupArguments->setColumnLayout(0, Qt::Vertical ); - GroupArguments->layout()->setSpacing( 0 ); - GroupArguments->layout()->setMargin( 0 ); - QGridLayout* GroupArgumentsLayout = new QGridLayout( GroupArguments->layout() ); - GroupArgumentsLayout->setAlignment( Qt::AlignTop ); + GroupArguments = new QGroupBox( centralWidget() ); + QGridLayout* GroupArgumentsLayout = new QGridLayout( GroupArguments ); GroupArgumentsLayout->setSpacing( 6 ); - GroupArgumentsLayout->setMargin( 11 ); + GroupArgumentsLayout->setMargin( 9 ); // Controls - TextLabelNear = new QLabel( GroupArguments, "TextLabelNear" ); - TextLabelNear->setText( tr( "Near" ) ); - TextLabelNear->setFixedWidth(74); + TextLabelNear = new QLabel( tr( "Near" ), GroupArguments ); GroupArgumentsLayout->addWidget( TextLabelNear, 0, 0 ); - SpinBox_Near = new DlgRef_SpinBox( GroupArguments, "SpinBox_Near"); + SpinBox_Near = new SalomeApp_DoubleSpinBox( COORD_MIN, COORD_MAX, 10.0, 3, 10, GroupArguments ); GroupArgumentsLayout->addWidget( SpinBox_Near, 0, 1 ); - TextLabelFar = new QLabel( GroupArguments, "TextLabelFar" ); - TextLabelFar->setText( tr( "Far" ) ); - TextLabelFar->setFixedWidth(74); + TextLabelFar = new QLabel( tr( "Far" ), GroupArguments ); GroupArgumentsLayout->addWidget( TextLabelFar, 0, 2 ); - SpinBox_Far = new DlgRef_SpinBox( GroupArguments, "SpinBox_Far"); + SpinBox_Far = new SalomeApp_DoubleSpinBox( COORD_MIN, COORD_MAX, 10.0, 3, 10, GroupArguments ); GroupArgumentsLayout->addWidget( SpinBox_Far, 0, 3 ); - resetButton = new QPushButton( GroupArguments, "resetButton" ); - resetButton->setText( tr( "Reset" ) ); + resetButton = new QPushButton( tr( "Reset" ), GroupArguments ); GroupArgumentsLayout->addWidget( resetButton, 0, 4 ); - TypeCB = new QComboBox( GroupArguments, "TypeCB" ); - TypeCB->insertItem(tr("OFF")); - TypeCB->insertItem(tr("BACK")); - TypeCB->insertItem(tr("FRONT")); - TypeCB->insertItem(tr("SLICE")); - GroupArgumentsLayout->addMultiCellWidget( TypeCB, 1, 1, 0, 4 ); + TypeCB = new QComboBox( GroupArguments ); + TypeCB->addItem( tr( "OFF" ) ); + TypeCB->addItem( tr( "BACK" ) ); + TypeCB->addItem( tr( "FRONT" ) ); + TypeCB->addItem( tr( "SLICE" ) ); + GroupArgumentsLayout->addWidget( TypeCB, 1, 0, 1, 5 ); - Layout1->addWidget( GroupArguments, 2, 0 ); - - /* Initialisations */ - SpinBox_Near->RangeStepAndValidator( COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY ); - SpinBox_Far->RangeStepAndValidator( COORD_MIN, COORD_MAX, 10.0, DBL_DIGITS_DISPLAY ); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupArguments ); /* signals and slots connections */ - connect( buttonOk , SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); - connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect( resetButton, SIGNAL (clicked() ), this, SLOT( onReset() ) ) ; + connect( resetButton, SIGNAL( clicked() ), this, SLOT( onReset() ) ) ; - setHelpFileName("none.htm"); + setHelpFileName( "none.htm" ); Init(); } @@ -136,77 +123,74 @@ OperationGUI_ClippingDlg::~ OperationGUI_ClippingDlg() //================================================================================= void OperationGUI_ClippingDlg::Init() { - SUIT_ViewWindow* anActiveWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow(); - if (!anActiveWindow) + SUIT_ViewWindow* anActiveWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow(); + if ( !anActiveWindow ) return; - if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) - { - SVTK_ViewWindow* aVTKFrame = dynamic_cast( anActiveWindow ); - if( !aVTKFrame ) - return; + if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) { + SVTK_ViewWindow* aVTKFrame = dynamic_cast( anActiveWindow ); + if ( !aVTKFrame ) + return; - TextLabelNear->setText( tr( "Near" ) ); - TextLabelFar->setText( tr( "Far" ) ); + TextLabelNear->setText( tr( "Near" ) ); + TextLabelFar->setText( tr( "Far" ) ); - TypeCB->hide(); + TypeCB->hide(); - vtkRenderer* aRenderer = aVTKFrame->getRenderer(); - if(!aRenderer) return; - - vtkCamera* anActiveCamera = aRenderer->GetActiveCamera(); - if( anActiveCamera == NULL ){ - MESSAGE("Trying to reset clipping range of non-existant camera"); - return; - } - - // Find the plane equation for the camera view plane - double vn[3]; - anActiveCamera->GetViewPlaneNormal(vn); - double position[3]; - anActiveCamera->GetPosition(position); - - vtkFloatingPointType bounds[6]; - aRenderer->ComputeVisiblePropBounds(bounds); - - double center[3]; - center[0] = (bounds[0] + bounds[1])/2.0; - center[1] = (bounds[2] + bounds[3])/2.0; - center[2] = (bounds[4] + bounds[5])/2.0; - - double width = sqrt((bounds[1]-bounds[0])*(bounds[1]-bounds[0]) + - (bounds[3]-bounds[2])*(bounds[3]-bounds[2]) + - (bounds[5]-bounds[4])*(bounds[5]-bounds[4])); - - double distance = sqrt((position[0]-center[0])*(position[0]-center[0]) + - (position[1]-center[1])*(position[1]-center[1]) + - (position[2]-center[2])*(position[2]-center[2])); - - vtkFloatingPointType range[2] = {distance - width/2.0, distance + width/2.0}; - - SpinBox_Near->SetValue(range[0]); - SpinBox_Far->SetValue(range[1]); + vtkRenderer* aRenderer = aVTKFrame->getRenderer(); + if ( !aRenderer ) return; + vtkCamera* anActiveCamera = aRenderer->GetActiveCamera(); + if ( anActiveCamera == NULL ) { return; } - else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) - { - OCCViewer_ViewWindow* aOCCFrame = dynamic_cast( anActiveWindow ); - TextLabelNear->setText( tr( "Depth" ) ); - TextLabelFar->setText( tr( "Thickness" ) ); + // Find the plane equation for the camera view plane + double vn[3]; + anActiveCamera->GetViewPlaneNormal( vn ); + double position[3]; + anActiveCamera->GetPosition( position ); - Handle(V3d_View) view3d = ((OCCViewer_ViewPort3d*)aOCCFrame->getViewPort())->getView(); + vtkFloatingPointType bounds[6]; + aRenderer->ComputeVisiblePropBounds( bounds ); - double depth, thickness; - int ztype= view3d->ZClipping(depth, thickness); - SpinBox_Near->SetValue(depth); - SpinBox_Far->SetValue(thickness); - TypeCB->setCurrentItem(ztype); + double center[3]; + center[0] = ( bounds[0] + bounds[1] ) / 2.0; + center[1] = ( bounds[2] + bounds[3] ) / 2.0; + center[2] = ( bounds[4] + bounds[5] ) / 2.0; - //Handle(V3d_Plane) aPlane = new V3d_Plane( aOCCFrame->getViewer()->getViewer3d() ,0, 0, 1, -100); - //aPlane->Display(view3d); - } + double width = sqrt( ( bounds[1]-bounds[0] ) * ( bounds[1]-bounds[0] ) + + ( bounds[3]-bounds[2] ) * ( bounds[3]-bounds[2] ) + + ( bounds[5]-bounds[4] ) * ( bounds[5]-bounds[4] ) ); + + double distance = sqrt( ( position[0]-center[0] ) * ( position[0]-center[0] ) + + ( position[1]-center[1] ) * ( position[1]-center[1] ) + + ( position[2]-center[2] ) * ( position[2]-center[2] ) ); + + vtkFloatingPointType range[2] = { distance - width/2.0, distance + width/2.0 }; + + SpinBox_Near->setValue( range[0] ); + SpinBox_Far->setValue( range[1] ); + + return; + } + else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) { + OCCViewer_ViewWindow* aOCCFrame = dynamic_cast( anActiveWindow ); + + TextLabelNear->setText( tr( "Depth" ) ); + TextLabelFar->setText( tr( "Thickness" ) ); + + Handle(V3d_View) view3d = ( (OCCViewer_ViewPort3d*)aOCCFrame->getViewPort() )->getView(); + + double depth, thickness; + int ztype = view3d->ZClipping( depth, thickness ); + SpinBox_Near->setValue( depth ); + SpinBox_Far->setValue( thickness ); + TypeCB->setCurrentIndex( ztype ); + + //Handle(V3d_Plane) aPlane = new V3d_Plane( aOCCFrame->getViewer()->getViewer3d() ,0, 0, 1, -100); + //aPlane->Display(view3d); + } } @@ -216,45 +200,42 @@ void OperationGUI_ClippingDlg::Init() //================================================================================= bool OperationGUI_ClippingDlg::ClickOnApply() { - SUIT_ViewWindow* anActiveWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow(); - if (!anActiveWindow) + SUIT_ViewWindow* anActiveWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow(); + if ( !anActiveWindow ) return false; - if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) - { - SVTK_ViewWindow* aVTKFrame = dynamic_cast( anActiveWindow ); - if( !aVTKFrame ) - return false; + if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) { + SVTK_ViewWindow* aVTKFrame = dynamic_cast( anActiveWindow ); + if ( !aVTKFrame ) + return false; - vtkRenderer* aRenderer = aVTKFrame->getRenderer(); - if(!aRenderer) return false; + vtkRenderer* aRenderer = aVTKFrame->getRenderer(); + if ( !aRenderer ) return false; - vtkCamera* anActiveCamera = aRenderer->GetActiveCamera(); - if( anActiveCamera == NULL ){ - MESSAGE("Trying to reset clipping range of non-existant camera"); - return false; - } - - vtkFloatingPointType range[2] = { SpinBox_Near->GetValue(), SpinBox_Far->GetValue() }; - if (range[0] < 0.0) range[0] = 0.0; - anActiveCamera->SetClippingRange( range ); - - return true; + vtkCamera* anActiveCamera = aRenderer->GetActiveCamera(); + if ( anActiveCamera == NULL ) { + return false; } - else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) - { - OCCViewer_ViewWindow* aOCCFrame = dynamic_cast( anActiveWindow ); - Handle(V3d_View) view3d = ((OCCViewer_ViewPort3d*)aOCCFrame->getViewPort())->getView(); + vtkFloatingPointType range[2] = { SpinBox_Near->value(), SpinBox_Far->value() }; + if ( range[0] < 0.0 ) range[0] = 0.0; + anActiveCamera->SetClippingRange( range ); - double depth = SpinBox_Near->GetValue(); - double thickness = SpinBox_Far->GetValue(); - int aType = TypeCB->currentItem(); + return true; + } + else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) { + OCCViewer_ViewWindow* aOCCFrame = dynamic_cast( anActiveWindow ); - view3d->SetZClippingType(V3d_TypeOfZclipping(aType)); - view3d->SetZClippingDepth(depth); - view3d->SetZClippingWidth(thickness); - } + Handle(V3d_View) view3d = ( (OCCViewer_ViewPort3d*)aOCCFrame->getViewPort() )->getView(); + + double depth = SpinBox_Near->value(); + double thickness = SpinBox_Far->value(); + int aType = TypeCB->currentIndex(); + + view3d->SetZClippingType( V3d_TypeOfZclipping( aType ) ); + view3d->SetZClippingDepth( depth ); + view3d->SetZClippingWidth( thickness ); + } return true; } @@ -265,8 +246,8 @@ bool OperationGUI_ClippingDlg::ClickOnApply() //================================================================================= void OperationGUI_ClippingDlg::ClickOnOk() { - ClickOnApply(); - ClickOnCancel(); + if ( ClickOnApply() ) + ClickOnCancel(); } //================================================================================= @@ -282,19 +263,9 @@ void OperationGUI_ClippingDlg::onActivate() // function : enterEvent() // purpose : //================================================================================= -void OperationGUI_ClippingDlg::enterEvent(QEvent*) +void OperationGUI_ClippingDlg::enterEvent( QEvent* ) { - this->setEnabled(true); - return; -} - -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void OperationGUI_ClippingDlg::closeEvent( QCloseEvent* e ) -{ - QDialog::closeEvent( e ); + this->setEnabled( true ); } //================================================================================= @@ -305,70 +276,65 @@ void OperationGUI_ClippingDlg::onReset() { SUIT_ViewWindow* anActiveWindow = SUIT_Session::session()->activeApplication()->desktop()->activeWindow(); - if (!anActiveWindow) + if ( !anActiveWindow ) return; - if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) - { - SVTK_ViewWindow* aVTKFrame = dynamic_cast( anActiveWindow ); - if( !aVTKFrame ) - return; + if ( anActiveWindow->getViewManager()->getType() == SVTK_Viewer::Type() ) { + SVTK_ViewWindow* aVTKFrame = dynamic_cast( anActiveWindow ); + if ( !aVTKFrame ) + return; - vtkRenderer* aRenderer = aVTKFrame->getRenderer(); - if(!aRenderer) return; - - vtkCamera* anActiveCamera = aRenderer->GetActiveCamera(); - if( anActiveCamera == NULL ){ - MESSAGE("Trying to reset clipping range of non-existant camera"); - return; - } - - // Find the plane equation for the camera view plane - double vn[3]; - anActiveCamera->GetViewPlaneNormal(vn); - double position[3]; - anActiveCamera->GetPosition(position); - - vtkFloatingPointType bounds[6]; - aRenderer->ComputeVisiblePropBounds(bounds); - - double center[3]; - center[0] = (bounds[0] + bounds[1])/2.0; - center[1] = (bounds[2] + bounds[3])/2.0; - center[2] = (bounds[4] + bounds[5])/2.0; - - double width = sqrt((bounds[1]-bounds[0])*(bounds[1]-bounds[0]) + - (bounds[3]-bounds[2])*(bounds[3]-bounds[2]) + - (bounds[5]-bounds[4])*(bounds[5]-bounds[4])); - - double distance = sqrt((position[0]-center[0])*(position[0]-center[0]) + - (position[1]-center[1])*(position[1]-center[1]) + - (position[2]-center[2])*(position[2]-center[2])); - - vtkFloatingPointType range[2] = {distance - width/2.0, distance + width/2.0}; - - SpinBox_Near->SetValue(range[0]); - SpinBox_Far->SetValue(range[1]); + vtkRenderer* aRenderer = aVTKFrame->getRenderer(); + if ( !aRenderer ) return; + vtkCamera* anActiveCamera = aRenderer->GetActiveCamera(); + if ( anActiveCamera == NULL ) { return; } - else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) - { - OCCViewer_ViewWindow* aOCCFrame = dynamic_cast( anActiveWindow ); - TextLabelNear->setText( tr( "Depth" ) ); - TextLabelFar->setText( tr( "Thickness" ) ); + // Find the plane equation for the camera view plane + double vn[3]; + anActiveCamera->GetViewPlaneNormal( vn ); + double position[3]; + anActiveCamera->GetPosition( position ); - Handle(V3d_View) view3d = ((OCCViewer_ViewPort3d*)aOCCFrame->getViewPort())->getView(); + vtkFloatingPointType bounds[6]; + aRenderer->ComputeVisiblePropBounds( bounds ); - view3d->SetZClippingType(V3d_TypeOfZclipping(0)); - view3d->ZFitAll(); - double depth, thickness; - int ztype= view3d->ZClipping(depth, thickness); - SpinBox_Near->SetValue(0); - SpinBox_Far->SetValue(1000); - TypeCB->setCurrentItem(ztype); - } + double center[3]; + center[0] = ( bounds[0] + bounds[1] ) / 2.0; + center[1] = ( bounds[2] + bounds[3] ) / 2.0; + center[2] = ( bounds[4] + bounds[5] ) / 2.0; - return; + double width = sqrt( ( bounds[1]-bounds[0] ) * ( bounds[1]-bounds[0] ) + + ( bounds[3]-bounds[2] ) * ( bounds[3]-bounds[2] ) + + ( bounds[5]-bounds[4] ) * ( bounds[5]-bounds[4] ) ); + + double distance = sqrt( ( position[0]-center[0] ) * ( position[0]-center[0] ) + + ( position[1]-center[1] ) * ( position[1]-center[1] ) + + ( position[2]-center[2] ) * ( position[2]-center[2] ) ); + + vtkFloatingPointType range[2] = { distance - width/2.0, distance + width/2.0 }; + + SpinBox_Near->setValue( range[0] ); + SpinBox_Far->setValue( range[1] ); + + return; + } + else if ( anActiveWindow->getViewManager()->getType() == OCCViewer_Viewer::Type() ) { + OCCViewer_ViewWindow* aOCCFrame = dynamic_cast( anActiveWindow ); + + TextLabelNear->setText( tr( "Depth" ) ); + TextLabelFar->setText( tr( "Thickness" ) ); + + Handle(V3d_View) view3d = ( (OCCViewer_ViewPort3d*)aOCCFrame->getViewPort() )->getView(); + + view3d->SetZClippingType( V3d_TypeOfZclipping( 0 ) ); + view3d->ZFitAll(); + double depth, thickness; + int ztype= view3d->ZClipping( depth, thickness ); + SpinBox_Near->setValue( 0 ); + SpinBox_Far->setValue( 1000 ); + TypeCB->setCurrentIndex( ztype ); + } } diff --git a/src/OperationGUI/OperationGUI_ClippingDlg.h b/src/OperationGUI/OperationGUI_ClippingDlg.h index 31215cfa6..1e6cba6c6 100644 --- a/src/OperationGUI/OperationGUI_ClippingDlg.h +++ b/src/OperationGUI/OperationGUI_ClippingDlg.h @@ -1,40 +1,38 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : OperationGUI_ClippingDlg.h -// Author : Michael Zorin -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_ClippingDlg.h +// Author : Michael Zorin, Open CASCADE S.A.S. (mikhail.zorin@opencascade.com) +// +#ifndef OPERATIONGUI_CLIPPINGDLG_H +#define OPERATIONGUI_CLIPPINGDLG_H -#ifndef DIALOGBOX_CLIPPINGRANGE_H -#define DIALOGBOX_CLIPPING_H - -#include "GEOMBase_Skeleton.h" +#include class QGroupBox; class QLabel; class QPushButton; class QComboBox; -class DlgRef_SpinBox; +class SalomeApp_DoubleSpinBox; enum ViewerTypes { VTK, OCC, OTHER }; @@ -44,33 +42,33 @@ enum ViewerTypes { VTK, OCC, OTHER }; //================================================================================= class OperationGUI_ClippingDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - OperationGUI_ClippingDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0); - ~OperationGUI_ClippingDlg(); - + OperationGUI_ClippingDlg( GeometryGUI*, QWidget* = 0 ); + ~OperationGUI_ClippingDlg(); + private: - void Init(); - - ViewerTypes myViewerType; - - virtual void closeEvent( QCloseEvent* e ); - void enterEvent(QEvent* e); - - QGroupBox* GroupArguments; - QLabel* TextLabelNear; - DlgRef_SpinBox* SpinBox_Near; - QLabel* TextLabelFar; - DlgRef_SpinBox* SpinBox_Far; - QPushButton* resetButton; - QComboBox* TypeCB; + void Init(); + + void enterEvent( QEvent* ); + +private: + ViewerTypes myViewerType; + + QGroupBox* GroupArguments; + QLabel* TextLabelNear; + SalomeApp_DoubleSpinBox* SpinBox_Near; + QLabel* TextLabelFar; + SalomeApp_DoubleSpinBox* SpinBox_Far; + QPushButton* resetButton; + QComboBox* TypeCB; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void onActivate(); - void onReset(); + void ClickOnOk(); + bool ClickOnApply(); + void onActivate(); + void onReset(); }; -#endif // DIALOGBOX_CLIPPINGRANGE_H +#endif // OPERATIONGUI_CLIPPINGDLG_H diff --git a/src/OperationGUI/OperationGUI_Fillet2dDlg.cxx b/src/OperationGUI/OperationGUI_Fillet2dDlg.cxx new file mode 100755 index 000000000..b33cfc3ee --- /dev/null +++ b/src/OperationGUI/OperationGUI_Fillet2dDlg.cxx @@ -0,0 +1,400 @@ +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : OperationGUI_Fillet2dDlg.cxx +// Author : DMV, OCN. +// + +#include "OperationGUI_Fillet2dDlg.h" + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes +#include +#include + +#include + +//================================================================================= +// class : OperationGUI_Fillet2dDlg() +// purpose : Constructs a OperationGUI_Fillet2dDlg which is a child of 'parent', with the +// name 'name' and widget flags set to 'f'. +// The dialog will by default be modeless, unless you set 'modal' to +// TRUE to construct a modal dialog. +//================================================================================= +OperationGUI_Fillet2dDlg::OperationGUI_Fillet2dDlg (GeometryGUI* theGeometryGUI, QWidget* parent) + : GEOMBase_Skeleton(theGeometryGUI, parent, false) +{ + SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); + QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_FILLET_2D"))); + QPixmap iconSelect (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); + + setWindowTitle(tr("GEOM_FILLET_2D_TITLE")); + + /***************************************************************/ + mainFrame()->GroupConstructors->setTitle(tr("GEOM_FILLET_2D")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->close(); + + GroupVertexes = new DlgRef_2Sel1Spin(centralWidget()); + GroupVertexes->GroupBox1->setTitle(tr("GEOM_FILLET_2D")); + GroupVertexes->TextLabel1->setText(tr("GEOM_PLANAR_FACE")); + GroupVertexes->TextLabel2->setText(tr("GEOM_VERTEXES")); + GroupVertexes->TextLabel3->setText(tr("GEOM_RADIUS")); + GroupVertexes->PushButton1->setIcon(iconSelect); + GroupVertexes->PushButton2->setIcon(iconSelect); + GroupVertexes->LineEdit1->setReadOnly(true); + GroupVertexes->LineEdit2->setReadOnly(true); + + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupVertexes); + + /***************************************************************/ + + // Set range of spinboxes + double SpecificStep = 10.0; + initSpinBox(GroupVertexes->SpinBox_DX, 0.00001, COORD_MAX, SpecificStep, 5); // VSR: TODO: DBL_DIGITS_DISPLAY + + setHelpFileName("fillet2d_operation_page.html"); + + // Initialisation + Init(); + resize(0,0); +} + +//================================================================================= +// function : ~OperationGUI_Fillet2dDlg() +// purpose : Destroys the object and frees any allocated resources +//================================================================================= +OperationGUI_Fillet2dDlg::~OperationGUI_Fillet2dDlg() +{ +} + +//================================================================================= +// function : Init() +// purpose : +//================================================================================= +void OperationGUI_Fillet2dDlg::Init() +{ + // Set Initial values of spinboxes + GroupVertexes->SpinBox_DX->setValue(5); + + // Clear line edits + GroupVertexes->LineEdit1->setText(""); + GroupVertexes->LineEdit2->setText(""); + + myShape = GEOM::GEOM_Object::_nil(); + + myVertexes.Clear(); + + // signals and slots connections + + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk() )); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + // connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); + + connect(GroupVertexes->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupVertexes->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + + connect(GroupVertexes->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupVertexes->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + + connect(GroupVertexes->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); + + initName(tr("GEOM_FILLET_2D")); + GroupVertexes->PushButton1->click(); +} + +//================================================================================= +// function : ClickOnOk() +// purpose : +//================================================================================= +void OperationGUI_Fillet2dDlg::ClickOnOk() +{ + if (ClickOnApply()) + ClickOnCancel(); +} + +//================================================================================= +// function : ClickOnApply() +// purpose : +//================================================================================= +bool OperationGUI_Fillet2dDlg::ClickOnApply() +{ + if (!onAccept()) + return false; + + initName(); + // Reset dialog state + GroupVertexes->LineEdit1->setText(""); + GroupVertexes->LineEdit2->setText(""); + myShape = GEOM::GEOM_Object::_nil(); + myVertexes.Clear(); + GroupVertexes->PushButton1->click(); + + return true; +} + +//================================================================================= +// function : SelectionIntoArgument() +// purpose : Called when selection is changed or on dialog initialization or activation +//================================================================================= +void OperationGUI_Fillet2dDlg::SelectionIntoArgument() +{ + erasePreview(); + myEditCurrentArgument->setText(""); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + // If selection of main object is activated + if (myEditCurrentArgument == GroupVertexes->LineEdit1) { + myShape = GEOM::GEOM_Object::_nil(); + if (aSelList.Extent() == 1) { + Standard_Boolean aResult = Standard_False; + GEOM::GEOM_Object_var anObj = + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); + + if (aResult && !anObj->_is_nil()) { + QString aName = GEOMBase::GetName( anObj ); + TopoDS_Shape aShape; + if ( GEOMBase::GetShape( anObj, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if ( aMap.Extent() == 1 ) { // Local Selection + int anIndex = aMap( 1 ); + aName += QString( ":face_%1" ).arg( anIndex ); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( anObj, aName ); + + if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); + anObj = aShapesOp->GetSubShape( anObj, anIndex ); + } + else + anObj = aFindedObject; // get Object from study + } + else { // Global Selection + if ( aShape.ShapeType() != TopAbs_FACE ) { + anObj = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } + } + myShape = anObj; + myEditCurrentArgument->setText(aName +); + displayPreview(); + } + } + } else if (myEditCurrentArgument == GroupVertexes->LineEdit2) { + myVertexes.Clear(); + if (aSelList.Extent() == 1) { + Standard_Boolean aResult = Standard_False; + GEOM::GEOM_Object_var anObj = + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); + + if (aResult && !anObj->_is_nil()) { + TColStd_IndexedMapOfInteger anIndexes; + aSelMgr->GetIndexes(aSelList.First(), anIndexes); + + if (anIndexes.Extent() > 0) { + QString aName; + if (anIndexes.Extent() == 1) { + int anIndex = anIndexes(1); + aName = QString(GEOMBase::GetName(anObj)) + QString(":vertex_%1").arg(anIndex); + } + else + aName = tr("GEOM_MEN_POPUP_NAME").arg(anIndexes.Extent()); + + myEditCurrentArgument->setText(aName); + myVertexes = anIndexes; + displayPreview(); + } + } + } + } + + if (myEditCurrentArgument == GroupVertexes->LineEdit1) { + if (!myShape->_is_nil() && myVertexes.Extent() == 0) + GroupVertexes->PushButton2->click(); + } +} + +//================================================================================= +// function : SetEditCurrentArgument() +// purpose : +//================================================================================= +void OperationGUI_Fillet2dDlg::SetEditCurrentArgument() +{ + QPushButton* send = (QPushButton*)sender(); + + if (send == GroupVertexes->PushButton1) { + myEditCurrentArgument = GroupVertexes->LineEdit1; + GroupVertexes->PushButton2->setDown(false); + GroupVertexes->LineEdit2->setEnabled(false); + } + else if (send == GroupVertexes->PushButton2) { + myEditCurrentArgument = GroupVertexes->LineEdit2; + GroupVertexes->PushButton1->setDown(false); + GroupVertexes->LineEdit1->setEnabled(false); + } + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + activateSelection(); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); +} + +//================================================================================= +// function : LineEditReturnPressed() +// purpose : +//================================================================================= +void OperationGUI_Fillet2dDlg::LineEditReturnPressed() +{ + QLineEdit* send = (QLineEdit*)sender(); + + if (send == GroupVertexes->LineEdit1) + myEditCurrentArgument = GroupVertexes->LineEdit1; + else if (send == GroupVertexes->LineEdit2) + myEditCurrentArgument = GroupVertexes->LineEdit2; + else + return; + + GEOMBase_Skeleton::LineEditReturnPressed(); +} + +//================================================================================= +// function : ActivateThisDialog() +// purpose : +//================================================================================= +void OperationGUI_Fillet2dDlg::ActivateThisDialog() +{ + GEOMBase_Skeleton::ActivateThisDialog(); +} + +//================================================================================= +// function : enterEvent() +// purpose : +//================================================================================= +void OperationGUI_Fillet2dDlg::enterEvent (QEvent*) +{ + if (!mainFrame()->GroupConstructors->isEnabled()) + this->ActivateThisDialog(); +} + +//================================================================================= +// function : ValueChangedInSpinBox() +// purpose : +//================================================================================= +void OperationGUI_Fillet2dDlg::ValueChangedInSpinBox (double) +{ + displayPreview(); +} + +//================================================================================= +// function : activateSelection +// purpose : Activate selection in accordance with myEditCurrentArgument +//================================================================================= +void OperationGUI_Fillet2dDlg::activateSelection() +{ + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(); + if (myEditCurrentArgument == GroupVertexes->LineEdit1) + globalSelection( GEOM_FACE ); // localSelection(myShape, TopAbs_FACE); + else if (!myShape->_is_nil() && myEditCurrentArgument == GroupVertexes->LineEdit2) + localSelection(myShape, TopAbs_VERTEX); + + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); +} + +//================================================================================= +// function : createOperation +// purpose : +//================================================================================= +GEOM::GEOM_IOperations_ptr OperationGUI_Fillet2dDlg::createOperation() +{ + return getGeomEngine()->GetILocalOperations(getStudyId()); +} + +//================================================================================= +// function : isValid() +// purpose : Verify validity of input data +//================================================================================= +bool OperationGUI_Fillet2dDlg::isValid (QString&) +{ + return !myShape->_is_nil() && myVertexes.Extent() > 0; +} + +//================================================================================= +// function : execute +// purpose : +//================================================================================= +bool OperationGUI_Fillet2dDlg::execute (ObjectList& objects) +{ + GEOM::GEOM_Object_var anObj; + + GEOM::ListOfLong_var aListOfIndexes = new GEOM::ListOfLong; + aListOfIndexes->length(myVertexes.Extent()); + + for (int i = 1, n = myVertexes.Extent(); i <= n; i++) + aListOfIndexes[ i - 1 ] = myVertexes(i); + + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeFillet2D(myShape, getRadius(), aListOfIndexes); + + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + + return true; +} + +//================================================================================= +// function : getRadius +// purpose : Get radius +//================================================================================= +double OperationGUI_Fillet2dDlg::getRadius() const +{ + return GroupVertexes ->SpinBox_DX->value(); +} diff --git a/src/OperationGUI/OperationGUI_Fillet2dDlg.h b/src/OperationGUI/OperationGUI_Fillet2dDlg.h new file mode 100755 index 000000000..523dbad04 --- /dev/null +++ b/src/OperationGUI/OperationGUI_Fillet2dDlg.h @@ -0,0 +1,75 @@ +// GEOM GEOMGUI : GUI for Geometry component +// +// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : OperationGUI_Fillet2dDlg.h +// Author : DMV, OCN +// + +#ifndef OPERATIONGUI_FILLET2DDLG_H +#define OPERATIONGUI_FILLET2DDLG_H + +#include + +#include + +class DlgRef_2Sel1Spin; + +//================================================================================= +// class : OperationGUI_Fillet2dDlg +// purpose : +//================================================================================= +class OperationGUI_Fillet2dDlg : public GEOMBase_Skeleton +{ + Q_OBJECT + +public: + OperationGUI_Fillet2dDlg( GeometryGUI*, QWidget* ); + ~OperationGUI_Fillet2dDlg(); + +protected: + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + +private slots: + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ValueChangedInSpinBox( double ); + +private: + void Init(); + void enterEvent( QEvent* ); + void activateSelection(); + double getRadius() const; + +private: + GEOM::GEOM_Object_var myShape; + TColStd_IndexedMapOfInteger myVertexes; + + DlgRef_2Sel1Spin* GroupVertexes; +}; + +#endif // OPERATIONGUI_FILLET2DDLG_H diff --git a/src/OperationGUI/OperationGUI_FilletDlg.cxx b/src/OperationGUI/OperationGUI_FilletDlg.cxx index 87fbbfd76..84a2f3134 100644 --- a/src/OperationGUI/OperationGUI_FilletDlg.cxx +++ b/src/OperationGUI/OperationGUI_FilletDlg.cxx @@ -1,155 +1,172 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_FilletDlg.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// File : OperationGUI_FilletDlg.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "OperationGUI_FilletDlg.h" -#include "DlgRef_1Sel1Spin.h" -#include "DlgRef_2Sel3Spin2Rb.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "OCCViewer_ViewModel.h" +#include +#include +#include -#include "qlabel.h" -#include "qpixmap.h" +#include +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include -#include -#include "GEOMImpl_Types.hxx" +#include //================================================================================= // class : OperationGUI_FilletDlg() -// purpose : Constructs a OperationGUI_FilletDlg which is a child of 'parent', with the +// purpose : Constructs a OperationGUI_FilletDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -OperationGUI_FilletDlg::OperationGUI_FilletDlg(GeometryGUI* theGeometryGUI, QWidget* parent) - :GEOMBase_Skeleton(theGeometryGUI, parent, "OperationGUI_FilletDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +OperationGUI_FilletDlg::OperationGUI_FilletDlg (GeometryGUI* theGeometryGUI, QWidget* parent) + : GEOMBase_Skeleton(theGeometryGUI, parent, false), + myInitial(true) { - myConstructorId = -1; - SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_FILLET_ALL"))); QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_FILLET_EDGE"))); QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_FILLET_FACE"))); - QPixmap iconSelect(aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap iconSelect (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_FILLET_TITLE")); + setWindowTitle(tr("GEOM_FILLET_TITLE")); /***************************************************************/ - GroupConstructors->setTitle( tr( "GEOM_FILLET" ) ); - RadioButton1->setPixmap( image0 ); - RadioButton2->setPixmap( image1 ); - RadioButton3->setPixmap( image2 ); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_FILLET")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setIcon(image2); - Group1 = new DlgRef_1Sel1Spin( this, "Group1" ); - Group1->GroupBox1->setTitle( tr( "GEOM_FILLET_ALL" ) ); - Group1->TextLabel1->setText( tr( "GEOM_MAIN_OBJECT" ) ); - Group1->TextLabel2->setText( tr( "GEOM_RADIUS" ) ); - Group1->PushButton1->setPixmap( iconSelect ); - Group1->LineEdit1->setReadOnly( true ); + Group1 = new DlgRef_1Sel1Spin(centralWidget()); + Group1->GroupBox1->setTitle(tr("GEOM_FILLET_ALL")); + Group1->TextLabel1->setText(tr("GEOM_MAIN_OBJECT")); + Group1->TextLabel2->setText(tr("GEOM_RADIUS")); + Group1->PushButton1->setIcon(iconSelect); + Group1->LineEdit1->setReadOnly(true); - Group2 = new DlgRef_2Sel3Spin2Rb( this, "Group2" ); - Group2->GroupBox1->setTitle( tr( "GEOM_FILLET_EDGES" ) ); - Group2->TextLabel1->setText( tr( "GEOM_MAIN_OBJECT" ) ); - Group2->TextLabel2->setText( tr( "SELECTED_EDGES" ) ); - Group2->TextLabel3->setText( tr( "GEOM_RADIUS" ) ); - Group2->TextLabel4->setText( tr( "GEOM_R1" ) ); - Group2->TextLabel5->setText( tr( "GEOM_R2" ) ); - Group2->PushButton1->setPixmap( iconSelect ); - Group2->PushButton2->setPixmap( iconSelect ); - Group2->LineEdit1->setReadOnly( true ); - Group2->LineEdit2->setReadOnly( true ); + Group2 = new DlgRef_2Sel3Spin2Rb(centralWidget()); + Group2->GroupBox1->setTitle(tr("GEOM_FILLET_EDGES")); + Group2->TextLabel1->setText(tr("GEOM_MAIN_OBJECT")); + Group2->TextLabel2->setText(tr("SELECTED_EDGES")); + Group2->TextLabel3->setText(tr("GEOM_RADIUS")); + Group2->TextLabel4->setText(tr("GEOM_R1")); + Group2->TextLabel5->setText(tr("GEOM_R2")); + Group2->PushButton1->setIcon(iconSelect); + Group2->PushButton2->setIcon(iconSelect); + Group2->LineEdit1->setReadOnly(true); + Group2->LineEdit2->setReadOnly(true); - Group3 = new DlgRef_2Sel3Spin2Rb( this, "Group3" ); - Group3->GroupBox1->setTitle(tr( "GEOM_FILLET_FACES" ) ); - Group3->TextLabel1->setText(tr( "GEOM_MAIN_OBJECT" ) ); - Group3->TextLabel2->setText(tr( "SELECTED_FACES" ) ); - Group3->TextLabel3->setText(tr( "GEOM_RADIUS" ) ); - Group3->TextLabel4->setText(tr( "GEOM_R1" ) ); - Group3->TextLabel5->setText(tr( "GEOM_R2" ) ); - Group3->PushButton1->setPixmap( iconSelect ); - Group3->PushButton2->setPixmap( iconSelect ); - Group3->LineEdit1->setReadOnly( true ); - Group3->LineEdit2->setReadOnly( true ); + Group3 = new DlgRef_2Sel3Spin2Rb(centralWidget()); + Group3->GroupBox1->setTitle(tr("GEOM_FILLET_FACES")); + Group3->TextLabel1->setText(tr("GEOM_MAIN_OBJECT")); + Group3->TextLabel2->setText(tr("SELECTED_FACES")); + Group3->TextLabel3->setText(tr("GEOM_RADIUS")); + Group3->TextLabel4->setText(tr("GEOM_R1")); + Group3->TextLabel5->setText(tr("GEOM_R2")); + Group3->PushButton1->setIcon(iconSelect); + Group3->PushButton2->setIcon(iconSelect); + Group3->LineEdit1->setReadOnly(true); + Group3->LineEdit2->setReadOnly(true); - Layout1->addWidget( Group1, 2, 0 ); - Layout1->addWidget( Group2, 2, 0 ); - Layout1->addWidget( Group3, 2, 0 ); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(Group1); + layout->addWidget(Group2); + layout->addWidget(Group3); /***************************************************************/ + // Set range of spinboxes double SpecificStep = 10.0; - Group1->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); - Group2->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); - Group2->SpinBox_DY->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); - Group2->SpinBox_DZ->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); - Group3->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); - Group3->SpinBox_DY->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); - Group3->SpinBox_DZ->RangeStepAndValidator(0.001, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); + initSpinBox(Group1->SpinBox_DX, 0.001, COORD_MAX, SpecificStep, 3); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(Group2->SpinBox_DX, 0.001, COORD_MAX, SpecificStep, 3); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(Group2->SpinBox_DY, 0.001, COORD_MAX, SpecificStep, 3); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(Group2->SpinBox_DZ, 0.001, COORD_MAX, SpecificStep, 3); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(Group3->SpinBox_DX, 0.001, COORD_MAX, SpecificStep, 3); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(Group3->SpinBox_DY, 0.001, COORD_MAX, SpecificStep, 3); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(Group3->SpinBox_DZ, 0.001, COORD_MAX, SpecificStep, 3); // VSR: TODO: DBL_DIGITS_DISPLAY setHelpFileName("fillet_operation_page.html"); - /* Initialisations */ + // Initialisation Init(); } - //================================================================================= // function : ~OperationGUI_FilletDlg() // purpose : Destroys the object and frees any allocated resources //================================================================================= OperationGUI_FilletDlg::~OperationGUI_FilletDlg() -{ +{ } - //================================================================================= // function : Init() // purpose : //================================================================================= void OperationGUI_FilletDlg::Init() { - myConstructorId = -1; - reset(); - RadioButton1->setChecked( true ); - myEditCurrentArgument = Group1->LineEdit1; + // Set Initial values of spinboxes + Group1->SpinBox_DX->setValue(5); + Group2->SpinBox_DX->setValue(5); + Group2->SpinBox_DY->setValue(5); + Group2->SpinBox_DZ->setValue(5); + Group3->SpinBox_DX->setValue(5); + Group3->SpinBox_DY->setValue(5); + Group3->SpinBox_DZ->setValue(5); + + // Clear line edits + Group1->LineEdit1->setText(""); + Group2->LineEdit1->setText(""); + Group2->LineEdit2->setText(""); + Group3->LineEdit1->setText(""); + Group3->LineEdit2->setText(""); + + myShape = GEOM::GEOM_Object::_nil(); + + myFaces.Clear(); + myEdges.Clear(); + + // signals and slots connections // main buttons - connect( buttonOk , SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); - connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk() )); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); // group box - connect( GroupConstructors, SIGNAL( clicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); // push buttons connect(Group1->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); @@ -163,7 +180,7 @@ void OperationGUI_FilletDlg::Init() connect(Group2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(Group3->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - // spin boxes + // spin boxes connect(Group1->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(Group2->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(Group2->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); @@ -172,226 +189,240 @@ void OperationGUI_FilletDlg::Init() connect(Group3->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(Group3->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - //RadioButtons - connect( Group2->RadioButton1, SIGNAL( clicked() ), this, SLOT( RadioButton_Clicked() ) ); - connect( Group2->RadioButton2, SIGNAL( clicked() ), this, SLOT( RadioButton_Clicked() ) ); - connect( Group3->RadioButton1, SIGNAL( clicked() ), this, SLOT( RadioButton_Clicked() ) ); - connect( Group3->RadioButton2, SIGNAL( clicked() ), this, SLOT( RadioButton_Clicked() ) ); + // radio buttons + connect(Group2->RadioButton1, SIGNAL(clicked()), this, SLOT(RadioButtonClicked())); + connect(Group2->RadioButton2, SIGNAL(clicked()), this, SLOT(RadioButtonClicked())); + connect(Group3->RadioButton1, SIGNAL(clicked()), this, SLOT(RadioButtonClicked())); + connect(Group3->RadioButton2, SIGNAL(clicked()), this, SLOT(RadioButtonClicked())); - // selection - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + initName(tr("GEOM_FILLET")); - initName( tr( "GEOM_FILLET" ) ); - - Group2->hide(); - Group3->hide(); - Group1->show(); + myConstructorId = -1; + ConstructorsClicked(0); } - //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void OperationGUI_FilletDlg::ConstructorsClicked( int constructorId ) +void OperationGUI_FilletDlg::ConstructorsClicked (int constructorId) { - if ( SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() - != OCCViewer_Viewer::Type() ) - { - RadioButton1->setChecked( true ); + if (myGeomGUI->getApp()->desktop()->activeWindow()->getViewManager()->getType() + != OCCViewer_Viewer::Type()) { + mainFrame()->RadioButton1->setChecked(true); return; } - if ( myConstructorId == constructorId ) + if (myConstructorId == constructorId) return; // Get radius from previous widget - double R = 5, R1 = 5, R2 = 5; - if ( myConstructorId == 0 ) R = Group1->SpinBox_DX->GetValue(); - else if ( myConstructorId == 1 ) { - R = Group2->SpinBox_DX->GetValue(); - R1 = Group2->SpinBox_DY->GetValue(); - R2 = Group2->SpinBox_DZ->GetValue(); + QString R = "5", R1 = "5", R2 = "5"; + if (myConstructorId == 0) { + R = Group1->SpinBox_DX->text(); + } + else if (myConstructorId == 1) { + R = Group2->SpinBox_DX->text(); + R1 = Group2->SpinBox_DY->text(); + R2 = Group2->SpinBox_DZ->text(); } else { - R = Group3->SpinBox_DX->GetValue(); - R1 = Group3->SpinBox_DY->GetValue(); - R2 = Group3->SpinBox_DZ->GetValue(); + R = Group3->SpinBox_DX->text(); + R1 = Group3->SpinBox_DY->text(); + R2 = Group3->SpinBox_DZ->text(); } myConstructorId = constructorId; - switch ( constructorId ) - { - case 0: - Group1->show(); - Group2->hide(); - Group3->hide(); - Group1->SpinBox_DX->SetValue( R ); + switch (constructorId) { + case 0: + Group2->hide(); + Group3->hide(); + Group1->show(); + Group1->SpinBox_DX->setText(R); break; - case 1: - Group1->hide(); - Group2->show(); - Group3->hide(); - Group2->SpinBox_DX->SetValue( R ); - Group2->SpinBox_DY->SetValue( R1 ); - Group2->SpinBox_DZ->SetValue( R2 ); + case 1: + Group1->hide(); + Group3->hide(); + Group2->show(); + Group2->SpinBox_DX->setText(R); + Group2->SpinBox_DY->setText(R1); + Group2->SpinBox_DZ->setText(R2); break; - case 2: - Group1->hide(); - Group2->hide(); - Group3->show(); - Group3->SpinBox_DX->SetValue( R ); - Group3->SpinBox_DY->SetValue( R1 ); - Group3->SpinBox_DZ->SetValue( R2 ); + case 2: + Group1->hide(); + Group2->hide(); + Group3->show(); + Group3->SpinBox_DX->setText(R); + Group3->SpinBox_DY->setText(R1); + Group3->SpinBox_DZ->setText(R2); break; - default: + default: break; } - if ( constructorId == 0 ) myEditCurrentArgument = Group1->LineEdit1; - else if ( constructorId == 1 ) myEditCurrentArgument = Group2->LineEdit1; - else myEditCurrentArgument = Group3->LineEdit1; + if (constructorId == 0) Group1->PushButton1->click(); + else if (constructorId == 1) Group2->PushButton1->click(); + else Group3->PushButton1->click(); - activateSelection(); enableWidgets(); - if ( !myShape->_is_nil() ) - { - myEditCurrentArgument->setText( GEOMBase::GetName( myShape ) ); - GEOMBase_Skeleton::LineEditReturnPressed(); + if (myInitial) { + myInitial = false; + SelectionIntoArgument(); } - else - myEditCurrentArgument->setText( "" ); + else { + if (!myShape->_is_nil()) { + myEditCurrentArgument->setText(GEOMBase::GetName(myShape)); + GEOMBase_Skeleton::LineEditReturnPressed(); + switch (getConstructorId()) { + case 1: + if (myEdges.Extent() == 0) + Group2->PushButton2->click(); + break; + case 2: + if (myFaces.Extent() == 0) + Group3->PushButton2->click(); + break; + default: + break; + } + } + else + myEditCurrentArgument->setText(""); - displayPreview(); + displayPreview(); + } + + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); } - //================================================================================= // function : ClickOnOk() // purpose : //================================================================================= void OperationGUI_FilletDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool OperationGUI_FilletDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection has changed +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void OperationGUI_FilletDlg::SelectionIntoArgument() { erasePreview(); - myEditCurrentArgument->setText( "" ); + myEditCurrentArgument->setText(""); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); // If selection of main object is activated - if ( myEditCurrentArgument == Group1->LineEdit1 || - myEditCurrentArgument == Group2->LineEdit1 || - myEditCurrentArgument == Group3->LineEdit1 ) + if (myEditCurrentArgument == Group1->LineEdit1 || + myEditCurrentArgument == Group2->LineEdit1 || + myEditCurrentArgument == Group3->LineEdit1) { - if ( IObjectCount() == 1 ) - { + myShape = GEOM::GEOM_Object::_nil(); + if (aSelList.Extent() == 1) { Standard_Boolean aResult = Standard_False; GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); - if ( aResult && !anObj->_is_nil() ) - { + if (aResult && !anObj->_is_nil()) { myShape = anObj; - myEditCurrentArgument->setText( GEOMBase::GetName( anObj ) ); + myEditCurrentArgument->setText(GEOMBase::GetName(anObj)); displayPreview(); - enableWidgets(); - return; } } - myShape = GEOM::GEOM_Object::_nil(); enableWidgets(); } // If face or edge selection is activated - else if ( myEditCurrentArgument == Group2->LineEdit2 || - myEditCurrentArgument == Group3->LineEdit2 ) + else if (myEditCurrentArgument == Group2->LineEdit2 || + myEditCurrentArgument == Group3->LineEdit2) { - if ( IObjectCount() == 1 ) - { + if (myEditCurrentArgument == Group2->LineEdit2) myEdges.Clear(); + else myFaces.Clear(); + if (aSelList.Extent() == 1) { Standard_Boolean aResult = Standard_False; GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), aResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aResult); - if ( aResult && !anObj->_is_nil() ) - { + if (aResult && !anObj->_is_nil()) { TColStd_IndexedMapOfInteger anIndexes; - myGeomGUI->getApp()->selectionMgr()->GetIndexes( firstIObject(), anIndexes ); + aSelMgr->GetIndexes(aSelList.First(), anIndexes); - if ( anIndexes.Extent() > 0 ) - { + if (anIndexes.Extent() > 0) { QString aName; - if ( anIndexes.Extent() == 1 ) - { - int anIndex = anIndexes( 1 ); + if (anIndexes.Extent() == 1) { + int anIndex = anIndexes(1); - aName = QString( GEOMBase::GetName( anObj ) ) + QString( ":%1" ).arg( anIndex ); + aName = QString(GEOMBase::GetName(anObj)) + QString(":%1").arg(anIndex); + } + else { + aName = tr("GEOM_MEN_POPUP_NAME").arg(anIndexes.Extent()); } - else - aName = tr( "GEOM_MEN_POPUP_NAME" ).arg( anIndexes.Extent() ); - myEditCurrentArgument->setText( aName ); + myEditCurrentArgument->setText(aName); - if ( myConstructorId == 1 ) + if (myConstructorId == 1) myEdges = anIndexes; else myFaces = anIndexes; displayPreview(); - return; } } } - myFaces.Clear(); + } + + // clear selection + if (!(myEditCurrentArgument == Group2->LineEdit2 || + myEditCurrentArgument == Group3->LineEdit2)) { + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + } + + switch (getConstructorId()) { + case 1: + if (myEditCurrentArgument == Group2->LineEdit1) { + if (!myShape->_is_nil() && myEdges.Extent() == 0) + Group2->PushButton2->click(); + } + break; + case 2: + if (myEditCurrentArgument == Group3->LineEdit1) { + if (!myShape->_is_nil() && myFaces.Extent() == 0) + Group3->PushButton2->click(); + } + break; + default: + break; } } - -//================================================================================= -// function : LineEditReturnPressed() -// purpose : -//================================================================================= -void OperationGUI_FilletDlg::LineEditReturnPressed() -{ - QLineEdit* send = ( QLineEdit* )sender(); - - if ( send == Group1->LineEdit1 ) - myEditCurrentArgument = Group1->LineEdit1; - else if ( send == Group2->LineEdit1 ) - myEditCurrentArgument = Group2->LineEdit1; - else if ( send == Group3->LineEdit1 ) - myEditCurrentArgument = Group3->LineEdit1; - else - return; - - GEOMBase_Skeleton::LineEditReturnPressed(); - return; -} - - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -400,35 +431,61 @@ void OperationGUI_FilletDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if ( send == Group1->PushButton1 ) - { - Group1->LineEdit1->setFocus(); + if (send == Group1->PushButton1) { myEditCurrentArgument = Group1->LineEdit1; } - else if( send == Group2->PushButton1 ) - { - Group2->LineEdit1->setFocus(); + else if (send == Group2->PushButton1) { myEditCurrentArgument = Group2->LineEdit1; + Group2->PushButton2->setDown(false); + Group2->LineEdit2->setEnabled(false); } - else if( send == Group2->PushButton2 ) - { - Group2->LineEdit2->setFocus(); + else if (send == Group2->PushButton2) { myEditCurrentArgument = Group2->LineEdit2; + Group2->PushButton1->setDown(false); + Group2->LineEdit1->setEnabled(false); } - else if ( send == Group3->PushButton1 ) - { - Group3->LineEdit1->setFocus(); + else if (send == Group3->PushButton1) { myEditCurrentArgument = Group3->LineEdit1; + Group3->PushButton2->setDown(false); + Group3->LineEdit2->setEnabled(false); } - else if( send == Group3->PushButton2 ) - { - Group3->LineEdit1->setFocus(); + else if (send == Group3->PushButton2) { myEditCurrentArgument = Group3->LineEdit2; + Group3->PushButton1->setDown(false); + Group3->LineEdit1->setEnabled(false); } + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + activateSelection(); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); } +//================================================================================= +// function : LineEditReturnPressed() +// purpose : +//================================================================================= +void OperationGUI_FilletDlg::LineEditReturnPressed() +{ + QLineEdit* send = (QLineEdit*)sender(); + + if (send == Group1->LineEdit1) + myEditCurrentArgument = Group1->LineEdit1; + else if (send == Group2->LineEdit1) + myEditCurrentArgument = Group2->LineEdit1; + else if (send == Group3->LineEdit1) + myEditCurrentArgument = Group3->LineEdit1; + else + return; + + GEOMBase_Skeleton::LineEditReturnPressed(); +} //================================================================================= // function : ActivateThisDialog() @@ -437,22 +494,19 @@ void OperationGUI_FilletDlg::SetEditCurrentArgument() void OperationGUI_FilletDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - - activateSelection(); - displayPreview(); + ConstructorsClicked( getConstructorId() ); } - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void OperationGUI_FilletDlg::enterEvent( QEvent* e ) +void OperationGUI_FilletDlg::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) this->ActivateThisDialog(); } @@ -460,81 +514,33 @@ void OperationGUI_FilletDlg::enterEvent( QEvent* e ) // function : ValueChangedInSpinBox() // purpose : //================================================================================= -void OperationGUI_FilletDlg::ValueChangedInSpinBox( double newValue ) +void OperationGUI_FilletDlg::ValueChangedInSpinBox (double) { displayPreview(); } -//================================================================================= -// function : reset() -// purpose : -//================================================================================= -void OperationGUI_FilletDlg::reset() -{ - // Set Initial values of spinboxes - Group1->SpinBox_DX->SetValue( 5 ); - Group2->SpinBox_DX->SetValue( 5 ); - Group2->SpinBox_DY->SetValue( 5 ); - Group2->SpinBox_DZ->SetValue( 5 ); - Group3->SpinBox_DX->SetValue( 5 ); - Group3->SpinBox_DY->SetValue( 5 ); - Group3->SpinBox_DZ->SetValue( 5 ); - - Group1->LineEdit1->setText( "" ); - Group2->LineEdit1->setText( "" ); - Group2->LineEdit2->setText( "" ); - Group3->LineEdit1->setText( "" ); - Group3->LineEdit2->setText( "" ); - - // constructor id - int aConstructorId = getConstructorId(); - - if ( aConstructorId == 0 ) myEditCurrentArgument = Group1->LineEdit1; - else if ( aConstructorId == 1 ) myEditCurrentArgument = Group2->LineEdit1; - else myEditCurrentArgument = Group3->LineEdit1; - - myShape = GEOM::GEOM_Object::_nil(); - - myFaces.Clear(); - myEdges.Clear(); - - erasePreview( true ); - - activateSelection(); - - enableWidgets(); -} - -//================================================================================= -// function : getConstructorId() -// purpose : -//================================================================================= -int OperationGUI_FilletDlg::getConstructorId() const -{ - return GroupConstructors->id( GroupConstructors->selected() ); -} - //================================================================================= // function : activateSelection // purpose : Activate selection in accordance with myEditCurrentArgument //================================================================================= void OperationGUI_FilletDlg::activateSelection() { + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - if ( !myShape->_is_nil() && myEditCurrentArgument == Group2->LineEdit2 ) - localSelection( myShape, TopAbs_EDGE ); - else if ( !myShape->_is_nil() && myEditCurrentArgument == Group3->LineEdit2 ) - localSelection( myShape, TopAbs_FACE ); - else - { + if (!myShape->_is_nil() && myEditCurrentArgument == Group2->LineEdit2) + localSelection(myShape, TopAbs_EDGE); + else if (!myShape->_is_nil() && myEditCurrentArgument == Group3->LineEdit2) + localSelection(myShape, TopAbs_FACE); + else { TColStd_MapOfInteger aMap; - aMap.Add( GEOM_SHELL ); - aMap.Add( GEOM_SOLID ); - aMap.Add( GEOM_COMPOUND ); - globalSelection( aMap ); + aMap.Add(GEOM_SHELL); + aMap.Add(GEOM_SOLID); + aMap.Add(GEOM_COMPOUND); + globalSelection(aMap); } - SelectionIntoArgument(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); } //================================================================================= @@ -547,25 +553,21 @@ void OperationGUI_FilletDlg::enableWidgets() bool toEnable = !myShape->_is_nil(); - if ( anId == 1 ) - { - Group2->LineEdit2->setEnabled( toEnable ); - Group2->PushButton2->setEnabled( toEnable ); - - if ( !toEnable ) - { - Group2->LineEdit2->setText( "" ); + if (anId == 1) { + //Group2->LineEdit2->setEnabled(toEnable); + Group2->PushButton2->setEnabled(toEnable); + + if (!toEnable) { + Group2->LineEdit2->setText(""); myEdges.Clear(); } } - else if ( anId == 2 ) - { - Group3->LineEdit2->setEnabled( toEnable ); - Group3->PushButton2->setEnabled( toEnable ); + else if (anId == 2) { + //Group3->LineEdit2->setEnabled(toEnable); + Group3->PushButton2->setEnabled(toEnable); - if ( !toEnable ) - { - Group3->LineEdit2->setText( "" ); + if (!toEnable) { + Group3->LineEdit2->setText(""); myFaces.Clear(); } } @@ -577,20 +579,39 @@ void OperationGUI_FilletDlg::enableWidgets() //================================================================================= GEOM::GEOM_IOperations_ptr OperationGUI_FilletDlg::createOperation() { - return getGeomEngine()->GetILocalOperations( getStudyId() ); + return getGeomEngine()->GetILocalOperations(getStudyId()); } //================================================================================= -// function : ClickOnApply() +// function : isValid() // purpose : Verify validity of input data //================================================================================= -bool OperationGUI_FilletDlg::isValid( QString& ) +bool OperationGUI_FilletDlg::isValid (QString& msg) { - switch ( getConstructorId() ) + bool ok = true; + switch (getConstructorId()) { - case 0: return !myShape->_is_nil(); - case 1: return !myShape->_is_nil() && myEdges.Extent() > 0; - case 2: return !myShape->_is_nil() && myFaces.Extent() > 0; + case 0: + ok = Group1->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + return !myShape->_is_nil() && ok; + case 1: + if (Group2->RadioButton1->isChecked()) + ok = Group2->SpinBox_DX->isValid( msg, !IsPreview() ); + else + { + ok = Group2->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + ok = Group2->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok; + } + return !myShape->_is_nil() && myEdges.Extent() > 0 && ok; + case 2: + if (Group3->RadioButton1->isChecked()) + ok = Group3->SpinBox_DX->isValid( msg, !IsPreview() ); + else + { + ok = Group3->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + ok = Group3->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok; + } + return !myShape->_is_nil() && myFaces.Extent() > 0 && ok; default: return false; } } @@ -599,84 +620,124 @@ bool OperationGUI_FilletDlg::isValid( QString& ) // function : execute // purpose : //================================================================================= -bool OperationGUI_FilletDlg::execute( ObjectList& objects ) +bool OperationGUI_FilletDlg::execute (ObjectList& objects) { + QStringList aParameters; GEOM::GEOM_Object_var anObj; int anId = getConstructorId(); - if ( anId == 0 ) - anObj = GEOM::GEOM_ILocalOperations::_narrow( - getOperation() )->MakeFilletAll( myShape, getRadius() ); - else if ( anId == 1 ) - { - GEOM::ListOfLong_var aList = new GEOM::ListOfLong; - aList->length( myEdges.Extent() ); - - for ( int i = 1, n = myEdges.Extent(); i <= n; i++ ) - aList[ i - 1 ] = myEdges( i ); - if ( Group2->RadioButton1->isChecked() ) - anObj = GEOM::GEOM_ILocalOperations::_narrow( - getOperation() )->MakeFilletEdges( myShape, getRadius(), aList ); - else - anObj = GEOM::GEOM_ILocalOperations::_narrow( getOperation() )->MakeFilletEdgesR1R2( myShape, - (Group2->SpinBox_DY->GetValue()), - (Group2->SpinBox_DZ->GetValue()), - aList ); + if (anId == 0) { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeFilletAll(myShape, getRadius()); + if (!anObj->_is_nil()) + aParameters << Group1->SpinBox_DX->text(); } - else if ( anId == 2 ) - { - int i = 0; + else if (anId == 1) { GEOM::ListOfLong_var aList = new GEOM::ListOfLong; - aList->length( myFaces.Extent() ); + aList->length(myEdges.Extent()); - for ( int i = 1, n = myFaces.Extent(); i <= n; i++ ) - aList[ i - 1 ] = myFaces( i ); - if ( Group3->RadioButton1->isChecked() ) - anObj = GEOM::GEOM_ILocalOperations::_narrow( - getOperation() )->MakeFilletFaces( myShape, getRadius(), aList ); + for (int i = 1, n = myEdges.Extent(); i <= n; i++) + aList[ i - 1 ] = myEdges(i); + + if (Group2->RadioButton1->isChecked()) + { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeFilletEdges(myShape, getRadius(), aList); + if (!anObj->_is_nil()) + aParameters << Group2->SpinBox_DX->text(); + } else - anObj = GEOM::GEOM_ILocalOperations::_narrow( - getOperation() )->MakeFilletFacesR1R2( myShape, (Group3->SpinBox_DY->GetValue()), - (Group3->SpinBox_DZ->GetValue()), aList ); + { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeFilletEdgesR1R2(myShape, + Group2->SpinBox_DY->value(), + Group2->SpinBox_DZ->value(), + aList); + if (!anObj->_is_nil()) + { + aParameters << Group2->SpinBox_DY->text(); + aParameters << Group2->SpinBox_DZ->text(); + } + } + } + else if (anId == 2) { + GEOM::ListOfLong_var aList = new GEOM::ListOfLong; + aList->length(myFaces.Extent()); + + for (int i = 1, n = myFaces.Extent(); i <= n; i++) + aList[ i - 1 ] = myFaces(i); + + if (Group3->RadioButton1->isChecked()) { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeFilletFaces(myShape, getRadius(), aList); + if (!anObj->_is_nil()) + aParameters << Group3->SpinBox_DX->text(); + } + else { + anObj = GEOM::GEOM_ILocalOperations::_narrow(getOperation())-> + MakeFilletFacesR1R2(myShape, + Group3->SpinBox_DY->value(), + Group3->SpinBox_DZ->value(), aList); + if (!anObj->_is_nil()) + { + aParameters << Group3->SpinBox_DY->text(); + aParameters << Group3->SpinBox_DZ->text(); + } + } } - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + if (!anObj->_is_nil()) + { + if (!IsPreview()) + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + objects.push_back(anObj._retn()); + } return true; } //================================================================================= // function : getRadius -// purpose : Get radius +// purpose : Get radius //================================================================================= double OperationGUI_FilletDlg::getRadius() const { int anId = getConstructorId(); - if ( anId == 0 ) return Group1->SpinBox_DX->GetValue(); - else if ( anId == 1 ) return Group2->SpinBox_DX->GetValue(); - else return Group3->SpinBox_DX->GetValue(); + if (anId == 0) return Group1->SpinBox_DX->value(); + else if (anId == 1) return Group2->SpinBox_DX->value(); + else return Group3->SpinBox_DX->value(); } //================================================================================= // function : RadiobuttonClicked // purpose : //================================================================================= - -void OperationGUI_FilletDlg::RadioButton_Clicked() +void OperationGUI_FilletDlg::RadioButtonClicked() { - bool flag = ( (Group2->RadioButton1->isChecked()) && (Group3->RadioButton1->isChecked()) ); - flag = !flag; + const QObject* s = sender(); - Group2->SpinBox_DX->setEnabled(flag); - Group2->SpinBox_DY->setEnabled(!flag); - Group2->SpinBox_DZ->setEnabled(!flag); - Group2->RadioButton1->setChecked(flag); - Group2->RadioButton2->setChecked(!flag); - Group3->SpinBox_DX->setEnabled(flag); - Group3->SpinBox_DY->setEnabled(!flag); - Group3->SpinBox_DZ->setEnabled(!flag); - Group3->RadioButton1->setChecked(flag); - Group3->RadioButton2->setChecked(!flag); - displayPreview(); + bool flag = s == Group2->RadioButton1 || s == Group3->RadioButton1; + + Group2->RadioButton1->blockSignals(true); + Group2->RadioButton2->blockSignals(true); + Group3->RadioButton1->blockSignals(true); + Group3->RadioButton2->blockSignals(true); + + Group2->SpinBox_DX->setEnabled(flag); + Group2->SpinBox_DY->setEnabled(!flag); + Group2->SpinBox_DZ->setEnabled(!flag); + Group2->RadioButton1->setChecked(flag); + Group2->RadioButton2->setChecked(!flag); + Group3->SpinBox_DX->setEnabled(flag); + Group3->SpinBox_DY->setEnabled(!flag); + Group3->SpinBox_DZ->setEnabled(!flag); + Group3->RadioButton1->setChecked(flag); + Group3->RadioButton2->setChecked(!flag); + + Group2->RadioButton1->blockSignals(false); + Group2->RadioButton2->blockSignals(false); + Group3->RadioButton1->blockSignals(false); + Group3->RadioButton2->blockSignals(false); + + displayPreview(); } diff --git a/src/OperationGUI/OperationGUI_FilletDlg.h b/src/OperationGUI/OperationGUI_FilletDlg.h index c89491baf..5a5a71a33 100644 --- a/src/OperationGUI/OperationGUI_FilletDlg.h +++ b/src/OperationGUI/OperationGUI_FilletDlg.h @@ -1,34 +1,32 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : OperationGUI_FilletDlg.h -// Author : Damien COQUERET -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_FilletDlg.h +// Author : Damien COQUERET, Open CASCADE S.A.S. +// +#ifndef OPERATIONGUI_FILLETDLG_H +#define OPERATIONGUI_FILLETDLG_H -#ifndef DIALOGBOX_FILLET_H -#define DIALOGBOX_FILLET_H - -#include "GEOMBase_Skeleton.h" +#include #include @@ -41,48 +39,49 @@ class DlgRef_2Sel3Spin2Rb; //================================================================================= class OperationGUI_FilletDlg : public GEOMBase_Skeleton { - Q_OBJECT - + Q_OBJECT + public: - OperationGUI_FilletDlg(GeometryGUI* theGeometryGUI, QWidget* parent); - ~OperationGUI_FilletDlg(); - + OperationGUI_FilletDlg( GeometryGUI*, QWidget* ); + ~OperationGUI_FilletDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& msg ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ValueChangedInSpinBox( double newValue ); - void ConstructorsClicked( int constructorId ); - void RadioButton_Clicked(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ValueChangedInSpinBox( double ); + void ConstructorsClicked( int ); + void RadioButtonClicked(); + +private: + void Init(); + void enterEvent( QEvent* ); + void activateSelection(); + void enableWidgets(); + double getRadius() const; private: - void Init(); - void enterEvent( QEvent* e ); - void reset(); - int getConstructorId() const; - void activateSelection(); - void enableWidgets(); - double getRadius() const; + int myConstructorId; + + GEOM::GEOM_Object_var myShape; + TColStd_IndexedMapOfInteger myEdges; + TColStd_IndexedMapOfInteger myFaces; -private: - int myConstructorId; - - GEOM::GEOM_Object_var myShape; - TColStd_IndexedMapOfInteger myEdges; - TColStd_IndexedMapOfInteger myFaces; - - DlgRef_1Sel1Spin* Group1; - DlgRef_2Sel3Spin2Rb* Group2; - DlgRef_2Sel3Spin2Rb* Group3; + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_1Sel1Spin* Group1; + DlgRef_2Sel3Spin2Rb* Group2; + DlgRef_2Sel3Spin2Rb* Group3; }; -#endif // DIALOGBOX_FILLET_H +#endif // OPERATIONGUI_FILLETDLG_H diff --git a/src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.cxx b/src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.cxx new file mode 100644 index 000000000..778af7b67 --- /dev/null +++ b/src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.cxx @@ -0,0 +1,353 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_GetShapesOnShapeDlg.cxx +// Author : Sergey KUUL, Open CASCADE S.A.S. (sergey.kuul@opencascade.com) +// +#include "OperationGUI_GetShapesOnShapeDlg.h" + +#include +#include +#include + +#include +#include +#include +#include + +//============================================================================== +// class : OperationGUI_GetShapesOnShapeDlg() +// purpose : Constructs a OperationGUI_GetShapesOnShapeDlg which is a child of +// 'parent', with the name 'name' and widget flags set to 'f'. +// The dialog will by default be modeless, unless you set 'modal' to +// TRUE to construct a modal dialog. +//================================================================================= +OperationGUI_GetShapesOnShapeDlg::OperationGUI_GetShapesOnShapeDlg (GeometryGUI* theGeometryGUI, + QWidget* parent) + : GEOMBase_Skeleton(theGeometryGUI, parent, false) +{ + SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); + QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_SHAPES_ON_SHAPE"))); + QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); + + setWindowTitle(tr("GEOM_SHAPES_ON_SHAPE_TITLE")); + + /***************************************************************/ + mainFrame()->GroupConstructors->setTitle(tr("GEOM_SHAPES_ON_SHAPE")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); + + GroupPoints = new DlgRef_2Sel2List(centralWidget()); + //GroupPoints->GroupBox1->setTitle(tr("GEOM_PARTITION")); + GroupPoints->GroupBox1->setTitle("Input data"); + GroupPoints->TextLabel1->setText(tr("GEOM_SHAPES_ON_SHAPE_ESHAPE")); + GroupPoints->TextLabel2->setText(tr("GEOM_SHAPES_ON_SHAPE_CSHAPE")); + GroupPoints->TextLabel3->setText(tr("GEOM_RECONSTRUCTION_LIMIT")); + GroupPoints->TextLabel4->setText(tr("GEOM_SHAPES_ON_SHAPE_STATE")); + GroupPoints->PushButton1->setIcon(image2); + GroupPoints->PushButton2->setIcon(image2); + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); + + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); + /***************************************************************/ + + setHelpFileName("shapesonshape_page.html"); + + Init(); +} + +//================================================================================= +// function : ~OperationGUI_GetShapesOnShapeDlg +// purpose : Destroys the object and frees any allocated resources +//================================================================================= +OperationGUI_GetShapesOnShapeDlg::~OperationGUI_GetShapesOnShapeDlg() +{ +} + +//================================================================================= +// function : Init() +// purpose : +//================================================================================= +void OperationGUI_GetShapesOnShapeDlg::Init() +{ + // type for sub shape selection + GroupPoints->ComboBox1->addItem(tr("GEOM_RECONSTRUCTION_LIMIT_SOLID")); + // commented by skl for IPAL19949 - finder isn't allowed such type + //GroupPoints->ComboBox1->addItem(tr("GEOM_RECONSTRUCTION_LIMIT_SHELL")); + GroupPoints->ComboBox1->addItem(tr("GEOM_RECONSTRUCTION_LIMIT_FACE")); + // commented by skl for IPAL19949 - finder isn't allowed such type + //GroupPoints->ComboBox1->addItem(tr("GEOM_RECONSTRUCTION_LIMIT_WIRE")); + GroupPoints->ComboBox1->addItem(tr("GEOM_RECONSTRUCTION_LIMIT_EDGE")); + GroupPoints->ComboBox1->addItem(tr("GEOM_RECONSTRUCTION_LIMIT_VERTEX")); + + // type for state selection + GroupPoints->ComboBox2->addItem(tr("GEOM_STATE_IN")); + GroupPoints->ComboBox2->addItem(tr("GEOM_STATE_OUT")); + GroupPoints->ComboBox2->addItem(tr("GEOM_STATE_ON")); + GroupPoints->ComboBox2->addItem(tr("GEOM_STATE_ONIN")); + GroupPoints->ComboBox2->addItem(tr("GEOM_STATE_ONOUT")); + + GroupPoints->LineEdit1->clear(); + GroupPoints->LineEdit2->clear(); + myObject1 = myObject2 = GEOM::GEOM_Object::_nil(); + + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + + connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + + connect(GroupPoints->ComboBox1, SIGNAL(activated(int)), this, SLOT(ComboTextChanged())); + connect(GroupPoints->ComboBox2, SIGNAL(activated(int)), this, SLOT(ComboTextChanged())); + + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + initName(mainFrame()->GroupConstructors->title()); + + GroupPoints->TextLabel3->show(); + GroupPoints->ComboBox1->show(); + GroupPoints->ComboBox1->setCurrentIndex(0); + GroupPoints->ComboBox2->show(); + GroupPoints->ComboBox2->setCurrentIndex(0); + + globalSelection(GEOM_ALLSHAPES); + + GroupPoints->PushButton1->click(); + SelectionIntoArgument(); +} + +//================================================================================= +// function : ClickOnOk() +// purpose : +//================================================================================= +void OperationGUI_GetShapesOnShapeDlg::ClickOnOk() +{ + if (ClickOnApply()) + ClickOnCancel(); +} + +//================================================================================= +// function : ClickOnApply() +// purpose : +//================================================================================= +bool OperationGUI_GetShapesOnShapeDlg::ClickOnApply() +{ + if (!onAccept()) + return false; + + initName(); + // activate first line edit + GroupPoints->PushButton1->click(); + return true; +} + +//================================================================================= +// function : SelectionIntoArgument() +// purpose : Called when selection is changed or on dialog initialization or activation +//================================================================================= +void OperationGUI_GetShapesOnShapeDlg::SelectionIntoArgument() +{ + myEditCurrentArgument->setText(""); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) myObject1 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit2) myObject2 = GEOM::GEOM_Object::_nil(); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + QString aName = ""; + int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName, true); + + if (nbSel > 0) { + Standard_Boolean aRes = Standard_False; + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), aRes); + if (!CORBA::is_nil(aSelectedObject) && aRes && GEOMBase::IsShape(aSelectedObject)) { + myEditCurrentArgument->setText(aName); + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + myObject1 = aSelectedObject; + if (myObject2->_is_nil()) + GroupPoints->PushButton2->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { + myObject2 = aSelectedObject; + if (myObject1->_is_nil()) + GroupPoints->PushButton1->click(); + } + } + } +} + +//================================================================================= +// function : SetEditCurrentArgument() +// purpose : +//================================================================================= +void OperationGUI_GetShapesOnShapeDlg::SetEditCurrentArgument() +{ + QPushButton* send = (QPushButton*)sender(); + + if (send == GroupPoints->PushButton1) { + myEditCurrentArgument = GroupPoints->LineEdit1; + + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + } + else if (send == GroupPoints->PushButton2) { + myEditCurrentArgument = GroupPoints->LineEdit2; + + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + } + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); +} + +//================================================================================= +// function : LineEditReturnPressed() +// purpose : +//================================================================================= +void OperationGUI_GetShapesOnShapeDlg::LineEditReturnPressed() +{ + QLineEdit* send = (QLineEdit*)sender(); + if (send == GroupPoints->LineEdit1 || send == GroupPoints->LineEdit2) + { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } +} + +//================================================================================= +// function : ActivateThisDialog() +// purpose : +//================================================================================= +void OperationGUI_GetShapesOnShapeDlg::ActivateThisDialog() +{ + GEOMBase_Skeleton::ActivateThisDialog(); + globalSelection(GEOM_ALLSHAPES); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); +} + +//================================================================================= +// function : enterEvent() +// purpose : when mouse enter onto the QWidget +//================================================================================= +void OperationGUI_GetShapesOnShapeDlg::enterEvent (QEvent*) +{ + if (!mainFrame()->GroupConstructors->isEnabled()) + ActivateThisDialog(); +} + +//================================================================================= +// function : createOperation +// purpose : +//================================================================================= +GEOM::GEOM_IOperations_ptr OperationGUI_GetShapesOnShapeDlg::createOperation() +{ + return getGeomEngine()->GetIShapesOperations(getStudyId()); +} + +//================================================================================= +// function : isValid +// purpose : +//================================================================================= +bool OperationGUI_GetShapesOnShapeDlg::isValid(QString&) +{ + //Handle(SALOME_InteractiveObject) IO = firstIObject(); + //Standard_Boolean testResult; + //GEOM::GEOM_Object_var anObject = GEOMBase::ConvertIOinGEOMObject(IO, testResult); + //if (!testResult || anObject->_is_nil()) + // return false; + + return !CORBA::is_nil(myObject1) && !CORBA::is_nil(myObject2); +} + +//================================================================================= +// function : execute +// purpose : +//================================================================================= +bool OperationGUI_GetShapesOnShapeDlg::execute (ObjectList& objects) +{ + int aLimit = GroupPoints->ComboBox1->currentIndex(); + switch (aLimit) + { + case 0: aLimit = GEOM::SOLID ; break; + case 1: aLimit = GEOM::FACE ; break; + case 2: aLimit = GEOM::EDGE ; break; + case 3: aLimit = GEOM::VERTEX; break; + default: aLimit = GEOM::SHAPE ; break; + } + + GEOM::shape_state aState; + switch (GroupPoints->ComboBox2->currentIndex()) + { + case 0: aState = GEOM::ST_IN; break; + case 1: aState = GEOM::ST_OUT; break; + case 2: aState = GEOM::ST_ON; break; + case 3: aState = GEOM::ST_ONIN; break; + case 4: aState = GEOM::ST_ONOUT; break; + default: break; + } + + GEOM::GEOM_Object_var anObj = + GEOM::GEOM_IShapesOperations::_narrow(getOperation())-> + GetShapesOnShapeAsCompound(myObject2, myObject1, + (CORBA::Short) aLimit, + aState); + + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + + return objects.size(); +} + +//======================================================================= +//function : ComboTextChanged +//purpose : +//======================================================================= +void OperationGUI_GetShapesOnShapeDlg::ComboTextChanged() +{ + // VRS ???? What is it for ??? commented for a while... + //bool IsEnabled = GroupPoints->ComboBox1->currentIndex() < 3; +} diff --git a/src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.h b/src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.h new file mode 100644 index 000000000..1b819641c --- /dev/null +++ b/src/OperationGUI/OperationGUI_GetShapesOnShapeDlg.h @@ -0,0 +1,74 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_GetShapesOnShapeDlg.h +// Author : Sergey KUUL, Open CASCADE S.A.S. (sergey.kuul@opencascade.com) +// +#ifndef OPERATIONGUI_GETSHAPESONSHAPEDLG_H +#define OPERATIONGUI_GETSHAPESONSHAPEDLG_H + +#include +#include + +class DlgRef_2Sel2List; + +//================================================================================= +// class : OperationGUI_GetShapesOnShapeDlg +// purpose : +//================================================================================= +class OperationGUI_GetShapesOnShapeDlg : public GEOMBase_Skeleton +{ + Q_OBJECT + +public: + OperationGUI_GetShapesOnShapeDlg( GeometryGUI* theGeometryGUI, QWidget* parent = 0 ); + ~OperationGUI_GetShapesOnShapeDlg(); + +protected: + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + +private: + void Init(); + void enterEvent( QEvent* ); + +private: + GEOM::GEOM_Object_var myObject1; + GEOM::GEOM_Object_var myObject2; + int myShapeType; + GEOMAlgo_State myState; + + DlgRef_2Sel2List* GroupPoints; + +private slots: + void ClickOnOk(); + bool ClickOnApply(); + void SetEditCurrentArgument(); + void SelectionIntoArgument(); + void LineEditReturnPressed(); + void ActivateThisDialog(); + void ComboTextChanged(); +}; + +#endif // OPERATIONGUI_GETSHAPESONSHAPEDLG_H diff --git a/src/OperationGUI/OperationGUI_MaterialDlg.cxx b/src/OperationGUI/OperationGUI_MaterialDlg.cxx index 4fff3b2fb..7474b761e 100644 --- a/src/OperationGUI/OperationGUI_MaterialDlg.cxx +++ b/src/OperationGUI/OperationGUI_MaterialDlg.cxx @@ -1,44 +1,39 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_MaterialDlg.cxx +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) // -// File : OperationGUI_MaterialDlg.cxx -// Author : Julia DOROVSKIKH -// Module : GEOM -// $Header$ - #include "OperationGUI_MaterialDlg.h" #include "OperationGUI_PartitionDlg.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include "utilities.h" - -#include -#include -#include - -using namespace std; +#include +#include +#include +#include //================================================================================= // class : OperationGUI_MaterialDlg() @@ -47,37 +42,39 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -OperationGUI_MaterialDlg::OperationGUI_MaterialDlg (GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, GEOM::ListOfGO ListShapes, - bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +OperationGUI_MaterialDlg::OperationGUI_MaterialDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + GEOM::ListOfGO ListShapes, bool modal ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal ) { myListShapes = ListShapes; - myParentDlg = parent; + + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_PARTITION" ) ) ); - QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_PARTITION"))); - - setCaption(tr("GEOM_MATERIAL_TITLE")); + setWindowTitle( tr( "GEOM_MATERIAL_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_PARTITION")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_PARTITION" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1List1Spin1Btn_QTD(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_PARTITION")); + GroupPoints = new DlgRef_1List1Spin1Btn( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_PARTITION" ) ); - myShapeCol = GroupPoints->ListView1->addColumn(tr("GEOM_MATERIAL_SHAPE")); - myMaterCol = GroupPoints->ListView1->addColumn(tr("GEOM_MATERIAL_MATERIAL")); - GroupPoints->ListView1->setSelectionMode(QListView::Extended); - GroupPoints->ListView1->setSorting(-1); + QStringList columns; + columns << tr( "GEOM_MATERIAL_SHAPE" ) << tr( "GEOM_MATERIAL_MATERIAL" ); + GroupPoints->ListView1->setHeaderLabels( columns ); + GroupPoints->ListView1->setSelectionMode( QAbstractItemView::ExtendedSelection ); + GroupPoints->ListView1->setSortingEnabled( false ); - GroupPoints->TextLabel1->setText(tr("GEOM_MATERIAL_ID")); - GroupPoints->PushButton1->setText(tr("GEOM_MATERIAL_SET")); + GroupPoints->TextLabel1->setText( tr( "GEOM_MATERIAL_ID" ) ); + GroupPoints->PushButton1->setText( tr( "GEOM_MATERIAL_SET" ) ); - Layout1->addWidget(GroupPoints, 1, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); /***************************************************************/ setHelpFileName("partition_page.html"); @@ -102,43 +99,32 @@ void OperationGUI_MaterialDlg::Init() { // get materials list from the parent dialog OperationGUI_PartitionDlg* aParentDlg = - dynamic_cast(myParentDlg); - if (aParentDlg) + qobject_cast( parentWidget() ); + if ( aParentDlg ) myListMaterials = aParentDlg->GetListMaterials(); /* list filling */ - MESSAGE("Filling list with " << myListShapes.length() << " objects"); - QString aMaterialId; - QListViewItem *anItem = NULL; - for (int ind = 0; ind < myListShapes.length(); ind++) { + for ( int ind = 0; ind < myListShapes.length(); ind++ ) { GEOM::GEOM_Object_var anObject = myListShapes[ind]; - if (!anObject->_is_nil()) { - MESSAGE("Insert " << GEOMBase::GetName( anObject )); - if (ind < myListMaterials.length()) - aMaterialId = QString::number(myListMaterials[ind]); - else - aMaterialId = "0"; - if (anItem) - // insert after aPrevItem - anItem = new QListViewItem(GroupPoints->ListView1, anItem, - GEOMBase::GetName( anObject ), aMaterialId); - else - // the first item creation - anItem = new QListViewItem(GroupPoints->ListView1, - GEOMBase::GetName( anObject ), aMaterialId); + if ( !anObject->_is_nil() ) { + QStringList labels; + labels << GEOMBase::GetName( anObject ); + labels << ( ind < myListMaterials.length() ? + QString::number( myListMaterials[ind] ) : QString( "0" ) ); + GroupPoints->ListView1->addTopLevelItem( new QTreeWidgetItem( labels ) ); } } - MESSAGE("Filled"); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - buttonApply->close(TRUE); - buttonCancel->setText(tr("GEOM_BUT_CANCEL")); - - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetMaterial())); - - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + buttonApply()->setAttribute( Qt::WA_DeleteOnClose ); + buttonApply()->close(); + buttonCancel()->setText( tr( "GEOM_BUT_CANCEL" ) ); + + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetMaterial() ) ); + + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); } @@ -148,28 +134,22 @@ void OperationGUI_MaterialDlg::Init() //================================================================================= void OperationGUI_MaterialDlg::ClickOnOk() { - SUIT_Session::session()->activeApplication()->putInfo(tr("")); + SUIT_Session::session()->activeApplication()->putInfo( "" ); int nbSh = myListShapes.length(); - myListMaterials.length(nbSh); + myListMaterials.length( nbSh ); - QListViewItemIterator it (GroupPoints->ListView1); - for (int i = 0; it.current() != 0; it++, i++) { - QString aMatIdStr = it.current()->text(myMaterCol); - myListMaterials[i] = aMatIdStr.toInt(); - MESSAGE("For shape # " << i << " material ID = " << myListMaterials[i]); - } + QTreeWidgetItemIterator it( GroupPoints->ListView1 ); + for ( int i = 0; *it; it++, i++ ) + myListMaterials[i] = (*it)->text( 1 ).toInt(); // set materials list to the parent dialog OperationGUI_PartitionDlg* aParentDlg = - dynamic_cast(myParentDlg); - if (aParentDlg) - { - aParentDlg->SetListMaterials(myListMaterials); - } + qobject_cast( parentWidget() ); + if ( aParentDlg ) + aParentDlg->SetListMaterials( myListMaterials ); ClickOnCancel(); - return; } @@ -199,15 +179,13 @@ void OperationGUI_MaterialDlg::SelectionIntoArgument() //================================================================================= void OperationGUI_MaterialDlg::SetMaterial() { - int aMatId = GroupPoints->SpinBox1->value(); - QString aMatIdStr; - aMatIdStr.setNum(aMatId); - QListViewItemIterator it (GroupPoints->ListView1); - for (; it.current() != 0; it++) { - if (it.current()->isSelected()) - it.current()->setText(myMaterCol, aMatIdStr); + QString aMatIdStr = QString::number( GroupPoints->SpinBox1->value() ); + QList selectedItems = GroupPoints->ListView1->selectedItems(); + + QListIterator it( selectedItems ); + while ( it.hasNext() ) { + it.next()->setText( 1, aMatIdStr ); } - return; } @@ -218,8 +196,8 @@ void OperationGUI_MaterialDlg::SetMaterial() void OperationGUI_MaterialDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); return; } @@ -228,8 +206,8 @@ void OperationGUI_MaterialDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void OperationGUI_MaterialDlg::enterEvent(QEvent* e) +void OperationGUI_MaterialDlg::enterEvent( QEvent* ) { - if (!GroupConstructors->isEnabled()) + if ( !mainFrame()->GroupConstructors->isEnabled() ) this->ActivateThisDialog(); } diff --git a/src/OperationGUI/OperationGUI_MaterialDlg.h b/src/OperationGUI/OperationGUI_MaterialDlg.h index 39111f553..a4ed8d65e 100644 --- a/src/OperationGUI/OperationGUI_MaterialDlg.h +++ b/src/OperationGUI/OperationGUI_MaterialDlg.h @@ -1,35 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 CEA -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : OperationGUI_MaterialDlg.h -// Author : Julia DOROVSKIKH -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_MaterialDlg.h +// Author : Julia DOROVSKIKH, Open CASCADE S.A.S. (julia.dorovskikh@opencascade.com) +// +#ifndef OPERATIONGUI_MATERIALDLG_H +#define OPERATIONGUI_MATERIALDLG_H -#ifndef DIALOGBOX_MATERIAL_H -#define DIALOGBOX_MATERIAL_H - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1List1Spin1Btn_QTD.h" +#include +class DlgRef_1List1Spin1Btn; //================================================================================= // class : OperationGUI_MaterialDlg @@ -37,33 +36,28 @@ //================================================================================= class OperationGUI_MaterialDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - OperationGUI_MaterialDlg (GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, GEOM::ListOfGO ListShapes, - bool modal = FALSE, WFlags fl = 0); - ~OperationGUI_MaterialDlg(); - + OperationGUI_MaterialDlg( GeometryGUI*, QWidget*, GEOM::ListOfGO, + bool = false ); + ~OperationGUI_MaterialDlg(); + private: - void Init(); - void enterEvent(QEvent* e); - - QWidget* myParentDlg; - - GEOM::ListOfGO myListShapes; - GEOM::ListOfLong myListMaterials; - - DlgRef_1List1Spin1Btn_QTD* GroupPoints; - - int myShapeCol; - int myMaterCol; - + void Init(); + void enterEvent( QEvent* ); + +private: + GEOM::ListOfGO myListShapes; + GEOM::ListOfLong myListMaterials; + + DlgRef_1List1Spin1Btn* GroupPoints; + private slots: - void ClickOnOk(); - void ActivateThisDialog(); - void SelectionIntoArgument(); - void SetMaterial(); + void ClickOnOk(); + void ActivateThisDialog(); + void SelectionIntoArgument(); + void SetMaterial(); }; -#endif // DIALOGBOX_MATERIAL_H +#endif // OPERATIONGUI_MATERIALDLG_H diff --git a/src/OperationGUI/OperationGUI_PartitionDlg.cxx b/src/OperationGUI/OperationGUI_PartitionDlg.cxx index 2c736f5b7..e52df271c 100644 --- a/src/OperationGUI/OperationGUI_PartitionDlg.cxx +++ b/src/OperationGUI/OperationGUI_PartitionDlg.cxx @@ -1,45 +1,41 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_PartitionDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : OperationGUI_PartitionDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "OperationGUI_PartitionDlg.h" -#include "GEOMImpl_Types.hxx" +#include +#include +#include -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include -#include -#include -#include - -#include "utilities.h" +#include +#include +#include +#include +#include //================================================================================= // class : OperationGUI_PartitionDlg() @@ -48,40 +44,45 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -OperationGUI_PartitionDlg::OperationGUI_PartitionDlg(GeometryGUI* theGeometryGUI, QWidget* parent) - :GEOMBase_Skeleton(theGeometryGUI, parent, "OperationGUI_PartitionDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +OperationGUI_PartitionDlg::OperationGUI_PartitionDlg( GeometryGUI* theGeometryGUI, QWidget* parent ) + : GEOMBase_Skeleton( theGeometryGUI, parent, false ) { SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); - QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PARTITION"))); - QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_PARTITION_PLANE"))); - QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image0( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_PARTITION" ) ) ); + QPixmap image1( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_PARTITION_PLANE" ) ) ); + QPixmap image2( aResMgr->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_PARTITION_TITLE")); + setWindowTitle( tr( "GEOM_PARTITION_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_PARTITION")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_PARTITION" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setIcon( image1 ); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); // Full partition (contains half-space partition) - GroupPoints = new DlgRef_2Sel1List1Check_QTD(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_PARTITION")); - GroupPoints->TextLabel1->setText(tr("GEOM_OBJECTS")); - GroupPoints->TextLabel2->setText(tr("GEOM_TOOL_OBJECT")); - GroupPoints->TextLabel3->setText(tr("GEOM_RECONSTRUCTION_LIMIT")); - GroupPoints->PushButton1->setPixmap(image2); - GroupPoints->PushButton2->setPixmap(image2); + GroupPoints = new DlgRef_2Sel1List1Check( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_PARTITION" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_OBJECTS" ) ); + GroupPoints->TextLabel2->setText( tr( "GEOM_TOOL_OBJECT" ) ); + GroupPoints->TextLabel3->setText( tr( "GEOM_RECONSTRUCTION_LIMIT" ) ); + GroupPoints->PushButton1->setIcon( image2 ); + GroupPoints->PushButton2->setIcon( image2 ); GroupPoints->LineEdit1->setReadOnly( true ); GroupPoints->LineEdit2->setReadOnly( true ); - GroupPoints->radioButton4->setText(tr("GEOM_KEEP_NONLIMIT_SHAPES")); + GroupPoints->LineEdit1->setEnabled(true); + GroupPoints->LineEdit2->setEnabled(false); + GroupPoints->CheckButton1->setText( tr( "GEOM_KEEP_NONLIMIT_SHAPES" ) ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); - Layout1->addWidget(GroupPoints, 2, 0); /***************************************************************/ - setHelpFileName("partition_page.html"); - + setHelpFileName( "partition_page.html" ); + Init(); } @@ -95,6 +96,15 @@ OperationGUI_PartitionDlg::~OperationGUI_PartitionDlg() // no need to delete child widgets, Qt does it all for us } +void OperationGUI_PartitionDlg::SetListMaterials( GEOM::ListOfLong ListMaterials ) +{ + myListMaterials = ListMaterials; +} + +GEOM::ListOfLong OperationGUI_PartitionDlg::GetListMaterials() +{ + return myListMaterials; +} //================================================================================= // function : Init() @@ -103,34 +113,37 @@ OperationGUI_PartitionDlg::~OperationGUI_PartitionDlg() void OperationGUI_PartitionDlg::Init() { /* type for sub shape selection */ - GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_SOLID")); - GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_SHELL")); - GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_FACE")); - GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_WIRE")); - GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_EDGE")); - GroupPoints->ComboBox1->insertItem(tr("GEOM_RECONSTRUCTION_LIMIT_VERTEX")); - GroupPoints->radioButton4->setChecked(FALSE); + GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_SOLID" ) ); + GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_SHELL" ) ); + GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_FACE" ) ); + GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_WIRE" ) ); + GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_EDGE" ) ); + GroupPoints->ComboBox1->addItem( tr( "GEOM_RECONSTRUCTION_LIMIT_VERTEX" ) ); + GroupPoints->CheckButton1->setChecked( false ); + + mainFrame()->GroupBoxPublish->show(); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); - - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - - connect(GroupPoints->ComboBox1, SIGNAL(activated(int)), this, SLOT(ComboTextChanged())); - - connect(GroupPoints->radioButton4, SIGNAL(stateChanged(int)), this, SLOT(ReverseSense(int))); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); + + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->PushButton2, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupPoints->LineEdit2, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + + connect( GroupPoints->ComboBox1, SIGNAL( activated( int ) ), this, SLOT( ComboTextChanged() ) ); + + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "GEOM_PARTITION" ) ); + ConstructorsClicked( 0 ); + GroupPoints->PushButton1->click(); } @@ -138,51 +151,52 @@ void OperationGUI_PartitionDlg::Init() // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void OperationGUI_PartitionDlg::ConstructorsClicked(int constructorId) +void OperationGUI_PartitionDlg::ConstructorsClicked( int constructorId ) { - disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); globalSelection(); - myListShapes.length(0); - myListTools.length(0); - myListKeepInside.length(0); - myListRemoveInside.length(0); - myListMaterials.length(0); - - switch (constructorId) - { - case 0: /*Full partition */ - { - GroupPoints->GroupBox1->setTitle(tr("GEOM_PARTITION")); - GroupPoints->TextLabel2->setText(tr("GEOM_TOOL_OBJECT")); - resize(0, 0); - GroupPoints->TextLabel3->show(); - GroupPoints->ComboBox1->show(); - GroupPoints->ComboBox1->setCurrentItem(0); - GroupPoints->radioButton4->show(); - break; - } - case 1: /*Half-space partition */ - { - - GroupPoints->GroupBox1->setTitle(tr("GEOM_PARTITION_HALFSPACE")); - GroupPoints->TextLabel3->hide(); - GroupPoints->ComboBox1->hide(); - GroupPoints->TextLabel2->setText(tr("GEOM_PLANE")); - GroupPoints->radioButton4->hide(); - resize(0, 0); - break; - } - } + myListShapes.length( 0 ); + myListTools.length( 0 ); + myListKeepInside.length( 0 ); + myListRemoveInside.length( 0 ); + myListMaterials.length( 0 ); + + switch ( constructorId ) { + case 0: /*Full partition */ + GroupPoints->GroupBox1->setTitle( tr( "GEOM_PARTITION" ) ); + GroupPoints->TextLabel2->setText( tr( "GEOM_TOOL_OBJECT" ) ); + GroupPoints->TextLabel3->show(); + GroupPoints->ComboBox1->show(); + GroupPoints->ComboBox1->setCurrentIndex( 0 ); + GroupPoints->CheckButton1->show(); + GroupPoints->PushButton1->setDown( true ); + GroupPoints->PushButton2->setDown( false ); + GroupPoints->LineEdit1->setEnabled(true); + GroupPoints->LineEdit2->setEnabled(false); + break; + case 1: /*Half-space partition */ + GroupPoints->GroupBox1->setTitle( tr( "GEOM_PARTITION_HALFSPACE" ) ); + GroupPoints->TextLabel3->hide(); + GroupPoints->ComboBox1->hide(); + GroupPoints->TextLabel2->setText( tr( "GEOM_PLANE" ) ); + GroupPoints->CheckButton1->hide(); + GroupPoints->PushButton1->setDown( true ); + GroupPoints->LineEdit1->setEnabled(true); + break; + } myEditCurrentArgument = GroupPoints->LineEdit1; GroupPoints->LineEdit1->clear(); GroupPoints->LineEdit2->clear(); + qApp->processEvents(); + updateGeometry(); + resize( minimumSizeHint() ); + myEditCurrentArgument->setFocus(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - MESSAGE(width()<<" "<getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); } @@ -221,12 +235,14 @@ void OperationGUI_PartitionDlg::SelectionIntoArgument() myEditCurrentArgument->setText( "" ); QString aString = ""; - int nbSel = GEOMBase::GetNameOfSelectedIObjects( selectedIO(), aString, true ); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); - if ( nbSel < 1 ) - { - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) - { + int nbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aString, true); + + if ( nbSel < 1 ) { + if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) { myListShapes.length( 0 ); myListMaterials.length( 0 ); } @@ -236,22 +252,21 @@ void OperationGUI_PartitionDlg::SelectionIntoArgument() // One and only one plane can be selected - if ( getConstructorId() == 1 && myEditCurrentArgument == GroupPoints->LineEdit2 && nbSel != 1 ) - { + if ( getConstructorId() == 1 && + myEditCurrentArgument == GroupPoints->LineEdit2 && + nbSel != 1 ) { myListTools.length( 0 ); return; } - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) - { - GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myListShapes, true ); + if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) { + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myListShapes, true); myListMaterials.length( 0 ); if ( !myListShapes.length() ) return; } - else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) - { - GEOMBase::ConvertListOfIOInListOfGO( selectedIO(), myListTools, true ); + else if ( myEditCurrentArgument == GroupPoints->LineEdit2 ) { + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myListTools, true); if ( !myListTools.length() ) return; } @@ -268,19 +283,27 @@ void OperationGUI_PartitionDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if(send == GroupPoints->PushButton1) + if ( send == GroupPoints->PushButton1 ) { myEditCurrentArgument = GroupPoints->LineEdit1; - else if(send == GroupPoints->PushButton2) - { + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit1->setEnabled(true); + GroupPoints->LineEdit2->setEnabled(false); + } + else if ( send == GroupPoints->PushButton2 ) { + myGeomGUI->getApp()->selectionMgr()->clearSelected(); //clear prewious selection myEditCurrentArgument = GroupPoints->LineEdit2; - if( getConstructorId()==1 ) + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + GroupPoints->LineEdit2->setEnabled(true); + if ( getConstructorId() == 1 ) globalSelection( GEOM_PLANE ); } globalSelection( GEOM_ALLSHAPES ); - + myEditCurrentArgument->setFocus(); SelectionIntoArgument(); + send->setDown(true); } @@ -292,12 +315,11 @@ void OperationGUI_PartitionDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || - send == GroupPoints->LineEdit2 ) - { + if ( send == GroupPoints->LineEdit1 || + send == GroupPoints->LineEdit2 ) { myEditCurrentArgument = send; GEOMBase_Skeleton::LineEditReturnPressed(); - } + } } @@ -308,10 +330,10 @@ void OperationGUI_PartitionDlg::LineEditReturnPressed() void OperationGUI_PartitionDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); - ConstructorsClicked( getConstructorId() ); + ConstructorsClicked( getConstructorId() ); } @@ -319,9 +341,9 @@ void OperationGUI_PartitionDlg::ActivateThisDialog() // function : enterEvent() // purpose : //================================================================================= -void OperationGUI_PartitionDlg::enterEvent(QEvent* e) +void OperationGUI_PartitionDlg::enterEvent( QEvent* ) { - if (!GroupConstructors->isEnabled()) + if ( !mainFrame()->GroupConstructors->isEnabled() ) this->ActivateThisDialog(); } @@ -340,10 +362,10 @@ GEOM::GEOM_IOperations_ptr OperationGUI_PartitionDlg::createOperation() // function : isValid // purpose : //================================================================================= -bool OperationGUI_PartitionDlg::isValid( QString& msg ) +bool OperationGUI_PartitionDlg::isValid( QString& ) { - return (myListShapes.length() || myListTools.length() || - myListKeepInside.length() || myListRemoveInside.length()); + return ( myListShapes.length() || myListTools.length() || + myListKeepInside.length() || myListRemoveInside.length() ); } @@ -360,13 +382,13 @@ bool OperationGUI_PartitionDlg::execute( ObjectList& objects ) int aLimit = GetLimit(); int aConstructorId = getConstructorId(); - int aKeepNonlimitShapes = 0; - if (aConstructorId == 1) { + + if ( aConstructorId == 1 ) { aLimit = GEOM::SHAPE; } else { - if(GroupPoints->radioButton4->isChecked()) { + if ( GroupPoints->CheckButton1->isChecked() ) { aKeepNonlimitShapes = 1; } else { @@ -374,39 +396,42 @@ bool OperationGUI_PartitionDlg::execute( ObjectList& objects ) } } - if (isValid( msg )) { - - anObj = GEOM::GEOM_IBooleanOperations::_narrow(getOperation())-> - MakePartition(myListShapes, myListTools, - myListKeepInside, myListRemoveInside, - aLimit, false, myListMaterials, aKeepNonlimitShapes); + if ( isValid( msg ) ) { + anObj = GEOM::GEOM_IBooleanOperations::_narrow( getOperation() )-> + MakePartition( myListShapes, myListTools, + myListKeepInside, myListRemoveInside, + aLimit, false, myListMaterials, aKeepNonlimitShapes ); res = true; } - if (!anObj->_is_nil()) + if ( !anObj->_is_nil() ) objects.push_back( anObj._retn() ); return res; } - //================================================================================= -// function : closeEvent +// function : restoreSubShapes // purpose : //================================================================================= -void OperationGUI_PartitionDlg::closeEvent( QCloseEvent* e ) +void OperationGUI_PartitionDlg::restoreSubShapes( SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject ) { - GEOMBase_Skeleton::closeEvent( e ); + if ( mainFrame()->CheckBoxRestoreSS->isChecked() ) { + // empty list of arguments means that all arguments should be restored + getGeomEngine()->RestoreSubShapesSO( theStudy, theSObject, GEOM::ListOfGO(), + /*theFindMethod=*/GEOM::FSM_GetInPlaceByHistory, + /*theInheritFirstArg=*/myListShapes.length() == 1 ); // ? false + } } - //======================================================================= //function : ComboTextChanged //purpose : //======================================================================= void OperationGUI_PartitionDlg::ComboTextChanged() { - bool IsEnabled = GroupPoints->ComboBox1->currentItem() < 3; + //bool IsEnabled = GroupPoints->ComboBox1->currentItem() < 3; //GroupPoints->LineEdit3->setEnabled(IsEnabled); //GroupPoints->LineEdit4->setEnabled(IsEnabled); //GroupPoints->TextLabel4->setEnabled(IsEnabled); @@ -415,17 +440,15 @@ void OperationGUI_PartitionDlg::ComboTextChanged() //GroupPoints->PushButton4->setEnabled(IsEnabled); } - //================================================================================= // function : GetLimit() // purpose : //================================================================================= int OperationGUI_PartitionDlg::GetLimit() const { - int aLimit = GroupPoints->ComboBox1->currentItem(); + int aLimit = GroupPoints->ComboBox1->currentIndex(); - switch (aLimit) - { + switch ( aLimit ) { case 0: aLimit = GEOM::SOLID ; break; case 1: aLimit = GEOM::SHELL ; break; case 2: aLimit = GEOM::FACE ; break; diff --git a/src/OperationGUI/OperationGUI_PartitionDlg.h b/src/OperationGUI/OperationGUI_PartitionDlg.h index ba321be37..a540a05eb 100644 --- a/src/OperationGUI/OperationGUI_PartitionDlg.h +++ b/src/OperationGUI/OperationGUI_PartitionDlg.h @@ -1,35 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : OperationGUI_PartitionDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : OperationGUI_PartitionDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef OPERATIONGUI_PARTITIONDLG_H +#define OPERATIONGUI_PARTITIONDLG_H -#ifndef DIALOGBOX_PARTITION_H -#define DIALOGBOX_PARTITION_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel1List1Check_QTD.h" +class DlgRef_2Sel1List1Check; //================================================================================= // class : OperationGUI_PartitionDlg @@ -37,48 +36,45 @@ //================================================================================= class OperationGUI_PartitionDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - OperationGUI_PartitionDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0); - ~OperationGUI_PartitionDlg(); - - void SetListMaterials(GEOM::ListOfLong ListMaterials) - { myListMaterials = ListMaterials; } - - GEOM::ListOfLong GetListMaterials() - { return myListMaterials; } + OperationGUI_PartitionDlg( GeometryGUI*, QWidget* = 0 ); + ~OperationGUI_PartitionDlg(); + + void SetListMaterials( GEOM::ListOfLong ); + GEOM::ListOfLong GetListMaterials(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void restoreSubShapes( SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr ); private: - void Init(); - void enterEvent(QEvent* e); - int GetLimit() const; + void Init(); + void enterEvent( QEvent* ); + int GetLimit() const; - GEOM::ListOfGO myListShapes; - GEOM::ListOfLong myListMaterials; - GEOM::ListOfGO myListTools; - GEOM::ListOfGO myListRemoveInside; - GEOM::ListOfGO myListKeepInside; +private: + GEOM::ListOfGO myListShapes; + GEOM::ListOfLong myListMaterials; + GEOM::ListOfGO myListTools; + GEOM::ListOfGO myListRemoveInside; + GEOM::ListOfGO myListKeepInside; - DlgRef_2Sel1List1Check_QTD* GroupPoints; + DlgRef_2Sel1List1Check* GroupPoints; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ComboTextChanged(); - void ConstructorsClicked(int constructorId); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ComboTextChanged(); + void ConstructorsClicked( int ); }; -#endif // DIALOGBOX_PARTITION_H +#endif // OPERATIONGUI_PARTITIONDLG_H diff --git a/src/PARTITION/Makefile.in b/src/PARTITION/Makefile.in index 74a06a7fd..eee795478 100644 --- a/src/PARTITION/Makefile.in +++ b/src/PARTITION/Makefile.in @@ -1,31 +1,30 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM PARTITION : partition algorithm -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.in # Author : Marc Tajchman (CEA) # Module : GEOM # $Header$ - +# top_srcdir=@top_srcdir@ top_builddir=../.. srcdir=@srcdir@ diff --git a/src/PARTITION/Partition.cdl b/src/PARTITION/Partition.cdl index 0c1c5179c..1f4c8ed30 100644 --- a/src/PARTITION/Partition.cdl +++ b/src/PARTITION/Partition.cdl @@ -1,44 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- GEOM PARTITION : partition algorithm +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. --- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. -- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File : Partition.cdl -- Author : Benedicte MARTIN diff --git a/src/PARTITION/Partition_Inter2d.cdl b/src/PARTITION/Partition_Inter2d.cdl index 371186e58..31ed37847 100644 --- a/src/PARTITION/Partition_Inter2d.cdl +++ b/src/PARTITION/Partition_Inter2d.cdl @@ -1,44 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- GEOM PARTITION : partition algorithm +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. --- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. -- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File : Partition_Inter2d.cdl -- Author : Benedicte MARTIN diff --git a/src/PARTITION/Partition_Inter2d.cxx b/src/PARTITION/Partition_Inter2d.cxx index 2760b23e6..4469bb5b8 100644 --- a/src/PARTITION/Partition_Inter2d.cxx +++ b/src/PARTITION/Partition_Inter2d.cxx @@ -1,7 +1,7 @@ -// GEOM PARTITION : partition algorithm +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R& D, LEG, PRINCIPIA R& D, BUREAU VERITAS +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -17,15 +17,14 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM PARTITION : partition algorithm // File : Partition_Inter2d.cxx // Author : Benedicte MARTIN // Module : GEOM // $Header$ - +// #include "Partition_Inter2d.ixx" #include "utilities.h" diff --git a/src/PARTITION/Partition_Inter2d.hxx b/src/PARTITION/Partition_Inter2d.hxx index da882ca07..5942fcf14 100644 --- a/src/PARTITION/Partition_Inter2d.hxx +++ b/src/PARTITION/Partition_Inter2d.hxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Inter2d.hxx // Module : GEOM - +// #ifndef _Partition_Inter2d_HeaderFile #define _Partition_Inter2d_HeaderFile diff --git a/src/PARTITION/Partition_Inter2d.ixx b/src/PARTITION/Partition_Inter2d.ixx index 3725060ed..954e70da9 100644 --- a/src/PARTITION/Partition_Inter2d.ixx +++ b/src/PARTITION/Partition_Inter2d.ixx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Inter2d.ixx // Module : GEOM - +// #include "Partition_Inter2d.jxx" diff --git a/src/PARTITION/Partition_Inter2d.jxx b/src/PARTITION/Partition_Inter2d.jxx index 944b3a55c..30cc24a04 100644 --- a/src/PARTITION/Partition_Inter2d.jxx +++ b/src/PARTITION/Partition_Inter2d.jxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Inter2d.jxx // Module : GEOM - +// #ifndef _BRepAlgo_AsDes_HeaderFile #include #endif diff --git a/src/PARTITION/Partition_Inter3d.cdl b/src/PARTITION/Partition_Inter3d.cdl index fbbfd63fb..f37cbbb9a 100644 --- a/src/PARTITION/Partition_Inter3d.cdl +++ b/src/PARTITION/Partition_Inter3d.cdl @@ -1,44 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- GEOM PARTITION : partition algorithm +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. --- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. -- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File : Partition_Inter3d.cdl -- Author : Benedicte MARTIN diff --git a/src/PARTITION/Partition_Inter3d.cxx b/src/PARTITION/Partition_Inter3d.cxx index 771fc19d1..87de80135 100644 --- a/src/PARTITION/Partition_Inter3d.cxx +++ b/src/PARTITION/Partition_Inter3d.cxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Inter3d.cxx // Author : Benedicte MARTIN // Module : GEOM // $Header$ - +// #include "Partition_Inter2d.hxx" #include "Partition_Inter3d.ixx" #include "utilities.h" diff --git a/src/PARTITION/Partition_Inter3d.hxx b/src/PARTITION/Partition_Inter3d.hxx index bb2b43106..1573cc5f1 100644 --- a/src/PARTITION/Partition_Inter3d.hxx +++ b/src/PARTITION/Partition_Inter3d.hxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Inter3d.hxx // Module : GEOM - +// #ifndef _Partition_Inter3d_HeaderFile #define _Partition_Inter3d_HeaderFile diff --git a/src/PARTITION/Partition_Inter3d.ixx b/src/PARTITION/Partition_Inter3d.ixx index 438ff8665..a760097d0 100644 --- a/src/PARTITION/Partition_Inter3d.ixx +++ b/src/PARTITION/Partition_Inter3d.ixx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Inter3d.ixx // Module : GEOM - +// #include "Partition_Inter3d.jxx" diff --git a/src/PARTITION/Partition_Inter3d.jxx b/src/PARTITION/Partition_Inter3d.jxx index 90453e547..54e7732e3 100644 --- a/src/PARTITION/Partition_Inter3d.jxx +++ b/src/PARTITION/Partition_Inter3d.jxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Inter3d.jxx // Module : GEOM - +// #ifndef _BRepAlgo_AsDes_HeaderFile #include #endif diff --git a/src/PARTITION/Partition_Loop.cdl b/src/PARTITION/Partition_Loop.cdl index c474632b3..05bbf3e8b 100644 --- a/src/PARTITION/Partition_Loop.cdl +++ b/src/PARTITION/Partition_Loop.cdl @@ -1,44 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- GEOM PARTITION : partition algorithm +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. --- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. -- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File : Partition_Loop.cdl -- Author : Benedicte MARTIN diff --git a/src/PARTITION/Partition_Loop.cxx b/src/PARTITION/Partition_Loop.cxx index f118f857d..807bc74af 100644 --- a/src/PARTITION/Partition_Loop.cxx +++ b/src/PARTITION/Partition_Loop.cxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Loop.cxx // Author : Benedicte MARTIN // Module : GEOM // $Header$ - +// #include #include "Partition_Loop.ixx" diff --git a/src/PARTITION/Partition_Loop.hxx b/src/PARTITION/Partition_Loop.hxx index 52f2629ca..6d8113716 100644 --- a/src/PARTITION/Partition_Loop.hxx +++ b/src/PARTITION/Partition_Loop.hxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Loop.hxx // Module : GEOM - +// #ifndef _Partition_Loop_HeaderFile #define _Partition_Loop_HeaderFile diff --git a/src/PARTITION/Partition_Loop.ixx b/src/PARTITION/Partition_Loop.ixx index 64eb2d66b..3b69d33db 100644 --- a/src/PARTITION/Partition_Loop.ixx +++ b/src/PARTITION/Partition_Loop.ixx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Loop.ixx // Module : GEOM - +// #include "Partition_Loop.jxx" diff --git a/src/PARTITION/Partition_Loop.jxx b/src/PARTITION/Partition_Loop.jxx index c23bd5206..a9384fe3a 100644 --- a/src/PARTITION/Partition_Loop.jxx +++ b/src/PARTITION/Partition_Loop.jxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Loop.jxx // Module : GEOM - +// #ifndef _TopoDS_Face_HeaderFile #include #endif diff --git a/src/PARTITION/Partition_Loop2d.cdl b/src/PARTITION/Partition_Loop2d.cdl index dfdf62504..ee7ac3404 100644 --- a/src/PARTITION/Partition_Loop2d.cdl +++ b/src/PARTITION/Partition_Loop2d.cdl @@ -1,27 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- GEOM PARTITION : partition algorithm +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- Copyright (C) 2003 CEA/DEN, EDF R&D +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. -- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File : Partition_Loop2d.cdl -- Author : Benedicte MARTIN diff --git a/src/PARTITION/Partition_Loop2d.cxx b/src/PARTITION/Partition_Loop2d.cxx index 731728778..534e76a41 100644 --- a/src/PARTITION/Partition_Loop2d.cxx +++ b/src/PARTITION/Partition_Loop2d.cxx @@ -1,29 +1,30 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // GEOM PARTITION : partition algorithm -// // File : Partition_Loop2d.cxx // Author : Benedicte MARTIN // Module : GEOM // $Header$ - +// #include "Partition_Loop2d.ixx" #include "utilities.h" diff --git a/src/PARTITION/Partition_Loop2d.hxx b/src/PARTITION/Partition_Loop2d.hxx index eaba040f3..e60b515a1 100644 --- a/src/PARTITION/Partition_Loop2d.hxx +++ b/src/PARTITION/Partition_Loop2d.hxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // GEOM PARTITION : partition algorithm -// // File : Partition_Loop2d.hxx // Module : GEOM - +// #ifndef _Partition_Loop2d_HeaderFile #define _Partition_Loop2d_HeaderFile diff --git a/src/PARTITION/Partition_Loop2d.ixx b/src/PARTITION/Partition_Loop2d.ixx index 1868d7d4b..18b728c33 100644 --- a/src/PARTITION/Partition_Loop2d.ixx +++ b/src/PARTITION/Partition_Loop2d.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include "Partition_Loop2d.jxx" diff --git a/src/PARTITION/Partition_Loop2d.jxx b/src/PARTITION/Partition_Loop2d.jxx index b4127d344..0118ee22e 100644 --- a/src/PARTITION/Partition_Loop2d.jxx +++ b/src/PARTITION/Partition_Loop2d.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Face_HeaderFile #include #endif diff --git a/src/PARTITION/Partition_Loop3d.cdl b/src/PARTITION/Partition_Loop3d.cdl index 7b2262256..33e90df74 100644 --- a/src/PARTITION/Partition_Loop3d.cdl +++ b/src/PARTITION/Partition_Loop3d.cdl @@ -1,27 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- GEOM PARTITION : partition algorithm +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- Copyright (C) 2003 CEA/DEN, EDF R&D +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. -- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File : Partition_Loop3d.cdl -- Module : GEOM diff --git a/src/PARTITION/Partition_Loop3d.cxx b/src/PARTITION/Partition_Loop3d.cxx index 4d83a4616..ccca4a36b 100644 --- a/src/PARTITION/Partition_Loop3d.cxx +++ b/src/PARTITION/Partition_Loop3d.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // GEOM PARTITION : partition algorithm -// // File : Partition_Loop3d.cxx // Module : GEOM - +// #include "Partition_Loop3d.ixx" #include diff --git a/src/PARTITION/Partition_Loop3d.hxx b/src/PARTITION/Partition_Loop3d.hxx index 38be1c3ee..cf7a2f209 100644 --- a/src/PARTITION/Partition_Loop3d.hxx +++ b/src/PARTITION/Partition_Loop3d.hxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // GEOM PARTITION : partition algorithm -// // File : Partition_Loop3d.hxx // Module : GEOM - +// #ifndef _Partition_Loop3d_HeaderFile #define _Partition_Loop3d_HeaderFile diff --git a/src/PARTITION/Partition_Loop3d.ixx b/src/PARTITION/Partition_Loop3d.ixx index 75c6f942a..83205eb5e 100644 --- a/src/PARTITION/Partition_Loop3d.ixx +++ b/src/PARTITION/Partition_Loop3d.ixx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #include "Partition_Loop3d.jxx" diff --git a/src/PARTITION/Partition_Loop3d.jxx b/src/PARTITION/Partition_Loop3d.jxx index 9a6f3efaa..7b8e1f45f 100644 --- a/src/PARTITION/Partition_Loop3d.jxx +++ b/src/PARTITION/Partition_Loop3d.jxx @@ -1,22 +1,24 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com - #ifndef _TopoDS_Shape_HeaderFile #include #endif diff --git a/src/PARTITION/Partition_Spliter.cdl b/src/PARTITION/Partition_Spliter.cdl index 4d742be40..1954b9748 100644 --- a/src/PARTITION/Partition_Spliter.cdl +++ b/src/PARTITION/Partition_Spliter.cdl @@ -1,44 +1,23 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// --- GEOM PARTITION : partition algorithm +-- Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -- --- Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, --- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- This library is free software; you can redistribute it and/or --- modify it under the terms of the GNU Lesser General Public --- License as published by the Free Software Foundation; either --- version 2.1 of the License. --- --- This library is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --- Lesser General Public License for more details. --- --- You should have received a copy of the GNU Lesser General Public --- License along with this library; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --- --- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +-- Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- +-- This library is free software; you can redistribute it and/or +-- modify it under the terms of the GNU Lesser General Public +-- License as published by the Free Software Foundation; either +-- version 2.1 of the License. -- +-- This library is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +-- Lesser General Public License for more details. +-- +-- You should have received a copy of the GNU Lesser General Public +-- License along with this library; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +-- +-- See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -- -- File : Partition_Spliter.cdl -- Author : Benedicte MARTIN diff --git a/src/PARTITION/Partition_Spliter.cxx b/src/PARTITION/Partition_Spliter.cxx index 1bb919fe5..b9f437e42 100644 --- a/src/PARTITION/Partition_Spliter.cxx +++ b/src/PARTITION/Partition_Spliter.cxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Spliter.cxx // Author : Benedicte MARTIN // Module : GEOM // $Header$ - +// #include "Partition_Inter2d.hxx" #include "Partition_Inter3d.hxx" #include "Partition_Loop2d.hxx" diff --git a/src/PARTITION/Partition_Spliter.hxx b/src/PARTITION/Partition_Spliter.hxx index 04b60c0de..1b71e20b1 100644 --- a/src/PARTITION/Partition_Spliter.hxx +++ b/src/PARTITION/Partition_Spliter.hxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // GEOM PARTITION : partition algorithm -// // File : Partition_Spliter.hxx // Module : GEOM - +// #ifndef _Partition_Spliter_HeaderFile #define _Partition_Spliter_HeaderFile diff --git a/src/PARTITION/Partition_Spliter.ixx b/src/PARTITION/Partition_Spliter.ixx index cd1c199c5..3443f3150 100644 --- a/src/PARTITION/Partition_Spliter.ixx +++ b/src/PARTITION/Partition_Spliter.ixx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Spliter.ixx // Module : GEOM - +// #include "Partition_Spliter.jxx" diff --git a/src/PARTITION/Partition_Spliter.jxx b/src/PARTITION/Partition_Spliter.jxx index f89faca05..79d17ddb4 100644 --- a/src/PARTITION/Partition_Spliter.jxx +++ b/src/PARTITION/Partition_Spliter.jxx @@ -1,29 +1,28 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM PARTITION : partition algorithm -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Partition_Spliter.jxx // Module : GEOM - +// #ifndef _BRepAlgo_AsDes_HeaderFile #include #endif diff --git a/src/PrimitiveGUI/Makefile.am b/src/PrimitiveGUI/Makefile.am index 4ca0d8793..4825e3f47 100644 --- a/src/PrimitiveGUI/Makefile.am +++ b/src/PrimitiveGUI/Makefile.am @@ -1,83 +1,96 @@ -# GEOM PRIMITIVEGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : PrimitiveGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = +salomeinclude_HEADERS = \ + PrimitiveGUI.h \ + PrimitiveGUI_BoxDlg.h \ + PrimitiveGUI_CylinderDlg.h \ + PrimitiveGUI_SphereDlg.h \ + PrimitiveGUI_TorusDlg.h \ + PrimitiveGUI_ConeDlg.h # Libraries targets lib_LTLIBRARIES = libPrimitiveGUI.la -dist_libPrimitiveGUI_la_SOURCES = \ - PrimitiveGUI.cxx \ - PrimitiveGUI_BoxDlg.cxx \ - PrimitiveGUI_CylinderDlg.cxx \ - PrimitiveGUI_SphereDlg.cxx \ - PrimitiveGUI_TorusDlg.cxx \ - PrimitiveGUI_ConeDlg.cxx +dist_libPrimitiveGUI_la_SOURCES = \ + PrimitiveGUI.h \ + PrimitiveGUI_BoxDlg.h \ + PrimitiveGUI_ConeDlg.h \ + PrimitiveGUI_CylinderDlg.h \ + PrimitiveGUI_SphereDlg.h \ + PrimitiveGUI_TorusDlg.h \ + PrimitiveGUI_FaceDlg.h \ + PrimitiveGUI_DiskDlg.h \ + \ + PrimitiveGUI.cxx \ + PrimitiveGUI_BoxDlg.cxx \ + PrimitiveGUI_CylinderDlg.cxx \ + PrimitiveGUI_SphereDlg.cxx \ + PrimitiveGUI_TorusDlg.cxx \ + PrimitiveGUI_ConeDlg.cxx \ + PrimitiveGUI_FaceDlg.cxx \ + PrimitiveGUI_DiskDlg.cxx -MOC_FILES = \ - PrimitiveGUI_BoxDlg_moc.cxx \ - PrimitiveGUI_CylinderDlg_moc.cxx \ - PrimitiveGUI_SphereDlg_moc.cxx \ - PrimitiveGUI_TorusDlg_moc.cxx \ - PrimitiveGUI_ConeDlg_moc.cxx +MOC_FILES = \ + PrimitiveGUI_BoxDlg_moc.cxx \ + PrimitiveGUI_CylinderDlg_moc.cxx \ + PrimitiveGUI_SphereDlg_moc.cxx \ + PrimitiveGUI_TorusDlg_moc.cxx \ + PrimitiveGUI_ConeDlg_moc.cxx \ + PrimitiveGUI_FaceDlg_moc.cxx \ + PrimitiveGUI_DiskDlg_moc.cxx -nodist_libPrimitiveGUI_la_SOURCES= \ +nodist_libPrimitiveGUI_la_SOURCES = \ $(MOC_FILES) -#LIB_CLIENT_IDL = SALOME_GenericObj.idl SALOME_Component.idl SALOME_Exception.idl +# additional information to compile and link file -#LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libPrimitiveGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMFiltersSelection \ - -I$(top_builddir)/idl \ +libPrimitiveGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMFiltersSelection \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libPrimitiveGUI_la_LDFLAGS = \ - ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ +libPrimitiveGUI_la_LDFLAGS = \ + ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ ../GEOMBase/libGEOMBase.la diff --git a/src/PrimitiveGUI/PrimitiveGUI.cxx b/src/PrimitiveGUI/PrimitiveGUI.cxx index 45ca54db0..b6c831aba 100644 --- a/src/PrimitiveGUI/PrimitiveGUI.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI.cxx @@ -1,53 +1,48 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : PrimitiveGUI.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - - #include "PrimitiveGUI.h" -#include "GeometryGUI.h" -#include "SUIT_Session.h" -#include "SUIT_Desktop.h" +#include -#include "SalomeApp_Application.h" +#include +#include #include "PrimitiveGUI_BoxDlg.h" // Method BOX #include "PrimitiveGUI_CylinderDlg.h" // Method CYLINDER #include "PrimitiveGUI_SphereDlg.h" // Method SPHERE #include "PrimitiveGUI_TorusDlg.h" // Method TORUS #include "PrimitiveGUI_ConeDlg.h" // Method CONE - -using namespace std; +#include "PrimitiveGUI_FaceDlg.h" // Method FACE +#include "PrimitiveGUI_DiskDlg.h" // Method DISK //======================================================================= // function : PrimitiveGUI() // purpose : Constructor //======================================================================= -PrimitiveGUI::PrimitiveGUI(GeometryGUI* parent) : GEOMGUI(parent) +PrimitiveGUI::PrimitiveGUI( GeometryGUI* parent ) : GEOMGUI( parent ) { } @@ -59,56 +54,59 @@ PrimitiveGUI::~PrimitiveGUI() { } - //======================================================================= // function : OnGUIEvent() // purpose : //======================================================================= -bool PrimitiveGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) +bool PrimitiveGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { SalomeApp_Application* app = getGeometryGUI()->getApp(); - if (!app) return false; + if ( !app ) return false; getGeometryGUI()->EmitSignalDeactivateDialog(); QDialog* aDlg = NULL; - switch (theCommandID) - { - case 4021: // BOX - aDlg = new PrimitiveGUI_BoxDlg(getGeometryGUI(), parent, ""); - break; - case 4022: // CYLINDER - aDlg = new PrimitiveGUI_CylinderDlg(getGeometryGUI(), parent, ""); - break; - case 4023: // SPHERE - aDlg = new PrimitiveGUI_SphereDlg(getGeometryGUI(), parent, ""); - break; - case 4024: // TORUS - aDlg = new PrimitiveGUI_TorusDlg(getGeometryGUI(), parent, ""); - break; - case 4025: // CONE - aDlg = new PrimitiveGUI_ConeDlg(getGeometryGUI(), parent, ""); - break; - default: - app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); - break; - } + switch ( theCommandID ) { + case 4021: // BOX + aDlg = new PrimitiveGUI_BoxDlg( getGeometryGUI(), parent ); + break; + case 4022: // CYLINDER + aDlg = new PrimitiveGUI_CylinderDlg( getGeometryGUI(), parent ); + break; + case 4023: // SPHERE + aDlg = new PrimitiveGUI_SphereDlg( getGeometryGUI(), parent ); + break; + case 4024: // TORUS + aDlg = new PrimitiveGUI_TorusDlg( getGeometryGUI(), parent ); + break; + case 4025: // CONE + aDlg = new PrimitiveGUI_ConeDlg( getGeometryGUI(), parent); + break; + case 4026: // FACE + aDlg = new PrimitiveGUI_FaceDlg( getGeometryGUI(), parent); + break; + case 4027: // DISK + aDlg = new PrimitiveGUI_DiskDlg( getGeometryGUI(), parent); + break; + default: + app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); + break; + } - if (aDlg != NULL) + if ( aDlg != NULL ) aDlg->show(); return true; } - //===================================================================================== // EXPORTED METHODS //===================================================================================== extern "C" { -#ifdef WNT - __declspec( dllexport ) +#ifdef WIN32 + __declspec( dllexport ) #endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { diff --git a/src/PrimitiveGUI/PrimitiveGUI.h b/src/PrimitiveGUI/PrimitiveGUI.h index ff2267323..df97571df 100644 --- a/src/PrimitiveGUI/PrimitiveGUI.h +++ b/src/PrimitiveGUI/PrimitiveGUI.h @@ -1,35 +1,32 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : PrimitiveGUI.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef PRIMITIVEGUI_H #define PRIMITIVEGUI_H -#include "GEOMGUI.h" - +#include //================================================================================= // class : PrimitiveGUI @@ -38,10 +35,10 @@ class PrimitiveGUI : public GEOMGUI { public: - PrimitiveGUI(GeometryGUI* parent); + PrimitiveGUI( GeometryGUI* ); ~PrimitiveGUI(); - bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent); + bool OnGUIEvent( int, SUIT_Desktop* ); }; #endif diff --git a/src/PrimitiveGUI/PrimitiveGUI.pro b/src/PrimitiveGUI/PrimitiveGUI.pro new file mode 100644 index 000000000..ed65cfc48 --- /dev/null +++ b/src/PrimitiveGUI/PrimitiveGUI.pro @@ -0,0 +1,65 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = PrimitiveGUI +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +INCLUDEPATH += $${QT_INCLUDES} $${VTK_INCLUDES} $${CAS_CPPFLAGS} $${PYTHON_INCLUDES} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} $${CORBA_INCLUDES} ../GEOMGUI ../DlgRef ../GEOMBase ../OBJECT ../GEOMClient ../GEOMImpl ../GEOMFiltersSelection $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lGEOMFiltersSelection -lGEOMBase + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +SOURCES = PrimitiveGUI.cxx +SOURCES += PrimitiveGUI_BoxDlg.cxx +SOURCES += PrimitiveGUI_CylinderDlg.cxx +SOURCES += PrimitiveGUI_SphereDlg.cxx +SOURCES += PrimitiveGUI_TorusDlg.cxx +SOURCES += PrimitiveGUI_ConeDlg.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx index 4ff84badb..ab47b76d3 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.cxx @@ -1,100 +1,98 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_BoxDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : PrimitiveGUI_BoxDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "PrimitiveGUI_BoxDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include #include #include #include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; - +#include +//#include //================================================================================= // class : PrimitiveGUI_BoxDlg() -// purpose : Constructs a PrimitiveGUI_BoxDlg which is a child of 'parent', with the +// purpose : Constructs a PrimitiveGUI_BoxDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -PrimitiveGUI_BoxDlg::PrimitiveGUI_BoxDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +PrimitiveGUI_BoxDlg::PrimitiveGUI_BoxDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_BOX_2P"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_BOX_DXYZ"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_BOX_2P"))); + QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_BOX_DXYZ"))); + QPixmap image2 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_BOX_TITLE")); + setWindowTitle(tr("GEOM_BOX_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_BOX")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_BOX")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_2Sel_QTD(this, "GroupPoints"); + GroupPoints = new DlgRef_2Sel(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_DIAGONAL_POINTS")); - GroupPoints->TextLabel1->setText(tr("GEOM_POINT_I").arg("1")); - GroupPoints->TextLabel2->setText(tr("GEOM_POINT_I").arg("2")); - GroupPoints->PushButton1->setPixmap(image2); - GroupPoints->PushButton2->setPixmap(image2); + GroupPoints->TextLabel1->setText(tr("GEOM_POINT_I").arg(1)); + GroupPoints->TextLabel2->setText(tr("GEOM_POINT_I").arg(2)); + GroupPoints->PushButton1->setIcon(image2); + GroupPoints->PushButton2->setIcon(image2); - GroupDimensions = new DlgRef_3Spin(this, "GroupDimensions"); + GroupDimensions = new DlgRef_3Spin(centralWidget()); GroupDimensions->GroupBox1->setTitle(tr("GEOM_BOX_OBJ")); GroupDimensions->TextLabel1->setText(tr("GEOM_DX")); GroupDimensions->TextLabel2->setText(tr("GEOM_DY")); GroupDimensions->TextLabel3->setText(tr("GEOM_DZ")); - Layout1->addWidget(GroupPoints, 2, 0); - Layout1->addWidget(GroupDimensions, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); + layout->addWidget(GroupDimensions); /***************************************************************/ setHelpFileName("create_box_page.html"); - + Init(); } - //================================================================================= // function : ~DialogBox_Box() // purpose : Destroys the object and frees any allocated resources @@ -104,39 +102,39 @@ PrimitiveGUI_BoxDlg::~PrimitiveGUI_BoxDlg() // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void PrimitiveGUI_BoxDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); - - myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); - - /* Get setting of step value from file configuration */ + // Get setting of step value from file configuration SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); - - /* min, max, step and decimals for spin boxes */ - GroupDimensions->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); + double step = resMgr->doubleValue("Geometry", "SettingsGeomStep", 100); + + // min, max, step and decimals for spin boxes + initSpinBox(GroupDimensions->SpinBox_DX, 0.000001, COORD_MAX, step, 6); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DY, 0.000001, COORD_MAX, step, 6); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DZ, 0.000001, COORD_MAX, step, 6); // VSR: TODO: DBL_DIGITS_DISPLAY + + // init variables + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); + + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); double initValue = 200.0; - GroupDimensions->SpinBox_DX->SetValue(initValue); - GroupDimensions->SpinBox_DY->SetValue(initValue); - GroupDimensions->SpinBox_DZ->SetValue(initValue); + GroupDimensions->SpinBox_DX->setValue(initValue); + GroupDimensions->SpinBox_DY->setValue(initValue); + GroupDimensions->SpinBox_DZ->setValue(initValue); - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); @@ -147,58 +145,65 @@ void PrimitiveGUI_BoxDlg::Init() connect(GroupDimensions->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupDimensions->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupDimensions->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DZ, SLOT(SetStep(double))); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), this, SLOT(SetDoubleSpinBoxStep(double))); - initName( tr( "GEOM_BOX" ) ); - ConstructorsClicked(0); + initName(tr("GEOM_BOX")); + + setConstructorId(1); // simplest constructor + ConstructorsClicked(1); +} + +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void PrimitiveGUI_BoxDlg::SetDoubleSpinBoxStep (double step) +{ + GroupDimensions->SpinBox_DX->setSingleStep(step); + GroupDimensions->SpinBox_DY->setSingleStep(step); + GroupDimensions->SpinBox_DZ->setSingleStep(step); } //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void PrimitiveGUI_BoxDlg::ConstructorsClicked(int constructorId) +void PrimitiveGUI_BoxDlg::ConstructorsClicked (int constructorId) { - disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - - switch (constructorId) + switch (constructorId) { + case 0: { - case 0: - { - // globalSelection( GEOM_POINT ); - globalSelection(); // close local contexts, if any - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + GroupDimensions->hide(); + GroupPoints->show(); - GroupDimensions->hide(); - resize(0, 0); - GroupPoints->show(); - - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setText(""); - GroupPoints->LineEdit2->setText(""); - myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - break; - } - case 1: - { - GroupPoints->hide(); - globalSelection(); // close local contexts, if any - resize(0, 0); - GroupDimensions->show(); - - break; - } + GroupPoints->PushButton1->click(); + break; } - displayPreview(); + case 1: + { + GroupPoints->hide(); + GroupDimensions->show(); + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(); // close local contexts, if any + + displayPreview(); + break; + } + } + + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); + + if (myInitial) { + // on dialog initialization we init the first field with a selected object (if any) + SelectionIntoArgument(); + myInitial = false; + } + else { + displayPreview(); + } } //================================================================================= @@ -207,7 +212,7 @@ void PrimitiveGUI_BoxDlg::ConstructorsClicked(int constructorId) //================================================================================= void PrimitiveGUI_BoxDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } @@ -217,63 +222,68 @@ void PrimitiveGUI_BoxDlg::ClickOnOk() //================================================================================= bool PrimitiveGUI_BoxDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; - + initName(); - ConstructorsClicked( getConstructorId() ); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void PrimitiveGUI_BoxDlg::SelectionIntoArgument() { if (getConstructorId() != 0) return; + erasePreview(); myEditCurrentArgument->setText(""); - if (IObjectCount() != 1) - { - if (myEditCurrentArgument == GroupPoints->LineEdit1) - myPoint1 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupPoints->LineEdit2) - myPoint2 = GEOM::GEOM_Object::_nil(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { + if (myEditCurrentArgument == GroupPoints->LineEdit1) myPoint1 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit2) myPoint2 = GEOM::GEOM_Object::_nil(); return; } // nbSel == 1 Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult); + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); if (!testResult || CORBA::is_nil(aSelectedObject)) return; - TopoDS_Shape aShape; QString aName = GEOMBase::GetName(aSelectedObject); + + // Get Selected object if selected subshape + TopoDS_Shape aShape; if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes(firstIObject(), aMap); + aSelMgr->GetIndexes(aSelList.First(), aMap); if (aMap.Extent() == 1) // Local Selection { - int anIndex = aMap( 1 ); - aName.append( ":vertex_" + QString::number( anIndex ) ); + int anIndex = aMap(1); + aName.append(":vertex_" + QString::number(anIndex)); //Find SubShape Object in Father GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); - - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations( getStudyId() ); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { + aSelectedObject = aFindedObject; // get Object from study } - else - aSelectedObject = aFindedObject; // get Object from study } else // Global Selection { @@ -286,10 +296,22 @@ void PrimitiveGUI_BoxDlg::SelectionIntoArgument() myEditCurrentArgument->setText(aName); - if (myEditCurrentArgument == GroupPoints->LineEdit1) + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { myPoint1 = aSelectedObject; - else if (myEditCurrentArgument == GroupPoints->LineEdit2) + if (!myPoint1->_is_nil() && myPoint2->_is_nil()) + GroupPoints->PushButton2->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { myPoint2 = aSelectedObject; + if (!myPoint2->_is_nil() && myPoint1->_is_nil()) + GroupPoints->PushButton1->click(); + } displayPreview(); } @@ -302,17 +324,42 @@ void PrimitiveGUI_BoxDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if(send == GroupPoints->PushButton1) + // ?? Commented, because we need this flag in ConstructorsClicked, because + // SelectionIntoArgument must be called only on dialog creation, and must not be called on + // simple switch between constructors (as we need to keep old values in fields in this case) + + // clear selection + //disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + //if (myInitial) + // myInitial = false; + //else + // myGeomGUI->getApp()->selectionMgr()->clearSelected(); + + if (send == GroupPoints->PushButton1) { myEditCurrentArgument = GroupPoints->LineEdit1; - else if(send == GroupPoints->PushButton2) + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + } + else if (send == GroupPoints->PushButton2) { myEditCurrentArgument = GroupPoints->LineEdit2; + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + } - // globalSelection( GEOM_POINT ); - globalSelection(); // close local contexts, if any - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - + // enable line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(); // close local contexts, if any + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); } //================================================================================= @@ -322,14 +369,12 @@ void PrimitiveGUI_BoxDlg::SetEditCurrentArgument() void PrimitiveGUI_BoxDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || send == GroupPoints->LineEdit2) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } + if (send == GroupPoints->LineEdit1 || send == GroupPoints->LineEdit2) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -337,24 +382,24 @@ void PrimitiveGUI_BoxDlg::LineEditReturnPressed() void PrimitiveGUI_BoxDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); - - ConstructorsClicked( getConstructorId() ); + if (getConstructorId() == 0) { + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + } + displayPreview(); } - //================================================================================= // function : enterEvent [REDEFINED] // purpose : //================================================================================= -void PrimitiveGUI_BoxDlg::enterEvent(QEvent* e) +void PrimitiveGUI_BoxDlg::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - //================================================================================= // function : ValueChangedInSpinBox() // purpose : @@ -364,86 +409,90 @@ void PrimitiveGUI_BoxDlg::ValueChangedInSpinBox() displayPreview(); } - //================================================================================= // function : createOperation // purpose : //================================================================================= GEOM::GEOM_IOperations_ptr PrimitiveGUI_BoxDlg::createOperation() { - return getGeomEngine()->GetI3DPrimOperations( getStudyId() ); + return getGeomEngine()->GetI3DPrimOperations(getStudyId()); } - //================================================================================= // function : isValid // purpose : //================================================================================= -bool PrimitiveGUI_BoxDlg::isValid( QString& msg ) +bool PrimitiveGUI_BoxDlg::isValid (QString& msg) { - return getConstructorId() == 0 ? !(myPoint1->_is_nil() || myPoint2->_is_nil()) : true; -} + bool ok = true; + if( getConstructorId() == 1 ) + { + ok = GroupDimensions->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok; + ok = fabs( GroupDimensions->SpinBox_DX->value() ) > Precision::Confusion() && ok; + ok = fabs( GroupDimensions->SpinBox_DY->value() ) > Precision::Confusion() && ok; + ok = fabs( GroupDimensions->SpinBox_DZ->value() ) > Precision::Confusion() && ok; + } + return getConstructorId() == 0 ? !(myPoint1->_is_nil() || myPoint2->_is_nil()) : ok; +} //================================================================================= // function : execute // purpose : //================================================================================= -bool PrimitiveGUI_BoxDlg::execute( ObjectList& objects ) +bool PrimitiveGUI_BoxDlg::execute (ObjectList& objects) { bool res = false; - + GEOM::GEOM_Object_var anObj; - - switch ( getConstructorId() ) - { - case 0 : - { - if ( !CORBA::is_nil( myPoint1 ) && !CORBA::is_nil( myPoint2 ) ) { - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->MakeBoxTwoPnt( myPoint1, myPoint2 ); - res = true; - } - - break; - } - case 1 : + + switch (getConstructorId()) { + case 0: { - double x = GroupDimensions->SpinBox_DX->GetValue(); - double y = GroupDimensions->SpinBox_DY->GetValue(); - double z = GroupDimensions->SpinBox_DZ->GetValue(); - - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->MakeBoxDXDYDZ( x, y, z ); - res = true; - break; + if (!CORBA::is_nil(myPoint1) && !CORBA::is_nil(myPoint2)) { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())->MakeBoxTwoPnt(myPoint1, myPoint2); + res = true; + } } + break; + case 1: + { + double x = GroupDimensions->SpinBox_DX->value(); + double y = GroupDimensions->SpinBox_DY->value(); + double z = GroupDimensions->SpinBox_DZ->value(); + + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())->MakeBoxDXDYDZ(x, y, z); + if (!anObj->_is_nil() && !IsPreview()) + { + QStringList aParameters; + aParameters << GroupDimensions->SpinBox_DX->text(); + aParameters << GroupDimensions->SpinBox_DY->text(); + aParameters << GroupDimensions->SpinBox_DZ->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + res = true; + } + break; } - - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - + + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + return res; } //================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void PrimitiveGUI_BoxDlg::closeEvent( QCloseEvent* e ) -{ - GEOMBase_Skeleton::closeEvent( e ); -} - -//================================================================================= -// function : addSubshapeToStudy +// function : addSubshapesToStudy // purpose : virtual method to add new SubObjects if local selection //================================================================================= void PrimitiveGUI_BoxDlg::addSubshapesToStudy() { - QMap objMap; - if ( getConstructorId() == 0 ) - { + if (getConstructorId() == 0) { + QMap objMap; objMap[GroupPoints->LineEdit1->text()] = myPoint1; objMap[GroupPoints->LineEdit2->text()] = myPoint2; - addSubshapesToFather( objMap ); + addSubshapesToFather(objMap); } } diff --git a/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.h b/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.h index 5ff6bf50c..8cb75c19b 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.h +++ b/src/PrimitiveGUI/PrimitiveGUI_BoxDlg.h @@ -1,38 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : PrimitiveGUI_BoxDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_BoxDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef PRIMITIVEGUI_BOXDLG_H +#define PRIMITIVEGUI_BOXDLG_H -#ifndef DIALOGBOX_BOX_H -#define DIALOGBOX_BOX_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel_QTD.h" -#include "DlgRef_3Spin.h" - -using namespace std; +class DlgRef_2Sel; +class DlgRef_3Spin; //================================================================================= // class : PrimitiveGUI_BoxDlg @@ -40,39 +37,42 @@ using namespace std; //================================================================================= class PrimitiveGUI_BoxDlg : public GEOMBase_Skeleton { - Q_OBJECT - + Q_OBJECT + public: - PrimitiveGUI_BoxDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~PrimitiveGUI_BoxDlg(); - + PrimitiveGUI_BoxDlg( GeometryGUI*, QWidget* = 0, bool modal = false, Qt::WindowFlags = 0 ); + ~PrimitiveGUI_BoxDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); -private : - void Init(); - void enterEvent(QEvent* e); +private: + void Init(); + void enterEvent( QEvent* ); - GEOM::GEOM_Object_var myPoint1, myPoint2; /* Points containing the vector */ - - DlgRef_2Sel_QTD* GroupPoints; - DlgRef_3Spin* GroupDimensions; +private: + GEOM::GEOM_Object_var myPoint1, myPoint2; /* Points containing the vector */ + + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_2Sel* GroupPoints; + DlgRef_3Spin* GroupDimensions; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ConstructorsClicked(int); - void ValueChangedInSpinBox(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void ValueChangedInSpinBox(); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_BOX_H +#endif // PRIMITIVEGUI_BOXDLG_H diff --git a/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx index e2ad901fe..5bbe43478 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.cxx @@ -1,38 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_ConeDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : PrimitiveGUI_ConeDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "PrimitiveGUI_ConeDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include #include @@ -40,111 +42,108 @@ #include #include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : PrimitiveGUI_ConeDlg() -// purpose : Constructs a PrimitiveGUI_ConeDlg which is a child of 'parent', with the +// purpose : Constructs a PrimitiveGUI_ConeDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -PrimitiveGUI_ConeDlg::PrimitiveGUI_ConeDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +PrimitiveGUI_ConeDlg::PrimitiveGUI_ConeDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CONE_PV"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CONE_DXYZ"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_CONE_PV"))); + QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_CONE_DXYZ"))); + QPixmap image2 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_CONE_TITLE")); + setWindowTitle(tr("GEOM_CONE_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_CONE")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_CONE")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_2Sel3Spin(this, "GroupPoints"); + GroupPoints = new DlgRef_2Sel3Spin(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); GroupPoints->TextLabel1->setText(tr("GEOM_BASE_POINT")); GroupPoints->TextLabel2->setText(tr("GEOM_VECTOR")); - GroupPoints->TextLabel3->setText(tr("GEOM_RADIUS_I").arg("1")); - GroupPoints->TextLabel4->setText(tr("GEOM_RADIUS_I").arg("2")); + GroupPoints->TextLabel3->setText(tr("GEOM_RADIUS_I").arg(1)); + GroupPoints->TextLabel4->setText(tr("GEOM_RADIUS_I").arg(2)); GroupPoints->TextLabel5->setText(tr("GEOM_HEIGHT")); - GroupPoints->PushButton1->setPixmap(image2); - GroupPoints->PushButton2->setPixmap(image2); + GroupPoints->PushButton1->setIcon(image2); + GroupPoints->PushButton2->setIcon(image2); - GroupDimensions = new DlgRef_3Spin(this, "GroupDimensions"); + GroupDimensions = new DlgRef_3Spin(centralWidget()); GroupDimensions->GroupBox1->setTitle(tr("GEOM_BOX_OBJ")); - GroupDimensions->TextLabel1->setText(tr("GEOM_RADIUS_I").arg("1")); - GroupDimensions->TextLabel2->setText(tr("GEOM_RADIUS_I").arg("2")); + GroupDimensions->TextLabel1->setText(tr("GEOM_RADIUS_I").arg(1)); + GroupDimensions->TextLabel2->setText(tr("GEOM_RADIUS_I").arg(2)); GroupDimensions->TextLabel3->setText(tr("GEOM_HEIGHT")); - Layout1->addWidget(GroupPoints, 2, 0); - Layout1->addWidget(GroupDimensions, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); + layout->addWidget(GroupDimensions); /***************************************************************/ - setHelpFileName( "create_cone_page.html" ); - + setHelpFileName("create_cone_page.html"); + Init(); } - //================================================================================= // function : ~PrimitiveGUI_ConeDlg() // purpose : Destroys the object and frees any allocated resources //================================================================================= PrimitiveGUI_ConeDlg::~PrimitiveGUI_ConeDlg() { - // no need to delete child widgets, Qt does it all for us + // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void PrimitiveGUI_ConeDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); - - myPoint = myDir = GEOM::GEOM_Object::_nil(); - - /* Get setting of step value from file configuration */ + // Get setting of step value from file configuration SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); - - /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(0.000, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DY->RangeStepAndValidator(0.000, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DX->RangeStepAndValidator(0.000, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DY->RangeStepAndValidator(0.000, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DZ->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); + double step = resMgr->doubleValue("Geometry", "SettingsGeomStep", 100); - double aRadius1(100.0), aRadius2(0.0), aHeight(300.0); - GroupPoints->SpinBox_DX->SetValue(aRadius1); - GroupPoints->SpinBox_DY->SetValue(aRadius2); - GroupPoints->SpinBox_DZ->SetValue(aHeight); - GroupDimensions->SpinBox_DX->SetValue(aRadius1); - GroupDimensions->SpinBox_DY->SetValue(aRadius2); - GroupDimensions->SpinBox_DZ->SetValue(aHeight); + // min, max, step and decimals for spin boxes & initial values + initSpinBox(GroupPoints->SpinBox_DX, 0.0, COORD_MAX, step, 5); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupPoints->SpinBox_DY, 0.0, COORD_MAX, step, 5); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupPoints->SpinBox_DZ, 0.00001, COORD_MAX, step, 5); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DX, 0.0, COORD_MAX, step, 5); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DY, 0.0, COORD_MAX, step, 5); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DZ, 0.00001, COORD_MAX, step, 5); // VSR: TODO: DBL_DIGITS_DISPLAY - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + // init variables + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); + + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + myPoint = myDir = GEOM::GEOM_Object::_nil(); + + double aRadius1(100.0), aRadius2(0.0), aHeight(300.0); + GroupPoints->SpinBox_DX->setValue(aRadius1); + GroupPoints->SpinBox_DY->setValue(aRadius2); + GroupPoints->SpinBox_DZ->setValue(aHeight); + GroupDimensions->SpinBox_DX->setValue(aRadius1); + GroupDimensions->SpinBox_DY->setValue(aRadius2); + GroupDimensions->SpinBox_DZ->setValue(aHeight); + + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); @@ -152,69 +151,75 @@ void PrimitiveGUI_ConeDlg::Init() connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(GroupPoints->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(GroupPoints->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(GroupPoints->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(GroupPoints->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupDimensions->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupDimensions->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupDimensions->SpinBox_DZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DZ, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DZ, SLOT(SetStep(double))); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; - - initName( tr( "GEOM_CONE" ) ); - ConstructorsClicked(0); + connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), this, SLOT(SetDoubleSpinBoxStep(double))); + + initName(tr("GEOM_CONE")); + + setConstructorId(1); // simplest constructor + ConstructorsClicked(1); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void PrimitiveGUI_ConeDlg::SetDoubleSpinBoxStep (double step) +{ + GroupPoints->SpinBox_DX->setSingleStep(step); + GroupPoints->SpinBox_DY->setSingleStep(step); + GroupPoints->SpinBox_DZ->setSingleStep(step); + GroupDimensions->SpinBox_DX->setSingleStep(step); + GroupDimensions->SpinBox_DY->setSingleStep(step); + GroupDimensions->SpinBox_DZ->setSingleStep(step); +} //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void PrimitiveGUI_ConeDlg::ConstructorsClicked(int constructorId) +void PrimitiveGUI_ConeDlg::ConstructorsClicked (int constructorId) { - disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - - switch(constructorId) - { - case 0 : - { - // globalSelection( GEOM_POINT ); - globalSelection(); // to break prvious local selection - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); - GroupDimensions->hide(); - resize(0, 0); - GroupPoints->show(); - - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setText(tr("")); - GroupPoints->LineEdit2->setText(tr("")); - myPoint = myDir = GEOM::GEOM_Object::_nil(); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - break; - } - case 1 : - { - GroupPoints->hide(); - globalSelection(); // close local contexts, if any - resize( 0, 0 ); - GroupDimensions->show(); + switch (constructorId) { + case 0: + { + GroupDimensions->hide(); + GroupPoints->show(); - break; - } + GroupPoints->PushButton1->click(); + break; } - displayPreview(); -} + case 1: + { + GroupPoints->hide(); + GroupDimensions->show(); + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(); // close local contexts, if any + displayPreview(); + break; + } + } + + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); + + if (myInitial) { + // on dialog initialization we init the first field with a selected object (if any) + SelectionIntoArgument(); + myInitial = false; + } + else { + displayPreview(); + } +} //================================================================================= // function : ClickOnOk() @@ -222,74 +227,67 @@ void PrimitiveGUI_ConeDlg::ConstructorsClicked(int constructorId) //================================================================================= void PrimitiveGUI_ConeDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool PrimitiveGUI_ConeDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); - ConstructorsClicked( getConstructorId() ); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } - -//======================================================================= -// function : ClickOnCancel() -// purpose : -//======================================================================= -void PrimitiveGUI_ConeDlg::ClickOnCancel() -{ - GEOMBase_Skeleton::ClickOnCancel(); -} - - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void PrimitiveGUI_ConeDlg::SelectionIntoArgument() { if (getConstructorId() != 0) return; - if (IObjectCount() != 1) - { - if (myEditCurrentArgument == GroupPoints->LineEdit1) - myPoint = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupPoints->LineEdit2) - myDir = GEOM::GEOM_Object::_nil(); + erasePreview(); + myEditCurrentArgument->setText(""); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { + if (myEditCurrentArgument == GroupPoints->LineEdit1) myPoint = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit2) myDir = GEOM::GEOM_Object::_nil(); return; } - /* nbSel == 1 */ + // nbSel == 1 Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); - - if(!testResult || CORBA::is_nil( aSelectedObject )) + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + + if (!testResult || CORBA::is_nil(aSelectedObject)) return; - TopoDS_Shape aShape; - QString aName = GEOMBase::GetName( aSelectedObject ); + QString aName = GEOMBase::GetName(aSelectedObject); + // Get Selected object if selected subshape + TopoDS_Shape aShape; if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; if (myEditCurrentArgument == GroupPoints->LineEdit2) aNeedType = TopAbs_EDGE; - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes( firstIObject(), aMap ); - if (aMap.Extent() == 1) + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) // Local Selection { int anIndex = aMap(1); if (aNeedType == TopAbs_EDGE) @@ -300,15 +298,16 @@ void PrimitiveGUI_ConeDlg::SelectionIntoArgument() //Find SubShape Object in Father GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations(getStudyId()); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { + aSelectedObject = aFindedObject; // get Object from study } - else - aSelectedObject = aFindedObject; // get Object from study } - else + else // Global Selection { if (aShape.ShapeType() != aNeedType) { aSelectedObject = GEOM::GEOM_Object::_nil(); @@ -319,10 +318,22 @@ void PrimitiveGUI_ConeDlg::SelectionIntoArgument() myEditCurrentArgument->setText(aName); - if (myEditCurrentArgument == GroupPoints->LineEdit1) + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { myPoint = aSelectedObject; - else if (myEditCurrentArgument == GroupPoints->LineEdit2) + if (!myPoint->_is_nil() && myDir->_is_nil()) + GroupPoints->PushButton2->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { myDir = aSelectedObject; + if (!myDir->_is_nil() && myPoint->_is_nil()) + GroupPoints->PushButton1->click(); + } displayPreview(); } @@ -334,22 +345,38 @@ void PrimitiveGUI_ConeDlg::SelectionIntoArgument() void PrimitiveGUI_ConeDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - - if(send == GroupPoints->PushButton1) { - myEditCurrentArgument = GroupPoints->LineEdit1; - globalSelection( GEOM_POINT ); // to break prvious local selection - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - } - else if(send == GroupPoints->PushButton2) { - myEditCurrentArgument = GroupPoints->LineEdit2; - globalSelection( GEOM_LINE );// to break prvious local selection - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); - } - - myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); -} + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + if (send == GroupPoints->PushButton1) { + myEditCurrentArgument = GroupPoints->LineEdit1; + + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + + globalSelection(GEOM_POINT); // to break previous local selection + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + } + else if (send == GroupPoints->PushButton2) { + myEditCurrentArgument = GroupPoints->LineEdit2; + + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + + globalSelection(GEOM_LINE);// to break previous local selection + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); +} //================================================================================= // function : LineEditReturnPressed() @@ -358,12 +385,11 @@ void PrimitiveGUI_ConeDlg::SetEditCurrentArgument() void PrimitiveGUI_ConeDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || - send == GroupPoints->LineEdit2) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } + if (send == GroupPoints->LineEdit1 || + send == GroupPoints->LineEdit2) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } } //================================================================================= @@ -373,33 +399,23 @@ void PrimitiveGUI_ConeDlg::LineEditReturnPressed() void PrimitiveGUI_ConeDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); - ConstructorsClicked(getConstructorId()); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + + ConstructorsClicked( getConstructorId() ); } -//================================================================================= -// function : DeactivateActiveDialog() -// purpose : public slot to deactivate if active -//================================================================================= -void PrimitiveGUI_ConeDlg::DeactivateActiveDialog() -{ - GEOMBase_Skeleton::DeactivateActiveDialog(); -} - - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void PrimitiveGUI_ConeDlg::enterEvent(QEvent* e) +void PrimitiveGUI_ConeDlg::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - //================================================================================= // function : ValueChangedInSpinBox() // purpose : @@ -409,76 +425,88 @@ void PrimitiveGUI_ConeDlg::ValueChangedInSpinBox() displayPreview(); } - //================================================================================= // function : createOperation // purpose : //================================================================================= GEOM::GEOM_IOperations_ptr PrimitiveGUI_ConeDlg::createOperation() { - return getGeomEngine()->GetI3DPrimOperations( getStudyId() ); + return getGeomEngine()->GetI3DPrimOperations(getStudyId()); } //================================================================================= // function : isValid // purpose : //================================================================================= -bool PrimitiveGUI_ConeDlg::isValid( QString& msg ) +bool PrimitiveGUI_ConeDlg::isValid (QString& msg) { - return getConstructorId() == 0 ? !(myPoint->_is_nil() || myDir->_is_nil()) : true; + if (!getRadius1() && !getRadius2()) + return false; + + bool ok = true; + if( getConstructorId() == 0 ) + { + ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok; + } + else if( getConstructorId() == 1 ) + { + ok = GroupDimensions->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DZ->isValid( msg, !IsPreview() ) && ok; + } + ok = fabs( getHeight() ) > Precision::Confusion() && ok; + return getConstructorId() == 0 ? !(myPoint->_is_nil() || myDir->_is_nil()) && ok : ok; } //================================================================================= // function : execute // purpose : //================================================================================= -bool PrimitiveGUI_ConeDlg::execute( ObjectList& objects ) +bool PrimitiveGUI_ConeDlg::execute (ObjectList& objects) { bool res = false; - + GEOM::GEOM_Object_var anObj; - switch ( getConstructorId() ) - { - case 0 : - { - if ( !CORBA::is_nil( myPoint ) && !CORBA::is_nil( myDir ) ){ - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->MakeConePntVecR1R2H( myPoint, - myDir, - getRadius1(), - getRadius2(), - getHeight()); + switch (getConstructorId()) { + case 0: + if (!CORBA::is_nil(myPoint) && !CORBA::is_nil(myDir)) { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeConePntVecR1R2H(myPoint, myDir, getRadius1(), getRadius2(), getHeight()); + if (!anObj->_is_nil() && !IsPreview()) + { + QStringList aParameters; + aParameters << GroupPoints->SpinBox_DX->text(); + aParameters << GroupPoints->SpinBox_DY->text(); + aParameters << GroupPoints->SpinBox_DZ->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } res = true; } break; - } - case 1 : + case 1: + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeConeR1R2H(getRadius1(), getRadius2(), getHeight()); + if (!anObj->_is_nil() && !IsPreview()) { - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->MakeConeR1R2H( getRadius1(), - getRadius2(), - getHeight()); - res = true; - break; + QStringList aParameters; + aParameters << GroupDimensions->SpinBox_DX->text(); + aParameters << GroupDimensions->SpinBox_DY->text(); + aParameters << GroupDimensions->SpinBox_DZ->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); } + res = true; + break; } - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); return res; } -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void PrimitiveGUI_ConeDlg::closeEvent( QCloseEvent* e ) -{ - // myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - - //================================================================================= // function : getRadius1() // purpose : @@ -487,13 +515,12 @@ double PrimitiveGUI_ConeDlg::getRadius1() const { int aConstructorId = getConstructorId(); if (aConstructorId == 0) - return GroupPoints->SpinBox_DX->GetValue(); + return GroupPoints->SpinBox_DX->value(); else if (aConstructorId == 1) - return GroupDimensions->SpinBox_DX->GetValue(); + return GroupDimensions->SpinBox_DX->value(); return 0; } - //================================================================================= // function : getRadius2() // purpose : @@ -502,24 +529,23 @@ double PrimitiveGUI_ConeDlg::getRadius2() const { int aConstructorId = getConstructorId(); if (aConstructorId == 0) - return GroupPoints->SpinBox_DY->GetValue(); + return GroupPoints->SpinBox_DY->value(); else if (aConstructorId == 1) - return GroupDimensions->SpinBox_DY->GetValue(); + return GroupDimensions->SpinBox_DY->value(); return 0; } - //================================================================================= -// function : getRadius2() +// function : getHeight() // purpose : //================================================================================= double PrimitiveGUI_ConeDlg::getHeight() const { int aConstructorId = getConstructorId(); if (aConstructorId == 0) - return GroupPoints->SpinBox_DZ->GetValue(); + return GroupPoints->SpinBox_DZ->value(); else if (aConstructorId == 1) - return GroupDimensions->SpinBox_DZ->GetValue(); + return GroupDimensions->SpinBox_DZ->value(); return 0; } @@ -531,8 +557,7 @@ void PrimitiveGUI_ConeDlg::addSubshapesToStudy() { QMap objMap; -switch (getConstructorId()) - { + switch (getConstructorId()) { case 0: objMap[GroupPoints->LineEdit1->text()] = myPoint; objMap[GroupPoints->LineEdit2->text()] = myDir; @@ -540,5 +565,5 @@ switch (getConstructorId()) case 1: return; } - addSubshapesToFather( objMap ); + addSubshapesToFather(objMap); } diff --git a/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.h b/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.h index f6b3f94cf..2d1d6dc83 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.h +++ b/src/PrimitiveGUI/PrimitiveGUI_ConeDlg.h @@ -1,36 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : PrimitiveGUI_ConeDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_ConeDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef PRIMITIVEGUI_CONEDLG_H +#define PRIMITIVEGUI_CONEDLG_H -#ifndef DIALOGBOX_CONE_H -#define DIALOGBOX_CONE_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel3Spin.h" -#include "DlgRef_3Spin.h" +class DlgRef_2Sel3Spin; +class DlgRef_3Spin; //================================================================================= // class : PrimitiveGUI_ConeDlg @@ -38,44 +37,45 @@ //================================================================================= class PrimitiveGUI_ConeDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - PrimitiveGUI_ConeDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~PrimitiveGUI_ConeDlg(); - + PrimitiveGUI_ConeDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~PrimitiveGUI_ConeDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); private: - void Init(); - void enterEvent(QEvent* e); - double getRadius1() const; - double getRadius2() const; - double getHeight() const; + void Init(); + void enterEvent( QEvent* ); + double getRadius1() const; + double getRadius2() const; + double getHeight() const; - GEOM::GEOM_Object_var myPoint, myDir; - - DlgRef_2Sel3Spin* GroupPoints; - DlgRef_3Spin* GroupDimensions; +private: + GEOM::GEOM_Object_var myPoint, myDir; + + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_2Sel3Spin* GroupPoints; + DlgRef_3Spin* GroupDimensions; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ClickOnCancel(); - void ActivateThisDialog(); - void DeactivateActiveDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ConstructorsClicked(int); - void ValueChangedInSpinBox(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void ValueChangedInSpinBox(); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_CONE_H +#endif // PRIMITIVEGUI_CONEDLG_H diff --git a/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx index 82de95d33..b77bd11a3 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.cxx @@ -1,38 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_CylinderDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : PrimitiveGUI_CylinderDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "PrimitiveGUI_CylinderDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include #include @@ -40,54 +42,51 @@ #include #include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : PrimitiveGUI_CylinderDlg() -// purpose : Constructs a PrimitiveGUI_CylinderDlg which is a child of 'parent', with the +// purpose : Constructs a PrimitiveGUI_CylinderDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -PrimitiveGUI_CylinderDlg::PrimitiveGUI_CylinderDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +PrimitiveGUI_CylinderDlg::PrimitiveGUI_CylinderDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CYLINDER_PV"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CYLINDER_DXYZ"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_CYLINDER_PV"))); + QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_CYLINDER_DXYZ"))); + QPixmap image2 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_CYLINDER_TITLE")); + setWindowTitle(tr("GEOM_CYLINDER_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_CYLINDER")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_CYLINDER")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_2Sel2Spin(this, "GroupPoints"); + GroupPoints = new DlgRef_2Sel2Spin(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); GroupPoints->TextLabel1->setText(tr("GEOM_BASE_POINT")); GroupPoints->TextLabel2->setText(tr("GEOM_VECTOR")); GroupPoints->TextLabel3->setText(tr("GEOM_RADIUS")); GroupPoints->TextLabel4->setText(tr("GEOM_HEIGHT")); - GroupPoints->PushButton1->setPixmap(image2); - GroupPoints->PushButton2->setPixmap(image2); + GroupPoints->PushButton1->setIcon(image2); + GroupPoints->PushButton2->setIcon(image2); - GroupDimensions = new DlgRef_2Spin(this, "GroupDimensions"); + GroupDimensions = new DlgRef_2Spin(centralWidget()); GroupDimensions->GroupBox1->setTitle(tr("GEOM_BOX_OBJ")); GroupDimensions->TextLabel1->setText(tr("GEOM_RADIUS")); GroupDimensions->TextLabel2->setText(tr("GEOM_HEIGHT")); - Layout1->addWidget(GroupPoints, 2, 0); - Layout1->addWidget(GroupDimensions, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); + layout->addWidget(GroupDimensions); /***************************************************************/ setHelpFileName("create_cylinder_page.html"); @@ -95,53 +94,51 @@ PrimitiveGUI_CylinderDlg::PrimitiveGUI_CylinderDlg(GeometryGUI* theGeometryGUI, Init(); } - //================================================================================= // function : ~PrimitiveGUI_CylinderDlg() // purpose : Destroys the object and frees any allocated resources //================================================================================= PrimitiveGUI_CylinderDlg::~PrimitiveGUI_CylinderDlg() { - // no need to delete child widgets, Qt does it all for us + // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void PrimitiveGUI_CylinderDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); - - myPoint = myDir = GEOM::GEOM_Object::_nil(); - - /* Get setting of step value from file configuration */ + // Get setting of step value from file configuration SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + double step = resMgr->doubleValue("Geometry", "SettingsGeomStep", 100); - /* min, max, step and decimals for spin boxes & initial values */ - /* First constructor : radius */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, step, DBL_DIGITS_DISPLAY); - /* First constructor : algebric height */ - GroupPoints->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - /* Second constructor : radius */ - GroupDimensions->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, step, DBL_DIGITS_DISPLAY); - /* Second constructor : algebric height */ - GroupDimensions->SpinBox_DY->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); + // min, max, step and decimals for spin boxes & initial values + initSpinBox(GroupPoints->SpinBox_DX, 0.00001, COORD_MAX, step, 5); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupPoints->SpinBox_DY, 0.00001, COORD_MAX, step, 5); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DX, 0.00001, COORD_MAX, step, 5); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DY, 0.00001, COORD_MAX, step, 5); // VSR: TODO: DBL_DIGITS_DISPLAY - GroupPoints->SpinBox_DX->SetValue(100.0); - GroupPoints->SpinBox_DY->SetValue(300.0); - GroupDimensions->SpinBox_DX->SetValue(100.0); - GroupDimensions->SpinBox_DY->SetValue(300.0); + // init variables + myEditCurrentArgument = GroupPoints->LineEdit1; + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + myPoint = myDir = GEOM::GEOM_Object::_nil(); + + double aRadius(100.0), aHeight(300.0); + GroupPoints->SpinBox_DX->setValue(aRadius); + GroupPoints->SpinBox_DY->setValue(aHeight); + GroupDimensions->SpinBox_DX->setValue(aRadius); + GroupDimensions->SpinBox_DY->setValue(aHeight); + + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); @@ -149,65 +146,76 @@ void PrimitiveGUI_CylinderDlg::Init() connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(GroupPoints->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(GroupPoints->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupDimensions->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupDimensions->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DY, SLOT(SetStep(double))); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; - - initName( tr( "GEOM_CYLINDER" ) ); - ConstructorsClicked(0); + connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), this, SLOT(SetDoubleSpinBoxStep(double))); + + initName(tr("GEOM_CYLINDER")); + + setConstructorId(1); // simplest constructor + ConstructorsClicked(1); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void PrimitiveGUI_CylinderDlg::SetDoubleSpinBoxStep (double step) +{ + GroupPoints->SpinBox_DX->setSingleStep(step); + GroupPoints->SpinBox_DY->setSingleStep(step); + GroupDimensions->SpinBox_DX->setSingleStep(step); + GroupDimensions->SpinBox_DY->setSingleStep(step); +} //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void PrimitiveGUI_CylinderDlg::ConstructorsClicked(int constructorId) +void PrimitiveGUI_CylinderDlg::ConstructorsClicked (int constructorId) { disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - - switch (constructorId) - { - case 0 : - { - globalSelection( GEOM_POINT ); // to break previous local selection - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - GroupDimensions->hide(); - resize(0, 0); - GroupPoints->show(); - - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setText(tr("")); - GroupPoints->LineEdit2->setText(tr("")); - myPoint = myDir = GEOM::GEOM_Object::_nil(); + switch (constructorId) { + case 0: + { + GroupDimensions->hide(); + GroupPoints->show(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - break; - } - case 1 : - { - GroupPoints->hide(); - globalSelection(); // close local contexts, if any - resize( 0, 0 ); - GroupDimensions->show(); - - break; - } + GroupPoints->PushButton1->click(); + break; } - displayPreview(); -} + case 1: + { + GroupPoints->hide(); + GroupDimensions->show(); + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(); // close local contexts, if any + break; + } + } + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); + + if (myInitial) { + myInitial = false; + if (constructorId == 0) { + // on dialog initialization we init the first field with a selected object (if any) + SelectionIntoArgument(); + } + else { + displayPreview(); + } + } + else { + displayPreview(); + } +} //================================================================================= // function : ClickOnOk() @@ -215,49 +223,42 @@ void PrimitiveGUI_CylinderDlg::ConstructorsClicked(int constructorId) //================================================================================= void PrimitiveGUI_CylinderDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool PrimitiveGUI_CylinderDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); - ConstructorsClicked( getConstructorId() ); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } - -//======================================================================= -// function : ClickOnCancel() -// purpose : -//======================================================================= -void PrimitiveGUI_CylinderDlg::ClickOnCancel() -{ - GEOMBase_Skeleton::ClickOnCancel(); -} - - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void PrimitiveGUI_CylinderDlg::SelectionIntoArgument() { if (getConstructorId() != 0) return; + erasePreview(); myEditCurrentArgument->setText(""); - if (IObjectCount() != 1) - { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { if (myEditCurrentArgument == GroupPoints->LineEdit1) myPoint = GEOM::GEOM_Object::_nil(); else if (myEditCurrentArgument == GroupPoints->LineEdit2) @@ -265,14 +266,16 @@ void PrimitiveGUI_CylinderDlg::SelectionIntoArgument() return; } - /* nbSel == 1 */ + // nbSel == 1 Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult); + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); if (!testResult || CORBA::is_nil(aSelectedObject)) return; QString aName = GEOMBase::GetName(aSelectedObject); + + // Get Selected object if selected subshape TopoDS_Shape aShape; if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { @@ -280,11 +283,9 @@ void PrimitiveGUI_CylinderDlg::SelectionIntoArgument() if (myEditCurrentArgument == GroupPoints->LineEdit2) aNeedType = TopAbs_EDGE; - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes(firstIObject(), aMap); - if (aMap.Extent() == 1) // Local Selection - { + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) { // Local Selection int anIndex = aMap(1); if (aNeedType == TopAbs_EDGE) aName.append(":edge_" + QString::number(anIndex)); @@ -294,16 +295,16 @@ void PrimitiveGUI_CylinderDlg::SelectionIntoArgument() //Find SubShape Object in Father GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations(getStudyId()); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { + aSelectedObject = aFindedObject; // get Object from study } - else - aSelectedObject = aFindedObject; // get Object from study } - else // Global Selection - { + else { // Global Selection if (aShape.ShapeType() != aNeedType) { aSelectedObject = GEOM::GEOM_Object::_nil(); aName = ""; @@ -313,10 +314,23 @@ void PrimitiveGUI_CylinderDlg::SelectionIntoArgument() myEditCurrentArgument->setText(aName); - if (myEditCurrentArgument == GroupPoints->LineEdit1) + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { myPoint = aSelectedObject; - else if (myEditCurrentArgument == GroupPoints->LineEdit2) + if (!myPoint->_is_nil() && myDir->_is_nil()) + GroupPoints->PushButton2->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { myDir = aSelectedObject; + if (!myDir->_is_nil() && myPoint->_is_nil()) + GroupPoints->PushButton1->click(); + } + displayPreview(); } @@ -327,36 +341,51 @@ void PrimitiveGUI_CylinderDlg::SelectionIntoArgument() void PrimitiveGUI_CylinderDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - + + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); if (send == GroupPoints->PushButton1) { myEditCurrentArgument = GroupPoints->LineEdit1; - globalSelection( GEOM_POINT ); // to break previous local selection - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + + globalSelection(GEOM_POINT); // to break previous local selection + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); } else if (send == GroupPoints->PushButton2) { myEditCurrentArgument = GroupPoints->LineEdit2; - globalSelection( GEOM_LINE ); // to break previous local selection - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); - } - - myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); -} + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + + globalSelection(GEOM_LINE); // to break previous local selection + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); +} //================================================================================= // function : LineEditReturnPressed() // purpose : //================================================================================= void PrimitiveGUI_CylinderDlg::LineEditReturnPressed() -{ +{ QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || - send == GroupPoints->LineEdit2) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } + if (send == GroupPoints->LineEdit1 || + send == GroupPoints->LineEdit2) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } } //================================================================================= @@ -366,107 +395,107 @@ void PrimitiveGUI_CylinderDlg::LineEditReturnPressed() void PrimitiveGUI_CylinderDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); - ConstructorsClicked(getConstructorId()); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + + ConstructorsClicked( getConstructorId() ); } //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void PrimitiveGUI_CylinderDlg::enterEvent(QEvent* e) +void PrimitiveGUI_CylinderDlg::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - //================================================================================= -// function : DeactivateActiveDialog() -// purpose : public slot to deactivate if active -//================================================================================= -void PrimitiveGUI_CylinderDlg::DeactivateActiveDialog() -{ - GEOMBase_Skeleton::DeactivateActiveDialog(); -} - - -//================================================================================= -// function : ValueChangedInSpinBox +// function : ValueChangedInSpinBox() // purpose : //================================================================================= -void PrimitiveGUI_CylinderDlg::ValueChangedInSpinBox( ) -{ +void PrimitiveGUI_CylinderDlg::ValueChangedInSpinBox() +{ displayPreview(); } - //================================================================================= // function : createOperation // purpose : //================================================================================= GEOM::GEOM_IOperations_ptr PrimitiveGUI_CylinderDlg::createOperation() { - return getGeomEngine()->GetI3DPrimOperations( getStudyId() ); + return getGeomEngine()->GetI3DPrimOperations(getStudyId()); } - //================================================================================= // function : isValid // purpose : //================================================================================= -bool PrimitiveGUI_CylinderDlg::isValid( QString& msg ) +bool PrimitiveGUI_CylinderDlg::isValid (QString& msg) { - return getConstructorId() == 0 ? !(myPoint->_is_nil() || myDir->_is_nil() ) : true; + bool ok = true; + if( getConstructorId() == 0 ) + { + ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + } + else if( getConstructorId() == 1 ) + { + ok = GroupDimensions->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + } + ok = fabs( getHeight() ) > Precision::Confusion() && ok; + return getConstructorId() == 0 ? !(myPoint->_is_nil() || myDir->_is_nil()) && ok : ok; } //================================================================================= // function : execute // purpose : //================================================================================= -bool PrimitiveGUI_CylinderDlg::execute( ObjectList& objects ) +bool PrimitiveGUI_CylinderDlg::execute (ObjectList& objects) { bool res = false; - - GEOM::GEOM_Object_var anObj; - - switch ( getConstructorId() ) - { - case 0 : - { - if ( !CORBA::is_nil( myPoint ) && !CORBA::is_nil( myDir )) { - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->MakeCylinderPntVecRH(myPoint, myDir, getRadius(), getHeight()); - res = true; - } - break; - } - case 1 : - { - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->MakeCylinderRH(getRadius(), getHeight()); - res = true; - break; + GEOM::GEOM_Object_var anObj; + + switch (getConstructorId()) { + case 0: + if (!CORBA::is_nil(myPoint) && !CORBA::is_nil(myDir)) { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeCylinderPntVecRH(myPoint, myDir, getRadius(), getHeight()); + if (!anObj->_is_nil() && !IsPreview()) + { + QStringList aParameters; + aParameters << GroupPoints->SpinBox_DX->text(); + aParameters << GroupPoints->SpinBox_DY->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); } + res = true; } - - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - + break; + case 1: + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeCylinderRH(getRadius(), getHeight()); + if (!anObj->_is_nil() && !IsPreview()) + { + QStringList aParameters; + aParameters << GroupDimensions->SpinBox_DX->text(); + aParameters << GroupDimensions->SpinBox_DY->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + res = true; + break; + } + + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + return res; } -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void PrimitiveGUI_CylinderDlg::closeEvent( QCloseEvent* e ) -{ - GEOMBase_Skeleton::closeEvent( e ); -} - - //================================================================================= // function : getRadius() // purpose : @@ -475,9 +504,9 @@ double PrimitiveGUI_CylinderDlg::getRadius() const { int aConstructorId = getConstructorId(); if (aConstructorId == 0) - return GroupPoints->SpinBox_DX->GetValue(); + return GroupPoints->SpinBox_DX->value(); else if (aConstructorId == 1) - return GroupDimensions->SpinBox_DX->GetValue(); + return GroupDimensions->SpinBox_DX->value(); return 0; } @@ -489,9 +518,9 @@ double PrimitiveGUI_CylinderDlg::getHeight() const { int aConstructorId = getConstructorId(); if (aConstructorId == 0) - return GroupPoints->SpinBox_DY->GetValue(); + return GroupPoints->SpinBox_DY->value(); else if (aConstructorId == 1) - return GroupDimensions->SpinBox_DY->GetValue(); + return GroupDimensions->SpinBox_DY->value(); return 0; } @@ -503,8 +532,7 @@ void PrimitiveGUI_CylinderDlg::addSubshapesToStudy() { QMap objMap; -switch (getConstructorId()) - { + switch (getConstructorId()) { case 0: objMap[GroupPoints->LineEdit1->text()] = myPoint; objMap[GroupPoints->LineEdit2->text()] = myDir; @@ -512,5 +540,5 @@ switch (getConstructorId()) case 1: return; } - addSubshapesToFather( objMap ); + addSubshapesToFather(objMap); } diff --git a/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.h b/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.h index 1980db249..0e6fc18fd 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.h +++ b/src/PrimitiveGUI/PrimitiveGUI_CylinderDlg.h @@ -1,37 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : PrimitiveGUI_CylinderDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_CylinderDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef PRIMITIVEGUI_CYLINDERDLG_H +#define PRIMITIVEGUI_CYLINDERDLG_H -#ifndef DIALOGBOX_CYLINDER_H -#define DIALOGBOX_CYLINDER_H - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel2Spin.h" -#include "DlgRef_2Spin.h" +#include +class DlgRef_2Sel2Spin; +class DlgRef_2Spin; //================================================================================= // class : PrimitiveGUI_CylinderDlg @@ -39,43 +37,44 @@ //================================================================================= class PrimitiveGUI_CylinderDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - PrimitiveGUI_CylinderDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~PrimitiveGUI_CylinderDlg(); + PrimitiveGUI_CylinderDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~PrimitiveGUI_CylinderDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); private: - void Init(); - void enterEvent(QEvent* e); - double getRadius() const; - double getHeight() const; + void Init(); + void enterEvent( QEvent* ); + double getRadius() const; + double getHeight() const; + +private: + GEOM::GEOM_Object_var myPoint, myDir; - GEOM::GEOM_Object_var myPoint, myDir; - - DlgRef_2Sel2Spin* GroupPoints; - DlgRef_2Spin* GroupDimensions; + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_2Sel2Spin* GroupPoints; + DlgRef_2Spin* GroupDimensions; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ClickOnCancel(); - void ActivateThisDialog(); - void DeactivateActiveDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ConstructorsClicked(int); - void ValueChangedInSpinBox(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void ValueChangedInSpinBox(); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_CYLINDER_H +#endif // PRIMITIVEGUI_CYLINDERDLG_H diff --git a/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.cxx new file mode 100755 index 000000000..9344092c8 --- /dev/null +++ b/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.cxx @@ -0,0 +1,645 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_DiskDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#include "PrimitiveGUI_DiskDlg.h" + +#include +#include +#include + +#include +#include +#include +#include + +// OCCT Includes +#include +#include +#include +#include +#include +#include + +//================================================================================= +// class : PrimitiveGUI_DiskDlg() +// purpose : Constructs a PrimitiveGUI_DiskDlg which is a child of 'parent', with the +// name 'name' and widget flags set to 'f'. +// The dialog will by default be modeless, unless you set 'modal' to +// TRUE to construct a modal dialog. +//================================================================================= +PrimitiveGUI_DiskDlg::PrimitiveGUI_DiskDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) +{ + SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); + QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_DISK_PNT_VEC_R"))); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_DISK_THREE_POINTS"))); + QPixmap image3 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_DISK_R"))); + + setWindowTitle(tr("GEOM_DISK_TITLE")); + + /***************************************************************/ + mainFrame()->GroupConstructors->setTitle(tr("GEOM_DISK")); + mainFrame()->RadioButton1->setIcon(image3); + mainFrame()->RadioButton2->setIcon(image0); + mainFrame()->RadioButton3->setIcon(image2); + + GroupPntVecR = new DlgRef_2Sel1Spin(centralWidget()); + GroupPntVecR->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); + GroupPntVecR->TextLabel1->setText(tr("GEOM_CENTER_POINT")); + GroupPntVecR->TextLabel2->setText(tr("GEOM_VECTOR")); + GroupPntVecR->TextLabel3->setText(tr("GEOM_RADIUS")); + GroupPntVecR->PushButton1->setIcon(image1); + GroupPntVecR->PushButton2->setIcon(image1); + GroupPntVecR->LineEdit1->setReadOnly(true); + GroupPntVecR->LineEdit2->setReadOnly(true); + + Group3Pnts = new DlgRef_3Sel(centralWidget()); + Group3Pnts->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); + Group3Pnts->TextLabel1->setText(tr("GEOM_POINT1")); + Group3Pnts->TextLabel2->setText(tr("GEOM_POINT2")); + Group3Pnts->TextLabel3->setText(tr("GEOM_POINT3")); + Group3Pnts->PushButton1->setIcon(image1); + Group3Pnts->PushButton2->setIcon(image1); + Group3Pnts->PushButton3->setIcon(image1); + Group3Pnts->LineEdit1->setReadOnly(true); + Group3Pnts->LineEdit2->setReadOnly(true); + Group3Pnts->LineEdit3->setReadOnly(true); + + GroupDimensions = new DlgRef_1Spin(centralWidget()); + GroupDimensions->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); + GroupDimensions->TextLabel1->setText(tr("GEOM_RADIUS")); + + GroupOrientation = new DlgRef_3Radio(centralWidget()); + GroupOrientation->GroupBox1->setTitle(tr("GEOM_ORIENTATION")); + GroupOrientation->RadioButton1->setText(tr("GEOM_WPLANE_OXY")); + GroupOrientation->RadioButton2->setText(tr("GEOM_WPLANE_OYZ")); + GroupOrientation->RadioButton3->setText(tr("GEOM_WPLANE_OZX")); + + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPntVecR); + layout->addWidget(Group3Pnts); + layout->addWidget(GroupDimensions); + layout->addWidget(GroupOrientation); + /***************************************************************/ + + setHelpFileName("create_disk_page.html"); + + Init(); +} + +//================================================================================= +// function : ~PrimitiveGUI_DiskDlg() +// purpose : Destroys the object and frees any allocated resources +//================================================================================= +PrimitiveGUI_DiskDlg::~PrimitiveGUI_DiskDlg() +{ +} + +//================================================================================= +// function : Init() +// purpose : +//================================================================================= +void PrimitiveGUI_DiskDlg::Init() +{ + // Get setting of step value from file configuration + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + double aStep = resMgr->doubleValue("Geometry", "SettingsGeomStep", 100); + + // min, max, step and decimals for spin boxes & initial values + initSpinBox(GroupPntVecR->SpinBox_DX, 0.00001, COORD_MAX, aStep, 5); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DX, 0.00001, COORD_MAX, aStep, 5); // VSR: TODO: DBL_DIGITS_DISPLAY + + // init variables + myEditCurrentArgument = GroupPntVecR->LineEdit1; + myOrientationType = 1; + GroupOrientation->RadioButton1->setChecked(true); + + GroupPntVecR->LineEdit1->setText(""); + GroupPntVecR->LineEdit2->setText(""); + Group3Pnts->LineEdit1->setText(""); + Group3Pnts->LineEdit2->setText(""); + Group3Pnts->LineEdit3->setText(""); + myPoint = myDir = myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil(); + + GroupPntVecR->SpinBox_DX->setValue(100); + GroupDimensions->SpinBox_DX->setValue(100); + + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); + + connect(GroupPntVecR->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPntVecR->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + + connect(GroupPntVecR->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPntVecR->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + + connect(Group3Pnts->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(Group3Pnts->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(Group3Pnts->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + + connect(Group3Pnts->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(Group3Pnts->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(Group3Pnts->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + + connect(GroupPntVecR->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(GroupDimensions->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + + connect(GroupOrientation->RadioButton1, SIGNAL(clicked()), this, SLOT(RadioButtonClicked())); + connect(GroupOrientation->RadioButton2, SIGNAL(clicked()), this, SLOT(RadioButtonClicked())); + connect(GroupOrientation->RadioButton3, SIGNAL(clicked()), this, SLOT(RadioButtonClicked())); + + connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), this, SLOT(SetDoubleSpinBoxStep(double))); + connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); + + initName(tr("GEOM_DISK")); + + ConstructorsClicked(0); +} + +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void PrimitiveGUI_DiskDlg::SetDoubleSpinBoxStep (double step) +{ + GroupDimensions->SpinBox_DX->setSingleStep(step); + GroupPntVecR->SpinBox_DX->setSingleStep(step); +} + +//================================================================================= +// function : RadioBittonClicked() +// purpose : Radio button management +//================================================================================= +void PrimitiveGUI_DiskDlg::RadioButtonClicked() +{ + if (GroupOrientation->RadioButton1->isChecked()) + myOrientationType = 1; + else if (GroupOrientation->RadioButton2->isChecked()) + myOrientationType = 2; + else if (GroupOrientation->RadioButton3->isChecked()) + myOrientationType = 3; + displayPreview(); +} + +//================================================================================= +// function : ConstructorsClicked() +// purpose : Radio button management +//================================================================================= +void PrimitiveGUI_DiskDlg::ConstructorsClicked (int constructorId) +{ + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + + switch (constructorId) { + case 0: + { + GroupPntVecR->hide(); + Group3Pnts->hide(); + GroupDimensions->show(); + GroupOrientation->show(); + + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(); // close local contexts, if any + break; + } + case 1: + { + GroupDimensions->hide(); + GroupOrientation->hide(); + GroupPntVecR->show(); + Group3Pnts->hide(); + + GroupPntVecR->PushButton1->click(); + break; + } + case 2: + { + GroupDimensions->hide(); + GroupOrientation->hide(); + GroupPntVecR->hide(); + Group3Pnts->show(); + + Group3Pnts->PushButton1->click(); + break; + } + } + + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); + + if (myInitial) { + myInitial = false; + if (constructorId == 1 || constructorId == 2) { + // on dialog initialization we init the first field with a selected object (if any) + SelectionIntoArgument(); + } + else { + displayPreview(); + } + } + else { + displayPreview(); + } +} + +//================================================================================= +// function : ClickOnOk() +// purpose : +//================================================================================= +void PrimitiveGUI_DiskDlg::ClickOnOk() +{ + if (ClickOnApply()) + ClickOnCancel(); +} + +//================================================================================= +// function : ClickOnApply() +// purpose : +//================================================================================= +bool PrimitiveGUI_DiskDlg::ClickOnApply() +{ + if (!onAccept()) + return false; + + initName(); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); + return true; +} + +//================================================================================= +// function : SelectionIntoArgument() +// purpose : Called when selection is changed or on dialog initialization or activation +//================================================================================= +void PrimitiveGUI_DiskDlg::SelectionIntoArgument() +{ + if (getConstructorId() == 0) + return; + + erasePreview(); + myEditCurrentArgument->setText(""); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { + if (myEditCurrentArgument == GroupPntVecR->LineEdit1) myPoint = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPntVecR->LineEdit2) myDir = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group3Pnts->LineEdit1) myPoint1 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group3Pnts->LineEdit2) myPoint2 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group3Pnts->LineEdit3) myPoint3 = GEOM::GEOM_Object::_nil(); + return; + } + + // nbSel == 1 + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); + Standard_Boolean testResult = Standard_False; + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(anIO, testResult); + + if (!testResult || CORBA::is_nil(aSelectedObject)) + return; + + QString aName = GEOMBase::GetName(aSelectedObject); + + // If selected Vertex or Edge on the some Shape Get selection Subshape + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) + { + TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; + if (myEditCurrentArgument == GroupPntVecR->LineEdit2) + aNeedType = TopAbs_EDGE; + + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(anIO, aMap); + if (aMap.Extent() == 1) { // Local Selection + int anIndex = aMap(1); + if (aNeedType == TopAbs_EDGE) + aName += QString(":edge_%1").arg(anIndex); + else + aName += QString(":vertex_%1").arg(anIndex); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); + + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { + aSelectedObject = aFindedObject; // get Object from study + } + } + else { // Global Selection + if (aShape.ShapeType() != aNeedType) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } + } + + myEditCurrentArgument->setText(aName); + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (myEditCurrentArgument == GroupPntVecR->LineEdit1) { + myPoint = aSelectedObject; + if (!myPoint->_is_nil() && myDir->_is_nil()) + GroupPntVecR->PushButton2->click(); + } + else if (myEditCurrentArgument == GroupPntVecR->LineEdit2) { + myDir = aSelectedObject; + if (!myDir->_is_nil() && myPoint->_is_nil()) + GroupPntVecR->PushButton1->click(); + } + else if (myEditCurrentArgument == Group3Pnts->LineEdit1) { + myPoint1 = aSelectedObject; + if (!myPoint1->_is_nil() && myPoint2->_is_nil()) + Group3Pnts->PushButton2->click(); + } + else if (myEditCurrentArgument == Group3Pnts->LineEdit2) { + myPoint2 = aSelectedObject; + if (!myPoint2->_is_nil() && myPoint3->_is_nil()) + Group3Pnts->PushButton3->click(); + } + else if (myEditCurrentArgument == Group3Pnts->LineEdit3) { + myPoint3 = aSelectedObject; + if (!myPoint3->_is_nil() && myPoint1->_is_nil()) + Group3Pnts->PushButton1->click(); + } + + displayPreview(); +} + +//================================================================================= +// function : SetEditCurrentArgument() +// purpose : +//================================================================================= +void PrimitiveGUI_DiskDlg::SetEditCurrentArgument() +{ + QPushButton* send = (QPushButton*)sender(); + + if (send == GroupPntVecR->PushButton1) { + myEditCurrentArgument = GroupPntVecR->LineEdit1; + + GroupPntVecR->PushButton2->setDown(false); + GroupPntVecR->LineEdit2->setEnabled(false); + } + else if (send == GroupPntVecR->PushButton2) { + myEditCurrentArgument = GroupPntVecR->LineEdit2; + + GroupPntVecR->PushButton1->setDown(false); + GroupPntVecR->LineEdit1->setEnabled(false); + } + else if (send == Group3Pnts->PushButton1) { + myEditCurrentArgument = Group3Pnts->LineEdit1; + + Group3Pnts->PushButton2->setDown(false); + Group3Pnts->PushButton3->setDown(false); + Group3Pnts->LineEdit2->setEnabled(false); + Group3Pnts->LineEdit3->setEnabled(false); + } + else if (send == Group3Pnts->PushButton2) { + myEditCurrentArgument = Group3Pnts->LineEdit2; + + Group3Pnts->PushButton1->setDown(false); + Group3Pnts->PushButton3->setDown(false); + Group3Pnts->LineEdit1->setEnabled(false); + Group3Pnts->LineEdit3->setEnabled(false); + } + else if (send == Group3Pnts->PushButton3) { + myEditCurrentArgument = Group3Pnts->LineEdit3; + + Group3Pnts->PushButton1->setDown(false); + Group3Pnts->PushButton2->setDown(false); + Group3Pnts->LineEdit1->setEnabled(false); + Group3Pnts->LineEdit2->setEnabled(false); + } + + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + if (myEditCurrentArgument == GroupPntVecR->LineEdit2) { + globalSelection(); // close local contexts, if any + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + } + else { + globalSelection(); // close local contexts, if any + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); +} + +//================================================================================= +// function : LineEditReturnPressed() +// purpose : +//================================================================================= +void PrimitiveGUI_DiskDlg::LineEditReturnPressed() +{ +QLineEdit* send = (QLineEdit*)sender(); + if (send == GroupPntVecR->LineEdit1 || + send == GroupPntVecR->LineEdit2 || + send == Group3Pnts->LineEdit1 || + send == Group3Pnts->LineEdit2 || + send == Group3Pnts->LineEdit3) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } +} + +//================================================================================= +// function : ActivateThisDialog() +// purpose : +//================================================================================= +void PrimitiveGUI_DiskDlg::ActivateThisDialog() +{ + GEOMBase_Skeleton::ActivateThisDialog(); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + + ConstructorsClicked( getConstructorId() ); +} + +//================================================================================= +// function : enterEvent() +// purpose : +//================================================================================= +void PrimitiveGUI_DiskDlg::enterEvent (QEvent*) +{ + if (!mainFrame()->GroupConstructors->isEnabled()) + ActivateThisDialog(); +} + +//================================================================================= +// function : ValueChangedInSpinBox() +// purpose : +//================================================================================= +void PrimitiveGUI_DiskDlg::ValueChangedInSpinBox() +{ + displayPreview(); +} + +//================================================================================= +// function : createOperation +// purpose : +//================================================================================= +GEOM::GEOM_IOperations_ptr PrimitiveGUI_DiskDlg::createOperation() +{ + return getGeomEngine()->GetI3DPrimOperations(getStudyId()); +} + +//================================================================================= +// function : isEqual +// purpose : it may also be needed to check for min distance between gp_Pnt-s... +//================================================================================= +static bool isEqual (const GEOM::GEOM_Object_var& thePnt1, const GEOM::GEOM_Object_var& thePnt2) +{ + return thePnt1->_is_equivalent(thePnt2); +} + +//================================================================================= +// function : isValid +// purpose : +//================================================================================= +bool PrimitiveGUI_DiskDlg::isValid (QString& msg) +{ + bool ok = true; + if( getConstructorId() == 0 ) + ok = GroupDimensions->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + else if( getConstructorId() == 1 ) + ok = GroupPntVecR->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + + const int id = getConstructorId(); + if (id == 0) + return ok; + else if (id == 1) + return !myPoint->_is_nil() && !myDir->_is_nil() && getRadius() > 0 && ok; + else if (id == 2) + return !myPoint1->_is_nil() && !myPoint2->_is_nil() && !myPoint3->_is_nil() && + !isEqual(myPoint1, myPoint2) && !isEqual(myPoint1, myPoint3) && !isEqual(myPoint2, myPoint3); + return false; +} + +//================================================================================= +// function : execute +// purpose : +//================================================================================= +bool PrimitiveGUI_DiskDlg::execute (ObjectList& objects) +{ + bool res = false; + QStringList aParameters; + + GEOM::GEOM_Object_var anObj; + + switch (getConstructorId()) { + case 0: + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeDiskR(getRadius(), myOrientationType); + if (!anObj->_is_nil() && !IsPreview()) + { + aParameters << GroupDimensions->SpinBox_DX->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + res = true; + break; + case 1: + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeDiskPntVecR(myPoint, myDir, getRadius()); + if (!anObj->_is_nil() && !IsPreview()) + { + aParameters << GroupPntVecR->SpinBox_DX->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + res = true; + break; + case 2: + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeDiskThreePnt(myPoint1, myPoint2, myPoint3); + res = true; + break; + } + + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + + return res; +} + +//================================================================================= +// function : getRadius() +// purpose : +//================================================================================= +double PrimitiveGUI_DiskDlg::getRadius() const +{ + double r = 0.; + switch (getConstructorId()) { + case 0: + r = GroupDimensions->SpinBox_DX->value(); break; + case 1: + r = GroupPntVecR->SpinBox_DX->value(); break; + } + return r; +} + +//================================================================================= +// function : addSubshapeToStudy +// purpose : virtual method to add new SubObjects if local selection +//================================================================================= +void PrimitiveGUI_DiskDlg::addSubshapesToStudy() +{ + QMap objMap; + + switch (getConstructorId()) { + case 1: + objMap[GroupPntVecR->LineEdit1->text()] = myPoint; + objMap[GroupPntVecR->LineEdit2->text()] = myDir; + break; + case 2: + objMap[Group3Pnts->LineEdit1->text()] = myPoint1; + objMap[Group3Pnts->LineEdit2->text()] = myPoint2; + objMap[Group3Pnts->LineEdit3->text()] = myPoint3; + break; + } + addSubshapesToFather(objMap); +} diff --git a/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.h b/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.h new file mode 100755 index 000000000..83ddb2df0 --- /dev/null +++ b/src/PrimitiveGUI/PrimitiveGUI_DiskDlg.h @@ -0,0 +1,89 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_DiskDlg.h +// Author : Dmitry Matveitchev, OCN +// +#ifndef BASICGUI_DISKDLG_H +#define BASICGUI_DISKDLG_H + +#include + +class DlgRef_3Sel; +class DlgRef_2Sel1Spin; +class DlgRef_1Spin; +class DlgRef_3Radio; + +//================================================================================= +// class : PrimitiveGUI_DiskDlg +// purpose : +//================================================================================= +class PrimitiveGUI_DiskDlg : public GEOMBase_Skeleton +{ + Q_OBJECT + +public: + PrimitiveGUI_DiskDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~PrimitiveGUI_DiskDlg(); + +protected: + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + + virtual void addSubshapesToStudy(); + +private: + void Init(); + void enterEvent( QEvent* ); + double getRadius() const; + int myOrientationType; + +private: + GEOM::GEOM_Object_var myPoint, myDir, myPoint1, myPoint2, myPoint3; + + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_2Sel1Spin* GroupPntVecR; + DlgRef_3Sel* Group3Pnts; + DlgRef_1Spin* GroupDimensions; + DlgRef_3Radio* GroupOrientation; + +private slots: + void ClickOnOk(); + bool ClickOnApply(); + + void ActivateThisDialog(); + + void SelectionIntoArgument(); + + void ConstructorsClicked( int ); + void LineEditReturnPressed(); + void SetEditCurrentArgument(); + void ValueChangedInSpinBox(); + void SetDoubleSpinBoxStep( double ); + void RadioButtonClicked(); +}; + +#endif // BASICGUI_DISKDLG_H diff --git a/src/PrimitiveGUI/PrimitiveGUI_FaceDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_FaceDlg.cxx new file mode 100755 index 000000000..3f6d5fe6a --- /dev/null +++ b/src/PrimitiveGUI/PrimitiveGUI_FaceDlg.cxx @@ -0,0 +1,547 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_FaceDlg.cxx +// Author : Dmitry Matveitchev, OCN. +// +#include "PrimitiveGUI_FaceDlg.h" + +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +//================================================================================= +// class : PrimitiveGUI_FaceDlg() +// purpose : Constructs a PrimitiveGUI_FaceDlg which is a child of 'parent', with the +// name 'name' and widget flags set to 'f'. +// The dialog will by default be modeless, unless you set 'modal' to +// TRUE to construct a modal dialog. +//================================================================================= +PrimitiveGUI_FaceDlg::PrimitiveGUI_FaceDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) +{ + QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_FACE_OBJ_HW"))); + QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image2 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_FACE_HW"))); + + setWindowTitle( tr( "GEOM_FACE_TITLE" ) ); + + /***************************************************************/ + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_FACE" ) ); + mainFrame()->RadioButton1->setIcon( image2 ); + mainFrame()->RadioButton2->setIcon( image0 ); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); + + GroupPlane = new DlgRef_1Sel2Spin( centralWidget() ); + GroupPlane->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + GroupPlane->TextLabel1->setText( tr( "GEOM_EDGE" ) ); + GroupPlane->TextLabel2->setText( tr( "GEOM_HEIGHT" ) ); + GroupPlane->TextLabel3->setText( tr( "GEOM_WIDTH" ) ); + GroupPlane->PushButton1->setIcon( image1 ); + GroupPlane->LineEdit1->setReadOnly( true ); + + GroupType = new DlgRef_3Radio( centralWidget() ); + GroupType->GroupBox1->setTitle( tr( "GEOM_OBJECT_TYPE" ) ); + GroupType->RadioButton1->setText( tr( "GEOM_EDGE" ) ); + GroupType->RadioButton2->setText( tr( "GEOM_FACE" ) ); + GroupType->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + GroupType->RadioButton3->close(); + + GroupDimensions = new DlgRef_2Spin( centralWidget() ); + GroupDimensions->GroupBox1->setTitle( tr( "GEOM_BOX_OBJ" ) ); + GroupDimensions->TextLabel1->setText( tr( "GEOM_HEIGHT" ) ); + GroupDimensions->TextLabel2->setText( tr( "GEOM_WIDTH" ) ); + + GroupOrientation = new DlgRef_3Radio( centralWidget() ); + + GroupOrientation->GroupBox1->setTitle( tr( "GEOM_ORIENTATION" ) ); + GroupOrientation->RadioButton1->setText( tr( "GEOM_WPLANE_OXY" ) ); + GroupOrientation->RadioButton2->setText( tr( "GEOM_WPLANE_OYZ" ) ); + GroupOrientation->RadioButton3->setText( tr( "GEOM_WPLANE_OZX" ) ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupType ); + layout->addWidget( GroupPlane ); + layout->addWidget( GroupDimensions ); + layout->addWidget( GroupOrientation ); + + /***************************************************************/ + + setHelpFileName( "create_squareface_page.html" ); + + Init(); +} + + +//================================================================================= +// function : ~PrimitiveGUI_FaceDlg() +// purpose : Destroys the object and frees any allocated resources +//================================================================================= +PrimitiveGUI_FaceDlg::~PrimitiveGUI_FaceDlg() +{ +} + + +//================================================================================= +// function : Init() +// purpose : +//================================================================================= +void PrimitiveGUI_FaceDlg::Init() +{ + /* init variables */ + myEditCurrentArgument = GroupPlane->LineEdit1; + GroupType->RadioButton1->setChecked(true); + myEdge = GEOM::GEOM_Object::_nil(); + myFace = GEOM::GEOM_Object::_nil(); + globalSelection(); // close local contexts, if any + // localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + + myOrientationType = 1; + + /* Get setting of step value from file configuration */ + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + double aStep = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 ); + + double aDefaultSize = 100.0; + /* min, max, step and decimals for spin boxes */ + initSpinBox( GroupPlane->SpinBox_DX, 0.00001, COORD_MAX, aStep, 5 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupPlane->SpinBox_DX->setValue( aDefaultSize ); + initSpinBox( GroupPlane->SpinBox_DY, 0.00001, COORD_MAX, aStep, 5 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupPlane->SpinBox_DY->setValue( aDefaultSize ); + + initSpinBox( GroupDimensions->SpinBox_DX, 0.00001, COORD_MAX, aStep, 5 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupDimensions->SpinBox_DX->setValue( aDefaultSize ); + initSpinBox( GroupDimensions->SpinBox_DY, 0.00001, COORD_MAX, aStep, 5 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupDimensions->SpinBox_DY->setValue( aDefaultSize ); + + + /* signals and slots connections */ + connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); + connect( myGeomGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); + connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); + + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); + + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + + connect( GroupPlane->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPlane->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + connect( GroupPlane->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupPlane->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + + connect( GroupDimensions->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + connect( GroupDimensions->SpinBox_DY, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox( double ) ) ); + + connect( GroupOrientation->RadioButton1, SIGNAL( clicked() ), this, SLOT( RadioButtonClicked() ) ); + connect( GroupOrientation->RadioButton2, SIGNAL( clicked() ), this, SLOT( RadioButtonClicked() ) ); + connect( GroupOrientation->RadioButton3, SIGNAL( clicked() ), this, SLOT( RadioButtonClicked() ) ); + + connect( GroupType->RadioButton1, SIGNAL( clicked() ), this, SLOT( TypeButtonClicked() ) ); + connect( GroupType->RadioButton2, SIGNAL( clicked() ), this, SLOT( TypeButtonClicked() ) ); + + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + + initName( tr( "GEOM_FACE" ) ); + + ConstructorsClicked( 0 ); +} + +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void PrimitiveGUI_FaceDlg::SetDoubleSpinBoxStep( double step ) +{ + GroupPlane->SpinBox_DX->setSingleStep(step); + GroupPlane->SpinBox_DY->setSingleStep(step); +} + +//================================================================================= +// function : ValueChangedInSpinBox() +// purpose : +//================================================================================= +void PrimitiveGUI_FaceDlg::ValueChangedInSpinBox( double newValue ) +{ + displayPreview(); +} + +//================================================================================= +// function : RadioBittonClicked() +// purpose : Radio button management +//================================================================================= +void PrimitiveGUI_FaceDlg::RadioButtonClicked() +{ + if ( GroupOrientation->RadioButton1->isChecked() ) + myOrientationType = 1; + else if ( GroupOrientation->RadioButton2->isChecked() ) + myOrientationType = 2; + else if ( GroupOrientation->RadioButton3->isChecked() ) + myOrientationType = 3; + displayPreview(); +} + +//================================================================================= +// function : TypeBittonClicked() +// purpose : Radio button management +//================================================================================= +void PrimitiveGUI_FaceDlg::TypeButtonClicked() +{ + if ( GroupType->RadioButton1->isChecked() ) { + globalSelection(); // close local contexts, if any + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + GroupPlane->TextLabel1->setText( tr( "GEOM_EDGE" ) ); + } + else if ( GroupType->RadioButton2->isChecked() ) { + globalSelection(); // close local contexts, if any + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_FACE ); + GroupPlane->TextLabel1->setText( tr( "GEOM_FACE" ) ); + } +} + +//================================================================================= +// function : ClickOnOk() +// purpose : +//================================================================================= +void PrimitiveGUI_FaceDlg::ClickOnOk() +{ + if ( ClickOnApply() ) + ClickOnCancel(); +} + +//================================================================================= +// function : ClickOnApply() +// purpose : +//================================================================================= +bool PrimitiveGUI_FaceDlg::ClickOnApply() +{ + if ( !onAccept() ) + return false; + + initName(); + + myEditCurrentArgument->setText( "" ); + ConstructorsClicked( getConstructorId() ); + + return true; +} + +//================================================================================= +// function : ConstructorsClicked() +// purpose : Radio button management +//================================================================================= +void PrimitiveGUI_FaceDlg::ConstructorsClicked( int constructorId ) +{ + erasePreview(); + switch ( constructorId ) { + case 0: + { + globalSelection(); // close local contexts, if any + GroupPlane->hide(); + GroupDimensions->show(); + GroupOrientation->show(); + GroupType->hide(); + GroupOrientation->RadioButton1->setChecked( true ); + myOrientationType = 1; + break; + } + case 1: + { + globalSelection(); // close local contexts, if any + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + myEditCurrentArgument = GroupPlane->LineEdit1; + myEditCurrentArgument->setText(""); + myEdge = GEOM::GEOM_Object::_nil(); + myFace = GEOM::GEOM_Object::_nil(); + GroupType->RadioButton1->setChecked( true ); + TypeButtonClicked(); + GroupDimensions->hide(); + GroupOrientation->hide(); + GroupType->show(); + GroupPlane->show(); + break; + } + } + + qApp->processEvents(); + updateGeometry(); + resize( minimumSizeHint() ); + SelectionIntoArgument(); + //displayPreview(); +} + +//================================================================================= +// function : SelectionIntoArgument() +// purpose : Called when selection as changed or other case +//================================================================================= +void PrimitiveGUI_FaceDlg::SelectionIntoArgument() +{ + if (getConstructorId() == 0) { + displayPreview(); + return; + } + + myEditCurrentArgument->setText( "" ); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if ( aSelList.Extent() != 1 ) { + if ( myEditCurrentArgument == GroupPlane->LineEdit1 ) myEdge = GEOM::GEOM_Object::_nil(); + return; + } + + // nbSel == 1 + Standard_Boolean aRes = Standard_False; + TopAbs_ShapeEnum aNeedType = TopAbs_EDGE; + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( aSelList.First(), aRes ); + if ( !CORBA::is_nil( aSelectedObject ) && aRes ) { + QString aName = GEOMBase::GetName( aSelectedObject ); + + TopoDS_Shape aShape; + if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) { + if (GroupType->RadioButton2->isChecked()) + aNeedType = TopAbs_FACE; + + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes( aSelList.First(), aMap ); + if ( aMap.Extent() == 1 ) { // Local Selection + int anIndex = aMap( 1 ); + if ( aNeedType == TopAbs_EDGE ) + aName += QString( ":edge_%1" ).arg( anIndex ); + else + aName += QString( ":face_%1" ).arg( anIndex ); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( aSelectedObject, aName ); + + if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); + aSelectedObject = aShapesOp->GetSubShape( aSelectedObject, anIndex ); + } + else + aSelectedObject = aFindedObject; // get Object from study + } + else { // Global Selection + if ( aShape.ShapeType() != aNeedType ) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } + } + + myEditCurrentArgument->setText( aName ); + if ( myEditCurrentArgument == GroupPlane->LineEdit1 && aNeedType == TopAbs_EDGE ) + myEdge = aSelectedObject; + else if ( myEditCurrentArgument == GroupPlane->LineEdit1 && aNeedType == TopAbs_FACE ) + myFace = aSelectedObject; + } + displayPreview(); +} + + +//================================================================================= +// function : SetEditCurrentArgument() +// purpose : +//================================================================================= +void PrimitiveGUI_FaceDlg::SetEditCurrentArgument() +{ + QPushButton* send = (QPushButton*)sender(); + + globalSelection(); // close previous local contexts + if ( send == GroupPlane->PushButton1 ) { + myEditCurrentArgument = GroupPlane->LineEdit1; + if (GroupType->RadioButton1->isChecked()) + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + else if (GroupType->RadioButton1->isChecked()) + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_FACE ); + } + + myEditCurrentArgument->setFocus(); + SelectionIntoArgument(); +} + + +//================================================================================= +// function : LineEditReturnPressed() +// purpose : +//================================================================================= +void PrimitiveGUI_FaceDlg::LineEditReturnPressed() +{ + QLineEdit* send = (QLineEdit*)sender(); + if ( send == GroupPlane->LineEdit1 ) myEditCurrentArgument = GroupPlane->LineEdit1; + else return; + GEOMBase_Skeleton::LineEditReturnPressed(); +} + + +//================================================================================= +// function : ActivateThisDialog() +// purpose : +//================================================================================= +void PrimitiveGUI_FaceDlg::ActivateThisDialog() +{ + GEOMBase_Skeleton::ActivateThisDialog(); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + + ConstructorsClicked( getConstructorId() ); +} + +//================================================================================= +// function : DeactivateActiveDialog() +// purpose : public slot to deactivate if active +//================================================================================= +void PrimitiveGUI_FaceDlg::DeactivateActiveDialog() +{ + GEOMBase_Skeleton::DeactivateActiveDialog(); +} + +//================================================================================= +// function : enterEvent() +// purpose : +//================================================================================= +void PrimitiveGUI_FaceDlg::enterEvent( QEvent* ) +{ + if ( !mainFrame()->GroupConstructors->isEnabled() ) + ActivateThisDialog(); +} + +//================================================================================= +// function : createOperation +// purpose : +//================================================================================= +GEOM::GEOM_IOperations_ptr PrimitiveGUI_FaceDlg::createOperation() +{ + return myGeomGUI->GetGeomGen()->GetI3DPrimOperations( getStudyId() ); +} + +//================================================================================= +// function : isValid +// purpose : +//================================================================================= +bool PrimitiveGUI_FaceDlg::isValid( QString& msg ) +{ + bool ok = true; + if( getConstructorId() == 0 ) + { + ok = GroupDimensions->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + } + else if( getConstructorId() == 1 ) + { + ok = GroupPlane->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupPlane->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + } + + const int id = getConstructorId(); + if ( id == 0 ) + return ok; + else if ( id == 1 ) { + if (GroupType->RadioButton1->isChecked()) + return !myEdge->_is_nil() && ok; + else if (GroupType->RadioButton2->isChecked()) + return !myFace->_is_nil() && ok; + } + return false; +} + +//================================================================================= +// function : execute +// purpose : +//================================================================================= +bool PrimitiveGUI_FaceDlg::execute (ObjectList& objects) +{ + bool res = false; + QStringList aParameters; + GEOM::GEOM_Object_var anObj; + switch (getConstructorId()) { + case 0: + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeFaceHW(GroupDimensions->SpinBox_DX->value(), + GroupDimensions->SpinBox_DY->value(), myOrientationType); + if (!anObj->_is_nil() && !IsPreview()) + { + aParameters << GroupDimensions->SpinBox_DX->text(); + aParameters << GroupDimensions->SpinBox_DY->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + res = true; + break; + case 1: + if (GroupType->RadioButton1->isChecked()) + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeFaceObjHW(myEdge, GroupPlane->SpinBox_DX->value(), GroupPlane->SpinBox_DY->value()); + else if (GroupType->RadioButton2->isChecked()) + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeFaceObjHW(myFace, GroupPlane->SpinBox_DX->value(), GroupPlane->SpinBox_DY->value()); + if (!anObj->_is_nil() && !IsPreview()) + { + aParameters << GroupPlane->SpinBox_DX->text(); + aParameters << GroupPlane->SpinBox_DY->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + res = true; + break; + } + + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + + return res; +} + +//================================================================================= +// function : addSubshapeToStudy +// purpose : virtual method to add new SubObjects if local selection +//================================================================================= +void PrimitiveGUI_FaceDlg::addSubshapesToStudy() +{ + QMap objMap; + switch ( getConstructorId() ) { + case 1 : + if ( GroupType->RadioButton1->isChecked() ) + objMap[GroupPlane->LineEdit1->text()] = myEdge; + if ( GroupType->RadioButton2->isChecked() ) + objMap[GroupPlane->LineEdit1->text()] = myFace; + break; + } + addSubshapesToFather( objMap ); +} diff --git a/src/PrimitiveGUI/PrimitiveGUI_FaceDlg.h b/src/PrimitiveGUI/PrimitiveGUI_FaceDlg.h new file mode 100755 index 000000000..90d034e8b --- /dev/null +++ b/src/PrimitiveGUI/PrimitiveGUI_FaceDlg.h @@ -0,0 +1,86 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : BasicGUI_FaceDlg.h +// Author : Dmitry Matveithev, OCN. +// +#ifndef BASICGUI_FACEDLG_H +#define BASICGUI_FACEDLG_H + +#include + +class DlgRef_2Spin; +class DlgRef_1Sel2Spin; +class DlgRef_3Radio; + +//================================================================================= +// class : PrimitiveGUI_FaceDlg +// purpose : +//================================================================================= +class PrimitiveGUI_FaceDlg : public GEOMBase_Skeleton +{ + Q_OBJECT + +public: + PrimitiveGUI_FaceDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~PrimitiveGUI_FaceDlg(); + +protected: + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); + +private: + void Init(); + void enterEvent( QEvent* ); + +private: + GEOM::GEOM_Object_var myEdge; + GEOM::GEOM_Object_var myFace; + + int myOrientationType; + + DlgRef_2Spin* GroupDimensions; + DlgRef_1Sel2Spin* GroupPlane; + DlgRef_3Radio* GroupOrientation; + DlgRef_3Radio* GroupType; + +private slots: + void ClickOnOk(); + bool ClickOnApply(); + + void ActivateThisDialog(); + void DeactivateActiveDialog(); + void ConstructorsClicked( int ); + + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ValueChangedInSpinBox( double ); + void SetDoubleSpinBoxStep( double ); + void RadioButtonClicked(); + void TypeButtonClicked(); +}; + +#endif // BASICGUI_FACEDLG_H diff --git a/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx index 8b0dbb107..6fc293005 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.cxx @@ -1,37 +1,38 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_SphereDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : PrimitiveGUI_SphereDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "PrimitiveGUI_SphereDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include + +#include +#include +#include +#include #include #include @@ -39,13 +40,7 @@ #include #include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : PrimitiveGUI_SphereDlg() @@ -54,42 +49,45 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -PrimitiveGUI_SphereDlg::PrimitiveGUI_SphereDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +PrimitiveGUI_SphereDlg::PrimitiveGUI_SphereDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + :GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SPHERE_P"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SPHERE_DXYZ"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_SPHERE_P" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_SPHERE_DXYZ" ) ) ); + QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_SPHERE_TITLE")); + setWindowTitle( tr( "GEOM_SPHERE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_SPHERE")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_SPHERE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setIcon( image1 ); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel1Spin(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_SPHERE_CR")); - GroupPoints->TextLabel1->setText(tr("GEOM_CENTER")); - GroupPoints->TextLabel2->setText(tr("GEOM_RADIUS")); - GroupPoints->PushButton1->setPixmap(image2); + GroupPoints = new DlgRef_1Sel1Spin( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_SPHERE_CR" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_CENTER" ) ); + GroupPoints->TextLabel2->setText( tr( "GEOM_RADIUS" ) ); + GroupPoints->PushButton1->setIcon( image2 ); - GroupDimensions = new DlgRef_1Spin(this, "GroupDimensions"); - GroupDimensions->GroupBox1->setTitle(tr("GEOM_SPHERE_RO")); - GroupDimensions->TextLabel1->setText(tr("GEOM_RADIUS")); + GroupDimensions = new DlgRef_1Spin( centralWidget() ); + GroupDimensions->GroupBox1->setTitle( tr( "GEOM_SPHERE_RO" ) ); + GroupDimensions->TextLabel1->setText( tr( "GEOM_RADIUS" ) ); - Layout1->addWidget(GroupPoints, 2, 0); - Layout1->addWidget(GroupDimensions, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); + layout->addWidget( GroupDimensions ); /***************************************************************/ - setHelpFileName("create_sphere_page.html"); + setHelpFileName( "create_sphere_page.html" ); Init(); } + //================================================================================= // function : ~PrimitiveGUI_SphereDlg() // purpose : Destroys the object and frees any allocated resources @@ -99,6 +97,7 @@ PrimitiveGUI_SphereDlg::~PrimitiveGUI_SphereDlg() /* no need to delete child widgets, Qt does it all for us */ } + //================================================================================= // function : Init() // purpose : @@ -113,76 +112,91 @@ void PrimitiveGUI_SphereDlg::Init() /* Get setting of step value from file configuration */ SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100 ); /* min, max, step and decimals for spin boxes */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DX->SetValue(100.0); - GroupDimensions->SpinBox_DX->SetValue(100.0); + initSpinBox( GroupPoints->SpinBox_DX, 0.000001, COORD_MAX, step, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox( GroupDimensions->SpinBox_DX, 0.000001, COORD_MAX, step, 6 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupPoints->SpinBox_DX->setValue( 100.0 ); + GroupDimensions->SpinBox_DX->setValue( 100.0 ); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); - connect(GroupDimensions->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupPoints->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupDimensions->SpinBox_DX, SLOT(SetStep(double))); + connect( GroupDimensions->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox() ) ); + connect( GroupPoints->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox() ) ); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI, SIGNAL( SignalDefaultStepValueChanged( double ) ), this, SLOT( SetDoubleSpinBoxStep( double ) ) ); - initName(tr("GEOM_SPHERE")); - ConstructorsClicked(0); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + + initName( tr( "GEOM_SPHERE" ) ); + + setConstructorId( 1 ); // simplest constructor + ConstructorsClicked( 1 ); +} + +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void PrimitiveGUI_SphereDlg::SetDoubleSpinBoxStep( double step ) +{ + GroupPoints->SpinBox_DX->setSingleStep(step); + GroupDimensions->SpinBox_DX->setSingleStep(step); } //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void PrimitiveGUI_SphereDlg::ConstructorsClicked (int constructorId) +void PrimitiveGUI_SphereDlg::ConstructorsClicked( int constructorId ) { - disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - - switch (constructorId) + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); + + switch ( constructorId ) { + case 0: { - case 0: - { - globalSelection(); // close local contexts, if any - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - GroupDimensions->hide(); - resize(0, 0); - GroupPoints->show(); + globalSelection(); // close local contexts, if any + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setText(""); - myPoint = GEOM::GEOM_Object::_nil(); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - break; - } - case 1: - { - GroupPoints->hide(); - globalSelection(); // close local contexts, if any - resize(0, 0); - GroupDimensions->show(); - - break; - } + GroupDimensions->hide(); + GroupPoints->show(); + + myEditCurrentArgument = GroupPoints->LineEdit1; + GroupPoints->LineEdit1->setText( "" ); + myPoint = GEOM::GEOM_Object::_nil(); + + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); + break; } + case 1: + { + globalSelection(); // close local contexts, if any + + GroupPoints->hide(); + GroupDimensions->show(); + + break; + } + } + + qApp->processEvents(); + updateGeometry(); + resize( minimumSizeHint() ); + displayPreview(); } + //================================================================================= // function : ClickOnOk() // purpose : @@ -193,6 +207,7 @@ void PrimitiveGUI_SphereDlg::ClickOnOk() ClickOnCancel(); } + //================================================================================= // function : ClickOnApply() // purpose : @@ -207,14 +222,6 @@ bool PrimitiveGUI_SphereDlg::ClickOnApply() return true; } -//================================================================================= -// function : ClickOnCancel() -// purpose : -//================================================================================= -void PrimitiveGUI_SphereDlg::ClickOnCancel() -{ - GEOMBase_Skeleton::ClickOnCancel(); -} //================================================================================= // function : SelectionIntoArgument() @@ -222,49 +229,49 @@ void PrimitiveGUI_SphereDlg::ClickOnCancel() //================================================================================= void PrimitiveGUI_SphereDlg::SelectionIntoArgument() { - if (getConstructorId() != 0) + if ( getConstructorId() != 0 ) return; - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); - if (IObjectCount() != 1) - { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) { myPoint = GEOM::GEOM_Object::_nil(); return; } /* nbSel == 1 ! */ Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult); + GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); - if (!testResult || CORBA::is_nil(aSelectedObject)) + if ( !testResult || CORBA::is_nil( aSelectedObject ) ) return; - - QString aName = GEOMBase::GetName(aSelectedObject); + + QString aName = GEOMBase::GetName( aSelectedObject ); TopoDS_Shape aShape; - if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) - { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull() ) { TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes(firstIObject(), aMap); - if (aMap.Extent() == 1) // Local Selection - { + aSelMgr->GetIndexes(aSelList.First(), aMap); + if ( aMap.Extent() == 1 ) { // Local Selection int anIndex = aMap( 1 ); aName.append( ":vertex_" + QString::number( anIndex ) ); //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); + GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName ); if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + aSelectedObject = aShapesOp->GetSubShape( aSelectedObject, anIndex ); } - else + else { aSelectedObject = aFindedObject; // get Object from study + } } - else // Global Selection - { + else { // Global Selection if (aShape.ShapeType() != TopAbs_VERTEX) { aSelectedObject = GEOM::GEOM_Object::_nil(); aName = ""; @@ -272,7 +279,7 @@ void PrimitiveGUI_SphereDlg::SelectionIntoArgument() } } - myEditCurrentArgument->setText(aName); + myEditCurrentArgument->setText( aName ); myPoint = aSelectedObject; displayPreview(); @@ -285,13 +292,13 @@ void PrimitiveGUI_SphereDlg::SelectionIntoArgument() void PrimitiveGUI_SphereDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } + if ( send == GroupPoints->LineEdit1 ) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } } + //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -300,7 +307,7 @@ void PrimitiveGUI_SphereDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if (send == GroupPoints->PushButton1) { + if ( send == GroupPoints->PushButton1 ) { GroupPoints->LineEdit1->setFocus(); myEditCurrentArgument = GroupPoints->LineEdit1; globalSelection(); // close local contexts, if any @@ -309,6 +316,7 @@ void PrimitiveGUI_SphereDlg::SetEditCurrentArgument() } } + //================================================================================= // function : ActivateThisDialog() // purpose : @@ -316,12 +324,13 @@ void PrimitiveGUI_SphereDlg::SetEditCurrentArgument() void PrimitiveGUI_SphereDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); - - ConstructorsClicked(getConstructorId()); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + + ConstructorsClicked( getConstructorId() ); } + //================================================================================= // function : DeactivateActiveDialog() // purpose : public slot to deactivate if active @@ -331,16 +340,18 @@ void PrimitiveGUI_SphereDlg::DeactivateActiveDialog() GEOMBase_Skeleton::DeactivateActiveDialog(); } + //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void PrimitiveGUI_SphereDlg::enterEvent(QEvent* e) +void PrimitiveGUI_SphereDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } + //================================================================================= // function : ValueChangedInSpinBox() // purpose : @@ -350,6 +361,7 @@ void PrimitiveGUI_SphereDlg::ValueChangedInSpinBox() displayPreview(); } + //================================================================================= // function : createOperation // purpose : @@ -359,59 +371,66 @@ GEOM::GEOM_IOperations_ptr PrimitiveGUI_SphereDlg::createOperation() return getGeomEngine()->GetI3DPrimOperations( getStudyId() ); } + //================================================================================= // function : isValid // purpose : //================================================================================= bool PrimitiveGUI_SphereDlg::isValid( QString& msg ) { - return getConstructorId() == 0 ? !myPoint->_is_nil() : true; + bool ok = true; + if( getConstructorId() == 0 ) + ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + else if( getConstructorId() == 1 ) + ok = GroupDimensions->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + return getConstructorId() == 0 ? !myPoint->_is_nil() && ok : ok; } //================================================================================= // function : execute // purpose : //================================================================================= -bool PrimitiveGUI_SphereDlg::execute (ObjectList& objects) +bool PrimitiveGUI_SphereDlg::execute( ObjectList& objects ) { bool res = false; - + GEOM::GEOM_Object_var anObj; - switch (getConstructorId()) - { - case 0: + switch ( getConstructorId() ) { + case 0 : { - if (!CORBA::is_nil(myPoint)) { - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )-> - MakeSpherePntR(myPoint, getRadius()); + if ( !CORBA::is_nil( myPoint ) ) { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->MakeSpherePntR( myPoint, getRadius() ); + if (!anObj->_is_nil() && !IsPreview()) + { + QStringList aParameters; + aParameters << GroupPoints->SpinBox_DX->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } res = true; } break; } - case 1: + case 1 : { - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )-> - MakeSphereR(getRadius()); + anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )->MakeSphereR( getRadius() ); + if (!anObj->_is_nil() && !IsPreview()) + { + QStringList aParameters; + aParameters << GroupDimensions->SpinBox_DX->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } res = true; break; } } - - if (!anObj->_is_nil()) - objects.push_back(anObj._retn()); - + + if ( !anObj->_is_nil() ) + objects.push_back( anObj._retn() ); + return res; } -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void PrimitiveGUI_SphereDlg::closeEvent( QCloseEvent* e ) -{ - GEOMBase_Skeleton::closeEvent( e ); -} //================================================================================= // function : getRadius() @@ -420,10 +439,10 @@ void PrimitiveGUI_SphereDlg::closeEvent( QCloseEvent* e ) double PrimitiveGUI_SphereDlg::getRadius() const { int aConstructorId = getConstructorId(); - if (aConstructorId == 0) - return GroupPoints->SpinBox_DX->GetValue(); - else if (aConstructorId == 1) - return GroupDimensions->SpinBox_DX->GetValue(); + if ( aConstructorId == 0 ) + return GroupPoints->SpinBox_DX->value(); + else if ( aConstructorId == 1 ) + return GroupDimensions->SpinBox_DX->value(); return 0; } @@ -435,13 +454,12 @@ void PrimitiveGUI_SphereDlg::addSubshapesToStudy() { QMap objMap; -switch (getConstructorId()) - { + switch ( getConstructorId() ) { case 0: objMap[GroupPoints->LineEdit1->text()] = myPoint; break; case 1: return; } - addSubshapesToFather( objMap ); + addSubshapesToFather( objMap ); } diff --git a/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.h b/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.h index 8e1297ffa..80ffe3f27 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.h +++ b/src/PrimitiveGUI/PrimitiveGUI_SphereDlg.h @@ -1,37 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : PrimitiveGUI_SphereDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_SphereDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef PRIMITIVEGUI_SPHEREDLG_H +#define PRIMITIVEGUI_SPHEREDLG_H -#ifndef DIALOGBOX_SPHERE_H -#define DIALOGBOX_SPHERE_H - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel1Spin.h" -#include "DlgRef_1Spin.h" +#include +class DlgRef_1Sel1Spin; +class DlgRef_1Spin; //================================================================================= // class : PrimitiveGUI_SphereDlg @@ -39,42 +37,41 @@ //================================================================================= class PrimitiveGUI_SphereDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - PrimitiveGUI_SphereDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~PrimitiveGUI_SphereDlg(); + PrimitiveGUI_SphereDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~PrimitiveGUI_SphereDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); private: - void Init(); - void enterEvent(QEvent* e); - double getRadius() const; - - GEOM::GEOM_Object_var myPoint; /* Center point */ - - DlgRef_1Sel1Spin* GroupPoints; - DlgRef_1Spin* GroupDimensions; + void Init(); + void enterEvent( QEvent* ); + double getRadius() const; + +private: + GEOM::GEOM_Object_var myPoint; /* Center point */ + + DlgRef_1Sel1Spin* GroupPoints; + DlgRef_1Spin* GroupDimensions; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ClickOnCancel(); - void ActivateThisDialog(); - void DeactivateActiveDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ConstructorsClicked(int); - void ValueChangedInSpinBox(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void DeactivateActiveDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void ValueChangedInSpinBox(); + void SetDoubleSpinBoxStep( double ); }; #endif // DIALOGBOX_SPHERE_H diff --git a/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx b/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx index 00fc1c109..a756fdf62 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx +++ b/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.cxx @@ -1,38 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_TorusDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : PrimitiveGUI_TorusDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "PrimitiveGUI_TorusDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include #include @@ -40,11 +42,7 @@ #include #include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" +#include //================================================================================= // class : PrimitiveGUI_TorusDlg() @@ -53,40 +51,43 @@ // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -PrimitiveGUI_TorusDlg::PrimitiveGUI_TorusDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - : GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +PrimitiveGUI_TorusDlg::PrimitiveGUI_TorusDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); - QPixmap image0(aResMgr->loadPixmap("GEOM", tr("ICON_DLG_TORUS_PV"))); - QPixmap image1(aResMgr->loadPixmap("GEOM", tr("ICON_DLG_TORUS_DXYZ"))); - QPixmap image2(aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_TORUS_PV"))); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_TORUS_DXYZ"))); + QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_TORUS_TITLE")); + setWindowTitle(tr("GEOM_TORUS_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_TORUS")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_TORUS")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_2Sel2Spin(this, "GroupPoints"); + GroupPoints = new DlgRef_2Sel2Spin(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); GroupPoints->TextLabel1->setText(tr("GEOM_BASE_POINT")); GroupPoints->TextLabel2->setText(tr("GEOM_VECTOR")); - GroupPoints->TextLabel3->setText(tr("GEOM_RADIUS_I").arg("1")); - GroupPoints->TextLabel4->setText(tr("GEOM_RADIUS_I").arg("2")); - GroupPoints->PushButton1->setPixmap(image2); - GroupPoints->PushButton2->setPixmap(image2); + GroupPoints->TextLabel3->setText(tr("GEOM_RADIUS_I").arg(1)); + GroupPoints->TextLabel4->setText(tr("GEOM_RADIUS_I").arg(2)); + GroupPoints->PushButton1->setIcon(image2); + GroupPoints->PushButton2->setIcon(image2); - GroupDimensions = new DlgRef_2Spin(this, "GroupDimensions"); + GroupDimensions = new DlgRef_2Spin(centralWidget()); GroupDimensions->GroupBox1->setTitle(tr("GEOM_BOX_OBJ")); - GroupDimensions->TextLabel1->setText(tr("GEOM_RADIUS_I").arg("1")); - GroupDimensions->TextLabel2->setText(tr("GEOM_RADIUS_I").arg("2")); + GroupDimensions->TextLabel1->setText(tr("GEOM_RADIUS_I").arg(1)); + GroupDimensions->TextLabel2->setText(tr("GEOM_RADIUS_I").arg(2)); - Layout1->addWidget(GroupPoints, 2, 0); - Layout1->addWidget(GroupDimensions, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); + layout->addWidget(GroupDimensions); /***************************************************************/ setHelpFileName("create_torus_page.html"); @@ -94,50 +95,49 @@ PrimitiveGUI_TorusDlg::PrimitiveGUI_TorusDlg(GeometryGUI* theGeometryGUI, QWidge Init(); } - //================================================================================= // function : ~PrimitiveGUI_TorusDlg() // purpose : Destroys the object and frees any allocated resources //================================================================================= PrimitiveGUI_TorusDlg::~PrimitiveGUI_TorusDlg() { - // no need to delete child widgets, Qt does it all for us + // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void PrimitiveGUI_TorusDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); + // Get setting of step value from file configuration + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + double step = resMgr->doubleValue("Geometry", "SettingsGeomStep", 100); + // min, max, step and decimals for spin boxes & initial values + initSpinBox(GroupPoints->SpinBox_DX, 0.000001, COORD_MAX, step, 6); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupPoints->SpinBox_DY, 0.000001, COORD_MAX, step, 6); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DX, 0.000001, COORD_MAX, step, 6); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DY, 0.000001, COORD_MAX, step, 6); // VSR: TODO: DBL_DIGITS_DISPLAY + + // init variables + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->LineEdit2->setReadOnly(true); + + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); myPoint = myDir = GEOM::GEOM_Object::_nil(); - /* Get setting of step value from file configuration */ - SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + GroupPoints->SpinBox_DX->setValue(300.0); + GroupPoints->SpinBox_DY->setValue(100.0); + GroupDimensions->SpinBox_DX->setValue(300.0); + GroupDimensions->SpinBox_DY->setValue(100.0); - /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DY->RangeStepAndValidator(0.001, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DX->RangeStepAndValidator(0.001, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DY->RangeStepAndValidator(0.001, COORD_MAX, step, DBL_DIGITS_DISPLAY); + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); - GroupPoints->SpinBox_DX->SetValue(300.0); - GroupPoints->SpinBox_DY->SetValue(100.0); - GroupDimensions->SpinBox_DX->SetValue(300.0); - GroupDimensions->SpinBox_DY->SetValue(100.0); - - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); @@ -145,25 +145,29 @@ void PrimitiveGUI_TorusDlg::Init() connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(GroupPoints->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(GroupPoints->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupDimensions->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupDimensions->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupPoints->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupPoints->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupDimensions->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), - GroupDimensions->SpinBox_DY, SLOT(SetStep(double))); + connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), this, SLOT(SetDoubleSpinBoxStep(double))); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + initName(tr("GEOM_TORUS")); - initName( tr( "GEOM_TORUS" ) ); - ConstructorsClicked(0); + setConstructorId(1); // simplest constructor + ConstructorsClicked(1); +} + +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void PrimitiveGUI_TorusDlg::SetDoubleSpinBoxStep (double step) +{ + GroupPoints->SpinBox_DX->setSingleStep(step); + GroupPoints->SpinBox_DY->setSingleStep(step); + GroupDimensions->SpinBox_DX->setSingleStep(step); + GroupDimensions->SpinBox_DY->setSingleStep(step); } //================================================================================= @@ -174,42 +178,43 @@ void PrimitiveGUI_TorusDlg::ConstructorsClicked (int constructorId) { disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - switch (constructorId) - { + switch (constructorId) { case 0: { - globalSelection(); // close local contexts, if any - localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); - GroupDimensions->hide(); - resize(0, 0); GroupPoints->show(); - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setText(tr("")); - GroupPoints->LineEdit2->setText(tr("")); - myPoint = myDir = GEOM::GEOM_Object::_nil(); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - SelectionIntoArgument(); - + GroupPoints->PushButton1->click(); break; } case 1: { GroupPoints->hide(); - globalSelection(); // close local contexts, if any - resize(0, 0); GroupDimensions->show(); - + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(); // close local contexts, if any break; } } - displayPreview(); -} + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); + if (myInitial) { + myInitial = false; + if (constructorId == 0) { + // on dialog initialization we init the first field with a selected object (if any) + SelectionIntoArgument(); + } + else { + displayPreview(); + } + } + else { + displayPreview(); + } +} //================================================================================= // function : ClickOnOk() @@ -221,7 +226,6 @@ void PrimitiveGUI_TorusDlg::ClickOnOk() ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : @@ -232,38 +236,43 @@ bool PrimitiveGUI_TorusDlg::ClickOnApply() return false; initName(); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void PrimitiveGUI_TorusDlg::SelectionIntoArgument() { if (getConstructorId() != 0) return; + erasePreview(); myEditCurrentArgument->setText(""); - if (IObjectCount() != 1) - { - if (myEditCurrentArgument == GroupPoints->LineEdit1) - myPoint = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupPoints->LineEdit2) - myDir = GEOM::GEOM_Object::_nil(); - return; - } + if (myEditCurrentArgument == GroupPoints->LineEdit1) myPoint = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit2) myDir = GEOM::GEOM_Object::_nil(); - /* nbSel == 1 */ + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) + return; + + // nbSel == 1 Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult); + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); if (!testResult || CORBA::is_nil(aSelectedObject)) return; QString aName = GEOMBase::GetName(aSelectedObject); + + // Get Selected object if selected subshape TopoDS_Shape aShape; if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { @@ -271,11 +280,9 @@ void PrimitiveGUI_TorusDlg::SelectionIntoArgument() if (myEditCurrentArgument == GroupPoints->LineEdit2) aNeedType = TopAbs_EDGE; - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes(firstIObject(), aMap); - if (aMap.Extent() == 1) // Local Selection - { + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) { // Local Selection int anIndex = aMap(1); if (aNeedType == TopAbs_EDGE) aName.append(":edge_" + QString::number(anIndex)); @@ -285,16 +292,16 @@ void PrimitiveGUI_TorusDlg::SelectionIntoArgument() //Find SubShape Object in Father GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations( getStudyId() ); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { + aSelectedObject = aFindedObject; // get Object from study } - else - aSelectedObject = aFindedObject; // get Object from study } - else // Global Selection - { + else { // Global Selection if (aShape.ShapeType() != aNeedType) { aSelectedObject = GEOM::GEOM_Object::_nil(); aName = ""; @@ -304,11 +311,63 @@ void PrimitiveGUI_TorusDlg::SelectionIntoArgument() myEditCurrentArgument->setText(aName); - if (myEditCurrentArgument == GroupPoints->LineEdit1) - myPoint = aSelectedObject; - else if (myEditCurrentArgument == GroupPoints->LineEdit2) - myDir = aSelectedObject; + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + myPoint = aSelectedObject; + if (!myPoint->_is_nil() && myDir->_is_nil()) + GroupPoints->PushButton2->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { + myDir = aSelectedObject; + if (!myDir->_is_nil() && myPoint->_is_nil()) + GroupPoints->PushButton1->click(); + } + + displayPreview(); +} + +//================================================================================= +// function : SetEditCurrentArgument() +// purpose : +//================================================================================= +void PrimitiveGUI_TorusDlg::SetEditCurrentArgument() +{ + QPushButton* send = (QPushButton*)sender(); + + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + if (send == GroupPoints->PushButton1) { + myEditCurrentArgument = GroupPoints->LineEdit1; + + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + + globalSelection(GEOM_POINT); // to break previous local selection + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + } + else if (send == GroupPoints->PushButton2) { + myEditCurrentArgument = GroupPoints->LineEdit2; + + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + + globalSelection(GEOM_LINE); // to break previous local selection + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change displayPreview(); } @@ -320,38 +379,12 @@ void PrimitiveGUI_TorusDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); if (send == GroupPoints->LineEdit1 || - send == GroupPoints->LineEdit2) - { + send == GroupPoints->LineEdit2) { myEditCurrentArgument = send; GEOMBase_Skeleton::LineEditReturnPressed(); } } - -//================================================================================= -// function : SetEditCurrentArgument() -// purpose : -//================================================================================= -void PrimitiveGUI_TorusDlg::SetEditCurrentArgument() -{ - QPushButton* send = (QPushButton*)sender(); - globalSelection( GEOM_POINT ); // to break previous local selection - - if (send == GroupPoints->PushButton1) { - myEditCurrentArgument = GroupPoints->LineEdit1; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - } - else if (send == GroupPoints->PushButton2) { - myEditCurrentArgument = GroupPoints->LineEdit2; - GEOM::GEOM_Object_var anObj; - localSelection( anObj, TopAbs_EDGE ); - } - - myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); -} - - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -360,26 +393,24 @@ void PrimitiveGUI_TorusDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + ConstructorsClicked( getConstructorId() ); } - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void PrimitiveGUI_TorusDlg::enterEvent(QEvent* e) +void PrimitiveGUI_TorusDlg::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - //================================================================================= -// function : ValueChangedInSpinBox +// function : ValueChangedInSpinBox() // purpose : //================================================================================= void PrimitiveGUI_TorusDlg::ValueChangedInSpinBox() @@ -387,58 +418,76 @@ void PrimitiveGUI_TorusDlg::ValueChangedInSpinBox() displayPreview(); } - //================================================================================= // function : createOperation // purpose : //================================================================================= GEOM::GEOM_IOperations_ptr PrimitiveGUI_TorusDlg::createOperation() { - return getGeomEngine()->GetI3DPrimOperations( getStudyId() ); + return getGeomEngine()->GetI3DPrimOperations(getStudyId()); } //================================================================================= // function : isValid // purpose : //================================================================================= -bool PrimitiveGUI_TorusDlg::isValid( QString& msg ) +bool PrimitiveGUI_TorusDlg::isValid (QString& msg) { - return getConstructorId() == 0 ? !(myPoint->_is_nil() || myDir->_is_nil()) : true; + bool ok = true; + if( getConstructorId() == 0 ) + { + ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + } + else if( getConstructorId() == 1 ) + { + ok = GroupDimensions->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + } + return getConstructorId() == 0 ? !(myPoint->_is_nil() || myDir->_is_nil()) && ok : ok; } //================================================================================= // function : execute // purpose : //================================================================================= -bool PrimitiveGUI_TorusDlg::execute( ObjectList& objects ) +bool PrimitiveGUI_TorusDlg::execute (ObjectList& objects) { bool res = false; GEOM::GEOM_Object_var anObj; - switch ( getConstructorId() ) - { + switch (getConstructorId()) { case 0: - { - if (!CORBA::is_nil( myPoint ) && !CORBA::is_nil( myDir )) + if (!CORBA::is_nil(myPoint) && !CORBA::is_nil(myDir)) { + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeTorusPntVecRR(myPoint, myDir, getRadius1(), getRadius2()); + if (!anObj->_is_nil() && !IsPreview()) { - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )-> - MakeTorusPntVecRR(myPoint, myDir, getRadius1(), getRadius2()); - res = true; + QStringList aParameters; + aParameters << GroupPoints->SpinBox_DX->text(); + aParameters << GroupPoints->SpinBox_DY->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); } - break; - } - case 1: - { - anObj = GEOM::GEOM_I3DPrimOperations::_narrow( getOperation() )-> - MakeTorusRR(getRadius1(), getRadius2()); res = true; - break; } + break; + case 1: + anObj = GEOM::GEOM_I3DPrimOperations::_narrow(getOperation())-> + MakeTorusRR(getRadius1(), getRadius2()); + if (!anObj->_is_nil() && !IsPreview()) + { + QStringList aParameters; + aParameters << GroupDimensions->SpinBox_DX->text(); + aParameters << GroupDimensions->SpinBox_DY->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + res = true; + break; } - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); return res; } @@ -451,9 +500,9 @@ double PrimitiveGUI_TorusDlg::getRadius1() const { int aConstructorId = getConstructorId(); if (aConstructorId == 0) - return GroupPoints->SpinBox_DX->GetValue(); + return GroupPoints->SpinBox_DX->value(); else if (aConstructorId == 1) - return GroupDimensions->SpinBox_DX->GetValue(); + return GroupDimensions->SpinBox_DX->value(); return 0; } @@ -465,9 +514,9 @@ double PrimitiveGUI_TorusDlg::getRadius2() const { int aConstructorId = getConstructorId(); if (aConstructorId == 0) - return GroupPoints->SpinBox_DY->GetValue(); + return GroupPoints->SpinBox_DY->value(); else if (aConstructorId == 1) - return GroupDimensions->SpinBox_DY->GetValue(); + return GroupDimensions->SpinBox_DY->value(); return 0; } @@ -479,8 +528,7 @@ void PrimitiveGUI_TorusDlg::addSubshapesToStudy() { QMap objMap; -switch (getConstructorId()) - { + switch (getConstructorId()) { case 0: objMap[GroupPoints->LineEdit1->text()] = myPoint; objMap[GroupPoints->LineEdit2->text()] = myDir; @@ -488,5 +536,5 @@ switch (getConstructorId()) case 1: return; } - addSubshapesToFather( objMap ); + addSubshapesToFather(objMap); } diff --git a/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.h b/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.h index 1703b6a43..c173b0edf 100644 --- a/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.h +++ b/src/PrimitiveGUI/PrimitiveGUI_TorusDlg.h @@ -1,37 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : PrimitiveGUI_TorusDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : PrimitiveGUI_TorusDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +#ifndef PRIMITIVEGUI_TORUSDLG_H +#define PRIMITIVEGUI_TORUSDLG_H -#ifndef DIALOGBOX_TORUS_H -#define DIALOGBOX_TORUS_H - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel2Spin.h" -#include "DlgRef_2Spin.h" +#include +class DlgRef_2Sel2Spin; +class DlgRef_2Spin; //================================================================================= // class : PrimitiveGUI_TorusDlg @@ -39,42 +37,44 @@ //================================================================================= class PrimitiveGUI_TorusDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - PrimitiveGUI_TorusDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~PrimitiveGUI_TorusDlg(); - + PrimitiveGUI_TorusDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0 ); + ~PrimitiveGUI_TorusDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); private: - void Init(); - void enterEvent(QEvent* e); - - double getRadius1() const; - double getRadius2() const; - - GEOM::GEOM_Object_var myPoint, myDir; - - DlgRef_2Sel2Spin* GroupPoints; - DlgRef_2Spin* GroupDimensions; + void Init(); + void enterEvent( QEvent* ); + double getRadius1() const; + double getRadius2() const; + +private: + GEOM::GEOM_Object_var myPoint, myDir; + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_2Sel2Spin* GroupPoints; + DlgRef_2Spin* GroupDimensions; + private slots: - void ClickOnOk(); - bool ClickOnApply(); - - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ConstructorsClicked(int); - void ValueChangedInSpinBox(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void ValueChangedInSpinBox(); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_TORUS_H +#endif // PRIMITIVEGUI_TORUSDLG_H diff --git a/src/RepairGUI/Makefile.am b/src/RepairGUI/Makefile.am index 8dfb76e6c..51e90f1bb 100644 --- a/src/RepairGUI/Makefile.am +++ b/src/RepairGUI/Makefile.am @@ -1,96 +1,117 @@ -# GEOM REPAIRGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM REPAIRGUI : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : RepairGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = +salomeinclude_HEADERS = \ + RepairGUI.h \ + RepairGUI_SewingDlg.h \ + RepairGUI_SuppressFacesDlg.h \ + RepairGUI_ShapeProcessDlg.h \ + RepairGUI_CloseContourDlg.h \ + RepairGUI_RemoveIntWiresDlg.h \ + RepairGUI_RemoveHolesDlg.h \ + RepairGUI_DivideEdgeDlg.h \ + RepairGUI_FreeBoundDlg.h \ + RepairGUI_FreeFacesDlg.h \ + RepairGUI_ChangeOrientationDlg.h \ + RepairGUI_GlueDlg.h \ + RepairGUI_RemoveExtraEdgesDlg.h # Libraries targets lib_LTLIBRARIES = libRepairGUI.la -dist_libRepairGUI_la_SOURCES = \ - RepairGUI.cxx \ - RepairGUI_SewingDlg.cxx \ - RepairGUI_SuppressFacesDlg.cxx \ - RepairGUI_ShapeProcessDlg.cxx \ - RepairGUI_CloseContourDlg.cxx \ - RepairGUI_RemoveIntWiresDlg.cxx \ - RepairGUI_RemoveHolesDlg.cxx \ - RepairGUI_DivideEdgeDlg.cxx \ - RepairGUI_FreeBoundDlg.cxx \ - RepairGUI_FreeFacesDlg.cxx \ - RepairGUI_ChangeOrientationDlg.cxx \ - RepairGUI_GlueDlg.cxx \ +dist_libRepairGUI_la_SOURCES = \ + RepairGUI.h \ + RepairGUI_SewingDlg.h \ + RepairGUI_SuppressFacesDlg.h \ + RepairGUI_ShapeProcessDlg.h \ + RepairGUI_CloseContourDlg.h \ + RepairGUI_RemoveIntWiresDlg.h \ + RepairGUI_RemoveHolesDlg.h \ + RepairGUI_DivideEdgeDlg.h \ + RepairGUI_FreeBoundDlg.h \ + RepairGUI_FreeFacesDlg.h \ + RepairGUI_ChangeOrientationDlg.h \ + RepairGUI_GlueDlg.h \ + RepairGUI_RemoveExtraEdgesDlg.h \ + \ + RepairGUI.cxx \ + RepairGUI_SewingDlg.cxx \ + RepairGUI_SuppressFacesDlg.cxx \ + RepairGUI_ShapeProcessDlg.cxx \ + RepairGUI_CloseContourDlg.cxx \ + RepairGUI_RemoveIntWiresDlg.cxx \ + RepairGUI_RemoveHolesDlg.cxx \ + RepairGUI_DivideEdgeDlg.cxx \ + RepairGUI_FreeBoundDlg.cxx \ + RepairGUI_FreeFacesDlg.cxx \ + RepairGUI_ChangeOrientationDlg.cxx \ + RepairGUI_GlueDlg.cxx \ RepairGUI_RemoveExtraEdgesDlg.cxx -MOC_FILES = \ - RepairGUI_SewingDlg_moc.cxx \ - RepairGUI_SuppressFacesDlg_moc.cxx \ - RepairGUI_ShapeProcessDlg_moc.cxx \ - RepairGUI_CloseContourDlg_moc.cxx \ - RepairGUI_RemoveIntWiresDlg_moc.cxx \ - RepairGUI_RemoveHolesDlg_moc.cxx \ - RepairGUI_DivideEdgeDlg_moc.cxx \ - RepairGUI_FreeBoundDlg_moc.cxx \ - RepairGUI_FreeFacesDlg_moc.cxx \ - RepairGUI_ChangeOrientationDlg_moc.cxx \ - RepairGUI_GlueDlg_moc.cxx \ +MOC_FILES = \ + RepairGUI_SewingDlg_moc.cxx \ + RepairGUI_SuppressFacesDlg_moc.cxx \ + RepairGUI_ShapeProcessDlg_moc.cxx \ + RepairGUI_CloseContourDlg_moc.cxx \ + RepairGUI_RemoveIntWiresDlg_moc.cxx \ + RepairGUI_RemoveHolesDlg_moc.cxx \ + RepairGUI_DivideEdgeDlg_moc.cxx \ + RepairGUI_FreeBoundDlg_moc.cxx \ + RepairGUI_FreeFacesDlg_moc.cxx \ + RepairGUI_ChangeOrientationDlg_moc.cxx \ + RepairGUI_GlueDlg_moc.cxx \ RepairGUI_RemoveExtraEdgesDlg_moc.cxx -nodist_libRepairGUI_la_SOURCES= \ +nodist_libRepairGUI_la_SOURCES = \ $(MOC_FILES) -#LIB_CLIENT_IDL = SALOME_Exception.idl SALOME_GenericObj.idl SALOME_Component.idl +# additional information to compile and link file -#LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libRepairGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(top_builddir)/idl \ +libRepairGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libRepairGUI_la_LDFLAGS = \ +libRepairGUI_la_LDFLAGS = \ ../GEOMBase/libGEOMBase.la diff --git a/src/RepairGUI/RepairGUI.cxx b/src/RepairGUI/RepairGUI.cxx index 9ab000be2..ff1045d49 100644 --- a/src/RepairGUI/RepairGUI.cxx +++ b/src/RepairGUI/RepairGUI.cxx @@ -1,37 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : RepairGUI.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "RepairGUI.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" +#include -#include "SalomeApp_Application.h" +#include +#include +#include #include "RepairGUI_SewingDlg.h" // Method SEWING #include "RepairGUI_SuppressFacesDlg.h" // Method SUPPRESS FACES @@ -46,15 +44,12 @@ #include "RepairGUI_ChangeOrientationDlg.h" // Method CHANGE ORIENTATION #include "RepairGUI_RemoveExtraEdgesDlg.h" // Method REMOVE EXTRA EDGES -#include "utilities.h" - -using namespace std; - //======================================================================= // function : RepairGUI() // purpose : Constructor //======================================================================= -RepairGUI::RepairGUI( GeometryGUI* parent ) : GEOMGUI( parent ) +RepairGUI::RepairGUI( GeometryGUI* parent ) + : GEOMGUI( parent ) { } @@ -71,29 +66,29 @@ RepairGUI::~RepairGUI() // function : OnGUIEvent() // purpose : //======================================================================= -bool RepairGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) +bool RepairGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { SalomeApp_Application* app = getGeometryGUI()->getApp(); - if (!app) return false; + if ( !app ) return false; getGeometryGUI()->EmitSignalDeactivateDialog(); QDialog* aDlg = NULL; - switch (theCommandID) { - case 601: aDlg = new RepairGUI_SewingDlg (getGeometryGUI(), parent, ""); break; - case 602: aDlg = new RepairGUI_GlueDlg (getGeometryGUI(), parent, ""); break; - case 603: aDlg = new RepairGUI_SuppressFacesDlg (getGeometryGUI(), parent, ""); break; - case 604: aDlg = new RepairGUI_RemoveHolesDlg (getGeometryGUI(), parent, ""); break; - case 605: aDlg = new RepairGUI_ShapeProcessDlg (getGeometryGUI(), parent, ""); break; - case 606: aDlg = new RepairGUI_CloseContourDlg (getGeometryGUI(), parent, ""); break; - case 607: aDlg = new RepairGUI_RemoveIntWiresDlg(getGeometryGUI(), parent, ""); break; - case 608: aDlg = new RepairGUI_DivideEdgeDlg (getGeometryGUI(), parent, ""); break; - case 609: aDlg = new RepairGUI_FreeBoundDlg (getGeometryGUI(), parent, ""); break; - case 610: aDlg = new RepairGUI_FreeFacesDlg (getGeometryGUI(), parent, ""); break; - case 611: aDlg = new RepairGUI_ChangeOrientationDlg (getGeometryGUI(), parent, ""); break; - case 612: aDlg = new RepairGUI_RemoveExtraEdgesDlg (getGeometryGUI(), parent, ""); break; + switch ( theCommandID ) { + case 601: aDlg = new RepairGUI_SewingDlg ( getGeometryGUI(), parent ); break; + case 602: aDlg = new RepairGUI_GlueDlg ( getGeometryGUI(), parent ); break; + case 603: aDlg = new RepairGUI_SuppressFacesDlg ( getGeometryGUI(), parent ); break; + case 604: aDlg = new RepairGUI_RemoveHolesDlg ( getGeometryGUI(), parent ); break; + case 605: aDlg = new RepairGUI_ShapeProcessDlg ( getGeometryGUI(), parent ); break; + case 606: aDlg = new RepairGUI_CloseContourDlg ( getGeometryGUI(), parent ); break; + case 607: aDlg = new RepairGUI_RemoveIntWiresDlg ( getGeometryGUI(), parent ); break; + case 608: aDlg = new RepairGUI_DivideEdgeDlg ( getGeometryGUI(), parent ); break; + case 609: aDlg = new RepairGUI_FreeBoundDlg ( getGeometryGUI(), parent ); break; + case 610: aDlg = new RepairGUI_FreeFacesDlg ( getGeometryGUI(), parent ); break; + case 611: aDlg = new RepairGUI_ChangeOrientationDlg ( getGeometryGUI(), parent ); break; + case 612: aDlg = new RepairGUI_RemoveExtraEdgesDlg ( getGeometryGUI(), parent ); break; default: - app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); + app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); break; } @@ -110,7 +105,7 @@ bool RepairGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) extern "C" { #ifdef WNT - __declspec( dllexport ) + __declspec( dllexport ) #endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { diff --git a/src/RepairGUI/RepairGUI.h b/src/RepairGUI/RepairGUI.h index a99916239..c829b3b80 100644 --- a/src/RepairGUI/RepairGUI.h +++ b/src/RepairGUI/RepairGUI.h @@ -1,35 +1,32 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : RepairGUI.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef REPAIRGUI_H #define REPAIRGUI_H -#include "GEOMGUI.h" -#include "GEOMBase.h" +#include //================================================================================= // class : RepairGUI @@ -38,10 +35,10 @@ class RepairGUI : public GEOMGUI { public: - RepairGUI( GeometryGUI* parent ); + RepairGUI( GeometryGUI* ); ~RepairGUI(); - bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent); + bool OnGUIEvent( int, SUIT_Desktop* ); }; -#endif +#endif // REPAIRGUI_H diff --git a/src/RepairGUI/RepairGUI_ChangeOrientationDlg.cxx b/src/RepairGUI/RepairGUI_ChangeOrientationDlg.cxx index 72f84baeb..485127b1f 100644 --- a/src/RepairGUI/RepairGUI_ChangeOrientationDlg.cxx +++ b/src/RepairGUI/RepairGUI_ChangeOrientationDlg.cxx @@ -1,45 +1,43 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_ChangeOrientationDlg.cxx +// Author : Sergey KUUL, Open CASCADE S.A.S. (sergey.kuul@opencascade.com) // -// File : RepairGUI_ChangeOrientationDlg.cxx -// Author : Sergey KUUL -// Module : GEOM - #include "RepairGUI_ChangeOrientationDlg.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SUIT_Session.h" -#include "SALOME_ListIteratorOfListIO.hxx" +#include +#include +#include -#include "GEOMImpl_Types.hxx" +#include +#include +#include +#include + +#include #include -#include - -using namespace std; - //================================================================================= // class : RepairGUI_ChangeOrientationDlg() // purpose : Constructs a RepairGUI_ChangeOrientationDlg which is a child of 'parent', @@ -47,34 +45,37 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -RepairGUI_ChangeOrientationDlg::RepairGUI_ChangeOrientationDlg(GeometryGUI* theGeometryGUI, - QWidget* parent, const char* name, - bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +RepairGUI_ChangeOrientationDlg::RepairGUI_ChangeOrientationDlg( GeometryGUI* theGeometryGUI, + QWidget* parent, + bool modal ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal ) { //QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SUPRESS_FACE"))); - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CHANGE_ORIENTATION"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_CHANGE_ORIENTATION" ) )); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_CHANGE_ORIENTATION_TITLE")); + setWindowTitle( tr( "GEOM_CHANGE_ORIENTATION_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_CHANGE_ORIENTATION_TITLE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_CHANGE_ORIENTATION_TITLE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel1Check_QTD(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_CHANGE_ORIENTATION")); - GroupPoints->TextLabel1->setText(tr("GEOM_SELECTED_SHAPE")); - GroupPoints->CheckButton1->setText(tr("GEOM_CREATE_COPY")); - GroupPoints->PushButton1->setPixmap(image1); + GroupPoints = new DlgRef_1Sel1Check( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_CHANGE_ORIENTATION" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_SELECTED_SHAPE" ) ); + GroupPoints->CheckButton1->setText( tr( "GEOM_CREATE_COPY" ) ); + GroupPoints->PushButton1->setIcon( image1 ); // GroupPoints->LineEdit1->setReadOnly( true ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); - Layout1->addWidget(GroupPoints, 2, 0); - - setHelpFileName("change_orientation_operation_page.html"); + setHelpFileName( "change_orientation_operation_page.html" ); Init(); } @@ -98,21 +99,21 @@ void RepairGUI_ChangeOrientationDlg::Init() /* init variables */ myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->CheckButton1->setChecked(true); + GroupPoints->CheckButton1->setChecked( true ); myOkObject = false; /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); + connect( GroupPoints->CheckButton1, SIGNAL( toggled( bool ) ), this, SLOT( CreateCopyModeChanged( bool ) ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "CHANGE_ORIENTATION_NEW_OBJ_NAME" ) ); } @@ -136,12 +137,12 @@ void RepairGUI_ChangeOrientationDlg::ClickOnOk() bool RepairGUI_ChangeOrientationDlg::ClickOnApply() { // if ( !onAccept() ) - if ( !onAccept(GroupPoints->CheckButton1->isChecked()) ) + if ( !onAccept( GroupPoints->CheckButton1->isChecked() ) ) return false; initName(); - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); return true; } @@ -153,12 +154,16 @@ bool RepairGUI_ChangeOrientationDlg::ClickOnApply() //================================================================================= void RepairGUI_ChangeOrientationDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); QString aName; - if(myEditCurrentArgument == GroupPoints->LineEdit1) { - if (IObjectCount() != 1) { - if (myEditCurrentArgument == GroupPoints->LineEdit1) + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) { + if ( aSelList.Extent() != 1 ) { + if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myOkObject = false; return; } @@ -167,18 +172,17 @@ void RepairGUI_ChangeOrientationDlg::SelectionIntoArgument() // nbSel == 1 Standard_Boolean testResult = Standard_False; GEOM::GEOM_Object_ptr aSelectedObject = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); - - if (!testResult) + GEOMBase::ConvertIOinGEOMObject( aSelList.First(), testResult ); + + if ( !testResult ) return; - if (myEditCurrentArgument == GroupPoints->LineEdit1) { + if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) { myObject = aSelectedObject; myOkObject = true; } myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) ); - } @@ -190,8 +194,7 @@ void RepairGUI_ChangeOrientationDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - if( send == GroupPoints->PushButton1 ) - { + if ( send == GroupPoints->PushButton1 ) { GroupPoints->LineEdit1->setFocus(); myEditCurrentArgument = GroupPoints->LineEdit1; } @@ -206,7 +209,7 @@ void RepairGUI_ChangeOrientationDlg::SetEditCurrentArgument() void RepairGUI_ChangeOrientationDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if( send == GroupPoints->LineEdit1 ) { + if ( send == GroupPoints->LineEdit1 ) { myEditCurrentArgument = GroupPoints->LineEdit1; GEOMBase_Skeleton::LineEditReturnPressed(); } @@ -220,9 +223,8 @@ void RepairGUI_ChangeOrientationDlg::LineEditReturnPressed() void RepairGUI_ChangeOrientationDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); } @@ -230,24 +232,13 @@ void RepairGUI_ChangeOrientationDlg::ActivateThisDialog() // function : enterEvent() // purpose : Mouse enter onto the dialog to activate it //================================================================================= -void RepairGUI_ChangeOrientationDlg::enterEvent(QEvent* e) +void RepairGUI_ChangeOrientationDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void RepairGUI_ChangeOrientationDlg::closeEvent(QCloseEvent* e) -{ - //myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - - //================================================================================= // function : createOperation // purpose : @@ -262,7 +253,7 @@ GEOM::GEOM_IOperations_ptr RepairGUI_ChangeOrientationDlg::createOperation() // function : isValid // purpose : //================================================================================= -bool RepairGUI_ChangeOrientationDlg::isValid( QString& msg ) +bool RepairGUI_ChangeOrientationDlg::isValid( QString& ) { return myOkObject; } @@ -277,11 +268,11 @@ bool RepairGUI_ChangeOrientationDlg::execute( ObjectList& objects ) bool toCreateCopy = GroupPoints->CheckButton1->isChecked(); GEOM::GEOM_Object_var anObj; - if(toCreateCopy) { - anObj = GEOM::GEOM_IHealingOperations::_narrow(getOperation())->ChangeOrientationCopy(myObject); + if ( toCreateCopy ) { + anObj = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )->ChangeOrientationCopy( myObject ); } else { - anObj = GEOM::GEOM_IHealingOperations::_narrow(getOperation())->ChangeOrientation(myObject); + anObj = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )->ChangeOrientation( myObject ); } if ( !anObj->_is_nil() ) @@ -295,7 +286,7 @@ bool RepairGUI_ChangeOrientationDlg::execute( ObjectList& objects ) // function : CreateCopyModeChanged() // purpose : //================================================================================= -void RepairGUI_ChangeOrientationDlg::CreateCopyModeChanged(bool isCreateCopy) +void RepairGUI_ChangeOrientationDlg::CreateCopyModeChanged( bool isCreateCopy ) { - GroupBoxName->setEnabled(isCreateCopy); + mainFrame()->GroupBoxName->setEnabled( isCreateCopy ); } diff --git a/src/RepairGUI/RepairGUI_ChangeOrientationDlg.h b/src/RepairGUI/RepairGUI_ChangeOrientationDlg.h index 19f5be34c..e248bc7f7 100644 --- a/src/RepairGUI/RepairGUI_ChangeOrientationDlg.h +++ b/src/RepairGUI/RepairGUI_ChangeOrientationDlg.h @@ -1,38 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : RepairGUI_ChangeOrientationDlg.h -// Author : Sergey KUUL -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_ChangeOrientationDlg.h +// Author : Sergey KUUL, Open CASCADE S.A.S. (sergey.kuul@opencascade.com) +// +#ifndef REPAIRGUI_CHANGEORIENTATIONDLG_H +#define REPAIRGUI_CHANGEORIENTATIONDLG_H -#ifndef DIALOGBOX_CHANGEORIENTATION_H -#define DIALOGBOX_CHANGEORIENTATION_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel1Check_QTD.h" -#include - -//#include +class DlgRef_1Sel1Check; //================================================================================= // class : RepairGUI_ChangeOrientationDlg @@ -40,38 +36,36 @@ //================================================================================= class RepairGUI_ChangeOrientationDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - RepairGUI_ChangeOrientationDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~RepairGUI_ChangeOrientationDlg(); + RepairGUI_ChangeOrientationDlg( GeometryGUI*, QWidget* = 0, bool = false ); + ~RepairGUI_ChangeOrientationDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - -private : - void Init(); - void enterEvent(QEvent* e); - void closeEvent(QCloseEvent* e); - - GEOM::GEOM_Object_var myObject; - bool myOkObject; - - DlgRef_1Sel1Check_QTD* GroupPoints; - - + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + +private: + void Init(); + void enterEvent( QEvent* ); + +private: + GEOM::GEOM_Object_var myObject; + bool myOkObject; + + DlgRef_1Sel1Check* GroupPoints; + private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void CreateCopyModeChanged(bool isCreateCopy); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void CreateCopyModeChanged( bool ); }; -#endif // DIALOGBOX_SUPPRESSFACES_H +#endif // REPAIRGUI_CHANGEORIENTATIONDLG_H diff --git a/src/RepairGUI/RepairGUI_CloseContourDlg.cxx b/src/RepairGUI/RepairGUI_CloseContourDlg.cxx index fc93a6154..85705502f 100644 --- a/src/RepairGUI/RepairGUI_CloseContourDlg.cxx +++ b/src/RepairGUI/RepairGUI_CloseContourDlg.cxx @@ -1,47 +1,45 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_CloseContourDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : RepairGUI_CloseContourDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "RepairGUI_CloseContourDlg.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SUIT_Session.h" -#include "SALOME_ListIteratorOfListIO.hxx" +#include +#include +#include -#include "GEOMImpl_Types.hxx" +#include +#include +#include +#include +// OCCT Includes #include -#include #include +#include -#include - -using namespace std; +#include //================================================================================= // class : RepairGUI_CloseContourDlg() @@ -50,57 +48,49 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -RepairGUI_CloseContourDlg::RepairGUI_CloseContourDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +RepairGUI_CloseContourDlg::RepairGUI_CloseContourDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_CLOSECONTOUR"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_CLOSECONTOUR"))); + QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_CLOSECONTOUR_TITLE")); + setWindowTitle(tr("GEOM_CLOSECONTOUR_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_CLOSECONTOUR_TITLE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_CLOSECONTOUR_TITLE")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel_Ext(this, "GroupPoints"); + GroupPoints = new DlgRef_2SelExt(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("Contour to close")); GroupPoints->TextLabel1->setText(tr("GEOM_SELECTED_SHAPE")); - GroupPoints->PushButton1->setPixmap(image1); - GroupPoints->LineEdit1->setReadOnly( true ); + GroupPoints->PushButton1->setIcon(image1); + GroupPoints->LineEdit1->setReadOnly(true); - QGridLayout* aSelectWiresLay = new QGridLayout( 0, 1, 1, 0, 6, "aSelectWiresLay"); + GroupPoints->TextLabel2->setText(tr("Contour to close")); + GroupPoints->PushButton2->setIcon(image1); + GroupPoints->LineEdit2->setReadOnly(true); - mySelectWiresBtn = new QPushButton( GroupPoints->GroupBox1, "mySelectWiresBtn" ); - mySelectWiresBtn->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, mySelectWiresBtn->sizePolicy().hasHeightForWidth() ) ); - mySelectWiresBtn->setText( trUtf8( "" ) ); - mySelectWiresBtn->setPixmap(image1); + QRadioButton* rb1 = new QRadioButton(tr("Close by common vertex"), GroupPoints->Box); + QRadioButton* rb2 = new QRadioButton(tr("Close by new edge"), GroupPoints->Box); - mySelectWiresEdt = new QLineEdit( GroupPoints->GroupBox1, "mySelectWiresEdt" ); - mySelectWiresEdt->setReadOnly( true ); + myIsVertexGr = new QButtonGroup(GroupPoints->Box); + myIsVertexGr->addButton(rb1, 0); + myIsVertexGr->addButton(rb2, 1); + rb1->setChecked(true); - mySelectWiresLbl = new QLabel( tr( "Contour to close" ), GroupPoints->GroupBox1, "ContourLbl" ); - mySelectWiresLbl->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, mySelectWiresLbl->sizePolicy().hasHeightForWidth() ) ); + QVBoxLayout* l = new QVBoxLayout(GroupPoints->Box); + l->setMargin(0); l->setSpacing(6); + l->addWidget(rb1); + l->addWidget(rb2); - aSelectWiresLay->addWidget( mySelectWiresLbl, 0, 0 ); - aSelectWiresLay->addWidget( mySelectWiresBtn, 0, 1 ); - aSelectWiresLay->addWidget( mySelectWiresEdt, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - aSelectWiresLay->addItem( spacer, 1, 2 ); - - myIsVertexGr = new QButtonGroup( 2, Qt::Vertical, GroupPoints ); - myIsVertexGr->setFrameStyle( QFrame::NoFrame ); - myIsVertexGr->setRadioButtonExclusive( true ); - myIsVertexGr->insert( new QRadioButton( tr( "Close by common vertex" ), myIsVertexGr ), 0 ); - myIsVertexGr->insert( new QRadioButton( tr( "Close by new edge" ), myIsVertexGr ), 1 ); - myIsVertexGr->find( 0 )->toggle(); - - Layout1->addWidget(GroupPoints, 2, 0); - GroupPoints->getGroupBoxLayout()->addLayout( aSelectWiresLay, 1, 0 ); - GroupPoints->getGroupBoxLayout()->addMultiCellWidget(myIsVertexGr, 2, 2, 0, 2); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); /***************************************************************/ setHelpFileName("close_contour_operation_page.html"); @@ -108,7 +98,6 @@ RepairGUI_CloseContourDlg::RepairGUI_CloseContourDlg(GeometryGUI* theGeometryGUI Init(); } - //================================================================================= // function : ~RepairGUI_CloseContourDlg() // purpose : Destroys the object and frees any allocated resources @@ -117,116 +106,110 @@ RepairGUI_CloseContourDlg::~RepairGUI_CloseContourDlg() { } - //================================================================================= // function : Init() // purpose : //================================================================================= void RepairGUI_CloseContourDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - + // init variables + GroupPoints->LineEdit1->clear(); + GroupPoints->LineEdit2->clear(); myObject = GEOM::GEOM_Object::_nil(); myWiresInd = new GEOM::short_array(); - myWiresInd->length( 0 ); - - //myGeomGUI->SetState( 0 ); - initSelection(); + myWiresInd->length(0); - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(mySelectWiresBtn, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(mySelectWiresEdt, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - initName( tr( "CLOSE_CONTOUR_NEW_OBJ_NAME" ) ); + initName(tr("CLOSE_CONTOUR_NEW_OBJ_NAME")); + + GroupPoints->PushButton1->click(); + SelectionIntoArgument(); } - //================================================================================= // function : ClickOnOk() // purpose : Same than click on apply but close this dialog. //================================================================================= void RepairGUI_CloseContourDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool RepairGUI_CloseContourDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); - - myEditCurrentArgument = GroupPoints->LineEdit1; - myEditCurrentArgument->setText(""); - myObject = GEOM::GEOM_Object::_nil(); - myWiresInd->length( 0 ); - - initSelection(); - + // activate first line edit + GroupPoints->PushButton1->click(); return true; } //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case -// : used only by SelectButtonC1A1 (LineEditC1A1) +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void RepairGUI_CloseContourDlg::SelectionIntoArgument() { - erasePreview(); - myEditCurrentArgument->setText( "" ); - mySelectWiresEdt->setText( "" ); - - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) + myEditCurrentArgument->setText(""); + // the second argument depends on the first one + GroupPoints->LineEdit2->setText(""); + myWiresInd->length(0); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) myObject = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == mySelectWiresEdt ) - myWiresInd->length( 0 ); - if ( IObjectCount() == 1 ) - { - Handle(SALOME_InteractiveObject) anIO = firstIObject(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) // face selection - { + if (aSelList.Extent() == 1) { + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { // face selection Standard_Boolean aRes; - myObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes ); - if ( aRes && GEOMBase::IsShape( myObject ) ) - { - myEditCurrentArgument->setText( GEOMBase::GetName( myObject ) ); + myObject = GEOMBase::ConvertIOinGEOMObject(anIO, aRes); + if (aRes && GEOMBase::IsShape(myObject)) { + myEditCurrentArgument->setText(GEOMBase::GetName(myObject)); TopoDS_Shape aShape; - if ( GEOMBase::GetShape( myObject, aShape, TopAbs_WIRE ) ) - mySelectWiresEdt->setText( myEditCurrentArgument->text() ); + if (GEOMBase::GetShape(myObject, aShape, TopAbs_WIRE)) + GroupPoints->LineEdit2->setText(myEditCurrentArgument->text()); + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + GroupPoints->PushButton2->click(); } else myObject = GEOM::GEOM_Object::_nil(); } - else if ( myEditCurrentArgument == mySelectWiresEdt ) - { + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { TColStd_IndexedMapOfInteger aMap; - myGeomGUI->getApp()->selectionMgr()->GetIndexes( anIO, aMap ); + aSelMgr->GetIndexes(anIO, aMap); const int n = aMap.Extent(); - myWiresInd->length( n ); - for ( int i = 1; i <= n; i++ ) - myWiresInd[ i-1 ] = aMap( i ); - if ( n ) - myEditCurrentArgument->setText( QString::number( n ) + "_" + tr( "GEOM_WIRE" ) + tr( "_S_" ) ); + myWiresInd->length(n); + for (int i = 1; i <= n; i++) + myWiresInd[i-1] = aMap(i); + if (n) + myEditCurrentArgument->setText(QString::number(n) + "_" + tr("GEOM_WIRE") + tr("_S_")); } } } @@ -237,20 +220,36 @@ void RepairGUI_CloseContourDlg::SelectionIntoArgument() //================================================================================= void RepairGUI_CloseContourDlg::SetEditCurrentArgument() { - const QObject* send = sender(); - if ( send == GroupPoints->PushButton1 ) - myEditCurrentArgument = GroupPoints->LineEdit1; - else if ( send == mySelectWiresBtn && !myObject->_is_nil() ) - myEditCurrentArgument = mySelectWiresEdt; - if ( myEditCurrentArgument ) - { + QPushButton* send = (QPushButton*)sender(); + + bool isEffective = false; + + if (send == GroupPoints->PushButton1) { + isEffective = true; + myEditCurrentArgument = GroupPoints->LineEdit1; + + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + } + else if (send == GroupPoints->PushButton2 && !myObject->_is_nil()) { + isEffective = true; + myEditCurrentArgument = GroupPoints->LineEdit2; + + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + } + + if (isEffective) { initSelection(); + + // enable line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); } } - //================================================================================= // function : LineEditReturnPressed() // purpose : @@ -258,14 +257,12 @@ void RepairGUI_CloseContourDlg::SetEditCurrentArgument() void RepairGUI_CloseContourDlg::LineEditReturnPressed() { const QObject* send = sender(); - if( send == GroupPoints->LineEdit1 || send == mySelectWiresEdt ) - { + if (send == GroupPoints->LineEdit1 || send == GroupPoints->LineEdit2) { myEditCurrentArgument = (QLineEdit*)send; GEOMBase_Skeleton::LineEditReturnPressed(); } } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -273,71 +270,61 @@ void RepairGUI_CloseContourDlg::LineEditReturnPressed() void RepairGUI_CloseContourDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); myEditCurrentArgument = GroupPoints->LineEdit1; - myEditCurrentArgument->setText(""); - mySelectWiresEdt->setText(""); + myEditCurrentArgument->setText( "" ); + GroupPoints->LineEdit2->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); myWiresInd->length( 0 ); - //myGeomGUI->SetState( 0 ); initSelection(); } - //================================================================================= // function : enterEvent() // purpose : Mouse enter onto the dialog to activate it //================================================================================= -void RepairGUI_CloseContourDlg::enterEvent(QEvent* e) +void RepairGUI_CloseContourDlg::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void RepairGUI_CloseContourDlg::closeEvent(QCloseEvent* e) -{ - //myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : createOperation // purpose : //================================================================================= GEOM::GEOM_IOperations_ptr RepairGUI_CloseContourDlg::createOperation() { - return getGeomEngine()->GetIHealingOperations( getStudyId() ); + return getGeomEngine()->GetIHealingOperations(getStudyId()); } //================================================================================= // function : isValid // purpose : //================================================================================= -bool RepairGUI_CloseContourDlg::isValid( QString& msg ) +bool RepairGUI_CloseContourDlg::isValid (QString&) { TopoDS_Shape aTmpShape; - return !myObject->_is_nil() && ( myWiresInd->length() || GEOMBase::GetShape( myObject, aTmpShape, TopAbs_WIRE ) ); + return !myObject->_is_nil() && (myWiresInd->length() || + GEOMBase::GetShape(myObject, aTmpShape, TopAbs_WIRE)); } //================================================================================= // function : execute // purpose : //================================================================================= -bool RepairGUI_CloseContourDlg::execute( ObjectList& objects ) +bool RepairGUI_CloseContourDlg::execute (ObjectList& objects) { - GEOM::GEOM_Object_var anObj = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )->CloseContour( myObject, myWiresInd, getIsByVertex() ); + GEOM::GEOM_Object_var anObj = GEOM::GEOM_IHealingOperations::_narrow(getOperation())-> + CloseContour(myObject, myWiresInd, getIsByVertex()); + bool aResult = !anObj->_is_nil(); - if ( aResult ) - objects.push_back( anObj._retn() ); - + if (aResult) + objects.push_back(anObj._retn()); + return aResult; } @@ -347,7 +334,7 @@ bool RepairGUI_CloseContourDlg::execute( ObjectList& objects ) //================================================================================= bool RepairGUI_CloseContourDlg::getIsByVertex() const { - return myIsVertexGr->find( 0 )->isOn(); + return myIsVertexGr->button(0)->isChecked(); } //================================================================================= @@ -356,20 +343,23 @@ bool RepairGUI_CloseContourDlg::getIsByVertex() const //================================================================================= void RepairGUI_CloseContourDlg::initSelection() { - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) - { + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { TColStd_MapOfInteger aTypes; - aTypes.Add( GEOM_COMPOUND ); - aTypes.Add( GEOM_SOLID ); - aTypes.Add( GEOM_SHELL ); - aTypes.Add( GEOM_FACE ); - aTypes.Add( GEOM_WIRE ); - - globalSelection( aTypes ); + aTypes.Add(GEOM_COMPOUND); + aTypes.Add(GEOM_SOLID); + aTypes.Add(GEOM_SHELL); + aTypes.Add(GEOM_FACE); + aTypes.Add(GEOM_WIRE); + + globalSelection(aTypes); } - else if ( myEditCurrentArgument == mySelectWiresEdt ) - { - localSelection( myObject, TopAbs_EDGE ); - localSelection( myObject, TopAbs_WIRE ); + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { + localSelection(myObject, TopAbs_EDGE); + localSelection(myObject, TopAbs_WIRE); } + + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); } diff --git a/src/RepairGUI/RepairGUI_CloseContourDlg.h b/src/RepairGUI/RepairGUI_CloseContourDlg.h index 81e4233d2..71d1a3b7e 100644 --- a/src/RepairGUI/RepairGUI_CloseContourDlg.h +++ b/src/RepairGUI/RepairGUI_CloseContourDlg.h @@ -1,40 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : RepairGUI_CloseContourDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_CloseContourDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef REPAIRGUI_CLOSECONTOURDLG_H +#define REPAIRGUI_CLOSECONTOURDLG_H -#ifndef DIALOGBOX_CloseContour_H -#define DIALOGBOX_CloseContour_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_Ext.h" - -#include - -#include -#include +class DlgRef_2SelExt; +class QButtonGroup; //================================================================================= // class : RepairGUI_CloseContourDlg @@ -42,45 +37,41 @@ //================================================================================= class RepairGUI_CloseContourDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - RepairGUI_CloseContourDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~RepairGUI_CloseContourDlg(); - + RepairGUI_CloseContourDlg( GeometryGUI*, QWidget* = 0, bool = false ); + ~RepairGUI_CloseContourDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + +private: + void Init(); + void enterEvent( QEvent* ); + void initSelection(); + + bool getIsByVertex() const; private: - void Init(); - void enterEvent(QEvent* e); - void closeEvent(QCloseEvent* e); - void initSelection(); - - bool getIsByVertex() const; - - GEOM::GEOM_Object_var myObject; - GEOM::short_array_var myWiresInd; - - DlgRef_1Sel_Ext* GroupPoints; - QButtonGroup* myIsVertexGr; - QLabel* mySelectWiresLbl; - QPushButton* mySelectWiresBtn; - QLineEdit* mySelectWiresEdt; - + GEOM::GEOM_Object_var myObject; + GEOM::short_array_var myWiresInd; + + DlgRef_2SelExt* GroupPoints; + QButtonGroup* myIsVertexGr; + private slots: - void ClickOnOk(); - bool ClickOnApply(); - - void ActivateThisDialog(); - - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void ClickOnOk(); + bool ClickOnApply(); + + void ActivateThisDialog(); + + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_CloseContour_H +#endif // REPAIRGUI_CLOSECONTOURDLG_H diff --git a/src/RepairGUI/RepairGUI_DivideEdgeDlg.cxx b/src/RepairGUI/RepairGUI_DivideEdgeDlg.cxx index dcd1f68c8..e70168621 100644 --- a/src/RepairGUI/RepairGUI_DivideEdgeDlg.cxx +++ b/src/RepairGUI/RepairGUI_DivideEdgeDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,29 +17,34 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_DivideEdgeDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : RepairGUI_DivideEdgeDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "RepairGUI_DivideEdgeDlg.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SUIT_Session.h" -#include "SALOME_ListIteratorOfListIO.hxx" +#include +#include +#include +#include -#include "GEOMImpl_Types.hxx" +#include +#include +#include +#include + +#include #include - -#include - -using namespace std; +#include +#include +#include +#include +#include +#include +#include //================================================================================= // class : RepairGUI_DivideEdgeDlg() @@ -48,49 +53,55 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -RepairGUI_DivideEdgeDlg::RepairGUI_DivideEdgeDlg (GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - : GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +RepairGUI_DivideEdgeDlg::RepairGUI_DivideEdgeDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_DIVIDE_EDGE"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_DIVIDE_EDGE" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_DIVIDE_EDGE_TITLE")); + setWindowTitle( tr( "GEOM_DIVIDE_EDGE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_DIVIDE_EDGE_TITLE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_DIVIDE_EDGE_TITLE")); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel_Ext(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_ADD_POINT")); - GroupPoints->TextLabel1->setText(tr("GEOM_EDGE")); - GroupPoints->PushButton1->setPixmap(image1); + GroupPoints = new DlgRef_1SelExt( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_ADD_POINT" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_EDGE" ) ); + GroupPoints->PushButton1->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); - myIsParameterGr = new QButtonGroup( 2, Qt::Vertical, GroupPoints ); - myIsParameterGr->setFrameStyle( QFrame::NoFrame ); - myIsParameterGr->setRadioButtonExclusive( true ); - myIsParameterGr->insert( new QRadioButton( tr( "GEOM_BY_PARAMETER" ), myIsParameterGr ), 0 ); - myIsParameterGr->insert( new QRadioButton( tr( "GEOM_BY_LENGTH" ), myIsParameterGr ), 1 ); - myIsParameterGr->find( 0 )->toggle(); + QRadioButton* rb1 = new QRadioButton( tr( "GEOM_BY_PARAMETER" ), GroupPoints->Box ); + QRadioButton* rb2 = new QRadioButton( tr( "GEOM_BY_LENGTH" ), GroupPoints->Box ); - QGridLayout* aLay = new QGridLayout( 0, 1, 2, 0, 6, "aLay" ); - myValEdt = new QtxDblSpinBox(0., 1., 0.1, GroupPoints->GroupBox1); - myValEdt->setPrecision( 3 ); + myIsParameterGr = new QButtonGroup( GroupPoints->Box ); + myIsParameterGr->addButton( rb1, 0 ); + myIsParameterGr->addButton( rb2, 1 ); + rb1->setChecked( true ); + + myValEdt = new SalomeApp_DoubleSpinBox( 0., 1., 0.1, 3, 32, GroupPoints->Box ); myValEdt->setValue( 0.5 ); - QLabel* aLbl1 = new QLabel( tr( "GEOM_VALUE" ), GroupPoints->GroupBox1 ); - aLay->addWidget( aLbl1, 0, 0 ); - aLay->addWidget( myValEdt, 0, 1 ); + QLabel* aLbl1 = new QLabel( tr( "GEOM_VALUE" ), GroupPoints->Box ); + + QGridLayout* l = new QGridLayout( GroupPoints->Box ); + l->setMargin( 0 ); l->setSpacing( 6 ); + l->addWidget( rb1, 0, 0, 1, 2 ); + l->addWidget( rb2, 1, 0, 1, 2 ); + l->addWidget( aLbl1, 2, 0 ); + l->addWidget( myValEdt, 2, 1 ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); - Layout1->addWidget(GroupPoints, 2, 0); - GroupPoints->getGroupBoxLayout()->addMultiCellWidget(myIsParameterGr, 1, 1, 0, 2); - GroupPoints->getGroupBoxLayout()->addLayout( aLay, 2, 0 ); /***************************************************************/ - setHelpFileName("add_point_on_edge_operation_page.html"); + setHelpFileName( "add_point_on_edge_operation_page.html" ); Init(); } @@ -113,24 +124,60 @@ void RepairGUI_DivideEdgeDlg::Init() myEditCurrentArgument = GroupPoints->LineEdit1; myObject = GEOM::GEOM_Object::_nil(); - myIndex = -1; //myGeomGUI->SetState( 0 ); initSelection(); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( myValEdt, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox() ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "DEVIDE_EDGE_NEW_OBJECT_NAME" ) ); } +//================================================================================= +// function : ValueChangedInSpinBox() +// purpose : On change value in spin box +//================================================================================= +void RepairGUI_DivideEdgeDlg::ValueChangedInSpinBox() +{ + displayPreview(); +} + +//================================================================================= +// function : displayPreview() +// purpose : On display Preview +//================================================================================= +void RepairGUI_DivideEdgeDlg::displayPreview() +{ + if ( myObject->_is_nil() ) + return; + + TopoDS_Shape aShape; + gp_Pnt aPnt; + if ( GEOMBase::GetShape( myObject, aShape, TopAbs_SHAPE ) ) { + if (aShape.ShapeType() == TopAbs_EDGE) { + Standard_Real aFP, aLP, aP; + Handle(Geom_Curve) aCurve = BRep_Tool::Curve(TopoDS::Edge(aShape), aFP, aLP); + aP = aFP + (aLP - aFP) * myValEdt->value(); + aPnt = aCurve->Value(aP); + BRepBuilderAPI_MakeVertex mkVertex (aPnt); + aShape = mkVertex.Shape(); + // Build prs + SALOME_Prs* aPrs = getDisplayer()->BuildPrs( aShape ); + if ( aPrs != 0 && !aPrs->IsNull() ) + GEOMBase_Helper::displayPreview( aPrs, false, true ); + } + } +} //================================================================================= // function : ClickOnOk() @@ -154,9 +201,8 @@ bool RepairGUI_DivideEdgeDlg::ClickOnApply() initName(); - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); - myIndex = -1; initSelection(); @@ -171,52 +217,58 @@ bool RepairGUI_DivideEdgeDlg::ClickOnApply() //================================================================================= void RepairGUI_DivideEdgeDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); - myIndex = -1; - if ( IObjectCount() == 1 ) - { - Handle(SALOME_InteractiveObject) anIO = firstIObject(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if ( aSelList.Extent() == 1 ) { + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); Standard_Boolean aRes; - GEOM::GEOM_Object_var aSelectedObj = GEOMBase::ConvertIOinGEOMObject( anIO, aRes ); - if ( !CORBA::is_nil( aSelectedObj ) && aRes ) - { + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes ); + if ( !CORBA::is_nil( aSelectedObject ) && aRes ) { + QString aName = GEOMBase::GetName( aSelectedObject ); TopoDS_Shape aShape; - if ( GEOMBase::GetShape( aSelectedObj, aShape, TopAbs_SHAPE ) ) - { + if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) ) { const int aType = aShape.ShapeType(); - if ( aType <= TopAbs_EDGE ) // edge, wire, face, shell, solid, compound - { + if ( aType <= TopAbs_EDGE ) { + // edge, wire, face, shell, solid, compound GEOM::short_array anIndexes; TColStd_IndexedMapOfInteger aMap; - SalomeApp_Application* anApp = - (SalomeApp_Application*)(SUIT_Session::session()->activeApplication()); - anApp->selectionMgr()->GetIndexes( anIO, aMap ); + aSelMgr->GetIndexes( anIO, aMap ); - if ( !aMap.IsEmpty() ) // subshape selection - { - myIndex = aMap( 1 ); - myObject = aSelectedObj; - myEditCurrentArgument->setText( tr( "GEOM_EDGE" ) + "_1" ); + if ( aMap.Extent() == 1 ) { // local selection + int anIndex = aMap( 1 ); + myEditCurrentArgument->setText( aName += QString( ":edge_%1" ).arg( anIndex ) ); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather( aSelectedObject, aName ); + if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = getGeomEngine()->GetIShapesOperations( getStudyId() ); + myObject = aShapesOp->GetSubShape( aSelectedObject, anIndex ); + } + else { + myObject = aFindedObject; // get Object from study + } } - else if ( aType == TopAbs_EDGE ) // single shape selection - { - myIndex = -1; - myObject = aSelectedObj; + else if ( aType == TopAbs_EDGE ) { + // single shape selection + myObject = aSelectedObject; myEditCurrentArgument->setText( GEOMBase::GetName( myObject ) ); } - else // face, shell, solid or compound was selected, and NOT its subshape. - { - myIndex = -1; + else { + // face, shell, solid or compound was selected, and NOT its subshape. myObject = GEOM::GEOM_Object::_nil(); } } } } } + displayPreview(); } //================================================================================= @@ -225,8 +277,7 @@ void RepairGUI_DivideEdgeDlg::SelectionIntoArgument() //================================================================================= void RepairGUI_DivideEdgeDlg::SetEditCurrentArgument() { - if( sender() == GroupPoints->PushButton1 ) - { + if ( sender() == GroupPoints->PushButton1 ) { GroupPoints->LineEdit1->setFocus(); myEditCurrentArgument = GroupPoints->LineEdit1; } @@ -240,8 +291,7 @@ void RepairGUI_DivideEdgeDlg::SetEditCurrentArgument() //================================================================================= void RepairGUI_DivideEdgeDlg::LineEditReturnPressed() { - if( sender() == GroupPoints->LineEdit1 ) - { + if ( sender() == GroupPoints->LineEdit1 ) { myEditCurrentArgument = GroupPoints->LineEdit1; GEOMBase_Skeleton::LineEditReturnPressed(); } @@ -255,11 +305,10 @@ void RepairGUI_DivideEdgeDlg::LineEditReturnPressed() void RepairGUI_DivideEdgeDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); - myObject = GEOM::GEOM_Object::_nil(); - myIndex = -1; +// myObject = GEOM::GEOM_Object::_nil(); //myGeomGUI->SetState( 0 ); initSelection(); @@ -269,22 +318,12 @@ void RepairGUI_DivideEdgeDlg::ActivateThisDialog() // function : enterEvent() // purpose : Mouse enter onto the dialog to activate it //================================================================================= -void RepairGUI_DivideEdgeDlg::enterEvent(QEvent* e) +void RepairGUI_DivideEdgeDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void RepairGUI_DivideEdgeDlg::closeEvent(QCloseEvent* e) -{ - //myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : createOperation @@ -301,7 +340,8 @@ GEOM::GEOM_IOperations_ptr RepairGUI_DivideEdgeDlg::createOperation() //================================================================================= bool RepairGUI_DivideEdgeDlg::isValid( QString& msg ) { - return !myObject->_is_nil(); + bool ok = myValEdt->isValid( msg, !IsPreview() ); + return !myObject->_is_nil() && ok; } //================================================================================= @@ -311,10 +351,20 @@ bool RepairGUI_DivideEdgeDlg::isValid( QString& msg ) bool RepairGUI_DivideEdgeDlg::execute( ObjectList& objects ) { GEOM::GEOM_Object_var anObj = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )->DivideEdge - ( myObject, myIndex, myValEdt->value(), getIsByParameter() ); + ( myObject, -1, myValEdt->value(), getIsByParameter() ); bool aResult = !anObj->_is_nil(); if ( aResult ) + { + if ( !IsPreview() ) + { + QStringList aParameters; + aParameters << ""; + aParameters << myValEdt->text(); + aParameters << ""; + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } objects.push_back( anObj._retn() ); + } return aResult; } @@ -325,7 +375,7 @@ bool RepairGUI_DivideEdgeDlg::execute( ObjectList& objects ) //================================================================================= bool RepairGUI_DivideEdgeDlg::getIsByParameter() const { - return myIsParameterGr->find( 0 )->isOn(); + return myIsParameterGr->button( 0 )->isChecked(); } //================================================================================= @@ -337,3 +387,15 @@ void RepairGUI_DivideEdgeDlg::initSelection() GEOM::GEOM_Object_var aNullGeomObject; localSelection( aNullGeomObject, TopAbs_EDGE ); // load local selection on ALL objects } + +//================================================================================= +// function : addSubshapeToStudy +// purpose : virtual method to add new SubObjects if local selection +//================================================================================= +void RepairGUI_DivideEdgeDlg::addSubshapesToStudy() +{ + QMap objMap; + objMap[GroupPoints->LineEdit1->text()] = myObject; + + addSubshapesToFather( objMap ); +} diff --git a/src/RepairGUI/RepairGUI_DivideEdgeDlg.h b/src/RepairGUI/RepairGUI_DivideEdgeDlg.h index d2099375b..d7ceed40e 100644 --- a/src/RepairGUI/RepairGUI_DivideEdgeDlg.h +++ b/src/RepairGUI/RepairGUI_DivideEdgeDlg.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,25 +17,20 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_DivideEdgeDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : RepairGUI_DivideEdgeDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +#ifndef REPAIRGUI_DIVIDEEDGEDLG_H +#define REPAIRGUI_DIVIDEEDGEDLG_H -#ifndef DIALOGBOX_DivideEdge_H -#define DIALOGBOX_DivideEdge_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_Ext.h" -#include "QtxDblSpinBox.h" - -#include - -#include -#include +class DlgRef_1SelExt; +class SalomeApp_DoubleSpinBox; +class QButtonGroup; //================================================================================= // class : RepairGUI_DivideEdgeDlg @@ -43,43 +38,43 @@ //================================================================================= class RepairGUI_DivideEdgeDlg : public GEOMBase_Skeleton { - Q_OBJECT - + Q_OBJECT + public: - RepairGUI_DivideEdgeDlg (GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~RepairGUI_DivideEdgeDlg(); - + RepairGUI_DivideEdgeDlg( GeometryGUI*, QWidget* = 0, bool = false ); + ~RepairGUI_DivideEdgeDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); + private: - void Init(); - void enterEvent(QEvent* e); - void closeEvent(QCloseEvent* e); - void initSelection(); - - bool getIsByParameter() const; - - GEOM::GEOM_Object_var myObject; - int myIndex; - - DlgRef_1Sel_Ext* GroupPoints; - QButtonGroup* myIsParameterGr; - QtxDblSpinBox* myValEdt; + void Init(); + void enterEvent( QEvent* ); + void initSelection(); + + bool getIsByParameter() const; + +private: + GEOM::GEOM_Object_var myObject; + + DlgRef_1SelExt* GroupPoints; + QButtonGroup* myIsParameterGr; + SalomeApp_DoubleSpinBox* myValEdt; protected slots: - void ClickOnOk(); - bool ClickOnApply(); + void ClickOnOk(); + bool ClickOnApply(); - void ActivateThisDialog(); - - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void displayPreview(); + void ValueChangedInSpinBox(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_DivideEdge_H +#endif // REPAIRGUI_DIVIDEEDGEDLG_H diff --git a/src/RepairGUI/RepairGUI_FreeBoundDlg.cxx b/src/RepairGUI/RepairGUI_FreeBoundDlg.cxx index 2231ad6b3..f20e04130 100644 --- a/src/RepairGUI/RepairGUI_FreeBoundDlg.cxx +++ b/src/RepairGUI/RepairGUI_FreeBoundDlg.cxx @@ -1,53 +1,56 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_FreeBoundDlg.cxx +// Author : Sergey LITONIN, Open CASCADE S.A.S. (sergey.litonin@opencascade.com) // -// File : RepairGUI_FreeBoundDlg.cxx -// Author : Sergey LITONIN -// Module : GEOM -// $Header$ - #include "RepairGUI_FreeBoundDlg.h" -#include "GEOMBase.h" -#include "GeometryGUI.h" -#include "GEOM_Displayer.h" -#include "GEOMImpl_Types.hxx" -#include "SalomeApp_Application.h" -#include "LightApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SUIT_MessageBox.h" -#include "SUIT_Session.h" +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include -#define SPACING 5 -#define MARGIN 10 +#define SPACING 6 +#define MARGIN 9 /*! Class : RepairGUI_FreeBoundDlg @@ -58,37 +61,47 @@ // function : RepairGUI_FreeBoundDlg // purpose : Constructor //================================================================================= -RepairGUI_FreeBoundDlg::RepairGUI_FreeBoundDlg(GeometryGUI* theGUI, QWidget* theParent, const char*) -: QDialog( theParent, "RepairGUI_FreeBoundDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose ), - GEOMBase_Helper( dynamic_cast( theParent ) ), - myGeomGUI( theGUI ) +RepairGUI_FreeBoundDlg::RepairGUI_FreeBoundDlg( GeometryGUI* theGUI, QWidget* theParent ) + : QDialog( theParent, false ), + GEOMBase_Helper( dynamic_cast( theParent ) ), + myGeomGUI( theGUI ) { - setCaption( tr( "CAPTION" ) ); + setAttribute( Qt::WA_DeleteOnClose ); - QPixmap iconSelect( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM",tr( "ICON_SELECT" ) ) ); + setWindowTitle( tr( "CAPTION" ) ); + + QPixmap iconSelect( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - QGroupBox* aMainGrp = new QGroupBox( 1, Qt::Horizontal, tr( "FREE_BOUND" ), this ); + QGroupBox* aMainGrp = new QGroupBox( tr( "FREE_BOUND" ), this ); - QGroupBox* aSelGrp = new QGroupBox( 1, Qt::Vertical, aMainGrp ); - aSelGrp->setInsideMargin( 0 ); - aSelGrp->setFrameStyle( QFrame::NoFrame ); - new QLabel( tr( "GEOM_OBJECT" ), aSelGrp ); - ( new QPushButton( aSelGrp ) )->setPixmap( iconSelect ); - myEdit = new QLineEdit( aSelGrp ); + QLabel* lab = new QLabel( tr( "GEOM_OBJECT" ), aMainGrp ); + QPushButton* btn = new QPushButton( aMainGrp ); + btn->setIcon( iconSelect ); + myEdit = new QLineEdit( aMainGrp ); myEdit->setReadOnly( true ); myEdit->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); myClosedLbl = new QLabel( tr( "NUMBER_CLOSED" ), aMainGrp ); - myOpenLbl = new QLabel( tr( "NUMBER_OPEN" ), aMainGrp ); + myOpenLbl = new QLabel( tr( "NUMBER_OPEN" ), aMainGrp ); + myClosedLbl->setMinimumWidth( 150 ); + myOpenLbl->setMinimumWidth( 150 ); + + QGridLayout* aMainGrpLayout = new QGridLayout( aMainGrp ); + aMainGrpLayout->setMargin( MARGIN ); aMainGrpLayout->setSpacing( SPACING ); + aMainGrpLayout->addWidget( lab, 0, 0 ); + aMainGrpLayout->addWidget( btn, 0, 1 ); + aMainGrpLayout->addWidget( myEdit, 0, 2 ); + aMainGrpLayout->addWidget( myClosedLbl, 1, 0, 1, 3 ); + aMainGrpLayout->addWidget( myOpenLbl, 2, 0, 1, 3 ); QFrame* aFrame = new QFrame( this ); aFrame->setFrameStyle( QFrame::Box | QFrame::Sunken ); QPushButton* aCloseBtn = new QPushButton( tr( "GEOM_BUT_CLOSE" ), aFrame ); QPushButton* aHelpBtn = new QPushButton( tr( "GEOM_BUT_HELP" ), aFrame ); - QHBoxLayout* aBtnLay = new QHBoxLayout( aFrame, MARGIN, SPACING ); + QHBoxLayout* aBtnLay = new QHBoxLayout( aFrame ); + aBtnLay->setMargin( MARGIN ); aBtnLay->setSpacing( SPACING ); aBtnLay->addWidget( aCloseBtn ); - aBtnLay->addItem( new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ) ); + aBtnLay->addSpacing( SPACING ); aBtnLay->addStretch(); aBtnLay->addWidget( aHelpBtn ); QVBoxLayout* aLay = new QVBoxLayout( this ); @@ -97,11 +110,10 @@ RepairGUI_FreeBoundDlg::RepairGUI_FreeBoundDlg(GeometryGUI* theGUI, QWidget* the aLay->addWidget( aMainGrp ); aLay->addWidget( aFrame ); - //myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#free_boundaries"; myHelpFileName = "using_measurement_tools_page.html#boundaries_anchor"; connect( aCloseBtn, SIGNAL( clicked() ), SLOT( onClose() ) ); - connect( aHelpBtn, SIGNAL( clicked() ), SLOT( onHelp() ) ); + connect( aHelpBtn, SIGNAL( clicked() ), SLOT( onHelp() ) ); Init(); } @@ -121,7 +133,7 @@ RepairGUI_FreeBoundDlg::~RepairGUI_FreeBoundDlg() void RepairGUI_FreeBoundDlg::onClose() { globalSelection(); - disconnect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0 ); + disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 ); myGeomGUI->SetActiveDialogBox( 0 ); reject(); erasePreview(); @@ -133,20 +145,21 @@ void RepairGUI_FreeBoundDlg::onClose() //================================================================================= void RepairGUI_FreeBoundDlg::onHelp() { - LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication()); - if (app) - app->onHelpContextModule(myGeomGUI ? app->moduleName(myGeomGUI->moduleName()) : QString(""), myHelpFileName); + LightApp_Application* app = (LightApp_Application*)( SUIT_Session::session()->activeApplication() ); + if ( app ) + app->onHelpContextModule( myGeomGUI ? app->moduleName( myGeomGUI->moduleName() ) : QString(""), myHelpFileName ); else { - QString platform; + QString platform; #ifdef WIN32 - platform = "winapplication"; + platform = "winapplication"; #else - platform = "application"; + platform = "application"; #endif - SUIT_MessageBox::warn1 - (0, tr("WRN_WARNING"), tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). - arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName), - tr("BUT_OK")); + SUIT_MessageBox::warning( this, + tr( "WRN_WARNING" ), + tr( "EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). + arg( app->resourceMgr()->stringValue( "ExternalBrowser", + platform ) ).arg( myHelpFileName ) ); } } @@ -156,9 +169,9 @@ void RepairGUI_FreeBoundDlg::onHelp() //================================================================================= void RepairGUI_FreeBoundDlg::onDeactivate() { - setEnabled(false); + setEnabled( false ); globalSelection(); - disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); myGeomGUI->SetActiveDialogBox( 0 ); } @@ -171,7 +184,7 @@ void RepairGUI_FreeBoundDlg::onActivate() myGeomGUI->EmitSignalDeactivateDialog(); setEnabled( true ); myGeomGUI->SetActiveDialogBox( this ); - connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), SIGNAL( currentSelectionChanged() ), SLOT( onSelectionDone() ) ); activateSelection(); onSelectionDone(); @@ -183,17 +196,20 @@ void RepairGUI_FreeBoundDlg::onActivate() //================================================================================= void RepairGUI_FreeBoundDlg::onSelectionDone() { - if( IObjectCount() != 1 ) + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if ( aSelList.Extent() != 1 ) return; Standard_Boolean isOk = Standard_False; GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), isOk ); + GEOMBase::ConvertIOinGEOMObject( aSelList.First(), isOk ); if ( !isOk || anObj->_is_nil() || !GEOMBase::IsShape( anObj ) ) return; - else - { + else { myObj = anObj; displayPreview( false, true, true, 3 ); } @@ -209,7 +225,7 @@ void RepairGUI_FreeBoundDlg::Init() myObj = GEOM::GEOM_Object::_nil(); connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), SLOT ( onDeactivate() ) ); - connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), SIGNAL( currentSelectionChanged() ), SLOT( onSelectionDone() ) ); activateSelection(); @@ -220,7 +236,7 @@ void RepairGUI_FreeBoundDlg::Init() // function : enterEvent // purpose : Activate dialog //================================================================================= -void RepairGUI_FreeBoundDlg::enterEvent( QEvent* e ) +void RepairGUI_FreeBoundDlg::enterEvent( QEvent* ) { onActivate(); } @@ -229,7 +245,7 @@ void RepairGUI_FreeBoundDlg::enterEvent( QEvent* e ) // function : closeEvent // purpose : Close dialog //================================================================================= -void RepairGUI_FreeBoundDlg::closeEvent( QCloseEvent* e ) +void RepairGUI_FreeBoundDlg::closeEvent( QCloseEvent* ) { onClose(); } @@ -261,7 +277,7 @@ GEOM::GEOM_IOperations_ptr RepairGUI_FreeBoundDlg::createOperation() // function : isValid // purpose : //================================================================================= -bool RepairGUI_FreeBoundDlg::isValid( QString& msg ) +bool RepairGUI_FreeBoundDlg::isValid( QString& ) { return !myObj->_is_nil(); } @@ -280,8 +296,7 @@ bool RepairGUI_FreeBoundDlg::execute( ObjectList& objects ) bool result = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )->GetFreeBoundary( myObj, aClosed, anOpen ); - if ( result ) - { + if ( result ) { myNbClosed = aClosed->length(); myNbOpen = anOpen->length(); int i; @@ -296,8 +311,7 @@ bool RepairGUI_FreeBoundDlg::execute( ObjectList& objects ) aLabelText = tr( "NUMBER_OPEN" ) + QString( "%1" ).arg( myNbOpen ); myOpenLbl->setText( aLabelText ); } - else - { + else { myEdit->setText( GEOMBase::GetName( myObj ) ); myClosedLbl->setText( tr( "NUMBER_CLOSED" ) ); myOpenLbl->setText( tr( "NUMBER_OPEN" ) ); @@ -316,9 +330,8 @@ void RepairGUI_FreeBoundDlg::keyPressEvent( QKeyEvent* e ) if ( e->isAccepted() ) return; - if ( e->key() == Key_F1 ) - { - e->accept(); - onHelp(); - } + if ( e->key() == Qt::Key_F1 ) { + e->accept(); + onHelp(); + } } diff --git a/src/RepairGUI/RepairGUI_FreeBoundDlg.h b/src/RepairGUI/RepairGUI_FreeBoundDlg.h index 0594fe2d6..afca4ef79 100644 --- a/src/RepairGUI/RepairGUI_FreeBoundDlg.h +++ b/src/RepairGUI/RepairGUI_FreeBoundDlg.h @@ -1,39 +1,36 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : RepairGUI_FreeBoundDlg.h -// Author : Sergey LITONIN -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_FreeBoundDlg.h +// Author : Sergey LITONIN, Open CASCADE S.A.S. (sergey.litonin@opencascade.com) +// +#ifndef REPAIRGUI_FREEBOUNDDLG_H +#define REPAIRGUI_FREEBOUNDDLG_H -#ifndef DIALOGBOX_WHATIS_H -#define DIALOGBOX_WHATIS_H - -#include -#include "GEOMBase_Helper.h" +#include +#include class QLineEdit; class QLabel; -class GEOM_Displayer; class GeometryGUI; //================================================================================= @@ -43,11 +40,11 @@ class GeometryGUI; class RepairGUI_FreeBoundDlg : public QDialog, public GEOMBase_Helper { - Q_OBJECT + Q_OBJECT public: - RepairGUI_FreeBoundDlg(GeometryGUI*, QWidget*, const char* name = 0); - ~RepairGUI_FreeBoundDlg(); + RepairGUI_FreeBoundDlg( GeometryGUI*, QWidget* ); + ~RepairGUI_FreeBoundDlg(); private slots: void onClose(); @@ -58,13 +55,13 @@ private slots: private: void Init(); - void enterEvent( QEvent* e ); - void closeEvent( QCloseEvent* e ); - void keyPressEvent( QKeyEvent* e ); + void enterEvent( QEvent* ); + void closeEvent( QCloseEvent* ); + void keyPressEvent( QKeyEvent* ); void activateSelection(); virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool execute( ObjectList& objects ); + virtual bool execute( ObjectList& ); virtual bool isValid( QString& ); private: @@ -78,4 +75,4 @@ private: QString myHelpFileName; }; -#endif // DIALOGBOX_WHATIS_H +#endif // REPAIRGUI_FREEBOUNDDLG_H diff --git a/src/RepairGUI/RepairGUI_FreeFacesDlg.cxx b/src/RepairGUI/RepairGUI_FreeFacesDlg.cxx index e64a5f898..a4319e05a 100644 --- a/src/RepairGUI/RepairGUI_FreeFacesDlg.cxx +++ b/src/RepairGUI/RepairGUI_FreeFacesDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,48 +17,47 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_FreeFacesDlg.cxx +// Author : Vladimir KLYACHIN, Open CASCADE S.A.S. (vladimir.klyachin@opencascade.com) // -// -// File : RepairGUI_FreeFacesDlg.cxx -// Author : VKN -// Module : GEOM -// $Header$ - #include "RepairGUI_FreeFacesDlg.h" -#include "LightApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SalomeApp_Application.h" -#include "SalomeApp_Tools.h" +#include +#include +#include +#include -#include "SUIT_MessageBox.h" -#include "SUIT_Session.h" -#include "SUIT_OverrideCursor.h" +#include +#include +#include +#include +#include -#include "SALOME_ListIteratorOfListIO.hxx" +#include -#include "GEOMImpl_Types.hxx" #include #include #include -#include "GEOMBase.h" -#include "GeometryGUI.h" -#include "GEOM_Displayer.h" -#include -#include -#include -#include -#include -#include -#define SPACING 5 -#define MARGIN 10 +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#define SPACING 6 +#define MARGIN 9 #define MIN_WIDTH 200 -using namespace std; - //================================================================================= // class : RepairGUI_FreeFacesDlg() // purpose : Constructs a RepairGUI_FreeFacesDlg which is a child of 'parent', with the @@ -66,60 +65,66 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -RepairGUI_FreeFacesDlg::RepairGUI_FreeFacesDlg(GeometryGUI* GUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :QDialog(parent, "RepairGUI_FreeBoundDlg", false, - WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose), - GEOMBase_Helper(dynamic_cast(parent)), - myGeomGUI(GUI) +RepairGUI_FreeFacesDlg::RepairGUI_FreeFacesDlg( GeometryGUI* GUI, QWidget* parent, + bool modal ) + : QDialog( parent, false ), + GEOMBase_Helper( dynamic_cast( parent ) ), + myGeomGUI( GUI ), + myDisplayer( 0 ) { - myDisplayer = 0; + setAttribute( Qt::WA_DeleteOnClose ); - setSizeGripEnabled( TRUE ); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + setSizeGripEnabled( true ); - setCaption(tr("GEOM_FREE_FACES_TITLE")); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); + + setWindowTitle( tr( "GEOM_FREE_FACES_TITLE" ) ); /***************************************************************/ - QGroupBox* aMainGrp = new QGroupBox( 1, Qt::Horizontal, tr( "GEOM_SELECTED_SHAPE" ), this ); + QGroupBox* aMainGrp = new QGroupBox( tr( "GEOM_SELECTED_SHAPE" ), this ); - - QGroupBox* aSelGrp = new QGroupBox( 1, Qt::Vertical, aMainGrp ); - - aSelGrp->setInsideMargin( 0 ); - aSelGrp->setFrameStyle( QFrame::NoFrame ); - new QLabel( tr( "GEOM_OBJECT" ), aSelGrp ); - mySelBtn = new QPushButton( aSelGrp ); - mySelBtn->setPixmap( image1 ); - myEdit = new QLineEdit( aSelGrp ); + QLabel* lab = new QLabel( tr( "GEOM_OBJECT" ), aMainGrp ); + mySelBtn = new QPushButton( aMainGrp ); + mySelBtn->setIcon( image1 ); + myEdit = new QLineEdit( aMainGrp ); myEdit->setReadOnly( true ); myEdit->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); myEdit->setMinimumWidth( MIN_WIDTH ); + QHBoxLayout* aMainLay = new QHBoxLayout( aMainGrp ); + aMainLay->setSpacing( SPACING ); + aMainLay->setMargin( MARGIN ); + aMainLay->addWidget( lab ); + aMainLay->addWidget( mySelBtn ); + aMainLay->addWidget( myEdit ); + QFrame* aFrame = new QFrame( this ); aFrame->setFrameStyle( QFrame::Box | QFrame::Sunken ); QPushButton* aCloseBtn = new QPushButton( tr( "GEOM_BUT_CLOSE" ), aFrame ); QPushButton* aHelpBtn = new QPushButton( tr( "GEOM_BUT_HELP" ), aFrame ); - QHBoxLayout* aBtnLay = new QHBoxLayout( aFrame, MARGIN, SPACING ); + + QHBoxLayout* aBtnLay = new QHBoxLayout( aFrame ); + aBtnLay->setSpacing( SPACING ); + aBtnLay->setMargin( MARGIN ); aBtnLay->addWidget( aCloseBtn ); - aBtnLay->addItem( new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ) ); + aBtnLay->addSpacing( SPACING ); + aBtnLay->addStretch(); aBtnLay->addWidget( aHelpBtn ); QVBoxLayout* aLay = new QVBoxLayout( this ); aLay->setSpacing( SPACING ); aLay->setMargin( MARGIN ); aLay->addWidget( aMainGrp ); - aLay->addItem( new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ) ); + aLay->addStretch(); aLay->addWidget( aFrame ); - //myHelpFileName = "files/salome2_sp3_measuregui_functions.htm#free_faces"; myHelpFileName = "using_measurement_tools_page.html#faces_anchor"; connect( aCloseBtn, SIGNAL( clicked() ), SLOT( onClose() ) ); - connect( aHelpBtn, SIGNAL( clicked() ), SLOT( onHelp() ) ); - connect( mySelBtn, SIGNAL( clicked() ), - this, SLOT ( onSetEditCurrentArgument() ) ); + connect( aHelpBtn, SIGNAL( clicked() ), SLOT( onHelp() ) ); + connect( mySelBtn, SIGNAL( clicked() ), + this, SLOT ( onSetEditCurrentArgument() ) ); /***************************************************************/ Init(); @@ -142,7 +147,7 @@ RepairGUI_FreeFacesDlg::~RepairGUI_FreeFacesDlg() void RepairGUI_FreeFacesDlg::onClose() { globalSelection(); - disconnect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0 ); + disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 ); myGeomGUI->SetActiveDialogBox( 0 ); reject(); erasePreview(); @@ -154,20 +159,22 @@ void RepairGUI_FreeFacesDlg::onClose() //================================================================================= void RepairGUI_FreeFacesDlg::onHelp() { - LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication()); - if (app) - app->onHelpContextModule(myGeomGUI ? app->moduleName(myGeomGUI->moduleName()) : QString(""), myHelpFileName); + LightApp_Application* app = (LightApp_Application*)( SUIT_Session::session()->activeApplication() ); + if ( app ) + app->onHelpContextModule( myGeomGUI ? app->moduleName( myGeomGUI->moduleName() ) : QString(""), myHelpFileName ); else { - QString platform; + QString platform; #ifdef WIN32 - platform = "winapplication"; + platform = "winapplication"; #else - platform = "application"; + platform = "application"; #endif - SUIT_MessageBox::warn1(0, QObject::tr("WRN_WARNING"), - QObject::tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). - arg(app->resourceMgr()->stringValue("ExternalBrowser", platform)).arg(myHelpFileName), - QObject::tr("BUT_OK")); + SUIT_MessageBox::warning( this, + tr( "WRN_WARNING" ), + tr( "EXTERNAL_BROWSER_CANNOT_SHOW_PAGE" ). + arg( app->resourceMgr()->stringValue( "ExternalBrowser", + platform ) ). + arg( myHelpFileName ) ); } } @@ -177,9 +184,9 @@ void RepairGUI_FreeFacesDlg::onHelp() //================================================================================= void RepairGUI_FreeFacesDlg::onDeactivate() { - setEnabled(false); + setEnabled( false ); globalSelection(); - disconnect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0 ); + disconnect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), 0, this, 0 ); myGeomGUI->SetActiveDialogBox( 0 ); } @@ -192,8 +199,8 @@ void RepairGUI_FreeFacesDlg::onActivate() myGeomGUI->EmitSignalDeactivateDialog(); setEnabled( true ); myGeomGUI->SetActiveDialogBox( this ); - connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL( currentSelectionChanged() ), SLOT ( onSelectionDone() ) ); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), SLOT( onSelectionDone() ) ); activateSelection(); } @@ -207,7 +214,7 @@ void RepairGUI_FreeFacesDlg::Init() /* signals and slots connections */ connect( myGeomGUI, SIGNAL( SignalDeactivateActiveDialog() ), SLOT ( onDeactivate() ) ); - connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), SIGNAL( currentSelectionChanged() ), SLOT ( onSelectionDone() ) ); activateSelection(); @@ -221,23 +228,25 @@ void RepairGUI_FreeFacesDlg::Init() void RepairGUI_FreeFacesDlg::onSelectionDone() { erasePreview(); - if( IObjectCount() != 1 ) - { + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if ( aSelList.Extent() != 1 ) { myEdit->setText( "" ); return; } Standard_Boolean isOk = Standard_False; GEOM::GEOM_Object_var anObj = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), isOk ); + GEOMBase::ConvertIOinGEOMObject( aSelList.First(), isOk ); - if ( !isOk || anObj->_is_nil() || !GEOMBase::IsShape( anObj ) ) - { + if ( !isOk || anObj->_is_nil() || !GEOMBase::IsShape( anObj ) ) { myEdit->setText( "" ); return; } - else - { + else { myObj = anObj; displayPreview( false, true, true, 3 ); } @@ -247,7 +256,7 @@ void RepairGUI_FreeFacesDlg::onSelectionDone() // function : enterEvent() // purpose : Mouse enter onto the dialog to activate it //================================================================================= -void RepairGUI_FreeFacesDlg::enterEvent(QEvent* e) +void RepairGUI_FreeFacesDlg::enterEvent( QEvent* ) { onActivate(); } @@ -268,7 +277,7 @@ void RepairGUI_FreeFacesDlg::activateSelection() // function : closeEvent() // purpose : //================================================================================= -void RepairGUI_FreeFacesDlg::closeEvent(QCloseEvent* e) +void RepairGUI_FreeFacesDlg::closeEvent( QCloseEvent* ) { onClose(); } @@ -286,7 +295,7 @@ GEOM::GEOM_IOperations_ptr RepairGUI_FreeFacesDlg::createOperation() // function : isValid // purpose : //================================================================================= -bool RepairGUI_FreeFacesDlg::isValid( QString& msg ) +bool RepairGUI_FreeFacesDlg::isValid( QString& ) { return !myObj->_is_nil() ; } @@ -303,12 +312,10 @@ bool RepairGUI_FreeFacesDlg::execute( ObjectList& objects ) TopoDS_Shape aSelShape; TopoDS_Shape aFace; TopTools_IndexedMapOfShape anIndices; - if ( !myObj->_is_nil() && GEOMBase::GetShape( myObj, aSelShape ) ) - { + if ( !myObj->_is_nil() && GEOMBase::GetShape( myObj, aSelShape ) ) { myEdit->setText( GEOMBase::GetName( myObj ) ); QString aMess; - if ( !isValid( aMess ) ) - { + if ( !isValid( aMess ) ) { erasePreview( true ); return false; } @@ -318,11 +325,9 @@ bool RepairGUI_FreeFacesDlg::execute( ObjectList& objects ) TopExp::MapShapes( aSelShape, anIndices); SALOME_Prs* aPrs = 0; - for ( int i = 0, n = aFaceLst->length(); i < n; i++ ) - { + for ( int i = 0, n = aFaceLst->length(); i < n; i++ ) { aFace = anIndices.FindKey( aFaceLst[i] ); - try - { + try { getDisplayer()->SetColor( Quantity_NOC_RED ); getDisplayer()->SetToActivate( false ); aPrs = !aFace.IsNull() ? getDisplayer()->BuildPrs( aFace ) : 0; @@ -369,9 +374,8 @@ void RepairGUI_FreeFacesDlg::keyPressEvent( QKeyEvent* e ) if ( e->isAccepted() ) return; - if ( e->key() == Key_F1 ) - { - e->accept(); - onHelp(); - } + if ( e->key() == Qt::Key_F1 ) { + e->accept(); + onHelp(); + } } diff --git a/src/RepairGUI/RepairGUI_FreeFacesDlg.h b/src/RepairGUI/RepairGUI_FreeFacesDlg.h index 582179b4d..8cd360721 100644 --- a/src/RepairGUI/RepairGUI_FreeFacesDlg.h +++ b/src/RepairGUI/RepairGUI_FreeFacesDlg.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,19 +17,17 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_FreeFacesDlg.h +// Author : Vladimir KLYACHIN, Open CASCADE S.A.S. (vladimir.klyachin@opencascade.com) // -// -// File : RepairGUI_FreeFacesDlg.h -// Author : VKN -// Module : GEOM +#ifndef REPAIRGUI_FREEFACESDLG_H +#define REPAIRGUI_FREEFACESDLG_H -#ifndef DIALOGBOX_FreeFaces_H -#define DIALOGBOX_FreeFaces_H - -#include -#include "GEOMBase_Helper.h" +#include +#include class GEOM_Displayer; class QPushButton; @@ -43,42 +41,41 @@ class GeometryGUI; class RepairGUI_FreeFacesDlg : public QDialog, public GEOMBase_Helper { - Q_OBJECT + Q_OBJECT public: - RepairGUI_FreeFacesDlg(GeometryGUI* GUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~RepairGUI_FreeFacesDlg(); - + RepairGUI_FreeFacesDlg( GeometryGUI*, QWidget* = 0, bool = false ); + ~RepairGUI_FreeFacesDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + private: - void Init(); - void enterEvent(QEvent* e); - void closeEvent(QCloseEvent* e); - void keyPressEvent(QKeyEvent* e); - void activateSelection(); - GEOM_Displayer* getDisplayer(); + void Init(); + void enterEvent( QEvent* ); + void closeEvent( QCloseEvent* ); + void keyPressEvent( QKeyEvent* ); + void activateSelection(); + GEOM_Displayer* getDisplayer(); private slots: - void onClose(); - void onHelp(); - void onDeactivate(); - void onActivate(); - void onSelectionDone(); - void onSetEditCurrentArgument(); + void onClose(); + void onHelp(); + void onDeactivate(); + void onActivate(); + void onSelectionDone(); + void onSetEditCurrentArgument(); private: - GEOM_Displayer* myDisplayer; - GEOM::GEOM_Object_var myObj; - QPushButton* mySelBtn; - QLineEdit* myEdit; - GeometryGUI* myGeomGUI; - QString myHelpFileName; + GEOM_Displayer* myDisplayer; + GEOM::GEOM_Object_var myObj; + QPushButton* mySelBtn; + QLineEdit* myEdit; + GeometryGUI* myGeomGUI; + QString myHelpFileName; }; -#endif // DIALOGBOX_FreeFaces_H +#endif // REPAIRGUI_FREEFACESDLG_H diff --git a/src/RepairGUI/RepairGUI_GlueDlg.cxx b/src/RepairGUI/RepairGUI_GlueDlg.cxx index d723e1e80..3425fc433 100644 --- a/src/RepairGUI/RepairGUI_GlueDlg.cxx +++ b/src/RepairGUI/RepairGUI_GlueDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,43 +17,37 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM RepairGUI : GUI for Geometry component +// File : RepairGUI_GlueDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : RepairGUI_GlueDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - -#include "OCCViewer_ViewModel.h" - #include "RepairGUI_GlueDlg.h" -#include "DlgRef_1Sel_Ext.h" -#include "GEOMImpl_Types.hxx" -#include "QtxDblSpinBox.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SalomeApp_Study.h" -#include "SalomeApp_Tools.h" +#include +#include +#include +#include -#include "SUIT_Session.h" -#include "SUIT_MessageBox.h" -#include "SUIT_OverrideCursor.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -#include "SALOME_ListIteratorOfListIO.hxx" +#include #include -#include -#include -#include -#include -#include - -using namespace std; - #define DEFAULT_TOLERANCE_VALUE 1e-07 //================================================================================= @@ -63,75 +57,75 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -RepairGUI_GlueDlg::RepairGUI_GlueDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) -: GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu), - myCurrConstrId( -1 ) +RepairGUI_GlueDlg::RepairGUI_GlueDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal ), + myCurrConstrId( -1 ) { - QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_GLUE_FACES"))); - QPixmap image2 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_GLUE_FACES2"))); - QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_GLUE_FACES" ) ) ); + QPixmap image2( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_GLUE_FACES2" ) )); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_GLUE_TITLE")); + setWindowTitle( tr( "GEOM_GLUE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_GLUE_TITLE")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image2); - //RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_GLUE_TITLE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setIcon( image2 ); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel_Ext(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_GLUE")); - GroupPoints->TextLabel1->setText(tr("GEOM_SELECTED_SHAPE")); - GroupPoints->PushButton1->setPixmap(image1); + GroupPoints = new DlgRef_1SelExt( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_GLUE" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_SELECTED_SHAPE" ) ); + GroupPoints->PushButton1->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); - int aWidth = GroupPoints->TextLabel1->sizeHint().width() + - GroupPoints->PushButton1->sizeHint().width() + - GroupPoints->getGroupBoxLayout()->spacing(); - - Layout1->addWidget(GroupPoints, 2, 0); - - QHBox* aHBox = new QHBox( GroupPoints->GroupBox1 ); - aHBox->setSpacing( 5 ); - - (new QLabel( tr( "GEOM_TOLERANCE" ), aHBox ))->setFixedWidth( aWidth ); - myTolEdt = new QtxDblSpinBox( 0, 100, 1e-7, aHBox ); - myTolEdt->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); - myTolEdt->setPrecision( 10 ); + QLabel* aTolLab = new QLabel( tr( "GEOM_TOLERANCE" ), GroupPoints->Box ); + myTolEdt = new SalomeApp_DoubleSpinBox( 0.0, 100.0, DEFAULT_TOLERANCE_VALUE, 7, 7, GroupPoints->Box ); myTolEdt->setValue( DEFAULT_TOLERANCE_VALUE ); - GroupPoints->getGroupBoxLayout()->addWidget( aHBox, 3, 0 ); + + QGridLayout* boxLayout = new QGridLayout( GroupPoints->Box ); + boxLayout->setMargin( 0 ); boxLayout->setSpacing( 6 ); + boxLayout->addWidget( aTolLab, 0, 0 ); + boxLayout->addWidget( myTolEdt, 0, 2 ); /***************************************************************/ - GroupPoints2 = new DlgRef_1Sel_Ext(this, "GroupPoints2"); - GroupPoints2->GroupBox1->setTitle(tr("GEOM_GLUE")); - GroupPoints2->TextLabel1->setText(tr("GEOM_SELECTED_SHAPE")); - GroupPoints2->PushButton1->setPixmap(image1); + GroupPoints2 = new DlgRef_1SelExt( centralWidget() ); + GroupPoints2->GroupBox1->setTitle( tr( "GEOM_GLUE" ) ); + GroupPoints2->TextLabel1->setText( tr( "GEOM_SELECTED_SHAPE" ) ); + GroupPoints2->PushButton1->setIcon( image1 ); GroupPoints2->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupPoints2, 2, 0); - QGrid* aGrid = new QGrid( 2, Qt::Horizontal, GroupPoints2->GroupBox1 ); - aGrid->setSpacing( 5 ); - (new QLabel( tr( "GEOM_TOLERANCE" ), aGrid ))->setFixedWidth( aWidth );; - myTolEdt2 = new QtxDblSpinBox( 0, 100, 1e-7, aGrid ); - myTolEdt2->setPrecision( 10 ); + QLabel* aTolLab2 = new QLabel( tr( "GEOM_TOLERANCE" ), GroupPoints2->Box ); + myTolEdt2 = new SalomeApp_DoubleSpinBox( GroupPoints2->Box ); + initSpinBox( myTolEdt2, 0, 100, 1e-7, 7 ); myTolEdt2->setValue( DEFAULT_TOLERANCE_VALUE ); - myTolEdt2->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); - (new QLabel( tr( "GLUE_FACES" ), aGrid ))->setFixedWidth( aWidth );; - myDetectBtn = new QPushButton( tr( "GEOM_DETECT" ), aGrid ); - myDetectBtn->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); - mySubShapesChk = new QCheckBox( tr( "SELECT_FACES" ), aGrid ); - GroupPoints2->getGroupBoxLayout()->addWidget( aGrid, 3, 0 ); + + myDetectBtn = new QPushButton( tr( "GEOM_DETECT" ) + QString( " [%1]" ).arg( tr( "GLUE_FACES" ) ), + GroupPoints2->Box ); + mySubShapesChk = new QCheckBox( tr( "SELECT_FACES" ), GroupPoints2->Box ); + + boxLayout = new QGridLayout( GroupPoints2->Box ); + boxLayout->setMargin( 0 ); boxLayout->setSpacing( 6 ); + boxLayout->addWidget( aTolLab2, 0, 0 ); + boxLayout->addWidget( myTolEdt2, 0, 2 ); + boxLayout->addWidget( myDetectBtn, 1, 0, 1, 3 ); + boxLayout->addWidget( mySubShapesChk, 2, 0, 1, 3 ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); + layout->addWidget( GroupPoints2 ); + /***************************************************************/ - setHelpFileName("glue_faces_operation_page.html"); + setHelpFileName( "glue_faces_operation_page.html" ); // Disable second way of gluing if OCC viewer is not active one - if (SUIT_Session::session()->activeApplication()->desktop()->activeWindow()->getViewManager()->getType() - != OCCViewer_Viewer::Type()) - RadioButton2->setEnabled(false); + if ( myGeomGUI->getApp()->desktop()->activeWindow()->getViewManager()->getType() + != OCCViewer_Viewer::Type() ) + mainFrame()->RadioButton2->setEnabled( false ); Init(); } @@ -160,27 +154,30 @@ void RepairGUI_GlueDlg::Init() //myGeomGUI->SetState( 0 ); //globalSelection( GEOM_COMPOUND ); + mainFrame()->GroupBoxPublish->show(); + /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + connect( buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect( buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( this, SIGNAL( constructorsClicked( int ) ), this, SLOT( ConstructorsClicked( int ) ) ); - connect(GroupPoints2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); + + connect( GroupPoints2->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints2->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); connect( myTolEdt2, SIGNAL( valueChanged( double ) ), this, SLOT( onTolerChanged( double ) ) ); connect( mySubShapesChk, SIGNAL( stateChanged( int ) ), this, SLOT( onSubShapesChk() ) ); - connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()) ); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); - connect(myDetectBtn, SIGNAL(clicked()), this, SLOT(onDetect())); + connect( myDetectBtn, SIGNAL( clicked() ), this, SLOT( onDetect() ) ); initName( tr( "GLUE_NEW_OBJ_NAME" ) ); - ConstructorsClicked(0); + ConstructorsClicked( 0 ); activateSelection(); updateButtonState(); @@ -196,58 +193,48 @@ void RepairGUI_GlueDlg::ConstructorsClicked( int constructorId ) if ( myCurrConstrId == constructorId ) return; - disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0); + disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); - switch ( constructorId ) - { - case 0: - { - GroupPoints2->hide(); - resize( 0, 0 ); - GroupPoints->show(); - GroupPoints->LineEdit1->setText( "" ); - myEditCurrentArgument = GroupPoints->LineEdit1; - - if ( myCurrConstrId >= 0 ) // i.e. it is not initialisation - { - // copy tolerance from previous tolerance field - myTolEdt->setValue( myTolEdt2->value() ); - } - - break; - } - case 1: - { - GroupPoints->hide(); - resize(0, 0); - GroupPoints2->show(); - GroupPoints->LineEdit1->setText(""); - myEditCurrentArgument = GroupPoints2->LineEdit1; - - if ( myCurrConstrId >= 0 ) // i.e. it is not initialisation - { - // copy tolerance from previous tolerance field - myTolEdt2->setValue( myTolEdt->value() ); - mySubShapesChk->setChecked( false ); - clearTemporary(); - } - - break; - } - } + switch ( constructorId ) { + case 0: + GroupPoints2->hide(); + GroupPoints->show(); + GroupPoints->LineEdit1->setText( "" ); + myEditCurrentArgument = GroupPoints->LineEdit1; - myCurrConstrId = constructorId; + if ( myCurrConstrId >= 0 ) { + // i.e. it is not initialisation + // copy tolerance from previous tolerance field + myTolEdt->setValue( myTolEdt2->value() ); + } + break; + case 1: + GroupPoints->hide(); + GroupPoints2->show(); + GroupPoints->LineEdit1->setText( "" ); + myEditCurrentArgument = GroupPoints2->LineEdit1; + + if ( myCurrConstrId >= 0 ) { + // i.e. it is not initialisation + // copy tolerance from previous tolerance field + myTolEdt2->setValue( myTolEdt->value() ); + mySubShapesChk->setChecked( false ); + clearTemporary(); + } + break; + } + + myCurrConstrId = constructorId; myEditCurrentArgument->setFocus(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); qApp->processEvents(); updateGeometry(); - QSize aSize = minimumSizeHint(); - resize( width(), aSize.height() ); - + resize( minimumSizeHint() ); + displayPreview(); updateButtonState(); activateSelection(); @@ -300,11 +287,15 @@ void RepairGUI_GlueDlg::SelectionIntoArgument() } erasePreview(); - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); - if ( IObjectCount() == 1 ) { - Handle(SALOME_InteractiveObject) anIO = firstIObject(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if ( aSelList.Extent() == 1 ) { + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); Standard_Boolean aRes; myObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes ); if ( aRes ) @@ -334,11 +325,11 @@ void RepairGUI_GlueDlg::SetEditCurrentArgument() void RepairGUI_GlueDlg::LineEditReturnPressed() { const QObject* send = sender(); - if( send == GroupPoints->LineEdit1 ) { + if ( send == GroupPoints->LineEdit1 ) { myEditCurrentArgument = GroupPoints->LineEdit1; GEOMBase_Skeleton::LineEditReturnPressed(); } - else if( send == GroupPoints2->LineEdit1 ) { + else if ( send == GroupPoints2->LineEdit1 ) { myEditCurrentArgument = GroupPoints2->LineEdit1; GEOMBase_Skeleton::LineEditReturnPressed(); } @@ -352,8 +343,8 @@ void RepairGUI_GlueDlg::LineEditReturnPressed() void RepairGUI_GlueDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); //GroupPoints->LineEdit1->setText(""); //GroupPoints2->LineEdit1->setText(""); @@ -369,22 +360,12 @@ void RepairGUI_GlueDlg::ActivateThisDialog() // function : enterEvent() // purpose : Mouse enter onto the dialog to activate it //================================================================================= -void RepairGUI_GlueDlg::enterEvent(QEvent* e) +void RepairGUI_GlueDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void RepairGUI_GlueDlg::closeEvent(QCloseEvent* e) -{ - //myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : createOperation @@ -401,7 +382,20 @@ GEOM::GEOM_IOperations_ptr RepairGUI_GlueDlg::createOperation() //================================================================================= bool RepairGUI_GlueDlg::isValid( QString& msg ) { - return !myObject->_is_nil() && ( IsPreview() || myTolEdt->value() > 0. ); + bool ok = true; + double v = 0; + switch ( getConstructorId() ) + { + case 0: + v = myTolEdt->value(); + ok = myTolEdt->isValid( msg, !IsPreview() ); + break; + case 1: + v = myTolEdt2->value(); + ok = myTolEdt2->isValid( msg, !IsPreview() ); + break; + } + return !myObject->_is_nil() && ( IsPreview() || v > 0. ) && ok; } //================================================================================= @@ -413,24 +407,28 @@ bool RepairGUI_GlueDlg::execute( ObjectList& objects ) bool aResult = false; objects.clear(); - switch ( getConstructorId() ) - { + switch ( getConstructorId() ) { case 0: { GEOM::GEOM_Object_var anObj = GEOM::GEOM_IShapesOperations::_narrow - ( getOperation() )->MakeGlueFaces( myObject, myTolEdt2->value(), true ); + ( getOperation() )->MakeGlueFaces( myObject, myTolEdt->value(), true ); aResult = !anObj->_is_nil(); - if ( aResult ) + if ( aResult && !IsPreview() ) + { + QStringList aParameters; + aParameters << myTolEdt->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + objects.push_back( anObj._retn() ); + } break; } case 1: { - if ( IsPreview() ) - { + if ( IsPreview() ) { // if this method is used for displaying preview then we must detect glue faces only ObjectList::iterator anIter; - for (anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter) + for ( anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter ) objects.push_back( GEOM::GEOM_Object::_duplicate( *anIter ) ); return myTmpObjs.size() ? true : false; } // IsPreview @@ -440,20 +438,23 @@ bool RepairGUI_GlueDlg::execute( ObjectList& objects ) QMap selected; // Get names of selected objects - SALOME_ListIteratorOfListIO it ( selectedIO() ); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + SALOME_ListIteratorOfListIO it (aSelList); for (; it.More(); it.Next()) - selected.insert( it.Value()->getName(), 0 ); + selected.insert(it.Value()->getName(), 0); // Iterate through result and select objects with names from selection // ObjectList toRemoveFromEnggine; ObjectList toGlue; ObjectList::iterator anIter; - for (anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter) - { + for ( anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter ) { if ( selected.contains( myGeomGUI->getApp()->orb()->object_to_string(*anIter) ) ) - toGlue.push_back(*anIter); + toGlue.push_back( *anIter ); } - + // make glue faces GEOM::ListOfGO_var aListForGlue = new GEOM::ListOfGO(); aListForGlue->length( toGlue.size() ); @@ -466,7 +467,15 @@ bool RepairGUI_GlueDlg::execute( ObjectList& objects ) aResult = !anObj->_is_nil(); if ( aResult ) + { + if ( !IsPreview() ) + { + QStringList aParameters; + aParameters << myTolEdt2->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } objects.push_back( anObj._retn() ); + } // Remove from engine useless objects clearTemporary(); @@ -480,6 +489,23 @@ bool RepairGUI_GlueDlg::execute( ObjectList& objects ) return aResult; } +//================================================================================= +// function : restoreSubShapes +// purpose : +//================================================================================= +void RepairGUI_GlueDlg::restoreSubShapes( SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject ) +{ + if ( mainFrame()->CheckBoxRestoreSS->isChecked() ) { + GEOM::find_shape_method aFindMethod = GEOM::FSM_GetInPlace; + if ( getConstructorId() == 0 ) // MakeGlueFaces + aFindMethod = GEOM::FSM_GetInPlaceByHistory; + + // empty list of arguments means that all arguments should be restored + getGeomEngine()->RestoreSubShapesSO( theStudy, theSObject, GEOM::ListOfGO(), + aFindMethod, /*theInheritFirstArg=*/true ); + } +} //================================================================ // Function : clearShapeBufferLocal @@ -498,7 +524,7 @@ void RepairGUI_GlueDlg::clearShapeBufferLocal( GEOM::GEOM_Object_ptr theObj ) return; _PTR(Study) aStudy = getStudy()->studyDS(); - _PTR(SObject) aSObj ( aStudy->FindObjectIOR( string( IOR.in() ) ) ); + _PTR(SObject) aSObj ( aStudy->FindObjectIOR( std::string( IOR.in() ) ) ); if ( !aSObj ) return; @@ -527,91 +553,72 @@ bool RepairGUI_GlueDlg::onAcceptLocal() _PTR(Study) aStudy = getStudy()->studyDS(); bool aLocked = aStudy->GetProperties()->IsLocked(); - if ( aLocked ) - { + if ( aLocked ) { MESSAGE("GEOMBase_Helper::onAccept - ActiveStudy is locked"); - SUIT_MessageBox::warn1 ( (QWidget*)(SUIT_Session::session()->activeApplication()->desktop()), - QObject::tr("WRN_WARNING"), QObject::tr("WRN_STUDY_LOCKED"), QObject::tr("BUT_OK") ); + SUIT_MessageBox::warning( this, tr( "WRN_WARNING" ), tr( "WRN_STUDY_LOCKED" ), tr( "BUT_OK" ) ); return false; } QString msg; - if ( !isValid( msg ) ) - { + if ( !isValid( msg ) ) { showError( msg ); return false; } erasePreview( false ); - try - { - if ( openCommand() ) - { + try { + if ( openCommand() ) { SUIT_OverrideCursor wc; - - SUIT_Session::session()->activeApplication()->putInfo( "" ); + + myGeomGUI->getApp()->putInfo( "" ); ObjectList objects; - if ( !execute( objects ) ) - { + if ( !execute( objects ) ) { wc.suspend(); abortCommand(); showError(); } - else - { + else { const int nbObjs = objects.size(); - bool withChildren = false; - for ( ObjectList::iterator it = objects.begin(); it != objects.end(); ++it ) - { - QString aName(""); - if ( nbObjs > 1 ) - { - aName = strlen( getNewObjectName() ) ? GEOMBase::GetDefaultName( getNewObjectName() ) : GEOMBase::GetDefaultName( getPrefix( *it ) ); + for ( ObjectList::iterator it = objects.begin(); it != objects.end(); ++it ) { + QString aName = getNewObjectName(); + if ( nbObjs > 1 ) { + if ( aName.isEmpty() ) + aName = getPrefix( *it ); + aName = GEOMBase::GetDefaultName( aName ); } - else - { - aName = getNewObjectName(); + else { // PAL6521: use a prefix, if some dialog box doesn't reimplement getNewObjectName() if ( aName.isEmpty() ) aName = GEOMBase::GetDefaultName( getPrefix( *it ) ); } - addInStudy( *it, aName.latin1() ); - withChildren = false; + addInStudy( *it, aName.toLatin1().data() ); display( *it, false ); } - - if ( nbObjs ) - { + + if ( nbObjs ) { commitCommand(); updateObjBrowser(); - SUIT_Session::session()->activeApplication()->putInfo( QObject::tr("GEOM_PRP_DONE") ); + myGeomGUI->getApp()->putInfo( QObject::tr("GEOM_PRP_DONE") ); } - else - { + else { abortCommand(); } // JFA 28.12.2004 BEGIN // To enable warnings - if ( !getOperation()->_is_nil() ) - { - if ( !getOperation()->IsDone() ) - { + if ( !getOperation()->_is_nil() ) { + if ( !getOperation()->IsDone() ) { wc.suspend(); QString msgw = QObject::tr( getOperation()->GetErrorCode() ); - SUIT_MessageBox::warn1((QWidget*)(SUIT_Session::session()->activeApplication()->desktop()), - QObject::tr( "WRN_WARNING" ), - msgw, - QObject::tr( "BUT_OK" )); + SUIT_MessageBox::warning( this, tr( "WRN_WARNING" ), msgw, tr( "BUT_OK" ) ); } } // JFA 28.12.2004 END } } } - catch( const SALOME::SALOME_Exception& e ) - { + catch( const SALOME::SALOME_Exception& e ) { SalomeApp_Tools::QtCatchCorbaException( e ); abortCommand(); } @@ -637,25 +644,27 @@ void RepairGUI_GlueDlg::onDetect() return; } + buttonOk()->setEnabled( false ); + buttonApply()->setEnabled( false ); + globalSelection( GEOM_ALLSHAPES ); + GEOM::ListOfGO_var aList = GEOM::GEOM_IShapesOperations::_narrow ( getOperation() )->GetGlueFaces( myObject, myTolEdt2->value() ); - for (int i = 0, n = aList->length(); i < n; i++) + for ( int i = 0, n = aList->length(); i < n; i++ ) myTmpObjs.push_back(GEOM::GEOM_Object::_duplicate(aList[i])); - if ( myTmpObjs.size() > 0 ) - { + if ( myTmpObjs.size() > 0 ) { msg = tr( "FACES_FOR_GLUING_ARE_DETECTED" ).arg( myTmpObjs.size() ); mySubShapesChk->setChecked( true ); } - else - { + else { msg = tr( "THERE_ARE_NO_FACES_FOR_GLUING" ); } - connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()) ) ; - SUIT_MessageBox::info1( this, tr( "GEOM_FREE_BOUNDS_TLT" ), msg, "Close" ); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ) ; + SUIT_MessageBox::information( this, tr( "GEOM_FREE_BOUNDS_TLT" ), msg, tr( "Close" ) ); updateButtonState(); activateSelection(); } @@ -666,33 +675,32 @@ void RepairGUI_GlueDlg::onDetect() //================================================================================= void RepairGUI_GlueDlg::activateSelection() { - erasePreview(false); + erasePreview( false ); int anId = getConstructorId(); - if ( anId == 0 ) // Case of whole gluing - { - disconnect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()) ) ; + if ( anId == 0 ) { + // Case of whole gluing + disconnect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); globalSelection( GEOM_ALLSHAPES ); - if (myObject->_is_nil()) + if ( myObject->_is_nil()) SelectionIntoArgument(); - connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()) ) ; + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); } - else // Second case of gluing - { + else { + // Second case of gluing if ( !mySubShapesChk->isChecked() ) globalSelection( GEOM_ALLSHAPES ); - else - { + else { displayPreview( true, false, false, 2/*line width*/, 1/*display mode*/, Quantity_NOC_RED ); - disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()) ) ; + disconnect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ) ; globalSelection( GEOM_PREVIEW ); - connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()) ) ; + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ) ; } } updateViewer(); @@ -706,20 +714,23 @@ void RepairGUI_GlueDlg::updateButtonState() { int anId = getConstructorId(); bool hasMainObj = !myObject->_is_nil(); - if ( anId == 0 ) - { - buttonOk->setEnabled( hasMainObj ); - buttonApply->setEnabled( hasMainObj ); + if ( anId == 0 ) { + buttonOk()->setEnabled( hasMainObj ); + buttonApply()->setEnabled( hasMainObj ); } else { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + bool wasSelected = false; - SALOME_ListIteratorOfListIO it ( selectedIO() ); + SALOME_ListIteratorOfListIO it (aSelList); if (it.More() > 0) wasSelected = true; bool wasDetected = myTmpObjs.size() ? true : false; - buttonOk->setEnabled( hasMainObj && wasDetected && wasSelected); - buttonApply->setEnabled( hasMainObj && wasDetected && wasSelected); + buttonOk()->setEnabled( hasMainObj && wasDetected && wasSelected ); + buttonApply()->setEnabled( hasMainObj && wasDetected && wasSelected ); mySubShapesChk->setEnabled( hasMainObj && wasDetected ); myDetectBtn->setEnabled( hasMainObj ); if ( !hasMainObj || !wasDetected ) @@ -734,7 +745,7 @@ void RepairGUI_GlueDlg::updateButtonState() void RepairGUI_GlueDlg::clearTemporary() { ObjectList::iterator anIter; - for (anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter) + for ( anIter = myTmpObjs.begin(); anIter != myTmpObjs.end(); ++anIter ) getGeomEngine()->RemoveObject(*anIter); myTmpObjs.clear(); @@ -772,42 +783,3 @@ void RepairGUI_GlueDlg::ClickOnCancel() clearTemporary(); GEOMBase_Skeleton::ClickOnCancel(); } - -//================================================================ -// Function : getEntry -// Purpose : -//================================================================ -static string getEntry( GEOM::GEOM_Object_ptr object ) -{ - SUIT_Session* session = SUIT_Session::session(); - SalomeApp_Application* app = dynamic_cast( session->activeApplication() ); - if ( app ) - { - string IOR = app->orb()->object_to_string( object ); - if ( IOR != "" ) - { - SalomeApp_Study* study = ( SalomeApp_Study* )app->activeStudy(); - _PTR(SObject) SO ( study->studyDS()->FindObjectIOR( IOR ) ); - if ( SO ) - return SO->GetID(); - } - } - return ""; -} - - - - - - - - - - - - - - - - - diff --git a/src/RepairGUI/RepairGUI_GlueDlg.h b/src/RepairGUI/RepairGUI_GlueDlg.h index eef24c2ca..8d838ab85 100644 --- a/src/RepairGUI/RepairGUI_GlueDlg.h +++ b/src/RepairGUI/RepairGUI_GlueDlg.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,21 +17,20 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_GlueDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : RepairGUI_GlueDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +#ifndef REPAIRGUI_GLUEDLG_H +#define REPAIRGUI_GLUEDLG_H -#ifndef DIALOGBOX_Glue_H -#define DIALOGBOX_Glue_H +#include -#include "GEOMBase_Skeleton.h" - -class QtxDblSpinBox; -class DlgRef_1Sel_Ext; +class DlgRef_1SelExt; +class SalomeApp_DoubleSpinBox; +class QPushButton; class QCheckBox; //================================================================================= @@ -40,68 +39,66 @@ class QCheckBox; //================================================================================= class RepairGUI_GlueDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - RepairGUI_GlueDlg( GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); - ~RepairGUI_GlueDlg(); + RepairGUI_GlueDlg( GeometryGUI*, QWidget* = 0, bool = false ); + ~RepairGUI_GlueDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void restoreSubShapes( SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr ); private: - void Init(); - void enterEvent(QEvent* e); - void closeEvent(QCloseEvent* e); - void initSelection(); - - void clearTemporary(); - - bool onAcceptLocal(); - void clearShapeBufferLocal( GEOM::GEOM_Object_ptr ); - // Reimplementation of onAccept for local case of this class. - - void activateSelection(); - void updateButtonState(); - void selectTmpInViewer(); + void Init(); + void enterEvent( QEvent* ); + void initSelection(); + + void clearTemporary(); + + bool onAcceptLocal(); + void clearShapeBufferLocal( GEOM::GEOM_Object_ptr ); + // Reimplementation of onAccept for local case of this class. + + void activateSelection(); + void updateButtonState(); + void selectTmpInViewer(); private: - - GEOM::GEOM_Object_var myObject; - ObjectList myTmpObjs; + GEOM::GEOM_Object_var myObject; + ObjectList myTmpObjs; - DlgRef_1Sel_Ext* GroupPoints; - DlgRef_1Sel_Ext* GroupPoints2; - QtxDblSpinBox* myTolEdt; - QtxDblSpinBox* myTolEdt2; - QPushButton* myDetectBtn; - QCheckBox* mySubShapesChk; - - int myCurrConstrId; + DlgRef_1SelExt* GroupPoints; + DlgRef_1SelExt* GroupPoints2; + SalomeApp_DoubleSpinBox* myTolEdt; + SalomeApp_DoubleSpinBox* myTolEdt2; + QPushButton* myDetectBtn; + QCheckBox* mySubShapesChk; + + int myCurrConstrId; protected slots: - virtual void ClickOnCancel(); + virtual void ClickOnCancel(); private slots: - void ClickOnOk(); - bool ClickOnApply(); + void ClickOnOk(); + bool ClickOnApply(); - void ActivateThisDialog(); + void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); - void ConstructorsClicked(int); - //void ValueChangedInSpinBox(); - - void onDetect(); - void onTolerChanged( double ); - void onSubShapesChk(); + void ConstructorsClicked( int ); + //void ValueChangedInSpinBox(); + + void onDetect(); + void onTolerChanged( double ); + void onSubShapesChk(); }; -#endif // DIALOGBOX_Glue_H +#endif // REPAIRGUI_GLUEDLG_H diff --git a/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.cxx b/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.cxx index 930fb95c4..850926fe6 100644 --- a/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.cxx +++ b/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.cxx @@ -1,36 +1,43 @@ -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM RepairGUI : GUI for Geometry component // File : RepairGUI_RemoveExtraEdgesDlg.cxx -// Author : Michael Zorin -// Module : GEOM -// $Header: - +// Author : Michael Zorin, Open CASCADE S.A.S. +// #include "RepairGUI_RemoveExtraEdgesDlg.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SUIT_Session.h" +#include +#include +#include -#include "GEOMImpl_Types.hxx" +#include +#include +#include +#include + +#include #include -#include - -using namespace std; - //================================================================================= // class : RepairGUI_RemoveExtraEdgesDlg() // purpose : Constructs a RepairGUI_RemoveExtraEdgesDlg which is a child of 'parent', with the @@ -38,32 +45,37 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -RepairGUI_RemoveExtraEdgesDlg::RepairGUI_RemoveExtraEdgesDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +RepairGUI_RemoveExtraEdgesDlg::RepairGUI_RemoveExtraEdgesDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_REMOVE_EXTRA_EDGES"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr(); + QPixmap image0( aResMgr->loadPixmap( "GEOM", tr( "ICON_DLG_REMOVE_EXTRA_EDGES" ) ) ); + QPixmap image1( aResMgr->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_REMOVE_EXTRA_EDGES_TITLE")); + setWindowTitle( tr( "GEOM_REMOVE_EXTRA_EDGES_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_REMOVE_EXTRA_EDGES_TITLE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_REMOVE_EXTRA_EDGES_TITLE")); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel_QTD(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_REMOVE_EXTRA_EDGES")); - GroupPoints->TextLabel1->setText(tr("GEOM_SELECTED_SHAPE")); - GroupPoints->PushButton1->setPixmap(image1); + GroupPoints = new DlgRef_1Sel( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_REMOVE_EXTRA_EDGES" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_SELECTED_SHAPE" ) ); + GroupPoints->PushButton1->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupPoints, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); + /***************************************************************/ - setHelpFileName("remove_extra_edges_operation_page.html"); + setHelpFileName( "remove_extra_edges_operation_page.html" ); Init(); } @@ -91,15 +103,17 @@ void RepairGUI_RemoveExtraEdgesDlg::Init() activateSelection(); + mainFrame()->GroupBoxPublish->show(); + /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); initName( tr( "REMOVE_EXTRA_EDGES_NEW_OBJ_NAME" ) ); } @@ -126,9 +140,11 @@ bool RepairGUI_RemoveExtraEdgesDlg::ClickOnApply() initName(); - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); + myOkObject = false; + activateSelection(); return true; @@ -142,12 +158,16 @@ bool RepairGUI_RemoveExtraEdgesDlg::ClickOnApply() //================================================================================= void RepairGUI_RemoveExtraEdgesDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); QString aName; - if(myEditCurrentArgument == GroupPoints->LineEdit1) { - if (IObjectCount() != 1) { - if (myEditCurrentArgument == GroupPoints->LineEdit1) + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) { + if ( aSelList.Extent() != 1 ) { + if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myOkObject = false; return; } @@ -156,12 +176,12 @@ void RepairGUI_RemoveExtraEdgesDlg::SelectionIntoArgument() // nbSel == 1 Standard_Boolean testResult = Standard_False; GEOM::GEOM_Object_ptr aSelectedObject = - GEOMBase::ConvertIOinGEOMObject( firstIObject(), testResult ); + GEOMBase::ConvertIOinGEOMObject( aSelList.First(), testResult ); - if (!testResult) + if ( !testResult ) return; - if (myEditCurrentArgument == GroupPoints->LineEdit1) { + if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) { myObject = aSelectedObject; myOkObject = true; } @@ -175,8 +195,7 @@ void RepairGUI_RemoveExtraEdgesDlg::SelectionIntoArgument() //================================================================================= void RepairGUI_RemoveExtraEdgesDlg::SetEditCurrentArgument() { - if( sender() == GroupPoints->PushButton1 ) - { + if( sender() == GroupPoints->PushButton1 ) { GroupPoints->LineEdit1->setFocus(); myEditCurrentArgument = GroupPoints->LineEdit1; } @@ -190,8 +209,7 @@ void RepairGUI_RemoveExtraEdgesDlg::SetEditCurrentArgument() //================================================================================= void RepairGUI_RemoveExtraEdgesDlg::LineEditReturnPressed() { - if( sender() == GroupPoints->LineEdit1 ) - { + if ( sender() == GroupPoints->LineEdit1 ) { myEditCurrentArgument = GroupPoints->LineEdit1; GEOMBase_Skeleton::LineEditReturnPressed(); } @@ -205,8 +223,8 @@ void RepairGUI_RemoveExtraEdgesDlg::LineEditReturnPressed() void RepairGUI_RemoveExtraEdgesDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); activateSelection(); } @@ -218,20 +236,11 @@ void RepairGUI_RemoveExtraEdgesDlg::ActivateThisDialog() //================================================================================= void RepairGUI_RemoveExtraEdgesDlg::enterEvent(QEvent* e) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void RepairGUI_RemoveExtraEdgesDlg::closeEvent(QCloseEvent* e) -{ - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : activateSelection // purpose : activate selection of solids and compounds @@ -270,10 +279,25 @@ bool RepairGUI_RemoveExtraEdgesDlg::execute( ObjectList& objects ) { GEOM::GEOM_Object_var anObj; - anObj = GEOM::GEOM_IBlocksOperations::_narrow(getOperation())->RemoveExtraEdges(myObject); + anObj = GEOM::GEOM_IBlocksOperations::_narrow( getOperation() )->RemoveExtraEdges( myObject ); if ( !anObj->_is_nil() ) objects.push_back( anObj._retn() ); return true; } + +//================================================================================= +// function : restoreSubShapes +// purpose : +//================================================================================= +void RepairGUI_RemoveExtraEdgesDlg::restoreSubShapes( SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject ) +{ + if ( mainFrame()->CheckBoxRestoreSS->isChecked() ) { + // empty list of arguments means that all arguments should be restored + getGeomEngine()->RestoreSubShapesSO( theStudy, theSObject, GEOM::ListOfGO(), + /*theFindMethod=*/GEOM::FSM_GetInPlace, // ? GetInPlaceByHistory + /*theInheritFirstArg=*/true ); + } +} diff --git a/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.h b/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.h index 41c881eec..ffc49ce26 100644 --- a/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.h +++ b/src/RepairGUI/RepairGUI_RemoveExtraEdgesDlg.h @@ -1,35 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component // File : RepairGUI_RemoveExtraEdgesDlg.h -// Author : Michael ZORIN -// Module : GEOM +// Author : Michael ZORIN, Open CASCADE S.A.S. +// +#ifndef REPAIRGUI_REMOVEEXTRAEDGESDLG_H +#define REPAIRGUI_REMOVEEXTRAEDGESDLG_H -#ifndef DIALOGBOX_REMOVEEXTRAEDGES_H -#define DIALOGBOX_REMOVEEXTRAEDGES_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_QTD.h" +class DlgRef_1Sel; //================================================================================= // class : RepairGUI_RemoveExtraEdgesDlg @@ -37,41 +36,39 @@ //================================================================================= class RepairGUI_RemoveExtraEdgesDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - RepairGUI_RemoveExtraEdgesDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~RepairGUI_RemoveExtraEdgesDlg(); + RepairGUI_RemoveExtraEdgesDlg( GeometryGUI*, QWidget* = 0, bool = false ); + ~RepairGUI_RemoveExtraEdgesDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void restoreSubShapes( SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr ); -private : - void Init(); - void enterEvent(QEvent* e); - void closeEvent(QCloseEvent* e); +private: + void Init(); + void enterEvent( QEvent* ); + void activateSelection(); - void activateSelection(); - - GEOM::GEOM_Object_var myObject; - bool myOkObject; - - DlgRef_1Sel_QTD* GroupPoints; +private: + GEOM::GEOM_Object_var myObject; + bool myOkObject; + DlgRef_1Sel* GroupPoints; private slots: - void ClickOnOk(); - bool ClickOnApply(); + void ClickOnOk(); + bool ClickOnApply(); - void ActivateThisDialog(); + void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_REMOVEEXTRAEDGES_H +#endif // REPAIRGUI_REMOVEEXTRAEDGESDLG_H diff --git a/src/RepairGUI/RepairGUI_RemoveHolesDlg.cxx b/src/RepairGUI/RepairGUI_RemoveHolesDlg.cxx index 44b22b5ef..3ef74ca4a 100644 --- a/src/RepairGUI/RepairGUI_RemoveHolesDlg.cxx +++ b/src/RepairGUI/RepairGUI_RemoveHolesDlg.cxx @@ -1,46 +1,46 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_RemoveHolesDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : RepairGUI_RemoveHolesDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "RepairGUI_RemoveHolesDlg.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SUIT_MessageBox.h" -#include "SUIT_Session.h" +#include +#include +#include -#include "SALOME_ListIteratorOfListIO.hxx" - -#include "GEOMImpl_Types.hxx" +#include +#include +#include +#include +#include +// OCCT Includes #include #include +#include -using namespace std; +#include //================================================================================= // class : RepairGUI_RemoveHolesDlg() @@ -49,60 +49,42 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -RepairGUI_RemoveHolesDlg::RepairGUI_RemoveHolesDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +RepairGUI_RemoveHolesDlg::RepairGUI_RemoveHolesDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SUPPRESS_HOLES"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_SUPPRESS_HOLES"))); + QPixmap image1 (SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_REMOVE_HOLES_TITLE")); + setWindowTitle(tr("GEOM_REMOVE_HOLES_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_REMOVE_HOLES_TITLE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_REMOVE_HOLES_TITLE")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel_Ext(this, "GroupPoints"); + GroupPoints = new DlgRef_1Sel1Check1Sel(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_HOLES")); GroupPoints->TextLabel1->setText(tr("GEOM_SELECTED_SHAPE")); - GroupPoints->PushButton1->setPixmap(image1); - GroupPoints->LineEdit1->setReadOnly( true ); + GroupPoints->PushButton1->setIcon(image1); + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->CheckButton1->setText(tr("GEOM_REMOVE_ALL_HOLES")); + GroupPoints->TextLabel2->setText(tr("GEOM_WIRES_TO_REMOVE")); + GroupPoints->PushButton2->setIcon(image1); + GroupPoints->LineEdit2->setReadOnly(true); - Layout1->addWidget(GroupPoints, 2, 0); + myFreeBoundBtn = new QPushButton(tr("GEOM_DETECT") + QString(" [%1]").arg(tr("GEOM_FREE_BOUNDARIES")), + GroupPoints->Box); + QVBoxLayout* l = new QVBoxLayout(GroupPoints->Box); + l->setMargin(0); l->setSpacing(0); + l->addWidget(myFreeBoundBtn); - myAllChk = new QCheckBox( tr( "GEOM_REMOVE_ALL_HOLES" ), GroupPoints->GroupBox1 ); - - QGridLayout* aSelectWiresLay = new QGridLayout( 0, 1, 1, 0, 6, "aSelectWiresLay"); - - mySelectWiresBtn = new QPushButton( GroupPoints->GroupBox1, "mySelectWiresBtn" ); - mySelectWiresBtn->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, mySelectWiresBtn->sizePolicy().hasHeightForWidth() ) ); - mySelectWiresBtn->setText( trUtf8( "" ) ); - mySelectWiresBtn->setPixmap(image1); - - mySelectWiresEdt = new QLineEdit( GroupPoints->GroupBox1, "mySelectWiresEdt" ); - mySelectWiresEdt->setReadOnly( true ); - - mySelectWiresLbl = new QLabel( tr( "GEOM_WIRES_TO_REMOVE" ), GroupPoints->GroupBox1, "TextLabel1" ); - mySelectWiresLbl->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, mySelectWiresLbl->sizePolicy().hasHeightForWidth() ) ); - - aSelectWiresLay->addWidget( mySelectWiresLbl, 0, 0 ); - aSelectWiresLay->addWidget( mySelectWiresBtn, 0, 1 ); - aSelectWiresLay->addWidget( mySelectWiresEdt, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - aSelectWiresLay->addItem( spacer, 1, 2 ); - - QGridLayout* aDetectLay = new QGridLayout( 0, 1, 1, 0, 6, "aDetectLay" ); - myFreeBoundBtn = new QPushButton( tr( "GEOM_DETECT" ), GroupPoints->GroupBox1 ); - QLabel* aLbl = new QLabel( tr( "GEOM_FREE_BOUNDARIES" ), GroupPoints->GroupBox1 ); - aDetectLay->addWidget( aLbl, 0, 0 ); - aDetectLay->addWidget( myFreeBoundBtn, 0, 1 ); - - GroupPoints->getGroupBoxLayout()->addMultiCellWidget( myAllChk, 1, 1, 0, 2 ); - GroupPoints->getGroupBoxLayout()->addLayout( aSelectWiresLay, 2, 0 ); - GroupPoints->getGroupBoxLayout()->addLayout( aDetectLay, 3, 0 ); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); /***************************************************************/ setHelpFileName("suppress_holes_operation_page.html"); @@ -110,7 +92,6 @@ RepairGUI_RemoveHolesDlg::RepairGUI_RemoveHolesDlg(GeometryGUI* theGeometryGUI, Init(); } - //================================================================================= // function : ~RepairGUI_RemoveHolesDlg() // purpose : Destroys the object and frees any allocated resources @@ -119,52 +100,49 @@ RepairGUI_RemoveHolesDlg::~RepairGUI_RemoveHolesDlg() { } - //================================================================================= // function : Init() // purpose : //================================================================================= void RepairGUI_RemoveHolesDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - + // init variables + GroupPoints->LineEdit1->clear(); + GroupPoints->LineEdit2->clear(); myObject = GEOM::GEOM_Object::_nil(); myWiresInd = new GEOM::short_array(); - myWiresInd->length( 0 ); - - //myGeomGUI->SetState( 0 ); - initSelection(); + myWiresInd->length(0); myClosed = -1; myOpen = -1; - - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(mySelectWiresBtn, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(mySelectWiresEdt, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect( myAllChk, SIGNAL( clicked() ), this, SLOT( onRemoveAllClicked() ) ); - connect( myFreeBoundBtn, SIGNAL(clicked()), this, SLOT(onDetect()) ); + connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - initName( tr( "REMOVE_HOLES_NEW_OBJ_NAME" ) ); + connect(GroupPoints->CheckButton1, SIGNAL(clicked()), this, SLOT(onRemoveAllClicked())); + + connect(myFreeBoundBtn, SIGNAL(clicked()), this, SLOT(onDetect())); + + initName(tr("REMOVE_HOLES_NEW_OBJ_NAME")); + + GroupPoints->PushButton1->click(); + SelectionIntoArgument(); } - //================================================================================= // function : ClickOnOk() // purpose : Same than click on apply but close this dialog. //================================================================================= void RepairGUI_RemoveHolesDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } @@ -174,57 +152,65 @@ void RepairGUI_RemoveHolesDlg::ClickOnOk() //================================================================================= bool RepairGUI_RemoveHolesDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); - - myEditCurrentArgument = GroupPoints->LineEdit1; - myEditCurrentArgument->setText(""); - mySelectWiresEdt->setText(""); - myObject = GEOM::GEOM_Object::_nil(); - myWiresInd->length( 0 ); - - initSelection(); - + // activate first line edit + GroupPoints->PushButton1->click(); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void RepairGUI_RemoveHolesDlg::SelectionIntoArgument() { erasePreview(); myEditCurrentArgument->setText(""); - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myObject = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == mySelectWiresEdt ) myWiresInd->length( 0 ); + // the second argument depends on the first one + GroupPoints->LineEdit2->setText(""); + myWiresInd->length(0); - if ( IObjectCount() == 1 ) - { - Handle(SALOME_InteractiveObject) anIO = firstIObject(); + if (myEditCurrentArgument == GroupPoints->LineEdit1) + myObject = GEOM::GEOM_Object::_nil(); - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) // face selection - { + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() == 1) { + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { // face selection Standard_Boolean aRes; - myObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes ); - if ( aRes && GEOMBase::IsShape( myObject ) ) - myEditCurrentArgument->setText( GEOMBase::GetName( myObject ) ); + myObject = GEOMBase::ConvertIOinGEOMObject(anIO, aRes); + if (aRes && GEOMBase::IsShape(myObject)) { + myEditCurrentArgument->setText(GEOMBase::GetName(myObject)); + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (!GroupPoints->CheckButton1->isChecked()) + GroupPoints->PushButton2->click(); + } else myObject = GEOM::GEOM_Object::_nil(); } - else if ( myEditCurrentArgument == mySelectWiresEdt && !myAllChk->isChecked() ) - { + else if (myEditCurrentArgument == GroupPoints->LineEdit2 && + !GroupPoints->CheckButton1->isChecked()) { TColStd_IndexedMapOfInteger aMap; - ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->GetIndexes( anIO, aMap ); + aSelMgr->GetIndexes(anIO, aMap); const int n = aMap.Extent(); - myWiresInd->length( n ); - for ( int i = 1; i <= n; i++ ) - myWiresInd[i-1] = aMap( i ); - if ( n ) - myEditCurrentArgument->setText( QString::number( n ) + "_" + tr( "GEOM_WIRE" ) + tr( "_S_" ) ); + myWiresInd->length(n); + for (int i = 1; i <= n; i++) + myWiresInd[i-1] = aMap(i); + if (n) + myEditCurrentArgument->setText(QString::number(n) + "_" + tr("GEOM_WIRE") + tr("_S_")); } } } @@ -235,20 +221,36 @@ void RepairGUI_RemoveHolesDlg::SelectionIntoArgument() //================================================================================= void RepairGUI_RemoveHolesDlg::SetEditCurrentArgument() { - const QObject* send = sender(); - if ( send == GroupPoints->PushButton1 ) - myEditCurrentArgument = GroupPoints->LineEdit1; - else if ( send == mySelectWiresBtn && !myObject->_is_nil() ) - myEditCurrentArgument = mySelectWiresEdt; - if ( myEditCurrentArgument ) - { + QPushButton* send = (QPushButton*)sender(); + + bool isEffective = false; + + if (send == GroupPoints->PushButton1) { + isEffective = true; + myEditCurrentArgument = GroupPoints->LineEdit1; + + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + } + else if (send == GroupPoints->PushButton2 && !myObject->_is_nil()) { + isEffective = true; + myEditCurrentArgument = GroupPoints->LineEdit2; + + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + } + + if (isEffective) { initSelection(); + + // enable line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); } } - //================================================================================= // function : LineEditReturnPressed() // purpose : @@ -256,14 +258,12 @@ void RepairGUI_RemoveHolesDlg::SetEditCurrentArgument() void RepairGUI_RemoveHolesDlg::LineEditReturnPressed() { const QObject* send = sender(); - if( send == GroupPoints->LineEdit1 || send == mySelectWiresEdt ) - { + if (send == GroupPoints->LineEdit1 || send == GroupPoints->LineEdit2) { myEditCurrentArgument = (QLineEdit*)send; GEOMBase_Skeleton::LineEditReturnPressed(); } } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -271,97 +271,86 @@ void RepairGUI_RemoveHolesDlg::LineEditReturnPressed() void RepairGUI_RemoveHolesDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); myEditCurrentArgument = GroupPoints->LineEdit1; - myEditCurrentArgument->setText(""); - mySelectWiresEdt->setText(""); + myEditCurrentArgument->setText( "" ); + GroupPoints->LineEdit2->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); myWiresInd->length( 0 ); myClosed = -1; myOpen = -1; - //myGeomGUI->SetState( 0 ); initSelection(); } - //================================================================================= // function : enterEvent() // purpose : Mouse enter onto the dialog to activate it //================================================================================= -void RepairGUI_RemoveHolesDlg::enterEvent(QEvent* e) +void RepairGUI_RemoveHolesDlg::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void RepairGUI_RemoveHolesDlg::closeEvent(QCloseEvent* e) -{ - //myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : createOperation // purpose : //================================================================================= GEOM::GEOM_IOperations_ptr RepairGUI_RemoveHolesDlg::createOperation() { - return getGeomEngine()->GetIHealingOperations( getStudyId() ); + return getGeomEngine()->GetIHealingOperations(getStudyId()); } //================================================================================= // function : isValid // purpose : //================================================================================= -bool RepairGUI_RemoveHolesDlg::isValid( QString& msg ) +bool RepairGUI_RemoveHolesDlg::isValid (QString&) { myClosed = -1; - return !myObject->_is_nil() && ( IsPreview() || myAllChk->isChecked() || myWiresInd->length() ); + return !myObject->_is_nil() && (IsPreview() || GroupPoints->CheckButton1->isChecked() || myWiresInd->length()); } //================================================================================= // function : execute // purpose : //================================================================================= -bool RepairGUI_RemoveHolesDlg::execute( ObjectList& objects ) +bool RepairGUI_RemoveHolesDlg::execute (ObjectList& objects) { bool aResult = false; - if ( IsPreview() ) // called from onDetect(): detect free boundary edges, highlight them (add to objects), display message dialog - { + + if (IsPreview()) { + // called from onDetect(): detect free boundary edges, + // highlight them (add to objects), display message dialog GEOM::ListOfGO_var aClosed, anOpen; - aResult = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )->GetFreeBoundary( myObject, aClosed, anOpen ); + aResult = GEOM::GEOM_IHealingOperations::_narrow(getOperation())-> + GetFreeBoundary(myObject, aClosed, anOpen); - if ( aResult ) - { + if (aResult) { myClosed = aClosed->length(); myOpen = anOpen->length(); int i; - for ( i = 0; i < myClosed; i++ ) - objects.push_back( aClosed[i]._retn() ); - for ( i = 0; i < myOpen; i++ ) - objects.push_back( anOpen[i]._retn() ); + for (i = 0; i < myClosed; i++) + objects.push_back(aClosed[i]._retn()); + for (i = 0; i < myOpen; i++) + objects.push_back(anOpen[i]._retn()); } else myClosed = -1; } - else - { - GEOM::GEOM_Object_var anObj = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )->FillHoles( myObject, myWiresInd ); + else { + GEOM::GEOM_Object_var anObj = GEOM::GEOM_IHealingOperations::_narrow(getOperation())-> + FillHoles(myObject, myWiresInd); aResult = !anObj->_is_nil(); - if ( aResult ) - objects.push_back( anObj._retn() ); + if (aResult) + objects.push_back(anObj._retn()); } - + return aResult; } @@ -371,14 +360,13 @@ bool RepairGUI_RemoveHolesDlg::execute( ObjectList& objects ) //================================================================================= void RepairGUI_RemoveHolesDlg::onRemoveAllClicked() { - bool b = myAllChk->isOn(); - mySelectWiresLbl->setEnabled( !b ); - mySelectWiresBtn->setEnabled( !b ); - mySelectWiresEdt->setEnabled( !b ); - if ( b ) - { - mySelectWiresEdt->setText( "" ); - myWiresInd->length( 0 ); + bool b = GroupPoints->CheckButton1->isChecked(); + GroupPoints->TextLabel2->setEnabled(!b); + GroupPoints->PushButton2->setEnabled(!b); + GroupPoints->LineEdit2->setEnabled(!b); + if (b) { + GroupPoints->LineEdit2->setText(""); + myWiresInd->length(0); } } @@ -388,23 +376,25 @@ void RepairGUI_RemoveHolesDlg::onRemoveAllClicked() //================================================================================= void RepairGUI_RemoveHolesDlg::initSelection() { - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) - { - TColStd_MapOfInteger aTypes; - aTypes.Add( GEOM_COMPOUND ); - aTypes.Add( GEOM_SOLID ); - aTypes.Add( GEOM_SHELL ); - aTypes.Add( GEOM_FACE ); - - globalSelection( aTypes ); - } - else if ( myEditCurrentArgument == mySelectWiresEdt ) - { - localSelection( myObject, TopAbs_EDGE ); - localSelection( myObject, TopAbs_WIRE ); - } -} + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + TColStd_MapOfInteger aTypes; + aTypes.Add(GEOM_COMPOUND); + aTypes.Add(GEOM_SOLID); + aTypes.Add(GEOM_SHELL); + aTypes.Add(GEOM_FACE); + + globalSelection(aTypes); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { + localSelection(myObject, TopAbs_EDGE); + localSelection(myObject, TopAbs_WIRE); + } + + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); +} //================================================================================= // function : onDetect @@ -412,14 +402,13 @@ void RepairGUI_RemoveHolesDlg::initSelection() //================================================================================= void RepairGUI_RemoveHolesDlg::onDetect() { - displayPreview( false, true, true, 3 ); + displayPreview(false, true, true, 3); // field myClosed,myOpen is initialized in execute() method, called by displayPreview(). QString msg; - if ( myClosed != -1 ) - msg = tr( "GEOM_FREE_BOUNDS_MSG" ).arg( myClosed + myOpen ).arg( myClosed ).arg( myOpen ); + if (myClosed != -1) + msg = tr("GEOM_FREE_BOUNDS_MSG").arg(myClosed + myOpen).arg(myClosed).arg(myOpen); else - msg = tr( "GEOM_FREE_BOUNDS_ERROR" ); - SUIT_MessageBox::info1( this, tr( "GEOM_FREE_BOUNDS_TLT" ), msg, "Close" ); + msg = tr("GEOM_FREE_BOUNDS_ERROR"); + SUIT_MessageBox::information(this, tr("GEOM_FREE_BOUNDS_TLT"), msg); } - diff --git a/src/RepairGUI/RepairGUI_RemoveHolesDlg.h b/src/RepairGUI/RepairGUI_RemoveHolesDlg.h index 88a853d41..efe07f6a1 100644 --- a/src/RepairGUI/RepairGUI_RemoveHolesDlg.h +++ b/src/RepairGUI/RepairGUI_RemoveHolesDlg.h @@ -1,42 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : RepairGUI_RemoveHolesDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_RemoveHolesDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef REPAIRGUI_REMOVEHOLESDLG_H +#define REPAIRGUI_REMOVEHOLESDLG_H -#ifndef DIALOGBOX_RemoveHoles_H -#define DIALOGBOX_RemoveHoles_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_Ext.h" - -#include - -#include -#include -#include -#include +class DlgRef_1Sel1Check1Sel; +class QPushButton; //================================================================================= // class : RepairGUI_RemoveHolesDlg @@ -44,50 +37,45 @@ //================================================================================= class RepairGUI_RemoveHolesDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - RepairGUI_RemoveHolesDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~RepairGUI_RemoveHolesDlg(); + RepairGUI_RemoveHolesDlg( GeometryGUI*, QWidget* = 0, bool = false ); + ~RepairGUI_RemoveHolesDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); private: - void Init(); - void enterEvent(QEvent* e); - void closeEvent(QCloseEvent* e); - void initSelection(); - - GEOM::GEOM_Object_var myObject; - GEOM::short_array_var myWiresInd; - - DlgRef_1Sel_Ext* GroupPoints; - QCheckBox* myAllChk; - QLabel* mySelectWiresLbl; - QPushButton* mySelectWiresBtn; - QLineEdit* mySelectWiresEdt; - QPushButton* myFreeBoundBtn; - - int myClosed; // Number of free closed boundaries detected. Calculated in execute(), used in onDetect(). - int myOpen; // Number of free open boundaries detected. Calculated in execute(), used in onDetect(). + void Init(); + void enterEvent( QEvent* ); + void initSelection(); + +private: + GEOM::GEOM_Object_var myObject; + GEOM::short_array_var myWiresInd; + + DlgRef_1Sel1Check1Sel* GroupPoints; + QPushButton* myFreeBoundBtn; + + int myClosed; // Number of free closed boundaries detected. Calculated in execute(), used in onDetect(). + int myOpen; // Number of free open boundaries detected. Calculated in execute(), used in onDetect(). private slots: - void ClickOnOk(); - bool ClickOnApply(); + void ClickOnOk(); + bool ClickOnApply(); - void ActivateThisDialog(); + void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); - void onRemoveAllClicked(); - void onDetect(); + void onRemoveAllClicked(); + void onDetect(); }; -#endif // DIALOGBOX_RemoveHoles_H +#endif // REPAIRGUI_REMOVEHOLESDLG_H diff --git a/src/RepairGUI/RepairGUI_RemoveIntWiresDlg.cxx b/src/RepairGUI/RepairGUI_RemoveIntWiresDlg.cxx index 483d2a16d..8079b166d 100644 --- a/src/RepairGUI/RepairGUI_RemoveIntWiresDlg.cxx +++ b/src/RepairGUI/RepairGUI_RemoveIntWiresDlg.cxx @@ -1,44 +1,45 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_RemoveIntWiresDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : RepairGUI_RemoveIntWiresDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "RepairGUI_RemoveIntWiresDlg.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SUIT_Session.h" -#include "SALOME_ListIteratorOfListIO.hxx" +#include +#include +#include -#include "GEOMImpl_Types.hxx" +#include +#include +#include +#include +// OCCT Includes #include #include +#include -using namespace std; +#include //================================================================================= // class : RepairGUI_RemoveIntWiresDlg() @@ -47,53 +48,36 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -RepairGUI_RemoveIntWiresDlg::RepairGUI_RemoveIntWiresDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +RepairGUI_RemoveIntWiresDlg::RepairGUI_RemoveIntWiresDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal) { - QPixmap image0 (myGeomGUI->getApp()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SUPPRESS_INT_WIRES"))); - QPixmap image1 (myGeomGUI->getApp()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0 (myGeomGUI->getApp()->resourceMgr()->loadPixmap("GEOM", tr("ICON_DLG_SUPPRESS_INT_WIRES"))); + QPixmap image1 (myGeomGUI->getApp()->resourceMgr()->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_REMOVE_INTERNAL_WIRES_TITLE")); + setWindowTitle(tr("GEOM_REMOVE_INTERNAL_WIRES_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_REMOVE_INTERNAL_WIRES_TITLE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_REMOVE_INTERNAL_WIRES_TITLE")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel_Ext(this, "GroupPoints"); + GroupPoints = new DlgRef_1Sel1Check1Sel(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_INTERNAL_WIRES")); GroupPoints->TextLabel1->setText(tr("GEOM_SELECTED_FACE")); - GroupPoints->PushButton1->setPixmap(image1); - GroupPoints->LineEdit1->setReadOnly( true ); + GroupPoints->PushButton1->setIcon(image1); + GroupPoints->LineEdit1->setReadOnly(true); + GroupPoints->CheckButton1->setText(tr("GEOM_REMOVE_ALL_INT_WIRES")); + GroupPoints->TextLabel2->setText(tr("GEOM_WIRES_TO_REMOVE")); + GroupPoints->PushButton2->setIcon(image1); + GroupPoints->LineEdit2->setReadOnly(true); - Layout1->addWidget(GroupPoints, 2, 0); - - myAllChk = new QCheckBox( tr( "GEOM_REMOVE_ALL_INT_WIRES" ), GroupPoints->GroupBox1 ); - - QGridLayout* aSelectWiresLay = new QGridLayout( 0, 1, 1, 0, 6, "aSelectWiresLay"); - - mySelectWiresBtn = new QPushButton( GroupPoints->GroupBox1, "mySelectWiresBtn" ); - mySelectWiresBtn->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, mySelectWiresBtn->sizePolicy().hasHeightForWidth() ) ); - mySelectWiresBtn->setText( trUtf8( "" ) ); - mySelectWiresBtn->setPixmap(image1); - - mySelectWiresEdt = new QLineEdit( GroupPoints->GroupBox1, "mySelectWiresEdt" ); - mySelectWiresEdt->setReadOnly( true ); - - mySelectWiresLbl = new QLabel( tr( "GEOM_WIRES_TO_REMOVE" ), GroupPoints->GroupBox1, "TextLabel1" ); - mySelectWiresLbl->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, mySelectWiresLbl->sizePolicy().hasHeightForWidth() ) ); - - aSelectWiresLay->addWidget( mySelectWiresLbl, 0, 0 ); - aSelectWiresLay->addWidget( mySelectWiresBtn, 0, 1 ); - aSelectWiresLay->addWidget( mySelectWiresEdt, 0, 2 ); - QSpacerItem* spacer = new QSpacerItem( 0, 16, QSizePolicy::Minimum, QSizePolicy::Expanding ); - aSelectWiresLay->addItem( spacer, 1, 2 ); - - GroupPoints->getGroupBoxLayout()->addMultiCellWidget( myAllChk, 1, 1, 0, 2 ); - GroupPoints->getGroupBoxLayout()->addLayout( aSelectWiresLay, 2, 0 ); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); /***************************************************************/ setHelpFileName("suppress_internal_wires_operation_page.html"); @@ -101,7 +85,6 @@ RepairGUI_RemoveIntWiresDlg::RepairGUI_RemoveIntWiresDlg(GeometryGUI* theGeometr Init(); } - //================================================================================= // function : ~RepairGUI_RemoveIntWiresDlg() // purpose : Destroys the object and frees any allocated resources @@ -110,48 +93,44 @@ RepairGUI_RemoveIntWiresDlg::~RepairGUI_RemoveIntWiresDlg() { } - //================================================================================= // function : Init() // purpose : //================================================================================= void RepairGUI_RemoveIntWiresDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - + // init variables + GroupPoints->LineEdit1->clear(); + GroupPoints->LineEdit2->clear(); myObject = GEOM::GEOM_Object::_nil(); - myWiresInd = new GEOM::short_array(); - myWiresInd->length( 0 ); + myWiresInd = new GEOM::short_array(); + myWiresInd->length(0); - //myGeomGUI->SetState( 0 ); - initSelection(); + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(mySelectWiresBtn, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(mySelectWiresEdt, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect(GroupPoints->CheckButton1, SIGNAL(clicked()), this, SLOT(onRemoveAllClicked())); - connect( myAllChk, SIGNAL( clicked() ), this, SLOT( onRemoveAllClicked() ) ); + initName(tr("REMOVE_INT_WIRES_NEW_OBJ_NAME")); - initName( tr( "REMOVE_INT_WIRES_NEW_OBJ_NAME" ) ); + GroupPoints->PushButton1->click(); + SelectionIntoArgument(); } - //================================================================================= // function : ClickOnOk() // purpose : Same than click on apply but close this dialog. //================================================================================= void RepairGUI_RemoveIntWiresDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } @@ -161,58 +140,66 @@ void RepairGUI_RemoveIntWiresDlg::ClickOnOk() //================================================================================= bool RepairGUI_RemoveIntWiresDlg::ClickOnApply() { - if ( !onAccept() ) - return false; + if (!onAccept()) + return false; initName(); - - myEditCurrentArgument = GroupPoints->LineEdit1; - myEditCurrentArgument->setText(""); - mySelectWiresEdt->setText(""); - myObject = GEOM::GEOM_Object::_nil(); - myWiresInd->length( 0 ); - - initSelection(); - + // activate first line edit + GroupPoints->PushButton1->click(); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void RepairGUI_RemoveIntWiresDlg::SelectionIntoArgument() { myEditCurrentArgument->setText(""); - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) myObject = GEOM::GEOM_Object::_nil(); - else if ( myEditCurrentArgument == mySelectWiresEdt ) myWiresInd->length( 0 ); + // the second argument depends on the first one + GroupPoints->LineEdit2->setText(""); + myWiresInd->length(0); - if ( IObjectCount() == 1 ) - { - Handle(SALOME_InteractiveObject) anIO = firstIObject(); - - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) // face selection - { - Standard_Boolean aRes; - myObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes ); - if ( aRes && GEOMBase::IsShape( myObject ) ) - myEditCurrentArgument->setText( GEOMBase::GetName( myObject ) ); - else - myObject = GEOM::GEOM_Object::_nil(); - } - else if ( myEditCurrentArgument == mySelectWiresEdt && !myAllChk->isChecked() ) - { - TColStd_IndexedMapOfInteger aMap; - ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr()->GetIndexes( anIO, aMap ); - const int n = aMap.Extent(); - myWiresInd->length( n ); - for ( int i = 1; i <= n; i++ ) - myWiresInd[i-1] = aMap( i ); - if ( n ) - myEditCurrentArgument->setText( QString::number( n ) + "_" + tr( "GEOM_WIRE" ) + tr( "_S_" ) ); - } + if (myEditCurrentArgument == GroupPoints->LineEdit1) + myObject = GEOM::GEOM_Object::_nil(); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() == 1) { + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { // face selection + Standard_Boolean aRes; + myObject = GEOMBase::ConvertIOinGEOMObject(anIO, aRes); + if (aRes && GEOMBase::IsShape(myObject)) { + myEditCurrentArgument->setText(GEOMBase::GetName(myObject)); + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + if (!GroupPoints->CheckButton1->isChecked()) + GroupPoints->PushButton2->click(); + } + else + myObject = GEOM::GEOM_Object::_nil(); } + else if (myEditCurrentArgument == GroupPoints->LineEdit2 && + !GroupPoints->CheckButton1->isChecked()) { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(anIO, aMap); + const int n = aMap.Extent(); + myWiresInd->length(n); + for (int i = 1; i <= n; i++) + myWiresInd[i-1] = aMap(i); + if (n) + myEditCurrentArgument->setText(QString::number(n) + "_" + tr("GEOM_WIRE") + tr("_S_")); + } + } } //================================================================================= @@ -221,36 +208,49 @@ void RepairGUI_RemoveIntWiresDlg::SelectionIntoArgument() //================================================================================= void RepairGUI_RemoveIntWiresDlg::SetEditCurrentArgument() { - const QObject* send = sender(); - if ( send == GroupPoints->PushButton1 ) - myEditCurrentArgument = GroupPoints->LineEdit1; - else if ( send == mySelectWiresBtn && !myObject->_is_nil() ) - myEditCurrentArgument = mySelectWiresEdt; + QPushButton* send = (QPushButton*)sender(); - if ( myEditCurrentArgument ) - { - initSelection(); - myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + bool isEffective = false; + + if (send == GroupPoints->PushButton1) { + isEffective = true; + myEditCurrentArgument = GroupPoints->LineEdit1; + + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + } + else if (send == GroupPoints->PushButton2 && !myObject->_is_nil()) { + isEffective = true; + myEditCurrentArgument = GroupPoints->LineEdit2; + + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + } + + if (isEffective) { + initSelection(); + + // enable line edit + myEditCurrentArgument->setEnabled(true); + myEditCurrentArgument->setFocus(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); } } - //================================================================================= // function : LineEditReturnPressed() // purpose : //================================================================================= void RepairGUI_RemoveIntWiresDlg::LineEditReturnPressed() { - const QObject* send = sender(); - if( send == GroupPoints->LineEdit1 || send == mySelectWiresEdt ) - { + const QObject* send = sender(); + if (send == GroupPoints->LineEdit1 || send == GroupPoints->LineEdit2) { myEditCurrentArgument = (QLineEdit*)send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } + GEOMBase_Skeleton::LineEditReturnPressed(); + } } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -258,12 +258,12 @@ void RepairGUI_RemoveIntWiresDlg::LineEditReturnPressed() void RepairGUI_RemoveIntWiresDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); myEditCurrentArgument = GroupPoints->LineEdit1; - myEditCurrentArgument->setText(""); - mySelectWiresEdt->setText(""); + myEditCurrentArgument->setText( "" ); + GroupPoints->LineEdit2->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); myWiresInd->length( 0 ); @@ -275,51 +275,42 @@ void RepairGUI_RemoveIntWiresDlg::ActivateThisDialog() // function : enterEvent() // purpose : Mouse enter onto the dialog to activate it //================================================================================= -void RepairGUI_RemoveIntWiresDlg::enterEvent(QEvent* e) +void RepairGUI_RemoveIntWiresDlg::enterEvent (QEvent*) { - if ( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void RepairGUI_RemoveIntWiresDlg::closeEvent(QCloseEvent* e) -{ - //myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : createOperation // purpose : //================================================================================= GEOM::GEOM_IOperations_ptr RepairGUI_RemoveIntWiresDlg::createOperation() { - return getGeomEngine()->GetIHealingOperations( getStudyId() ); + return getGeomEngine()->GetIHealingOperations(getStudyId()); } //================================================================================= // function : isValid // purpose : //================================================================================= -bool RepairGUI_RemoveIntWiresDlg::isValid( QString& msg ) +bool RepairGUI_RemoveIntWiresDlg::isValid (QString&) { - return !myObject->_is_nil() && ( myAllChk->isChecked() || myWiresInd->length() ); + return !myObject->_is_nil() && (GroupPoints->CheckButton1->isChecked() || myWiresInd->length()); } //================================================================================= // function : execute // purpose : //================================================================================= -bool RepairGUI_RemoveIntWiresDlg::execute( ObjectList& objects ) +bool RepairGUI_RemoveIntWiresDlg::execute (ObjectList& objects) { - GEOM::GEOM_Object_var anObj = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )-> - RemoveIntWires( myObject, myWiresInd ); + GEOM::GEOM_Object_var anObj = GEOM::GEOM_IHealingOperations::_narrow(getOperation())-> + RemoveIntWires(myObject, myWiresInd); + bool aResult = !anObj->_is_nil(); - if ( aResult ) - objects.push_back( anObj._retn() ); + if (aResult) + objects.push_back(anObj._retn()); return aResult; } @@ -330,14 +321,13 @@ bool RepairGUI_RemoveIntWiresDlg::execute( ObjectList& objects ) //================================================================================= void RepairGUI_RemoveIntWiresDlg::onRemoveAllClicked() { - bool b = myAllChk->isOn(); - mySelectWiresLbl->setEnabled( !b ); - mySelectWiresBtn->setEnabled( !b ); - mySelectWiresEdt->setEnabled( !b ); - if ( b ) - { - mySelectWiresEdt->setText( "" ); - myWiresInd->length( 0 ); + bool b = GroupPoints->CheckButton1->isChecked(); + GroupPoints->TextLabel2->setEnabled(!b); + GroupPoints->PushButton2->setEnabled(!b); + GroupPoints->LineEdit2->setEnabled(!b); + if (b) { + GroupPoints->LineEdit2->setText(""); + myWiresInd->length(0); } } @@ -347,19 +337,22 @@ void RepairGUI_RemoveIntWiresDlg::onRemoveAllClicked() //================================================================================= void RepairGUI_RemoveIntWiresDlg::initSelection() { - if ( myEditCurrentArgument == GroupPoints->LineEdit1 ) - { - TColStd_MapOfInteger aTypes; - aTypes.Add( GEOM_COMPOUND ); - aTypes.Add( GEOM_SOLID ); - aTypes.Add( GEOM_SHELL ); - aTypes.Add( GEOM_FACE ); - - globalSelection( aTypes ); + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + TColStd_MapOfInteger aTypes; + aTypes.Add(GEOM_COMPOUND); + aTypes.Add(GEOM_SOLID); + aTypes.Add(GEOM_SHELL); + aTypes.Add(GEOM_FACE); + + globalSelection(aTypes); } - else if ( myEditCurrentArgument == mySelectWiresEdt ) - { - //localSelection( myObject, TopAbs_EDGE ); - localSelection( myObject, TopAbs_WIRE ); + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { + //localSelection(myObject, TopAbs_EDGE); + localSelection(myObject, TopAbs_WIRE); } + + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); } diff --git a/src/RepairGUI/RepairGUI_RemoveIntWiresDlg.h b/src/RepairGUI/RepairGUI_RemoveIntWiresDlg.h index 17cf0f364..838a6ecde 100644 --- a/src/RepairGUI/RepairGUI_RemoveIntWiresDlg.h +++ b/src/RepairGUI/RepairGUI_RemoveIntWiresDlg.h @@ -1,42 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : RepairGUI_RemoveIntWiresDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_RemoveIntWiresDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef REPAIRGUI_REMOVEINTWIRESDLG_H +#define REPAIRGUI_REMOVEINTWIRESDLG_H -#ifndef DIALOGBOX_RemoveIntWires_H -#define DIALOGBOX_RemoveIntWires_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_Ext.h" - -#include - -#include -#include -#include -#include +class DlgRef_1Sel1Check1Sel; //================================================================================= // class : RepairGUI_RemoveIntWiresDlg @@ -44,45 +36,40 @@ //================================================================================= class RepairGUI_RemoveIntWiresDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - RepairGUI_RemoveIntWiresDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~RepairGUI_RemoveIntWiresDlg(); - + RepairGUI_RemoveIntWiresDlg( GeometryGUI*, QWidget* = 0, bool = false ); + ~RepairGUI_RemoveIntWiresDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + private: - void Init(); - void enterEvent(QEvent* e); - void closeEvent(QCloseEvent* e); - void initSelection(); - - GEOM::GEOM_Object_var myObject; - GEOM::short_array_var myWiresInd; - - DlgRef_1Sel_Ext* GroupPoints; - QCheckBox* myAllChk; - QLabel* mySelectWiresLbl; - QPushButton* mySelectWiresBtn; - QLineEdit* mySelectWiresEdt; + void Init(); + void enterEvent( QEvent* ); + void initSelection(); + +private: + GEOM::GEOM_Object_var myObject; + GEOM::short_array_var myWiresInd; + + DlgRef_1Sel1Check1Sel* GroupPoints; private slots: - void ClickOnOk(); - bool ClickOnApply(); - - void ActivateThisDialog(); - - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - - void onRemoveAllClicked(); + void ClickOnOk(); + bool ClickOnApply(); + + void ActivateThisDialog(); + + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + + void onRemoveAllClicked(); }; -#endif // DIALOGBOX_RemoveIntWires_H +#endif // REPAIRGUI_REMOVEINTWIRESDLG_H diff --git a/src/RepairGUI/RepairGUI_SewingDlg.cxx b/src/RepairGUI/RepairGUI_SewingDlg.cxx index 78a12bbfb..a5d6465d9 100644 --- a/src/RepairGUI/RepairGUI_SewingDlg.cxx +++ b/src/RepairGUI/RepairGUI_SewingDlg.cxx @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,32 +17,32 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_SewingDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : RepairGUI_SewingDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "RepairGUI_SewingDlg.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SUIT_Session.h" -#include "SUIT_MessageBox.h" -#include "SALOME_ListIteratorOfListIO.hxx" +#include +#include +#include +#include -#include "GEOMImpl_Types.hxx" +#include +#include +#include +#include +#include + +#include #include #include #define DEFAULT_TOLERANCE_VALUE 1e-07 -using namespace std; - //================================================================================= // class : RepairGUI_SewingDlg() // purpose : Constructs a RepairGUI_SewingDlg which is a child of 'parent', with the @@ -50,46 +50,46 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -RepairGUI_SewingDlg::RepairGUI_SewingDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +RepairGUI_SewingDlg::RepairGUI_SewingDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SEWING"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_SEWING" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_SEWING_TITLE")); + setWindowTitle( tr( "GEOM_SEWING_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_SEWING_TITLE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_SEWING_TITLE" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel_Ext(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_SEWING")); - GroupPoints->TextLabel1->setText(tr("GEOM_SELECTED_SHAPE")); - GroupPoints->PushButton1->setPixmap(image1); + GroupPoints = new DlgRef_1SelExt( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_SEWING" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_SELECTED_SHAPE" ) ); + GroupPoints->PushButton1->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupPoints, 2, 0); - - QGridLayout* aLay = new QGridLayout( 0, 2, 2, 0, 6, "aLay" ); - myTolEdt = new QtxDblSpinBox( 0, 100, 1e-7, GroupPoints->GroupBox1 );//QAD_SpinBoxDbl( GroupPoints->GroupBox1, 0, 100, 1e-7, 10, 1e-10 ); - myTolEdt->setPrecision( 10 ); + QGridLayout* aLay = new QGridLayout( GroupPoints->Box ); + aLay->setMargin( 0 ); aLay->setSpacing( 6 ); + myTolEdt = new SalomeApp_DoubleSpinBox( 0.0, 100.0, DEFAULT_TOLERANCE_VALUE, 7, 10, GroupPoints->Box ); myTolEdt->setValue( DEFAULT_TOLERANCE_VALUE ); - QLabel* aLbl1 = new QLabel( tr( "GEOM_TOLERANCE" ), GroupPoints->GroupBox1 ); - myFreeBoundBtn = new QPushButton( tr( "GEOM_DETECT" ), GroupPoints->GroupBox1 ); - QLabel* aLbl2 = new QLabel( tr( "GEOM_FREE_BOUNDARIES" ), GroupPoints->GroupBox1 ); - aLay->addWidget( aLbl1, 0, 0 ); - aLay->addWidget( myTolEdt, 0, 1 ); - aLay->addWidget( aLbl2, 1, 0 ); - aLay->addWidget( myFreeBoundBtn, 1, 1 ); + QLabel* aLbl1 = new QLabel( tr( "GEOM_TOLERANCE" ), GroupPoints->Box ); + myFreeBoundBtn = new QPushButton( tr( "GEOM_DETECT" ) + QString( " [%1]" ).arg( tr( "GEOM_FREE_BOUNDARIES" ) ), + GroupPoints->Box ); + aLay->addWidget( aLbl1, 0, 0 ); + aLay->addWidget( myTolEdt, 0, 1 ); + aLay->addWidget( myFreeBoundBtn, 1, 0, 1, 2 ); - GroupPoints->getGroupBoxLayout()->addLayout( aLay, 3, 0 ); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); /***************************************************************/ - setHelpFileName("sewing_operation_page.html"); + setHelpFileName( "sewing_operation_page.html" ); Init(); } @@ -122,16 +122,16 @@ void RepairGUI_SewingDlg::Init() myOpen = -1; /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); - connect(myFreeBoundBtn, SIGNAL(clicked()), this, SLOT(onDetect())); + connect( myFreeBoundBtn, SIGNAL( clicked() ), this, SLOT( onDetect() ) ); initName( tr( "SEWING_NEW_OBJ_NAME" ) ); } @@ -158,7 +158,7 @@ bool RepairGUI_SewingDlg::ClickOnApply() initName(); - GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit1->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); initSelection(); @@ -174,12 +174,15 @@ bool RepairGUI_SewingDlg::ClickOnApply() void RepairGUI_SewingDlg::SelectionIntoArgument() { erasePreview(); - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); - if ( IObjectCount() == 1 ) - { - Handle(SALOME_InteractiveObject) anIO = firstIObject(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if ( aSelList.Extent() == 1 ) { + Handle(SALOME_InteractiveObject) anIO = aSelList.First(); Standard_Boolean aRes; myObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes ); if ( aRes ) @@ -194,8 +197,7 @@ void RepairGUI_SewingDlg::SelectionIntoArgument() void RepairGUI_SewingDlg::SetEditCurrentArgument() { const QObject* send = sender(); - if ( send == GroupPoints->PushButton1 ) - { + if ( send == GroupPoints->PushButton1 ) { myEditCurrentArgument->setFocus(); SelectionIntoArgument(); } @@ -209,8 +211,7 @@ void RepairGUI_SewingDlg::SetEditCurrentArgument() void RepairGUI_SewingDlg::LineEditReturnPressed() { const QObject* send = sender(); - if( send == GroupPoints->LineEdit1 ) - { + if( send == GroupPoints->LineEdit1 ) { myEditCurrentArgument = GroupPoints->LineEdit1; GEOMBase_Skeleton::LineEditReturnPressed(); } @@ -224,10 +225,10 @@ void RepairGUI_SewingDlg::LineEditReturnPressed() void RepairGUI_SewingDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); - GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit1->setText( "" ); myObject = GEOM::GEOM_Object::_nil(); myClosed = -1; @@ -242,23 +243,13 @@ void RepairGUI_SewingDlg::ActivateThisDialog() // function : enterEvent() // purpose : Mouse enter onto the dialog to activate it //================================================================================= -void RepairGUI_SewingDlg::enterEvent(QEvent* e) +void RepairGUI_SewingDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void RepairGUI_SewingDlg::closeEvent(QCloseEvent* e) -{ - //myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : createOperation // purpose : @@ -275,7 +266,8 @@ GEOM::GEOM_IOperations_ptr RepairGUI_SewingDlg::createOperation() bool RepairGUI_SewingDlg::isValid( QString& msg ) { myClosed = -1; - return !myObject->_is_nil() && ( IsPreview() || myTolEdt->value() > 0. ); + bool ok = myTolEdt->isValid( msg, !IsPreview() ); + return !myObject->_is_nil() && ( IsPreview() || myTolEdt->value() > 0. ) && ok; } //================================================================================= @@ -285,14 +277,12 @@ bool RepairGUI_SewingDlg::isValid( QString& msg ) bool RepairGUI_SewingDlg::execute( ObjectList& objects ) { bool aResult = false; - if ( IsPreview() ) // called from onDetect(): detect free boundary edges, highlight them (add to objects), display message dialog - { + if ( IsPreview() ) { // called from onDetect(): detect free boundary edges, highlight them (add to objects), display message dialog GEOM::ListOfGO_var aClosed, anOpen; aResult = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )->GetFreeBoundary( myObject, aClosed, anOpen ); - if ( aResult ) - { + if ( aResult ) { myClosed = aClosed->length(); myOpen = anOpen->length(); int i; @@ -304,12 +294,19 @@ bool RepairGUI_SewingDlg::execute( ObjectList& objects ) else myClosed = -1; } - else - { + else { GEOM::GEOM_Object_var anObj = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )->Sew( myObject, myTolEdt->value() ); aResult = !anObj->_is_nil(); if ( aResult ) + { + if ( !IsPreview() ) + { + QStringList aParameters; + aParameters << myTolEdt->text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } objects.push_back( anObj._retn() ); + } } return aResult; @@ -342,5 +339,5 @@ void RepairGUI_SewingDlg::onDetect() msg = tr( "GEOM_FREE_BOUNDS_MSG" ).arg( myClosed + myOpen ).arg( myClosed ).arg( myOpen ); else msg = tr( "GEOM_FREE_BOUNDS_ERROR" ); - SUIT_MessageBox::info1( this, tr( "GEOM_FREE_BOUNDS_TLT" ), msg, "Close" ); + SUIT_MessageBox::information( this, tr( "GEOM_FREE_BOUNDS_TLT" ), msg ); } diff --git a/src/RepairGUI/RepairGUI_SewingDlg.h b/src/RepairGUI/RepairGUI_SewingDlg.h index 54483c317..3bd6dfb7e 100644 --- a/src/RepairGUI/RepairGUI_SewingDlg.h +++ b/src/RepairGUI/RepairGUI_SewingDlg.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,27 +17,20 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_SewingDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// -// File : RepairGUI_SewingDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +#ifndef REPAIRGUI_SEWINGDLG_H +#define REPAIRGUI_SEWINGDLG_H -#ifndef DIALOGBOX_Sewing_H -#define DIALOGBOX_Sewing_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_Ext.h" -#include "QtxDblSpinBox.h" - -#include - -#include -#include -#include -#include +class DlgRef_1SelExt; +class SalomeApp_DoubleSpinBox; +class QPushButton; //================================================================================= // class : RepairGUI_SewingDlg @@ -45,45 +38,44 @@ //================================================================================= class RepairGUI_SewingDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - RepairGUI_SewingDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~RepairGUI_SewingDlg(); + RepairGUI_SewingDlg( GeometryGUI*, QWidget* = 0, bool = false ); + ~RepairGUI_SewingDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + +private: + void Init(); + void enterEvent( QEvent* ); + void initSelection(); private: - void Init(); - void enterEvent(QEvent* e); - void closeEvent(QCloseEvent* e); - void initSelection(); - - GEOM::GEOM_Object_var myObject; - - DlgRef_1Sel_Ext* GroupPoints; - QtxDblSpinBox* myTolEdt; - QPushButton* myFreeBoundBtn; - - int myClosed; // Number of free closed boundaries detected. Calculated in execute(), used in onDetect(). - int myOpen; // Number of free open boundaries detected. Calculated in execute(), used in onDetect(). + GEOM::GEOM_Object_var myObject; + DlgRef_1SelExt* GroupPoints; + SalomeApp_DoubleSpinBox* myTolEdt; + QPushButton* myFreeBoundBtn; + + int myClosed; // Number of free closed boundaries detected. Calculated in execute(), used in onDetect(). + int myOpen; // Number of free open boundaries detected. Calculated in execute(), used in onDetect(). + private slots: - void ClickOnOk(); - bool ClickOnApply(); - - void ActivateThisDialog(); - - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - - void onDetect(); + void ClickOnOk(); + bool ClickOnApply(); + + void ActivateThisDialog(); + + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + + void onDetect(); }; -#endif // DIALOGBOX_Sewing_H +#endif // REPAIRGUI_SEWINGDLG_H diff --git a/src/RepairGUI/RepairGUI_ShapeProcessDlg.cxx b/src/RepairGUI/RepairGUI_ShapeProcessDlg.cxx index f0533536b..1c4761341 100755 --- a/src/RepairGUI/RepairGUI_ShapeProcessDlg.cxx +++ b/src/RepairGUI/RepairGUI_ShapeProcessDlg.cxx @@ -1,49 +1,51 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_ShapeProcessDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : RepairGUI_ShapeProcessDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "RepairGUI_ShapeProcessDlg.h" -#include "GEOMImpl_Types.hxx" +#include +#include +#include +#include +#include -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SUIT_Session.h" -#include "SALOME_ListIteratorOfListIO.hxx" -#include "SALOME_ListIO.hxx" +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include - -using namespace std; +#include +#include //================================================================================= // class : RepairGUI_ShapeProcessDlg() @@ -52,12 +54,11 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -RepairGUI_ShapeProcessDlg::RepairGUI_ShapeProcessDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +RepairGUI_ShapeProcessDlg::RepairGUI_ShapeProcessDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal ) { - setHelpFileName("shape_processing_operation_page.html"); + setHelpFileName( "shape_processing_operation_page.html" ); init(); } @@ -80,265 +81,245 @@ void RepairGUI_ShapeProcessDlg::init() initParamsValues(); initSelection(); - setCaption(tr("GEOM_SHAPEPROCESS_TITLE")); + setWindowTitle( tr( "GEOM_SHAPEPROCESS_TITLE" ) ); - GroupConstructors->hide(); + mainFrame()->GroupConstructors->hide(); // select widget on the top - mySelectWdgt = new DlgRef_1Sel_QTD( this, "SelectedObjects" ); - mySelectWdgt->GroupBox1->setTitle( tr("GEOM_SHAPE") ); - mySelectWdgt->TextLabel1->setText( tr("GEOM_SELECTED_OBJECTS") ); - mySelectWdgt->PushButton1->setPixmap( SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")) ); + mySelectWdgt = new DlgRef_1Sel( centralWidget() ); + mySelectWdgt->GroupBox1->setTitle( tr( "GEOM_SHAPE" ) ); + mySelectWdgt->TextLabel1->setText( tr( "GEOM_SELECTED_OBJECTS" ) ); + mySelectWdgt->PushButton1->setIcon( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); mySelectWdgt->LineEdit1->setReadOnly( true ); - Layout1->addWidget( mySelectWdgt, 0, 0 ); - // layout the two group boxes in the middle, add a list of operations - QFrame* aMidFrame = new QFrame( this ); - QGridLayout* aMidLay = new QGridLayout( aMidFrame, 1, 3, 0, 5 ); - QGroupBox* anOperGr = new QGroupBox( tr("GEOM_OPERATIONS"), aMidFrame ); - QVBoxLayout* aOperLay = new QVBoxLayout( anOperGr, 0, 0 ); + QGroupBox* anOperGr = new QGroupBox( tr( "GEOM_OPERATIONS" ), centralWidget() ); - myOpList = new QListView( anOperGr ); - myOpList->setSorting( -1 ); - myOpList->addColumn( "Operations" ); - myOpList->header()->hide(); + // operations list widget + myOpList = new QListWidget( anOperGr ); + myOpList->setSortingEnabled( false ); + myOpList->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Expanding ) ); + + QVBoxLayout* aOperLay = new QVBoxLayout( anOperGr ); + aOperLay->setMargin( 9 ); aOperLay->addWidget( myOpList ); - QStringList::ConstIterator it = myOpLst.end(); - do // iterating from end to begin so to keep the order of items in the listview. - new QCheckListItem ( myOpList, *(--it), QCheckListItem::CheckBox ); - while ( it != myOpLst.begin() ); - QGroupBox* aParamsGr = new QGroupBox( tr("GEOM_PARAMETERS"), aMidFrame ); - aMidLay->addWidget( anOperGr, 0, 0 ); - aMidLay->addMultiCellWidget( aParamsGr, 0, 0, 1, 3 ); - aMidLay->setColStretch( 0, 1 ); - aMidLay->setColStretch( 1, 2 ); - - Layout1->addWidget( aMidFrame, 2, 0 ); - Layout1->setRowStretch( 0, 0 ); - Layout1->setRowStretch( 1, 1 ); + QGroupBox* aParamsGr = new QGroupBox( tr( "GEOM_PARAMETERS" ), centralWidget() ); // add a widget stack to the parameters group box - myStack = new QWidgetStack( aParamsGr ); - QVBoxLayout* aVParamsLay = new QVBoxLayout( aParamsGr ); - aVParamsLay->addWidget( myStack ); + QStackedLayout* aStack = new QStackedLayout( aParamsGr ); // continueties values.. - QStringList aContinueties = QStringList::split( ",", "C0,G1,C1,G2,C2,C3,CN" ); + QStringList aContinueties = QString( "C0,G1,C1,G2,C2,C3,CN" ).split( "," ); - // FixShape - QFrame* aFrame = new QFrame( myStack ); - QGridLayout* aLay = new QGridLayout( aFrame, 10, 2, 0, 5 ); + // fill in the widgets + for ( int i = 0; i < myOpLst.count(); i++ ) { + QListWidgetItem* item = new QListWidgetItem( myOpLst[i] ); + item->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable ); + item->setCheckState( Qt::Unchecked ); + myOpList->addItem( item ); - myFixShapeTol3D = new QtxDblSpinBox( 0, 100, 1e-7, aFrame );//QAD_SpinBoxDbl( aFrame, 0, 100, 1e-7, 10, 1e-10 ); - myFixShapeTol3D->setPrecision( 10 ); - myFixShapeMaxTol3D = new QtxDblSpinBox( 0, 100, 1e-7, aFrame );//QAD_SpinBoxDbl( aFrame, 0, 100, 1e-7, 10, 1e-10 ); - myFixShapeMaxTol3D->setPrecision( 10 ); - - aLay->addWidget( new QLabel( tr("GEOM_3D_TOLERANCE"), aFrame ), 0, 0 ); - aLay->addWidget( myFixShapeTol3D, 0, 1 ); - aLay->addWidget( new QLabel( tr("GEOM_MAX_3D_TOLERANCE"), aFrame ), 1, 0 ); - aLay->addWidget( myFixShapeMaxTol3D, 1, 1 ); - aLay->setRowStretch( 9, 2 ); - - myStack->addWidget( aFrame, myOpLst.findIndex( "FixShape" ) ); - - // FixFaceSize - aFrame = new QFrame( myStack ); - aLay = new QGridLayout( aFrame, 10, 2, 0, 5 ); - - myFixFaceSizeTol = new QtxDblSpinBox( 0, 100, 1e-7, aFrame );//QAD_SpinBoxDbl( aFrame, 0, 100, 1e-7, 10, 1e-10 ); - myFixFaceSizeTol->setPrecision( 10 ); - - aLay->addWidget( new QLabel( tr("GEOM_TOLERANCE"), aFrame ), 0, 0 ); - aLay->addWidget( myFixFaceSizeTol, 0, 1 ); - aLay->setRowStretch( 9, 2 ); - - myStack->addWidget( aFrame, myOpLst.findIndex( "FixFaceSize" ) ); - - // DropSmallEdges - aFrame = new QFrame( myStack ); - aLay = new QGridLayout( aFrame, 10, 2, 0, 5 ); - - myDropSmallEdgesTol3D = new QtxDblSpinBox( 0, 100, 1e-7, aFrame );//QAD_SpinBoxDbl( aFrame, 0, 100, 1e-7, 10, 1e-10 ); - myDropSmallEdgesTol3D->setPrecision( 10 ); + QWidget* w; + if ( myOpLst[i] == "FixShape" ) { + // FixShape + w = new QWidget( aParamsGr ); + QGridLayout* aLay = new QGridLayout( w ); + aLay->setMargin( 9 ); aLay->setSpacing( 6 ); + + myFixShapeTol3D = new SalomeApp_DoubleSpinBox( 0., 100., 1e-7, 10, 10, w ); + myFixShapeMaxTol3D = new SalomeApp_DoubleSpinBox( 0., 100., 1e-7, 10, 10, w ); + + aLay->addWidget( new QLabel( tr( "GEOM_3D_TOLERANCE" ), w ), 0, 0 ); + aLay->addWidget( myFixShapeTol3D, 0, 1 ); + aLay->addWidget( new QLabel( tr( "GEOM_MAX_3D_TOLERANCE" ), w ), 1, 0 ); + aLay->addWidget( myFixShapeMaxTol3D, 1, 1 ); + aLay->setRowStretch( aLay->rowCount(), 5 ); + } + else if ( myOpLst[i] == "FixFaceSize" ) { + // FixFaceSize + w = new QWidget( aParamsGr ); + QGridLayout* aLay = new QGridLayout( w ); + aLay->setMargin( 9 ); aLay->setSpacing( 6 ); + + myFixFaceSizeTol = new SalomeApp_DoubleSpinBox( 0., 100., 1e-7, 10, 10, w ); + + aLay->addWidget( new QLabel( tr( "GEOM_TOLERANCE" ), w ), 0, 0 ); + aLay->addWidget( myFixFaceSizeTol, 0, 1 ); + aLay->setRowStretch( aLay->rowCount(), 5 ); + } + else if ( myOpLst[i] == "DropSmallEdges" ) { + // DropSmallEdges + w = new QWidget( aParamsGr ); + QGridLayout* aLay = new QGridLayout( w ); + aLay->setMargin( 9 ); aLay->setSpacing( 6 ); + + myDropSmallEdgesTol3D = new SalomeApp_DoubleSpinBox( 0., 100., 1e-7, 10, 10, w ); - aLay->addWidget( new QLabel( tr("GEOM_3D_TOLERANCE"), aFrame ), 0, 0 ); - aLay->addWidget( myDropSmallEdgesTol3D, 0, 1 ); - aLay->setRowStretch( 9, 2 ); - - myStack->addWidget( aFrame, myOpLst.findIndex( "DropSmallEdges" ) ); - - // SplitAngle - aFrame = new QFrame( myStack ); - aLay = new QGridLayout( aFrame, 10, 2, 0, 5 ); - - mySplitAngleAngle = new QtxDblSpinBox( 0, 360, 1, aFrame );//QAD_SpinBoxDbl( aFrame, 0, 360, 1 ); - mySplitAngleMaxTol = new QtxDblSpinBox( 0, 100, 1e-7, aFrame );//QAD_SpinBoxDbl( aFrame, 0, 100, 1e-7, 10, 1e-10 ); - mySplitAngleMaxTol->setPrecision( 10 ); - - aLay->addWidget( new QLabel( tr("GEOM_ANGLE_1"), aFrame ), 0, 0 ); - aLay->addWidget( mySplitAngleAngle, 0, 1 ); - aLay->addWidget( new QLabel( tr("GEOM_MAX_TOLERANCE"), aFrame ), 1, 0 ); - aLay->addWidget( mySplitAngleMaxTol, 1, 1 ); - aLay->setRowStretch( 9, 2 ); - - myStack->addWidget( aFrame, myOpLst.findIndex( "SplitAngle" ) ); - - // SplitClosedFaces - aFrame = new QFrame( myStack ); - aLay = new QGridLayout( aFrame, 10, 2, 0, 5 ); - - mySplitClosedFacesNum = new QSpinBox( aFrame ); + aLay->addWidget( new QLabel( tr( "GEOM_3D_TOLERANCE" ), w ), 0, 0 ); + aLay->addWidget( myDropSmallEdgesTol3D, 0, 1 ); + aLay->setRowStretch( aLay->rowCount(), 5 ); + } + else if ( myOpLst[i] == "SplitAngle" ) { + // SplitAngle + w = new QWidget( aParamsGr ); + QGridLayout* aLay = new QGridLayout( w ); + aLay->setMargin( 9 ); aLay->setSpacing( 6 ); + + mySplitAngleAngle = new SalomeApp_DoubleSpinBox( 0, 360, 1, 10, 10, w ); + mySplitAngleMaxTol = new SalomeApp_DoubleSpinBox( 0., 100., 1e-7, 10, 10, w ); + + aLay->addWidget( new QLabel( tr( "GEOM_ANGLE_1" ), w ), 0, 0 ); + aLay->addWidget( mySplitAngleAngle, 0, 1 ); + aLay->addWidget( new QLabel( tr( "GEOM_MAX_TOLERANCE" ), w ), 1, 0 ); + aLay->addWidget( mySplitAngleMaxTol, 1, 1 ); + aLay->setRowStretch( aLay->rowCount(), 5 ); + } + else if ( myOpLst[i] == "SplitClosedFaces" ) { + // SplitClosedFaces + w = new QWidget( aParamsGr ); + QGridLayout* aLay = new QGridLayout( w ); + aLay->setMargin( 9 ); aLay->setSpacing( 6 ); + + mySplitClosedFacesNum = new SalomeApp_IntSpinBox( w ); - aLay->addWidget( new QLabel( tr("GEOM_NUM_SPLIT_POINTS"), aFrame ), 0, 0 ); - aLay->addWidget( mySplitClosedFacesNum, 0, 1 ); - aLay->setRowStretch( 9, 2 ); + aLay->addWidget( new QLabel( tr( "GEOM_NUM_SPLIT_POINTS" ), w ), 0, 0 ); + aLay->addWidget( mySplitClosedFacesNum, 0, 1 ); + aLay->setRowStretch( aLay->rowCount(), 5 ); + } + else if ( myOpLst[i] == "SplitContinuity" ) { + // SplitContinuity + w = new QWidget( aParamsGr ); + QGridLayout* aLay = new QGridLayout( w ); + aLay->setMargin( 9 ); aLay->setSpacing( 6 ); - myStack->addWidget( aFrame, myOpLst.findIndex( "SplitClosedFaces" ) ); + mySplitContTol3D = new SalomeApp_DoubleSpinBox( 0., 100., 1e-7, 10, 10, w ); + mySplitContSurfCont = new QComboBox( w ); + mySplitContSurfCont->addItems( aContinueties ); + mySplitContCurvCont = new QComboBox( w ); + mySplitContCurvCont->addItems( aContinueties ); + + aLay->addWidget( new QLabel( tr( "GEOM_3D_TOLERANCE" ), w ), 0, 0 ); + aLay->addWidget( mySplitContTol3D, 0, 1 ); + aLay->addWidget( new QLabel( tr( "GEOM_SURFACE_CONTINUTY" ), w ), 1, 0 ); + aLay->addWidget( mySplitContSurfCont, 1, 1 ); + aLay->addWidget( new QLabel( tr( "GEOM_CURVE_CONTINUTY" ), w ), 2, 0 ); + aLay->addWidget( mySplitContCurvCont, 2, 1 ); + aLay->setRowStretch( aLay->rowCount(), 5 ); + } + else if ( myOpLst[i] == "BSplineRestriction" ) { + // BSplineRestriction + w = new QWidget( aParamsGr ); + QGridLayout* aLay = new QGridLayout( w ); + aLay->setMargin( 9 ); aLay->setSpacing( 6 ); - // SplitContinuity - aFrame = new QFrame( myStack ); - aLay = new QGridLayout( aFrame, 10, 2, 0, 5 ); + myBSplineSurfModeChk = new QCheckBox( tr("GEOM_SURFACE_MODE"), w ); + myBSpline3DCurveChk = new QCheckBox( tr("GEOM_3D_CURVE_MODE"), w ); + myBSpline2DCurveChk = new QCheckBox( tr("GEOM_2D_CURVE_MODE"), w ); - mySplitContTol3D = new QtxDblSpinBox( 0, 100, 1e-7, aFrame );//QAD_SpinBoxDbl( aFrame, 0, 100, 1e-7, 10, 1e-10 ); - mySplitContTol3D->setPrecision( 10 ); - mySplitContSurfCont = new QComboBox( aFrame ); - mySplitContSurfCont->insertStringList( aContinueties ); - mySplitContCurvCont = new QComboBox( aFrame ); - mySplitContCurvCont->insertStringList( aContinueties ); + myBSplineTol3D = new SalomeApp_DoubleSpinBox( 0., 100., 1e-7, 10, 10, w ); + + myBSplineTol2D = new SalomeApp_DoubleSpinBox( 0., 100., 1e-7, 10, 10, w ); - aLay->addWidget( new QLabel( tr("GEOM_3D_TOLERANCE"), aFrame ), 0, 0 ); - aLay->addWidget( mySplitContTol3D, 0, 1 ); - aLay->addWidget( new QLabel( tr("GEOM_SURFACE_CONTINUTY"), aFrame ), 1, 0 ); - aLay->addWidget( mySplitContSurfCont, 1, 1 ); - aLay->addWidget( new QLabel( tr("GEOM_CURVE_CONTINUTY"), aFrame ), 2, 0 ); - aLay->addWidget( mySplitContCurvCont, 2, 1 ); - aLay->setRowStretch( 9, 2 ); + myBSplineDegree = new SalomeApp_IntSpinBox( w ); + myBSplineSegments = new SalomeApp_IntSpinBox( w ); + myBSpline2DCont = new QComboBox( w ); + myBSpline2DCont->addItems( aContinueties ); + myBSpline3DCont = new QComboBox( w ); + myBSpline3DCont->addItems( aContinueties ); + + myBSplineSurfModeChk->setChecked( true ); + myBSpline3DCurveChk->setChecked( true ); + myBSpline2DCurveChk->setChecked( true ); + + aLay->addWidget( myBSplineSurfModeChk, 0, 0 ); + aLay->addWidget( myBSpline3DCurveChk, 1, 0 ); + aLay->addWidget( myBSpline2DCurveChk, 2, 0 ); + aLay->addWidget( new QLabel( tr( "GEOM_3D_TOLERANCE" ), w ), 3, 0 ); + aLay->addWidget( myBSplineTol3D, 3, 1 ); + aLay->addWidget( new QLabel( tr( "GEOM_2D_TOLERANCE" ), w ), 4, 0 ); + aLay->addWidget( myBSplineTol2D, 4, 1 ); + aLay->addWidget( new QLabel( tr( "GEOM_REQUIRED_DEGREE" ), w ), 5, 0 ); + aLay->addWidget( myBSplineDegree, 5, 1 ); + aLay->addWidget( new QLabel( tr( "GEOM_REQUIRED_NUM_SEGMENTS" ), w ), 6, 0 ); + aLay->addWidget( myBSplineSegments, 6, 1 ); + aLay->addWidget( new QLabel( tr( "GEOM_3D_CONTINUTY" ), w ), 7, 0 ); + aLay->addWidget( myBSpline3DCont, 7, 1 ); + aLay->addWidget( new QLabel( tr( "GEOM_2D_CONTINUTY" ), w ), 8, 0 ); + aLay->addWidget( myBSpline2DCont, 8, 1 ); + aLay->setRowStretch( aLay->rowCount(), 5 ); + } + else if ( myOpLst[i] == "ToBezier" ) { + // ToBezier + w = new QWidget( aParamsGr ); + QGridLayout* aLay = new QGridLayout( w ); + aLay->setMargin( 9 ); aLay->setSpacing( 6 ); + + myToBezierSurfModeChk = new QCheckBox( tr("GEOM_SURFACE_MODE"), w ); + myToBezier3DCurveChk = new QCheckBox( tr("GEOM_3D_CURVE_MODE"), w ); + myToBezier2DCurveChk = new QCheckBox( tr("GEOM_2D_CURVE_MODE"), w ); - myStack->addWidget( aFrame, myOpLst.findIndex( "SplitContinuity" ) ); + myToBezierMaxTol = new SalomeApp_DoubleSpinBox( 0., 100., 1e-7, 10, 10, w ); - // BSplineRestriction - aFrame = new QFrame( myStack ); - aLay = new QGridLayout( aFrame, 10, 2, 0, 5 ); + aLay->addWidget( myToBezierSurfModeChk, 0, 0 ); + aLay->addWidget( myToBezier3DCurveChk, 1, 0 ); + aLay->addWidget( myToBezier2DCurveChk, 2, 0 ); + aLay->addWidget( new QLabel( tr( "GEOM_MAX_TOLERANCE" ), w ), 3, 0 ); + aLay->addWidget( myToBezierMaxTol, 3, 1 ); + aLay->setRowStretch( aLay->rowCount(), 5 ); + } + else if ( myOpLst[i] == "SameParameter" ) { + // SameParameter + w = new QWidget( aParamsGr ); + QGridLayout* aLay = new QGridLayout( w ); + aLay->setMargin( 9 ); aLay->setSpacing( 6 ); - myBSplineSurfModeChk = new QCheckBox( tr("GEOM_SURFACE_MODE"), aFrame ); - myBSpline3DCurveChk = new QCheckBox( tr("GEOM_3D_CURVE_MODE"), aFrame ); - myBSpline2DCurveChk = new QCheckBox( tr("GEOM_2D_CURVE_MODE"), aFrame ); + mySameParameterTol3D = new SalomeApp_DoubleSpinBox( 0., 100., 1e-7, 10, 10, w ); + + aLay->addWidget( new QLabel( tr( "GEOM_3D_TOLERANCE" ), w ), 0, 0 ); + aLay->addWidget( mySameParameterTol3D, 0, 1 ); + aLay->setRowStretch( aLay->rowCount(), 5 ); + } + else { + w = new QWidget( aParamsGr ); // dumb widget + } + aStack->insertWidget( i, w ); + } - myBSplineTol3D = new QtxDblSpinBox( 0, 100, 1e-7, aFrame );//QAD_SpinBoxDbl( aFrame, 0, 100, 1e-7, 10, 1e-10 ); - myBSplineTol3D->setPrecision( 10 ); - - myBSplineTol2D = new QtxDblSpinBox( 0, 100, 1e-7, aFrame );//QAD_SpinBoxDbl( aFrame, 0, 100, 1e-7, 10, 1e-10 ); - myBSplineTol2D->setPrecision( 10 ); - - myBSplineDegree = new QSpinBox( aFrame ); - myBSplineSegments = new QSpinBox( aFrame ); - myBSpline2DCont = new QComboBox( aFrame ); - myBSpline2DCont->insertStringList( aContinueties ); - myBSpline3DCont = new QComboBox( aFrame ); - myBSpline3DCont->insertStringList( aContinueties ); - - myBSplineSurfModeChk->setChecked( true ); - myBSpline3DCurveChk->setChecked( true ); - myBSpline2DCurveChk->setChecked( true ); - - aLay->addWidget( myBSplineSurfModeChk, 0, 0 ); - aLay->addWidget( myBSpline3DCurveChk, 1, 0 ); - aLay->addWidget( myBSpline2DCurveChk, 2, 0 ); - aLay->addWidget( new QLabel( tr("GEOM_3D_TOLERANCE"), aFrame), 3, 0 ); - aLay->addWidget( myBSplineTol3D, 3, 1 ); - aLay->addWidget( new QLabel( tr("GEOM_2D_TOLERANCE"), aFrame), 4, 0 ); - aLay->addWidget( myBSplineTol2D, 4, 1 ); - aLay->addWidget( new QLabel( tr("GEOM_REQUIRED_DEGREE"), aFrame), 5, 0 ); - aLay->addWidget( myBSplineDegree, 5, 1 ); - aLay->addWidget( new QLabel( tr("GEOM_REQUIRED_NUM_SEGMENTS"), aFrame), 6, 0 ); - aLay->addWidget( myBSplineSegments, 6, 1 ); - aLay->addWidget( new QLabel( tr("GEOM_3D_CONTINUTY"), aFrame), 7, 0 ); - aLay->addWidget( myBSpline3DCont, 7, 1 ); - aLay->addWidget( new QLabel( tr("GEOM_2D_CONTINUTY"), aFrame), 8, 0 ); - aLay->addWidget( myBSpline2DCont, 8, 1 ); - aLay->setRowStretch( 9, 2 ); - - myStack->addWidget( aFrame, myOpLst.findIndex( "BSplineRestriction" ) ); - - // ToBezier - aFrame = new QFrame( myStack ); - aLay = new QGridLayout( aFrame, 10, 2, 0, 5 ); - - myToBezierSurfModeChk = new QCheckBox( tr("GEOM_SURFACE_MODE"), aFrame ); - myToBezier3DCurveChk = new QCheckBox( tr("GEOM_3D_CURVE_MODE"), aFrame ); - myToBezier2DCurveChk = new QCheckBox( tr("GEOM_2D_CURVE_MODE"), aFrame ); - - myToBezierMaxTol = new QtxDblSpinBox( 0, 100, 1e-7, aFrame );//QAD_SpinBoxDbl( aFrame, 0, 100, 1e-7, 10, 1e-10 ); - myToBezierMaxTol->setPrecision( 10 ); - - aLay->addWidget( myToBezierSurfModeChk, 0, 0 ); - aLay->addWidget( myToBezier3DCurveChk, 1, 0 ); - aLay->addWidget( myToBezier2DCurveChk, 2, 0 ); - aLay->addWidget( new QLabel( tr("GEOM_MAX_TOLERANCE"), aFrame), 3, 0 ); - aLay->addWidget( myToBezierMaxTol, 3, 1 ); - aLay->setRowStretch( 9, 2 ); - - myStack->addWidget( aFrame, myOpLst.findIndex( "ToBezier" ) ); - - // SameParameter - aFrame = new QFrame( myStack ); - aLay = new QGridLayout( aFrame, 10, 2, 0, 5 ); - - mySameParameterTol3D = new QtxDblSpinBox( 0, 100, 1e-7, aFrame );//QAD_SpinBoxDbl( aFrame, 0, 100, 1e-7, 10, 1e-10 ); - mySameParameterTol3D->setPrecision( 10 ); - - aLay->addWidget( new QLabel( tr("GEOM_3D_TOLERANCE"), aFrame ), 0, 0 ); - aLay->addWidget( mySameParameterTol3D, 0, 1 ); - aLay->setRowStretch( 9, 2 ); - - myStack->addWidget( aFrame, myOpLst.findIndex( "SameParameter" ) ); + QGridLayout* layout = new QGridLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( mySelectWdgt, 0, 0, 1, 2 ); + layout->addWidget( anOperGr, 1, 0 ); + layout->addWidget( aParamsGr, 1, 1 ); // signals and slots connections - connect( buttonOk, SIGNAL(clicked()), this, SLOT(onOk()) ); - connect( buttonApply, SIGNAL(clicked()), this, SLOT(onApply()) ); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( onOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( onApply() ) ); - connect( ((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(selectionChanged()) ); - connect( myOpList, SIGNAL(selectionChanged()), this, SLOT(operationChanged()) ); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( selectionChanged() ) ); - connect( mySelectWdgt->PushButton1, SIGNAL(clicked()), this, SLOT(selectClicked()) ); - connect( mySelectWdgt->LineEdit1, SIGNAL(returnPressed()), this, SLOT(lineEditReturnPressed()) ); + connect( mySelectWdgt->PushButton1, SIGNAL( clicked() ), this, SLOT( selectClicked() ) ); + connect( mySelectWdgt->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( lineEditReturnPressed() ) ); - connect( myToBezierSurfModeChk, SIGNAL(toggled(bool)), SLOT(advOptionToggled(bool)) ); + connect( myToBezierSurfModeChk, SIGNAL( toggled( bool ) ), this, SLOT( advOptionToggled( bool ) ) ); + + connect( myOpList, SIGNAL( currentRowChanged( int ) ), aStack, SLOT( setCurrentIndex( int ) ) ); adjustSize(); loadDefaults(); // init dialog fields with values from resource file - myOpList->setSelected( myOpList->findItem( "FixShape", 0 ), true ); + //myOpList->setCurrentRow( myOpList->findItem( 0 ); reset(); initName( tr( "PROCESS_SHAPE_NEW_OBJ_NAME" ) ); } -//================================================================================= -// function : operationChanged() -// purpose : -//================================================================================= -void RepairGUI_ShapeProcessDlg::operationChanged() -{ - QListViewItem* anItem = myOpList->selectedItem(); - if ( anItem ) - { - int id = myOpLst.findIndex( anItem->text(0) ); - if ( id > -1 ) - myStack->raiseWidget( id ); - } -} - //================================================================================= // function : onOk() // purpose : Same than click on apply but close this dialog. //================================================================================= void RepairGUI_ShapeProcessDlg::onOk() { - if (onApply()) + if ( onApply() ) ClickOnCancel(); } @@ -367,13 +348,16 @@ bool RepairGUI_ShapeProcessDlg::onApply() //================================================================================= void RepairGUI_ShapeProcessDlg::selectionChanged() { - reset(); + reset(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + Standard_Boolean aRes = Standard_False; int i = 0; - myObjects->length( IObjectCount() ); - for ( SALOME_ListIteratorOfListIO anIt( selectedIO() ); anIt.More(); anIt.Next() ) - { + myObjects->length(aSelList.Extent()); + for (SALOME_ListIteratorOfListIO anIt (aSelList); anIt.More(); anIt.Next()) { GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIt.Value(), aRes ); if ( !CORBA::is_nil( aSelectedObject ) && aRes ) myObjects[i++] = aSelectedObject; @@ -415,8 +399,8 @@ void RepairGUI_ShapeProcessDlg::lineEditReturnPressed() void RepairGUI_ShapeProcessDlg::activate() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(selectionChanged())); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication( ) ))->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( selectionChanged() ) ); reset(); //myGeomGUI->SetState( 0 ); @@ -428,24 +412,13 @@ void RepairGUI_ShapeProcessDlg::activate() // function : enterEvent() // purpose : Mouse enter onto the dialog to activate it //================================================================================= -void RepairGUI_ShapeProcessDlg::enterEvent(QEvent* e) +void RepairGUI_ShapeProcessDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupBoxName->isEnabled() ) activate(); } -//================================================================================= -// function : closeEvent() -// purpose : same than click on cancel button -//================================================================================= -void RepairGUI_ShapeProcessDlg::closeEvent(QCloseEvent* e) -{ - //myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - - //================================================================================= // function : reset() // purpose : Completely reset the state of method including local context @@ -454,7 +427,7 @@ void RepairGUI_ShapeProcessDlg::reset() { myObjects = new GEOM::ListOfGO(); myObjects->length( 0 ); - mySelectWdgt->LineEdit1->setText(""); + mySelectWdgt->LineEdit1->setText( "" ); } @@ -462,15 +435,13 @@ void RepairGUI_ShapeProcessDlg::reset() // function : get_convert // purpose : conversion of angle values to radians (non-angle values are not converted) //================================================================================= -const char* get_convert( const char* theParam, const char* theValue ) +const char* get_convert( const char* theParam, const QString& theValue ) { - if ( !strcmp( theParam, "SplitAngle.Angle" ) ) - { - double doubleValue = atof( theValue ) * PI / 180; - TCollection_AsciiString str( doubleValue ); - return CORBA::string_dup( str.ToCString() ); + if ( !strcmp( theParam, "SplitAngle.Angle" ) ) { + double doubleValue = theValue.toDouble() * PI / 180; + return CORBA::string_dup( QString::number( doubleValue ).toLatin1().constData() ); } - return CORBA::string_dup( theValue ); + return CORBA::string_dup( theValue.toLatin1().constData() ); } //================================================================================= @@ -479,8 +450,7 @@ const char* get_convert( const char* theParam, const char* theValue ) //================================================================================= const char* set_convert( const char* theParam, const char* theValue ) { - if ( !strcmp( theParam, "SplitAngle.Angle" ) ) - { + if ( !strcmp( theParam, "SplitAngle.Angle" ) ) { double doubleValue = atof( theValue ) * 180 / PI; TCollection_AsciiString str( doubleValue ); return CORBA::string_dup( str.ToCString() ); @@ -499,26 +469,25 @@ void RepairGUI_ShapeProcessDlg::loadDefaults() anOp->GetShapeProcessParameters( anOperators, aParams, aValues ); // check the default items-operators - int i; - for ( i = 0; i < anOperators->length(); i++ ) - { + for ( int i = 0; i < anOperators->length(); i++ ) { //MESSAGE("-->"<<(const char*)anOperators[i]); - QListViewItem* anItem = myOpList->findItem( (const char*)anOperators[i], 0 ); - if ( anItem /*&& anItem->inherits( "QCheckListItem" )*/ ) - ((QCheckListItem*) anItem)->setOn( true ); + QList items = myOpList->findItems ( (const char*)anOperators[i], Qt::MatchFixedString ); + if ( items.count() ) + ( items[0] )->setCheckState( Qt::Checked ); } // Retrieve default parameters for ALL operators - for ( QListViewItemIterator it(myOpList); it.current(); ++it ) { - CORBA::String_var anOperator = CORBA::string_dup( it.current()->text( 0 ).latin1() ); + for ( int i = 0; i < myOpList->count(); i++ ) { + CORBA::String_var anOperator = CORBA::string_dup( myOpList->item( i )->text().toLatin1().constData() ); anOp->GetOperatorParameters( anOperator.in(), aParams, aValues ); // set default values of parameters if ( aParams->length() != aValues->length() ) continue; - for ( i = 0; i < aParams->length(); i++ ) { - QWidget* aCtrl = getControl( (const char*)aParams[i] ); - const char* aValue = set_convert( (const char*)aParams[i], aValues[i] ); + + for ( int j = 0; j < aParams->length(); j++ ) { + QWidget* aCtrl = getControl( (const char*)aParams[j] ); + const char* aValue = set_convert( (const char*)aParams[j], aValues[j] ); setValue( aCtrl, aValue ); } } @@ -528,40 +497,52 @@ void RepairGUI_ShapeProcessDlg::loadDefaults() // function : setValue() // purpose : set value in the proper way //================================================================================= -void RepairGUI_ShapeProcessDlg::setValue( QWidget* theControl, const char* theValue ) +void RepairGUI_ShapeProcessDlg::setValue( QWidget* theControl, const QString& theValue ) { - if ( theControl == NULL || theValue == NULL ) - return; - - if ( theControl->isA( "QtxDblSpinBox" ) ) - ((QtxDblSpinBox*)theControl)->setValue( QString( theValue ).toDouble() ); - else if ( theControl->isA( "QSpinBox" ) ) - ((QSpinBox*)theControl)->setValue( QString( theValue ).toInt() ); - else if ( theControl->isA( "QComboBox" ) ) - ((QComboBox*)theControl)->setCurrentText( QString( theValue ) ); - else if ( theControl->isA( "QCheckBox" ) ) - ((QCheckBox*)theControl)->setChecked( QString( theValue ).toInt() != 0 ); + if ( theControl && !theValue.isNull() ) { + if ( qobject_cast( theControl ) ) + qobject_cast( theControl )->setValue( theValue.toDouble() ); + else if ( qobject_cast( theControl ) ) + qobject_cast( theControl )->setValue( theValue.toInt() ); + else if ( qobject_cast( theControl ) ) + qobject_cast( theControl )->setEditText( theValue ); + else if ( qobject_cast( theControl ) ) + qobject_cast( theControl )->setChecked( theValue.toInt() != 0 ); + } } //================================================================================= // function : getValue() // purpose : get value in the proper way //================================================================================= -const char* RepairGUI_ShapeProcessDlg::getValue( QWidget* theControl ) const +QString RepairGUI_ShapeProcessDlg::getValue( QWidget* theControl ) const { - if ( theControl == NULL ) - return ""; + if ( theControl ) { + if ( qobject_cast( theControl ) ) + return QString::number( qobject_cast( theControl )->value() ); + else if ( qobject_cast( theControl ) ) + return QString::number( qobject_cast( theControl )->value() ); + else if ( qobject_cast( theControl ) ) + return qobject_cast( theControl )->currentText(); + else if ( qobject_cast( theControl ) ) + return qobject_cast( theControl )->isChecked() ? "1" : "0"; + } + return 0; +} - if ( theControl->isA( "QtxDblSpinBox" ) ) - return ((QtxDblSpinBox*)theControl)->text().latin1(); - else if ( theControl->isA( "QSpinBox" ) ) - return ((QSpinBox*)theControl)->text().latin1(); - else if ( theControl->isA( "QComboBox" ) ) - return ((QComboBox*)theControl)->currentText().latin1(); - else if ( theControl->isA( "QCheckBox" ) ) - return ((QCheckBox*)theControl)->isChecked() ? "1" : "0"; - - return ""; +//================================================================================= +// function : getText() +// purpose : get text in the proper way +//================================================================================= +QString RepairGUI_ShapeProcessDlg::getText( QWidget* theControl ) const +{ + if ( theControl ) { + if ( qobject_cast( theControl ) ) + return qobject_cast( theControl )->text(); + else if ( qobject_cast( theControl ) ) + return qobject_cast( theControl )->text(); + } + return QString::null; } //================================================================================= @@ -579,21 +560,35 @@ GEOM::GEOM_IOperations_ptr RepairGUI_ShapeProcessDlg::createOperation() //================================================================================= bool RepairGUI_ShapeProcessDlg::isValid( QString& msg ) { + bool ok = true; + QMapIterator aMapIter( myValMap ); + while( aMapIter.hasNext() ) { + aMapIter.next(); + const QStringList& aList = aMapIter.value(); + QListIterator aListIter( aList ); + while( aListIter.hasNext() ) { + const QString& aParam = aListIter.next(); + QWidget* aControl = getControl( aParam ); + if ( qobject_cast( aControl ) ) + ok = qobject_cast( aControl )->isValid( msg, !IsPreview() ) && ok; + else if ( qobject_cast( aControl ) ) + ok = qobject_cast( aControl )->isValid( msg, !IsPreview() ) && ok; + } + } + bool error = false; GEOM::string_array_var anOperators = getActiveOperators(); - if ( !myObjects->length() ) - { + if ( !myObjects->length() ) { msg += tr( "ERROR_NO_OBJECTS" ); error = true; } - if ( !anOperators->length() ) - { + if ( !anOperators->length() ) { if ( error ) msg += "\n"; msg += tr( "ERROR_NO_OPERATORS" ); error = true; } - return !error; + return !error && ok; } //================================================================================= @@ -624,19 +619,33 @@ bool RepairGUI_ShapeProcessDlg::execute( ObjectList& objects ) */// ----------- QStringList anErrorObjNames; - for ( int i = 0; i < myObjects->length(); i++ ) - { + for ( int i = 0; i < myObjects->length(); i++ ) { GEOM::GEOM_Object_var obj = myObjects[i]; - GEOM::GEOM_Object_var anObj = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )->ProcessShape( - obj, anOperators, aParams, aValues ); + GEOM::GEOM_Object_var anObj = GEOM::GEOM_IHealingOperations::_narrow( getOperation() )-> + ProcessShape( obj, anOperators, aParams, aValues ); if ( anObj->_is_nil() ) anErrorObjNames << GEOMBase::GetName( obj ); else + { + if ( !IsPreview() ) + { + QStringList aParameters; + + for ( int i = 0; i < anOperators->length(); i++ ) + aParameters << QString( anOperators[i] ); + + for ( int i = 0; i < aParams->length(); i++ ) + aParameters << QString( aParams[i] ); + + aParameters << getTexts( aParams ); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } objects.push_back( anObj._retn() ); + } } if ( !anErrorObjNames.empty() ) - MESSAGE("ERRORS occured while processing the following objects: " << anErrorObjNames.join( " " )); + MESSAGE( "ERRORS occured while processing the following objects: " << anErrorObjNames.join( " " ).toLatin1().data() ); return anErrorObjNames.size() < myObjects->length(); // true if at least one object was OK, false if ALL objects were nil after Healing. } @@ -648,15 +657,17 @@ bool RepairGUI_ShapeProcessDlg::execute( ObjectList& objects ) GEOM::string_array* RepairGUI_ShapeProcessDlg::getActiveOperators() { GEOM::string_array_var anOperators = new GEOM::string_array(); - QStringList aCheckedList; - QStringList::Iterator it; - for ( it = myOpLst.begin(); it != myOpLst.end(); ++it ) - if ( ((QCheckListItem*)myOpList->findItem( *it, 0 ))->isOn() ) - aCheckedList << *it; - anOperators->length( aCheckedList.size() ); - int i = 0; - for ( it = aCheckedList.begin(); it != aCheckedList.end(); ++it ) - anOperators[i++] = CORBA::string_dup( (*it).latin1() ); + QStringList aCheckedList; + + for ( int i = 0; i < myOpList->count(); i++ ) { + if ( myOpList->item( i )->checkState() == Qt::Checked ) + aCheckedList << myOpList->item( i )->text(); + } + + anOperators->length( aCheckedList.count() ); + + for ( int i = 0; i < aCheckedList.count(); i++ ) + anOperators[i] = CORBA::string_dup( aCheckedList[i].toLatin1().constData() ); return anOperators._retn(); } @@ -665,34 +676,33 @@ GEOM::string_array* RepairGUI_ShapeProcessDlg::getActiveOperators() // function : getcontrol // purpose : //================================================================================= -QWidget* RepairGUI_ShapeProcessDlg::getControl( const char* theParam ) +QWidget* RepairGUI_ShapeProcessDlg::getControl( const QString& theParam ) { - string aParam = theParam; - if ( aParam == "SplitAngle.Angle" ) return mySplitAngleAngle; - else if ( aParam == "SplitAngle.MaxTolerance" ) return mySplitAngleMaxTol; - else if ( aParam == "SplitClosedFaces.NbSplitPoints" ) return mySplitClosedFacesNum; - else if ( aParam == "FixFaceSize.Tolerance" ) return myFixFaceSizeTol; - else if ( aParam == "DropSmallEdges.Tolerance3d" ) return myDropSmallEdgesTol3D; - else if ( aParam == "BSplineRestriction.SurfaceMode" ) return myBSplineSurfModeChk; - else if ( aParam == "BSplineRestriction.Curve3dMode" ) return myBSpline3DCurveChk; - else if ( aParam == "BSplineRestriction.Curve2dMode" ) return myBSpline2DCurveChk; - else if ( aParam == "BSplineRestriction.Tolerance3d" ) return myBSplineTol3D; - else if ( aParam == "BSplineRestriction.Tolerance2d" ) return myBSplineTol2D; - else if ( aParam == "BSplineRestriction.RequiredDegree" ) return myBSplineDegree; - else if ( aParam == "BSplineRestriction.RequiredNbSegments" ) return myBSplineSegments; - else if ( aParam == "BSplineRestriction.Continuity3d" ) return myBSpline3DCont; - else if ( aParam == "BSplineRestriction.Continuity2d" ) return myBSpline2DCont; - else if ( aParam == "SplitContinuity.Tolerance3d" ) return mySplitContTol3D; - else if ( aParam == "SplitContinuity.SurfaceContinuity" ) return mySplitContSurfCont; - else if ( aParam == "SplitContinuity.CurveContinuity" ) return mySplitContCurvCont; - else if ( aParam == "ToBezier.SurfaceMode" ) return myToBezierSurfModeChk; - else if ( aParam == "ToBezier.Curve3dMode" ) return myToBezier3DCurveChk; - else if ( aParam == "ToBezier.Curve2dMode" ) return myToBezier2DCurveChk; - else if ( aParam == "ToBezier.MaxTolerance" ) return myToBezierMaxTol; - else if ( aParam == "SameParameter.Tolerance3d" ) return mySameParameterTol3D; - else if ( aParam == "FixShape.Tolerance3d" ) return myFixShapeTol3D; - else if ( aParam == "FixShape.MaxTolerance3d" ) return myFixShapeMaxTol3D; - return NULL; + if ( theParam == "SplitAngle.Angle" ) return mySplitAngleAngle; + else if ( theParam == "SplitAngle.MaxTolerance" ) return mySplitAngleMaxTol; + else if ( theParam == "SplitClosedFaces.NbSplitPoints" ) return mySplitClosedFacesNum; + else if ( theParam == "FixFaceSize.Tolerance" ) return myFixFaceSizeTol; + else if ( theParam == "DropSmallEdges.Tolerance3d" ) return myDropSmallEdgesTol3D; + else if ( theParam == "BSplineRestriction.SurfaceMode" ) return myBSplineSurfModeChk; + else if ( theParam == "BSplineRestriction.Curve3dMode" ) return myBSpline3DCurveChk; + else if ( theParam == "BSplineRestriction.Curve2dMode" ) return myBSpline2DCurveChk; + else if ( theParam == "BSplineRestriction.Tolerance3d" ) return myBSplineTol3D; + else if ( theParam == "BSplineRestriction.Tolerance2d" ) return myBSplineTol2D; + else if ( theParam == "BSplineRestriction.RequiredDegree" ) return myBSplineDegree; + else if ( theParam == "BSplineRestriction.RequiredNbSegments" ) return myBSplineSegments; + else if ( theParam == "BSplineRestriction.Continuity3d" ) return myBSpline3DCont; + else if ( theParam == "BSplineRestriction.Continuity2d" ) return myBSpline2DCont; + else if ( theParam == "SplitContinuity.Tolerance3d" ) return mySplitContTol3D; + else if ( theParam == "SplitContinuity.SurfaceContinuity" ) return mySplitContSurfCont; + else if ( theParam == "SplitContinuity.CurveContinuity" ) return mySplitContCurvCont; + else if ( theParam == "ToBezier.SurfaceMode" ) return myToBezierSurfModeChk; + else if ( theParam == "ToBezier.Curve3dMode" ) return myToBezier3DCurveChk; + else if ( theParam == "ToBezier.Curve2dMode" ) return myToBezier2DCurveChk; + else if ( theParam == "ToBezier.MaxTolerance" ) return myToBezierMaxTol; + else if ( theParam == "SameParameter.Tolerance3d" ) return mySameParameterTol3D; + else if ( theParam == "FixShape.Tolerance3d" ) return myFixShapeTol3D; + else if ( theParam == "FixShape.MaxTolerance3d" ) return myFixShapeMaxTol3D; + return 0; } //================================================================================= @@ -701,6 +711,9 @@ QWidget* RepairGUI_ShapeProcessDlg::getControl( const char* theParam ) //================================================================================= void RepairGUI_ShapeProcessDlg::initParamsValues() { + if ( myOpLst.count() ) + return; // already filled + myOpLst << "FixShape"; myValMap["FixShape"] << "FixShape.Tolerance3d"; myValMap["FixShape"] << "FixShape.MaxTolerance3d"; @@ -750,25 +763,24 @@ void RepairGUI_ShapeProcessDlg::initParamsValues() //================================================================================= GEOM::string_array* RepairGUI_ShapeProcessDlg::getParameters( const GEOM::string_array& theOperators ) { - GEOM::string_array_var aParams = new GEOM::string_array(); - int i( 0 ), j( 0 ); + GEOM::string_array_var aParams = new GEOM::string_array(); + int i = 0, j = 0; - // calculate the length of parameters - for ( i = 0, j = 0; i < theOperators.length(); i++ ) - j+= myValMap[QString((const char*)theOperators[i])].size(); + // calculate the length of parameters + for ( i = 0, j = 0; i < theOperators.length(); i++ ) + j += myValMap[ QString( theOperators[i] ) ].size(); + + // set the new length of paremeters + aParams->length( j ); - // set the new length of paremeters - aParams->length( j ); + // fill the parameters + for ( i = 0, j = 0; i < theOperators.length(); i++ ) { + QStringList aValLst = myValMap[ QString( theOperators[i] ) ]; + for ( QStringList::Iterator it = aValLst.begin(); it != aValLst.end(); ++it ) + aParams[j++] = CORBA::string_dup( (*it).toLatin1().constData() ); + } - // fill the parameters - for ( i = 0, j = 0; i < theOperators.length(); i++ ) - { - QStringList aValLst = myValMap[QString( (const char*)theOperators[i] )]; - for ( QStringList::Iterator it = aValLst.begin(); it != aValLst.end(); ++it ) - aParams[j++] = CORBA::string_dup( (*it).latin1() ); - } - - return aParams._retn(); + return aParams._retn(); } @@ -781,8 +793,7 @@ GEOM::string_array* RepairGUI_ShapeProcessDlg::getValues( const GEOM::string_arr GEOM::string_array_var aValues = new GEOM::string_array(); aValues->length( theParams.length() ); - for ( int i = 0; i < theParams.length(); i++ ) - { + for ( int i = 0; i < theParams.length(); i++ ) { QWidget* aCtrl = getControl( (const char*)theParams[i] ); if ( aCtrl ) aValues[i] = get_convert( (const char*)theParams[i], getValue( aCtrl ) ); @@ -791,6 +802,27 @@ GEOM::string_array* RepairGUI_ShapeProcessDlg::getValues( const GEOM::string_arr return aValues._retn(); } +//================================================================================= +// function : getTexts +// purpose : +//================================================================================= +QStringList RepairGUI_ShapeProcessDlg::getTexts( const GEOM::string_array& theParams ) +{ + QStringList aTexts; + + for ( int i = 0; i < theParams.length(); i++ ) { + QWidget* aCtrl = getControl( (const char*)theParams[i] ); + if ( aCtrl ) + { + QString aText = getText( aCtrl ); + if( !aText.isNull() ) + aTexts.append( aText ); + } + } + + return aTexts; +} + //================================================================================= // function : initSelection // purpose : set selection of ALL shape types except vertexes @@ -814,10 +846,10 @@ void RepairGUI_ShapeProcessDlg::initSelection() //================================================================================= void RepairGUI_ShapeProcessDlg::advOptionToggled( bool on ) { - QButton* btn = (QButton*)sender(); - if ( on && btn->isToggleButton() && - QMessageBox::warning(myGeomGUI->getApp()->desktop(), - tr( "GEOM_WRN_WARNING" ), tr( "TIME_CONSUMING" ), - QMessageBox::Yes, QMessageBox::No ) == QMessageBox::No ) + QAbstractButton* btn = (QAbstractButton*)sender(); + if ( on && btn->isCheckable() && + SUIT_MessageBox::warning( this, + tr( "GEOM_WRN_WARNING" ), tr( "TIME_CONSUMING" ), + SUIT_MessageBox::Yes | SUIT_MessageBox::No ) == SUIT_MessageBox::No ) btn->toggle(); } diff --git a/src/RepairGUI/RepairGUI_ShapeProcessDlg.h b/src/RepairGUI/RepairGUI_ShapeProcessDlg.h index 3d833fda1..e5fd0e902 100755 --- a/src/RepairGUI/RepairGUI_ShapeProcessDlg.h +++ b/src/RepairGUI/RepairGUI_ShapeProcessDlg.h @@ -1,46 +1,41 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : RepairGUI_ShapeProcessDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_ShapeProcessDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef REPAIRGUI_SHAPEPROCESSDLG_H +#define REPAIRGUI_SHAPEPROCESSDLG_H -#ifndef DIALOGBOX_ShapeProcess_H -#define DIALOGBOX_ShapeProcess_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_QTD.h" -#include "RepairGUI.h" -#include "QtxDblSpinBox.h" +#include -#include -#include -#include -#include -#include -#include -#include -#include +class DlgRef_1Sel; +class SalomeApp_IntSpinBox; +class SalomeApp_DoubleSpinBox; +class QComboBox; +class QCheckBox; +class QListWidget; //================================================================================= // class : RepairGUI_ShapeProcessDlg @@ -48,93 +43,93 @@ //================================================================================= class RepairGUI_ShapeProcessDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - RepairGUI_ShapeProcessDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~RepairGUI_ShapeProcessDlg(); - + RepairGUI_ShapeProcessDlg( GeometryGUI*, QWidget* = 0, bool = false ); + ~RepairGUI_ShapeProcessDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + +private: + void init(); + void reset(); + void loadDefaults(); // initialize all controls with default values (from resource file) + + GEOM::string_array* getActiveOperators(); + GEOM::string_array* getParameters( const GEOM::string_array& ); + GEOM::string_array* getValues( const GEOM::string_array& ); - virtual void closeEvent( QCloseEvent* e ); + QStringList getTexts( const GEOM::string_array& ); + + void enterEvent( QEvent* ); + + QWidget* getControl( const QString& ); + void setValue( QWidget*, const QString& ); // initialize the given control in the proper way + // (analize its class and convert the value string) + QString getValue( QWidget* ) const; // retrieve value of the control in the proper way + QString getText( QWidget* ) const; // retrieve text of the control (for spin-boxes only) + + //QDict myCtrlMap; // map of controls (values) of parameters + void initParamsValues(); // initialize the data structures + void initSelection(); private: - void init(); - void reset(); - void loadDefaults(); // initialize all controls with default values (from resource file) + QStringList myOpLst; // list of available Shape Healing Operators + QMap myValMap; // map of parameters of operators - GEOM::string_array* getActiveOperators(); - GEOM::string_array* getParameters( const GEOM::string_array& theOperators ); - GEOM::string_array* getValues( const GEOM::string_array& theParameters ); + GEOM::ListOfGO_var myObjects; // selected objects + + DlgRef_1Sel* mySelectWdgt; + QListWidget* myOpList; + + SalomeApp_DoubleSpinBox* myFixShapeTol3D; + SalomeApp_DoubleSpinBox* myFixShapeMaxTol3D; - void enterEvent(QEvent* e); + SalomeApp_DoubleSpinBox* myFixFaceSizeTol; + + SalomeApp_DoubleSpinBox* myDropSmallEdgesTol3D; - QWidget* getControl( const char* ); - void setValue( QWidget*, const char* ); // initialize the given control in the proper way - // (analize its class and convert the value string) - const char* getValue( QWidget* theControl ) const; // retrieve value of the control in the proper way - - QStringList myOpLst; // list of available Shape Healing Operators - QMap myValMap; // map of parameters of operators - //QDict myCtrlMap; // map of controls (values) of parameters - void initParamsValues(); // initialize the data structures - void initSelection(); - - GEOM::ListOfGO_var myObjects; // selected objects - - DlgRef_1Sel_QTD* mySelectWdgt; - QListView* myOpList; - QWidgetStack* myStack; - - QtxDblSpinBox* myFixShapeTol3D; - QtxDblSpinBox* myFixShapeMaxTol3D; - - QtxDblSpinBox* myFixFaceSizeTol; - - QtxDblSpinBox* myDropSmallEdgesTol3D; - - QtxDblSpinBox* mySplitAngleAngle; - QtxDblSpinBox* mySplitAngleMaxTol; - - QSpinBox* mySplitClosedFacesNum; - - QtxDblSpinBox* mySplitContTol3D; - QComboBox* mySplitContSurfCont; - QComboBox* mySplitContCurvCont; - - QCheckBox* myBSplineSurfModeChk; - QCheckBox* myBSpline3DCurveChk; - QCheckBox* myBSpline2DCurveChk; - QtxDblSpinBox* myBSplineTol3D; - QtxDblSpinBox* myBSplineTol2D; - QSpinBox* myBSplineDegree; - QSpinBox* myBSplineSegments; - QComboBox* myBSpline2DCont; - QComboBox* myBSpline3DCont; - - QCheckBox* myToBezierSurfModeChk; - QCheckBox* myToBezier3DCurveChk; - QCheckBox* myToBezier2DCurveChk; - QtxDblSpinBox* myToBezierMaxTol; - - QtxDblSpinBox* mySameParameterTol3D; - + SalomeApp_DoubleSpinBox* mySplitAngleAngle; + SalomeApp_DoubleSpinBox* mySplitAngleMaxTol; + + SalomeApp_IntSpinBox* mySplitClosedFacesNum; + + SalomeApp_DoubleSpinBox* mySplitContTol3D; + QComboBox* mySplitContSurfCont; + QComboBox* mySplitContCurvCont; + + QCheckBox* myBSplineSurfModeChk; + QCheckBox* myBSpline3DCurveChk; + QCheckBox* myBSpline2DCurveChk; + SalomeApp_DoubleSpinBox* myBSplineTol3D; + SalomeApp_DoubleSpinBox* myBSplineTol2D; + SalomeApp_IntSpinBox* myBSplineDegree; + SalomeApp_IntSpinBox* myBSplineSegments; + QComboBox* myBSpline2DCont; + QComboBox* myBSpline3DCont; + + QCheckBox* myToBezierSurfModeChk; + QCheckBox* myToBezier3DCurveChk; + QCheckBox* myToBezier2DCurveChk; + SalomeApp_DoubleSpinBox* myToBezierMaxTol; + + SalomeApp_DoubleSpinBox* mySameParameterTol3D; + private slots: - void onOk(); - bool onApply(); + void onOk(); + bool onApply(); - void activate(); - - void lineEditReturnPressed(); - void selectionChanged(); - void selectClicked(); - void operationChanged(); - void advOptionToggled(bool); + void activate(); + + void lineEditReturnPressed(); + void selectionChanged(); + void selectClicked(); + void advOptionToggled( bool ); }; -#endif // DIALOGBOX_ShapeProcess_H +#endif // REPAIRGUI_SHAPEPROCESSDLG_H diff --git a/src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx b/src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx index 1ed948d76..7daaab8e1 100644 --- a/src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx +++ b/src/RepairGUI/RepairGUI_SuppressFacesDlg.cxx @@ -1,45 +1,46 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_SuppressFacesDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : RepairGUI_SuppressFacesDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "RepairGUI_SuppressFacesDlg.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" -#include "SUIT_Session.h" -#include "SALOME_ListIteratorOfListIO.hxx" +#include +#include +#include -#include "GEOMImpl_Types.hxx" +#include +#include +#include +#include +#include + +#include #include +#include -#include - -using namespace std; +#include //================================================================================= // class : RepairGUI_SuppressFacesDlg() @@ -48,32 +49,35 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -RepairGUI_SuppressFacesDlg::RepairGUI_SuppressFacesDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +RepairGUI_SuppressFacesDlg::RepairGUI_SuppressFacesDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SUPRESS_FACE"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_SUPRESS_FACE" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_SUPRESSFACE_TITLE")); + setWindowTitle( tr("GEOM_SUPRESSFACE_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_SUPRESSFACE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_SUPRESSFACE")); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_1Sel_QTD(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("Faces to remove")); - GroupPoints->TextLabel1->setText(tr("Faces")); - GroupPoints->PushButton1->setPixmap(image1); + GroupPoints = new DlgRef_1Sel( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "Faces to remove" ) ); + GroupPoints->TextLabel1->setText( tr( "Faces" ) ); + GroupPoints->PushButton1->setIcon( image1 ); GroupPoints->LineEdit1->setReadOnly( true ); - Layout1->addWidget(GroupPoints, 2, 0); + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); /***************************************************************/ - setHelpFileName("suppress_faces_operation_page.html"); + setHelpFileName( "suppress_faces_operation_page.html" ); Init(); } @@ -104,14 +108,14 @@ void RepairGUI_SuppressFacesDlg::Init() initSelection(); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( GroupPoints->LineEdit1, SIGNAL( returnPressed() ), this, SLOT( LineEditReturnPressed() ) ); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); initName( tr( "SUPRESS_FACE_NEW_OBJ_NAME" ) ); } @@ -138,7 +142,7 @@ bool RepairGUI_SuppressFacesDlg::ClickOnApply() initName(); - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); myObjects->length( 0 ); myFaces.clear(); @@ -155,31 +159,32 @@ bool RepairGUI_SuppressFacesDlg::ClickOnApply() //================================================================================= void RepairGUI_SuppressFacesDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); Standard_Boolean aRes = Standard_False; int i = 0; int numFaces = 0; - myObjects->length( IObjectCount() ); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + myObjects->length( aSelList.Extent() ); myFaces.clear(); - for ( SALOME_ListIteratorOfListIO anIt( selectedIO() ); anIt.More(); anIt.Next() ) - { + + for (SALOME_ListIteratorOfListIO anIt (aSelList); anIt.More(); anIt.Next()) { Handle(SALOME_InteractiveObject) anIO = anIt.Value(); GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( anIO, aRes ); - if ( !CORBA::is_nil( aSelectedObject ) && aRes ) - { + if ( !CORBA::is_nil( aSelectedObject ) && aRes ) { TopoDS_Shape aShape; - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) ) - { - if ( aShape.ShapeType() <= TopAbs_FACE ) // FACE, SHELL, SOLID, COMPOUND - { + if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) ) { + if ( aShape.ShapeType() <= TopAbs_FACE ) { // FACE, SHELL, SOLID, COMPOUND GEOM::short_array anIndexes; TColStd_IndexedMapOfInteger aMap; - myGeomGUI->getApp()->selectionMgr()->GetIndexes( anIO, aMap ); + aSelMgr->GetIndexes( anIO, aMap ); - if ( !aMap.IsEmpty() ) - { + if ( !aMap.IsEmpty() ) { Convert( aMap, anIndexes ); myObjects[i++] = aSelectedObject; // append the object myFaces.append( anIndexes ); // append faces' indexes @@ -212,8 +217,7 @@ void RepairGUI_SuppressFacesDlg::Convert( const TColStd_IndexedMapOfInteger& the //================================================================================= void RepairGUI_SuppressFacesDlg::SetEditCurrentArgument() { - if( sender() == GroupPoints->PushButton1 ) - { + if ( sender() == GroupPoints->PushButton1 ) { GroupPoints->LineEdit1->setFocus(); myEditCurrentArgument = GroupPoints->LineEdit1; } @@ -227,8 +231,7 @@ void RepairGUI_SuppressFacesDlg::SetEditCurrentArgument() //================================================================================= void RepairGUI_SuppressFacesDlg::LineEditReturnPressed() { - if( sender() == GroupPoints->LineEdit1 ) - { + if ( sender() == GroupPoints->LineEdit1 ) { myEditCurrentArgument = GroupPoints->LineEdit1; GEOMBase_Skeleton::LineEditReturnPressed(); } @@ -242,8 +245,8 @@ void RepairGUI_SuppressFacesDlg::LineEditReturnPressed() void RepairGUI_SuppressFacesDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( ( (SalomeApp_Application*)( SUIT_Session::session()->activeApplication() ) )->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); //myGeomGUI->SetState( 0 ); initSelection(); @@ -254,23 +257,13 @@ void RepairGUI_SuppressFacesDlg::ActivateThisDialog() // function : enterEvent() // purpose : Mouse enter onto the dialog to activate it //================================================================================= -void RepairGUI_SuppressFacesDlg::enterEvent(QEvent* e) +void RepairGUI_SuppressFacesDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } -//================================================================================= -// function : closeEvent() -// purpose : -//================================================================================= -void RepairGUI_SuppressFacesDlg::closeEvent(QCloseEvent* e) -{ - //myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : createOperation // purpose : @@ -284,7 +277,7 @@ GEOM::GEOM_IOperations_ptr RepairGUI_SuppressFacesDlg::createOperation() // function : isValid // purpose : //================================================================================= -bool RepairGUI_SuppressFacesDlg::isValid( QString& msg ) +bool RepairGUI_SuppressFacesDlg::isValid( QString& ) { const int objL = myObjects->length(), facesL = myFaces.size(); return ( objL && objL == facesL ); @@ -297,8 +290,7 @@ bool RepairGUI_SuppressFacesDlg::isValid( QString& msg ) bool RepairGUI_SuppressFacesDlg::execute( ObjectList& objects ) { QStringList anErrorObjNames; - for ( int i = 0; i < myObjects->length(); i++ ) - { + for ( int i = 0; i < myObjects->length(); i++ ) { GEOM::GEOM_Object_var obj = myObjects[i]; GEOM::short_array faces = myFaces[i]; //MESSAGE(">>>> Dlg, passing faces.. len = " << faces.length()); @@ -310,7 +302,7 @@ bool RepairGUI_SuppressFacesDlg::execute( ObjectList& objects ) } if ( !anErrorObjNames.empty() ) - MESSAGE("ERRORS occured while processing the following objects: " << anErrorObjNames.join( " " )); + MESSAGE( "ERRORS occured while processing the following objects: " << anErrorObjNames.join( " " ).toLatin1().data() ); return anErrorObjNames.size() < myObjects->length(); // true if at least one object was OK, false if ALL objects were nil after Healing. } diff --git a/src/RepairGUI/RepairGUI_SuppressFacesDlg.h b/src/RepairGUI/RepairGUI_SuppressFacesDlg.h index cdf863913..66a36ca94 100644 --- a/src/RepairGUI/RepairGUI_SuppressFacesDlg.h +++ b/src/RepairGUI/RepairGUI_SuppressFacesDlg.h @@ -1,37 +1,37 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : RepairGUI_SuppressFacesDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : RepairGUI_SuppressFacesDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef REPAIRGUI_SUPPRESSFACESDLG_H +#define REPAIRGUI_SUPPRESSFACESDLG_H -#ifndef DIALOGBOX_SUPPRESSFACES_H -#define DIALOGBOX_SUPPRESSFACES_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel_QTD.h" +#include -#include +class DlgRef_1Sel; +class TColStd_IndexedMapOfInteger; //================================================================================= // class : RepairGUI_SuppressFacesDlg @@ -39,45 +39,45 @@ //================================================================================= class RepairGUI_SuppressFacesDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - RepairGUI_SuppressFacesDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~RepairGUI_SuppressFacesDlg(); + RepairGUI_SuppressFacesDlg( GeometryGUI*, QWidget* = 0, bool = false ); + ~RepairGUI_SuppressFacesDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); -private : - void Init(); - void enterEvent(QEvent* e); - void closeEvent(QCloseEvent* e); - - GEOM::ListOfGO_var myObjects; - QValueList myFaces; - // GEOM::short_array-s contain indexes of selected faces, - // index of a GEOM::short_array in myFaces list equals to index of - // GEOM::GEOM_Object in myObjects list to which the faces belong to. - - void Convert( const TColStd_IndexedMapOfInteger&, GEOM::short_array& ); - - void initSelection(); - - DlgRef_1Sel_QTD* GroupPoints; +private: + void Init(); + void enterEvent( QEvent* ); + void Convert( const TColStd_IndexedMapOfInteger&, + GEOM::short_array& ); + + void initSelection(); + +private: + GEOM::ListOfGO_var myObjects; + QList myFaces; + // GEOM::short_array-s contain indexes of selected faces, + // index of a GEOM::short_array in myFaces list equals to index of + // GEOM::GEOM_Object in myObjects list to which the faces belong to. + + DlgRef_1Sel* GroupPoints; + private slots: - void ClickOnOk(); - bool ClickOnApply(); - - void ActivateThisDialog(); - - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); + void ClickOnOk(); + bool ClickOnApply(); + + void ActivateThisDialog(); + + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); }; -#endif // DIALOGBOX_SUPPRESSFACES_H +#endif // REPAIRGUI_SUPPRESSFACESDLG_H diff --git a/src/SKETCHER/Makefile.am b/src/SKETCHER/Makefile.am index 92dde135b..1ff014005 100644 --- a/src/SKETCHER/Makefile.am +++ b/src/SKETCHER/Makefile.am @@ -1,52 +1,51 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM SKETCHER : basic sketcher -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.in # Author : Patrick GOLDBRONN (CEA) # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = \ +salomeinclude_HEADERS = \ Sketcher_Profile.hxx # Libraries targets lib_LTLIBRARIES = libGEOMSketcher.la -dist_libGEOMSketcher_la_SOURCES = \ +dist_libGEOMSketcher_la_SOURCES = \ Sketcher_Profile.cxx -# additionnal information to compil and link file -libGEOMSketcher_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ +# additional information to compile and link file + +libGEOMSketcher_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ $(KERNEL_CXXFLAGS) -libGEOMSketcher_la_LDFLAGS = \ - $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ - $(STDLIB) \ - $(CAS_KERNEL) \ +libGEOMSketcher_la_LDFLAGS = \ + $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ + $(STDLIB) \ + $(CAS_KERNEL) \ $(CAS_MODELER) diff --git a/src/SKETCHER/SKETCHER.pro b/src/SKETCHER/SKETCHER.pro new file mode 100644 index 000000000..6dd1da34c --- /dev/null +++ b/src/SKETCHER/SKETCHER.pro @@ -0,0 +1,58 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = GEOMSketcher +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +STDLIB = -lstdc++ + +CAS_KERNEL = -L$${CASROOT}/Linux/lib -lTKernel + +CAS_MODELER = -L$${CASROOT}/Linux/lib -lTKG2d -lTKG3d -lTKGeomBase -lTKBRep -lTKGeomAlgo -lTKTopAlgo -lTKPrim -lTKBO -lTKBool -lTKHLR -lTKFillet -lTKOffset -lTKFeat + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} + +LIBS += $${KERNEL_LDFLAGS} -lSALOMELocalTrace $${STDLIB} $${CAS_KERNEL} $${CAS_MODELER} + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +HEADERS = Sketcher_Profile.hxx + +SOURCES = Sketcher_Profile.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/SKETCHER/Sketcher_Profile.cxx b/src/SKETCHER/Sketcher_Profile.cxx index d5b5a4b7b..eb8fd9f23 100644 --- a/src/SKETCHER/Sketcher_Profile.cxx +++ b/src/SKETCHER/Sketcher_Profile.cxx @@ -1,6 +1,6 @@ -// GEOM SKETCHER : basic sketcher +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,15 +17,14 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM SKETCHER : basic sketcher // File : Sketcher_Profile.cxx // Author : Damien COQUERET // Module : GEOM // $Header: - +// #include #include diff --git a/src/SKETCHER/Sketcher_Profile.hxx b/src/SKETCHER/Sketcher_Profile.hxx index c05f79735..7db4b4eaf 100644 --- a/src/SKETCHER/Sketcher_Profile.hxx +++ b/src/SKETCHER/Sketcher_Profile.hxx @@ -1,31 +1,30 @@ +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// // GEOM SKETCHER : basic sketcher -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// -// // File : Sketcher_Profile.h // Author : Damien COQUERET // Module : GEOM // $Header: - +// #include #include #include diff --git a/src/STEPExport/Makefile.am b/src/STEPExport/Makefile.am index 66467dfa7..3748333cb 100644 --- a/src/STEPExport/Makefile.am +++ b/src/STEPExport/Makefile.am @@ -1,29 +1,30 @@ -# Copyright (C) 2003 CEA -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.in # Author : Pavel TELKOV # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files @@ -32,15 +33,16 @@ salomeinclude_HEADERS = # Libraries targets lib_LTLIBRARIES = libSTEPExport.la -dist_libSTEPExport_la_SOURCES = \ +dist_libSTEPExport_la_SOURCES = \ STEPExport.cxx -# additionnal information to compil and link file -libSTEPExport_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ +# additional information to compile and link file + +libSTEPExport_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ $(KERNEL_CXXFLAGS) -libSTEPExport_la_LDFLAGS = \ - $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ - $(STDLIB) \ +libSTEPExport_la_LDFLAGS = \ + $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ + $(STDLIB) \ $(CAS_LDPATH) -lTKSTEP diff --git a/src/STEPExport/STEPExport.cxx b/src/STEPExport/STEPExport.cxx index 290ab74b2..debe363a7 100644 --- a/src/STEPExport/STEPExport.cxx +++ b/src/STEPExport/STEPExport.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: STEPExport.cxx // Created: Wed May 19 14:53:52 2004 // Author: Pavel TELKOV // - +// #include "utilities.h" #include diff --git a/src/STEPExport/STEPExport.pro b/src/STEPExport/STEPExport.pro new file mode 100644 index 000000000..8f5597513 --- /dev/null +++ b/src/STEPExport/STEPExport.pro @@ -0,0 +1,49 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = STEPExport +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} + +LIBS += $${STDLIB} $${CAS_LDPATH} -lTKSTEP $${KERNEL_LDFLAGS} -lSALOMELocalTrace + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += STEPEXPORT_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +SOURCES = STEPExport.cxx diff --git a/src/STEPImport/Makefile.am b/src/STEPImport/Makefile.am index 7fd6d51f3..f5e90dabd 100644 --- a/src/STEPImport/Makefile.am +++ b/src/STEPImport/Makefile.am @@ -1,29 +1,30 @@ -# Copyright (C) 2003 CEA -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # # File : Makefile.in # Author : Pavel TELKOV # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files @@ -32,15 +33,16 @@ salomeinclude_HEADERS = # Libraries targets lib_LTLIBRARIES = libSTEPImport.la -dist_libSTEPImport_la_SOURCES = \ +dist_libSTEPImport_la_SOURCES = \ STEPImport.cxx -# additionnal information to compil and link file -libSTEPImport_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ +# additional information to compile and link file + +libSTEPImport_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ $(KERNEL_CXXFLAGS) -libSTEPImport_la_LDFLAGS = \ - $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ - $(STDLIB) \ +libSTEPImport_la_LDFLAGS = \ + $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ + $(STDLIB) \ $(CAS_LDPATH) -lTKSTEP diff --git a/src/STEPImport/STEPImport.cxx b/src/STEPImport/STEPImport.cxx index 05f5b480c..2ee8f1363 100644 --- a/src/STEPImport/STEPImport.cxx +++ b/src/STEPImport/STEPImport.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: STEPImport.cxx // Created: Wed May 19 14:41:10 2004 // Author: Pavel TELKOV // - +// #include "utilities.h" #include diff --git a/src/STEPImport/STEPImport.pro b/src/STEPImport/STEPImport.pro new file mode 100644 index 000000000..a88596775 --- /dev/null +++ b/src/STEPImport/STEPImport.pro @@ -0,0 +1,49 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = STEPImport +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} + +LIBS += $${STDLIB} $${CAS_LDPATH} -lTKSTEP $${KERNEL_LDFLAGS} -lSALOMELocalTrace + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += STEPIMPORT_EXPORTS OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +SOURCES = STEPImport.cxx diff --git a/src/STLExport/Makefile.am b/src/STLExport/Makefile.am index 9b358c0a3..67cff44cc 100644 --- a/src/STLExport/Makefile.am +++ b/src/STLExport/Makefile.am @@ -1,24 +1,26 @@ -# Copyright (C) 2003 CEA -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# # $Header$ - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files @@ -27,15 +29,16 @@ salomeinclude_HEADERS = # Libraries targets lib_LTLIBRARIES = libSTLExport.la -dist_libSTLExport_la_SOURCES = \ +dist_libSTLExport_la_SOURCES = \ STLExport.cxx -# additionnal information to compil and link file -libSTLExport_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ +# additional information to compile and link file + +libSTLExport_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ $(KERNEL_CXXFLAGS) -libSTLExport_la_LDFLAGS = \ - $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ - $(STDLIB) \ +libSTLExport_la_LDFLAGS = \ + $(KERNEL_LDFLAGS) -lSALOMELocalTrace \ + $(STDLIB) \ $(CAS_LDPATH) -lTKSTL diff --git a/src/STLExport/STLExport.cxx b/src/STLExport/STLExport.cxx index eded4321d..d264d62a4 100644 --- a/src/STLExport/STLExport.cxx +++ b/src/STLExport/STLExport.cxx @@ -1,27 +1,29 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: STLExport.cxx // Created: Wed May 19 14:53:52 2004 // Author: Pavel TELKOV // - +// #include "utilities.h" #include @@ -29,10 +31,14 @@ #include #include -#ifdef WNT -#include +#ifdef WIN32 +# if defined STLEXPORT_EXPORTS +# define STLEXPORT_EXPORT __declspec( dllexport ) +# else +# define STLEXPORT_EXPORT __declspec( dllimport ) +# endif #else -#define SALOME_WNT_EXPORT +# define STLEXPORT_EXPORT #endif //============================================================================= @@ -43,7 +49,7 @@ extern "C" { - SALOME_WNT_EXPORT + STLEXPORT_EXPORT int Export(const TopoDS_Shape& theShape, const TCollection_AsciiString& theFileName, const TCollection_AsciiString& theFormatName) diff --git a/src/STLExport/STLExport.pro b/src/STLExport/STLExport.pro new file mode 100644 index 000000000..e161a9b08 --- /dev/null +++ b/src/STLExport/STLExport.pro @@ -0,0 +1,49 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = STLExport +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +KERNEL_LDFLAGS = -L$$(KERNEL_ROOT_DIR)/lib/salome + +STDLIB = -lstdc++ + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} + +LIBS += $${STDLIB} $${CAS_LDPATH} -lTKSTL $${KERNEL_LDFLAGS} -lSALOMELocalTrace + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +SOURCES = STLExport.cxx diff --git a/src/ShHealOper/Makefile.am b/src/ShHealOper/Makefile.am index bb8409246..45163e0c9 100644 --- a/src/ShHealOper/Makefile.am +++ b/src/ShHealOper/Makefile.am @@ -1,74 +1,73 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# # GEOM ShHealOper : Shape Healing -# -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# # File : Makefile.in # Author : Alexander SLADKOV # Modified by : Alexander BORODIN (OCN) - autotools usage # Module : GEOM # $Header: - +# include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = \ - ShHealOper_CloseContour.hxx \ - ShHealOper_EdgeDivide.hxx \ - ShHealOper_FillHoles.hxx \ - ShHealOper_RemoveFace.hxx \ - ShHealOper_RemoveInternalWires.hxx \ - ShHealOper_Sewing.hxx \ - ShHealOper_ShapeProcess.hxx \ - ShHealOper_SpiltCurve2d.hxx \ - ShHealOper_SplitCurve2d.hxx \ - ShHealOper_SplitCurve3d.hxx \ - ShHealOper_ChangeOrientation.hxx \ +salomeinclude_HEADERS = \ + ShHealOper_CloseContour.hxx \ + ShHealOper_EdgeDivide.hxx \ + ShHealOper_FillHoles.hxx \ + ShHealOper_RemoveFace.hxx \ + ShHealOper_RemoveInternalWires.hxx \ + ShHealOper_Sewing.hxx \ + ShHealOper_ShapeProcess.hxx \ + ShHealOper_SpiltCurve2d.hxx \ + ShHealOper_SplitCurve2d.hxx \ + ShHealOper_SplitCurve3d.hxx \ + ShHealOper_ChangeOrientation.hxx \ ShHealOper_Tool.hxx # Libraries targets lib_LTLIBRARIES = libShHealOper.la -dist_libShHealOper_la_SOURCES = \ - ShHealOper_CloseContour.cxx \ - ShHealOper_EdgeDivide.cxx \ - ShHealOper_FillHoles.cxx \ - ShHealOper_RemoveFace.cxx \ - ShHealOper_RemoveInternalWires.cxx \ - ShHealOper_Sewing.cxx \ - ShHealOper_ShapeProcess.cxx \ - ShHealOper_SplitCurve2d.cxx \ - ShHealOper_SplitCurve3d.cxx \ - ShHealOper_ChangeOrientation.cxx \ +dist_libShHealOper_la_SOURCES = \ + ShHealOper_CloseContour.cxx \ + ShHealOper_EdgeDivide.cxx \ + ShHealOper_FillHoles.cxx \ + ShHealOper_RemoveFace.cxx \ + ShHealOper_RemoveInternalWires.cxx \ + ShHealOper_Sewing.cxx \ + ShHealOper_ShapeProcess.cxx \ + ShHealOper_SplitCurve2d.cxx \ + ShHealOper_SplitCurve3d.cxx \ + ShHealOper_ChangeOrientation.cxx \ ShHealOper_Tool.cxx -# additionnal information to compil and link file +# additional information to compile and link file -libShHealOper_la_CPPFLAGS = \ - $(CAS_CPPFLAGS) \ +libShHealOper_la_CPPFLAGS = \ + $(CAS_CPPFLAGS) \ $(KERNEL_CXXFLAGS) -libShHealOper_la_LDFLAGS = \ - $(STDLIB) \ - $(CAS_KERNEL) \ - $(CAS_MATH) \ - $(CAS_TKTopAlgo) \ +libShHealOper_la_LDFLAGS = \ + $(STDLIB) \ + $(CAS_KERNEL) \ + $(CAS_MATH) \ + $(CAS_TKTopAlgo) \ $(CAS_LDPATH) -lTKBool -lTKShHealing -lTKLCAF diff --git a/src/ShHealOper/ShHealOper.pro b/src/ShHealOper/ShHealOper.pro new file mode 100644 index 000000000..6bb2a537a --- /dev/null +++ b/src/ShHealOper/ShHealOper.pro @@ -0,0 +1,81 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = ShHealOper +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +STDLIB = -lstdc++ + +CAS_KERNEL = -L$${CASROOT}/Linux/lib -lTKernel + +CAS_MATH = -L$${CASROOT}/Linux/lib -lTKMath + +CAS_TKTopAlgo = -L$${CASROOT}/Linux/lib -lTKG2d -lTKG3d -lTKGeomBase -lTKBRep -lTKGeomAlgo -lTKTopAlgo + +CAS_LDPATH = -L$$(CASROOT)/Linux/lib + +INCLUDEPATH += $${CAS_CPPFLAGS} $${KERNEL_CXXFLAGS} + +LIBS += $${STDLIB} $${CAS_KERNEL} $${CAS_MATH} $${CAS_TKTopAlgo} $${CAS_LDPATH} -lTKBool -lTKShHealing -lTKLCAF + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS + +HEADERS = ShHealOper_CloseContour.hxx +HEADERS += ShHealOper_EdgeDivide.hxx +HEADERS += ShHealOper_FillHoles.hxx +HEADERS += ShHealOper_RemoveFace.hxx +HEADERS += ShHealOper_RemoveInternalWires.hxx +HEADERS += ShHealOper_Sewing.hxx +HEADERS += ShHealOper_ShapeProcess.hxx +HEADERS += ShHealOper_SpiltCurve2d.hxx +HEADERS += ShHealOper_SplitCurve2d.hxx +HEADERS += ShHealOper_SplitCurve3d.hxx +HEADERS += ShHealOper_ChangeOrientation.hxx +HEADERS += ShHealOper_Tool.hxx + +SOURCES = ShHealOper_CloseContour.cxx +SOURCES += ShHealOper_EdgeDivide.cxx +SOURCES += ShHealOper_FillHoles.cxx +SOURCES += ShHealOper_RemoveFace.cxx +SOURCES += ShHealOper_RemoveInternalWires.cxx +SOURCES += ShHealOper_Sewing.cxx +SOURCES += ShHealOper_ShapeProcess.cxx +SOURCES += ShHealOper_SplitCurve2d.cxx +SOURCES += ShHealOper_SplitCurve3d.cxx +SOURCES += ShHealOper_ChangeOrientation.cxx +SOURCES += ShHealOper_Tool.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/ShHealOper/ShHealOper_ChangeOrientation.cxx b/src/ShHealOper/ShHealOper_ChangeOrientation.cxx index 92912fa85..8be204945 100644 --- a/src/ShHealOper/ShHealOper_ChangeOrientation.cxx +++ b/src/ShHealOper/ShHealOper_ChangeOrientation.cxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_ChangeOrientation.cxx // Created: 11.07.06 11:46:45 // Author: Sergey KUUL - - +// #include #include diff --git a/src/ShHealOper/ShHealOper_ChangeOrientation.hxx b/src/ShHealOper/ShHealOper_ChangeOrientation.hxx index fe6ee94e2..80c82ebed 100644 --- a/src/ShHealOper/ShHealOper_ChangeOrientation.hxx +++ b/src/ShHealOper/ShHealOper_ChangeOrientation.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_ChangeOrientation.hxx // Created: 11.07.06 11:22:26 // Author: Sergey KUUL - - +// #ifndef ShHealOper_ChangeOrientation_HeaderFile #define ShHealOper_ChangeOrientation_HeaderFile diff --git a/src/ShHealOper/ShHealOper_CloseContour.cxx b/src/ShHealOper/ShHealOper_CloseContour.cxx index 0c9d360c2..683fec5f4 100644 --- a/src/ShHealOper/ShHealOper_CloseContour.cxx +++ b/src/ShHealOper/ShHealOper_CloseContour.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_CloseContour.cxx // Created: 20.04.04 11:36:01 // Author: Galina KULIKOVA - - +// #include #include #include diff --git a/src/ShHealOper/ShHealOper_CloseContour.hxx b/src/ShHealOper/ShHealOper_CloseContour.hxx index de664780a..4558bb1c9 100644 --- a/src/ShHealOper/ShHealOper_CloseContour.hxx +++ b/src/ShHealOper/ShHealOper_CloseContour.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_CloseContour.hxx // Created: 20.04.04 10:25:46 // Author: Galina KULIKOVA - - +// #ifndef ShHealOper_CloseContour_HeaderFile #define ShHealOper_CloseContour_HeaderFile diff --git a/src/ShHealOper/ShHealOper_EdgeDivide.cxx b/src/ShHealOper/ShHealOper_EdgeDivide.cxx index 0eb1563b2..52e061b6d 100644 --- a/src/ShHealOper/ShHealOper_EdgeDivide.cxx +++ b/src/ShHealOper/ShHealOper_EdgeDivide.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_EdgeDivide.cxx // Created: 30.04.04 16:44:47 // Author: Galina KULIKOVA - +// #include #include #include diff --git a/src/ShHealOper/ShHealOper_EdgeDivide.hxx b/src/ShHealOper/ShHealOper_EdgeDivide.hxx index 32cad6860..c09d779bd 100644 --- a/src/ShHealOper/ShHealOper_EdgeDivide.hxx +++ b/src/ShHealOper/ShHealOper_EdgeDivide.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_EdgeDivide.hxx // Created: 30.04.04 16:06:25 // Author: Galina KULIKOVA - - +// #ifndef ShHealOper_EdgeDivide_HeaderFile #define ShHealOper_EdgeDivide_HeaderFile diff --git a/src/ShHealOper/ShHealOper_FillHoles.cxx b/src/ShHealOper/ShHealOper_FillHoles.cxx index 2edfa6c68..3e8f0d4bd 100644 --- a/src/ShHealOper/ShHealOper_FillHoles.cxx +++ b/src/ShHealOper/ShHealOper_FillHoles.cxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_FillHoles.cxx // Created: 26.04.04 17:35:30 // Author: Galina KULIKOVA - - +// #include #include #include diff --git a/src/ShHealOper/ShHealOper_FillHoles.hxx b/src/ShHealOper/ShHealOper_FillHoles.hxx index 2ad1ff6e5..473244023 100644 --- a/src/ShHealOper/ShHealOper_FillHoles.hxx +++ b/src/ShHealOper/ShHealOper_FillHoles.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_FillHoles.hxx // Created: 26.04.04 17:15:10 // Author: Galina KULIKOVA - - +// #ifndef ShHealOper_FillHoles_HeaderFile #define ShHealOper_FillHoles_HeaderFile diff --git a/src/ShHealOper/ShHealOper_RemoveFace.cxx b/src/ShHealOper/ShHealOper_RemoveFace.cxx index 0bf3c17ae..839a41267 100644 --- a/src/ShHealOper/ShHealOper_RemoveFace.cxx +++ b/src/ShHealOper/ShHealOper_RemoveFace.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_RemoveFace.cxx // Created: 16.04.04 12:12:38 // Author: Galina KULIKOVA - +// #include #include #include diff --git a/src/ShHealOper/ShHealOper_RemoveFace.hxx b/src/ShHealOper/ShHealOper_RemoveFace.hxx index 3c6aa9cd2..a93a43dfa 100644 --- a/src/ShHealOper/ShHealOper_RemoveFace.hxx +++ b/src/ShHealOper/ShHealOper_RemoveFace.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_RemoveFace.hxx // Created: 15.04.04 18:10:16 // Author: Galina KULIKOVA - - +// #ifndef ShHealOper_RemoveFace_HeaderFile #define ShHealOper_RemoveFace_HeaderFile diff --git a/src/ShHealOper/ShHealOper_RemoveInternalWires.cxx b/src/ShHealOper/ShHealOper_RemoveInternalWires.cxx index 8865287f4..87a463bdd 100644 --- a/src/ShHealOper/ShHealOper_RemoveInternalWires.cxx +++ b/src/ShHealOper/ShHealOper_RemoveInternalWires.cxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_RemoveInternalWires.cxx // Created: 26.04.04 14:46:45 // Author: Galina KULIKOVA - - +// #include #include #include diff --git a/src/ShHealOper/ShHealOper_RemoveInternalWires.hxx b/src/ShHealOper/ShHealOper_RemoveInternalWires.hxx index 6cad8d361..fd684cc71 100644 --- a/src/ShHealOper/ShHealOper_RemoveInternalWires.hxx +++ b/src/ShHealOper/ShHealOper_RemoveInternalWires.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_RemoveInternalWires.hxx // Created: 26.04.04 11:22:26 // Author: Galina KULIKOVA - - +// #ifndef ShHealOper_RemoveInternalWires_HeaderFile #define ShHealOper_RemoveInternalWires_HeaderFile diff --git a/src/ShHealOper/ShHealOper_Sewing.cxx b/src/ShHealOper/ShHealOper_Sewing.cxx index be67bb569..c81ef5939 100644 --- a/src/ShHealOper/ShHealOper_Sewing.cxx +++ b/src/ShHealOper/ShHealOper_Sewing.cxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_Sewing.cxx // Created: 29.04.04 15:07:10 // Author: Galina KULIKOVA - - +// #include #include #include diff --git a/src/ShHealOper/ShHealOper_Sewing.hxx b/src/ShHealOper/ShHealOper_Sewing.hxx index c3209d246..466cd7a3b 100644 --- a/src/ShHealOper/ShHealOper_Sewing.hxx +++ b/src/ShHealOper/ShHealOper_Sewing.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_Sewing.hxx // Created: 29.04.04 13:29:10 // Author: Galina KULIKOVA - - +// #ifndef ShHealOper_Sewing_HeaderFile #define ShHealOper_Sewing_HeaderFile diff --git a/src/ShHealOper/ShHealOper_ShapeProcess.cxx b/src/ShHealOper/ShHealOper_ShapeProcess.cxx index 07c7291fe..8c8b1a324 100644 --- a/src/ShHealOper/ShHealOper_ShapeProcess.cxx +++ b/src/ShHealOper/ShHealOper_ShapeProcess.cxx @@ -1,27 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_ShapeProcess.cxx // Created: 14.04.04 10:58:04 // Author: Galina KULIKOVA - +// #include #include #include diff --git a/src/ShHealOper/ShHealOper_ShapeProcess.hxx b/src/ShHealOper/ShHealOper_ShapeProcess.hxx index e62fc56be..ad6e74917 100644 --- a/src/ShHealOper/ShHealOper_ShapeProcess.hxx +++ b/src/ShHealOper/ShHealOper_ShapeProcess.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_ShapeProcess.hxx // Created: 13.04.04 11:45:20 // Author: Galina KULIKOVA - - +// #ifndef ShHealOper_ShapeProcess_HeaderFile #define ShHealOper_ShapeProcess_HeaderFile diff --git a/src/ShHealOper/ShHealOper_SpiltCurve2d.hxx b/src/ShHealOper/ShHealOper_SpiltCurve2d.hxx index d69b411b6..9e4b5c07b 100644 --- a/src/ShHealOper/ShHealOper_SpiltCurve2d.hxx +++ b/src/ShHealOper/ShHealOper_SpiltCurve2d.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_SplitCurve2d.hxx // Created: 05.05.04 12:56:01 // Author: Galina KULIKOVA - - +// #ifndef ShHealOper_SplitCurve2d_HeaderFile #define ShHealOper_SplitCurve2d_HeaderFile diff --git a/src/ShHealOper/ShHealOper_SplitCurve2d.cxx b/src/ShHealOper/ShHealOper_SplitCurve2d.cxx index 79e4f08f7..4e495f9e1 100644 --- a/src/ShHealOper/ShHealOper_SplitCurve2d.cxx +++ b/src/ShHealOper/ShHealOper_SplitCurve2d.cxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_SplitCurve2d.cxx // Created: 05.05.04 13:03:10 // Author: Galina KULIKOVA - - +// #include #include #include diff --git a/src/ShHealOper/ShHealOper_SplitCurve2d.hxx b/src/ShHealOper/ShHealOper_SplitCurve2d.hxx index aa62b4a94..cd9d87c6c 100644 --- a/src/ShHealOper/ShHealOper_SplitCurve2d.hxx +++ b/src/ShHealOper/ShHealOper_SplitCurve2d.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_SplitCurve2d.hxx // Created: 05.05.04 12:56:01 // Author: Galina KULIKOVA - - +// #ifndef ShHealOper_SplitCurve2d_HeaderFile #define ShHealOper_SplitCurve2d_HeaderFile diff --git a/src/ShHealOper/ShHealOper_SplitCurve3d.cxx b/src/ShHealOper/ShHealOper_SplitCurve3d.cxx index 0b4142ac7..f7286e2e1 100644 --- a/src/ShHealOper/ShHealOper_SplitCurve3d.cxx +++ b/src/ShHealOper/ShHealOper_SplitCurve3d.cxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_SplitCurve3d.cxx // Created: 05.05.04 12:48:36 // Author: Galina KULIKOVA - - +// #include #include #include diff --git a/src/ShHealOper/ShHealOper_SplitCurve3d.hxx b/src/ShHealOper/ShHealOper_SplitCurve3d.hxx index 8818e6b16..743124513 100644 --- a/src/ShHealOper/ShHealOper_SplitCurve3d.hxx +++ b/src/ShHealOper/ShHealOper_SplitCurve3d.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_SplitCurve3d.hxx // Created: 05.05.04 12:28:13 // Author: Galina KULIKOVA - - +// #ifndef ShHealOper_SplitCurve3d_HeaderFile #define ShHealOper_SplitCurve3d_HeaderFile diff --git a/src/ShHealOper/ShHealOper_Tool.cxx b/src/ShHealOper/ShHealOper_Tool.cxx index 4827956ac..e0f394756 100644 --- a/src/ShHealOper/ShHealOper_Tool.cxx +++ b/src/ShHealOper/ShHealOper_Tool.cxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_Tool.cxx // Created: 26.04.04 12:11:33 // Author: Galina KULIKOVA - - +// #include //======================================================================= diff --git a/src/ShHealOper/ShHealOper_Tool.hxx b/src/ShHealOper/ShHealOper_Tool.hxx index 587c474e1..502a60f1a 100644 --- a/src/ShHealOper/ShHealOper_Tool.hxx +++ b/src/ShHealOper/ShHealOper_Tool.hxx @@ -1,28 +1,28 @@ -// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // File: ShHealOper_Tool.hxx // Created: 26.04.04 11:36:04 // Author: Galina KULIKOVA - - +// #ifndef ShHealOper_Tool_HeaderFile #define ShHealOper_Tool_HeaderFile diff --git a/src/TransformationGUI/Makefile.am b/src/TransformationGUI/Makefile.am index b980ea75a..4a3725c81 100644 --- a/src/TransformationGUI/Makefile.am +++ b/src/TransformationGUI/Makefile.am @@ -1,90 +1,103 @@ -# GEOM TRANSFORMATIONGUI : +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE # -# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# GEOM TRANSFORMATIONGUI : +# File : Makefile.am +# Author : Alexander BORODIN, Open CASCADE S.A.S. (alexander.borodin@opencascade.com) +# Package : TransformationGUI # -# File : Makefile.in -# Author : Damien COQUERET (OCC) -# Modified by : Alexander BORODIN (OCN) - autotools usage -# Module : GEOM -# $Header: - include $(top_srcdir)/adm_local/unix/make_common_starter.am # header files -salomeinclude_HEADERS = +salomeinclude_HEADERS = \ + TransformationGUI.h \ + TransformationGUI_MultiTranslationDlg.h \ + TransformationGUI_MultiRotationDlg.h \ + TransformationGUI_TranslationDlg.h \ + TransformationGUI_RotationDlg.h \ + TransformationGUI_MirrorDlg.h \ + TransformationGUI_ScaleDlg.h \ + TransformationGUI_OffsetDlg.h \ + TransformationGUI_PositionDlg.h # Libraries targets lib_LTLIBRARIES = libTransformationGUI.la -dist_libTransformationGUI_la_SOURCES = \ - TransformationGUI.cxx \ - TransformationGUI_MultiTranslationDlg.cxx \ - TransformationGUI_MultiRotationDlg.cxx \ - TransformationGUI_TranslationDlg.cxx \ - TransformationGUI_RotationDlg.cxx \ - TransformationGUI_MirrorDlg.cxx \ - TransformationGUI_ScaleDlg.cxx \ - TransformationGUI_OffsetDlg.cxx \ +dist_libTransformationGUI_la_SOURCES = \ + TransformationGUI.h \ + TransformationGUI_MultiTranslationDlg.h \ + TransformationGUI_MultiRotationDlg.h \ + TransformationGUI_TranslationDlg.h \ + TransformationGUI_RotationDlg.h \ + TransformationGUI_MirrorDlg.h \ + TransformationGUI_ScaleDlg.h \ + TransformationGUI_OffsetDlg.h \ + TransformationGUI_PositionDlg.h \ + \ + TransformationGUI.cxx \ + TransformationGUI_MultiTranslationDlg.cxx \ + TransformationGUI_MultiRotationDlg.cxx \ + TransformationGUI_TranslationDlg.cxx \ + TransformationGUI_RotationDlg.cxx \ + TransformationGUI_MirrorDlg.cxx \ + TransformationGUI_ScaleDlg.cxx \ + TransformationGUI_OffsetDlg.cxx \ TransformationGUI_PositionDlg.cxx -MOC_FILES = \ - TransformationGUI_MultiTranslationDlg_moc.cxx \ - TransformationGUI_MultiRotationDlg_moc.cxx \ - TransformationGUI_TranslationDlg_moc.cxx \ - TransformationGUI_RotationDlg_moc.cxx \ - TransformationGUI_MirrorDlg_moc.cxx \ - TransformationGUI_ScaleDlg_moc.cxx \ - TransformationGUI_OffsetDlg_moc.cxx \ +MOC_FILES = \ + TransformationGUI_MultiTranslationDlg_moc.cxx \ + TransformationGUI_MultiRotationDlg_moc.cxx \ + TransformationGUI_TranslationDlg_moc.cxx \ + TransformationGUI_RotationDlg_moc.cxx \ + TransformationGUI_MirrorDlg_moc.cxx \ + TransformationGUI_ScaleDlg_moc.cxx \ + TransformationGUI_OffsetDlg_moc.cxx \ TransformationGUI_PositionDlg_moc.cxx -nodist_libTransformationGUI_la_SOURCES= \ +nodist_libTransformationGUI_la_SOURCES = \ $(MOC_FILES) -#LIB_CLIENT_IDL = SALOME_GenericObj.idl SALOME_Component.idl SALOME_Exception.idl +# additional information to compile and link file -#LIB_SERVER_IDL = - -# additionnal information to compil and link file - -libTransformationGUI_la_CPPFLAGS = \ - $(QT_INCLUDES) \ - $(VTK_INCLUDES) \ - $(CAS_CPPFLAGS) \ - $(PYTHON_INCLUDES) \ - $(BOOST_CPPFLAGS) \ - $(KERNEL_CXXFLAGS) \ - $(GUI_CXXFLAGS) \ - $(CORBA_CXXFLAGS) \ - $(CORBA_INCLUDES) \ - -I$(srcdir)/../GEOMGUI \ - -I$(srcdir)/../DlgRef \ - -I$(srcdir)/../GEOMBase \ - -I$(srcdir)/../OBJECT \ - -I$(srcdir)/../GEOMClient \ - -I$(srcdir)/../GEOMImpl \ - -I$(srcdir)/../GEOMFiltersSelection \ - -I$(top_builddir)/idl \ +libTransformationGUI_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(VTK_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + -I$(srcdir)/../GEOMGUI \ + -I$(srcdir)/../DlgRef \ + -I$(srcdir)/../GEOMBase \ + -I$(srcdir)/../OBJECT \ + -I$(srcdir)/../GEOMClient \ + -I$(srcdir)/../GEOMImpl \ + -I$(srcdir)/../GEOMFiltersSelection \ + -I$(top_builddir)/src/DlgRef \ + -I$(top_builddir)/idl \ -I$(top_builddir)/salome_adm/unix -libTransformationGUI_la_LDFLAGS = \ - ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ +libTransformationGUI_la_LDFLAGS = \ + ../GEOMFiltersSelection/libGEOMFiltersSelection.la \ ../GEOMBase/libGEOMBase.la diff --git a/src/TransformationGUI/TransformationGUI.cxx b/src/TransformationGUI/TransformationGUI.cxx index eb69c9037..136102503 100644 --- a/src/TransformationGUI/TransformationGUI.cxx +++ b/src/TransformationGUI/TransformationGUI.cxx @@ -1,38 +1,41 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : TransformationGUI.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "TransformationGUI.h" -#include "GeometryGUI.h" -#include "SUIT_Session.h" -#include "SUIT_Desktop.h" +#include +#include -#include "SalomeApp_Application.h" +#include +#include +#include +#include +#include +#include +#include +#include #include "TransformationGUI_MultiTranslationDlg.h" // Method MULTI TRANSLATION #include "TransformationGUI_MultiRotationDlg.h" // Method MULTI ROTATION @@ -43,13 +46,12 @@ #include "TransformationGUI_OffsetDlg.h" // Method OFFSET #include "TransformationGUI_PositionDlg.h" // Method POSITION -using namespace std; - //======================================================================= // function : TransformationGUI() // purpose : Constructor //======================================================================= -TransformationGUI::TransformationGUI(GeometryGUI* parent) : GEOMGUI(parent) +TransformationGUI::TransformationGUI( GeometryGUI* parent ) + : GEOMGUI( parent ) { } @@ -66,46 +68,89 @@ TransformationGUI::~TransformationGUI() // function : OnGUIEvent() // purpose : //======================================================================= -bool TransformationGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) +bool TransformationGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { SalomeApp_Application* app = getGeometryGUI()->getApp(); - if (!app) return false; + if ( !app ) return false; getGeometryGUI()->EmitSignalDeactivateDialog(); QDialog* aDlg = NULL; - switch (theCommandID) - { + switch ( theCommandID ) { case 5021: // TRANSLATION - aDlg = new TransformationGUI_TranslationDlg( getGeometryGUI(), parent, "" ); + aDlg = new TransformationGUI_TranslationDlg( getGeometryGUI(), parent ); break; case 5022: // ROTATION - aDlg = new TransformationGUI_RotationDlg( getGeometryGUI(), parent, "" ); + aDlg = new TransformationGUI_RotationDlg( getGeometryGUI(), parent ); break; case 5023: // POSITION - aDlg = new TransformationGUI_PositionDlg( getGeometryGUI(), parent, "" ); + aDlg = new TransformationGUI_PositionDlg( getGeometryGUI(), parent ); break; case 5024: // MIRROR - aDlg = new TransformationGUI_MirrorDlg( getGeometryGUI(), parent, "" ); + aDlg = new TransformationGUI_MirrorDlg( getGeometryGUI(), parent ); break; case 5025: // SCALE - aDlg = new TransformationGUI_ScaleDlg( getGeometryGUI(), parent, "" ); + aDlg = new TransformationGUI_ScaleDlg( getGeometryGUI(), parent ); break; case 5026: // OFFSET - aDlg = new TransformationGUI_OffsetDlg( getGeometryGUI(), parent, "" ); + aDlg = new TransformationGUI_OffsetDlg( getGeometryGUI(), parent ); break; case 5027: // MULTI TRANSLATION - aDlg = new TransformationGUI_MultiTranslationDlg( getGeometryGUI(), parent, "" ); + aDlg = new TransformationGUI_MultiTranslationDlg( getGeometryGUI(), parent ); break; case 5028: // MULTI ROTATION - aDlg = new TransformationGUI_MultiRotationDlg( getGeometryGUI(), parent, "" ); + aDlg = new TransformationGUI_MultiRotationDlg( getGeometryGUI(), parent ); + break; + case 5029: // RELOAD IMPORTED SHAPE + { + SalomeApp_Study* anAppStudy = dynamic_cast(app->activeStudy()); + + GEOM::GEOM_ITransformOperations_var anOp = + GeometryGUI::GetGeomGen()->GetITransformOperations(anAppStudy->id()); + if (anOp->_is_nil()) return false; + + GEOM_Displayer aDisp (anAppStudy); + SUIT_Desktop* desk = app->desktop(); + QList wnds = desk->windows(); + + LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + SALOME_ListIteratorOfListIO aSelIt (aSelList); + for (; aSelIt.More(); aSelIt.Next()) { + Handle(SALOME_InteractiveObject) io = aSelIt.Value(); + Standard_Boolean testResult = Standard_False; + GEOM::GEOM_Object_var aGeomObj = GEOMBase::ConvertIOinGEOMObject(io, testResult); + if (testResult) { + anOp->RecomputeObject(aGeomObj); + + SUIT_ViewWindow* wnd; + QListIterator it (wnds); + while (it.hasNext() && (wnd = it.next())) + { + if (SUIT_ViewManager* vman = wnd->getViewManager()) { + if (SUIT_ViewModel* vmodel = vman->getViewModel()) { + if (SALOME_View* view = dynamic_cast(vmodel)) { + if (view->isVisible(io)) { + aDisp.Erase(io, false, false, view); + aDisp.Display(io, true, view); + } + // ? Redisplay subshapes ? + } + } + } + } + } + } // for (; aSelIt.More(); aSelIt.Next()) + } break; default: - app->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); + app->putInfo( tr( "GEOM_PRP_COMMAND" ).arg( theCommandID ) ); break; } - if (aDlg != NULL) + if ( aDlg != NULL ) aDlg->show(); return true; @@ -118,7 +163,7 @@ bool TransformationGUI::OnGUIEvent(int theCommandID, SUIT_Desktop* parent) extern "C" { #ifdef WNT - __declspec( dllexport ) + __declspec( dllexport ) #endif GEOMGUI* GetLibGUI( GeometryGUI* parent ) { diff --git a/src/TransformationGUI/TransformationGUI.h b/src/TransformationGUI/TransformationGUI.h index 87ba9b55d..41c1967ae 100644 --- a/src/TransformationGUI/TransformationGUI.h +++ b/src/TransformationGUI/TransformationGUI.h @@ -1,35 +1,32 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI.h +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// -// File : TransformationGUI.h -// Author : Damien COQUERET -// Module : GEOM - #ifndef TRANSFORMATIONGUI_H #define TRANSFORMATIONGUI_H -#include "GEOMGUI.h" - +#include //================================================================================= // class : TransformationGUI @@ -38,10 +35,10 @@ class TransformationGUI : public GEOMGUI { public: - TransformationGUI( GeometryGUI* parent ); + TransformationGUI( GeometryGUI* ); ~TransformationGUI(); - bool OnGUIEvent(int theCommandID, SUIT_Desktop* parent); + bool OnGUIEvent( int, SUIT_Desktop* ); }; -#endif +#endif // TRANSFORMATIONGUI_H diff --git a/src/TransformationGUI/TransformationGUI.pro b/src/TransformationGUI/TransformationGUI.pro new file mode 100644 index 000000000..6d04e6bf0 --- /dev/null +++ b/src/TransformationGUI/TransformationGUI.pro @@ -0,0 +1,68 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = lib +TARGET = TransformationGUI +DESTDIR = ../../lib +MOC_DIR = ../../moc +OBJECTS_DIR = ../../obj/$$TARGET + +QT_INCLUDES = $$(QTDIR)/include $$(QTDIR)/include/QtCore $$(QTDIR)/include/QtGui $$(QTDIR)/include/QtOpenGL $$(QTDIR)/include/QtXml + +VTK_INCLUDES = $$(VTKHOME)/include/vtk + +CASROOT = $$(CASROOT) +CAS_CPPFLAGS = $${CASROOT}/inc + +PYTHON_INCLUDES = $$(PYTHONHOME)/include/python2.4 + +BOOST_CPPFLAGS = $$(BOOSTDIR)/include + +KERNEL_CXXFLAGS = $$(KERNEL_ROOT_DIR)/include/salome + +GUI_CXXFLAGS = $$(GUI_ROOT_DIR)/include/salome + +CORBA_INCLUDES = $$(OMNIORBDIR)/include $$(OMNIORBDIR)/include/omniORB4 $$(OMNIORBDIR)/include/COS + +INCLUDEPATH += $${QT_INCLUDES} $${VTK_INCLUDES} $${CAS_CPPFLAGS} $${PYTHON_INCLUDES} $${BOOST_CPPFLAGS} $${KERNEL_CXXFLAGS} $${GUI_CXXFLAGS} $${CORBA_INCLUDES} ../GEOMGUI ../DlgRef ../GEOMBase ../OBJECT ../GEOMClient ../GEOMImpl ../GEOMFiltersSelection $$(GEOM_ROOT_DIR)/idl $$(GEOM_ROOT_DIR)/salome_adm/unix + +LIBS += -L$$(GEOM_ROOT_DIR)/lib -lGEOMFiltersSelection -lGEOMBase + +CONFIG -= debug release debug_and_release +CONFIG += qt thread debug dll shared + +win32:DEFINES += WIN32 +DEFINES += OCC_VERSION_MAJOR=6 OCC_VERSION_MINOR=1 OCC_VERSION_MAINTENANCE=1 LIN LINTEL CSFDB No_exception HAVE_CONFIG_H HAVE_LIMITS_H HAVE_WOK_CONFIG_H OCC_CONVERT_SIGNALS OMNIORB_VERSION=4 __x86__ __linux__ COMP_CORBA_DOUBLE COMP_CORBA_LONG + +SOURCES = TransformationGUI.cxx +SOURCES += TransformationGUI_MultiTranslationDlg.cxx +SOURCES += TransformationGUI_MultiRotationDlg.cxx +SOURCES += TransformationGUI_TranslationDlg.cxx +SOURCES += TransformationGUI_RotationDlg.cxx +SOURCES += TransformationGUI_MirrorDlg.cxx +SOURCES += TransformationGUI_ScaleDlg.cxx +SOURCES += TransformationGUI_OffsetDlg.cxx +SOURCES += TransformationGUI_PositionDlg.cxx + +includes.files = $$HEADERS +includes.path = ../../include + +INSTALLS += includes diff --git a/src/TransformationGUI/TransformationGUI_MirrorDlg.cxx b/src/TransformationGUI/TransformationGUI_MirrorDlg.cxx index 345ce98fe..4e3abf683 100644 --- a/src/TransformationGUI/TransformationGUI_MirrorDlg.cxx +++ b/src/TransformationGUI/TransformationGUI_MirrorDlg.cxx @@ -1,38 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_MirrorDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : TransformationGUI_MirrorDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "TransformationGUI_MirrorDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include #include @@ -40,41 +42,35 @@ #include #include -#include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : TransformationGUI_MirrorDlg() -// purpose : Constructs a TransformationGUI_MirrorDlg which is a child of 'parent', with the +// purpose : Constructs a TransformationGUI_MirrorDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -TransformationGUI_MirrorDlg::TransformationGUI_MirrorDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +TransformationGUI_MirrorDlg::TransformationGUI_MirrorDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_MIRROR_POINT"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_MIRROR_AXE"))); - QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_MIRROR_PLANE"))); - QPixmap image3(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); + QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_MIRROR_POINT"))); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_MIRROR_AXE"))); + QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_MIRROR_PLANE"))); + QPixmap image3 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_MIRROR_TITLE")); + setWindowTitle(tr("GEOM_MIRROR_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_MIRROR")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->setPixmap(image2); - - GroupPoints = new DlgRef_2Sel1Spin2Check(this, "GroupPoints"); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_MIRROR")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setIcon(image2); + + GroupPoints = new DlgRef_2Sel1Spin2Check(centralWidget()); GroupPoints->SpinBox_DX->hide(); GroupPoints->TextLabel3->hide(); GroupPoints->CheckButton2->hide(); @@ -82,231 +78,224 @@ TransformationGUI_MirrorDlg::TransformationGUI_MirrorDlg(GeometryGUI* theGeometr GroupPoints->TextLabel1->setText(tr("GEOM_OBJECTS")); GroupPoints->TextLabel2->setText(tr("GEOM_POINT_MIRROR")); GroupPoints->TextLabel2->setFixedWidth(74); - GroupPoints->PushButton1->setPixmap(image3); - GroupPoints->PushButton2->setPixmap(image3); + GroupPoints->PushButton1->setIcon(image3); + GroupPoints->PushButton2->setIcon(image3); GroupPoints->CheckButton1->setText(tr("GEOM_CREATE_COPY")); - Layout1->addWidget(GroupPoints, 2, 0); + + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); /***************************************************************/ - setHelpFileName("mirror_operation_page.html"); - + setHelpFileName("mirror_operation_page.html"); + + // Activate Create a Copy mode + GroupPoints->CheckButton1->setChecked(true); + CreateCopyModeChanged(true); + Init(); } - //================================================================================= // function : ~TransformationGUI_MirrorDlg() // purpose : Destroys the object and frees any allocated resources //================================================================================= TransformationGUI_MirrorDlg::~TransformationGUI_MirrorDlg() -{ - /* no need to delete child widgets, Qt does it all for us */ +{ + // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void TransformationGUI_MirrorDlg::Init() -{ - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; +{ + // init variables GroupPoints->LineEdit1->setReadOnly(true); GroupPoints->LineEdit2->setReadOnly(true); - - myArgument = GEOM::GEOM_Object::_nil(); - - // Activate Create a Copy mode - GroupPoints->CheckButton1->setChecked(true); - CreateCopyModeChanged(true); - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int))); + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + + myArgument = GEOM::GEOM_Object::_nil(); + + mainFrame()->GroupBoxPublish->show(); + + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - + connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - initName( tr( "GEOM_MIRROR" ) ); - ConstructorsClicked( 0 ); + initName(tr("GEOM_MIRROR")); + + ConstructorsClicked(0); } - //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void TransformationGUI_MirrorDlg::ConstructorsClicked(int constructorId) +void TransformationGUI_MirrorDlg::ConstructorsClicked (int constructorId) { - disconnect( myGeomGUI->getApp()->selectionMgr(), 0, this, 0 ); - - globalSelection(); - myEditCurrentArgument = GroupPoints->LineEdit1; + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + GroupPoints->LineEdit2->clear(); myArgument = GEOM::GEOM_Object::_nil(); - - switch (constructorId) - { - case 0: /* mirror an object by point */ - { - GroupPoints->TextLabel2->setText(tr("GEOM_POINT_MIRROR")); - break; - } - case 1: /* mirror an object by axe */ - { - GroupPoints->TextLabel2->setText(tr("GEOM_AXE_MIRROR")); - break; - } - case 2: /* mirror an object by plane */ - { - GroupPoints->TextLabel2->setText(tr("GEOM_PLANE_MIRROR")); - break; - } - } - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + + switch (constructorId) { + case 0: // mirror an object by point + GroupPoints->TextLabel2->setText(tr("GEOM_POINT_MIRROR")); + break; + case 1: // mirror an object by axe + GroupPoints->TextLabel2->setText(tr("GEOM_AXE_MIRROR")); + break; + case 2: // mirror an object by plane + GroupPoints->TextLabel2->setText(tr("GEOM_PLANE_MIRROR")); + break; + } + + GroupPoints->PushButton1->click(); + + if (myInitial) { + myInitial = false; + SelectionIntoArgument(); + } + else { + displayPreview(); + } } - - //================================================================================= // function : ClickOnOk() // purpose : //================================================================================= void TransformationGUI_MirrorDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool TransformationGUI_MirrorDlg::ClickOnApply() { - if ( !onAccept(GroupPoints->CheckButton1->isChecked()) ) + if (!onAccept(GroupPoints->CheckButton1->isChecked())) return false; - + initName(); - ConstructorsClicked( getConstructorId() ); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection has changed +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void TransformationGUI_MirrorDlg::SelectionIntoArgument() { + erasePreview(); myEditCurrentArgument->setText(""); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) + myObjects.length(0); + else if (myEditCurrentArgument == GroupPoints->LineEdit2) + myArgument = GEOM::GEOM_Object::_nil(); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + QString aName; - if(myEditCurrentArgument == GroupPoints->LineEdit1) - { - int aNbSel = GEOMBase::GetNameOfSelectedIObjects(selectedIO(), aName); - if(aNbSel < 1) - { - myObjects.length(0); - return; - } - GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), myObjects); - if (!myObjects.length()) - return; - if(aNbSel != 1) - aName = tr("%1_objects").arg(aNbSel); - } - else if(myEditCurrentArgument == GroupPoints->LineEdit2) - { - if(IObjectCount() != 1) - { - myArgument = GEOM::GEOM_Object::_nil(); - return; - } - Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult ); - myArgument = aSelectedObject; - if(!testResult || CORBA::is_nil( myArgument )) - return; + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName); + if (aNbSel < 1) + return; - aName = GEOMBase::GetName( aSelectedObject ); + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myObjects); + if (!myObjects.length()) + return; + else + myEditCurrentArgument->setText(aName); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { + if (aSelList.Extent() != 1) + return; - if ( testResult && !aSelectedObject->_is_nil() ) - { - TopoDS_Shape aShape; - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) - { - TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; - if (getConstructorId() == 1) - aNeedType = TopAbs_EDGE; - else if (getConstructorId() == 2) - aNeedType = TopAbs_FACE; - - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes( firstIObject(), aMap ); - if ( aMap.Extent() == 1 ) - { - int anIndex = aMap( 1 ); - if (aNeedType == TopAbs_VERTEX) - aName += QString(":vertex_%1").arg(anIndex); - else - aName += QString(":edge_%1").arg(anIndex); - - //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); - - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations( getStudyId() ); - myArgument = aShapesOp->GetSubShape(aSelectedObject, anIndex); - } - else - myArgument = aFindedObject; // get Object from study - } - else { - if (aShape.ShapeType() != aNeedType) { - myArgument = GEOM::GEOM_Object::_nil(); - aName = ""; - } - } - } - } + // nbSel == 1 + Standard_Boolean testResult = Standard_False; + myArgument = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (!testResult || CORBA::is_nil(myArgument)) + return; + + aName = GEOMBase::GetName(myArgument); + + if (testResult && !myArgument->_is_nil()) { + TopoDS_Shape aShape; + if (GEOMBase::GetShape(myArgument, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { + TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; + if (getConstructorId() == 1) + aNeedType = TopAbs_EDGE; + else if (getConstructorId() == 2) + aNeedType = TopAbs_FACE; + + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) { + int anIndex = aMap(1); + if (aNeedType == TopAbs_VERTEX) + aName += QString(":vertex_%1").arg(anIndex); + else + aName += QString(":edge_%1").arg(anIndex); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = findObjectInFather(myArgument, aName); + + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + myArgument = aShapesOp->GetSubShape(myArgument, anIndex); + } + else { + myArgument = aFindedObject; // get Object from study + } + } + else { + if (aShape.ShapeType() != aNeedType) { + myArgument = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } + } } - myEditCurrentArgument->setText( aName ); - - displayPreview(); + myEditCurrentArgument->setText(aName); + + if (!myArgument->_is_nil() && !myObjects.length()) + GroupPoints->PushButton1->click(); + } + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + displayPreview(); } - -//================================================================================= -// function : LineEditReturnPressed() -// purpose : -//================================================================================= -void TransformationGUI_MirrorDlg::LineEditReturnPressed() -{ - QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || - send == GroupPoints->LineEdit2) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } -} - - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -314,37 +303,60 @@ void TransformationGUI_MirrorDlg::LineEditReturnPressed() void TransformationGUI_MirrorDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - globalSelection(); - - if(send == GroupPoints->PushButton1){ - myEditCurrentArgument = GroupPoints->LineEdit1; - } - else if(send == GroupPoints->PushButton2) { - myEditCurrentArgument = GroupPoints->LineEdit2; - switch(getConstructorId()) - { - case 0: - { - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - break; - } - case 1: - { - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); - break; - } - case 2: - { - globalSelection( GEOM_PLANE ); - break; - } - } - } + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(); + + if (send == GroupPoints->PushButton1) { + myEditCurrentArgument = GroupPoints->LineEdit1; + + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + } + else if (send == GroupPoints->PushButton2) { + myEditCurrentArgument = GroupPoints->LineEdit2; + + switch (getConstructorId()) { + case 0: + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + break; + case 1: + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + break; + case 2: + globalSelection(GEOM_PLANE); + break; + } + + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); } +//================================================================================= +// function : LineEditReturnPressed() +// purpose : +//================================================================================= +void TransformationGUI_MirrorDlg::LineEditReturnPressed() +{ + QLineEdit* send = (QLineEdit*)sender(); + if (send == GroupPoints->LineEdit1 || + send == GroupPoints->LineEdit2) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } +} //================================================================================= // function : ActivateThisDialog() @@ -353,135 +365,142 @@ void TransformationGUI_MirrorDlg::SetEditCurrentArgument() void TransformationGUI_MirrorDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + ConstructorsClicked( getConstructorId() ); } - //================================================================================= // function : enterEvent() // purpose : when mouse enter onto the QWidget //================================================================================= -void TransformationGUI_MirrorDlg::enterEvent(QEvent * e) +void TransformationGUI_MirrorDlg::enterEvent (QEvent*) { - if(!GroupConstructors->isEnabled()) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - //================================================================================= // function : createOperation // purpose : //================================================================================= GEOM::GEOM_IOperations_ptr TransformationGUI_MirrorDlg::createOperation() { - return getGeomEngine()->GetITransformOperations( getStudyId() ); + return getGeomEngine()->GetITransformOperations(getStudyId()); } - //================================================================================= // function : isValid // purpose : //================================================================================= -bool TransformationGUI_MirrorDlg::isValid( QString& msg ) +bool TransformationGUI_MirrorDlg::isValid (QString& /*msg*/) { return !(myObjects.length() == 0 || myArgument->_is_nil()); } - //================================================================================= // function : execute // purpose : //================================================================================= -bool TransformationGUI_MirrorDlg::execute( ObjectList& objects ) +bool TransformationGUI_MirrorDlg::execute (ObjectList& objects) { bool res = false; bool toCreateCopy = IsPreview() || GroupPoints->CheckButton1->isChecked(); - + GEOM::GEOM_Object_var anObj; - - switch ( getConstructorId() ) + + switch (getConstructorId()) { + case 0: { - case 0 : - { - if (toCreateCopy) - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->MirrorPointCopy( myObjects[i], myArgument ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - else - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->MirrorPoint( myObjects[i], myArgument ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - res = true; - break; + if (toCreateCopy) { + for (int i = 0; i < myObjects.length(); i++) { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + MirrorPointCopy(myObjects[i], myArgument); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } } - case 1 : - { - if (toCreateCopy) - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->MirrorAxisCopy( myObjects[i], myArgument ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - else - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->MirrorAxis( myObjects[i], myArgument ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - res = true; - break; - } - case 2: - { - if (toCreateCopy) - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->MirrorPlaneCopy( myObjects[i], myArgument ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - else - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->MirrorPlane( myObjects[i], myArgument ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - res = true; - break; + else { + for (int i = 0; i < myObjects.length(); i++) { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + MirrorPoint(myObjects[i], myArgument); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } } + res = true; + break; } - + case 1: + { + if (toCreateCopy) { + for (int i = 0; i < myObjects.length(); i++) { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + MirrorAxisCopy(myObjects[i], myArgument); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + } + else { + for (int i = 0; i < myObjects.length(); i++) { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + MirrorAxis(myObjects[i], myArgument); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + } + res = true; + break; + } + case 2: + { + if (toCreateCopy) { + for (int i = 0; i < myObjects.length(); i++) { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + MirrorPlaneCopy(myObjects[i], myArgument); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + } + else { + for (int i = 0; i < myObjects.length(); i++) { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + MirrorPlane(myObjects[i], myArgument); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + } + res = true; + break; + } + } + return res; } //================================================================================= -// function : closeEvent +// function : restoreSubShapes // purpose : //================================================================================= -void TransformationGUI_MirrorDlg::closeEvent( QCloseEvent* e ) +void TransformationGUI_MirrorDlg::restoreSubShapes (SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject) { - GEOMBase_Skeleton::closeEvent( e ); + if (mainFrame()->CheckBoxRestoreSS->isChecked()) { + // empty list of arguments means that all arguments should be restored + getGeomEngine()->RestoreSubShapesSO(theStudy, theSObject, GEOM::ListOfGO(), + /*theFindMethod=*/GEOM::FSM_Transformed, + /*theInheritFirstArg=*/true); + } } - //================================================================================= // function : CreateCopyModeChanged() // purpose : //================================================================================= -void TransformationGUI_MirrorDlg::CreateCopyModeChanged(bool isCreateCopy) +void TransformationGUI_MirrorDlg::CreateCopyModeChanged (bool isCreateCopy) { - this->GroupBoxName->setEnabled(isCreateCopy); + mainFrame()->GroupBoxName->setEnabled(isCreateCopy); } //================================================================================= @@ -494,17 +513,16 @@ void TransformationGUI_MirrorDlg::addSubshapesToStudy() if (toCreateCopy) { QMap objMap; - switch (getConstructorId()) - { - case 0: - objMap[GroupPoints->LineEdit2->text()] = myArgument; - break; - case 1: - objMap[GroupPoints->LineEdit2->text()] = myArgument; - break; - case 2: - return; - } - addSubshapesToFather( objMap ); + switch (getConstructorId()) { + case 0: + objMap[GroupPoints->LineEdit2->text()] = myArgument; + break; + case 1: + objMap[GroupPoints->LineEdit2->text()] = myArgument; + break; + case 2: + return; + } + addSubshapesToFather(objMap); } } diff --git a/src/TransformationGUI/TransformationGUI_MirrorDlg.h b/src/TransformationGUI/TransformationGUI_MirrorDlg.h index 25f576739..668254090 100644 --- a/src/TransformationGUI/TransformationGUI_MirrorDlg.h +++ b/src/TransformationGUI/TransformationGUI_MirrorDlg.h @@ -1,38 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : TransformationGUI_MirrorDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_MirrorDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef TRANSFORMATIONGUI_MIRRORDLG_H +#define TRANSFORMATIONGUI_MIRRORDLG_H -#ifndef DIALOGBOX_MIRROR_H -#define DIALOGBOX_MIRROR_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel1Spin2Check.h" - -#include "TransformationGUI.h" - +class DlgRef_2Sel1Spin2Check; //================================================================================= // class : TransformationGUI_MirrorDlg @@ -40,39 +36,43 @@ //================================================================================= class TransformationGUI_MirrorDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - TransformationGUI_MirrorDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~TransformationGUI_MirrorDlg(); + TransformationGUI_MirrorDlg( GeometryGUI*, QWidget* = 0, + bool = false, Qt::WindowFlags = 0 ); + ~TransformationGUI_MirrorDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); + virtual void restoreSubShapes( SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr ); private: - void Init(); - void enterEvent(QEvent* e); + void Init(); + void enterEvent( QEvent* ); - GEOM::GEOM_Object_var myArgument; - GEOM::ListOfGO myObjects; - - DlgRef_2Sel1Spin2Check* GroupPoints; +private: + GEOM::GEOM_Object_var myArgument; + GEOM::ListOfGO myObjects; + + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_2Sel1Spin2Check* GroupPoints; -private slots : - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ConstructorsClicked(int constructorId); - void CreateCopyModeChanged(bool isCreateCopy); +private slots: + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void CreateCopyModeChanged( bool ); }; -#endif // DIALOGBOX_MIRROR_H +#endif // TRANSFORMATIONGUI_MIRRORDLG_H diff --git a/src/TransformationGUI/TransformationGUI_MultiRotationDlg.cxx b/src/TransformationGUI/TransformationGUI_MultiRotationDlg.cxx index e71497d84..80d028e25 100644 --- a/src/TransformationGUI/TransformationGUI_MultiRotationDlg.cxx +++ b/src/TransformationGUI/TransformationGUI_MultiRotationDlg.cxx @@ -1,38 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_MultiRotationDlg.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// File : TransformationGUI_MultiRotationDlg.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "TransformationGUI_MultiRotationDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include #include @@ -40,14 +42,7 @@ #include #include -#include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : TransformationGUI_MultiRotationDlg() @@ -57,34 +52,35 @@ using namespace std; // TRUE to construct a modal dialog. //================================================================================= TransformationGUI_MultiRotationDlg::TransformationGUI_MultiRotationDlg - (GeometryGUI* theGeometryGUI, QWidget* parent, const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +(GeometryGUI* theGeometryGUI, QWidget* parent, bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); - QPixmap image0(aResMgr->loadPixmap("GEOM",tr("ICON_DLG_MULTIROTATION_SIMPLE"))); - QPixmap image1(aResMgr->loadPixmap("GEOM",tr("ICON_DLG_MULTIROTATION_DOUBLE"))); - QPixmap image2(aResMgr->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_MULTIROTATION_SIMPLE"))); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_MULTIROTATION_DOUBLE"))); + QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_MULTIROTATION_TITLE")); + setWindowTitle(tr("GEOM_MULTIROTATION_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_MULTIROTATION")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_MULTIROTATION")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_2Sel1Spin(this, "GroupPoints"); + GroupPoints = new DlgRef_2Sel1Spin(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_MULTIROTATION_SIMPLE")); GroupPoints->TextLabel1->setText(tr("GEOM_MAIN_OBJECT")); GroupPoints->TextLabel2->setText(tr("GEOM_VECTOR")); GroupPoints->TextLabel3->setText(tr("GEOM_NB_TIMES")); - GroupPoints->PushButton1->setPixmap(image2); - GroupPoints->PushButton2->setPixmap(image2); + GroupPoints->PushButton1->setIcon(image2); + GroupPoints->PushButton2->setIcon(image2); GroupPoints->LineEdit1->setReadOnly(true); GroupPoints->LineEdit2->setReadOnly(true); - GroupDimensions = new DlgRef_2Sel4Spin1Check(this, "GroupDimensions"); + GroupDimensions = new DlgRef_2Sel4Spin1Check(centralWidget()); GroupDimensions->GroupBox1->setTitle(tr("GEOM_MULTIROTATION_DOUBLE")); GroupDimensions->TextLabel1->setText(tr("GEOM_MAIN_OBJECT")); GroupDimensions->TextLabel2->setText(tr("GEOM_VECTOR")); @@ -93,13 +89,15 @@ TransformationGUI_MultiRotationDlg::TransformationGUI_MultiRotationDlg GroupDimensions->TextLabel5->setText(tr("GEOM_STEP")); GroupDimensions->TextLabel6->setText(tr("GEOM_NB_TIMES")); GroupDimensions->CheckButton1->setText(tr("GEOM_REVERSE")); - GroupDimensions->PushButton1->setPixmap(image2); - GroupDimensions->PushButton2->setPixmap(image2); + GroupDimensions->PushButton1->setIcon(image2); + GroupDimensions->PushButton2->setIcon(image2); GroupDimensions->LineEdit1->setReadOnly(true); GroupDimensions->LineEdit2->setReadOnly(true); - Layout1->addWidget(GroupPoints, 2, 0); - Layout1->addWidget(GroupDimensions, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); + layout->addWidget(GroupDimensions); /***************************************************************/ setHelpFileName("multi_rotation_operation_page.html"); @@ -107,7 +105,6 @@ TransformationGUI_MultiRotationDlg::TransformationGUI_MultiRotationDlg Init(); } - //================================================================================= // function : ~TransformationGUI_MultiRotationDlg() // purpose : Destroys the object and frees any allocated resources @@ -117,227 +114,270 @@ TransformationGUI_MultiRotationDlg::~TransformationGUI_MultiRotationDlg() // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void TransformationGUI_MultiRotationDlg::Init() { - /* Get setting of step value from file configuration */ + // Get setting of step value from file configuration SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + double step = resMgr->doubleValue("Geometry", "SettingsGeomStep", 100); double SpecificStep1 = 5; double SpecificStep2 = 1; - /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(1.0, MAX_NUMBER, SpecificStep2, 10); - GroupPoints->SpinBox_DX->SetValue(myNbTimes1); + // min, max, step and decimals for spin boxes & initial values + initSpinBox(GroupPoints->SpinBox_DX, 1.0, 999, SpecificStep2, 10); + GroupPoints->SpinBox_DX->setValue(myNbTimes1); + GroupPoints->SpinBox_DX->setDecimals(0); - GroupDimensions->SpinBox_DX1->RangeStepAndValidator(COORD_MIN, COORD_MAX, SpecificStep1, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DY1->RangeStepAndValidator(1.0, MAX_NUMBER, SpecificStep2, 10); - GroupDimensions->SpinBox_DX2->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DY2->RangeStepAndValidator(1.0, MAX_NUMBER, SpecificStep2, 10); - GroupDimensions->SpinBox_DX1->SetValue(myAng); - GroupDimensions->SpinBox_DY1->SetValue(myNbTimes1); - GroupDimensions->SpinBox_DX2->SetValue(myStep); - GroupDimensions->SpinBox_DY2->SetValue(myNbTimes2); + initSpinBox(GroupDimensions->SpinBox_DX1, COORD_MIN, COORD_MAX, SpecificStep1, 10); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DY1, 1.0, 999, SpecificStep2, 10); + initSpinBox(GroupDimensions->SpinBox_DX2, COORD_MIN, COORD_MAX, step, 10); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DY2, 1.0, 999, SpecificStep2, 10); + GroupDimensions->SpinBox_DX1->setValue(myAng); + GroupDimensions->SpinBox_DY1->setValue(myNbTimes1); + GroupDimensions->SpinBox_DX2->setValue(myStep); + GroupDimensions->SpinBox_DY2->setValue(myNbTimes2); + GroupDimensions->SpinBox_DY1->setDecimals(0); + GroupDimensions->SpinBox_DY2->setDecimals(0); - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + // init variables + myAng = 45.0; + myStep = 50.0; + myNbTimes1 = myNbTimes2 = 2; - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + + GroupDimensions->LineEdit1->setText(""); + GroupDimensions->LineEdit2->setText(""); + + myBase = myVector = GEOM::GEOM_Object::_nil(); + + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); + + connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupDimensions->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupDimensions->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(GroupDimensions->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(GroupDimensions->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); + connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(GroupDimensions->SpinBox_DX1, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(GroupDimensions->SpinBox_DY1, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(GroupDimensions->SpinBox_DX2, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(GroupDimensions->SpinBox_DY2, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DX1, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DY1, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DX2, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DY2, SLOT(SetStep(double))); + connect(GroupDimensions->SpinBox_DX1,SIGNAL(textChanged( const QString& )), + this, SLOT(TextValueChangedInSpinBox( const QString& ))); + + connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), this, SLOT(SetDoubleSpinBoxStep(double))); connect(GroupDimensions->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(ReverseAngle())); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + initName(tr("GEOM_MULTIROTATION")); - initName( tr( "GEOM_MULTIROTATION" ) ); - ConstructorsClicked( 0 ); + ConstructorsClicked(0); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void TransformationGUI_MultiRotationDlg::SetDoubleSpinBoxStep (double step) +{ + GroupPoints->SpinBox_DX->setSingleStep(step); + GroupDimensions->SpinBox_DX1->setSingleStep(step); + GroupDimensions->SpinBox_DY1->setSingleStep(step); + GroupDimensions->SpinBox_DX2->setSingleStep(step); + GroupDimensions->SpinBox_DY2->setSingleStep(step); +} //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void TransformationGUI_MultiRotationDlg::ConstructorsClicked(int constructorId) +void TransformationGUI_MultiRotationDlg::ConstructorsClicked (int constructorId) { disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - myAng = 45.0; - myStep = 50.0; - myNbTimes1 = myNbTimes2 = 2; - - globalSelection( GEOM_ALLSHAPES ); - - switch (constructorId) + switch (constructorId) { + case 0: // Rotate simple { - case 0: /* Rotate simple */ - { - GroupDimensions->hide(); - resize(0, 0); - GroupPoints->show(); + GroupDimensions->hide(); + GroupPoints->show(); - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setText(""); - GroupPoints->LineEdit2->setText(""); + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + myBase = myVector = GEOM::GEOM_Object::_nil(); - GroupPoints->SpinBox_DX->SetValue(myNbTimes1); + GroupPoints->SpinBox_DX->setValue(myNbTimes1); - break; - } - case 1: /* Rotate double */ - { - GroupPoints->hide(); - resize(0, 0); - GroupDimensions->show(); - - myEditCurrentArgument = GroupDimensions->LineEdit1; - GroupDimensions->LineEdit1->setText(""); - GroupDimensions->LineEdit2->setText(""); - - GroupDimensions->SpinBox_DX1->SetValue(myAng); - GroupDimensions->SpinBox_DY1->SetValue(myNbTimes1); - GroupDimensions->SpinBox_DX2->SetValue(myStep); - GroupDimensions->SpinBox_DY2->SetValue(myNbTimes2); - - break; - } + GroupPoints->PushButton1->click(); } + break; + case 1: // Rotate double + { + GroupPoints->hide(); + GroupDimensions->show(); - myEditCurrentArgument->setFocus(); - myBase = myVector = GEOM::GEOM_Object::_nil(); - connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), - this, SLOT(SelectionIntoArgument())); + GroupDimensions->LineEdit1->setText(""); + GroupDimensions->LineEdit2->setText(""); + myBase = myVector = GEOM::GEOM_Object::_nil(); + + GroupDimensions->SpinBox_DX1->setValue(myAng); + GroupDimensions->SpinBox_DY1->setValue(myNbTimes1); + GroupDimensions->SpinBox_DX2->setValue(myStep); + GroupDimensions->SpinBox_DY2->setValue(myNbTimes2); + + GroupDimensions->PushButton1->click(); + } + break; + } + + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); + + if (myInitial) { + myInitial = false; + SelectionIntoArgument(); + } + else { + displayPreview(); + } } - //================================================================================= // function : ClickOnOk() // purpose : //================================================================================= void TransformationGUI_MultiRotationDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool TransformationGUI_MultiRotationDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); - ConstructorsClicked( getConstructorId() ); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void TransformationGUI_MultiRotationDlg::SelectionIntoArgument() { + erasePreview(); myEditCurrentArgument->setText(""); - if (IObjectCount() != 1) { - if (myEditCurrentArgument == GroupPoints->LineEdit1 || - myEditCurrentArgument == GroupDimensions->LineEdit1) - myBase = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupPoints->LineEdit2 || - myEditCurrentArgument == GroupDimensions->LineEdit2) - myVector = GEOM::GEOM_Object::_nil(); + if (myEditCurrentArgument == GroupPoints->LineEdit1 || + myEditCurrentArgument == GroupDimensions->LineEdit1) + myBase = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit2 || + myEditCurrentArgument == GroupDimensions->LineEdit2) + myVector = GEOM::GEOM_Object::_nil(); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) return; - } // nbSel == 1 Standard_Boolean testResult = Standard_False;; GEOM::GEOM_Object_var aSelectedObject = - GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult ); + GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); if (!testResult || CORBA::is_nil(aSelectedObject) || !GEOMBase::IsShape(aSelectedObject)) return; - QString aName = GEOMBase::GetName( aSelectedObject ); + QString aName = GEOMBase::GetName(aSelectedObject); if (myEditCurrentArgument == GroupPoints->LineEdit1 || myEditCurrentArgument == GroupDimensions->LineEdit1) myBase = aSelectedObject; else if (myEditCurrentArgument == GroupPoints->LineEdit2 || myEditCurrentArgument == GroupDimensions->LineEdit2) { - if ( testResult && !aSelectedObject->_is_nil() ) - { - TopoDS_Shape aShape; - - - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) - { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes( firstIObject(), aMap ); - if ( aMap.Extent() == 1 ) - { - int anIndex = aMap( 1 ); - aName += QString(":edge_%1").arg(anIndex); - - //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); - - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations( getStudyId() ); - myVector = aShapesOp->GetSubShape(aSelectedObject, anIndex); - } - else - myVector = aFindedObject; // get existing object - } - else { - if (aShape.ShapeType() != TopAbs_EDGE) { - aSelectedObject = GEOM::GEOM_Object::_nil(); - aName = ""; - } - myVector = aSelectedObject; - } - - } - } + TopoDS_Shape aShape; + + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) { + int anIndex = aMap(1); + aName += QString(":edge_%1").arg(anIndex); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); + + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + myVector = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { + myVector = aFindedObject; // get existing object + } + } + else { + if (aShape.ShapeType() != TopAbs_EDGE) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } + myVector = aSelectedObject; + } + } } - myEditCurrentArgument->setText( aName ); + myEditCurrentArgument->setText(aName); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + if (!myBase->_is_nil() && myVector->_is_nil()) + GroupPoints->PushButton2->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { + if (!myVector->_is_nil() && myBase->_is_nil()) + GroupPoints->PushButton1->click(); + } + else if (myEditCurrentArgument == GroupDimensions->LineEdit1) { + if (!myBase->_is_nil() && myVector->_is_nil()) + GroupDimensions->PushButton2->click(); + } + else if (myEditCurrentArgument == GroupDimensions->LineEdit2) { + if (!myVector->_is_nil() && myBase->_is_nil()) + GroupDimensions->PushButton1->click(); + } + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); displayPreview(); } - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -345,27 +385,50 @@ void TransformationGUI_MultiRotationDlg::SelectionIntoArgument() void TransformationGUI_MultiRotationDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - globalSelection( GEOM_ALLSHAPES ); - if(send == GroupPoints->PushButton1) { + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(GEOM_ALLSHAPES); + + if (send == GroupPoints->PushButton1) { myEditCurrentArgument = GroupPoints->LineEdit1; + + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); } - else if(send == GroupPoints->PushButton2) { + else if (send == GroupPoints->PushButton2) { myEditCurrentArgument = GroupPoints->LineEdit2; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); } - else if(send == GroupDimensions->PushButton1) { + else if (send == GroupDimensions->PushButton1) { myEditCurrentArgument = GroupDimensions->LineEdit1; + + GroupDimensions->PushButton2->setDown(false); + GroupDimensions->LineEdit2->setEnabled(false); } - else if(send == GroupDimensions->PushButton2) { + else if (send == GroupDimensions->PushButton2) { myEditCurrentArgument = GroupDimensions->LineEdit2; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + + GroupDimensions->PushButton1->setDown(false); + GroupDimensions->LineEdit1->setEnabled(false); } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + // enable line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); -} + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); +} //================================================================================= // function : LineEditReturnPressed() @@ -374,15 +437,13 @@ void TransformationGUI_MultiRotationDlg::SetEditCurrentArgument() void TransformationGUI_MultiRotationDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || send == GroupDimensions->LineEdit1 || - send == GroupPoints->LineEdit2 || send == GroupDimensions->LineEdit2) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } + if (send == GroupPoints->LineEdit1 || send == GroupDimensions->LineEdit1 || + send == GroupPoints->LineEdit2 || send == GroupDimensions->LineEdit2) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -390,45 +451,53 @@ void TransformationGUI_MultiRotationDlg::LineEditReturnPressed() void TransformationGUI_MultiRotationDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); ConstructorsClicked( getConstructorId() ); } - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void TransformationGUI_MultiRotationDlg::enterEvent(QEvent* e) +void TransformationGUI_MultiRotationDlg::enterEvent (QEvent*) { - if(!GroupConstructors->isEnabled()) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - +//================================================================================= +// function : TextValueChangedInSpinBox() +// purpose : +//================================================================================= +void TransformationGUI_MultiRotationDlg::TextValueChangedInSpinBox(const QString& s){ + bool isDigit; + s.toDouble(&isDigit); + if(!isDigit) + GroupDimensions->CheckButton1->setChecked(false); + GroupDimensions->CheckButton1->setEnabled(isDigit); +} //================================================================================= // function : ValueChangedInSpinBox() // purpose : //================================================================================= -void TransformationGUI_MultiRotationDlg::ValueChangedInSpinBox(double newValue) +void TransformationGUI_MultiRotationDlg::ValueChangedInSpinBox (double newValue) { QObject* send = (QObject*)sender(); - if(send == GroupPoints->SpinBox_DX || send == GroupDimensions->SpinBox_DY1) + if (send == GroupPoints->SpinBox_DX || send == GroupDimensions->SpinBox_DY1) myNbTimes1 = (int)newValue; - else if(send == GroupDimensions->SpinBox_DX1) + else if (send == GroupDimensions->SpinBox_DX1) myAng = newValue; - else if(send == GroupDimensions->SpinBox_DX2) + else if (send == GroupDimensions->SpinBox_DX2) myStep = newValue; - else if(send == GroupDimensions->SpinBox_DY2) + else if (send == GroupDimensions->SpinBox_DY2) myNbTimes2 = (int)newValue; displayPreview(); } - //================================================================================= // function : ReverseAngle() // purpose : 'state' not used here @@ -439,84 +508,89 @@ void TransformationGUI_MultiRotationDlg::ReverseAngle() int aConstructorId = getConstructorId(); - if(aConstructorId == 0) - GroupPoints->SpinBox_DX->SetValue(myAng); - else if(aConstructorId == 1) - GroupDimensions->SpinBox_DX1->SetValue(myAng); + if (aConstructorId == 0) + GroupPoints->SpinBox_DX->setValue(myAng); + else if (aConstructorId == 1) + GroupDimensions->SpinBox_DX1->setValue(myAng); displayPreview(); } - //================================================================================= // function : createOperation // purpose : //================================================================================= GEOM::GEOM_IOperations_ptr TransformationGUI_MultiRotationDlg::createOperation() { - return myGeomGUI->GetGeomGen()->GetITransformOperations( getStudyId() ); + return getGeomEngine()->GetITransformOperations(getStudyId()); } - //================================================================================= // function : isValid // purpose : //================================================================================= -bool TransformationGUI_MultiRotationDlg::isValid( QString& msg ) +bool TransformationGUI_MultiRotationDlg::isValid (QString& msg) { - return !(myBase->_is_nil() || myVector->_is_nil()); + bool ok = true; + switch(getConstructorId()){ + case 0: + ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + break; + case 1: + ok = GroupDimensions->SpinBox_DX1->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DY1->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DX2->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DY2->isValid( msg, !IsPreview() ) && ok; + break; + } + return !(myBase->_is_nil() || myVector->_is_nil()) && ok; } //================================================================================= // function : execute // purpose : //================================================================================= -bool TransformationGUI_MultiRotationDlg::execute( ObjectList& objects ) +bool TransformationGUI_MultiRotationDlg::execute (ObjectList& objects) { bool res = false; GEOM::GEOM_Object_var anObj; + QStringList aParameters; - switch ( getConstructorId() ) - { - case 0 : - { - if ( !CORBA::is_nil( myBase ) && !CORBA::is_nil( myVector ) ) { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - MultiRotate1D( myBase, myVector, myNbTimes1 ); - res = true; - } - break; - } - case 1 : - { - if ( !CORBA::is_nil( myBase ) && !CORBA::is_nil( myVector ) ) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - MultiRotate2D( myBase, myVector, myAng, myNbTimes1, myStep, myNbTimes2 ); - res = true; - } - break; - } + switch (getConstructorId()) { + case 0: + if (!CORBA::is_nil(myBase) && !CORBA::is_nil(myVector)) { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + MultiRotate1D(myBase, myVector, myNbTimes1); + if(!IsPreview()) + aParameters<SpinBox_DX->text(); + res = true; } + break; + case 1: + if (!CORBA::is_nil(myBase) && !CORBA::is_nil(myVector)) { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + MultiRotate2D(myBase, myVector, myAng, myNbTimes1, myStep, myNbTimes2); + if(!IsPreview()) { + aParameters<SpinBox_DX1->text(); + aParameters<SpinBox_DY1->text(); + aParameters<SpinBox_DX2->text(); + aParameters<SpinBox_DY2->text(); + } + res = true; + } + break; + } - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + if (!anObj->_is_nil()) { + if(!IsPreview()) + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + objects.push_back(anObj._retn()); + } return res; } - -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void TransformationGUI_MultiRotationDlg::closeEvent( QCloseEvent* e ) -{ - // myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : addSubshapeToStudy // purpose : virtual method to add new SubObjects if local selection @@ -524,15 +598,14 @@ void TransformationGUI_MultiRotationDlg::closeEvent( QCloseEvent* e ) void TransformationGUI_MultiRotationDlg::addSubshapesToStudy() { QMap objMap; - - switch (getConstructorId()) - { - case 0: - objMap[GroupPoints->LineEdit2->text()] = myVector; - break; - case 1: - objMap[GroupDimensions->LineEdit2->text()] = myVector; - break; - } - addSubshapesToFather( objMap ); + + switch (getConstructorId()) { + case 0: + objMap[GroupPoints->LineEdit2->text()] = myVector; + break; + case 1: + objMap[GroupDimensions->LineEdit2->text()] = myVector; + break; + } + addSubshapesToFather(objMap); } diff --git a/src/TransformationGUI/TransformationGUI_MultiRotationDlg.h b/src/TransformationGUI/TransformationGUI_MultiRotationDlg.h index 44d7d5176..1134f7cfc 100644 --- a/src/TransformationGUI/TransformationGUI_MultiRotationDlg.h +++ b/src/TransformationGUI/TransformationGUI_MultiRotationDlg.h @@ -1,37 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : TransformationGUI_MultiRotationDlg.h -// Author : Damien COQUERET -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_MultiRotationDlg.h +// Author : Damien COQUERET, Open CASCADE S.A.S. +// +#ifndef TRANSFORMATIONGUI_MULTIROTATIONDLG_H +#define TRANSFORMATIONGUI_MULTIROTATIONDLG_H -#ifndef DIALOGBOX_MULTIROTATION_H -#define DIALOGBOX_MULTIROTATION_H - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel4Spin1Check.h" -#include "DlgRef_2Sel1Spin.h" +#include +class DlgRef_2Sel4Spin1Check; +class DlgRef_2Sel1Spin; //================================================================================= // class : TransformationGUI_MultiRotationDlg @@ -39,44 +37,49 @@ //================================================================================= class TransformationGUI_MultiRotationDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - TransformationGUI_MultiRotationDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~TransformationGUI_MultiRotationDlg(); - + TransformationGUI_MultiRotationDlg( GeometryGUI*, QWidget* = 0, + bool = false, Qt::WindowFlags = 0 ); + ~TransformationGUI_MultiRotationDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); -private : - void Init(); - void enterEvent(QEvent* e); +private: + void Init(); + void enterEvent( QEvent* ); + +private: + GEOM::GEOM_Object_var myBase, myVector; + int myNbTimes1; + int myNbTimes2; + Standard_Real myAng; + Standard_Real myStep; - GEOM::GEOM_Object_var myBase, myVector; - int myNbTimes1; - int myNbTimes2; - Standard_Real myAng; - Standard_Real myStep; - - DlgRef_2Sel1Spin* GroupPoints; - DlgRef_2Sel4Spin1Check* GroupDimensions; + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_2Sel1Spin* GroupPoints; + DlgRef_2Sel4Spin1Check* GroupDimensions; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ReverseAngle(); - void ValueChangedInSpinBox(double newValue); - void ConstructorsClicked(int constructorId); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ReverseAngle(); + void ValueChangedInSpinBox( double ); + void TextValueChangedInSpinBox( const QString& ); + void ConstructorsClicked( int ); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_MULTIROTATION_H +#endif // TRANSFORMATIONGUI_MULTIROTATIONDLG_H diff --git a/src/TransformationGUI/TransformationGUI_MultiTranslationDlg.cxx b/src/TransformationGUI/TransformationGUI_MultiTranslationDlg.cxx index b9993d6cf..e4c81518b 100644 --- a/src/TransformationGUI/TransformationGUI_MultiTranslationDlg.cxx +++ b/src/TransformationGUI/TransformationGUI_MultiTranslationDlg.cxx @@ -1,38 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_MultiTranslationDlg.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// File : TransformationGUI_MultiTranslationDlg.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "TransformationGUI_MultiTranslationDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include #include @@ -40,15 +42,7 @@ #include #include -#include - -#include "GEOMImpl_Types.hxx" - -#include - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : TransformationGUI_MultiTranslationDlg() @@ -58,36 +52,37 @@ using namespace std; // TRUE to construct a modal dialog. //================================================================================= TransformationGUI_MultiTranslationDlg::TransformationGUI_MultiTranslationDlg - (GeometryGUI* theGeometryGUI, QWidget* parent, const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +(GeometryGUI* theGeometryGUI, QWidget* parent, bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_MULTITRANSLATION_SIMPLE"))); QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_MULTITRANSLATION_DOUBLE"))); QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_MULTITRANSLATION_TITLE")); + setWindowTitle(tr("GEOM_MULTITRANSLATION_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_MULTITRANSLATION")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_MULTITRANSLATION")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_2Sel2Spin1Check(this, "GroupPoints"); + GroupPoints = new DlgRef_2Sel2Spin1Check(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_MULTITRANSLATION_SIMPLE")); GroupPoints->TextLabel1->setText(tr("GEOM_MAIN_OBJECT")); GroupPoints->TextLabel2->setText(tr("GEOM_VECTOR_U")); GroupPoints->TextLabel3->setText(tr("GEOM_STEP_U")); GroupPoints->TextLabel4->setText(tr("GEOM_NB_TIMES_U")); GroupPoints->CheckButton1->setText(tr("GEOM_REVERSE_U")); - GroupPoints->PushButton1->setPixmap(image2); - GroupPoints->PushButton2->setPixmap(image2); + GroupPoints->PushButton1->setIcon(image2); + GroupPoints->PushButton2->setIcon(image2); GroupPoints->LineEdit1->setReadOnly(true); GroupPoints->LineEdit2->setReadOnly(true); - GroupDimensions = new DlgRef_3Sel4Spin2Check(this, "GroupDimensions"); + GroupDimensions = new DlgRef_3Sel4Spin2Check(centralWidget()); GroupDimensions->GroupBox1->setTitle(tr("GEOM_MULTITRANSLATION_DOUBLE")); GroupDimensions->TextLabel1->setText(tr("GEOM_MAIN_OBJECT")); GroupDimensions->TextLabel2->setText(tr("GEOM_VECTOR_U")); @@ -98,15 +93,17 @@ TransformationGUI_MultiTranslationDlg::TransformationGUI_MultiTranslationDlg GroupDimensions->TextLabel7->setText(tr("GEOM_NB_TIMES_V")); GroupDimensions->CheckButton1->setText(tr("GEOM_REVERSE_U")); GroupDimensions->CheckButton2->setText(tr("GEOM_REVERSE_V")); - GroupDimensions->PushButton1->setPixmap(image2); - GroupDimensions->PushButton2->setPixmap(image2); - GroupDimensions->PushButton3->setPixmap(image2); + GroupDimensions->PushButton1->setIcon(image2); + GroupDimensions->PushButton2->setIcon(image2); + GroupDimensions->PushButton3->setIcon(image2); GroupDimensions->LineEdit1->setReadOnly(true); GroupDimensions->LineEdit2->setReadOnly(true); GroupDimensions->LineEdit3->setReadOnly(true); - Layout1->addWidget(GroupPoints, 2, 0); - Layout1->addWidget(GroupDimensions, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); + layout->addWidget(GroupDimensions); /***************************************************************/ setHelpFileName("multi_translation_operation_page.html"); @@ -114,7 +111,6 @@ TransformationGUI_MultiTranslationDlg::TransformationGUI_MultiTranslationDlg Init(); } - //================================================================================= // function : ~TransformationGUI_MultiTranslationDlg() // purpose : Destroys the object and frees any allocated resources @@ -124,247 +120,298 @@ TransformationGUI_MultiTranslationDlg::~TransformationGUI_MultiTranslationDlg() // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void TransformationGUI_MultiTranslationDlg::Init() { - /* Get setting of step value from file configuration */ + // Get setting of step value from file configuration SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + double step = resMgr->doubleValue("Geometry", "SettingsGeomStep", 100); double SpecificStep = 1; - /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DY->RangeStepAndValidator(1.0, MAX_NUMBER, SpecificStep, 10); - GroupPoints->SpinBox_DX->SetValue(myStepU); - GroupPoints->SpinBox_DY->SetValue(myNbTimesU); + // min, max, step and decimals for spin boxes & initial values + initSpinBox(GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, step, 10); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupPoints->SpinBox_DY, 1, 999, SpecificStep, 10); + GroupPoints->SpinBox_DX->setValue(myStepU); + GroupPoints->SpinBox_DY->setValue(myNbTimesU); + GroupPoints->SpinBox_DY->setDecimals(0); - GroupDimensions->SpinBox_DX1->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DY1->RangeStepAndValidator(1.0, MAX_NUMBER, SpecificStep, 10); - GroupDimensions->SpinBox_DX2->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupDimensions->SpinBox_DY2->RangeStepAndValidator(1.0, MAX_NUMBER, SpecificStep, 10); - GroupDimensions->SpinBox_DX1->SetValue(myStepU); - GroupDimensions->SpinBox_DY1->SetValue(myNbTimesU); - GroupDimensions->SpinBox_DX2->SetValue(myStepV); - GroupDimensions->SpinBox_DY2->SetValue(myNbTimesV); + initSpinBox(GroupDimensions->SpinBox_DX1, COORD_MIN, COORD_MAX, step, 10); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DY1, 1, 999, SpecificStep, 10); + initSpinBox(GroupDimensions->SpinBox_DX2, COORD_MIN, COORD_MAX, step, 10); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupDimensions->SpinBox_DY2, 1, 999, SpecificStep, 10); + GroupDimensions->SpinBox_DX1->setValue(myStepU); + GroupDimensions->SpinBox_DY1->setValue(myNbTimesU); + GroupDimensions->SpinBox_DX2->setValue(myStepV); + GroupDimensions->SpinBox_DY2->setValue(myNbTimesV); + GroupDimensions->SpinBox_DY1->setDecimals(0); + GroupDimensions->SpinBox_DY2->setDecimals(0); - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int))); + // init variables + myStepU = myStepV = 50.0; + myNbTimesU = myNbTimesV = 2; - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + + GroupDimensions->LineEdit1->setText(""); + GroupDimensions->LineEdit2->setText(""); + GroupDimensions->LineEdit3->setText(""); + + myBase = myVectorU = myVectorV = GEOM::GEOM_Object::_nil(); + + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); + + connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupDimensions->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupDimensions->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupDimensions->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(GroupDimensions->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(GroupDimensions->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); connect(GroupDimensions->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(GroupPoints->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); + connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); + connect(GroupPoints->SpinBox_DY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(GroupDimensions->SpinBox_DX1, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(GroupDimensions->SpinBox_DY1, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(GroupDimensions->SpinBox_DX2, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); connect(GroupDimensions->SpinBox_DY2, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DY, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DX1, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DY1, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DX2, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupDimensions->SpinBox_DY2, SLOT(SetStep(double))); + connect(GroupPoints->SpinBox_DX, SIGNAL(textChanged(const QString& )), + this, SLOT(TextValueChangedInSpinBox(const QString& ))); + connect(GroupDimensions->SpinBox_DX1, SIGNAL(textChanged(const QString& )), + this, SLOT(TextValueChangedInSpinBox(const QString& ))); + connect(GroupDimensions->SpinBox_DX2, SIGNAL(textChanged(const QString& )), + this, SLOT(TextValueChangedInSpinBox(const QString& ))); + + connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), this, SLOT(SetDoubleSpinBoxStep(double))); - connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(ReverseStepU())); + connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(ReverseStepU())); connect(GroupDimensions->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(ReverseStepU())); connect(GroupDimensions->CheckButton2, SIGNAL(toggled(bool)), this, SLOT(ReverseStepV())); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + initName(tr("GEOM_MULTITRANSLATION")); - initName( tr( "GEOM_MULTITRANSLATION" ) ); - ConstructorsClicked( 0 ); + ConstructorsClicked(0); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void TransformationGUI_MultiTranslationDlg::SetDoubleSpinBoxStep (double step) +{ + GroupPoints->SpinBox_DX->setSingleStep(step); + GroupPoints->SpinBox_DY->setSingleStep(step); + GroupDimensions->SpinBox_DX1->setSingleStep(step); + GroupDimensions->SpinBox_DY1->setSingleStep(step); + GroupDimensions->SpinBox_DX2->setSingleStep(step); + GroupDimensions->SpinBox_DY2->setSingleStep(step); +} //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void TransformationGUI_MultiTranslationDlg::ConstructorsClicked(int constructorId) +void TransformationGUI_MultiTranslationDlg::ConstructorsClicked (int constructorId) { disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - myStepU = myStepV = 50.0; - myNbTimesU = myNbTimesV = 2; - - globalSelection( GEOM_ALLSHAPES ); - - switch (constructorId) + switch (constructorId) { + case 0: // Translate simple { - case 0: /* Translate simple */ - { - GroupDimensions->hide(); - resize(0, 0); - GroupPoints->show(); + GroupDimensions->hide(); + GroupPoints->show(); - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit1->setText(""); - GroupPoints->LineEdit2->setText(""); + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + myBase = myVectorU = GEOM::GEOM_Object::_nil(); - GroupPoints->SpinBox_DX->SetValue(myStepU); - GroupPoints->SpinBox_DY->SetValue(myNbTimesU); - - break; - } - case 1: /* Translate double */ - { - GroupPoints->hide(); - resize(0, 0); - GroupDimensions->show(); + GroupPoints->SpinBox_DX->setValue(myStepU); + GroupPoints->SpinBox_DY->setValue(myNbTimesU); - myEditCurrentArgument = GroupDimensions->LineEdit1; - GroupDimensions->LineEdit1->setText(""); - GroupDimensions->LineEdit2->setText(""); - GroupDimensions->LineEdit3->setText(""); - - GroupDimensions->SpinBox_DX1->SetValue(myStepU); - GroupDimensions->SpinBox_DY1->SetValue(myNbTimesU); - GroupDimensions->SpinBox_DX2->SetValue(myStepV); - GroupDimensions->SpinBox_DY2->SetValue(myNbTimesV); - - myVectorV = GEOM::GEOM_Object::_nil(); - break; - } + GroupPoints->PushButton1->click(); + break; } + case 1: // Translate double + { + GroupPoints->hide(); + GroupDimensions->show(); - myEditCurrentArgument->setFocus(); - myBase = myVectorU = GEOM::GEOM_Object::_nil(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + GroupDimensions->LineEdit1->setText(""); + GroupDimensions->LineEdit2->setText(""); + GroupDimensions->LineEdit3->setText(""); + myBase = myVectorU = myVectorV = GEOM::GEOM_Object::_nil(); + + GroupDimensions->SpinBox_DX1->setValue(myStepU); + GroupDimensions->SpinBox_DY1->setValue(myNbTimesU); + GroupDimensions->SpinBox_DX2->setValue(myStepV); + GroupDimensions->SpinBox_DY2->setValue(myNbTimesV); + + GroupDimensions->PushButton1->click(); + break; + } + } + + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); + + if (myInitial) { + myInitial = false; + SelectionIntoArgument(); + } + else { + displayPreview(); + } } - //================================================================================= // function : ClickOnOk() // purpose : //================================================================================= void TransformationGUI_MultiTranslationDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool TransformationGUI_MultiTranslationDlg::ClickOnApply() { - if ( !onAccept() ) + if (!onAccept()) return false; initName(); - ConstructorsClicked( getConstructorId() ); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void TransformationGUI_MultiTranslationDlg::SelectionIntoArgument() { + erasePreview(); myEditCurrentArgument->setText(""); - if (IObjectCount() != 1) { - if (myEditCurrentArgument == GroupPoints->LineEdit1 || - myEditCurrentArgument == GroupDimensions->LineEdit1) - myBase = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupPoints->LineEdit2 || - myEditCurrentArgument == GroupDimensions->LineEdit2) - myVectorU = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupDimensions->LineEdit3) - myVectorV = GEOM::GEOM_Object::_nil(); + if (myEditCurrentArgument == GroupPoints->LineEdit1 || + myEditCurrentArgument == GroupDimensions->LineEdit1) + myBase = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit2 || + myEditCurrentArgument == GroupDimensions->LineEdit2) + myVectorU = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupDimensions->LineEdit3) + myVectorV = GEOM::GEOM_Object::_nil(); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + if (aSelList.Extent() != 1) return; - } // nbSel == 1 Standard_Boolean testResult = Standard_False;; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult ); + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); - if ( !testResult || CORBA::is_nil( aSelectedObject ) || !GEOMBase::IsShape( aSelectedObject ) ) + if (!testResult || CORBA::is_nil(aSelectedObject) || !GEOMBase::IsShape(aSelectedObject)) return; - QString aName = GEOMBase::GetName( aSelectedObject ); + QString aName = GEOMBase::GetName(aSelectedObject); if (myEditCurrentArgument == GroupPoints->LineEdit1 || myEditCurrentArgument == GroupDimensions->LineEdit1) myBase = aSelectedObject; else if (myEditCurrentArgument == GroupPoints->LineEdit2 || myEditCurrentArgument == GroupDimensions->LineEdit2 || - myEditCurrentArgument == GroupDimensions->LineEdit3 ) { - if ( testResult && !aSelectedObject->_is_nil() ) - { - TopoDS_Shape aShape; - - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) - { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes( firstIObject(), aMap ); - if ( aMap.Extent() == 1 ) - { - int anIndex = aMap( 1 ); - aName += QString(":edge_%1").arg(anIndex); + myEditCurrentArgument == GroupDimensions->LineEdit3) { + TopoDS_Shape aShape; - //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); - - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations( getStudyId() ); - if ( myEditCurrentArgument == GroupDimensions->LineEdit3 ) - myVectorV = aShapesOp->GetSubShape(aSelectedObject, anIndex); - else - myVectorU = aShapesOp->GetSubShape(aSelectedObject, anIndex); - } - else { - if ( myEditCurrentArgument == GroupDimensions->LineEdit3 ) - myVectorV = aFindedObject; - else - myVectorU = aFindedObject; - } - } - else { - if (aShape.ShapeType() != TopAbs_EDGE) { - aSelectedObject = GEOM::GEOM_Object::_nil(); - aName = ""; - } - if ( myEditCurrentArgument == GroupDimensions->LineEdit3 ) - myVectorV = aSelectedObject; - else - myVectorU = aSelectedObject; - } - } - } + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) { + int anIndex = aMap(1); + aName += QString(":edge_%1").arg(anIndex); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); + + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + if (myEditCurrentArgument == GroupDimensions->LineEdit3) + myVectorV = aShapesOp->GetSubShape(aSelectedObject, anIndex); + else + myVectorU = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { + if (myEditCurrentArgument == GroupDimensions->LineEdit3) + myVectorV = aFindedObject; + else + myVectorU = aFindedObject; + } + } + else { + if (aShape.ShapeType() != TopAbs_EDGE) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } + if (myEditCurrentArgument == GroupDimensions->LineEdit3) + myVectorV = aSelectedObject; + else + myVectorU = aSelectedObject; + } } + } + myEditCurrentArgument->setText(aName); - myEditCurrentArgument->setText( aName ); + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + if (!myBase->_is_nil() && myVectorU->_is_nil()) + GroupPoints->PushButton2->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit2) { + if (!myVectorU->_is_nil() && myBase->_is_nil()) + GroupPoints->PushButton1->click(); + } + else if (myEditCurrentArgument == GroupDimensions->LineEdit1) { + if (!myBase->_is_nil() && myVectorU->_is_nil()) + GroupDimensions->PushButton2->click(); + } + else if (myEditCurrentArgument == GroupDimensions->LineEdit2) { + if (!myVectorU->_is_nil() && myVectorV->_is_nil()) + GroupDimensions->PushButton3->click(); + } + else if (myEditCurrentArgument == GroupDimensions->LineEdit3) { + if (!myVectorV->_is_nil() && myBase->_is_nil()) + GroupDimensions->PushButton1->click(); + } - displayPreview(); + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + displayPreview(); } - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -372,31 +419,64 @@ void TransformationGUI_MultiTranslationDlg::SelectionIntoArgument() void TransformationGUI_MultiTranslationDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - globalSelection( GEOM_ALLSHAPES ); - if(send == GroupPoints->PushButton1) { + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + globalSelection(GEOM_ALLSHAPES); + + if (send == GroupPoints->PushButton1) { myEditCurrentArgument = GroupPoints->LineEdit1; + + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); } - else if(send == GroupPoints->PushButton2) { + else if (send == GroupPoints->PushButton2) { myEditCurrentArgument = GroupPoints->LineEdit2; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + + GroupPoints->PushButton1->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); } - else if(send == GroupDimensions->PushButton1) { + else if (send == GroupDimensions->PushButton1) { myEditCurrentArgument = GroupDimensions->LineEdit1; + + GroupDimensions->PushButton2->setDown(false); + GroupDimensions->PushButton3->setDown(false); + GroupDimensions->LineEdit2->setEnabled(false); + GroupDimensions->LineEdit3->setEnabled(false); } - else if(send == GroupDimensions->PushButton2) { + else if (send == GroupDimensions->PushButton2) { myEditCurrentArgument = GroupDimensions->LineEdit2; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + + GroupDimensions->PushButton1->setDown(false); + GroupDimensions->PushButton3->setDown(false); + GroupDimensions->LineEdit1->setEnabled(false); + GroupDimensions->LineEdit3->setEnabled(false); } - else if(send == GroupDimensions->PushButton3) { + else if (send == GroupDimensions->PushButton3) { myEditCurrentArgument = GroupDimensions->LineEdit3; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); + + GroupDimensions->PushButton1->setDown(false); + GroupDimensions->PushButton2->setDown(false); + GroupDimensions->LineEdit1->setEnabled(false); + GroupDimensions->LineEdit2->setEnabled(false); } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + // enable line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); -} + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); +} //================================================================================= // function : LineEditReturnPressed() @@ -405,16 +485,14 @@ void TransformationGUI_MultiTranslationDlg::SetEditCurrentArgument() void TransformationGUI_MultiTranslationDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || send == GroupDimensions->LineEdit1 || - send == GroupPoints->LineEdit2 || send == GroupDimensions->LineEdit2 || - send == GroupDimensions->LineEdit3) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } + if (send == GroupPoints->LineEdit1 || send == GroupDimensions->LineEdit1 || + send == GroupPoints->LineEdit2 || send == GroupDimensions->LineEdit2 || + send == GroupDimensions->LineEdit3) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -422,60 +500,85 @@ void TransformationGUI_MultiTranslationDlg::LineEditReturnPressed() void TransformationGUI_MultiTranslationDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); ConstructorsClicked( getConstructorId() ); } - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void TransformationGUI_MultiTranslationDlg::enterEvent(QEvent* e) +void TransformationGUI_MultiTranslationDlg::enterEvent (QEvent*) { - if(!GroupConstructors->isEnabled()) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } +//================================================================================= +// function : TextValueChangedInSpinBox +// purpose : +//================================================================================= +void TransformationGUI_MultiTranslationDlg::TextValueChangedInSpinBox( const QString& s) +{ + QObject* send = (QObject*)sender(); + bool isDigit = true; + + switch (getConstructorId()) { + case 0: + GroupPoints->SpinBox_DX->text().toDouble(&isDigit); + if(!isDigit){ + GroupPoints->CheckButton1->setChecked(false); + } + GroupPoints->CheckButton1->setEnabled(isDigit); + break; + case 1: + if (send == GroupDimensions->SpinBox_DX1) { + GroupDimensions->SpinBox_DX1->text().toDouble(&isDigit); + if(!isDigit) + GroupDimensions->CheckButton1->setChecked(false); + GroupDimensions->CheckButton1->setEnabled(isDigit); + } + else if(send == GroupDimensions->SpinBox_DX2){ + GroupDimensions->SpinBox_DX2->text().toDouble(&isDigit); + if(!isDigit) + GroupDimensions->CheckButton2->setChecked(false); + GroupDimensions->CheckButton2->setEnabled(isDigit); + } + break; + } +} //================================================================================= // function : ValueChangedInSpinBox() // purpose : //================================================================================= -void TransformationGUI_MultiTranslationDlg::ValueChangedInSpinBox(double newValue) +void TransformationGUI_MultiTranslationDlg::ValueChangedInSpinBox (double newValue) { QObject* send = (QObject*)sender(); - - switch(getConstructorId()) - { - case 0 : - { - if(send == GroupPoints->SpinBox_DX) - myStepU = newValue; - else if(send == GroupPoints->SpinBox_DY) - myNbTimesU = (int)newValue; - break; - } - case 1 : - { - if(send == GroupDimensions->SpinBox_DX1) - myStepU = newValue; - else if(send == GroupDimensions->SpinBox_DY1) - myNbTimesU = (int)newValue; - else if(send == GroupDimensions->SpinBox_DX2) - myStepV = newValue; - else if(send == GroupDimensions->SpinBox_DY2) - myNbTimesV = (int)newValue; - break; - } - } + switch (getConstructorId()) { + case 0: + if (send == GroupPoints->SpinBox_DX) + myStepU = newValue; + else if (send == GroupPoints->SpinBox_DY) + myNbTimesU = (int)newValue; + break; + case 1: + if (send == GroupDimensions->SpinBox_DX1) + myStepU = newValue; + else if (send == GroupDimensions->SpinBox_DY1) + myNbTimesU = (int)newValue; + else if (send == GroupDimensions->SpinBox_DX2) + myStepV = newValue; + else if (send == GroupDimensions->SpinBox_DY2) + myNbTimesV = (int)newValue; + break; + } displayPreview(); } - //================================================================================= // function : ReverseStepU() // purpose : 'state' not used here @@ -486,15 +589,14 @@ void TransformationGUI_MultiTranslationDlg::ReverseStepU() int aConstructorId = getConstructorId(); - if(aConstructorId == 0) - GroupPoints->SpinBox_DX->SetValue(myStepU); - else if(aConstructorId == 1) - GroupDimensions->SpinBox_DX1->SetValue(myStepU); + if (aConstructorId == 0) + GroupPoints->SpinBox_DX->setValue(myStepU); + else if (aConstructorId == 1) + GroupDimensions->SpinBox_DX1->setValue(myStepU); displayPreview(); } - //================================================================================= // function : ReverseStepV // purpose : 'state' not used here @@ -503,34 +605,42 @@ void TransformationGUI_MultiTranslationDlg::ReverseStepV() { myStepV = -myStepV; - GroupDimensions->SpinBox_DX2->SetValue(myStepV); + GroupDimensions->SpinBox_DX2->setValue(myStepV); displayPreview(); } - //================================================================================= // function : createOperation // purpose : //================================================================================= GEOM::GEOM_IOperations_ptr TransformationGUI_MultiTranslationDlg::createOperation() { - return myGeomGUI->GetGeomGen()->GetITransformOperations( getStudyId() ); + return getGeomEngine()->GetITransformOperations(getStudyId()); } - //================================================================================= // function : isValid // purpose : //================================================================================= -bool TransformationGUI_MultiTranslationDlg::isValid( QString& msg ) +bool TransformationGUI_MultiTranslationDlg::isValid (QString& msg) { int aConstructorId = getConstructorId(); - - if(aConstructorId == 0) - return !(myBase->_is_nil() || myVectorU->_is_nil()); - else if(aConstructorId == 1) - return !(myBase->_is_nil() || myVectorU->_is_nil() || myVectorV->_is_nil()); + + if (aConstructorId == 0) { + bool ok = true; + ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox_DY->isValid( msg, !IsPreview() ) && ok; + return !(myBase->_is_nil() || myVectorU->_is_nil()) && ok; + } + else if (aConstructorId == 1) { + bool ok = true; + ok = GroupDimensions->SpinBox_DX1->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DY1->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DX2->isValid( msg, !IsPreview() ) && ok; + ok = GroupDimensions->SpinBox_DY2->isValid( msg, !IsPreview() ) && ok; + return !(myBase->_is_nil() || myVectorU->_is_nil() || myVectorV->_is_nil()) && ok; + } return 0; } @@ -538,51 +648,52 @@ bool TransformationGUI_MultiTranslationDlg::isValid( QString& msg ) // function : execute // purpose : //================================================================================= -bool TransformationGUI_MultiTranslationDlg::execute( ObjectList& objects ) +bool TransformationGUI_MultiTranslationDlg::execute (ObjectList& objects) { bool res = false; GEOM::GEOM_Object_var anObj; - switch ( getConstructorId() ) - { - case 0 : - { - if ( !CORBA::is_nil( myBase ) && !CORBA::is_nil( myVectorU ) ) { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->MultiTranslate1D( myBase, myVectorU, myStepU, myNbTimesU ); - res = true; - } - break; - } - case 1 : - { - if ( !CORBA::is_nil( myBase ) && !CORBA::is_nil( myVectorU ) && !CORBA::is_nil( myVectorV ) ) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->MultiTranslate2D( myBase, myVectorU, myStepU, myNbTimesU, - myVectorV, myStepV, myNbTimesV ); - res = true; - } - break; - } - } + QStringList aParameters; - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + switch (getConstructorId()) { + case 0: + if (!CORBA::is_nil(myBase) && !CORBA::is_nil(myVectorU)) { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + MultiTranslate1D(myBase, myVectorU, myStepU, myNbTimesU); + if(!IsPreview()) { + aParameters<SpinBox_DX->text(); + aParameters<SpinBox_DY->text(); + } + res = true; + } + break; + case 1: + if (!CORBA::is_nil(myBase) && !CORBA::is_nil(myVectorU) && + !CORBA::is_nil(myVectorV)) { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + MultiTranslate2D(myBase, myVectorU, myStepU, myNbTimesU, + myVectorV, myStepV, myNbTimesV); + if(!IsPreview()) { + aParameters<SpinBox_DX1->text(); + aParameters<SpinBox_DY1->text(); + aParameters<SpinBox_DX2->text(); + aParameters<SpinBox_DY2->text(); + } + res = true; + } + break; + } + + if (!anObj->_is_nil()) { + if(!IsPreview()) + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + objects.push_back(anObj._retn()); + } return res; } - -//================================================================================= -// function : closeEvent -// purpose : -//================================================================================= -void TransformationGUI_MultiTranslationDlg::closeEvent( QCloseEvent* e ) -{ - // myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); -} - //================================================================================= // function : addSubshapeToStudy // purpose : virtual method to add new SubObjects if local selection @@ -590,16 +701,15 @@ void TransformationGUI_MultiTranslationDlg::closeEvent( QCloseEvent* e ) void TransformationGUI_MultiTranslationDlg::addSubshapesToStudy() { QMap objMap; - - switch (getConstructorId()) - { - case 0: - objMap[GroupPoints->LineEdit2->text()] = myVectorU; - break; - case 1: - objMap[GroupDimensions->LineEdit2->text()] = myVectorU; - objMap[GroupDimensions->LineEdit3->text()] = myVectorV; - break; - } - addSubshapesToFather( objMap ); + + switch (getConstructorId()) { + case 0: + objMap[GroupPoints->LineEdit2->text()] = myVectorU; + break; + case 1: + objMap[GroupDimensions->LineEdit2->text()] = myVectorU; + objMap[GroupDimensions->LineEdit3->text()] = myVectorV; + break; + } + addSubshapesToFather(objMap); } diff --git a/src/TransformationGUI/TransformationGUI_MultiTranslationDlg.h b/src/TransformationGUI/TransformationGUI_MultiTranslationDlg.h index c5746db3e..ab7d67b6a 100644 --- a/src/TransformationGUI/TransformationGUI_MultiTranslationDlg.h +++ b/src/TransformationGUI/TransformationGUI_MultiTranslationDlg.h @@ -1,37 +1,35 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : TransformationGUI_MultiTranslationDlg.h -// Author : Damien COQUERET -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_MultiTranslationDlg.h +// Author : Damien COQUERET, Open CASCADE S.A.S. +// +#ifndef TRANSFORMATIONGUI_MULTITRANSLATIONDLG_H +#define TRANSFORMATIONGUI_MULTITRANSLATIONDLG_H -#ifndef DIALOGBOX_MULTITRANSLATION_H -#define DIALOGBOX_MULTITRANSLATION_H - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel2Spin1Check.h" -#include "DlgRef_3Sel4Spin2Check.h" +#include +class DlgRef_2Sel2Spin1Check; +class DlgRef_3Sel4Spin2Check; //================================================================================= // class : TransformationGUI_MultiTranslationDlg @@ -39,45 +37,50 @@ //================================================================================= class TransformationGUI_MultiTranslationDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - TransformationGUI_MultiTranslationDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~TransformationGUI_MultiTranslationDlg(); + TransformationGUI_MultiTranslationDlg( GeometryGUI*, QWidget* = 0, + bool = false, Qt::WindowFlags = 0 ); + ~TransformationGUI_MultiTranslationDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); -private : - void Init(); - void enterEvent(QEvent* e); - - GEOM::GEOM_Object_var myBase, myVectorU, myVectorV ; - int myNbTimesU; - int myNbTimesV; - Standard_Real myStepU; - Standard_Real myStepV; - - DlgRef_2Sel2Spin1Check* GroupPoints; - DlgRef_3Sel4Spin2Check* GroupDimensions; +private: + void Init(); + void enterEvent( QEvent* ); + +private: + GEOM::GEOM_Object_var myBase, myVectorU, myVectorV; + int myNbTimesU; + int myNbTimesV; + Standard_Real myStepU; + Standard_Real myStepV; + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_2Sel2Spin1Check* GroupPoints; + DlgRef_3Sel4Spin2Check* GroupDimensions; + private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ReverseStepU(); - void ReverseStepV(); - void ValueChangedInSpinBox(double newValue); - void ConstructorsClicked(int constructorId); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ReverseStepU(); + void ReverseStepV(); + void ValueChangedInSpinBox( double ); + void TextValueChangedInSpinBox( const QString& ); + void ConstructorsClicked( int ); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_MULTITRANSLATION_H +#endif // TRANSFORMATIONGUI_MULTITRANSLATIONDLG_H diff --git a/src/TransformationGUI/TransformationGUI_OffsetDlg.cxx b/src/TransformationGUI/TransformationGUI_OffsetDlg.cxx index 862faabe7..f548ca48e 100644 --- a/src/TransformationGUI/TransformationGUI_OffsetDlg.cxx +++ b/src/TransformationGUI/TransformationGUI_OffsetDlg.cxx @@ -1,85 +1,82 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_OffsetDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : TransformationGUI_OffsetDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "TransformationGUI_OffsetDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include -#include - -#include "utilities.h" - -using namespace std; +#include +#include +#include +#include //================================================================================= // class : TransformationGUI_OffsetDlg() -// purpose : Constructs a TransformationGUI_OffsetDlg which is a child of 'parent', with the +// purpose : Constructs a TransformationGUI_OffsetDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -TransformationGUI_OffsetDlg::TransformationGUI_OffsetDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +TransformationGUI_OffsetDlg::TransformationGUI_OffsetDlg( GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl ) + : GEOMBase_Skeleton( theGeometryGUI, parent, modal, fl ) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_OFFSET"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_DLG_OFFSET" ) ) ); + QPixmap image1( SUIT_Session::session()->resourceMgr()->loadPixmap( "GEOM", tr( "ICON_SELECT" ) ) ); - setCaption(tr("GEOM_OFFSET_TITLE")); + setWindowTitle( tr( "GEOM_OFFSET_TITLE" ) ); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_OFFSET")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); - - GroupPoints = new DlgRef_1Sel1Spin1Check(this, "GroupPoints"); - GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - GroupPoints->TextLabel1->setText(tr("GEOM_OBJECTS")); - GroupPoints->TextLabel2->setText(tr("GEOM_OFFSET")); - GroupPoints->CheckButton1->setText(tr("GEOM_CREATE_COPY")); + mainFrame()->GroupConstructors->setTitle( tr( "GEOM_OFFSET" ) ); + mainFrame()->RadioButton1->setIcon( image0 ); + mainFrame()->RadioButton2->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton2->close(); + mainFrame()->RadioButton3->setAttribute( Qt::WA_DeleteOnClose ); + mainFrame()->RadioButton3->close(); + + GroupPoints = new DlgRef_1Sel1Spin1Check( centralWidget() ); + GroupPoints->GroupBox1->setTitle( tr( "GEOM_ARGUMENTS" ) ); + GroupPoints->TextLabel1->setText( tr( "GEOM_OBJECTS" ) ); + GroupPoints->TextLabel2->setText( tr( "GEOM_OFFSET" ) ); + GroupPoints->CheckButton1->setText( tr( "GEOM_CREATE_COPY" ) ); // san -- modification of an exisitng object by offset is not allowed GroupPoints->CheckButton1->hide(); - GroupPoints->PushButton1->setPixmap(image1); - - Layout1->addWidget(GroupPoints, 2, 0); - + GroupPoints->PushButton1->setIcon( image1 ); + + QVBoxLayout* layout = new QVBoxLayout( centralWidget() ); + layout->setMargin( 0 ); layout->setSpacing( 6 ); + layout->addWidget( GroupPoints ); + /***************************************************************/ - setHelpFileName("offset_operation_page.html"); - + setHelpFileName( "offset_operation_page.html" ); + Init(); } @@ -89,7 +86,7 @@ TransformationGUI_OffsetDlg::TransformationGUI_OffsetDlg(GeometryGUI* theGeometr // purpose : Destroys the object and frees any allocated resources //================================================================================= TransformationGUI_OffsetDlg::~TransformationGUI_OffsetDlg() -{ +{ /* no need to delete child widgets, Qt does it all for us */ } @@ -99,33 +96,35 @@ TransformationGUI_OffsetDlg::~TransformationGUI_OffsetDlg() // purpose : //================================================================================= void TransformationGUI_OffsetDlg::Init() -{ +{ /* init variables */ myEditCurrentArgument = GroupPoints->LineEdit1; GroupPoints->LineEdit1->setReadOnly( true ); - + /* Get setting of step value from file configuration */ double step = 1; - + /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DX->SetValue(1e-05); - + initSpinBox( GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, step, 3 ); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupPoints->SpinBox_DX->setValue( 1e-05 ); + // Activate Create a Copy mode - GroupPoints->CheckButton1->setChecked(true); - CreateCopyModeChanged(true); + GroupPoints->CheckButton1->setChecked( true ); + CreateCopyModeChanged( true ); + + mainFrame()->GroupBoxPublish->show(); /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - - connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); + connect( buttonOk(), SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); + connect( buttonApply(), SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); + + connect( GroupPoints->PushButton1, SIGNAL( clicked() ), this, SLOT( SetEditCurrentArgument() ) ); + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); + connect( GroupPoints->SpinBox_DX, SIGNAL( valueChanged( double ) ), this, SLOT( ValueChangedInSpinBox() ) ); + connect( GroupPoints->CheckButton1, SIGNAL( toggled( bool ) ), this, SLOT( CreateCopyModeChanged( bool ) ) ); + initName( tr( "GEOM_OFFSET" ) ); globalSelection( GEOM_ALLSHAPES ); @@ -151,7 +150,7 @@ bool TransformationGUI_OffsetDlg::ClickOnApply() { if ( !onAccept( GroupPoints->CheckButton1->isChecked() ) ) return false; - + initName(); return true; } @@ -163,22 +162,25 @@ bool TransformationGUI_OffsetDlg::ClickOnApply() //================================================================================= void TransformationGUI_OffsetDlg::SelectionIntoArgument() { - myEditCurrentArgument->setText(""); + myEditCurrentArgument->setText( "" ); QString aName; - int aNbSel = GEOMBase::GetNameOfSelectedIObjects(selectedIO(), aName); - if(aNbSel < 1) - { - myObjects.length(0); - return; - } + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName); + if ( aNbSel < 1 ) { + myObjects.length( 0 ); + return; + } // nbSel > 0 - GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), myObjects); + GEOMBase::ConvertListOfIOInListOfGO (aSelList, myObjects); if (!myObjects.length()) return; - myEditCurrentArgument->setText( aName ); + myEditCurrentArgument->setText(aName); displayPreview(); } @@ -191,8 +193,7 @@ void TransformationGUI_OffsetDlg::SelectionIntoArgument() void TransformationGUI_OffsetDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if ( send == GroupPoints->LineEdit1 ) - { + if ( send == GroupPoints->LineEdit1 ) { myEditCurrentArgument = GroupPoints->LineEdit1; GEOMBase_Skeleton::LineEditReturnPressed(); } @@ -206,13 +207,13 @@ void TransformationGUI_OffsetDlg::LineEditReturnPressed() void TransformationGUI_OffsetDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - - if(send == GroupPoints->PushButton1) - { - myEditCurrentArgument = GroupPoints->LineEdit1; - myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); - } + + if ( send == GroupPoints->PushButton1 ) { + GroupPoints->PushButton1->setDown(true); + myEditCurrentArgument = GroupPoints->LineEdit1; + myEditCurrentArgument->setFocus(); + SelectionIntoArgument(); + } } @@ -220,9 +221,9 @@ void TransformationGUI_OffsetDlg::SetEditCurrentArgument() // function : enterEvent() // purpose : when mouse enter onto the QWidget //================================================================================= -void TransformationGUI_OffsetDlg::enterEvent(QEvent * e) +void TransformationGUI_OffsetDlg::enterEvent( QEvent* ) { - if ( !GroupConstructors->isEnabled() ) + if ( !mainFrame()->GroupConstructors->isEnabled() ) ActivateThisDialog(); } @@ -234,8 +235,8 @@ void TransformationGUI_OffsetDlg::enterEvent(QEvent * e) void TransformationGUI_OffsetDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), + SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); globalSelection( GEOM_ALLSHAPES ); myEditCurrentArgument = GroupPoints->LineEdit1; myEditCurrentArgument->setFocus(); @@ -268,20 +269,18 @@ GEOM::GEOM_IOperations_ptr TransformationGUI_OffsetDlg::createOperation() bool TransformationGUI_OffsetDlg::isValid( QString& msg ) { //return !(myObjects.length() == 0); - if (myObjects.length() == 0) return false; + if ( myObjects.length() == 0 ) return false; - for (int i = 0; i < myObjects.length(); i++) - { + for ( int i = 0; i < myObjects.length(); i++ ) { GEOM::shape_type aType = myObjects[i]->GetShapeType(); - if( aType != GEOM::FACE && aType != GEOM::SHELL && aType != GEOM::SOLID ){ - msg = tr("ERROR_SHAPE_TYPE"); - return false; + if ( aType != GEOM::FACE && aType != GEOM::SHELL && aType != GEOM::SOLID ) { + msg = tr( "ERROR_SHAPE_TYPE" ); + return false; } } - return true; + return GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ); } - //================================================================================= // function : execute // purpose : @@ -289,57 +288,62 @@ bool TransformationGUI_OffsetDlg::isValid( QString& msg ) bool TransformationGUI_OffsetDlg::execute( ObjectList& objects ) { bool res = false; - + GEOM::GEOM_Object_var anObj; - - if (GroupPoints->CheckButton1->isChecked() || IsPreview()) - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - OffsetShapeCopy( myObjects[i], GetOffset() ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + + if ( GroupPoints->CheckButton1->isChecked() || IsPreview() ) { + for ( int i = 0; i < myObjects.length(); i++ ) { + + anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->OffsetShapeCopy( myObjects[i], GetOffset() ); + if ( !anObj->_is_nil() ) { + if(!IsPreview()) { + anObj->SetParameters(GroupPoints->SpinBox_DX->text().toLatin1().constData()); + } + objects.push_back( anObj._retn() ); + } } - else - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - OffsetShape( myObjects[i], GetOffset() ); + } + else { + for ( int i = 0; i < myObjects.length(); i++ ) { + anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->OffsetShape( myObjects[i], GetOffset() ); if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + objects.push_back( anObj._retn() ); } - + } res = true; - + return res; } //================================================================================= -// function : closeEvent +// function : restoreSubShapes // purpose : //================================================================================= -void TransformationGUI_OffsetDlg::closeEvent( QCloseEvent* e ) +void TransformationGUI_OffsetDlg::restoreSubShapes( SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject ) { - // myGeomGUI->SetState( -1 ); - GEOMBase_Skeleton::closeEvent( e ); + if ( mainFrame()->CheckBoxRestoreSS->isChecked() ) { + // empty list of arguments means that all arguments should be restored + getGeomEngine()->RestoreSubShapesSO( theStudy, theSObject, GEOM::ListOfGO(), + /*theFindMethod=*/GEOM::FSM_Transformed, + /*theInheritFirstArg=*/true ); + } } - //================================================================================= // function : GetOffset() // purpose : //================================================================================= double TransformationGUI_OffsetDlg::GetOffset() const { - return GroupPoints->SpinBox_DX->GetValue(); + return GroupPoints->SpinBox_DX->value(); } - //================================================================================= // function : CreateCopyModeChanged() // purpose : //================================================================================= -void TransformationGUI_OffsetDlg::CreateCopyModeChanged(bool isCreateCopy) +void TransformationGUI_OffsetDlg::CreateCopyModeChanged( bool isCreateCopy ) { - this->GroupBoxName->setEnabled(isCreateCopy); + mainFrame()->GroupBoxName->setEnabled( isCreateCopy ); } diff --git a/src/TransformationGUI/TransformationGUI_OffsetDlg.h b/src/TransformationGUI/TransformationGUI_OffsetDlg.h index a49cdd87f..c83ec5fed 100644 --- a/src/TransformationGUI/TransformationGUI_OffsetDlg.h +++ b/src/TransformationGUI/TransformationGUI_OffsetDlg.h @@ -1,36 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : TransformationGUI_OffsetDlg.h -// Author : Michael Zorin -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_OffsetDlg.h +// Author : Michael ZORIN, Open CASCADE S.A.S. (mikhail.zorin@opencascade.com) +// +#ifndef TRANSFORMATIONGUI_OFFSETDLG_H +#define TRANSFORMATIONGUI_OFFSETDLG_H -#ifndef DIALOGBOX_OFFSET_H -#define DIALOGBOX_OFFSET_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_1Sel1Spin1Check.h" - +class DlgRef_1Sel1Spin1Check; //================================================================================= // class : TransformationGUI_OffsetDlg @@ -38,39 +36,39 @@ //================================================================================= class TransformationGUI_OffsetDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - TransformationGUI_OffsetDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~TransformationGUI_OffsetDlg(); + TransformationGUI_OffsetDlg( GeometryGUI*, QWidget* = 0, + bool = false, Qt::WindowFlags = 0 ); + ~TransformationGUI_OffsetDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - - virtual void closeEvent( QCloseEvent* e ); - + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void restoreSubShapes( SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr ); + private: - void Init(); - void enterEvent(QEvent* e); - double GetOffset() const; + void Init(); + void enterEvent( QEvent* ); + double GetOffset() const; - GEOM::ListOfGO myObjects; +private: + GEOM::ListOfGO myObjects; - DlgRef_1Sel1Spin1Check* GroupPoints; + DlgRef_1Sel1Spin1Check* GroupPoints; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void SelectionIntoArgument(); - void LineEditReturnPressed(); - void SetEditCurrentArgument(); - void ValueChangedInSpinBox(); - void CreateCopyModeChanged(bool isCreateCopy); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void SelectionIntoArgument(); + void LineEditReturnPressed(); + void SetEditCurrentArgument(); + void ValueChangedInSpinBox(); + void CreateCopyModeChanged( bool ); }; -#endif // DIALOGBOX_OFFSET_H +#endif // TRANSFORMATIONGUI_OFFSETDLG_H diff --git a/src/TransformationGUI/TransformationGUI_PositionDlg.cxx b/src/TransformationGUI/TransformationGUI_PositionDlg.cxx index 721f5b9d7..e6cd6c213 100644 --- a/src/TransformationGUI/TransformationGUI_PositionDlg.cxx +++ b/src/TransformationGUI/TransformationGUI_PositionDlg.cxx @@ -1,189 +1,283 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_PositionDlg.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. // -// File : TransformationGUI_PositionDlg.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header$ - #include "TransformationGUI_PositionDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include -#include -#include +#include +#include +#include +#include +#include -#include "TColStd_MapOfInteger.hxx" +// OCCT Includes +#include -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : TransformationGUI_PositionDlg() -// purpose : Constructs a TransformationGUI_PositionDlg which is a child of 'parent', with the +// purpose : Constructs a TransformationGUI_PositionDlg which is a child of 'parent', with the // name 'name' and widget flags set to 'f'. // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= TransformationGUI_PositionDlg::TransformationGUI_PositionDlg - (GeometryGUI* theGeometryGUI, QWidget* parent, const char* name, bool modal, WFlags fl) - : GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +(GeometryGUI* theGeometryGUI, QWidget* parent, bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); - QPixmap image0(aResMgr->loadPixmap("GEOM",tr("ICON_DLG_POSITION"))); - QPixmap image1(aResMgr->loadPixmap("GEOM",tr("ICON_DLG_POSITION2"))); - QPixmap imageselect(aResMgr->loadPixmap("GEOM",tr("ICON_SELECT"))); + QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_POSITION"))); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_POSITION2"))); + QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_POSITION3"))); + QPixmap imageselect (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_POSITION_TITLE")); + setWindowTitle(tr("GEOM_POSITION_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_POSITION")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->close(TRUE); - - Group1 = new DlgRef_3Sel3Spin1Check(this, "Group1"); - Group1->SpinBox1->hide(); - Group1->SpinBox2->hide(); - Group1->SpinBox3->hide(); - Group1->TextLabel4->hide(); - Group1->TextLabel5->hide(); - Group1->TextLabel6->hide(); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_POSITION")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setIcon(image2); + + Group1 = new DlgRef_4Sel1Spin3Check(centralWidget()); Group1->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); Group1->TextLabel1->setText(tr("GEOM_OBJECTS")); Group1->TextLabel2->setText(tr("GEOM_START_LCS")); - Group1->TextLabel3->setText(tr("GEOM_END_LCS")); - Group1->PushButton1->setPixmap(imageselect); - Group1->PushButton2->setPixmap(imageselect); - Group1->PushButton3->setPixmap(imageselect); - Group1->CheckBox1->setText(tr("GEOM_CREATE_COPY")); + Group1->TextLabel3->setText(tr("GEOM_DISTANCE")); + Group1->TextLabel4->setText(tr("GEOM_END_LCS")); + Group1->TextLabel5->setText(tr("GEOM_PATH_OBJECT")); + Group1->PushButton1->setIcon(imageselect); + Group1->PushButton2->setIcon(imageselect); + Group1->PushButton4->setIcon(imageselect); + Group1->PushButton5->setIcon(imageselect); + Group1->CheckButton1->setText(tr("GEOM_CREATE_COPY")); + Group1->CheckButton2->setText(tr("SELECT_UNPUBLISHED_EDGES")); + Group1->CheckButton3->setText(tr("GEOM_REVERSE_DIRECTION")); - Layout1->addWidget(Group1, 2, 0); - + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(Group1); /***************************************************************/ - setHelpFileName("modify_location_operation_page.html"); - + setHelpFileName("modify_location_operation_page.html"); + + // Activate Create a Copy mode + Group1->CheckButton1->setChecked(true); + Group1->CheckButton1->setChecked(false); + CreateCopyModeChanged(true); + Init(); } - //================================================================================= // function : ~TransformationGUI_PositionDlg() // purpose : Destroys the object and frees any allocated resources //================================================================================= TransformationGUI_PositionDlg::~TransformationGUI_PositionDlg() -{ - /* no need to delete child widgets, Qt does it all for us */ +{ + // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void TransformationGUI_PositionDlg::Init() -{ - /* init variables */ +{ + // init variables Group1->LineEdit1->setReadOnly(true); Group1->LineEdit2->setReadOnly(true); - Group1->LineEdit3->setReadOnly(true); - - myStartLCS = GEOM::GEOM_Object::_nil(); - myEndLCS = GEOM::GEOM_Object::_nil(); - - // Activate Create a Copy mode - Group1->CheckBox1->setChecked(true); - CreateCopyModeChanged(true); + Group1->LineEdit4->setReadOnly(true); + Group1->LineEdit5->setReadOnly(true); - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int))); + Group1->LineEdit1->setText(""); + Group1->LineEdit2->setText(""); + Group1->LineEdit4->setText(""); + Group1->LineEdit5->setText(""); - connect(Group1->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group1->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(Group1->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + initSpinBox(Group1->SpinBox_DX, 0, 1, 0.05, 6); // VSR:TODO : DBL_DIGITS_DISPLAY + Group1->SpinBox_DX->setValue(0); - connect(Group1->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group1->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(Group1->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - - connect(Group1->CheckBox1, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + Group1->CheckButton2->setEnabled(false); - initName( tr( "GEOM_POSITION" ) ); - ConstructorsClicked( 0 ); + myStartLCS = myEndLCS = GEOM::GEOM_Object::_nil(); + + mainFrame()->GroupBoxPublish->show(); + + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); + + connect(Group1->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(Group1->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(Group1->PushButton4, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(Group1->PushButton5, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + + connect(Group1->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(Group1->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(Group1->LineEdit4, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(Group1->LineEdit5, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + + connect(Group1->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); + connect(Group1->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + + connect(Group1->CheckButton2, SIGNAL(toggled(bool)), this, SLOT(SelectionTypeButtonClicked())); + connect(Group1->CheckButton3, SIGNAL(toggled(bool)), this, SLOT(ValueChangedInSpinBox())); + + initName(tr("GEOM_POSITION")); + + ConstructorsClicked(0); } - - //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void TransformationGUI_PositionDlg::ConstructorsClicked(int constructorId) +void TransformationGUI_PositionDlg::ConstructorsClicked (int constructorId) { disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - - globalSelection(); - myEditCurrentArgument = Group1->LineEdit1; + Group1->LineEdit2->clear(); - Group1->LineEdit3->clear(); + Group1->LineEdit4->clear(); + Group1->LineEdit5->clear(); myStartLCS = GEOM::GEOM_Object::_nil(); myEndLCS = GEOM::GEOM_Object::_nil(); - - switch (constructorId) + myPath = GEOM::GEOM_Object::_nil(); + + switch (constructorId) { + case 0: { - case 0: - { - Group1->LineEdit2->hide(); - Group1->TextLabel2->hide(); - Group1->PushButton2->hide(); - break; - } - case 1: - { - Group1->LineEdit2->show(); - Group1->TextLabel2->show(); - Group1->PushButton2->show(); - break; - } + Group1->LineEdit2->hide(); + Group1->TextLabel2->hide(); + Group1->PushButton2->hide(); + + Group1->LineEdit5->hide(); + Group1->TextLabel5->hide(); + Group1->PushButton5->hide(); + + Group1->SpinBox_DX->hide(); + Group1->TextLabel3->hide(); + + Group1->LineEdit4->show(); + Group1->TextLabel4->show(); + Group1->PushButton4->show(); + + Group1->PushButton1->click(); + + Group1->CheckButton2->hide(); + Group1->CheckButton3->hide(); } - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - SelectionIntoArgument(); + break; + case 1: + { + Group1->LineEdit2->show(); + Group1->TextLabel2->show(); + Group1->PushButton2->show(); + + Group1->LineEdit5->hide(); + Group1->TextLabel5->hide(); + Group1->PushButton5->hide(); + + Group1->SpinBox_DX->hide(); + Group1->TextLabel3->hide(); + + Group1->PushButton1->click(); + + Group1->CheckButton2->hide(); + Group1->CheckButton3->hide(); + } + break; + case 2: + { + Group1->LineEdit4->hide(); + Group1->TextLabel4->hide(); + Group1->PushButton4->hide(); + + Group1->LineEdit2->hide(); + Group1->TextLabel2->hide(); + Group1->PushButton2->hide(); + + Group1->LineEdit5->show(); + Group1->TextLabel5->show(); + Group1->PushButton5->show(); + + Group1->SpinBox_DX->show(); + Group1->TextLabel3->show(); + + Group1->PushButton1->click(); + + Group1->CheckButton2->show(); + Group1->CheckButton3->show(); + } + break; + } + + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); + + if (myInitial) { + myInitial = false; + SelectionIntoArgument(); + } + else { + displayPreview(); + } } +//================================================================================= +// function : SelectionBittonClicked() +// purpose : Selection type Radio button management +//================================================================================= +void TransformationGUI_PositionDlg::SelectionTypeButtonClicked() +{ + if ( Group1->CheckButton2->isChecked() ) { + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + } else { + TColStd_MapOfInteger aMap; + aMap.Add(GEOM_WIRE); + aMap.Add(GEOM_LINE); + globalSelection(aMap); + } +} + +//================================================================================= +// function : ValueChangedInSpinBox() +// purpose : +//================================================================================= +void TransformationGUI_PositionDlg::ValueChangedInSpinBox() +{ + displayPreview(); +} //================================================================================= // function : ClickOnOk() @@ -191,98 +285,154 @@ void TransformationGUI_PositionDlg::ConstructorsClicked(int constructorId) //================================================================================= void TransformationGUI_PositionDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool TransformationGUI_PositionDlg::ClickOnApply() { - if ( !onAccept(Group1->CheckBox1->isChecked()) ) + if (!onAccept(Group1->CheckButton1->isChecked())) return false; - + initName(); - ConstructorsClicked( getConstructorId() ); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection has changed +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void TransformationGUI_PositionDlg::SelectionIntoArgument() { + erasePreview(); myEditCurrentArgument->setText(""); + + if (myEditCurrentArgument == Group1->LineEdit1) + myObjects.length(0); + else if (myEditCurrentArgument == Group1->LineEdit2) + myStartLCS = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group1->LineEdit4) + myEndLCS = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == Group1->LineEdit5) + myPath = GEOM::GEOM_Object::_nil(); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + QString aName; - if(myEditCurrentArgument == Group1->LineEdit1) { - int aNbSel = GEOMBase::GetNameOfSelectedIObjects(selectedIO(), aName); - if(aNbSel < 1) { - myObjects.length(0); - displayPreview(); + if (myEditCurrentArgument == Group1->LineEdit1) { + int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName); + if (aNbSel < 1) return; - } - GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), myObjects); - if (!myObjects.length()) { - displayPreview(); + + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myObjects); + if (!myObjects.length()) return; - } + else + myEditCurrentArgument->setText(aName); + + if (getConstructorId() == 2) + Group1->PushButton5->click(); } - else if(myEditCurrentArgument == Group1->LineEdit2) { - myStartLCS = GEOM::GEOM_Object::_nil(); - if(IObjectCount() != 1) { - displayPreview(); + else if (myEditCurrentArgument == Group1->LineEdit2) { + if (aSelList.Extent() != 1) + return; + + // nbSel == 1 + Standard_Boolean testResult = Standard_False; + myStartLCS = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (!testResult || CORBA::is_nil(myStartLCS)) + return; + + aName = GEOMBase::GetName(myStartLCS); + myEditCurrentArgument->setText(aName); + + if (!myStartLCS->_is_nil() && myEndLCS->_is_nil()) + Group1->PushButton4->click(); + } + else if (myEditCurrentArgument == Group1->LineEdit4) { + myEndLCS = GEOM::GEOM_Object::_nil(); + if (aSelList.Extent() != 1) return; - } Standard_Boolean testResult = Standard_False; - myStartLCS = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult ); - if(!testResult || CORBA::is_nil( myStartLCS )) { - displayPreview(); + myEndLCS = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (!testResult || CORBA::is_nil(myEndLCS)) return; - } - aName = GEOMBase::GetName( myStartLCS ); + + aName = GEOMBase::GetName(myEndLCS); + myEditCurrentArgument->setText(aName); + + if (!myEndLCS->_is_nil() && !myObjects.length()) + Group1->PushButton1->click(); } - else if(myEditCurrentArgument == Group1->LineEdit3) { - myEndLCS = GEOM::GEOM_Object::_nil(); - if(IObjectCount() != 1) { - displayPreview(); + else if (myEditCurrentArgument == Group1->LineEdit5) { + myPath = GEOM::GEOM_Object::_nil(); + if (aSelList.Extent() != 1) return; + + Standard_Boolean testResult = Standard_False; + GEOM::GEOM_Object_ptr aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (!testResult || aSelectedObject->_is_nil()) + return; + + aName = GEOMBase::GetName(myPath); + // Local Selection + TopoDS_Shape S; + if (!GEOMBase::GetShape(aSelectedObject, S)) + return; + + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + aName = GEOMBase::GetName(aSelectedObject); + if (aMap.Extent() == 1) { + int anIndex = aMap(1); + aName.append(":edge_" + QString::number(anIndex)); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = GEOMBase_Helper::findObjectInFather(aSelectedObject, aName); + + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { // get Object from study + aSelectedObject = aFindedObject; + } + } + else { + if (S.ShapeType() != TopAbs_EDGE && S.ShapeType() != TopAbs_WIRE) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + return; + } } - Standard_Boolean testResult = Standard_False; - myEndLCS = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult ); - if(!testResult || CORBA::is_nil( myEndLCS )) { - displayPreview(); - return; - } - aName = GEOMBase::GetName( myEndLCS ); + myEditCurrentArgument->setText(aName); + myPath = aSelectedObject; + + if (!myPath->_is_nil() && !myObjects.length()) + Group1->PushButton1->click(); } - myEditCurrentArgument->setText( aName ); - displayPreview(); + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + displayPreview(); } - -//================================================================================= -// function : LineEditReturnPressed() -// purpose : -//================================================================================= -void TransformationGUI_PositionDlg::LineEditReturnPressed() -{ - QLineEdit* send = (QLineEdit*)sender(); - if(send == Group1->LineEdit1 || send == Group1->LineEdit2 || send == Group1->LineEdit3) { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } -} - - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -290,30 +440,110 @@ void TransformationGUI_PositionDlg::LineEditReturnPressed() void TransformationGUI_PositionDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); - - if(send == Group1->PushButton1){ - myEditCurrentArgument = Group1->LineEdit1; - globalSelection(); - } - else if(send == Group1->PushButton2) { - myEditCurrentArgument = Group1->LineEdit2; - TColStd_MapOfInteger aMap; - aMap.Add( GEOM_PLANE ); - aMap.Add( GEOM_MARKER ); - globalSelection( aMap ); - } - else if(send == Group1->PushButton3) { - myEditCurrentArgument = Group1->LineEdit3; - TColStd_MapOfInteger aMap; - aMap.Add( GEOM_PLANE ); - aMap.Add( GEOM_MARKER ); - globalSelection( aMap ); - } + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + if (send == Group1->PushButton1) { + myEditCurrentArgument = Group1->LineEdit1; + + globalSelection(); + + Group1->PushButton2->setDown(false); + Group1->PushButton4->setDown(false); + Group1->PushButton5->setDown(false); + Group1->LineEdit2->setEnabled(false); + Group1->LineEdit4->setEnabled(false); + Group1->LineEdit5->setEnabled(false); + + Group1->CheckButton2->setEnabled(false); + } + else if (send == Group1->PushButton2) { + myEditCurrentArgument = Group1->LineEdit2; + + TColStd_MapOfInteger aMap; + aMap.Add(GEOM_PLANE); + aMap.Add(GEOM_MARKER); + globalSelection(aMap); + + Group1->PushButton1->setDown(false); + Group1->PushButton4->setDown(false); + Group1->PushButton5->setDown(false); + Group1->LineEdit1->setEnabled(false); + Group1->LineEdit4->setEnabled(false); + Group1->LineEdit5->setEnabled(false); + + Group1->CheckButton2->setEnabled(false); + } + else if (send == Group1->PushButton4) { + myEditCurrentArgument = Group1->LineEdit4; + + TColStd_MapOfInteger aMap; + aMap.Add(GEOM_PLANE); + aMap.Add(GEOM_MARKER); + globalSelection(aMap); + + Group1->PushButton1->setDown(false); + Group1->PushButton2->setDown(false); + Group1->PushButton5->setDown(false); + Group1->LineEdit1->setEnabled(false); + Group1->LineEdit2->setEnabled(false); + Group1->LineEdit5->setEnabled(false); + + Group1->CheckButton2->setEnabled(false); + } + else if (send == Group1->PushButton5) { + myEditCurrentArgument = Group1->LineEdit5; + + Group1->CheckButton2->setEnabled(true); + + if ( Group1->CheckButton2->isChecked() ) { + localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + } else { + TColStd_MapOfInteger aMap; + aMap.Add(GEOM_WIRE); + aMap.Add(GEOM_LINE); + globalSelection(aMap); + } + + Group1->PushButton1->setDown(false); + Group1->PushButton2->setDown(false); + Group1->PushButton4->setDown(false); + Group1->LineEdit1->setEnabled(false); + Group1->LineEdit2->setEnabled(false); + Group1->LineEdit4->setEnabled(false); + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); } +//================================================================================= +// function : LineEditReturnPressed() +// purpose : +//================================================================================= +void TransformationGUI_PositionDlg::LineEditReturnPressed() +{ + QLineEdit* send = (QLineEdit*)sender(); + if (send == Group1->LineEdit1 || + send == Group1->LineEdit2 || + send == Group1->LineEdit4 || + send == Group1->LineEdit5 ) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } + + if (send == Group1->LineEdit5) + Group1->CheckButton2->setEnabled(true); + else + Group1->CheckButton2->setEnabled(false); +} //================================================================================= // function : ActivateThisDialog() @@ -322,108 +552,144 @@ void TransformationGUI_PositionDlg::SetEditCurrentArgument() void TransformationGUI_PositionDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + ConstructorsClicked( getConstructorId() ); } - //================================================================================= // function : enterEvent() // purpose : when mouse enter onto the QWidget //================================================================================= -void TransformationGUI_PositionDlg::enterEvent(QEvent * e) +void TransformationGUI_PositionDlg::enterEvent (QEvent*) { - if(!GroupConstructors->isEnabled()) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - //================================================================================= // function : createOperation // purpose : //================================================================================= -GEOM::GEOM_IOperations_ptr TransformationGUI_PositionDlg::createOperation() +GEOM::GEOM_IOperations_ptr TransformationGUI_PositionDlg::createOperation() { - return getGeomEngine()->GetITransformOperations( getStudyId() ); + return getGeomEngine()->GetITransformOperations(getStudyId()); } - //================================================================================= // function : isValid // purpose : //================================================================================= -bool TransformationGUI_PositionDlg::isValid( QString& msg ) +bool TransformationGUI_PositionDlg::isValid (QString& /*msg*/) { bool res; if (getConstructorId() == 0) res = !(myObjects.length() == 0 || myEndLCS->_is_nil()); - else + else if ( getConstructorId() == 1 ) res = !(myObjects.length() == 0 || myStartLCS->_is_nil() || myEndLCS->_is_nil()); + else if ( getConstructorId() == 2 ) + res = !(myObjects.length() == 0 || myPath->_is_nil()); return res; } - //================================================================================= // function : execute // purpose : //================================================================================= -bool TransformationGUI_PositionDlg::execute( ObjectList& objects ) +bool TransformationGUI_PositionDlg::execute (ObjectList& objects) { bool res = false; - bool toCreateCopy = IsPreview() || Group1->CheckBox1->isChecked(); + bool toCreateCopy = IsPreview() || Group1->CheckButton1->isChecked(); GEOM::GEOM_Object_var anObj; - - switch ( getConstructorId() ) - { - case 0 : - { - for (int i = 0; i < myObjects.length(); i++) { - if (toCreateCopy) - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->PositionShapeCopy( myObjects[i], myObjects[i], myEndLCS ); - else - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->PositionShape( myObjects[i], myObjects[i], myEndLCS ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - res = true; - break; - } - case 1 : - { - for (int i = 0; i < myObjects.length(); i++) { - if (toCreateCopy) - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->PositionShapeCopy( myObjects[i], myStartLCS, myEndLCS ); - else - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )->PositionShape( myObjects[i], myStartLCS, myEndLCS ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - res = true; - break; + switch (getConstructorId()) { + case 0: + { + for (int i = 0; i < myObjects.length(); i++) { + if (toCreateCopy) + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + PositionShapeCopy(myObjects[i], myObjects[i], myEndLCS); + else + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + PositionShape(myObjects[i], myObjects[i], myEndLCS); + + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); } + res = true; + break; } - + case 1: + { + for (int i = 0; i < myObjects.length(); i++) { + if (toCreateCopy) + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + PositionShapeCopy(myObjects[i], myStartLCS, myEndLCS); + else + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + PositionShape(myObjects[i], myStartLCS, myEndLCS); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + res = true; + break; + } + case 2: + { + double aDistance = Group1->SpinBox_DX->value(); + bool toReverse = Group1->CheckButton3->isChecked(); + for (int i = 0; i < myObjects.length(); i++) { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + PositionAlongPath(myObjects[i], myPath, aDistance, toCreateCopy, toReverse); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + res = true; + break; + } + } + return res; } //================================================================================= -// function : closeEvent +// function : restoreSubShapes // purpose : //================================================================================= -void TransformationGUI_PositionDlg::closeEvent( QCloseEvent* e ) +void TransformationGUI_PositionDlg::restoreSubShapes (SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject) { - GEOMBase_Skeleton::closeEvent( e ); + if (mainFrame()->CheckBoxRestoreSS->isChecked()) { + // empty list of arguments means that all arguments should be restored + getGeomEngine()->RestoreSubShapesSO(theStudy, theSObject, GEOM::ListOfGO(), + /*theFindMethod=*/GEOM::FSM_Transformed, + /*theInheritFirstArg=*/true); + } } - //================================================================================= // function : CreateCopyModeChanged() // purpose : //================================================================================= -void TransformationGUI_PositionDlg::CreateCopyModeChanged(bool isCreateCopy) +void TransformationGUI_PositionDlg::CreateCopyModeChanged (bool isCreateCopy) { - this->GroupBoxName->setEnabled(isCreateCopy); + mainFrame()->GroupBoxName->setEnabled(isCreateCopy); +} + +//================================================================================= +// function : addSubshapeToStudy +// purpose : virtual method to add new SubObjects if local selection +//================================================================================= +void TransformationGUI_PositionDlg::addSubshapesToStudy() +{ + QMap objMap; + + objMap[Group1->LineEdit5->text()] = myPath; + + addSubshapesToFather(objMap); } diff --git a/src/TransformationGUI/TransformationGUI_PositionDlg.h b/src/TransformationGUI/TransformationGUI_PositionDlg.h index 9ecfb2809..a48959b92 100644 --- a/src/TransformationGUI/TransformationGUI_PositionDlg.h +++ b/src/TransformationGUI/TransformationGUI_PositionDlg.h @@ -1,38 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : TransformationGUI_PositionDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_PositionDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef TRANSFORMATIONGUI_POSITIONDLG_H +#define TRANSFORMATIONGUI_POSITIONDLG_H -#ifndef DIALOGBOX_POSITION_H -#define DIALOGBOX_POSITION_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_3Sel3Spin1Check.h" - -#include "TransformationGUI.h" - +class DlgRef_4Sel1Spin3Check; //================================================================================= // class : TransformationGUI_PositionDlg @@ -40,40 +36,47 @@ //================================================================================= class TransformationGUI_PositionDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - TransformationGUI_PositionDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~TransformationGUI_PositionDlg(); - + TransformationGUI_PositionDlg( GeometryGUI*, QWidget* = 0, + bool = false, Qt::WindowFlags = 0 ); + ~TransformationGUI_PositionDlg(); + protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void restoreSubShapes( SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr ); + virtual void addSubshapesToStudy(); private: - void Init(); - void enterEvent(QEvent* e); + void Init(); + void enterEvent( QEvent* ); - GEOM::GEOM_Object_var myStartLCS; - GEOM::GEOM_Object_var myEndLCS; - GEOM::ListOfGO myObjects; - - DlgRef_3Sel3Spin1Check* Group1; +private: + GEOM::GEOM_Object_var myStartLCS; + GEOM::GEOM_Object_var myEndLCS; + GEOM::ListOfGO myObjects; + GEOM::GEOM_Object_var myPath; + + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_4Sel1Spin3Check* Group1; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ConstructorsClicked(int constructorId); - void CreateCopyModeChanged(bool isCreateCopy); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void CreateCopyModeChanged( bool ); + void ValueChangedInSpinBox(); + void SelectionTypeButtonClicked(); }; -#endif // DIALOGBOX_MIRROR_H +#endif // TRANSFORMATIONGUI_POSITIONDLG_H diff --git a/src/TransformationGUI/TransformationGUI_RotationDlg.cxx b/src/TransformationGUI/TransformationGUI_RotationDlg.cxx index f0cca0130..c56fd9c9b 100644 --- a/src/TransformationGUI/TransformationGUI_RotationDlg.cxx +++ b/src/TransformationGUI/TransformationGUI_RotationDlg.cxx @@ -1,38 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_RotationDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : TransformationGUI_RotationDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "TransformationGUI_RotationDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include #include @@ -40,14 +42,7 @@ #include #include -#include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : TransformationGUI_RotationDlg() @@ -57,81 +52,57 @@ using namespace std; // TRUE to construct a modal dialog. //================================================================================= TransformationGUI_RotationDlg::TransformationGUI_RotationDlg - (GeometryGUI* theGeometryGUI, QWidget* parent, const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +(GeometryGUI* theGeometryGUI, QWidget* parent, bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); - QPixmap image0 (aResMgr->loadPixmap("GEOM",tr("ICON_DLG_ROTATION"))); - QPixmap image1 (aResMgr->loadPixmap("GEOM",tr("ICON_SELECT"))); - QPixmap image2 (aResMgr->loadPixmap("GEOM",tr("ICON_DLG_ROTATION_THREE_POINTS"))); + QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_ROTATION"))); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); + QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_ROTATION_THREE_POINTS"))); - setCaption(tr("GEOM_ROTATION_TITLE")); + setWindowTitle(tr("GEOM_ROTATION_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_ROTATION")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image2); - RadioButton3->close(TRUE); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_ROTATION")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image2); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_4Sel1Spin2Check(this, "GroupPoints"); + GroupPoints = new DlgRef_4Sel1Spin2Check(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); GroupPoints->TextLabel1->setText(tr("GEOM_OBJECTS")); GroupPoints->TextLabel2->setText(tr("GEOM_AXIS")); GroupPoints->TextLabel3->setText(tr("GEOM_ANGLE")); - GroupPoints->TextLabel4->setText(tr("GEOM_POINT_I").arg("1")); - GroupPoints->TextLabel5->setText(tr("GEOM_POINT_I").arg("2")); + GroupPoints->TextLabel4->setText(tr("GEOM_POINT_I").arg(1)); + GroupPoints->TextLabel5->setText(tr("GEOM_POINT_I").arg(2)); GroupPoints->LineEdit1->setReadOnly(true); GroupPoints->LineEdit2->setReadOnly(true); GroupPoints->LineEdit4->setReadOnly(true); GroupPoints->LineEdit5->setReadOnly(true); - GroupPoints->PushButton1->setPixmap(image1); - GroupPoints->PushButton2->setPixmap(image1); - GroupPoints->PushButton4->setPixmap(image1); - GroupPoints->PushButton5->setPixmap(image1); + GroupPoints->PushButton1->setIcon(image1); + GroupPoints->PushButton2->setIcon(image1); + GroupPoints->PushButton4->setIcon(image1); + GroupPoints->PushButton5->setIcon(image1); GroupPoints->CheckButton1->setText(tr("GEOM_CREATE_COPY")); GroupPoints->CheckButton2->setText(tr("GEOM_REVERSE")); - Layout1->addWidget(GroupPoints, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); /***************************************************************/ - double anAngle = 0; - double SpecificStep = 5; - /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DX->SetValue(anAngle); + setHelpFileName("rotation_operation_page.html"); // Activate Create a Copy mode GroupPoints->CheckButton1->setChecked(true); CreateCopyModeChanged(true); - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int))); - - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton4, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton5, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - - connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); - connect(GroupPoints->CheckButton2, SIGNAL(toggled(bool)), this, SLOT(onReverse())); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; - - setHelpFileName("rotation_operation_page.html"); - Init(); } - //================================================================================= // function : ~TransformationGUI_RotationDlg() // purpose : Destroys the object and frees any allocated resources @@ -141,65 +112,107 @@ TransformationGUI_RotationDlg::~TransformationGUI_RotationDlg() // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void TransformationGUI_RotationDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit2->clear(); + double anAngle = 0; + double SpecificStep = 5; + + // min, max, step and decimals for spin boxes & initial values + initSpinBox(GroupPoints->SpinBox_DX, COORD_MIN, COORD_MAX, SpecificStep, 3); // VSR: TODO: DBL_DIGITS_DISPLAY + GroupPoints->SpinBox_DX->setValue(anAngle); + + // init variables + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + GroupPoints->LineEdit4->setText(""); + GroupPoints->LineEdit5->setText(""); myAxis = myCentPoint = myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); - initName( tr( "GEOM_ROTATION" ) ); - ConstructorsClicked( 0 ); + mainFrame()->GroupBoxPublish->show(); + + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); + + connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints->PushButton4, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(GroupPoints->PushButton5, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + + connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + + connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + + connect(GroupPoints->SpinBox_DX, SIGNAL(textChanged( const QString& )), + this, SLOT(TextValueChangedInSpinBox( const QString&))); + + connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); + connect(GroupPoints->CheckButton2, SIGNAL(toggled(bool)), this, SLOT(onReverse())); + + initName(tr("GEOM_ROTATION")); + + ConstructorsClicked(0); } //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void TransformationGUI_RotationDlg::ConstructorsClicked(int constructorId) +void TransformationGUI_RotationDlg::ConstructorsClicked (int constructorId) { disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - myEditCurrentArgument = GroupPoints->LineEdit1; - globalSelection(); - - switch (constructorId) + switch (constructorId) { + case 0: // rotation an object angle and axis { - case 0: /* rotation an object angle and axis */ - { - GroupPoints->ShowRows(2,3,false); - resize(0,0); - GroupPoints->TextLabel2->setText(tr("GEOM_AXIS")); - GroupPoints->LineEdit2->clear(); - GroupPoints->ShowRows(4,4,true); - myAxis = GEOM::GEOM_Object::_nil(); - break; - } - case 1: /* rotation an object by 3 points */ - { - GroupPoints->ShowRows(4,4,false); - resize(0,0); - GroupPoints->ShowRows(2,3,true); - GroupPoints->TextLabel2->setText(tr("GEOM_CENTRAL_POINT")); - GroupPoints->TextLabel4->setText(tr("GEOM_POINT_I").arg("1")); - GroupPoints->TextLabel5->setText(tr("GEOM_POINT_I").arg("2")); - GroupPoints->LineEdit2->clear(); - GroupPoints->LineEdit4->clear(); - GroupPoints->LineEdit5->clear(); - myCentPoint = myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); - break; - } - } + GroupPoints->ShowRows(2, 3, false); + GroupPoints->TextLabel2->setText(tr("GEOM_AXIS")); + GroupPoints->LineEdit2->clear(); + GroupPoints->ShowRows(4, 4, true); - myEditCurrentArgument->setFocus(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + myAxis = GEOM::GEOM_Object::_nil(); + + GroupPoints->PushButton1->click(); + } + break; + case 1: // rotation an object by 3 points + { + GroupPoints->ShowRows(4, 4, false); + GroupPoints->ShowRows(2, 3, true); + GroupPoints->TextLabel2->setText(tr("GEOM_CENTRAL_POINT")); + GroupPoints->TextLabel4->setText(tr("GEOM_POINT_I").arg(1)); + GroupPoints->TextLabel5->setText(tr("GEOM_POINT_I").arg(2)); + + GroupPoints->LineEdit2->clear(); + GroupPoints->LineEdit4->clear(); + GroupPoints->LineEdit5->clear(); + + myCentPoint = myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); + + GroupPoints->PushButton1->click(); + } + break; + } + + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); + + if (myInitial) { + myInitial = false; + SelectionIntoArgument(); + } + else { + displayPreview(); + } } //================================================================================= @@ -208,121 +221,147 @@ void TransformationGUI_RotationDlg::ConstructorsClicked(int constructorId) //================================================================================= void TransformationGUI_RotationDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool TransformationGUI_RotationDlg::ClickOnApply() { - if ( !onAccept( GroupPoints->CheckButton1->isChecked()) ) + if (!onAccept(GroupPoints->CheckButton1->isChecked())) return false; initName(); - ConstructorsClicked( getConstructorId() ); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void TransformationGUI_RotationDlg::SelectionIntoArgument() { + erasePreview(); myEditCurrentArgument->setText(""); + + if (myEditCurrentArgument == GroupPoints->LineEdit1) + myObjects.length(0); + else if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 0) + myAxis = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1) + myCentPoint = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit4) + myPoint1 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit5) + myPoint2 = GEOM::GEOM_Object::_nil(); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + QString aName; - if(myEditCurrentArgument == GroupPoints->LineEdit1) + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName); + if (aNbSel < 1) + return; + + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myObjects); + if (!myObjects.length()) + return; + else + myEditCurrentArgument->setText(aName); + } + else { + if (aSelList.Extent() != 1) + return; + + // nbSel == 1 + Standard_Boolean testResult = Standard_False; + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + + if (!testResult || CORBA::is_nil(aSelectedObject)) + return; + + aName = GEOMBase::GetName(aSelectedObject); + + // Get Selected object if selected subshape + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) { - int aNbSel = GEOMBase::GetNameOfSelectedIObjects(selectedIO(), aName); - if(aNbSel < 1) - { - myObjects.length(0); - return; - } - GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), myObjects); - if (!myObjects.length()) - return; + TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; + if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 0) + aNeedType = TopAbs_EDGE; + + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) + { + int anIndex = aMap(1); + if (aNeedType == TopAbs_EDGE) + aName += QString(":edge_%1").arg(anIndex); + else + aName += QString(":vertex_%1").arg(anIndex); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); + + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { + aSelectedObject = aFindedObject; // get Object from study + } + } + else // Global Selection + { + if (aShape.ShapeType() != aNeedType) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } } - else - { - if(IObjectCount() != 1) - { - if(myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 0) - myAxis = GEOM::GEOM_Object::_nil(); - else if(myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1) - myCentPoint = GEOM::GEOM_Object::_nil(); - else if(myEditCurrentArgument == GroupPoints->LineEdit4) - myPoint1 = GEOM::GEOM_Object::_nil(); - else if(myEditCurrentArgument == GroupPoints->LineEdit5) - myPoint2 = GEOM::GEOM_Object::_nil(); - return; - } - Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult ); - if(!testResult || CORBA::is_nil( aSelectedObject )) - return; - - aName = GEOMBase::GetName( aSelectedObject ); - TopoDS_Shape aShape; - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) - { - TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; - if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 0) - aNeedType = TopAbs_EDGE; - - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes( firstIObject(), aMap ); - if ( aMap.Extent() == 1 ) - { - int anIndex = aMap( 1 ); - if (aNeedType == TopAbs_EDGE) - aName += QString(":edge_%1").arg(anIndex); - else - aName += QString(":vertex_%1").arg(anIndex); - - //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); - - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations( getStudyId() ); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); - } - else - aSelectedObject = aFindedObject; // get Object from study - } - else { - if (aShape.ShapeType() != aNeedType) { - aSelectedObject = GEOM::GEOM_Object::_nil(); - aName = ""; - } - } - } - - if(myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 0) - myAxis = aSelectedObject; - else if(myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1) - myCentPoint = aSelectedObject; - else if(myEditCurrentArgument == GroupPoints->LineEdit4) - myPoint1 = aSelectedObject; - else if(myEditCurrentArgument == GroupPoints->LineEdit5) - myPoint2 = aSelectedObject; + myEditCurrentArgument->setText(aName); + if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 0) { + myAxis = aSelectedObject; + if (!myAxis->_is_nil() && !myObjects.length()) + GroupPoints->PushButton1->click(); } - myEditCurrentArgument->setText( aName ); + else if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1) { + myCentPoint = aSelectedObject; + if (!myCentPoint->_is_nil() && myPoint1->_is_nil()) + GroupPoints->PushButton4->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit4) { + myPoint1 = aSelectedObject; + if (!myPoint1->_is_nil() && myPoint2->_is_nil()) + GroupPoints->PushButton5->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit5) { + myPoint2 = aSelectedObject; + if (!myPoint2->_is_nil() && !myObjects.length()) + GroupPoints->PushButton1->click(); + } + } + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); displayPreview(); } - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -330,33 +369,67 @@ void TransformationGUI_RotationDlg::SelectionIntoArgument() void TransformationGUI_RotationDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); + + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); globalSelection(); - if(send == GroupPoints->PushButton1) { + if (send == GroupPoints->PushButton1) { myEditCurrentArgument = GroupPoints->LineEdit1; + + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); } - else if(send == GroupPoints->PushButton2) { + else if (send == GroupPoints->PushButton2) { myEditCurrentArgument = GroupPoints->LineEdit2; + + GroupPoints->PushButton1->setDown(false); + GroupPoints->PushButton4->setDown(false); + GroupPoints->PushButton5->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + GroupPoints->LineEdit4->setEnabled(false); + GroupPoints->LineEdit5->setEnabled(false); + if (getConstructorId() == 0) - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); else - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); } - else if (send == GroupPoints->PushButton4) - { - myEditCurrentArgument = GroupPoints->LineEdit4; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - } - else if (send == GroupPoints->PushButton5) - { - myEditCurrentArgument = GroupPoints->LineEdit5; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - } + else if (send == GroupPoints->PushButton4) { + myEditCurrentArgument = GroupPoints->LineEdit4; + GroupPoints->PushButton1->setDown(false); + GroupPoints->PushButton2->setDown(false); + GroupPoints->PushButton5->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + GroupPoints->LineEdit2->setEnabled(false); + GroupPoints->LineEdit5->setEnabled(false); + + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + } + else if (send == GroupPoints->PushButton5) { + myEditCurrentArgument = GroupPoints->LineEdit5; + + GroupPoints->PushButton1->setDown(false); + GroupPoints->PushButton2->setDown(false); + GroupPoints->PushButton4->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + GroupPoints->LineEdit2->setEnabled(false); + GroupPoints->LineEdit4->setEnabled(false); + + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); -} + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); +} //================================================================================= // function : LineEditReturnPressed() @@ -365,15 +438,13 @@ void TransformationGUI_RotationDlg::SetEditCurrentArgument() void TransformationGUI_RotationDlg::LineEditReturnPressed() { QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || - send == GroupPoints->LineEdit2) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } + if (send == GroupPoints->LineEdit1 || + send == GroupPoints->LineEdit2) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } } - //================================================================================= // function : ActivateThisDialog() // purpose : @@ -381,23 +452,31 @@ void TransformationGUI_RotationDlg::LineEditReturnPressed() void TransformationGUI_RotationDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); ConstructorsClicked( getConstructorId() ); } - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void TransformationGUI_RotationDlg::enterEvent(QEvent* e) +void TransformationGUI_RotationDlg::enterEvent (QEvent*) { - if (!GroupConstructors->isEnabled()) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } +void TransformationGUI_RotationDlg::TextValueChangedInSpinBox( const QString& s) +{ + bool isDigit = true; + s.toDouble(&isDigit); + if(!isDigit) { + GroupPoints->CheckButton2->setChecked(false); + } + GroupPoints->CheckButton2->setEnabled(isDigit); +} //================================================================================= // function : ValueChangedInSpinBox() @@ -408,152 +487,168 @@ void TransformationGUI_RotationDlg::ValueChangedInSpinBox() displayPreview(); } - //================================================================================= // function : createOperation // purpose : //================================================================================= GEOM::GEOM_IOperations_ptr TransformationGUI_RotationDlg::createOperation() { - return getGeomEngine()->GetITransformOperations( getStudyId() ); + return getGeomEngine()->GetITransformOperations(getStudyId()); } - //================================================================================= // function : isValid // purpose : //================================================================================= -bool TransformationGUI_RotationDlg::isValid( QString& msg ) +bool TransformationGUI_RotationDlg::isValid (QString& msg) { - switch (getConstructorId()) - { - case 0: - { - return !(myObjects.length() == 0 || myAxis->_is_nil()); - break; - } - case 1: - { - return !(myObjects.length() == 0 || myCentPoint->_is_nil() || myPoint1->_is_nil() || myPoint2->_is_nil() ); - break; - } - default: return false; - } + switch (getConstructorId()) { + case 0: { + bool ok = GroupPoints->SpinBox_DX->isValid( msg, !IsPreview() ); + return myObjects.length() > 0 && !(myAxis->_is_nil()) && ok; + break; + } + case 1: + return myObjects.length() > 0 && !(myCentPoint->_is_nil() || myPoint1->_is_nil() || myPoint2->_is_nil()); + break; + default: + break; + } + return false; } - //================================================================================= // function : execute // purpose : //================================================================================= -bool TransformationGUI_RotationDlg::execute( ObjectList& objects ) +bool TransformationGUI_RotationDlg::execute (ObjectList& objects) { bool res = false; bool toCreateCopy = IsPreview() || GroupPoints->CheckButton1->isChecked(); GEOM::GEOM_Object_var anObj; - switch ( getConstructorId() ) + switch (getConstructorId()) { + case 0: { - case 0 : - { - if (toCreateCopy) - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - RotateCopy( myObjects[i], myAxis, GetAngle() * PI180 ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - else - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - Rotate( myObjects[i], myAxis, GetAngle() * PI180 ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - res = true; - break; + QStringList aParameters; + aParameters<SpinBox_DX->text(); + if (toCreateCopy) { + for (int i = 0; i < myObjects.length(); i++) { + myCurrObject = myObjects[i]; + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + RotateCopy(myObjects[i], myAxis, GetAngle() * PI180); + if (!anObj->_is_nil()) { + if(!IsPreview()) { + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + objects.push_back(anObj._retn()); + } + } } - case 1 : - { - if (toCreateCopy) - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - RotateThreePointsCopy( myObjects[i], myCentPoint, myPoint1, myPoint2 ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + else { + for (int i = 0; i < myObjects.length(); i++) { + myCurrObject = myObjects[i]; + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + Rotate(myObjects[i], myAxis, GetAngle() * PI180); + if (!anObj->_is_nil()) { + if(!IsPreview()) { + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + updateAttributes(anObj, aParameters); } - else - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - RotateThreePoints( myObjects[i], myCentPoint, myPoint1, myPoint2 ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - res = true; - break; + objects.push_back(anObj._retn()); + } + } } + res = true; + break; } + case 1: + { + if (toCreateCopy) { + for (int i = 0; i < myObjects.length(); i++) { + myCurrObject = myObjects[i]; + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + RotateThreePointsCopy(myObjects[i], myCentPoint, myPoint1, myPoint2); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + } + else { + for (int i = 0; i < myObjects.length(); i++) { + myCurrObject = myObjects[i]; + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + RotateThreePoints(myObjects[i], myCentPoint, myPoint1, myPoint2); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + } + res = true; + break; + } + } return res; } - //================================================================================= -// function : closeEvent +// function : restoreSubShapes // purpose : //================================================================================= -void TransformationGUI_RotationDlg::closeEvent( QCloseEvent* e ) +void TransformationGUI_RotationDlg::restoreSubShapes (SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject) { - GEOMBase_Skeleton::closeEvent( e ); + if (mainFrame()->CheckBoxRestoreSS->isChecked()) { + // we pass here the first operation argument (object) through the list of arguments + // because the rotation operation place its arguments in the data structure in another order, + // and we need to point the first argument directly + GEOM::ListOfGO_var anArgs = new GEOM::ListOfGO; + anArgs->length(1); + anArgs[0] = myCurrObject; + getGeomEngine()->RestoreSubShapesSO(theStudy, theSObject, anArgs, + /*theFindMethod=*/GEOM::FSM_Transformed, + /*theInheritFirstArg=*/true); + } } - //================================================================================= // function : GetAngle() // purpose : //================================================================================= double TransformationGUI_RotationDlg::GetAngle() const { - return GroupPoints->SpinBox_DX->GetValue(); + return GroupPoints->SpinBox_DX->value(); } - //================================================================================= // function : CreateCopyModeChanged() // purpose : //================================================================================= -void TransformationGUI_RotationDlg::CreateCopyModeChanged(bool isCreateCopy) +void TransformationGUI_RotationDlg::CreateCopyModeChanged (bool isCreateCopy) { - this->GroupBoxName->setEnabled(isCreateCopy); + mainFrame()->GroupBoxName->setEnabled(isCreateCopy); } - //================================================================================= // function : onReverse() // purpose : //================================================================================= void TransformationGUI_RotationDlg::onReverse() { - double anOldValue = GroupPoints->SpinBox_DX->GetValue(); - GroupPoints->SpinBox_DX->SetValue( -anOldValue ); + double anOldValue = GroupPoints->SpinBox_DX->value(); + GroupPoints->SpinBox_DX->setValue(-anOldValue); } //================================================================================= -// function : addSubshapeToStudy +// function : addSubshapesToStudy // purpose : virtual method to add new SubObjects if local selection //================================================================================= void TransformationGUI_RotationDlg::addSubshapesToStudy() { bool toCreateCopy = IsPreview() || GroupPoints->CheckButton1->isChecked(); if (toCreateCopy) { - QMap objMap; - switch (getConstructorId()) - { + QMap objMap; + switch (getConstructorId()) { case 0: objMap[GroupPoints->LineEdit2->text()] = myAxis; break; @@ -563,6 +658,6 @@ void TransformationGUI_RotationDlg::addSubshapesToStudy() objMap[GroupPoints->LineEdit5->text()] = myPoint2; break; } - addSubshapesToFather( objMap ); + addSubshapesToFather(objMap); } } diff --git a/src/TransformationGUI/TransformationGUI_RotationDlg.h b/src/TransformationGUI/TransformationGUI_RotationDlg.h index 4ea6ea9e5..9b774f704 100644 --- a/src/TransformationGUI/TransformationGUI_RotationDlg.h +++ b/src/TransformationGUI/TransformationGUI_RotationDlg.h @@ -1,35 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : TransformationGUI_RotationDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_RotationDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef TRANSFORMATIONGUI_ROTATIONDLG_H +#define TRANSFORMATIONGUI_ROTATIONDLG_H -#ifndef DIALOGBOX_ROTATION_H -#define DIALOGBOX_ROTATION_H +#include -#include "GEOMBase_Skeleton.h" -#include "DlgRef_4Sel1Spin2Check.h" +class DlgRef_4Sel1Spin2Check; //================================================================================= // class : TransformationGUI_RotationDlg @@ -37,42 +36,48 @@ //================================================================================= class TransformationGUI_RotationDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - TransformationGUI_RotationDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~TransformationGUI_RotationDlg(); + TransformationGUI_RotationDlg( GeometryGUI*, QWidget* = 0, + bool = false, Qt::WindowFlags = 0 ); + ~TransformationGUI_RotationDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); + virtual void restoreSubShapes( SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr ); private: - void Init(); - void enterEvent(QEvent* e); - double GetAngle() const; + void Init(); + void enterEvent( QEvent* ); + double GetAngle() const; + +private: + GEOM::ListOfGO myObjects; + GEOM::GEOM_Object_var myCurrObject; + GEOM::GEOM_Object_var myAxis, myCentPoint, myPoint1, myPoint2; + + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; - GEOM::ListOfGO myObjects; - GEOM::GEOM_Object_var myAxis, myCentPoint, myPoint1, myPoint2; - - DlgRef_4Sel1Spin2Check* GroupPoints; + DlgRef_4Sel1Spin2Check* GroupPoints; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ValueChangedInSpinBox(); - void CreateCopyModeChanged(bool isCreateCopy); - void ConstructorsClicked(int constructorId); - void onReverse(); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ValueChangedInSpinBox(); + void TextValueChangedInSpinBox( const QString& ); + void CreateCopyModeChanged( bool ); + void ConstructorsClicked( int ); + void onReverse(); }; -#endif // DIALOGBOX_ROTATION_H +#endif // TRANSFORMATIONGUI_ROTATIONDLG_H diff --git a/src/TransformationGUI/TransformationGUI_ScaleDlg.cxx b/src/TransformationGUI/TransformationGUI_ScaleDlg.cxx index 7a992b2ae..32daa0cb5 100644 --- a/src/TransformationGUI/TransformationGUI_ScaleDlg.cxx +++ b/src/TransformationGUI/TransformationGUI_ScaleDlg.cxx @@ -1,52 +1,48 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_ScaleDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : TransformationGUI_ScaleDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "TransformationGUI_ScaleDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include #include #include #include -#include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : TransformationGUI_ScaleDlg() @@ -55,96 +51,190 @@ using namespace std; // The dialog will by default be modeless, unless you set 'modal' to // TRUE to construct a modal dialog. //================================================================================= -TransformationGUI_ScaleDlg::TransformationGUI_ScaleDlg(GeometryGUI* theGeometryGUI, QWidget* parent, - const char* name, bool modal, WFlags fl) - :GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +TransformationGUI_ScaleDlg::TransformationGUI_ScaleDlg (GeometryGUI* theGeometryGUI, QWidget* parent, + bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { - QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_SCALE"))); - QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT"))); + SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); + QPixmap image1 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_SCALE"))); + QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_SCALE_ALONG_AXES"))); + QPixmap image3 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_SCALE_TITLE")); + setWindowTitle(tr("GEOM_SCALE_TITLE")); - /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_SCALE")); - RadioButton1->setPixmap(image0); - RadioButton2->close(TRUE); - RadioButton3->close(TRUE); + // Constructors + mainFrame()->GroupConstructors->setTitle(tr("GEOM_SCALE")); + mainFrame()->RadioButton1->setIcon(image1); + mainFrame()->RadioButton2->setIcon(image2); + mainFrame()->RadioButton3->setAttribute(Qt::WA_DeleteOnClose); + mainFrame()->RadioButton3->close(); - GroupPoints = new DlgRef_2Sel1Spin2Check(this, "GroupPoints"); - GroupPoints->CheckButton2->hide(); - GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); - GroupPoints->TextLabel1->setText(tr("GEOM_OBJECTS")); - GroupPoints->TextLabel2->setText(tr("GEOM_CENTRAL_POINT")); - GroupPoints->TextLabel3->setText(tr("GEOM_SCALE_FACTOR")); - GroupPoints->LineEdit1->setReadOnly( true ); - GroupPoints->LineEdit2->setReadOnly( true ); - GroupPoints->PushButton1->setPixmap(image1); - GroupPoints->PushButton2->setPixmap(image1); - GroupPoints->CheckButton1->setText(tr("GEOM_CREATE_COPY")); + // Own widgets + GroupBox1 = new QGroupBox(tr("GEOM_ARGUMENTS"), this); + QGridLayout* OwnLayout = new QGridLayout(GroupBox1); + OwnLayout->setSpacing(6); + OwnLayout->setMargin(11); - // san -- modification of an exisitng object by offset is not allowed - GroupPoints->CheckButton1->hide(); + TextLabel1 = new QLabel(tr("GEOM_OBJECTS"), GroupBox1); + PushButton1 = new QPushButton(GroupBox1); + PushButton1->setIcon(image3); + PushButton1->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + LineEdit1 = new QLineEdit(GroupBox1); + LineEdit1->setReadOnly(true); + LineEdit1->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); - Layout1->addWidget(GroupPoints, 2, 0); - /***************************************************************/ - double aFactor = 2.0; - double SpecificStep = 0.5; - /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox_DX->RangeStepAndValidator(COORD_MIN, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox_DX->SetValue(aFactor); + TextLabel2 = new QLabel(tr("GEOM_CENTRAL_POINT"), GroupBox1); + PushButton2 = new QPushButton(GroupBox1); + PushButton2->setIcon(image3); + PushButton2->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); + LineEdit2 = new QLineEdit(GroupBox1); + LineEdit2->setReadOnly(true); + LineEdit2->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); - // Activate Create a Copy mode - GroupPoints->CheckButton1->setChecked(true); - CreateCopyModeChanged(true); + TextLabel3 = new QLabel(tr("GEOM_SCALE_FACTOR"), GroupBox1); + SpinBox_FX = new SalomeApp_DoubleSpinBox(GroupBox1); - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); + TextLabel4 = new QLabel(tr("GEOM_SCALE_FACTOR_Y"), GroupBox1); + SpinBox_FY = new SalomeApp_DoubleSpinBox(GroupBox1); - connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); - connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + TextLabel5 = new QLabel(tr("GEOM_SCALE_FACTOR_Z"), GroupBox1); + SpinBox_FZ = new SalomeApp_DoubleSpinBox(GroupBox1); - connect(GroupPoints->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); - connect(GroupPoints->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + CheckBoxCopy = new QCheckBox(tr("GEOM_CREATE_COPY"), GroupBox1); + CheckBoxCopy->setChecked(true); - connect(GroupPoints->SpinBox_DX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox_DX, SLOT(SetStep(double))); - connect(GroupPoints->CheckButton1, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); + // Layouting + OwnLayout->addWidget(TextLabel1, 0, 0); + OwnLayout->addWidget(PushButton1, 0, 1); + OwnLayout->addWidget(LineEdit1, 0, 2, 1, 2); + OwnLayout->addWidget(TextLabel2, 1, 0); + OwnLayout->addWidget(PushButton2, 1, 1); + OwnLayout->addWidget(LineEdit2, 1, 2, 1, 2); + OwnLayout->addWidget(TextLabel3, 2, 0); + OwnLayout->addWidget(SpinBox_FX, 2, 2); + OwnLayout->addWidget(TextLabel4, 3, 0); + OwnLayout->addWidget(SpinBox_FY, 3, 2); + OwnLayout->addWidget(TextLabel5, 4, 0); + OwnLayout->addWidget(SpinBox_FZ, 4, 2); + OwnLayout->addWidget(CheckBoxCopy, 5, 0, 1, 4); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())) ; + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupBox1); setHelpFileName("scale_operation_page.html"); + // Modification of an existing object by offset is not allowed + CheckBoxCopy->hide(); + + // Activate Create a Copy mode + CreateCopyModeChanged(true); + + // Allowed inheritance of children and visual properties by the scaling result + mainFrame()->GroupBoxPublish->show(); + Init(); } - //================================================================================= // function : ~TransformationGUI_ScaleDlg() // purpose : Destroys the object and frees any allocated resources //================================================================================= TransformationGUI_ScaleDlg::~TransformationGUI_ScaleDlg() { - /* no need to delete child widgets, Qt does it all for us */ } - //================================================================================= // function : Init() // purpose : //================================================================================= void TransformationGUI_ScaleDlg::Init() { - myEditCurrentArgument = GroupPoints->LineEdit1; - GroupPoints->LineEdit2->clear(); + // Min, max, step and decimals for spin boxes & initial values + double aFactor = 2.0; + double SpecificStep = 0.5; + + initSpinBox(SpinBox_FX, COORD_MIN, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); + initSpinBox(SpinBox_FY, COORD_MIN, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); + initSpinBox(SpinBox_FZ, COORD_MIN, COORD_MAX, SpecificStep, DBL_DIGITS_DISPLAY); + SpinBox_FX->setValue(aFactor); + SpinBox_FY->setValue(aFactor); + SpinBox_FZ->setValue(aFactor); + + // init variables + LineEdit1->setText(""); + LineEdit2->setText(""); myPoint = GEOM::GEOM_Object::_nil(); - initName( tr( "GEOM_SCALE" ) ); + // Signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); + + connect(PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + connect(PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); + + connect(LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + connect(LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed())); + + connect(SpinBox_FX, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(SpinBox_FY, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + connect(SpinBox_FZ, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); + + connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), this, SLOT(SetDoubleSpinBoxStep(double))); + + connect(CheckBoxCopy, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); + + initName(tr("GEOM_SCALE")); + + ConstructorsClicked(0); } +//================================================================================= +// function : ConstructorsClicked() +// purpose : Radio button management +//================================================================================= +void TransformationGUI_ScaleDlg::ConstructorsClicked (int constructorId) +{ + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + + switch (constructorId) { + case 0: // translation an object by dx, dy, dz + TextLabel3->setText(tr("GEOM_SCALE_FACTOR")); + TextLabel4->hide(); + TextLabel5->hide(); + SpinBox_FY->hide(); + SpinBox_FZ->hide(); + + PushButton1->click(); + break; + case 1: // translation an object by 2 points + TextLabel3->setText(tr("GEOM_SCALE_FACTOR_X")); + TextLabel4->show(); + TextLabel5->show(); + SpinBox_FY->show(); + SpinBox_FZ->show(); + + PushButton1->click(); + break; + default: + break; + } + + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); + + if (myInitial) { + myInitial = false; + SelectionIntoArgument(); + } + else { + displayPreview(); + } +} //================================================================================= // function : ClickOnOk() @@ -152,116 +242,116 @@ void TransformationGUI_ScaleDlg::Init() //================================================================================= void TransformationGUI_ScaleDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool TransformationGUI_ScaleDlg::ClickOnApply() { - if ( !onAccept(GroupPoints->CheckButton1->isChecked()) ) + if (!onAccept(CheckBoxCopy->isChecked())) return false; - Init(); + initName(tr("GEOM_SCALE")); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void TransformationGUI_ScaleDlg::SelectionIntoArgument() { + erasePreview(); myEditCurrentArgument->setText(""); + + if (myEditCurrentArgument == LineEdit1) + myObjects.length(0); + else if (myEditCurrentArgument == LineEdit2) + myPoint = GEOM::GEOM_Object::_nil(); + + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + QString aName; - if(myEditCurrentArgument == GroupPoints->LineEdit1) + if (myEditCurrentArgument == LineEdit1) + { + int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName); + if (aNbSel < 1) + return; + + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myObjects); + if (!myObjects.length()) + return; + else + myEditCurrentArgument->setText(aName); + } + else if (myEditCurrentArgument == LineEdit2) + { + GEOM::GEOM_Object_var aSelectedObject = GEOM::GEOM_Object::_nil(); + if (aSelList.Extent() == 1) { - int aNbSel = GEOMBase::GetNameOfSelectedIObjects(selectedIO(), aName); - if(aNbSel < 1) - { - myObjects.length(0); - return; - } - GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), myObjects); - if (!myObjects.length()) - return; - } - else if(myEditCurrentArgument == GroupPoints->LineEdit2) - { - if(IObjectCount() != 1) - { - myPoint = GEOM::GEOM_Object::_nil(); - return; - } Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult ); - aName = GEOMBase::GetName( aSelectedObject ); - - TopoDS_Shape aShape; - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) - { - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes( firstIObject(), aMap ); - if ( aMap.Extent() == 1 ) - { - int anIndex = aMap( 1 ); - aName += QString(":vertex_%1").arg(anIndex); + aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + if (testResult) + { + aName = GEOMBase::GetName(aSelectedObject); - //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); - - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations( getStudyId() ); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); - aSelMgr->clearSelected(); - } - else - aSelectedObject = aFindedObject; // get Object from study - } - else { - if (aShape.ShapeType() != TopAbs_VERTEX) { - aSelectedObject = GEOM::GEOM_Object::_nil(); - aName = ""; - } - } - } + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) + { + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) + { + int anIndex = aMap(1); + aName += QString(":vertex_%1").arg(anIndex); - myPoint = aSelectedObject; - - if(!testResult || CORBA::is_nil( myPoint )) - return; + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else + aSelectedObject = aFindedObject; // get Object from study + } + else // Global Selection + { + if (aShape.ShapeType() != TopAbs_VERTEX) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } + } + } } - myEditCurrentArgument->setText( aName ); + + myPoint = aSelectedObject; + myEditCurrentArgument->setText(aName); + + if (!myPoint->_is_nil() && !myObjects.length()) + PushButton1->click(); + } + + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); displayPreview(); } - -//================================================================================= -// function : LineEditReturnPressed() -// purpose : -//================================================================================= -void TransformationGUI_ScaleDlg::LineEditReturnPressed() -{ - QLineEdit* send = (QLineEdit*)sender(); - if(send == GroupPoints->LineEdit1 || - send == GroupPoints->LineEdit2) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } -} - - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -269,20 +359,50 @@ void TransformationGUI_ScaleDlg::LineEditReturnPressed() void TransformationGUI_ScaleDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); + + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); globalSelection(); - if(send == GroupPoints->PushButton1) { - myEditCurrentArgument = GroupPoints->LineEdit1; - } - else if(send == GroupPoints->PushButton2) { - myEditCurrentArgument = GroupPoints->LineEdit2; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - } + if (send == PushButton1) { + myEditCurrentArgument = LineEdit1; + PushButton2->setDown(false); + LineEdit2->setEnabled(false); + } + else if (send == PushButton2) { + myEditCurrentArgument = LineEdit2; + + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + + PushButton1->setDown(false); + LineEdit1->setEnabled(false); + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); } +//================================================================================= +// function : LineEditReturnPressed() +// purpose : +//================================================================================= +void TransformationGUI_ScaleDlg::LineEditReturnPressed() +{ + QLineEdit* send = (QLineEdit*)sender(); + if (send == LineEdit1 || send == LineEdit2) + { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } +} //================================================================================= // function : ActivateThisDialog() @@ -291,25 +411,22 @@ void TransformationGUI_ScaleDlg::SetEditCurrentArgument() void TransformationGUI_ScaleDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); - globalSelection(); - GroupPoints->LineEdit1->setFocus(); - myEditCurrentArgument = GroupPoints->LineEdit1; -} + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); + ConstructorsClicked( getConstructorId() ); +} //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void TransformationGUI_ScaleDlg::enterEvent(QEvent* e) +void TransformationGUI_ScaleDlg::enterEvent (QEvent*) { - if( !GroupConstructors->isEnabled() ) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - //================================================================================= // function : ValueChangedInSpinBox() // purpose : @@ -319,99 +436,165 @@ void TransformationGUI_ScaleDlg::ValueChangedInSpinBox() displayPreview(); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void TransformationGUI_ScaleDlg::SetDoubleSpinBoxStep(double step) +{ + SpinBox_FX->setSingleStep(step); + SpinBox_FY->setSingleStep(step); + SpinBox_FZ->setSingleStep(step); +} //================================================================================= // function : createOperation // purpose : //================================================================================= -GEOM::GEOM_IOperations_ptr TransformationGUI_ScaleDlg::createOperation() +GEOM::GEOM_IOperations_ptr TransformationGUI_ScaleDlg::createOperation() { - return myGeomGUI->GetGeomGen()->GetITransformOperations( getStudyId() ); + return getGeomEngine()->GetITransformOperations(getStudyId()); } //================================================================================= // function : isValid // purpose : //================================================================================= -bool TransformationGUI_ScaleDlg::isValid( QString& msg ) +bool TransformationGUI_ScaleDlg::isValid (QString& msg) { - return !(myObjects.length() == 0 || myPoint->_is_nil() || fabs(GetFactor()) <= 0.00001); -} + // && !myPoint->_is_nil() + if (getConstructorId() == 0) { + bool ok = SpinBox_FX->isValid( msg, !IsPreview() ); + return myObjects.length() > 0 && fabs(SpinBox_FX->value()) > 0.00001 && ok; + } + bool ok = true; + ok = SpinBox_FX->isValid( msg, !IsPreview() ) && ok; + ok = SpinBox_FY->isValid( msg, !IsPreview() ) && ok; + ok = SpinBox_FZ->isValid( msg, !IsPreview() ) && ok; + return myObjects.length() > 0 && + fabs(SpinBox_FX->value()) > 0.00001 && + fabs(SpinBox_FY->value()) > 0.00001 && + fabs(SpinBox_FZ->value()) > 0.00001 && ok; +} //================================================================================= // function : execute // purpose : //================================================================================= -bool TransformationGUI_ScaleDlg::execute( ObjectList& objects ) +bool TransformationGUI_ScaleDlg::execute (ObjectList& objects) { - bool res = false; + bool toCreateCopy = IsPreview() || CheckBoxCopy->isChecked(); GEOM::GEOM_Object_var anObj; - if (GroupPoints->CheckButton1->isChecked() || IsPreview()) - for (int i = 0; i < myObjects.length(); i++) + switch (getConstructorId()) + { + case 0: + { + if (toCreateCopy) { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - ScaleShapeCopy( myObjects[i], myPoint, GetFactor() ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + for (int i = 0; i < myObjects.length(); i++) + { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + ScaleShapeCopy(myObjects[i], myPoint, SpinBox_FX->value()); + if (!anObj->_is_nil()) { + if(!IsPreview()) + anObj->SetParameters(SpinBox_FX->text().toLatin1().constData()); + objects.push_back(anObj._retn()); + } + } } - else - for (int i = 0; i < myObjects.length(); i++) + else { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - ScaleShape( myObjects[i], myPoint, GetFactor() ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); + for (int i = 0; i < myObjects.length(); i++) + { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + ScaleShape(myObjects[i], myPoint, SpinBox_FX->value()); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } } - res = true; + } + break; + case 1: + { + if (toCreateCopy) + { + for (int i = 0; i < myObjects.length(); i++) + { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + ScaleShapeAlongAxesCopy(myObjects[i], myPoint, SpinBox_FX->value(), + SpinBox_FY->value(), SpinBox_FZ->value()); + if (!anObj->_is_nil()) + if(!IsPreview()) { + QStringList aParameters; + aParameters<text(); + aParameters<text(); + aParameters<text(); + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + } + objects.push_back(anObj._retn()); + } + } + else + { + for (int i = 0; i < myObjects.length(); i++) + { + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + ScaleShapeAlongAxes(myObjects[i], myPoint, SpinBox_FX->value(), + SpinBox_FY->value(), SpinBox_FZ->value()); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + } + } + break; + default: + break; + } - return res; + return true; } - //================================================================================= -// function : closeEvent +// function : restoreSubShapes // purpose : //================================================================================= -void TransformationGUI_ScaleDlg::closeEvent( QCloseEvent* e ) +void TransformationGUI_ScaleDlg::restoreSubShapes (SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject) { - GEOMBase_Skeleton::closeEvent( e ); + if (mainFrame()->CheckBoxRestoreSS->isChecked()) { + // empty list of arguments means that all arguments should be restored + getGeomEngine()->RestoreSubShapesSO(theStudy, theSObject, GEOM::ListOfGO(), + /*theFindMethod=*/GEOM::FSM_Transformed, + /*theInheritFirstArg=*/true); + } } - -//================================================================================= -// function : GetFactor() -// purpose : -//================================================================================= -double TransformationGUI_ScaleDlg::GetFactor() const -{ - return GroupPoints->SpinBox_DX->GetValue(); -} - - //================================================================================= // function : CreateCopyModeChanged() // purpose : //================================================================================= -void TransformationGUI_ScaleDlg::CreateCopyModeChanged(bool isCreateCopy) +void TransformationGUI_ScaleDlg::CreateCopyModeChanged (bool isCreateCopy) { - this->GroupBoxName->setEnabled(isCreateCopy); + mainFrame()->GroupBoxName->setEnabled(isCreateCopy); } //================================================================================= -// function : addSubshapeToStudy +// function : addSubshapesToStudy // purpose : virtual method to add new SubObjects if local selection //================================================================================= void TransformationGUI_ScaleDlg::addSubshapesToStudy() { - bool toCreateCopy = IsPreview() || GroupPoints->CheckButton1->isChecked(); - if (toCreateCopy) { - QMap objMap; - - objMap[GroupPoints->LineEdit2->text()] = myPoint; - - addSubshapesToFather( objMap ); + bool toCreateCopy = IsPreview() || CheckBoxCopy->isChecked(); + if (toCreateCopy) + { + if (!myPoint->_is_nil()) + { + QMap objMap; + objMap[LineEdit2->text()] = myPoint; + addSubshapesToFather(objMap); + } } } diff --git a/src/TransformationGUI/TransformationGUI_ScaleDlg.h b/src/TransformationGUI/TransformationGUI_ScaleDlg.h index 7f77c6b42..0c22428d0 100644 --- a/src/TransformationGUI/TransformationGUI_ScaleDlg.h +++ b/src/TransformationGUI/TransformationGUI_ScaleDlg.h @@ -1,77 +1,98 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : TransformationGUI_ScaleDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_ScaleDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef TRANSFORMATIONGUI_SCALEDLG_H +#define TRANSFORMATIONGUI_SCALEDLG_H -#ifndef DIALOGBOX_SCALE_H -#define DIALOGBOX_SCALE_H +#include + +class QCheckBox; +class QGroupBox; +class QLabel; +class QLineEdit; +class QPushButton; +class SalomeApp_DoubleSpinBox; -#include "GEOMBase_Skeleton.h" -#include "DlgRef_2Sel1Spin2Check.h" - - //================================================================================= // class : TransformationGUI_ScaleDlg // purpose : //================================================================================= class TransformationGUI_ScaleDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - TransformationGUI_ScaleDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~TransformationGUI_ScaleDlg(); + TransformationGUI_ScaleDlg( GeometryGUI*, QWidget* = 0, + bool = false, Qt::WindowFlags = 0 ); + ~TransformationGUI_ScaleDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); - virtual void closeEvent( QCloseEvent* e ); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); + virtual void restoreSubShapes( SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr ); -private : - void Init(); - void enterEvent(QEvent* e); - double GetFactor() const; +private: + void Init(); + void enterEvent( QEvent* ); - GEOM::ListOfGO myObjects; - GEOM::GEOM_Object_var myPoint; /* Central Point */ +private: + GEOM::ListOfGO myObjects; + GEOM::GEOM_Object_var myPoint; /* Central Point */ + + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; - DlgRef_2Sel1Spin2Check* GroupPoints; + QGroupBox* GroupBox1; + QLabel* TextLabel1; + QLabel* TextLabel2; + QPushButton* PushButton1; + QPushButton* PushButton2; + QLineEdit* LineEdit1; + QLineEdit* LineEdit2; + QLabel* TextLabel3; + QLabel* TextLabel4; + QLabel* TextLabel5; + SalomeApp_DoubleSpinBox* SpinBox_FX; + SalomeApp_DoubleSpinBox* SpinBox_FY; + SalomeApp_DoubleSpinBox* SpinBox_FZ; + QCheckBox* CheckBoxCopy; private slots: - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ValueChangedInSpinBox(); - void CreateCopyModeChanged(bool isCreateCopy); + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void ValueChangedInSpinBox(); + void CreateCopyModeChanged( bool ); + void SetDoubleSpinBoxStep( double ); }; -#endif // DIALOGBOX_SCALE_H +#endif // TRANSFORMATIONGUI_SCALEDLG_H diff --git a/src/TransformationGUI/TransformationGUI_TranslationDlg.cxx b/src/TransformationGUI/TransformationGUI_TranslationDlg.cxx index e5f0f183a..bdbd96a7c 100644 --- a/src/TransformationGUI/TransformationGUI_TranslationDlg.cxx +++ b/src/TransformationGUI/TransformationGUI_TranslationDlg.cxx @@ -1,38 +1,40 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_TranslationDlg.cxx +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. // -// File : TransformationGUI_TranslationDlg.cxx -// Author : Lucien PIGNOLONI -// Module : GEOM -// $Header$ - #include "TransformationGUI_TranslationDlg.h" -#include "SUIT_Desktop.h" -#include "SUIT_Session.h" -#include "SalomeApp_Application.h" -#include "LightApp_SelectionMgr.h" +#include +#include +#include +#include +#include +#include +#include + +// OCCT Includes #include #include #include @@ -40,14 +42,7 @@ #include #include -#include -#include - -#include "GEOMImpl_Types.hxx" - -#include "utilities.h" - -using namespace std; +#include //================================================================================= // class : TransformationGUI_TranslationDlg() @@ -57,9 +52,9 @@ using namespace std; // TRUE to construct a modal dialog. //================================================================================= TransformationGUI_TranslationDlg::TransformationGUI_TranslationDlg - (GeometryGUI* theGeometryGUI, QWidget* parent, const char* name, bool modal, WFlags fl) - : GEOMBase_Skeleton(theGeometryGUI, parent, name, modal, WStyle_Customize | - WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu) +(GeometryGUI* theGeometryGUI, QWidget* parent, bool modal, Qt::WindowFlags fl) + : GEOMBase_Skeleton(theGeometryGUI, parent, modal, fl), + myInitial(true) { SUIT_ResourceMgr* aResMgr = myGeomGUI->getApp()->resourceMgr(); QPixmap image0 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_TRANSLATION_DXYZ"))); @@ -67,37 +62,42 @@ TransformationGUI_TranslationDlg::TransformationGUI_TranslationDlg QPixmap image2 (aResMgr->loadPixmap("GEOM", tr("ICON_DLG_TRANSLATION_VECTOR"))); QPixmap image3 (aResMgr->loadPixmap("GEOM", tr("ICON_SELECT"))); - setCaption(tr("GEOM_TRANSLATION_TITLE")); + setWindowTitle(tr("GEOM_TRANSLATION_TITLE")); /***************************************************************/ - GroupConstructors->setTitle(tr("GEOM_TRANSLATION")); - RadioButton1->setPixmap(image0); - RadioButton2->setPixmap(image1); - RadioButton3->setPixmap(image2); + mainFrame()->GroupConstructors->setTitle(tr("GEOM_TRANSLATION")); + mainFrame()->RadioButton1->setIcon(image0); + mainFrame()->RadioButton2->setIcon(image1); + mainFrame()->RadioButton3->setIcon(image2); + mainFrame()->RadioButton1->setChecked(true); - RadioButton1->setChecked(true); - - GroupPoints = new DlgRef_3Sel3Spin1Check(this, "GroupPoints"); + GroupPoints = new DlgRef_3Sel3Spin2Check(centralWidget()); GroupPoints->GroupBox1->setTitle(tr("GEOM_ARGUMENTS")); GroupPoints->TextLabel1->setText(tr("GEOM_OBJECTS")); - GroupPoints->TextLabel3->setText(tr("GEOM_POINT_I").arg("2")); + GroupPoints->TextLabel3->setText(tr("GEOM_POINT_I").arg(2)); GroupPoints->TextLabel4->setText(tr("GEOM_DX")); GroupPoints->TextLabel5->setText(tr("GEOM_DY")); GroupPoints->TextLabel6->setText(tr("GEOM_DZ")); - GroupPoints->PushButton1->setPixmap(image3); - GroupPoints->PushButton2->setPixmap(image3); - GroupPoints->PushButton3->setPixmap(image3); - GroupPoints->CheckBox1->setText(tr("GEOM_CREATE_COPY")); + GroupPoints->PushButton1->setIcon(image3); + GroupPoints->PushButton2->setIcon(image3); + GroupPoints->PushButton3->setIcon(image3); + GroupPoints->CheckBox1->setText(tr("Activate Distance")); + GroupPoints->CheckBox2->setText(tr("GEOM_CREATE_COPY")); - Layout1->addWidget(GroupPoints, 2, 0); + QVBoxLayout* layout = new QVBoxLayout(centralWidget()); + layout->setMargin(0); layout->setSpacing(6); + layout->addWidget(GroupPoints); /***************************************************************/ setHelpFileName("translation_operation_page.html"); + // Activate Create a Copy mode + GroupPoints->CheckBox2->setChecked(true); + CreateCopyModeChanged(true); + Init(); } - //================================================================================= // function : ~TransformationGUI_TranslationDlg() // purpose : Destroys the object and frees any allocated resources @@ -107,42 +107,43 @@ TransformationGUI_TranslationDlg::~TransformationGUI_TranslationDlg() // no need to delete child widgets, Qt does it all for us } - //================================================================================= // function : Init() // purpose : //================================================================================= void TransformationGUI_TranslationDlg::Init() { - /* init variables */ - myEditCurrentArgument = GroupPoints->LineEdit1; + // Get setting of step value from file configuration + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + double step = resMgr->doubleValue("Geometry", "SettingsGeomStep", 100); + + // min, max, step and decimals for spin boxes & initial values + initSpinBox(GroupPoints->SpinBox1, COORD_MIN, COORD_MAX, step, 3); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupPoints->SpinBox2, COORD_MIN, COORD_MAX, step, 3); // VSR: TODO: DBL_DIGITS_DISPLAY + initSpinBox(GroupPoints->SpinBox3, COORD_MIN, COORD_MAX, step, 3); // VSR: TODO: DBL_DIGITS_DISPLAY + + GroupPoints->SpinBox1->setValue(0.0); + GroupPoints->SpinBox2->setValue(0.0); + GroupPoints->SpinBox3->setValue(0.0); + + // init variables GroupPoints->LineEdit1->setReadOnly(true); GroupPoints->LineEdit2->setReadOnly(true); GroupPoints->LineEdit3->setReadOnly(true); + GroupPoints->LineEdit1->setText(""); + GroupPoints->LineEdit2->setText(""); + GroupPoints->LineEdit3->setText(""); + myVector = myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); - // Activate Create a Copy mode - GroupPoints->CheckBox1->setChecked(true); - CreateCopyModeChanged(true); + mainFrame()->GroupBoxPublish->show(); - /* Get setting of step value from file configuration */ - SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); - double step = resMgr->doubleValue( "Geometry", "SettingsGeomStep", 100); + // signals and slots connections + connect(buttonOk(), SIGNAL(clicked()), this, SLOT(ClickOnOk())); + connect(buttonApply(), SIGNAL(clicked()), this, SLOT(ClickOnApply())); - /* min, max, step and decimals for spin boxes & initial values */ - GroupPoints->SpinBox1->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox2->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - GroupPoints->SpinBox3->RangeStepAndValidator(COORD_MIN, COORD_MAX, step, DBL_DIGITS_DISPLAY); - - GroupPoints->SpinBox1->SetValue(0.0); - GroupPoints->SpinBox2->SetValue(0.0); - GroupPoints->SpinBox3->SetValue(0.0); - - /* signals and slots connections */ - connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); - connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); - connect(GroupConstructors, SIGNAL(clicked(int)), SLOT(ConstructorsClicked(int))); + connect(this, SIGNAL(constructorsClicked(int)), this, SLOT(ConstructorsClicked(int))); connect(GroupPoints->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); connect(GroupPoints->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument())); @@ -154,201 +155,255 @@ void TransformationGUI_TranslationDlg::Init() connect(GroupPoints->SpinBox2, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); connect(GroupPoints->SpinBox3, SIGNAL(valueChanged(double)), this, SLOT(ValueChangedInSpinBox())); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox1, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox2, SLOT(SetStep(double))); - connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), GroupPoints->SpinBox3, SLOT(SetStep(double))); + connect(myGeomGUI, SIGNAL(SignalDefaultStepValueChanged(double)), this, SLOT(SetDoubleSpinBoxStep(double))); - connect(GroupPoints->CheckBox1, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); + connect(GroupPoints->CheckBox1, SIGNAL(toggled(bool)), this, SLOT(ActivateDistanceChanged(bool))); + connect(GroupPoints->CheckBox2, SIGNAL(toggled(bool)), this, SLOT(CreateCopyModeChanged(bool))); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + initName(tr("GEOM_TRANSLATION")); - initName( tr( "GEOM_TRANSLATION" ) ); - ConstructorsClicked( 0 ); + ConstructorsClicked(0); } +//================================================================================= +// function : SetDoubleSpinBoxStep() +// purpose : Double spin box management +//================================================================================= +void TransformationGUI_TranslationDlg::SetDoubleSpinBoxStep (double step) +{ + GroupPoints->SpinBox1->setSingleStep(step); + GroupPoints->SpinBox2->setSingleStep(step); + GroupPoints->SpinBox3->setSingleStep(step); +} //================================================================================= // function : ConstructorsClicked() // purpose : Radio button management //================================================================================= -void TransformationGUI_TranslationDlg::ConstructorsClicked(int constructorId) +void TransformationGUI_TranslationDlg::ConstructorsClicked (int constructorId) { - erasePreview(); disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); - myEditCurrentArgument = GroupPoints->LineEdit1; - globalSelection(); - - switch (constructorId) + switch (constructorId) { + case 0: // translation an object by dx, dy, dz { - case 0: /* translation an object by dx, dy, dz */ - { - GroupPoints->ShowRows(1,2,false); - resize(0,0); - GroupPoints->ShowRows(3,5,true); - break; - } - case 1: /* translation an object by 2 points */ - { - GroupPoints->ShowRows(3,5,false); - resize(0,0); - GroupPoints->ShowRows(0,2,true); - GroupPoints->TextLabel2->setText(tr("GEOM_POINT_I").arg("1")); - GroupPoints->LineEdit2->clear(); - GroupPoints->LineEdit3->clear(); - myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); - break; - } - case 2: /* translation an object by vector */ - { - GroupPoints->ShowRows(2,5,false); - resize(0,0); - GroupPoints->ShowRows(0,1,true); - GroupPoints->TextLabel2->setText(tr("GEOM_VECTOR")); - GroupPoints->LineEdit2->clear(); - myVector = GEOM::GEOM_Object::_nil(); - break; - } + GroupPoints->ShowRows(1, 2, false); + GroupPoints->ShowRows(3, 5, true); + + GroupPoints->TextLabel6->setText(tr("GEOM_DZ")); + GroupPoints->SpinBox3->setEnabled(true); + + GroupPoints->CheckBox1->hide(); + + GroupPoints->PushButton1->click(); } + break; + case 1: // translation an object by 2 points + { + GroupPoints->ShowRows(3, 5, false); + GroupPoints->ShowRows(0, 2, true); - myEditCurrentArgument->setFocus(); - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + GroupPoints->TextLabel6->setText(tr("GEOM_DZ")); + GroupPoints->TextLabel2->setText(tr("GEOM_POINT_I").arg(1)); + GroupPoints->LineEdit2->clear(); + GroupPoints->LineEdit3->clear(); + GroupPoints->SpinBox3->setEnabled(true); + + GroupPoints->CheckBox1->hide(); + + myPoint1 = myPoint2 = GEOM::GEOM_Object::_nil(); + + GroupPoints->PushButton1->click(); + } + break; + case 2: // translation an object by vector + { + GroupPoints->ShowRows(0, 1, true); + GroupPoints->ShowRows(2, 4, false); + GroupPoints->ShowRows(5, 5, true); + + GroupPoints->TextLabel6->setText(tr("GEOM_DISTANCE")); + GroupPoints->SpinBox3->setValue(0.0); + GroupPoints->SpinBox3->setEnabled(false); + GroupPoints->TextLabel2->setText(tr("GEOM_VECTOR")); + GroupPoints->LineEdit2->clear(); + + GroupPoints->CheckBox1->show(); + + myVector = GEOM::GEOM_Object::_nil(); + ActivateDistanceChanged(GroupPoints->CheckBox1->isChecked()); + + GroupPoints->PushButton1->click(); + } + break; + } + + qApp->processEvents(); + updateGeometry(); + resize(minimumSizeHint()); + + if (myInitial) { + myInitial = false; + SelectionIntoArgument(); + } + else { + displayPreview(); + } } - //================================================================================= // function : ClickOnOk() // purpose : //================================================================================= void TransformationGUI_TranslationDlg::ClickOnOk() { - if ( ClickOnApply() ) + if (ClickOnApply()) ClickOnCancel(); } - //================================================================================= // function : ClickOnApply() // purpose : //================================================================================= bool TransformationGUI_TranslationDlg::ClickOnApply() { - if ( !onAccept(GroupPoints->CheckBox1->isChecked()) ) + if (!onAccept(GroupPoints->CheckBox2->isChecked())) return false; initName(); + // activate selection and connect selection manager + ConstructorsClicked(getConstructorId()); return true; } - //================================================================================= // function : SelectionIntoArgument() -// purpose : Called when selection as changed or other case +// purpose : Called when selection is changed or on dialog initialization or activation //================================================================================= void TransformationGUI_TranslationDlg::SelectionIntoArgument() { + erasePreview(); myEditCurrentArgument->setText(""); - QString aName; if (myEditCurrentArgument == GroupPoints->LineEdit1) - { - int aNbSel = GEOMBase::GetNameOfSelectedIObjects(selectedIO(), aName); + myObjects.length(0); + else if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1) + myPoint1 = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2) + myVector = GEOM::GEOM_Object::_nil(); + else if (myEditCurrentArgument == GroupPoints->LineEdit3) + myPoint2 = GEOM::GEOM_Object::_nil(); + LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); + SALOME_ListIO aSelList; + aSelMgr->selectedObjects(aSelList); + + QString aName; + + if (myEditCurrentArgument == GroupPoints->LineEdit1) { + int aNbSel = GEOMBase::GetNameOfSelectedIObjects(aSelList, aName); if (aNbSel < 1) - { - myObjects.length(0); return; - } - GEOMBase::ConvertListOfIOInListOfGO(selectedIO(), myObjects); + + GEOMBase::ConvertListOfIOInListOfGO(aSelList, myObjects); if (!myObjects.length()) return; + else { + myEditCurrentArgument->setText(aName); + + // here we do not switch to the next field, because multiple objects can be selected + /* + if (getConstructorId() == 1) { + if (myPoint1->_is_nil()) + GroupPoints->PushButton2->click(); + } + else if (getConstructorId() == 2) { + if (myVector->_is_nil()) + GroupPoints->PushButton2->click(); + } + */ + } } - else - { - if (IObjectCount() != 1) { - if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1) - myPoint1 = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2) - myVector = GEOM::GEOM_Object::_nil(); - else if (myEditCurrentArgument == GroupPoints->LineEdit3) - myPoint2 = GEOM::GEOM_Object::_nil(); + else { + if (aSelList.Extent() != 1) return; + + // nbSel == 1 + Standard_Boolean testResult = Standard_False; + GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(aSelList.First(), testResult); + + if (!testResult || CORBA::is_nil(aSelectedObject)) + return; + + aName = GEOMBase::GetName(aSelectedObject); + + // Get Selected object if selected subshape + TopoDS_Shape aShape; + if (GEOMBase::GetShape(aSelectedObject, aShape, TopAbs_SHAPE) && !aShape.IsNull()) + { + TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; + if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2) + aNeedType = TopAbs_EDGE; + + TColStd_IndexedMapOfInteger aMap; + aSelMgr->GetIndexes(aSelList.First(), aMap); + if (aMap.Extent() == 1) + { + int anIndex = aMap(1); + if (aNeedType == TopAbs_EDGE) + aName += QString(":edge_%1").arg(anIndex); + else + aName += QString(":vertex_%1").arg(anIndex); + + //Find SubShape Object in Father + GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); + + if (aFindedObject == GEOM::GEOM_Object::_nil()) { // Object not found in study + GEOM::GEOM_IShapesOperations_var aShapesOp = + getGeomEngine()->GetIShapesOperations(getStudyId()); + aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); + } + else { + aSelectedObject = aFindedObject; + } + } + else // Global Selection + { + if (aShape.ShapeType() != aNeedType) { + aSelectedObject = GEOM::GEOM_Object::_nil(); + aName = ""; + } + } } - Standard_Boolean testResult = Standard_False; - GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject(firstIObject(), testResult); + myEditCurrentArgument->setText(aName); - if (!testResult || CORBA::is_nil( aSelectedObject )) - return; - - TopoDS_Shape aShape; - aName = GEOMBase::GetName( aSelectedObject ); - if ( GEOMBase::GetShape( aSelectedObject, aShape, TopAbs_SHAPE ) && !aShape.IsNull() ) - { - TopAbs_ShapeEnum aNeedType = TopAbs_VERTEX; - if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2) - aNeedType = TopAbs_EDGE; - - LightApp_SelectionMgr* aSelMgr = myGeomGUI->getApp()->selectionMgr(); - TColStd_IndexedMapOfInteger aMap; - aSelMgr->GetIndexes( firstIObject(), aMap ); - if ( aMap.Extent() == 1 ) - { - int anIndex = aMap( 1 ); - if (aNeedType == TopAbs_EDGE) - aName += QString(":edge_%1").arg(anIndex); - else - aName += QString(":vertex_%1").arg(anIndex); - - //Find SubShape Object in Father - GEOM::GEOM_Object_var aFindedObject = findObjectInFather(aSelectedObject, aName); - - if ( aFindedObject == GEOM::GEOM_Object::_nil() ) { // Object not found in study - GEOM::GEOM_IShapesOperations_var aShapesOp = - getGeomEngine()->GetIShapesOperations( getStudyId() ); - aSelectedObject = aShapesOp->GetSubShape(aSelectedObject, anIndex); - } - else - aSelectedObject = aFindedObject; - } else // Global Selection - { - if (aShape.ShapeType() != aNeedType) { - aSelectedObject = GEOM::GEOM_Object::_nil(); - aName = ""; - } - } - } - - if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1) + if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 1) { myPoint1 = aSelectedObject; - else if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2) + if (!myPoint1->_is_nil() && myPoint2->_is_nil()) + GroupPoints->PushButton3->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit2 && getConstructorId() == 2) { myVector = aSelectedObject; - else if (myEditCurrentArgument == GroupPoints->LineEdit3) + if (!myVector->_is_nil() && !myObjects.length()) + GroupPoints->PushButton1->click(); + } + else if (myEditCurrentArgument == GroupPoints->LineEdit3) { myPoint2 = aSelectedObject; + if (!myPoint2->_is_nil() && !myObjects.length()) + GroupPoints->PushButton1->click(); + } } - myEditCurrentArgument->setText( aName ); + // clear selection + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); + myGeomGUI->getApp()->selectionMgr()->clearSelected(); + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + displayPreview(); } - -//================================================================================= -// function : LineEditReturnPressed() -// purpose : -//================================================================================= -void TransformationGUI_TranslationDlg::LineEditReturnPressed() -{ - QLineEdit* send = (QLineEdit*)sender(); - if (send == GroupPoints->LineEdit1) - { - myEditCurrentArgument = send; - GEOMBase_Skeleton::LineEditReturnPressed(); - } -} - - //================================================================================= // function : SetEditCurrentArgument() // purpose : @@ -356,27 +411,66 @@ void TransformationGUI_TranslationDlg::LineEditReturnPressed() void TransformationGUI_TranslationDlg::SetEditCurrentArgument() { QPushButton* send = (QPushButton*)sender(); + + disconnect(myGeomGUI->getApp()->selectionMgr(), 0, this, 0); globalSelection(); if (send == GroupPoints->PushButton1) { myEditCurrentArgument = GroupPoints->LineEdit1; + + GroupPoints->PushButton2->setDown(false); + GroupPoints->PushButton3->setDown(false); + GroupPoints->LineEdit2->setEnabled(false); + GroupPoints->LineEdit3->setEnabled(false); } else if (send == GroupPoints->PushButton2) { myEditCurrentArgument = GroupPoints->LineEdit2; + + GroupPoints->PushButton1->setDown(false); + GroupPoints->PushButton3->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + GroupPoints->LineEdit3->setEnabled(false); + if (getConstructorId() == 1) - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - else - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE ); + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + else + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_EDGE); } else if (send == GroupPoints->PushButton3) { myEditCurrentArgument = GroupPoints->LineEdit3; - localSelection( GEOM::GEOM_Object::_nil(), TopAbs_VERTEX ); - } + GroupPoints->PushButton1->setDown(false); + GroupPoints->PushButton2->setDown(false); + GroupPoints->LineEdit1->setEnabled(false); + GroupPoints->LineEdit2->setEnabled(false); + + localSelection(GEOM::GEOM_Object::_nil(), TopAbs_VERTEX); + } + connect(myGeomGUI->getApp()->selectionMgr(), SIGNAL(currentSelectionChanged()), + this, SLOT(SelectionIntoArgument())); + + // enable line edit + myEditCurrentArgument->setEnabled(true); myEditCurrentArgument->setFocus(); - SelectionIntoArgument(); + // after setFocus(), because it will be setDown(false) when loses focus + send->setDown(true); + + // seems we need it only to avoid preview disappearing, caused by selection mode change + displayPreview(); } +//================================================================================= +// function : LineEditReturnPressed() +// purpose : +//================================================================================= +void TransformationGUI_TranslationDlg::LineEditReturnPressed() +{ + QLineEdit* send = (QLineEdit*)sender(); + if (send == GroupPoints->LineEdit1) { + myEditCurrentArgument = send; + GEOMBase_Skeleton::LineEditReturnPressed(); + } +} //================================================================================= // function : ActivateThisDialog() @@ -385,25 +479,22 @@ void TransformationGUI_TranslationDlg::SetEditCurrentArgument() void TransformationGUI_TranslationDlg::ActivateThisDialog() { GEOMBase_Skeleton::ActivateThisDialog(); - - connect(myGeomGUI->getApp()->selectionMgr(), - SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); + connect( myGeomGUI->getApp()->selectionMgr(), SIGNAL( currentSelectionChanged() ), + this, SLOT( SelectionIntoArgument() ) ); ConstructorsClicked( getConstructorId() ); } - //================================================================================= // function : enterEvent() // purpose : //================================================================================= -void TransformationGUI_TranslationDlg::enterEvent(QEvent* e) +void TransformationGUI_TranslationDlg::enterEvent (QEvent*) { - if (!GroupConstructors->isEnabled()) + if (!mainFrame()->GroupConstructors->isEnabled()) ActivateThisDialog(); } - //================================================================================= // function : ValueChangedInSpinBox() // purpose : @@ -413,139 +504,204 @@ void TransformationGUI_TranslationDlg::ValueChangedInSpinBox() displayPreview(); } - //================================================================================= // function : createOperation // purpose : //================================================================================= -GEOM::GEOM_IOperations_ptr TransformationGUI_TranslationDlg::createOperation() +GEOM::GEOM_IOperations_ptr TransformationGUI_TranslationDlg::createOperation() { - return getGeomEngine()->GetITransformOperations( getStudyId() ); + return getGeomEngine()->GetITransformOperations(getStudyId()); } - //================================================================================= // function : isValid // purpose : //================================================================================= -bool TransformationGUI_TranslationDlg::isValid( QString& msg ) +bool TransformationGUI_TranslationDlg::isValid (QString& msg) { int aConstructorId = getConstructorId(); - switch (aConstructorId) + switch (aConstructorId) { + case 0: { - case 0: - { - return !(myObjects.length() == 0 ); - break; - } - case 1: - { - return !(myObjects.length() == 0 || myPoint1->_is_nil() || myPoint2->_is_nil() ); - break; - } - case 2: - { - return !(myObjects.length() == 0 || myVector->_is_nil()); - break; - } - default: return false; + bool ok = true; + ok = GroupPoints->SpinBox1->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox2->isValid( msg, !IsPreview() ) && ok; + ok = GroupPoints->SpinBox3->isValid( msg, !IsPreview() ) && ok; + return myObjects.length() > 0 && ok; } + case 1: + return myObjects.length() > 0 && !(myPoint1->_is_nil() || myPoint2->_is_nil()); + case 2: + { + bool ok = GroupPoints->SpinBox3->isValid( msg, !IsPreview() ); + return myObjects.length() > 0 && !(myVector->_is_nil()) && ok; + } + default: + break; + } + return false; } //================================================================================= // function : execute // purpose : //================================================================================= -bool TransformationGUI_TranslationDlg::execute( ObjectList& objects ) +bool TransformationGUI_TranslationDlg::execute (ObjectList& objects) { bool res = false; - bool toCreateCopy = IsPreview() || GroupPoints->CheckBox1->isChecked(); + bool toCreateCopy = IsPreview() || GroupPoints->CheckBox2->isChecked(); GEOM::GEOM_Object_var anObj; - switch ( getConstructorId() ) + switch (getConstructorId()) { + case 0: { - case 0: - { - double dx = GroupPoints->SpinBox1->GetValue(); - double dy = GroupPoints->SpinBox2->GetValue(); - double dz = GroupPoints->SpinBox3->GetValue(); - - if (toCreateCopy) - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - TranslateDXDYDZCopy( myObjects[i], dx, dy, dz ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - else - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - TranslateDXDYDZ( myObjects[i], dx, dy, dz ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - res = true; - break; - } - case 1: - { - if (toCreateCopy) - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - TranslateTwoPointsCopy( myObjects[i], myPoint1, myPoint2 ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - else - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - TranslateTwoPoints( myObjects[i], myPoint1, myPoint2 ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - res = true; - break; - } - case 2: - { - if (toCreateCopy) - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - TranslateVectorCopy( myObjects[i], myVector ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - else - for (int i = 0; i < myObjects.length(); i++) - { - anObj = GEOM::GEOM_ITransformOperations::_narrow( getOperation() )-> - TranslateVector( myObjects[i], myVector ); - if ( !anObj->_is_nil() ) - objects.push_back( anObj._retn() ); - } - res = true; - break; - } - } + double dx = GroupPoints->SpinBox1->value(); + double dy = GroupPoints->SpinBox2->value(); + double dz = GroupPoints->SpinBox3->value(); + QStringList aParameters; + aParameters<SpinBox1->text(); + aParameters<SpinBox2->text(); + aParameters<SpinBox3->text(); + + if (toCreateCopy) { + for (int i = 0; i < myObjects.length(); i++) { + myCurrObject = myObjects[i]; + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + TranslateDXDYDZCopy(myObjects[i], dx, dy, dz); + if (!anObj->_is_nil()) { + if(!IsPreview()) + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + objects.push_back(anObj._retn()); + } + } + } + else { + for (int i = 0; i < myObjects.length(); i++) { + myCurrObject = myObjects[i]; + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + TranslateDXDYDZ(myObjects[i], dx, dy, dz); + if (!anObj->_is_nil()) { + if(!IsPreview()) { + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + updateAttributes(anObj, aParameters); + } + objects.push_back(anObj._retn()); + } + } + } + res = true; + break; + } + case 1: + { + if (toCreateCopy) { + for (int i = 0; i < myObjects.length(); i++) { + myCurrObject = myObjects[i]; + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + TranslateTwoPointsCopy(myObjects[i], myPoint1, myPoint2); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + } + else { + for (int i = 0; i < myObjects.length(); i++) { + myCurrObject = myObjects[i]; + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + TranslateTwoPoints(myObjects[i], myPoint1, myPoint2); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + } + res = true; + break; + } + case 2: + { + QStringList aParameters; + aParameters<SpinBox3->text(); + bool byDistance = GroupPoints->CheckBox1->isChecked(); + if (byDistance) { + double aDistance = GroupPoints->SpinBox3->value(); + for (int i = 0; i < myObjects.length(); i++) { + myCurrObject = myObjects[i]; + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + TranslateVectorDistance(myObjects[i], myVector, aDistance, toCreateCopy); + if (!anObj->_is_nil()) { + if(!IsPreview()) { + anObj->SetParameters(GeometryGUI::JoinObjectParameters(aParameters)); + updateAttributes(anObj, aParameters); + } + objects.push_back(anObj._retn()); + } + } + } + else { + if (toCreateCopy) { + for (int i = 0; i < myObjects.length(); i++) { + myCurrObject = myObjects[i]; + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + TranslateVectorCopy(myObjects[i], myVector); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + } + else { + for (int i = 0; i < myObjects.length(); i++) { + myCurrObject = myObjects[i]; + anObj = GEOM::GEOM_ITransformOperations::_narrow(getOperation())-> + TranslateVector(myObjects[i], myVector); + if (!anObj->_is_nil()) + objects.push_back(anObj._retn()); + } + } + } + res = true; + break; + } + } return res; } +//================================================================================= +// function : restoreSubShapes +// purpose : +//================================================================================= +void TransformationGUI_TranslationDlg::restoreSubShapes (SALOMEDS::Study_ptr theStudy, + SALOMEDS::SObject_ptr theSObject) +{ + if (mainFrame()->CheckBoxRestoreSS->isChecked()) { + // we pass here the first operation argument (object) through the list of arguments + // because the rotation operation place its arguments in the data structure in another order, + // and we need to point the first argument directly + GEOM::ListOfGO_var anArgs = new GEOM::ListOfGO; + anArgs->length(1); + anArgs[0] = myCurrObject; + getGeomEngine()->RestoreSubShapesSO(theStudy, theSObject, anArgs, + /*theFindMethod=*/GEOM::FSM_Transformed, + /*theInheritFirstArg=*/true); + } +} //================================================================================= // function : CreateCopyModeChanged() // purpose : //================================================================================= -void TransformationGUI_TranslationDlg::CreateCopyModeChanged(bool isCreateCopy) +void TransformationGUI_TranslationDlg::CreateCopyModeChanged (bool isCreateCopy) { - GroupBoxName->setEnabled(isCreateCopy); + mainFrame()->GroupBoxName->setEnabled(isCreateCopy); +} + +//================================================================================= +// function : ActivateDistanceChanged() +// purpose : +//================================================================================= +void TransformationGUI_TranslationDlg::ActivateDistanceChanged (bool theEnable) +{ + GroupPoints->SpinBox3->setEnabled(theEnable); + displayPreview(); } //================================================================================= @@ -554,22 +710,21 @@ void TransformationGUI_TranslationDlg::CreateCopyModeChanged(bool isCreateCopy) //================================================================================= void TransformationGUI_TranslationDlg::addSubshapesToStudy() { - bool toCreateCopy = IsPreview() || GroupPoints->CheckBox1->isChecked(); + bool toCreateCopy = IsPreview() || GroupPoints->CheckBox2->isChecked(); if (toCreateCopy) { QMap objMap; - switch (getConstructorId()) - { - case 0: - return; - case 1: - objMap[GroupPoints->LineEdit2->text()] = myPoint1; - objMap[GroupPoints->LineEdit3->text()] = myPoint2; - break; - case 2: - objMap[GroupPoints->LineEdit2->text()] = myVector; - break; - } - addSubshapesToFather( objMap ); + switch (getConstructorId()) { + case 0: + return; + case 1: + objMap[GroupPoints->LineEdit2->text()] = myPoint1; + objMap[GroupPoints->LineEdit3->text()] = myPoint2; + break; + case 2: + objMap[GroupPoints->LineEdit2->text()] = myVector; + break; + } + addSubshapesToFather(objMap); } } diff --git a/src/TransformationGUI/TransformationGUI_TranslationDlg.h b/src/TransformationGUI/TransformationGUI_TranslationDlg.h index 11975c136..e08425b5a 100644 --- a/src/TransformationGUI/TransformationGUI_TranslationDlg.h +++ b/src/TransformationGUI/TransformationGUI_TranslationDlg.h @@ -1,36 +1,34 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// File : TransformationGUI_TranslationDlg.h -// Author : Lucien PIGNOLONI -// Module : GEOM +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// GEOM GEOMGUI : GUI for Geometry component +// File : TransformationGUI_TranslationDlg.h +// Author : Lucien PIGNOLONI, Open CASCADE S.A.S. +// +#ifndef TRANSFORMATIONGUI_TRANSLATIONDLG_H +#define TRANSFORMATIONGUI_TRANSLATIONDLG_H -#ifndef DIALOGBOX_TRANSLATION_H -#define DIALOGBOX_TRANSLATION_H - -#include "GEOMBase_Skeleton.h" -#include "DlgRef_3Sel3Spin1Check.h" +#include +class DlgRef_3Sel3Spin2Check; //================================================================================= // class : TransformationGUI_TranslationDlg @@ -38,39 +36,47 @@ //================================================================================= class TransformationGUI_TranslationDlg : public GEOMBase_Skeleton { - Q_OBJECT + Q_OBJECT public: - TransformationGUI_TranslationDlg(GeometryGUI* theGeometryGUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0); - ~TransformationGUI_TranslationDlg(); + TransformationGUI_TranslationDlg( GeometryGUI*, QWidget* = 0, + bool = false, Qt::WindowFlags = 0 ); + ~TransformationGUI_TranslationDlg(); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - virtual void addSubshapesToStudy(); + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + virtual void addSubshapesToStudy(); + virtual void restoreSubShapes( SALOMEDS::Study_ptr, SALOMEDS::SObject_ptr ); private: - void Init(); - void enterEvent(QEvent* e); + void Init(); + void enterEvent( QEvent* ); - GEOM::GEOM_Object_var myVector, myPoint1, myPoint2; - GEOM::ListOfGO myObjects; +private: + GEOM::ListOfGO myObjects; + GEOM::GEOM_Object_var myCurrObject; + GEOM::GEOM_Object_var myVector, myPoint1, myPoint2; - DlgRef_3Sel3Spin1Check* GroupPoints; - -private slots : - void ClickOnOk(); - bool ClickOnApply(); - void ActivateThisDialog(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void ConstructorsClicked(int constructorId); - void ValueChangedInSpinBox(); - void CreateCopyModeChanged(bool isCreateCopy); + // to initialize the first selection field with a selected object on the dialog creation + bool myInitial; + + DlgRef_3Sel3Spin2Check* GroupPoints; + +private slots: + void ClickOnOk(); + bool ClickOnApply(); + void ActivateThisDialog(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void ConstructorsClicked( int ); + void ValueChangedInSpinBox(); + void CreateCopyModeChanged( bool ); + void SetDoubleSpinBoxStep( double ); + void ActivateDistanceChanged( bool ); }; -#endif // DIALOGBOX_TRANSLATION_H +#endif // TRANSFORMATIONGUI_TRANSLATIONDLG_H diff --git a/src/src.pro b/src/src.pro new file mode 100644 index 000000000..9246c4dfe --- /dev/null +++ b/src/src.pro @@ -0,0 +1,63 @@ +# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +TEMPLATE = subdirs +CONFIG += ordered + +SUBDIRS = OBJECT +SUBDIRS += ARCHIMEDE +SUBDIRS += NMTDS +SUBDIRS += NMTTools +SUBDIRS += NMTAlgo +SUBDIRS += GEOMAlgo +SUBDIRS += SKETCHER +SUBDIRS += GEOM +SUBDIRS += BREPExport +SUBDIRS += BREPImport +SUBDIRS += IGESExport +SUBDIRS += IGESImport +SUBDIRS += STEPExport +SUBDIRS += STEPImport +SUBDIRS += STLExport +SUBDIRS += ShHealOper +SUBDIRS += GEOMImpl +SUBDIRS += GEOM_I +SUBDIRS += GEOMClient +SUBDIRS += DlgRef +SUBDIRS += GEOMFiltersSelection +SUBDIRS += GEOMGUI +SUBDIRS += GEOMBase +SUBDIRS += GEOMToolsGUI +SUBDIRS += DisplayGUI +SUBDIRS += BasicGUI +SUBDIRS += PrimitiveGUI +SUBDIRS += GenerationGUI +SUBDIRS += EntityGUI +SUBDIRS += BuildGUI +SUBDIRS += BooleanGUI +SUBDIRS += TransformationGUI +#SUBDIRS += OperationGUI +#SUBDIRS += RepairGUI +#SUBDIRS += MeasureGUI +#SUBDIRS += GroupGUI +#SUBDIRS += BlocksGUI +#SUBDIRS += GEOM_I_Superv +#SUBDIRS += GEOM_SWIG

    z0|Ss+h2%Cxz7nC2@iz@^05~Z8 zWFsi&0+g)K;C9dfePIiElb1DtZ2H`GqQv$S31c>QK^?O7ck}eE+UBp3;{c)L3ZDe> z(tEa4=MlX1m2>M8kWfq9=U0n4?J?G^uO%x2nVsH?0>I5uD*GI25-*j8U)UI(XQ`gm zg3wAP^H6C;WovgpfpzLIjrCr+HSuK%Q@9amM`Rq(RsGsiTyo84I7Do!ZT^m%=>|a6 pWSR2-mTEN(TEJ^5txx6XO|Keiv405$e}Ds`@<>CmP{I7w{{iey`4#{G diff --git a/doc/salome/gui/GEOM/images/point4.png b/doc/salome/gui/GEOM/images/point4.png index b29de102c06f1e0d0e86a8768c4244ed40573eff..08739979aba52897a6ab63debced0705aec8a288 100755 GIT binary patch literal 17493 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�kTiHWGTACfSI%dbMvD}^l7Z<;v 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 literal 14530 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⪙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 diff --git a/doc/salome/gui/GEOM/images/point5.png b/doc/salome/gui/GEOM/images/point5.png new file mode 100755 index 0000000000000000000000000000000000000000..e005604b89a4bb305a0d2568b39de3056fc4f329 GIT binary patch literal 23302 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 literal 0 HcmV?d00001 diff --git a/doc/salome/gui/GEOM/images/remove_extra_edges.png b/doc/salome/gui/GEOM/images/remove_extra_edges.png index 50538dd4b250310eb91c338a6e0cfb747a1ce961..64cc0f0b38a2ec195167531df6c4991313ccb7b5 100644 GIT binary patch literal 22294 zcmb5WbzD{3x;G9gD4?Q(f~1ImNOyyhB1nUDcS=j6fFKB{NSA;L(y-|6PU#kq?pieb zp5@->p5Hz9-1ENgAN!-iT4T;R<`~cOt+C(9$w*woCc;KTL%SyVR8#>C4Sfavv%Z1} zKS>HV%7?(%xC~)=>2AOKQ?$3Vp0h^L8A)<93pre(VG-80ACs zr={OiOx3K-%o#su#Hc?rQ!o8~Z$JH;8Mc{IC#$_wCl&MU8-#?q5mV%Nlr5~@@82J~ zAfuY;7u>3*x_M+O4ioH+<(50t8WxcTSyw20Z`94vPZX=lPX-~>HI(T#6nt+8Uy=V% za!D@S`KB;@;9(5ry{wfAYv z@=q)pwJaK6cwBRSF7`;}MVRs7Ym0X}J3AY+aZ+-6Ra-b&F@p~Zk#Y`P`lV`5>eR=h zSF0yOajuUDKhAlbO8)js*=BF=c2;Nj@6}X#scF3|l^S<~IyPs9TZ1zjY4jnFLv5}h zaK~NG2E!UxrnHo6I(WrSZv=jN$9qiu7Ds0*_m)JwH_?HTb#PM--d*vFv;?6aUhbk* zpF3TwG*RwS-WOSLx#qlYZg-|Jp0}!rU=M3_@_Im~Z5p>mUTth#twwE3JW*1aNTz|8<~pK zIBMt^EceU1Yr~bsoNNTJ*33tW+y;w_$~06iGgUH3chl5|uziS7-Y%m&Ze z`pf@7?k#wgWUpw+$fe8S7wIrEZ&`Na4ruVe2gi~(k!